Upgrade to rgbds 0.4.0

- fail for rgbds < 0.4.0
- `rst <Label>`
- `ds <count>, <byte>`
- `shift <N>`
- ASCII "\r"
- Sorted .sym file
This commit is contained in:
Rangi 2020-04-04 14:42:31 -04:00
parent a325db0f14
commit 0ee9d7a48b
15 changed files with 42 additions and 71 deletions

4
FAQ.md
View File

@ -38,11 +38,11 @@ You need to install `gcc`. If you're using Cygwin, re-run its setup, and at "Sel
### "ERROR: `UNION` already defined" ### "ERROR: `UNION` already defined"
Download [**rgbds 0.3.9**][rgbds] or newer. Older versions will not work. Download [**rgbds 0.4.0**][rgbds] or newer. Older versions will not work.
### "Expression must be 8-bit" ### "Expression must be 8-bit"
Download [**rgbds 0.3.9**][rgbds] or newer. Older versions will not work. Download [**rgbds 0.4.0**][rgbds] or newer. Older versions will not work.
### "Segmentation fault" from `rgbgfx` ### "Segmentation fault" from `rgbgfx`

View File

@ -38,7 +38,7 @@ Double click on the text that says "**Skip**" next to each package to select the
Then download [**rgbds**](https://github.com/rednex/rgbds/releases/): the latest **win64.zip** or **win32.zip** release. Extract it and put all the `exe` and `dll` files individually in **C:\cygwin64\usr\local\bin**. Then download [**rgbds**](https://github.com/rednex/rgbds/releases/): the latest **win64.zip** or **win32.zip** release. Extract it and put all the `exe` and `dll` files individually in **C:\cygwin64\usr\local\bin**.
**Note: If you already have an older rgbds, you will need to update to 0.3.9.** Ignore this if you have never installed rgbds before. If a version newer than 0.3.9 does not work, try downloading 0.3.9. **Note: If you already have an older rgbds, you will need to update to 0.4.0.** Ignore this if you have never installed rgbds before. If a version newer than 0.4.0 does not work, try downloading 0.4.0.
Now open the **Cygwin terminal** and enter the following commands. Now open the **Cygwin terminal** and enter the following commands.
@ -86,7 +86,7 @@ To install **rgbds**:
```bash ```bash
sudo apt-get install pkg-config flex bison libpng-dev sudo apt-get install pkg-config flex bison libpng-dev
git clone -b v0.3.9 --depth=1 https://github.com/rednex/rgbds git clone -b v0.4.0 --depth=1 https://github.com/rednex/rgbds
sudo make -C rgbds CFLAGS=-O2 install sudo make -C rgbds CFLAGS=-O2 install
``` ```
@ -102,7 +102,7 @@ To install **rgbds**:
```bash ```bash
sudo zypper install pkg-config flex bison libpng16-devel sudo zypper install pkg-config flex bison libpng16-devel
git clone -b v0.3.9 --depth=1 https://github.com/rednex/rgbds git clone -b v0.4.0 --depth=1 https://github.com/rednex/rgbds
sudo make -C rgbds CFLAGS=-O2 install sudo make -C rgbds CFLAGS=-O2 install
``` ```
@ -120,7 +120,7 @@ Alternatively, to install **rgbds** manually:
```bash ```bash
sudo pacman -S pkg-config flex bison libpng sudo pacman -S pkg-config flex bison libpng
git clone -b v0.3.9 --depth=1 https://github.com/rednex/rgbds git clone -b v0.4.0 --depth=1 https://github.com/rednex/rgbds
sudo make -C rgbds CFLAGS=-O2 install sudo make -C rgbds CFLAGS=-O2 install
``` ```
@ -157,7 +157,7 @@ If `rgbds` is not available, you'll also need these:
To install **rgbds**: To install **rgbds**:
```bash ```bash
git clone -b v0.3.9 --depth=1 https://github.com/rednex/rgbds git clone -b v0.4.0 --depth=1 https://github.com/rednex/rgbds
sudo make -C rgbds CFLAGS=-O2 install sudo make -C rgbds CFLAGS=-O2 install
``` ```

View File

@ -94,17 +94,14 @@ endif
pokecrystal.gbc: $(crystal_obj) pokecrystal.link pokecrystal.gbc: $(crystal_obj) pokecrystal.link
$(RGBLINK) -n pokecrystal.sym -m pokecrystal.map -l pokecrystal.link -o $@ $(crystal_obj) $(RGBLINK) -n pokecrystal.sym -m pokecrystal.map -l pokecrystal.link -o $@ $(crystal_obj)
$(RGBFIX) -Cjv -i BYTE -k 01 -l 0x33 -m 0x10 -p 0 -r 3 -t PM_CRYSTAL $@ $(RGBFIX) -Cjv -i BYTE -k 01 -l 0x33 -m 0x10 -p 0 -r 3 -t PM_CRYSTAL $@
tools/sort_symfile.sh pokecrystal.sym
pokecrystal11.gbc: $(crystal11_obj) pokecrystal.link pokecrystal11.gbc: $(crystal11_obj) pokecrystal.link
$(RGBLINK) -n pokecrystal11.sym -m pokecrystal11.map -l pokecrystal.link -o $@ $(crystal11_obj) $(RGBLINK) -n pokecrystal11.sym -m pokecrystal11.map -l pokecrystal.link -o $@ $(crystal11_obj)
$(RGBFIX) -Cjv -i BYTE -k 01 -l 0x33 -m 0x10 -n 1 -p 0 -r 3 -t PM_CRYSTAL $@ $(RGBFIX) -Cjv -i BYTE -k 01 -l 0x33 -m 0x10 -n 1 -p 0 -r 3 -t PM_CRYSTAL $@
tools/sort_symfile.sh pokecrystal11.sym
pokecrystal-au.gbc: $(crystal_au_obj) pokecrystal.link pokecrystal-au.gbc: $(crystal_au_obj) pokecrystal.link
$(RGBLINK) -n pokecrystal-au.sym -m pokecrystal-au.map -l pokecrystal.link -o $@ $(crystal_au_obj) $(RGBLINK) -n pokecrystal-au.sym -m pokecrystal-au.map -l pokecrystal.link -o $@ $(crystal_au_obj)
$(RGBFIX) -Cjv -i BYTU -k 01 -l 0x33 -m 0x10 -p 0 -r 3 -t PM_CRYSTAL $@ $(RGBFIX) -Cjv -i BYTU -k 01 -l 0x33 -m 0x10 -p 0 -r 3 -t PM_CRYSTAL $@
tools/sort_symfile.sh pokecrystal-au.sym
# For files that the compressor can't match, there will be a .lz file suffixed with the md5 hash of the correct uncompressed file. # For files that the compressor can't match, there will be a .lz file suffixed with the md5 hash of the correct uncompressed file.

View File

@ -1,3 +1,7 @@
if __RGBDS_MINOR__ < 4
fail "pokecrystal requires rgbds 0.4.0 or newer."
endc
INCLUDE "charmap.asm" INCLUDE "charmap.asm"
INCLUDE "macros.asm" INCLUDE "macros.asm"

View File

@ -115,8 +115,7 @@ InitUnownPuzzlePiecePositions:
initpuzcoord: MACRO initpuzcoord: MACRO
rept _NARG / 2 rept _NARG / 2
db \1 puzcoord \2 db \1 puzcoord \2
shift shift 2
shift
endr endr
ENDM ENDM
initpuzcoord 0,0, 0,1, 0,2, 0,3, 0,4, 0,5 initpuzcoord 0,0, 0,1, 0,2, 0,3, 0,4, 0,5

View File

@ -9,8 +9,7 @@
townmappals: MACRO townmappals: MACRO
rept _NARG / 2 rept _NARG / 2
dn PAL_TOWNMAP_\2, PAL_TOWNMAP_\1 dn PAL_TOWNMAP_\2, PAL_TOWNMAP_\1
shift shift 2
shift
endr endr
ENDM ENDM

View File

@ -4,8 +4,7 @@ tilepal: MACRO
x = \1 << OAM_TILE_BANK x = \1 << OAM_TILE_BANK
rept (_NARG - 1) / 2 rept (_NARG - 1) / 2
dn (x | PAL_BG_\3), (x | PAL_BG_\2) dn (x | PAL_BG_\3), (x | PAL_BG_\2)
shift shift 2
shift
endr endr
ENDM ENDM
@ -109,7 +108,4 @@ INCLUDE "gfx/tilesets/battle_tower_inside_palette_map.asm"
TilesetBattleTowerOutsidePalMap: TilesetBattleTowerOutsidePalMap:
INCLUDE "gfx/tilesets/battle_tower_outside_palette_map.asm" INCLUDE "gfx/tilesets/battle_tower_outside_palette_map.asm"
; unused ds 26, $06 ; unused
rept 26
db $06
endr

View File

@ -4,10 +4,12 @@ SECTION "rst0", ROM0[$0000]
di di
jp Start jp Start
SECTION "rst8", ROM0[$0008] ; rst FarCall SECTION "rst8", ROM0[$0008]
FarCall::
jp FarCall_hl jp FarCall_hl
SECTION "rst10", ROM0[$0010] ; rst Bankswitch SECTION "rst10", ROM0[$0010]
Bankswitch::
ldh [hROMBank], a ldh [hROMBank], a
ld [MBC3RomBank], a ld [MBC3RomBank], a
ret ret
@ -18,7 +20,8 @@ SECTION "rst18", ROM0[$0018]
SECTION "rst20", ROM0[$0020] SECTION "rst20", ROM0[$0020]
rst $38 rst $38
SECTION "rst28", ROM0[$0028] ; rst JumpTable SECTION "rst28", ROM0[$0028]
JumpTable::
push de push de
ld e, a ld e, a
ld d, 0 ld d, 0
@ -63,4 +66,4 @@ Start::
; The cartridge header data is filled in by rgbfix. ; The cartridge header data is filled in by rgbfix.
; This makes sure it doesn't get used. ; This makes sure it doesn't get used.
ds $0150 - $0104 ds $0150 - @

View File

@ -4,8 +4,6 @@ INCLUDE "macros/enum.asm"
INCLUDE "constants/hardware_constants.asm" INCLUDE "constants/hardware_constants.asm"
INCLUDE "constants/mobile_constants.asm" INCLUDE "constants/mobile_constants.asm"
charmap "<CR>", $d
; Mobile Adapter protocol commands ; Mobile Adapter protocol commands
MOBILE_COMMAND_BEGIN_SESSION EQU $10 MOBILE_COMMAND_BEGIN_SESSION EQU $10
MOBILE_COMMAND_END_SESSION EQU $11 MOBILE_COMMAND_END_SESSION EQU $11
@ -4943,31 +4941,31 @@ Unknown_1120a4:
Unknown_1120b0: Unknown_1120b0:
db "RCPT TO:<", 0 db "RCPT TO:<", 0
Unknown_1120ba: Unknown_1120ba:
db "DATA<CR>\n", 0 db "DATA\r\n", 0
Unknown_1120c1: Unknown_1120c1:
db "QUIT<CR>\n", 0 db "QUIT\r\n", 0
Unknown_1120c8: Unknown_1120c8:
db "USER ", 0 db "USER ", 0
Unknown_1120ce: Unknown_1120ce:
db "PASS ", 0 db "PASS ", 0
Unknown_1120d4: Unknown_1120d4:
db "STAT<CR>\n", 0 db "STAT\r\n", 0
Unknown_1120db: Unknown_1120db:
db "LIST 00000<CR>\n", 0 db "LIST 00000\r\n", 0
Unknown_1120e8: Unknown_1120e8:
db "RETR 00000<CR>\n", 0 db "RETR 00000\r\n", 0
Unknown_1120f5: Unknown_1120f5:
db "DELE 00000<CR>\n", 0 db "DELE 00000\r\n", 0
Unknown_112102: Unknown_112102:
db "TOP 00000 0<CR>\n", 0 db "TOP 00000 0\r\n", 0
Unknown_112110: Unknown_112110:
db "GET ", 0 db "GET ", 0
Unknown_112115: Unknown_112115:
db " HTTP/1.0<CR>\n", 0 db " HTTP/1.0\r\n", 0
Unknown_112121: Unknown_112121:
db "User-Agent: CGB-", 0 db "User-Agent: CGB-", 0
Unknown_112132: Unknown_112132:
db "<CR>\n<CR>\n", 0 db "\r\n\r\n", 0
Unknown_112137: Unknown_112137:
db "POST ", 0 db "POST ", 0
Unknown_11213d: Unknown_11213d:

View File

@ -28,8 +28,7 @@ dwcoord: MACRO
; x, y ; x, y
rept _NARG / 2 rept _NARG / 2
dw (\2) * SCREEN_WIDTH + (\1) + wTilemap dw (\2) * SCREEN_WIDTH + (\1) + wTilemap
shift shift 2
shift
endr endr
ENDM ENDM

View File

@ -32,18 +32,14 @@ ENDM
dn: MACRO ; nybbles dn: MACRO ; nybbles
rept _NARG / 2 rept _NARG / 2
db ((\1) << 4) | (\2) db ((\1) << 4) | (\2)
shift shift 2
shift
endr endr
ENDM ENDM
dc: MACRO ; "crumbs" dc: MACRO ; "crumbs"
rept _NARG / 4 rept _NARG / 4
db ((\1) << 6) | ((\2) << 4) | ((\3) << 2) | (\4) db ((\1) << 6) | ((\2) << 4) | ((\3) << 2) | (\4)
shift shift 4
shift
shift
shift
endr endr
ENDM ENDM

View File

@ -1,9 +1,7 @@
RGB: MACRO RGB: MACRO
rept _NARG / 3 rept _NARG / 3
dw palred (\1) + palgreen (\2) + palblue (\3) dw palred (\1) + palgreen (\2) + palblue (\3)
shift shift 3
shift
shift
endr endr
ENDM ENDM

View File

@ -1,7 +1,3 @@
FarCall EQU $08
Bankswitch EQU $10
JumpTable EQU $28
farcall: MACRO ; bank, address farcall: MACRO ; bank, address
ld a, BANK(\1) ld a, BANK(\1)
ld hl, \1 ld hl, \1

View File

@ -491,17 +491,17 @@ Function1143f3:
jp z, .asm_1144c2 jp z, .asm_1144c2
inc e inc e
call z, Function1144c8 call z, Function1144c8
cp $d ; CR cp "\r"
jr nz, .asm_11442b jr nz, .asm_11442b
ld a, [de] ld a, [de]
inc e inc e
call z, Function1144c8 call z, Function1144c8
cp $a ; NL cp "\n"
jr nz, .asm_11442b jr nz, .asm_11442b
ld a, [de] ld a, [de]
cp $2e ; . cp "."
jr z, .asm_1144ae jr z, .asm_1144ae
cp $d ; CR cp "\r"
jr z, .asm_1144b8 jr z, .asm_1144b8
.asm_11444a .asm_11444a
@ -557,7 +557,7 @@ Function1143f3:
inc bc inc bc
inc e inc e
call z, Function1144c8 call z, Function1144c8
cp $d ; "\r" cp "\r"
jr nz, .asm_114486 jr nz, .asm_114486
ld a, [de] ld a, [de]
inc bc inc bc
@ -581,14 +581,14 @@ Function1143f3:
inc e inc e
call z, Function1144c8 call z, Function1144c8
ld a, [de] ld a, [de]
cp $d ; CR cp "\r"
jp nz, .asm_11442b jp nz, .asm_11442b
.asm_1144b8 .asm_1144b8
inc e inc e
call z, Function1144c8 call z, Function1144c8
ld a, [de] ld a, [de]
cp $a ; NL cp "\n"
jp nz, .asm_11442b jp nz, .asm_11442b
.asm_1144c2 .asm_1144c2

View File

@ -1,14 +0,0 @@
#!/bin/sh
TEMP_FILE=$(mktemp)
sed \
-e "s/^..:[0-3]/0_ROM0@&/g" \
-e "s/^..:[4-7]/1_ROMX@&/g" \
-e "s/^..:[8-9]/2_VRAM@&/g" \
-e "s/^..:[A-Ba-b]/3_SRAM@&/g" \
-e "s/^00:[C-Dc-d]/4_WRAM0@&/g" \
-e "s/^..:[D-Dd-d]/5_WRAMX@&/g" \
-e "s/^..:[F-Ff-f]/6_HRAM@&/g" \
$1 \
| sort \
| sed -e "s/^.*@//g" > $TEMP_FILE
mv $TEMP_FILE $1