aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordannye <33dannye@gmail.com>2024-05-05 11:06:40 -0500
committerdannye <33dannye@gmail.com>2024-05-05 11:06:40 -0500
commitb135272f9510ed78e8c062efe552d6dbdcc1523f (patch)
tree5dc1941a3b42651f268dbb90f6e3170ccd977408
parentRemove pcm.py since pcm.c handles it (diff)
parentUse constant in wram for hidden item flags (#445) (diff)
downloadpokeyellow-b135272f9510ed78e8c062efe552d6dbdcc1523f.tar.gz
pokeyellow-b135272f9510ed78e8c062efe552d6dbdcc1523f.tar.xz
pokeyellow-b135272f9510ed78e8c062efe552d6dbdcc1523f.zip
Merge branch 'master' of https://github.com/pret/pokered
-rw-r--r--.github/workflows/main.yml2
-rw-r--r--INSTALL.md20
-rw-r--r--Makefile2
-rw-r--r--constants/hardware_constants.asm13
-rw-r--r--constants/item_constants.asm7
-rw-r--r--data/events/hidden_coins.asm2
-rw-r--r--data/events/hidden_item_coords.asm2
-rw-r--r--data/moves/animations.asm4
-rw-r--r--engine/events/starter_dex.asm2
-rw-r--r--engine/gfx/oam_dma.asm4
-rw-r--r--engine/items/item_effects.asm28
-rw-r--r--engine/menus/save.asm4
-rw-r--r--engine/movie/oak_speech/oak_speech2.asm2
-rw-r--r--engine/overworld/special_warps.asm2
-rw-r--r--home/header.asm2
-rw-r--r--home/init.asm12
-rw-r--r--home/trainers.asm2
-rw-r--r--macros/asserts.asm6
-rw-r--r--macros/ram.asm4
-rw-r--r--ram/hram.asm4
-rw-r--r--ram/sram.asm2
-rw-r--r--ram/vram.asm2
-rw-r--r--ram/wram.asm10
-rw-r--r--rgbdscheck.asm16
24 files changed, 80 insertions, 74 deletions
diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
index 2f26a4d3..03d5dc0d 100644
--- a/.github/workflows/main.yml
+++ b/.github/workflows/main.yml
@@ -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
diff --git a/INSTALL.md b/INSTALL.md
index aa4e4ca3..78cc9319 100644
--- a/INSTALL.md
+++ b/INSTALL.md
@@ -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** install instructions](https://rgbds.gbdev.io/install#pre-built) for Windows with Cygwin to install **rgbds 0.6.1**.
+Then follow the [**rgbds** install 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 **pokeyellow**](#build-pokeyellow).
@@ -84,7 +84,7 @@ To install the software required for **pokeyellow**:
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 **pokeyellow**:
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 **pokeyellow**:
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 **pokeyellow**](#build-pokeyellow).
@@ -153,8 +153,8 @@ make
### 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 pokeyellow, such as `pokeyellow/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 pokeyellow, such as `pokeyellow/rgbds-0.7.0/`. Then specify it when you run `make`:
```bash
-make RGBDS=rgbds-0.6.1/
+make RGBDS=rgbds-0.7.0/
```
diff --git a/Makefile b/Makefile
index 5eb584b1..e6a1e0f9 100644
--- a/Makefile
+++ b/Makefile
@@ -81,7 +81,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
diff --git a/constants/hardware_constants.asm b/constants/hardware_constants.asm
index fba15087..6f6d2df8 100644
--- a/constants/hardware_constants.asm
+++ b/constants/hardware_constants.asm
@@ -2,19 +2,6 @@
DEF GBC EQU $11
-; 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
-
; MBC1
DEF MBC1SRamEnable EQU $0000
DEF MBC1RomBank EQU $2000
diff --git a/constants/item_constants.asm b/constants/item_constants.asm
index e55ee89c..e99aa2a0 100644
--- a/constants/item_constants.asm
+++ b/constants/item_constants.asm
@@ -52,13 +52,13 @@ DEF SAFARI_ROCK EQU CASCADEBADGE ; overload
const DOME_FOSSIL ; $29
const HELIX_FOSSIL ; $2A
const SECRET_KEY ; $2B
- const ITEM_2C ; $2C
+ const ITEM_2C ; $2C ; unused
const BIKE_VOUCHER ; $2D
const X_ACCURACY ; $2E
const LEAF_STONE ; $2F
const CARD_KEY ; $30
const NUGGET ; $31
- const ITEM_32 ; $32
+ const ITEM_32 ; $32 ; unused
const POKE_DOLL ; $33
const FULL_HEAL ; $34
const REVIVE ; $35
@@ -216,6 +216,9 @@ DEF NUM_TM_HM EQU NUM_TMS + NUM_HMS
DEF __tmhm_value__ = NUM_TM_HM + 1
DEF UNUSED_TMNUM EQU __tmhm_value__
+DEF MAX_HIDDEN_ITEMS EQU 112
+DEF MAX_HIDDEN_COINS EQU 16
+
; used for Time Capsule held item compatibility
DEF TWISTEDSPOON_GSC EQU $60
DEF LIGHT_BALL_GSC EQU $a3
diff --git a/data/events/hidden_coins.asm b/data/events/hidden_coins.asm
index f2485f50..1fa5af23 100644
--- a/data/events/hidden_coins.asm
+++ b/data/events/hidden_coins.asm
@@ -3,6 +3,7 @@ MACRO hidden_coin
ENDM
HiddenCoinCoords:
+ table_width 3, HiddenCoinCoords
; map id, x, y
hidden_coin GAME_CORNER, 0, 8
hidden_coin GAME_CORNER, 1, 16
@@ -16,4 +17,5 @@ HiddenCoinCoords:
hidden_coin GAME_CORNER, 11, 7
hidden_coin GAME_CORNER, 15, 8
hidden_coin GAME_CORNER, 12, 15
+ assert_max_table_length MAX_HIDDEN_COINS
db -1 ; end
diff --git a/data/events/hidden_item_coords.asm b/data/events/hidden_item_coords.asm
index 1201c270..b6fce06a 100644
--- a/data/events/hidden_item_coords.asm
+++ b/data/events/hidden_item_coords.asm
@@ -3,6 +3,7 @@ MACRO hidden_item
ENDM
HiddenItemCoords:
+ table_width 3, HiddenItemCoords
; map id, x, y
hidden_item SILPH_CO_5F, 12, 3
hidden_item SILPH_CO_9F, 2, 15
@@ -59,4 +60,5 @@ HiddenItemCoords:
hidden_item CELADON_CITY, 48, 15
hidden_item SAFARI_ZONE_GATE, 10, 1 ; inaccessible
hidden_item POKEMON_MANSION_1F, 8, 16
+ assert_max_table_length MAX_HIDDEN_ITEMS
db -1 ; end
diff --git a/data/moves/animations.asm b/data/moves/animations.asm
index a7e1f0be..950ec075 100644
--- a/data/moves/animations.asm
+++ b/data/moves/animations.asm
@@ -28,7 +28,7 @@ AttackAnimationPointers:
dw JumpKickAnim
dw RollingKickAnim
dw SandAttackAnim
- dw HeadButtAnim
+ dw HeadbuttAnim
dw HornAttackAnim
dw FuryAttackAnim
dw HornDrillAnim
@@ -358,7 +358,7 @@ SandAttackAnim:
battle_anim SAND_ATTACK, SUBANIM_1_SAND, 1, 6
db -1 ; end
-HeadButtAnim:
+HeadbuttAnim:
battle_anim HEADBUTT, SUBANIM_1_STAR_BIG, 1, 6
db -1 ; end
diff --git a/engine/events/starter_dex.asm b/engine/events/starter_dex.asm
index 7cfe9af2..9640a40e 100644
--- a/engine/events/starter_dex.asm
+++ b/engine/events/starter_dex.asm
@@ -1,4 +1,4 @@
-; this function temporarily makes the starters (and Ivysaur) seen
+; this function temporarily makes the starters (and Ivysaur) owned
; so that the full Pokedex information gets displayed in Oak's lab
StarterDex:
ld a, 1 << (DEX_BULBASAUR - 1) | 1 << (DEX_IVYSAUR - 1) | 1 << (DEX_CHARMANDER - 1) | 1 << (DEX_SQUIRTLE - 1)
diff --git a/engine/gfx/oam_dma.asm b/engine/gfx/oam_dma.asm
index 11e52694..725c3dca 100644
--- a/engine/gfx/oam_dma.asm
+++ b/engine/gfx/oam_dma.asm
@@ -2,7 +2,7 @@ WriteDMACodeToHRAM::
; Since no other memory is available during OAM DMA,
; DMARoutine is copied to HRAM and executed there.
ld c, LOW(hDMARoutine)
- ld b, DMARoutineEnd - DMARoutine
+ ld b, DMARoutine.End - DMARoutine
ld hl, DMARoutine
.copy
ld a, [hli]
@@ -25,4 +25,4 @@ hDMARoutine::
jr nz, .wait
ret
ENDL
-DMARoutineEnd:
+.End:
diff --git a/engine/items/item_effects.asm b/engine/items/item_effects.asm
index 2ce6587e..5e502cfa 100644
--- a/engine/items/item_effects.asm
+++ b/engine/items/item_effects.asm
@@ -23,7 +23,7 @@ ItemUsePtrTable:
dw ItemUseBall ; POKE_BALL
dw ItemUseTownMap ; TOWN_MAP
dw ItemUseBicycle ; BICYCLE
- dw ItemUseSurfboard ; out-of-battle Surf effect
+ dw ItemUseSurfboard ; SURFBOARD
dw ItemUseBall ; SAFARI_BALL
dw ItemUsePokedex ; POKEDEX
dw ItemUseEvoStone ; MOON_STONE
@@ -60,19 +60,19 @@ ItemUsePtrTable:
dw UnusableItem ; DOME_FOSSIL
dw UnusableItem ; HELIX_FOSSIL
dw UnusableItem ; SECRET_KEY
- dw UnusableItem
+ dw UnusableItem ; ITEM_2C
dw UnusableItem ; BIKE_VOUCHER
dw ItemUseXAccuracy ; X_ACCURACY
dw ItemUseEvoStone ; LEAF_STONE
dw ItemUseCardKey ; CARD_KEY
dw UnusableItem ; NUGGET
- dw UnusableItem ; ??? PP_UP
- dw ItemUsePokedoll ; POKE_DOLL
+ dw UnusableItem ; ITEM_32
+ dw ItemUsePokeDoll ; POKE_DOLL
dw ItemUseMedicine ; FULL_HEAL
dw ItemUseMedicine ; REVIVE
dw ItemUseMedicine ; MAX_REVIVE
dw ItemUseGuardSpec ; GUARD_SPEC
- dw ItemUseSuperRepel ; SUPER_REPL
+ dw ItemUseSuperRepel ; SUPER_REPEL
dw ItemUseMaxRepel ; MAX_REPEL
dw ItemUseDireHit ; DIRE_HIT
dw UnusableItem ; COIN
@@ -89,13 +89,13 @@ ItemUsePtrTable:
dw ItemUseOaksParcel ; OAKS_PARCEL
dw ItemUseItemfinder ; ITEMFINDER
dw UnusableItem ; SILPH_SCOPE
- dw ItemUsePokeflute ; POKE_FLUTE
+ dw ItemUsePokeFlute ; POKE_FLUTE
dw UnusableItem ; LIFT_KEY
dw UnusableItem ; EXP_ALL
dw ItemUseOldRod ; OLD_ROD
dw ItemUseGoodRod ; GOOD_ROD
dw ItemUseSuperRod ; SUPER_ROD
- dw ItemUsePPUp ; PP_UP (real one)
+ dw ItemUsePPUp ; PP_UP
dw ItemUsePPRestore ; ETHER
dw ItemUsePPRestore ; MAX_ETHER
dw ItemUsePPRestore ; ELIXER
@@ -696,7 +696,7 @@ ItemUseBicycle:
ld [wWalkBikeSurfState], a
ret
-; used for Surf out-of-battle effect
+; indirectly used by SURF in StartMenu_Pokemon.surf
ItemUseSurfboard:
ld a, [wWalkBikeSurfState]
ld [wWalkBikeSurfStateCopy], a
@@ -1565,6 +1565,9 @@ VitaminNoEffectText:
INCLUDE "data/battle/stat_names.asm"
+; for BOULDERBADGE when used from the
+; ITEM window, which corresponds to
+; SAFARI_BAIT during Safari Game encounters
ItemUseBait:
ld hl, ThrewBaitText
call PrintText
@@ -1575,6 +1578,9 @@ ItemUseBait:
ld de, wSafariEscapeFactor ; escape factor
jr BaitRockCommon
+; for CASCADEBADGE when used from the
+; ITEM window, which corresponds to
+; SAFARI_ROCK during Safari Game encounters
ItemUseRock:
ld hl, ThrewRockText
call PrintText
@@ -1620,7 +1626,7 @@ ThrewRockText:
text_far _ThrewRockText
text_end
-; also used for Dig out-of-battle effect
+; indirectly used by DIG in StartMenu_Pokemon.dig
ItemUseEscapeRope:
ld a, [wIsInBattle]
and a
@@ -1746,7 +1752,7 @@ ItemUseCardKey:
INCLUDE "data/events/card_key_coords.asm"
-ItemUsePokedoll:
+ItemUsePokeDoll:
ld a, [wIsInBattle]
dec a
jp nz, ItemUseNotTime
@@ -1839,7 +1845,7 @@ ItemUseXStat:
ld [hl], a ; restore [wPlayerMoveNum]
ret
-ItemUsePokeflute:
+ItemUsePokeFlute:
ld a, [wIsInBattle]
and a
jr nz, .inBattle
diff --git a/engine/menus/save.asm b/engine/menus/save.asm
index b7ad5d66..fb7526b3 100644
--- a/engine/menus/save.asm
+++ b/engine/menus/save.asm
@@ -666,8 +666,8 @@ ClearSAV:
PadSRAM_FF:
ld [MBC1SRamBank], a
- ld hl, SRAM_Begin
- ld bc, SRAM_End - SRAM_Begin
+ ld hl, STARTOF(SRAM)
+ ld bc, SIZEOF(SRAM)
ld a, $ff
jp FillMemory
diff --git a/engine/movie/oak_speech/oak_speech2.asm b/engine/movie/oak_speech/oak_speech2.asm
index 65d02d18..cf657a7f 100644
--- a/engine/movie/oak_speech/oak_speech2.asm
+++ b/engine/movie/oak_speech/oak_speech2.asm
@@ -54,7 +54,7 @@ ChooseRivalName:
call ClearScreen
call Delay3
ld de, Rival1Pic
- ld b, $13
+ ld b, BANK(Rival1Pic)
call IntroDisplayPicCenteredOrUpperRight
.done
ld hl, HisNameIsText
diff --git a/engine/overworld/special_warps.asm b/engine/overworld/special_warps.asm
index c538938b..0cc2a474 100644
--- a/engine/overworld/special_warps.asm
+++ b/engine/overworld/special_warps.asm
@@ -14,7 +14,7 @@ PrepareForSpecialWarp::
.setNewGameMatWarp
; This is called by OakSpeech during StartNewGame and
; loads the first warp event for the specified map index.
- ld a, PALLET_TOWN
+ ld a, PALLET_TOWN
.next
ld b, a
ld a, [wd72d]
diff --git a/home/header.asm b/home/header.asm
index 671f29b1..505a2100 100644
--- a/home/header.asm
+++ b/home/header.asm
@@ -79,3 +79,5 @@ Start::
; This makes sure it doesn't get used for anything else.
ds $0150 - @
+
+ENDSECTION
diff --git a/home/init.asm b/home/init.asm
index 58264dcf..f6d6d372 100644
--- a/home/init.asm
+++ b/home/init.asm
@@ -41,8 +41,8 @@ DEF rLCDC_DEFAULT EQU %11100011
ld sp, wStack
- ld hl, WRAM0_Begin
- ld bc, WRAM1_End - WRAM0_Begin
+ ld hl, STARTOF(WRAM0)
+ ld bc, SIZEOF(WRAM0)
.loop
ld [hl], 0
inc hl
@@ -53,8 +53,8 @@ DEF rLCDC_DEFAULT EQU %11100011
call ClearVram
- ld hl, HRAM_Begin
- ld bc, HRAM_End - HRAM_Begin - 1
+ ld hl, STARTOF(HRAM)
+ ld bc, SIZEOF(HRAM) - 1
call FillMemory
call ClearSprites
@@ -121,8 +121,8 @@ DEF rLCDC_DEFAULT EQU %11100011
jp PrepareTitleScreen
ClearVram::
- ld hl, VRAM_Begin
- ld bc, VRAM_End - VRAM_Begin
+ ld hl, STARTOF(VRAM)
+ ld bc, SIZEOF(VRAM)
xor a
jp FillMemory
diff --git a/home/trainers.asm b/home/trainers.asm
index 457f47cd..4166a4db 100644
--- a/home/trainers.asm
+++ b/home/trainers.asm
@@ -258,7 +258,7 @@ SetSpritePosition1::
SetSpritePosition2::
ld hl, _SetSpritePosition2
SpritePositionBankswitch::
- ld b, BANK(_GetSpritePosition1) ; BANK(_GetSpritePosition2), BANK(_SetSpritePosition1), BANK(_SetSpritePosition2)
+ ld b, BANK("Trainer Sight")
jp Bankswitch ; indirect jump to one of the four functions
CheckForEngagingTrainers::
diff --git a/macros/asserts.asm b/macros/asserts.asm
index 64e6bc7b..bc5b2582 100644
--- a/macros/asserts.asm
+++ b/macros/asserts.asm
@@ -16,6 +16,12 @@ MACRO assert_table_length
"{CURRENT_TABLE_START}: expected {d:x} entries, each {d:CURRENT_TABLE_WIDTH} bytes"
ENDM
+MACRO assert_max_table_length
+ DEF x = \1
+ ASSERT x * CURRENT_TABLE_WIDTH >= @ - {CURRENT_TABLE_START}, \
+ "{CURRENT_TABLE_START}: expected a maximum of {d:x} entries, each {d:CURRENT_TABLE_WIDTH} bytes"
+ENDM
+
MACRO list_start
DEF list_index = 0
IF _NARG == 1
diff --git a/macros/ram.asm b/macros/ram.asm
index f45708a3..58704807 100644
--- a/macros/ram.asm
+++ b/macros/ram.asm
@@ -23,7 +23,7 @@ MACRO box_struct
\1DefenseExp:: dw
\1SpeedExp:: dw
\1SpecialExp:: dw
-\1DVs:: ds 2
+\1DVs:: dw
\1PP:: ds NUM_MOVES
ENDM
@@ -49,7 +49,7 @@ MACRO battle_struct
\1Type2:: db
\1CatchRate:: db
\1Moves:: ds NUM_MOVES
-\1DVs:: ds 2
+\1DVs:: dw
\1Level:: db
\1Stats::
\1MaxHP:: dw
diff --git a/ram/hram.asm b/ram/hram.asm
index b396450e..cddda407 100644
--- a/ram/hram.asm
+++ b/ram/hram.asm
@@ -173,7 +173,7 @@ hMoney:: ds 3 ; BCD number
NEXTU
; some code zeroes this for no reason when writing a coin amount
hUnusedCoinsByte:: db
-hCoins:: ds 2 ; BCD number
+hCoins:: dw ; BCD number
ENDU
hDivideBCDDivisor::
@@ -407,3 +407,5 @@ hPikachuSpriteVRAMOffset:: db
; 0 if DMG, != 0 if GBC
hGBC:: db
+
+ENDSECTION
diff --git a/ram/sram.asm b/ram/sram.asm
index 6cb45371..c3435b80 100644
--- a/ram/sram.asm
+++ b/ram/sram.asm
@@ -51,3 +51,5 @@ sBank3IndividualBoxChecksums:: ds 6
; All 12 boxes fit within 2 SRAM banks
ASSERT box_n == NUM_BOXES, \
"boxes: Expected {d:NUM_BOXES} total boxes, got {d:box_n}"
+
+ENDSECTION
diff --git a/ram/vram.asm b/ram/vram.asm
index 21230ac0..04556410 100644
--- a/ram/vram.asm
+++ b/ram/vram.asm
@@ -29,3 +29,5 @@ vTitleLogo:: ds $80 tiles
vTitleLogo2:: ds 30 tiles
ENDU
+
+ENDSECTION
diff --git a/ram/wram.asm b/ram/wram.asm
index 74d6ae34..d7acee2c 100644
--- a/ram/wram.asm
+++ b/ram/wram.asm
@@ -1977,7 +1977,7 @@ wUnusedD366:: db
wCurMapHeader::
wCurMapTileset:: db
-wCurMapHeight:: db
+wCurMapHeight:: db
wCurMapWidth:: db
wCurMapDataPtr:: dw
wCurMapTextPtr:: dw
@@ -2162,7 +2162,7 @@ wNumHoFTeams:: db
wUnusedD5A3:: db
-wPlayerCoins:: ds 2 ; BCD
+wPlayerCoins:: dw ; BCD
; bit array of missable objects. set = removed
wMissableObjectFlags:: flag_array $100
@@ -2300,9 +2300,9 @@ wGameProgressFlagsEnd::
ds 56
-wObtainedHiddenItemsFlags:: flag_array 112
+wObtainedHiddenItemsFlags:: flag_array MAX_HIDDEN_ITEMS
-wObtainedHiddenCoinsFlags:: flag_array 16
+wObtainedHiddenCoinsFlags:: flag_array MAX_HIDDEN_COINS
; $00 = walking
; $01 = biking
@@ -2594,3 +2594,5 @@ SECTION "Stack", WRAM0
; the stack grows downward
ds $eb - 1
wStack:: db
+
+ENDSECTION
diff --git a/rgbdscheck.asm b/rgbdscheck.asm
index fceee2e6..ed9e6d3b 100644
--- a/rgbdscheck.asm
+++ b/rgbdscheck.asm
@@ -1,16 +1,6 @@
-MAJOR EQU 0
-MINOR EQU 6
-PATCH EQU 0
-
-WRONG_RGBDS EQUS "fail \"pokeyellow 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 "pokeyellow requires rgbds v0.7.0 or newer."
ENDC
+IF __RGBDS_MAJOR__ == 0 && __RGBDS_MINOR__ < 7
+ fail "pokeyellow requires rgbds v0.7.0 or newer."
ENDC