summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--audio/notes.asm3
-rw-r--r--constants/audio_constants.asm1
-rw-r--r--constants/battle_constants.asm22
-rw-r--r--constants/gfx_constants.asm2
-rw-r--r--constants/hardware_constants.asm5
-rw-r--r--constants/landmark_constants.asm2
-rw-r--r--constants/map_data_constants.asm2
-rw-r--r--constants/map_setup_constants.asm1
-rw-r--r--constants/music_constants.asm2
-rw-r--r--constants/npc_trade_constants.asm2
-rw-r--r--constants/phone_constants.asm26
-rw-r--r--constants/radio_constants.asm3
-rw-r--r--constants/scgb_constants.asm4
-rw-r--r--constants/script_constants.asm2
-rw-r--r--constants/sfx_constants.asm3
-rw-r--r--constants/sprite_data_constants.asm17
-rw-r--r--constants/text_constants.asm21
-rw-r--r--constants/trainer_data_constants.asm16
-rw-r--r--data/maps/environment_colors.asm2
-rw-r--r--data/maps/setup_scripts.asm2
-rw-r--r--engine/gfx/cgb_layouts.asm6
-rw-r--r--engine/gfx/load_font.asm4
-rw-r--r--engine/gfx/sgb_layouts.asm6
-rw-r--r--engine/pokegear/pokegear.asm12
-rw-r--r--gfx/font.asm1
-rw-r--r--gfx/footprints.asm2
-rw-r--r--home/battle_vars.asm2
27 files changed, 91 insertions, 80 deletions
diff --git a/audio/notes.asm b/audio/notes.asm
index eeb84959b..e1d693137 100644
--- a/audio/notes.asm
+++ b/audio/notes.asm
@@ -1,4 +1,5 @@
FrequencyTable:
+ table_width 2, FrequencyTable
dw 0 ; __
dw $f82c ; C_
dw $f89d ; C#
@@ -12,6 +13,7 @@ FrequencyTable:
dw $fb58 ; A_
dw $fb9b ; A#
dw $fbda ; B_
+ assert_table_length NUM_NOTES + 1
dw $fc16 ; C_
dw $fc4e ; C#
dw $fc83 ; D_
@@ -24,3 +26,4 @@ FrequencyTable:
dw $fdac ; A_
dw $fdcd ; A#
dw $fded ; B_
+ assert_table_length NUM_NOTES * 2 + 1
diff --git a/constants/audio_constants.asm b/constants/audio_constants.asm
index 640b1e8cd..bf2753853 100644
--- a/constants/audio_constants.asm
+++ b/constants/audio_constants.asm
@@ -13,6 +13,7 @@
const A_ ; a
const A# ; b
const B_ ; c
+NUM_NOTES EQU const_value - 1
; channel
; ChannelPointers indexes (see audio/engine.asm)
diff --git a/constants/battle_constants.asm b/constants/battle_constants.asm
index d8d1a3a84..4f3ea9703 100644
--- a/constants/battle_constants.asm
+++ b/constants/battle_constants.asm
@@ -41,15 +41,15 @@ BASE_AI_SWITCH_SCORE EQU 10
NUM_LEVEL_STATS EQU const_value
; move struct members (see data/moves/moves.asm)
- const_def
- const MOVE_ANIM ; 0
- const MOVE_EFFECT ; 1
- const MOVE_POWER ; 2
- const MOVE_TYPE ; 3
- const MOVE_ACC ; 4
- const MOVE_PP ; 5
- const MOVE_CHANCE ; 6
-MOVE_LENGTH EQU const_value
+rsreset
+MOVE_ANIM rb ; 0
+MOVE_EFFECT rb ; 1
+MOVE_POWER rb ; 2
+MOVE_TYPE rb ; 3
+MOVE_ACC rb ; 4
+MOVE_PP rb ; 5
+MOVE_CHANCE rb ; 6
+MOVE_LENGTH EQU _RS
; stat constants
; indexes for:
@@ -97,7 +97,7 @@ SPDSPCDV_SHINY EQU $AA
const BATTLETYPE_CELEBI
const BATTLETYPE_SUICUNE
-; BattleVarPairs indexes (see home/battle.asm)
+; BattleVarPairs indexes (see home/battle_vars.asm)
const_def
const BATTLE_VARS_SUBSTATUS1
const BATTLE_VARS_SUBSTATUS2
@@ -122,7 +122,7 @@ SPDSPCDV_SHINY EQU $AA
const BATTLE_VARS_LAST_MOVE_OPP
NUM_BATTLE_VARS EQU const_value
-; BattleVarLocations indexes (see home/battle.asm)
+; BattleVarLocations indexes (see home/battle_vars.asm)
const_def
const PLAYER_SUBSTATUS_1
const ENEMY_SUBSTATUS_1
diff --git a/constants/gfx_constants.asm b/constants/gfx_constants.asm
index 09d2d4868..7785d18f9 100644
--- a/constants/gfx_constants.asm
+++ b/constants/gfx_constants.asm
@@ -28,7 +28,7 @@ EXP_BAR_LENGTH EQU 8 ; tiles
HP_BAR_LENGTH_PX EQU HP_BAR_LENGTH * TILE_WIDTH ; pixels
EXP_BAR_LENGTH_PX EQU EXP_BAR_LENGTH * TILE_WIDTH ; pixels
-; GetHPPal return values (see home.asm)
+; GetHPPal return values (see home/tilemap.asm)
HP_GREEN EQU 0
HP_YELLOW EQU 1
HP_RED EQU 2
diff --git a/constants/hardware_constants.asm b/constants/hardware_constants.asm
index 490da9c19..634bebfcf 100644
--- a/constants/hardware_constants.asm
+++ b/constants/hardware_constants.asm
@@ -1,5 +1,6 @@
-; Graciously aped from:
-; http://nocash.emubase.de/pandocs.htm
+; Graciously derived from:
+; https://gbdev.io/pandocs/
+; https://github.com/gbdev/hardware.inc
; http://gameboy.mongenel.com/dmg/asmmemmap.html
; memory map
diff --git a/constants/landmark_constants.asm b/constants/landmark_constants.asm
index 18461cdb1..bd2d171eb 100644
--- a/constants/landmark_constants.asm
+++ b/constants/landmark_constants.asm
@@ -1,7 +1,7 @@
; Landmarks indexes (see data/maps/landmarks.asm)
const_def
-; Johto landmarks
const LANDMARK_SPECIAL ; 00
+; Johto landmarks
const LANDMARK_NEW_BARK_TOWN ; 01
const LANDMARK_ROUTE_29 ; 02
const LANDMARK_CHERRYGROVE_CITY ; 03
diff --git a/constants/map_data_constants.asm b/constants/map_data_constants.asm
index c17e6e1b0..79e4ee87c 100644
--- a/constants/map_data_constants.asm
+++ b/constants/map_data_constants.asm
@@ -18,6 +18,7 @@ MAP_FISHGROUP rb ; 8
MAP_LENGTH EQU _RS
; map environments (wEnvironment)
+; EnvironmentColorsPointers indexes (see data/maps/environment_colors.asm)
const_def 1
const TOWN
const ROUTE
@@ -26,6 +27,7 @@ MAP_LENGTH EQU _RS
const ENVIRONMENT_5
const GATE
const DUNGEON
+NUM_ENVIRONMENTS EQU const_value - 1
; map palettes (wEnvironment)
const_def
diff --git a/constants/map_setup_constants.asm b/constants/map_setup_constants.asm
index eee40b71b..14a7f30d5 100644
--- a/constants/map_setup_constants.asm
+++ b/constants/map_setup_constants.asm
@@ -13,6 +13,7 @@
const MAPSETUP_SUBMENU ; fa
const MAPSETUP_BADWARP ; fb
const MAPSETUP_FLY ; fc
+NUM_MAPSETUP_SCRIPTS EQU const_value - $f1
; callback types
const_def 1
diff --git a/constants/music_constants.asm b/constants/music_constants.asm
index 941cb2bfb..4344d3773 100644
--- a/constants/music_constants.asm
+++ b/constants/music_constants.asm
@@ -1,7 +1,6 @@
; song ids
; Music indexes (see audio/music_pointers.asm)
const_def
-
const MUSIC_NONE ; 00
const MUSIC_TITLE ; 01
const MUSIC_ROUTE_1 ; 02
@@ -95,7 +94,6 @@
const MUSIC_LAKE_OF_RAGE_ROCKET_RADIO ; 5a
const MUSIC_PRINTER ; 5b
const MUSIC_POST_CREDITS ; 5c
-
; new to Crystal
const MUSIC_CLAIR ; 5d
const MUSIC_MOBILE_ADAPTER_MENU ; 5e
diff --git a/constants/npc_trade_constants.asm b/constants/npc_trade_constants.asm
index e0218e1d5..081f5b12a 100644
--- a/constants/npc_trade_constants.asm
+++ b/constants/npc_trade_constants.asm
@@ -1,4 +1,4 @@
- ; npctrade struct members (see data/events/npc_trades.asm)
+; npctrade struct members (see data/events/npc_trades.asm)
rsreset
NPCTRADE_DIALOG rb
NPCTRADE_GIVEMON rb
diff --git a/constants/phone_constants.asm b/constants/phone_constants.asm
index 4c318dbbd..2dd67bb52 100644
--- a/constants/phone_constants.asm
+++ b/constants/phone_constants.asm
@@ -55,20 +55,18 @@ NUM_SPECIALCALLS EQU const_value - 1
SPECIALCALL_SIZE EQU 6
; phone struct members
- const_def
- const PHONE_CONTACT_TRAINER_CLASS
- const PHONE_CONTACT_TRAINER_NUMBER
- const PHONE_CONTACT_MAP_GROUP
- const PHONE_CONTACT_MAP_NUMBER
- const PHONE_CONTACT_SCRIPT1_TIME
- const PHONE_CONTACT_SCRIPT1_BANK
- const PHONE_CONTACT_SCRIPT1_ADDR
- const_skip ; high PHONE_CONTACT_SCRIPT1_ADDR byte
- const PHONE_CONTACT_SCRIPT2_TIME
- const PHONE_CONTACT_SCRIPT2_BANK
- const PHONE_CONTACT_SCRIPT2_ADDR
- const_skip ; high PHONE_CONTACT_SCRIPT2_ADDR byte
-PHONE_CONTACT_SIZE EQU const_value
+rsreset
+PHONE_CONTACT_TRAINER_CLASS rb
+PHONE_CONTACT_TRAINER_NUMBER rb
+PHONE_CONTACT_MAP_GROUP rb
+PHONE_CONTACT_MAP_NUMBER rb
+PHONE_CONTACT_SCRIPT1_TIME rb
+PHONE_CONTACT_SCRIPT1_BANK rb
+PHONE_CONTACT_SCRIPT1_ADDR rw
+PHONE_CONTACT_SCRIPT2_TIME rb
+PHONE_CONTACT_SCRIPT2_BANK rb
+PHONE_CONTACT_SCRIPT2_ADDR rw
+PHONE_CONTACT_SIZE EQU _RS
; maximum number of pokegear contacts
CONTACT_LIST_SIZE EQU 10
diff --git a/constants/radio_constants.asm b/constants/radio_constants.asm
index f8f32588f..e9c7abaf3 100644
--- a/constants/radio_constants.asm
+++ b/constants/radio_constants.asm
@@ -96,7 +96,7 @@ NUM_RADIO_CHANNELS EQU const_value
const POKEDEX_SHOW_8 ; 57
NUM_RADIO_SEGMENTS EQU const_value
-; PlayRadio.StationPointers indexes (see engine/pokegear/pokegear.asm)
+; PlayRadioStationPointers indexes (see engine/pokegear/pokegear.asm)
const_def
const MAPRADIO_POKEMON_CHANNEL
const MAPRADIO_OAKS_POKEMON_TALK
@@ -107,6 +107,7 @@ NUM_RADIO_SEGMENTS EQU const_value
const MAPRADIO_PLACES_PEOPLE
const MAPRADIO_LETS_ALL_SING
const MAPRADIO_ROCKET
+NUM_MAP_RADIO_STATIONS EQU const_value
; These tables in engine/pokegear/radio.asm are all sized to a power of 2
; so there's no need for a rejection sampling loop
diff --git a/constants/scgb_constants.asm b/constants/scgb_constants.asm
index bfe56f353..0f1814b08 100644
--- a/constants/scgb_constants.asm
+++ b/constants/scgb_constants.asm
@@ -1,4 +1,5 @@
-; GetSGBLayout arguments (see engine/gfx/cgb_layouts.asm and engine/gfx/sgb_layouts.asm)
+; CGBLayoutJumptable indexes (see engine/gfx/cgb_layouts.asm)
+; SGBLayoutJumptable indexes (see engine/gfx/sgb_layouts.asm)
const_def
const SCGB_BATTLE_GRAYSCALE
const SCGB_BATTLE_COLORS
@@ -31,6 +32,7 @@
const SCGB_TRAINER_OR_MON_FRONTPIC_PALS
const SCGB_MYSTERY_GIFT
const SCGB_1E
+NUM_SCGB_LAYOUTS EQU const_value
SCGB_PARTY_MENU_HP_BARS EQU $fc
SCGB_DEFAULT EQU $ff
diff --git a/constants/script_constants.asm b/constants/script_constants.asm
index ec5ba020e..9479606ce 100644
--- a/constants/script_constants.asm
+++ b/constants/script_constants.asm
@@ -1,4 +1,4 @@
-; person constants
+; object constants
PLAYER EQU 0
LAST_TALKED EQU -2
diff --git a/constants/sfx_constants.asm b/constants/sfx_constants.asm
index ed2f6eb4c..56ee0b55f 100644
--- a/constants/sfx_constants.asm
+++ b/constants/sfx_constants.asm
@@ -1,6 +1,5 @@
; SFX indexes (see audio/sfx_pointers.asm)
const_def
-
const SFX_DEX_FANFARE_50_79 ; 00
const SFX_ITEM ; 01
const SFX_CAUGHT_MON ; 02
@@ -189,7 +188,6 @@
const SFX_TRAIN_ARRIVED ; b9
const SFX_STOP_SLOT ; ba
const SFX_2_BOOPS ; bb
-
; new to Crystal
const SFX_GLASS_TING ; bc
const SFX_GLASS_TING_2 ; bd
@@ -210,5 +208,4 @@
const SFX_TWO_PC_BEEPS ; cc
const SFX_4_NOTE_DITTY ; cd
const SFX_TWINKLE ; ce
-
NUM_SFX EQU const_value
diff --git a/constants/sprite_data_constants.asm b/constants/sprite_data_constants.asm
index 271faca15..64ff9c838 100644
--- a/constants/sprite_data_constants.asm
+++ b/constants/sprite_data_constants.asm
@@ -1,12 +1,11 @@
-; overworld_sprite struct members (see data/sprites.asm)
- const_def
- const SPRITEDATA_ADDR ; 0
- const_skip ; high SPRITEDATA_ADDR byte
- const SPRITEDATA_SIZE ; 2
- const SPRITEDATA_BANK ; 3
- const SPRITEDATA_TYPE ; 4
- const SPRITEDATA_PALETTE ; 5
-NUM_SPRITEDATA_FIELDS EQU const_value
+; overworld_sprite struct members (see data/sprites/sprites.asm)
+rsreset
+SPRITEDATA_ADDR rw ; 0
+SPRITEDATA_SIZE rb ; 2
+SPRITEDATA_BANK rb ; 3
+SPRITEDATA_TYPE rb ; 4
+SPRITEDATA_PALETTE rb ; 5
+NUM_SPRITEDATA_FIELDS EQU _RS
; sprite types
const_def 1
diff --git a/constants/text_constants.asm b/constants/text_constants.asm
index dbe06a36b..a42835f25 100644
--- a/constants/text_constants.asm
+++ b/constants/text_constants.asm
@@ -1,10 +1,10 @@
; name lengths
-NAME_LENGTH EQU 11
-PLAYER_NAME_LENGTH EQU 8
-BOX_NAME_LENGTH EQU 9
-MON_NAME_LENGTH EQU 11
-MOVE_NAME_LENGTH EQU 13
-ITEM_NAME_LENGTH EQU 13
+NAME_LENGTH EQU 11
+PLAYER_NAME_LENGTH EQU 8
+BOX_NAME_LENGTH EQU 9
+MON_NAME_LENGTH EQU 11
+MOVE_NAME_LENGTH EQU 13
+ITEM_NAME_LENGTH EQU 13
TRAINER_CLASS_NAME_LENGTH EQU 13
NAME_LENGTH_JAPANESE EQU 6
@@ -30,6 +30,9 @@ TEXTBOX_INNERX EQU TEXTBOX_X + 1
TEXTBOX_Y EQU SCREEN_HEIGHT - TEXTBOX_HEIGHT
TEXTBOX_INNERY EQU TEXTBOX_Y + 2
+; see gfx/frames/*.png
+TEXTBOX_FRAME_TILES EQU 6
+
; PrintNum bit flags
const_def 5
const PRINTNUM_MONEY_F ; 5
@@ -37,9 +40,9 @@ TEXTBOX_INNERY EQU TEXTBOX_Y + 2
const PRINTNUM_LEADINGZEROS_F ; 7
; PrintNum arguments (see engine/math/print_num.asm)
-PRINTNUM_MONEY EQU 1 << PRINTNUM_MONEY_F
-PRINTNUM_LEFTALIGN EQU 1 << PRINTNUM_LEFTALIGN_F
-PRINTNUM_LEADINGZEROS EQU 1 << PRINTNUM_LEADINGZEROS_F
+PRINTNUM_MONEY EQU 1 << PRINTNUM_MONEY_F
+PRINTNUM_LEFTALIGN EQU 1 << PRINTNUM_LEFTALIGN_F
+PRINTNUM_LEADINGZEROS EQU 1 << PRINTNUM_LEADINGZEROS_F
; character sets (see charmap.asm)
FIRST_REGULAR_TEXT_CHAR EQU $60
diff --git a/constants/trainer_data_constants.asm b/constants/trainer_data_constants.asm
index 0f8932535..fd081b7c4 100644
--- a/constants/trainer_data_constants.asm
+++ b/constants/trainer_data_constants.asm
@@ -1,13 +1,11 @@
; TrainerClassAttributes struct members (see data/trainers/attributes.asm)
- const_def
- const TRNATTR_ITEM1 ; 0
- const TRNATTR_ITEM2 ; 1
- const TRNATTR_BASEMONEY ; 2
- const TRNATTR_AI_MOVE_WEIGHTS ; 3
- const_skip ; high TRNATTR_AI_MOVE_WEIGHTS byte
- const TRNATTR_AI_ITEM_SWITCH ; 5
- const_skip ; high TRNATTR_AI_ITEM_SWITCH byte
-NUM_TRAINER_ATTRIBUTES EQU const_value
+rsreset
+TRNATTR_ITEM1 rb ; 0
+TRNATTR_ITEM2 rb ; 1
+TRNATTR_BASEMONEY rb ; 2
+TRNATTR_AI_MOVE_WEIGHTS rw ; 3
+TRNATTR_AI_ITEM_SWITCH rw ; 5
+NUM_TRAINER_ATTRIBUTES EQU _RS
; TRNATTR_AI_MOVE_WEIGHTS bit flags (wEnemyTrainerAIFlags)
; AIScoringPointers indexes (see engine/battle/ai/move.asm)
diff --git a/data/maps/environment_colors.asm b/data/maps/environment_colors.asm
index 3497b2b93..99e9be734 100644
--- a/data/maps/environment_colors.asm
+++ b/data/maps/environment_colors.asm
@@ -1,5 +1,6 @@
EnvironmentColorsPointers:
; entries correspond to environment constants (see constants/map_data_constants.asm)
+ table_width 2, EnvironmentColorsPointers
dw .OutdoorColors ; unused
dw .OutdoorColors ; TOWN
dw .OutdoorColors ; ROUTE
@@ -8,6 +9,7 @@ EnvironmentColorsPointers:
dw .Env5Colors ; ENVIRONMENT_5
dw .IndoorColors ; GATE
dw .DungeonColors ; DUNGEON
+ assert_table_length NUM_ENVIRONMENTS + 1
; Valid indices: $00 - $29 (see gfx/tilesets/bg_tiles.pal)
.OutdoorColors:
diff --git a/data/maps/setup_scripts.asm b/data/maps/setup_scripts.asm
index 96d322a80..86326deb4 100644
--- a/data/maps/setup_scripts.asm
+++ b/data/maps/setup_scripts.asm
@@ -1,5 +1,6 @@
MapSetupScripts:
; entries correspond to MAPSETUP_* constants (see constants/map_setup_constants.asm)
+ table_width 2, MapSetupScripts
dw MapSetupScript_Warp
dw MapSetupScript_Continue
dw MapSetupScript_ReloadMap
@@ -12,6 +13,7 @@ MapSetupScripts:
dw MapSetupScript_Submenu
dw MapSetupScript_BadWarp
dw MapSetupScript_Fly
+ assert_table_length NUM_MAPSETUP_SCRIPTS
; valid commands are listed in MapSetupCommands (see data/maps/setup_script_pointers.asm)
mapsetup: MACRO
diff --git a/engine/gfx/cgb_layouts.asm b/engine/gfx/cgb_layouts.asm
index 95f53b160..447c4ade1 100644
--- a/engine/gfx/cgb_layouts.asm
+++ b/engine/gfx/cgb_layouts.asm
@@ -17,7 +17,7 @@ LoadSGBLayoutCGB:
ld l, a
ld h, 0
add hl, hl
- ld de, .Jumptable
+ ld de, CGBLayoutJumptable
add hl, de
ld a, [hli]
ld h, [hl]
@@ -28,7 +28,8 @@ LoadSGBLayoutCGB:
.done:
ret
-.Jumptable:
+CGBLayoutJumptable:
+ table_width 2, CGBLayoutJumptable
dw _CGB_BattleGrayscale
dw _CGB_BattleColors
dw _CGB_PokegearPals
@@ -60,6 +61,7 @@ LoadSGBLayoutCGB:
dw _CGB_TrainerOrMonFrontpicPals
dw _CGB_MysteryGift
dw _CGB_Unused1E
+ assert_table_length NUM_SCGB_LAYOUTS
_CGB_BattleGrayscale:
ld hl, PalPacket_BattleGrayscale + 1
diff --git a/engine/gfx/load_font.asm b/engine/gfx/load_font.asm
index 0852cd8ff..284965910 100644
--- a/engine/gfx/load_font.asm
+++ b/engine/gfx/load_font.asm
@@ -74,13 +74,13 @@ _LoadFontsBattleExtra::
LoadFrame:
ld a, [wTextboxFrame]
maskbits NUM_FRAMES
- ld bc, 6 * LEN_1BPP_TILE
+ ld bc, TEXTBOX_FRAME_TILES * LEN_1BPP_TILE
ld hl, Frames
call AddNTimes
ld d, h
ld e, l
ld hl, vTiles2 tile "┌" ; $79
- lb bc, BANK(Frames), 6 ; "┌" to "┘"
+ lb bc, BANK(Frames), TEXTBOX_FRAME_TILES ; "┌" to "┘"
call Get1bppViaHDMA
ld hl, vTiles2 tile " " ; $7f
ld de, TextboxSpaceGFX
diff --git a/engine/gfx/sgb_layouts.asm b/engine/gfx/sgb_layouts.asm
index 1e5055f26..66892997f 100644
--- a/engine/gfx/sgb_layouts.asm
+++ b/engine/gfx/sgb_layouts.asm
@@ -12,7 +12,7 @@ LoadSGBLayout:
ld l, a
ld h, 0
add hl, hl
- ld de, .Jumptable
+ ld de, SGBLayoutJumptable
add hl, de
ld a, [hli]
ld h, [hl]
@@ -21,7 +21,8 @@ LoadSGBLayout:
push de
jp hl
-.Jumptable:
+SGBLayoutJumptable:
+ table_width 2, SGBLayoutJumptable
dw .SGB_BattleGrayscale
dw .SGB_BattleColors
dw .SGB_PokegearPals
@@ -53,6 +54,7 @@ LoadSGBLayout:
dw .SGB_TrainerOrMonFrontpicPals
dw .SGB_MysteryGift
dw .SGB_Unused1E
+ assert_table_length NUM_SCGB_LAYOUTS
.SGB_BattleGrayscale:
ld hl, PalPacket_BattleGrayscale
diff --git a/engine/pokegear/pokegear.asm b/engine/pokegear/pokegear.asm
index cbac4cd9e..1caef9d5f 100644
--- a/engine/pokegear/pokegear.asm
+++ b/engine/pokegear/pokegear.asm
@@ -1956,7 +1956,7 @@ PlayRadio:
.PlayStation:
ld a, ENTER_MAP_MUSIC
ld [wPokegearRadioMusicPlaying], a
- ld hl, .StationPointers
+ ld hl, PlayRadioStationPointers
ld d, 0
add hl, de
add hl, de
@@ -1983,9 +1983,10 @@ PlayRadio:
call WaitBGMap
ret
-.StationPointers:
+PlayRadioStationPointers:
; entries correspond to MAPRADIO_* constants
- dw .OakOrPnP
+ table_width 2, PlayRadioStationPointers
+ dw LoadStation_PokemonChannel
dw LoadStation_OaksPokemonTalk
dw LoadStation_PokedexShow
dw LoadStation_PokemonMusic
@@ -1994,8 +1995,9 @@ PlayRadio:
dw LoadStation_PlacesAndPeople
dw LoadStation_LetsAllSing
dw LoadStation_RocketRadio
+ assert_table_length NUM_MAP_RADIO_STATIONS
-.OakOrPnP:
+LoadStation_PokemonChannel:
call IsInJohto
and a
jr nz, .kanto
@@ -2005,7 +2007,7 @@ PlayRadio:
jp z, LoadStation_PokedexShow
jp LoadStation_OaksPokemonTalk
-.kanto
+.kanto:
jp LoadStation_PlacesAndPeople
PokegearMap:
diff --git a/gfx/font.asm b/gfx/font.asm
index 51d1ccb2d..3dcd8075b 100644
--- a/gfx/font.asm
+++ b/gfx/font.asm
@@ -61,5 +61,4 @@ INCBIN "gfx/frames/map_entry_sign.2bpp"
FontsExtra2_UpArrowGFX:
INCBIN "gfx/font/up_arrow.2bpp"
-Footprints:
INCLUDE "gfx/footprints.asm"
diff --git a/gfx/footprints.asm b/gfx/footprints.asm
index aeff1658f..7acf1c74e 100644
--- a/gfx/footprints.asm
+++ b/gfx/footprints.asm
@@ -7,8 +7,8 @@
footprint_top EQUS "0, 2 * LEN_1BPP_TILE"
footprint_bottom EQUS "2 * LEN_1BPP_TILE, 2 * LEN_1BPP_TILE"
+Footprints:
; Entries correspond to Pokémon species, two apiece, 8 tops then 8 bottoms
-
table_width LEN_1BPP_TILE * 4, Footprints
; 001-008 top halves
diff --git a/home/battle_vars.asm b/home/battle_vars.asm
index 70567ce74..2cf7b515e 100644
--- a/home/battle_vars.asm
+++ b/home/battle_vars.asm
@@ -1,5 +1,4 @@
GetBattleVar::
-; Preserves hl.
push hl
call GetBattleVarAddr
pop hl
@@ -8,7 +7,6 @@ GetBattleVar::
GetBattleVarAddr::
; Get variable from pair a, depending on whose turn it is.
; There are 21 variable pairs.
-
push bc
ld hl, BattleVarPairs