Update to RGBDS 0.7.0 (#1101)

This commit is contained in:
Rangi 2024-01-03 10:58:53 -05:00 committed by GitHub
parent 30739842af
commit dbf6044650
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
24 changed files with 64 additions and 73 deletions

View File

@ -16,7 +16,7 @@ jobs:
uses: actions/checkout@master
with:
path: rgbds
ref: v0.6.1
ref: v0.7.0
repository: gbdev/rgbds
- name: Install rgbds

6
FAQ.md
View File

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

View File

@ -42,9 +42,9 @@ Run setup and leave the default settings. At the "**Select Packages**" step, cho
Double click on the text that says "**Skip**" next to each package to select the most recent version to install.
Then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install#pre-built) for Windows with Cygwin to install **rgbds 0.6.1**.
Then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install#pre-built) for Windows with Cygwin to install **rgbds 0.7.0**.
**Note:** If you already have an installed rgbds older than 0.6.0, you will need to update to 0.6.0 or 0.6.1. Ignore this if you have never installed rgbds before. If a version newer than 0.6.1 does not work, try downloading 0.6.1.
**Note:** If you already have an installed rgbds older than 0.7.0, you will need to update to 0.7.0. Ignore this if you have never installed rgbds before. If a version newer than 0.7.0 does not work, try downloading 0.7.0.
Now open the **Cygwin terminal** and enter the following commands.
@ -67,7 +67,7 @@ Install [**Homebrew**](https://brew.sh/). Follow the official instructions.
Open **Terminal** and prepare to enter commands.
Then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install#pre-built) for macOS to install **rgbds 0.6.1**.
Then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install#pre-built) for macOS to install **rgbds 0.7.0**.
Now you're ready to [build **pokecrystal**](#build-pokecrystal).
@ -84,7 +84,7 @@ To install the software required for **pokecrystal**:
sudo apt-get install make gcc git
```
Then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install#building-from-source) to build **rgbds 0.6.1** from source.
Then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install#building-from-source) to build **rgbds 0.7.0** from source.
### OpenSUSE
@ -94,7 +94,7 @@ To install the software required for **pokecrystal**:
sudo zypper install make gcc git
```
Then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install#building-from-source) to build **rgbds 0.6.1** from source.
Then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install#building-from-source) to build **rgbds 0.7.0** from source.
### Arch Linux
@ -104,7 +104,7 @@ To install the software required for **pokecrystal**:
sudo pacman -S make gcc git rgbds
```
If you want to compile and install **rgbds** yourself instead, then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install#building-from-source) to build **rgbds 0.6.1** from source.
If you want to compile and install **rgbds** yourself instead, then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install#building-from-source) to build **rgbds 0.7.0** from source.
### Termux
@ -120,7 +120,7 @@ To install **rgbds**:
sudo apt install rgbds
```
If you want to compile and install **rgbds** yourself instead, then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install#building-from-source) to build **rgbds 0.6.1** from source.
If you want to compile and install **rgbds** yourself instead, then follow the [**rgbds** instructions](https://rgbds.gbdev.io/install#building-from-source) to build **rgbds 0.7.0** from source.
### Other distros
@ -131,7 +131,7 @@ If your distro is not listed here, try to find the required software in its repo
- `git`
- `rgbds`
If `rgbds` is not available, you'll need to follow the [**rgbds** instructions](https://rgbds.gbdev.io/install#building-from-source) to build **rgbds 0.6.1** from source.
If `rgbds` is not available, you'll need to follow the [**rgbds** instructions](https://rgbds.gbdev.io/install#building-from-source) to build **rgbds 0.7.0** from source.
Now you're ready to [build **pokecrystal**](#build-pokecrystal).
@ -159,12 +159,12 @@ make crystal11
### Build with a local rgbds version
If you have different projects that require different versions of `rgbds`, it might not be convenient to install rgbds 0.6.1 globally. Instead, you can put its files in a directory within pokecrystal, such as `pokecrystal/rgbds-0.6.1/`. Then specify it when you run `make`:
If you have different projects that require different versions of `rgbds`, it might not be convenient to install rgbds 0.7.0 globally. Instead, you can put its files in a directory within pokecrystal, such as `pokecrystal/rgbds-0.7.0/`. Then specify it when you run `make`:
```bash
make RGBDS=rgbds-0.6.1/
make RGBDS=rgbds-0.7.0/
```
```bash
make RGBDS=rgbds-0.6.1/ crystal11
make RGBDS=rgbds-0.7.0/ crystal11
```

View File

@ -104,7 +104,7 @@ tools:
$(MAKE) -C tools/
RGBASMFLAGS = -hL -Q8 -P includes.asm -Weverything -Wnumeric-string=2 -Wtruncation=1
RGBASMFLAGS = -Q8 -P includes.asm -Weverything -Wnumeric-string=2 -Wtruncation=1
# Create a sym/map for debug purposes if `make` run with `DEBUG=1`
ifeq ($(DEBUG),1)
RGBASMFLAGS += -E

View File

@ -3,19 +3,6 @@
; https://github.com/gbdev/hardware.inc
; http://gameboy.mongenel.com/dmg/asmmemmap.html
; memory map
DEF VRAM_Begin EQU $8000
DEF VRAM_End EQU $a000
DEF SRAM_Begin EQU $a000
DEF SRAM_End EQU $c000
DEF WRAM0_Begin EQU $c000
DEF WRAM0_End EQU $d000
DEF WRAM1_Begin EQU $d000
DEF WRAM1_End EQU $e000
; hardware registers $ff00-$ff80 (see below)
DEF HRAM_Begin EQU $ff80
DEF HRAM_End EQU $ffff
; MBC3
DEF MBC3SRamEnable EQU $0000
DEF MBC3RomBank EQU $2000

View File

@ -1045,3 +1045,5 @@ BetaBlank_Blocks: ; unreferenced
GoldenrodDeptStoreRoof_Blocks:
INCBIN "maps/GoldenrodDeptStoreRoof.blk"
ENDSECTION

View File

@ -484,3 +484,5 @@ SECTION "Map Scripts 25", ROMX
INCLUDE "maps/SilverCaveOutside.asm"
INCLUDE "maps/Route10North.asm"
ENDSECTION

View File

@ -2697,8 +2697,8 @@ If `IsInArray` returns `nc`, data at `bc` will be executed as code.
push af
ldh [rSVBK], a
xor a
ld hl, WRAM1_Begin
ld bc, WRAM1_End - WRAM1_Begin
ld hl, STARTOF(WRAMX)
ld bc, SIZEOF(WRAMX)
call ByteFill
pop af
inc a

View File

@ -129,15 +129,15 @@ endr
DebugColor_InitVRAM:
ld a, $1
ldh [rVBK], a
ld hl, VRAM_Begin
ld bc, VRAM_End - VRAM_Begin
ld hl, STARTOF(VRAM)
ld bc, SIZEOF(VRAM)
xor a
call ByteFill
ld a, $0
ldh [rVBK], a
ld hl, VRAM_Begin
ld bc, VRAM_End - VRAM_Begin
ld hl, STARTOF(VRAM)
ld bc, SIZEOF(VRAM)
xor a
call ByteFill

View File

@ -979,8 +979,8 @@ PushSGBBorder:
ret
SGB_ClearVRAM:
ld hl, VRAM_Begin
ld bc, VRAM_End - VRAM_Begin
ld hl, STARTOF(VRAM)
ld bc, SIZEOF(VRAM)
xor a
call ByteFill
ret

View File

@ -1,6 +1,6 @@
WriteOAMDMACodeToHRAM::
ld c, LOW(hTransferShadowOAM)
ld b, OAMDMACodeEnd - OAMDMACode
ld b, OAMDMACode.End - OAMDMACode
ld hl, OAMDMACode
.copy
ld a, [hli]
@ -25,4 +25,4 @@ hTransferShadowOAM::
jr nz, .wait
ret
ENDL
OAMDMACodeEnd:
.End:

View File

@ -7,8 +7,8 @@ endr
.EmptyBank:
call OpenSRAM
ld hl, SRAM_Begin
ld bc, SRAM_End - SRAM_Begin
ld hl, STARTOF(SRAM)
ld bc, SIZEOF(SRAM)
xor a
call ByteFill
call CloseSRAM

View File

@ -105,8 +105,8 @@ _ResetWRAM:
xor a
call ByteFill
ld hl, WRAM1_Begin
ld bc, wGameData - WRAM1_Begin
ld hl, STARTOF(WRAMX)
ld bc, wGameData - STARTOF(WRAMX)
xor a
call ByteFill

View File

@ -167,8 +167,8 @@ RunTradeAnimScript:
jr z, .NotCGB
ld a, $1
ldh [rVBK], a
ld hl, vTiles0
ld bc, VRAM_End - VRAM_Begin
ld hl, STARTOF(VRAM)
ld bc, SIZEOF(VRAM)
xor a
call ByteFill
ld a, $0
@ -176,7 +176,7 @@ RunTradeAnimScript:
.NotCGB:
hlbgcoord 0, 0
ld bc, VRAM_End - vBGMap0
ld bc, STARTOF(VRAM) + SIZEOF(VRAM) - vBGMap0
ld a, " "
call ByteFill
ld hl, TradeGameBoyLZ
@ -470,7 +470,7 @@ TradeAnim_TubeToPlayer8:
call DisableLCD
callfar ClearSpriteAnims
hlbgcoord 0, 0
ld bc, VRAM_End - vBGMap0
ld bc, STARTOF(VRAM) + SIZEOF(VRAM) - vBGMap0
ld a, " "
call ByteFill
xor a

View File

@ -91,9 +91,9 @@ HDMATransfer_FillBGMap0WithBlack:
ldh [rHDMA1], a
ld a, LOW(wDecompressScratch)
ldh [rHDMA2], a
ld a, HIGH(vBGMap0 - VRAM_Begin)
ld a, HIGH(vBGMap0 - STARTOF(VRAM))
ldh [rHDMA3], a
ld a, LOW(vBGMap0 - VRAM_Begin)
ld a, LOW(vBGMap0 - STARTOF(VRAM))
ldh [rHDMA4], a
ld a, $3f
ldh [hDMATransfer], a

View File

@ -68,3 +68,5 @@ Start::
; This makes sure it doesn't get used for anything else.
ds $0150 - @, $00
ENDSECTION

View File

@ -64,8 +64,8 @@ Init::
ldh [rLCDC], a
; Clear WRAM bank 0
ld hl, WRAM0_Begin
ld bc, WRAM0_End - WRAM0_Begin
ld hl, STARTOF(WRAM0)
ld bc, SIZEOF(WRAM0)
.ByteFill:
ld [hl], 0
inc hl
@ -82,8 +82,8 @@ Init::
ldh a, [hSystemBooted]
push af
xor a
ld hl, HRAM_Begin
ld bc, HRAM_End - HRAM_Begin
ld hl, STARTOF(HRAM)
ld bc, SIZEOF(HRAM)
call ByteFill
pop af
ldh [hSystemBooted], a
@ -177,8 +177,8 @@ ClearVRAM::
xor a ; 0
ldh [rVBK], a
.clear
ld hl, VRAM_Begin
ld bc, VRAM_End - VRAM_Begin
ld hl, STARTOF(VRAM)
ld bc, SIZEOF(VRAM)
xor a
call ByteFill
ret
@ -193,8 +193,8 @@ ClearWRAM::
push af
ldh [rSVBK], a
xor a
ld hl, WRAM1_Begin
ld bc, WRAM1_End - WRAM1_Begin
ld hl, STARTOF(WRAMX)
ld bc, SIZEOF(WRAMX)
call ByteFill
pop af
inc a

View File

@ -293,8 +293,8 @@ ClearVBank1::
ld a, 1
ldh [rVBK], a
ld hl, VRAM_Begin
ld bc, VRAM_End - VRAM_Begin
ld hl, STARTOF(VRAM)
ld bc, SIZEOF(VRAM)
xor a
call ByteFill

View File

@ -2400,7 +2400,7 @@ MACRO macro_100fc0
; Bit 7 set: Not SRAM
; Lower 7 bits: Bank if SRAM
; address, size[, OT address]
db ($80 * (\1 >= SRAM_End)) | (BANK(\1) * (\1 < SRAM_End))
db ($80 * (\1 >= STARTOF(SRAM) + SIZEOF(SRAM))) | (BANK(\1) * (\1 < STARTOF(SRAM) + SIZEOF(SRAM)))
dw \1, \2
if _NARG == 3
dw \3

View File

@ -176,3 +176,5 @@ endc
hClockResetTrigger:: db
ds 19
ENDSECTION

View File

@ -399,3 +399,5 @@ s7_a001:: db
ds $7fe
sMobileAdapterStatus2:: db
ENDSECTION

View File

@ -14,3 +14,5 @@ vTiles4:: ds $80 tiles
vTiles5:: ds $80 tiles
vBGMap2:: ds BG_MAP_WIDTH * BG_MAP_HEIGHT
vBGMap3:: ds BG_MAP_WIDTH * BG_MAP_HEIGHT
ENDSECTION

View File

@ -3650,3 +3650,5 @@ SECTION "Stack RAM", WRAMX
wWindowStack:: ds $1000 - 1
wWindowStackBottom:: ds 1
ENDSECTION

View File

@ -1,16 +1,6 @@
MAJOR EQU 0
MINOR EQU 6
PATCH EQU 0
WRONG_RGBDS EQUS "fail \"pokecrystal requires rgbds v0.6.0 or newer.\""
IF !DEF(__RGBDS_MAJOR__) || !DEF(__RGBDS_MINOR__) || !DEF(__RGBDS_PATCH__)
WRONG_RGBDS
ELSE
IF (__RGBDS_MAJOR__ < MAJOR) || \
(__RGBDS_MAJOR__ == MAJOR && __RGBDS_MINOR__ < MINOR) || \
(__RGBDS_MAJOR__ == MAJOR && __RGBDS_MINOR__ == MINOR && __RGBDS_PATCH__ < PATCH) || \
(__RGBDS_MAJOR__ == MAJOR && __RGBDS_MINOR__ == MINOR && __RGBDS_PATCH__ == PATCH && DEF(__RGBDS_RC__))
WRONG_RGBDS
fail "pokecrystal requires rgbds v0.7.0 or newer."
ENDC
IF __RGBDS_MAJOR__ == 0 && __RGBDS_MINOR__ < 7
fail "pokecrystal requires rgbds v0.7.0 or newer."
ENDC