summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorentrpntr <entrpntr@gmail.com>2020-04-22 23:15:53 -0400
committerentrpntr <entrpntr@gmail.com>2020-04-22 23:18:36 -0400
commit1d456d5f66627e8023c074419180639cc027e7bc (patch)
tree96b4ef0b214f716d7c5478804d9f9bb596373564
parentb87cc706430f281d6af24daa942890574449a803 (diff)
Finish home cleanup, identify tileset data, other misc cleanups.
-rw-r--r--Makefile9
-rw-r--r--charmap.asm376
-rw-r--r--constants.asm1
-rwxr-xr-xconstants/collision_constants.asm2
-rwxr-xr-xconstants/hardware_constants.asm2
-rw-r--r--constants/icon_constants.asm3
-rw-r--r--constants/landmark_constants.asm6
-rw-r--r--constants/menu_constants.asm1
-rw-r--r--constants/mobile_constants.asm3
-rw-r--r--constants/scene_constants.asm2
-rw-r--r--constants/serial_constants.asm1
-rw-r--r--constants/wram_constants.asm2
-rw-r--r--data/events/unused_pokemonpc_menudata.asm30
-rw-r--r--data/maps/blocks.asm2
-rw-r--r--data/tilesets.asm43
-rw-r--r--engine/battle/core.asm4
-rw-r--r--engine/events/mom.asm2
-rwxr-xr-xengine/events/overworld.asm8
-rw-r--r--engine/events/pokemon_pc.asm2
-rwxr-xr-xengine/events/whiteout.asm4
-rwxr-xr-xengine/gfx/cgb_layouts.asm112
-rwxr-xr-xengine/gfx/color.asm52
-rwxr-xr-xengine/gfx/sgb_layouts.asm2
-rw-r--r--engine/menus/naming_screen.asm66
-rw-r--r--engine/overworld/init_map.asm6
-rwxr-xr-xengine/overworld/map_objects.asm2
-rwxr-xr-xengine/overworld/player_movement.asm2
-rwxr-xr-xengine/overworld/player_step.asm148
-rwxr-xr-xengine/overworld/variables.asm2
-rwxr-xr-xgfx/tilesets/palette_maps.asm58
-rw-r--r--home/battle.asm14
-rwxr-xr-xhome/battle_vars.asm26
-rwxr-xr-xhome/copy_tilemap.asm6
-rw-r--r--home/decompress.asm14
-rw-r--r--home/fade.asm2
-rw-r--r--home/flag.asm2
-rw-r--r--home/game_time.asm2
-rw-r--r--home/gfx.asm19
-rw-r--r--home/init.asm20
-rw-r--r--home/joypad.asm2
-rw-r--r--home/lcd.asm1
-rw-r--r--home/map.asm1747
-rw-r--r--home/map_objects.asm4
-rw-r--r--home/math.asm2
-rw-r--r--home/menu.asm4
-rwxr-xr-xhome/names.asm12
-rw-r--r--home/palettes.asm20
-rwxr-xr-xhome/print_text.asm4
-rwxr-xr-xhome/region.asm4
-rwxr-xr-xhome/sprite_anims.asm8
-rw-r--r--home/text.asm457
-rwxr-xr-xhome/tilemap.asm6
-rw-r--r--home/time.asm1
-rw-r--r--home/vblank.asm26
-rw-r--r--home/video.asm5
-rw-r--r--home/window.asm4
-rw-r--r--layout.link (renamed from pokesilver.link)9
-rw-r--r--macros.asm1
-rw-r--r--macros/mobile.asm2
-rwxr-xr-xmacros/scripts/trade_anims.asm88
-rwxr-xr-xmacros/wram.asm12
-rw-r--r--main.asm246
-rw-r--r--pokegold.link315
-rwxr-xr-xsram.asm1
-rw-r--r--wram.asm760
65 files changed, 2233 insertions, 2566 deletions
diff --git a/Makefile b/Makefile
index a96d33de..5b395a98 100644
--- a/Makefile
+++ b/Makefile
@@ -63,7 +63,6 @@ compare: $(roms)
tools:
$(MAKE) -C tools/
-
RGBASMFLAGS = -L -Weverything
$(gold_obj): RGBASMFLAGS += -D _GOLD
$(silver_obj): RGBASMFLAGS += -D _SILVER
@@ -94,12 +93,12 @@ $(foreach obj, $(gold_excl_obj) $(silver_excl_obj), $(eval $(call DEP,$(obj),$(o
endif
-pokegold.gbc: $(gold_obj) pokegold.link
- $(RGBLINK) -n pokegold.sym -m pokegold.map -l pokegold.link -o $@ $(gold_obj)
+pokegold.gbc: $(gold_obj) layout.link
+ $(RGBLINK) -n pokegold.sym -m pokegold.map -l layout.link -o $@ $(gold_obj)
$(RGBFIX) -cjsv -i AAUE -k 01 -l 0x33 -m 0x10 -p 0 -r 3 -t "POKEMON_GLD" $@
-pokesilver.gbc: $(silver_obj) pokesilver.link
- $(RGBLINK) -n pokesilver.sym -m pokesilver.map -l pokesilver.link -o $@ $(silver_obj)
+pokesilver.gbc: $(silver_obj) layout.link
+ $(RGBLINK) -n pokesilver.sym -m pokesilver.map -l layout.link -o $@ $(silver_obj)
$(RGBFIX) -cjsv -i AAXE -k 01 -l 0x33 -m 0x10 -p 0 -r 3 -t "POKEMON_SLV" $@
pngs:
diff --git a/charmap.asm b/charmap.asm
index 31283ae3..ac3b62f3 100644
--- a/charmap.asm
+++ b/charmap.asm
@@ -1,177 +1,215 @@
; $00-$16 are TX_* constants (see macros/scripts/text.asm)
; Control characters (see home/text.asm)
- charmap "<NULL>", $00
- charmap "<PLAY_G>", $14 ; <PLAYER> + gender
- charmap "<MOBILE>", $15
- charmap "<CR>", $16
- charmap "¯", $1f
- charmap "<LF>", $22
- charmap "<POKE>", $24
- charmap "%", $25
- charmap "<RED>", $38
- charmap "<GREEN>", $39
- charmap "<ENEMY>", $3f
- charmap "<SHINY>", $3f
- charmap "<MOM>", $49
- charmap "<PKMN>", $4a
- charmap "<_CONT>", $4b ; implements "<CONT>"
- charmap "<SCROLL>", $4c
- charmap "<NEXT>", $4e
- charmap "<LINE>", $4f
-
- charmap "@", $50
- charmap "<PARA>", $51
- charmap "<PLAYER>", $52
- charmap "<RIVAL>", $53
- charmap "#", $54
- charmap "<CONT>", $55
- charmap "<……>", $56
- charmap "<DONE>", $57
- charmap "<PROMPT>", $58
- charmap "<TARGET>", $59
- charmap "<USER>", $5a
- charmap "<PC>", $5b
- charmap "<TM>", $5c
- charmap "<TRNER>", $5d
- charmap "<ROCKET>", $5e
- charmap "<DEXEND>", $5f
+ charmap "<NULL>", $00
+ charmap "<PLAY_G>", $14 ; <PLAYER> + gender
+ charmap "<CR>", $16
+ charmap "¯", $1f
+ charmap "<LF>", $22
+ charmap "<POKE>", $24
+ charmap "%", $25
+ charmap "<RED>", $38
+ charmap "<GREEN>", $39
+ charmap "<ENEMY>", $3f
+ charmap "<MOM>", $49
+ charmap "<PKMN>", $4a
+ charmap "<_CONT>", $4b ; implements "<CONT>"
+ charmap "<SCROLL>", $4c
+ charmap "<NEXT>", $4e
+ charmap "<LINE>", $4f
+ charmap "@", $50
+ charmap "<PARA>", $51
+ charmap "<PLAYER>", $52
+ charmap "<RIVAL>", $53
+ charmap "#", $54
+ charmap "<CONT>", $55
+ charmap "<……>", $56
+ charmap "<DONE>", $57
+ charmap "<PROMPT>", $58
+ charmap "<TARGET>", $59
+ charmap "<USER>", $5a
+ charmap "<PC>", $5b
+ charmap "<TM>", $5c
+ charmap "<TRAINER>", $5d ; "TRAINER"
+ charmap "<ROCKET>", $5e
+ charmap "<DEXEND>", $5f
; Actual characters
- charmap "▲", $61
- charmap "_", $62
- charmap "<COLON>", $6d ; necessary because ":" is already used
- charmap "′", $6e
- charmap "<LV>", $6e
- charmap "″", $6f
-
- charmap "<PO>", $70
- charmap "<KE>", $71
- charmap "◀", $71
- charmap "<``>", $72
- charmap "<''>", $73
- charmap "<ID>", $73
- charmap "№", $74
- charmap "…", $75
-
- charmap "┌", $79
- charmap "─", $7a
- charmap "┐", $7b
- charmap "│", $7c
- charmap "└", $7d
- charmap "┘", $7e
- charmap " ", $7f
-
- charmap "A", $80
- charmap "B", $81
- charmap "C", $82
- charmap "D", $83
- charmap "E", $84
- charmap "F", $85
- charmap "G", $86
- charmap "H", $87
- charmap "I", $88
- charmap "J", $89
- charmap "K", $8a
- charmap "L", $8b
- charmap "M", $8c
- charmap "N", $8d
- charmap "O", $8e
- charmap "P", $8f
- charmap "Q", $90
- charmap "R", $91
- charmap "S", $92
- charmap "T", $93
- charmap "U", $94
- charmap "V", $95
- charmap "W", $96
- charmap "X", $97
- charmap "Y", $98
- charmap "Z", $99
-
- charmap "(", $9a
- charmap ")", $9b
- charmap ":", $9c
- charmap ";", $9d
- charmap "[", $9e
- charmap "]", $9f
-
- charmap "a", $a0
- charmap "b", $a1
- charmap "c", $a2
- charmap "d", $a3
- charmap "e", $a4
- charmap "f", $a5
- charmap "g", $a6
- charmap "h", $a7
- charmap "i", $a8
- charmap "j", $a9
- charmap "k", $aa
- charmap "l", $ab
- charmap "m", $ac
- charmap "n", $ad
- charmap "o", $ae
- charmap "p", $af
- charmap "q", $b0
- charmap "r", $b1
- charmap "s", $b2
- charmap "t", $b3
- charmap "u", $b4
- charmap "v", $b5
- charmap "w", $b6
- charmap "x", $b7
- charmap "y", $b8
- charmap "z", $b9
-
- charmap "Ä", $c0
- charmap "Ö", $c1
- charmap "Ü", $c2
- charmap "ä", $c3
- charmap "ö", $c4
- charmap "ü", $c5
-
- charmap "'d", $d0
- charmap "'l", $d1
- charmap "'m", $d2
- charmap "'r", $d3
- charmap "'s", $d4
- charmap "'t", $d5
- charmap "'v", $d6
-
- charmap "←", $df
- charmap "'", $e0
- charmap "<PK>", $e1
- charmap "<MN>", $e2
- charmap "-", $e3
-
- charmap "?", $e6
- charmap "!", $e7
- charmap ".", $e8
- charmap "&", $e9
-
- charmap "é", $ea
- charmap "→", $eb
- charmap "▷", $ec
- charmap "▶", $ed
- charmap "▼", $ee
- charmap "♂", $ef
- charmap "¥", $f0
- charmap "×", $f1
- charmap "·", $f2
- charmap "/", $f3
- charmap ",", $f4
- charmap "♀", $f5
-
- charmap "0", $f6
- charmap "1", $f7
- charmap "2", $f8
- charmap "3", $f9
- charmap "4", $fa
- charmap "5", $fb
- charmap "6", $fc
- charmap "7", $fd
- charmap "8", $fe
- charmap "9", $ff
+ charmap "▲", $61
+ charmap "_", $62
+ charmap "<COLON>", $6d ; necessary because ":" is already used
+ charmap "′", $6e
+ charmap "<LV>", $6e
+ charmap "″", $6f
+
+ charmap "<PO>", $70
+ charmap "<KE>", $71
+ charmap "◀", $71
+ charmap "<``>", $72
+ charmap "<''>", $73
+ charmap "<ID>", $73
+ charmap "№", $74
+ charmap "…", $75
+
+ charmap "┌", $79
+ charmap "─", $7a
+ charmap "┐", $7b
+ charmap "│", $7c
+ charmap "└", $7d
+ charmap "┘", $7e
+ charmap " ", $7f
+
+; Actual characters (from gfx/font/font_battle_extra.png)
+
+ charmap "<LV>", $6e
+
+ charmap "<DO>", $70 ; hiragana small do, unused
+ charmap "◀", $71
+ charmap "『", $72 ; Japanese opening quote, unused
+ charmap "<ID>", $73
+ charmap "№", $74
+
+; Actual characters (from other graphics files)
+
+ ; needed for _LoadFontsExtra1 (see engine/load_font.asm)
+ charmap "■", $60 ; gfx/font/black.2bpp
+ charmap "▲", $61 ; gfx/font/up_arrow.png
+ charmap "☎", $62 ; gfx/font/phone_icon.2bpp
+
+ ; needed for MagikarpHouseSign (see engine/events/magikarp.asm)
+ charmap "′", $6e ; gfx/font/feet_inches.png
+ charmap "″", $6f ; gfx/font/feet_inches.png
+
+ ; needed for StatsScreen_PlaceShinyIcon and PrintPartyMonPage1
+ charmap "⁂", $3f ; gfx/stats/stats_tiles.png, tile 14
+
+; Actual characters (from gfx/font/font.png)
+
+ charmap "A", $80
+ charmap "B", $81
+ charmap "C", $82
+ charmap "D", $83
+ charmap "E", $84
+ charmap "F", $85
+ charmap "G", $86
+ charmap "H", $87
+ charmap "I", $88
+ charmap "J", $89
+ charmap "K", $8a
+ charmap "L", $8b
+ charmap "M", $8c
+ charmap "N", $8d
+ charmap "O", $8e
+ charmap "P", $8f
+ charmap "Q", $90
+ charmap "R", $91
+ charmap "S", $92
+ charmap "T", $93
+ charmap "U", $94
+ charmap "V", $95
+ charmap "W", $96
+ charmap "X", $97
+ charmap "Y", $98
+ charmap "Z", $99
+
+ charmap "(", $9a
+ charmap ")", $9b
+ charmap ":", $9c
+ charmap ";", $9d
+ charmap "[", $9e
+ charmap "]", $9f
+
+ charmap "a", $a0
+ charmap "b", $a1
+ charmap "c", $a2
+ charmap "d", $a3
+ charmap "e", $a4
+ charmap "f", $a5
+ charmap "g", $a6
+ charmap "h", $a7
+ charmap "i", $a8
+ charmap "j", $a9
+ charmap "k", $aa
+ charmap "l", $ab
+ charmap "m", $ac
+ charmap "n", $ad
+ charmap "o", $ae
+ charmap "p", $af
+ charmap "q", $b0
+ charmap "r", $b1
+ charmap "s", $b2
+ charmap "t", $b3
+ charmap "u", $b4
+ charmap "v", $b5
+ charmap "w", $b6
+ charmap "x", $b7
+ charmap "y", $b8
+ charmap "z", $b9
+
+ charmap "Ä", $c0
+ charmap "Ö", $c1
+ charmap "Ü", $c2
+ charmap "ä", $c3
+ charmap "ö", $c4
+ charmap "ü", $c5
+
+ charmap "'d", $d0
+ charmap "'l", $d1
+ charmap "'m", $d2
+ charmap "'r", $d3
+ charmap "'s", $d4
+ charmap "'t", $d5
+ charmap "'v", $d6
+
+ charmap "←", $df
+ charmap "'", $e0
+ charmap "<PK>", $e1
+ charmap "<MN>", $e2
+ charmap "-", $e3
+
+ charmap "?", $e6
+ charmap "!", $e7
+ charmap ".", $e8
+ charmap "&", $e9
+
+ charmap "é", $ea
+ charmap "→", $eb
+ charmap "▷", $ec
+ charmap "▶", $ed
+ charmap "▼", $ee
+ charmap "♂", $ef
+ charmap "¥", $f0
+ charmap "×", $f1
+ charmap "·", $f2
+ charmap "/", $f3
+ charmap ",", $f4
+ charmap "♀", $f5
+
+ charmap "0", $f6
+ charmap "1", $f7
+ charmap "2", $f8
+ charmap "3", $f9
+ charmap "4", $fa
+ charmap "5", $fb
+ charmap "6", $fc
+ charmap "7", $fd
+ charmap "8", $fe
+ charmap "9", $ff
+
+; Japanese control characters (see home/text.asm)
+
+ charmap "<JP_18>", $18 ; "ノ゛"? (ungrammatical)
+ charmap "<NI>", $1d ; "に "
+ charmap "<TTE>", $1e ; "って"
+ charmap "<WO>", $1f ; "を "
+ charmap "<TA!>", $22 ; "た!"
+ charmap "<KOUGEKI>", $23 ; "こうげき"
+ charmap "<WA>", $24 ; "は "
+ charmap "<NO>", $25 ; "の "
+ charmap "<ROUTE>", $35 ; "ばん どうろ"
+ charmap "<WATASHI>", $36 ; "わたし"
+ charmap "<KOKO_WA>", $37 ; "ここは"
+ charmap "<GA>", $4a ; "が "
; Japanese kana, for those bits of text that were not translated to English
diff --git a/constants.asm b/constants.asm
index 9b10bbdb..2e62bd71 100644
--- a/constants.asm
+++ b/constants.asm
@@ -31,7 +31,6 @@ INCLUDE "constants/map_object_constants.asm"
INCLUDE "constants/map_setup_constants.asm"
INCLUDE "constants/mart_constants.asm"
INCLUDE "constants/menu_constants.asm"
-INCLUDE "constants/mobile_constants.asm"
INCLUDE "constants/move_constants.asm"
INCLUDE "constants/move_effect_constants.asm"
INCLUDE "constants/music_constants.asm"
diff --git a/constants/collision_constants.asm b/constants/collision_constants.asm
index f9724da6..7d2266f3 100755
--- a/constants/collision_constants.asm
+++ b/constants/collision_constants.asm
@@ -1,6 +1,6 @@
; collision permissions (see data/collision_permissions.asm)
LANDTILE EQU $00
-WATERTILE EQU $01
+WATER_TILE EQU $01
WALLTILE EQU $0f
TALK EQU $10
diff --git a/constants/hardware_constants.asm b/constants/hardware_constants.asm
index 6205a1d7..835b9bae 100755
--- a/constants/hardware_constants.asm
+++ b/constants/hardware_constants.asm
@@ -42,7 +42,7 @@ LCD_STAT EQU 1
TIMER EQU 2
SERIAL EQU 3
JOYPAD EQU 4
-IE_DEFAULT EQU (1 << SERIAL) | (1 << TIMER) | (1 << LCD_STAT) | (1 << VBLANK)
+IE_DEFAULT EQU (1 << JOYPAD) | (1 << SERIAL) | (1 << TIMER) | (1 << LCD_STAT) | (1 << VBLANK)
; OAM attribute flags
OAM_TILE_BANK EQU 3
diff --git a/constants/icon_constants.asm b/constants/icon_constants.asm
index 870175f4..378ff072 100644
--- a/constants/icon_constants.asm
+++ b/constants/icon_constants.asm
@@ -46,6 +46,3 @@
const MONICON_NAMINGSCREEN
const MONICON_MOVES
const MONICON_TRADE
- const MONICON_MOBILE1
- const MONICON_MOBILE2
- const MONICON_UNUSED
diff --git a/constants/landmark_constants.asm b/constants/landmark_constants.asm
index 6dbb7aa7..5fba4387 100644
--- a/constants/landmark_constants.asm
+++ b/constants/landmark_constants.asm
@@ -99,3 +99,9 @@ KANTO_LANDMARK EQU const_value
const TOHJO_FALLS ; 5c
const ROUTE_28 ; 5d
const FAST_SHIP ; 5e
+
+; Regions
+ const_def
+ const JOHTO_REGION ; 0
+ const KANTO_REGION ; 1
+NUM_REGIONS EQU const_value
diff --git a/constants/menu_constants.asm b/constants/menu_constants.asm
index 97ed168e..c877f469 100644
--- a/constants/menu_constants.asm
+++ b/constants/menu_constants.asm
@@ -85,7 +85,6 @@ HMENURETURN_ASM EQU %11111111
const PARTYMENUACTION_GIVE_MON
const PARTYMENUACTION_GIVE_MON_FEMALE ; unused
const PARTYMENUACTION_GIVE_ITEM
- const PARTYMENUACTION_MOBILE ; mobile
; PrintPartyMenuActionText arguments (see engine/pokemon/party_menu.asm)
const_def $f0
const PARTYMENUTEXT_HEAL_PSN
diff --git a/constants/mobile_constants.asm b/constants/mobile_constants.asm
deleted file mode 100644
index fc8b05a6..00000000
--- a/constants/mobile_constants.asm
+++ /dev/null
@@ -1,3 +0,0 @@
-; Mobile bank 5
-sMobileLoginPassword EQU $aa4b
-MOBILE_LOGIN_PASSWORD_LENGTH EQU 17
diff --git a/constants/scene_constants.asm b/constants/scene_constants.asm
index 67a0351c..2537d875 100644
--- a/constants/scene_constants.asm
+++ b/constants/scene_constants.asm
@@ -12,8 +12,6 @@ SCENE_FINISHED EQU 1
const SCENE_POKECENTER2F_LEAVE_TRADE_CENTER ; 1
const SCENE_POKECENTER2F_LEAVE_COLOSSEUM ; 2
const SCENE_POKECENTER2F_LEAVE_TIME_CAPSULE ; 3
- const SCENE_POKECENTER2F_LEAVE_MOBILE_TRADE_ROOM ; 4
- const SCENE_POKECENTER2F_LEAVE_MOBILE_BATTLE_ROOM ; 5
; wPowerPlantSceneID
const_def
diff --git a/constants/serial_constants.asm b/constants/serial_constants.asm
index 757292ee..5a59ceec 100644
--- a/constants/serial_constants.asm
+++ b/constants/serial_constants.asm
@@ -4,7 +4,6 @@
const LINK_TIMECAPSULE ; 1
const LINK_TRADECENTER ; 2
const LINK_COLOSSEUM ; 3
- const LINK_MOBILE ; 4
; hSerialReceive high nybbles
SERIAL_TIMECAPSULE EQU $60
diff --git a/constants/wram_constants.asm b/constants/wram_constants.asm
index 4f59a355..f2d67488 100644
--- a/constants/wram_constants.asm
+++ b/constants/wram_constants.asm
@@ -23,7 +23,6 @@ AUTO_INPUT EQU $ff
; wGameTimerPause:: ; d8b8
GAMETIMERPAUSE_TIMER_PAUSED_F EQU 0
-GAMETIMERPAUSE_MOBILE_7_F EQU 7
; wOptions:: ; d199
TEXT_DELAY_MASK EQU %111
@@ -149,7 +148,6 @@ NUM_OBJECTS EQU 16
const STATUSFLAGS_ROCKET_SIGNAL_F ; 4
const STATUSFLAGS_NO_WILD_ENCOUNTERS_F ; 5
const STATUSFLAGS_HALL_OF_FAME_F ; 6
- const STATUSFLAGS_MAIN_MENU_MOBILE_CHOICES_F ; 7
; wStatusFlags2:: ; d572
const_def
diff --git a/data/events/unused_pokemonpc_menudata.asm b/data/events/unused_pokemonpc_menudata.asm
deleted file mode 100644
index 24c23c24..00000000
--- a/data/events/unused_pokemonpc_menudata.asm
+++ /dev/null
@@ -1,30 +0,0 @@
-UnusedMenuData156be:
- db $06, $00, $4a, $06, $06, $50, $06, $06, $58, $1e, $40, $00, $00, $c7, $40
- db $06, $00, $4a, $06, $06, $50, $06, $06, $58, $4a, $40, $00, $00, $c7, $40
- db $06, $06, $5a, $06, $0c, $60, $06, $0c, $68, $1e, $40, $00, $00, $f7, $40
- db $70, $07, $44, $06, $00, $40, $06, $00, $48, $1e, $40, $00, $00, $97, $40
- db $37, $33, $61, $37, $d3, $65, $37, $d3, $69, $8e, $42, $00, $00, $27, $41
- db $07, $4c, $5e, $07, $2c, $62, $07, $2c, $66, $8e, $42, $00, $00, $57, $41
- db $07, $0c, $4c, $07, $3c, $50, $07, $3c, $54, $8e, $42, $00, $00, $87, $41
- db $07, $0c, $43, $07, $0c, $47, $07, $0c, $4b, $8e, $42, $00, $00, $b7, $41
- db $07, $3c, $55, $07, $4c, $59, $07, $4c, $5d, $d6, $40, $00, $00, $e7, $41
- db $08, $b1, $4a, $08, $81, $4e, $08, $81, $52, $8e, $42, $00, $00, $17, $42
- db $08, $81, $53, $08, $a1, $57, $08, $a1, $5b, $8e, $42, $00, $00, $47, $42
- db $08, $a1, $5c, $08, $51, $60, $08, $51, $64, $8e, $42, $00, $00, $77, $42
- db $07, $2c, $67, $07, $bc, $6a, $07, $bc, $6e, $8e, $42, $00, $00, $a7, $42
- db $08, $51, $65, $08, $51, $69, $08, $51, $6d, $8e, $42, $00, $00, $d7, $42
- db $0c, $00, $40, $0c, $e0, $44, $0c, $e0, $48, $06, $41, $00, $00, $07, $43
- db $06, $0c, $74, $06, $bc, $78, $06, $bc, $7c, $8e, $42, $00, $00, $37, $43
- db $08, $51, $6e, $08, $f1, $71, $08, $f1, $75, $8e, $42, $00, $00, $57, $44
- db $37, $73, $57, $37, $33, $5c, $37, $33, $60, $8e, $42, $00, $00, $b7, $44
- db $37, $d3, $6a, $37, $d3, $6e, $37, $d3, $72, $8e, $42, $00, $00, $e7, $44
- db $37, $d3, $73, $37, $93, $78, $37, $93, $7c, $8e, $42, $00, $00, $17, $45
- db $08, $81, $41, $08, $b1, $45, $08, $b1, $49, $26, $42, $00, $00, $67, $43
- db $07, $bc, $6f, $07, $4c, $73, $07, $4c, $77, $8e, $41, $00, $00, $97, $43
- db $0c, $e0, $49, $0c, $40, $4e, $0c, $40, $52, $1e, $40, $00, $00, $c7, $43
- db $0c, $40, $53, $0c, $70, $56, $0c, $70, $5a, $8e, $42, $00, $00, $f7, $43
- db $0c, $70, $5b, $0c, $c0, $5f, $0c, $c0, $63, $8e, $42, $00, $00, $27, $44
- db $0c, $c0, $64, $0c, $90, $68, $0c, $90, $6c, $8e, $42, $00, $00, $87, $44
- db $0c, $90, $6d, $0c, $d0, $71, $0c, $d0, $75, $da, $41, $00, $00, $77, $45
- db $0c, $d0, $76, $07, $4c, $73, $07, $4c, $77, $8e, $41, $00, $00, $97, $43
- db $0c, $10, $7a, $08, $f1, $76, $37, $93, $7d, $1e, $40, $00, $00, $a7, $45
diff --git a/data/maps/blocks.asm b/data/maps/blocks.asm
index 29f29355..7df01575 100644
--- a/data/maps/blocks.asm
+++ b/data/maps/blocks.asm
@@ -994,5 +994,3 @@ DragonsDenB1F_Blocks:
TohjoFalls_Blocks:
INCBIN "maps/TohjoFalls.blk"
-
- dr $dd773, $dfe92 ; XXX Probably not blockdata?
diff --git a/data/tilesets.asm b/data/tilesets.asm
new file mode 100644
index 00000000..bc1f1b2f
--- /dev/null
+++ b/data/tilesets.asm
@@ -0,0 +1,43 @@
+tileset: MACRO
+ dba \1GFX, \1Meta, \1Coll
+ dw \1Anim
+ dw NULL
+ dw \1PalMap
+ENDM
+
+; Associated data:
+; - The *GFX, *Meta, and *Coll are defined in gfx/tilesets.asm
+; - The *PalMap are defined in gfx/tileset_palette_maps.asm
+; - The *Anim are defined in engine/tilesets/tileset_anims.asm
+
+Tilesets::
+; entries correspond to TILESET_* constants
+ tileset Tileset0
+ tileset TilesetJohto
+ tileset TilesetJohtoModern
+ tileset TilesetKanto
+ tileset TilesetHouse
+ tileset TilesetPlayersHouse
+ tileset TilesetPokecenter
+ tileset TilesetGate
+ tileset TilesetPort
+ tileset TilesetLab
+ tileset TilesetFacility
+ tileset TilesetMart
+ tileset TilesetMansion
+ tileset TilesetGameCorner
+ tileset TilesetEliteFourRoom
+ tileset TilesetTraditionalHouse
+ tileset TilesetTrainStation
+ tileset TilesetChampionsRoom
+ tileset TilesetLighthouse
+ tileset TilesetPlayersRoom
+ tileset TilesetTower
+ tileset TilesetCave
+ tileset TilesetPark
+ tileset TilesetRuinsOfAlph
+ tileset TilesetRadioTower
+ tileset TilesetUnderground
+ tileset TilesetIcePath
+ tileset TilesetDarkCave
+ tileset TilesetForest
diff --git a/engine/battle/core.asm b/engine/battle/core.asm
index b3f97ecc..af102990 100644
--- a/engine/battle/core.asm
+++ b/engine/battle/core.asm
@@ -8036,7 +8036,7 @@ ShowLinkBattleParticipantsAfterEnd:
ld a, BANK(sLinkBattleStats)
call OpenSRAM
- call AddLastMobileBattleToLinkRecord
+ call AddLastBattleToLinkRecord
call ReadAndPrintLinkBattleRecord
call CloseSRAM
@@ -8300,7 +8300,7 @@ GetRoamMonSpecies:
ld hl, wRoamMon3Species
ret
-AddLastMobileBattleToLinkRecord:
+AddLastBattleToLinkRecord:
ld hl, wOTPlayerID
ld de, wStringBuffer1
ld bc, 2
diff --git a/engine/events/mom.asm b/engine/events/mom.asm
index c795bfff..f97bd852 100644
--- a/engine/events/mom.asm
+++ b/engine/events/mom.asm
@@ -450,7 +450,7 @@ Mom_ContinueMenuSetup:
lb bc, PRINTNUM_MONEY | PRINTNUM_LEADINGZEROS | 3, 6
call PrintNum
call UpdateSprites
- call CGBOnly_CopyTilemapAtOnce
+ call OpenAndCloseMenu_HDMATransferTilemapAndAttrmap
ret
Mom_Wait10Frames:
diff --git a/engine/events/overworld.asm b/engine/events/overworld.asm
index a0633db2..c169b7aa 100755
--- a/engine/events/overworld.asm
+++ b/engine/events/overworld.asm
@@ -219,7 +219,7 @@ CutDownTreeOrGrass:
CheckOverworldTileArrays: ; c87c (3:487c)
push bc
- ld a, [wd082]
+ ld a, [wMapTileset]
ld de, $3
call IsInArray
pop bc
@@ -762,7 +762,7 @@ TryEscapeFromDungeon:
EscapeFromDungeon:
ld hl, wDigWarpNumber
- ld de, wNextWarpNumber
+ ld de, wNextWarp
ld bc, $3
call CopyBytes
call FieldMoveGetPartyNick
@@ -859,9 +859,9 @@ TryTeleport:
jr .asm_cc9c
.asm_cc85
- ld a, [wd9fb]
+ ld a, [wLastSpawnMapGroup]
ld d, a
- ld a, [wd9fc]
+ ld a, [wLastSpawnMapNumber]
ld e, a
ld a, $5
ld hl, $5465
diff --git a/engine/events/pokemon_pc.asm b/engine/events/pokemon_pc.asm
index 7d3cc42e..e22a2ffc 100644
--- a/engine/events/pokemon_pc.asm
+++ b/engine/events/pokemon_pc.asm
@@ -1,5 +1,3 @@
-INCLUDE "data/events/unused_pokemonpc_menudata.asm"
-
PokemonCenterPC:
call PC_CheckPartyForPokemon
ret c
diff --git a/engine/events/whiteout.asm b/engine/events/whiteout.asm
index fd273b51..f8bfce12 100755
--- a/engine/events/whiteout.asm
+++ b/engine/events/whiteout.asm
@@ -57,9 +57,9 @@ HalveMoney:
ret
GetWhiteoutSpawn:
- ld a, [wd9fb]
+ ld a, [wLastSpawnMapGroup]
ld d, a
- ld a, [wd9fc]
+ ld a, [wLastSpawnMapNumber]
ld e, a
ld a, $05
diff --git a/engine/gfx/cgb_layouts.asm b/engine/gfx/cgb_layouts.asm
index 4392fed1..b1ea7644 100755
--- a/engine/gfx/cgb_layouts.asm
+++ b/engine/gfx/cgb_layouts.asm
@@ -63,7 +63,7 @@ Predef_LoadSGBLayoutCGB:
Function9376: ; 9376 (2:5376)
ld hl, PalPacket_a0d5 + 1
- ld de, wTempBGPals
+ ld de, wBGPals1
ld c, $4
call Function9ab7
ld hl, PalPacket_a0d5 + 1
@@ -71,7 +71,7 @@ Function9376: ; 9376 (2:5376)
ld c, $4
call Function9ab7
ld hl, PalPacket_a0d5 + 1
- ld de, wTempOBPals
+ ld de, wOBPals1
ld c, $2
call Function9ab7
jr asm_93e1
@@ -102,7 +102,7 @@ Function9399: ; 9399 (2:5399)
call Function9adb
ld hl, Palettes_ad39
call Function9adb
- ld de, wTempOBPals
+ ld de, wOBPals1
pop hl
call Function9adb
pop hl
@@ -122,23 +122,23 @@ asm_93e1:
hlcoord 0, 4, wAttrmap
lb bc, $8, $a
ld a, $0
- call Function9af1
+ call FillBoxCGB
hlcoord 10, 0, wAttrmap
lb bc, $7, $a
ld a, $1
- call Function9af1
+ call FillBoxCGB
hlcoord 0, 0, wAttrmap
lb bc, $4, $a
ld a, $2
- call Function9af1
+ call FillBoxCGB
hlcoord 10, 7, wAttrmap
lb bc, $5, $a
ld a, $3
- call Function9af1
+ call FillBoxCGB
hlcoord 10, 11, wAttrmap
lb bc, $1, $9
ld a, $4
- call Function9af1
+ call FillBoxCGB
hlcoord 0, 12, wAttrmap
ld bc, $78
ld a, $7
@@ -184,7 +184,7 @@ Function945e: ; 945e (2:545e)
hlcoord 0, 0, wAttrmap
lb bc, $8, $14
ld a, $1
- call Function9af1
+ call FillBoxCGB
hlcoord 10, 16, wAttrmap
ld bc, $a
ld a, $2
@@ -192,15 +192,15 @@ Function945e: ; 945e (2:545e)
hlcoord 13, 5, wAttrmap
lb bc, $2, $2
ld a, $3
- call Function9af1
+ call FillBoxCGB
hlcoord 15, 5, wAttrmap
lb bc, $2, $2
ld a, $4
- call Function9af1
+ call FillBoxCGB
hlcoord 17, 5, wAttrmap
lb bc, $2, $2
ld a, $5
- call Function9af1
+ call FillBoxCGB
call Function9b35
call Function9b28
ld a, $1
@@ -235,7 +235,7 @@ Function94f1: ; 94f1 (2:54f1)
hlcoord 1, 1, wAttrmap
lb bc, 7, 7
ld a, $1
- call Function9af1
+ call FillBoxCGB
jp Function9537
Function9502: ; 9502 (2:5502)
@@ -243,7 +243,7 @@ Function9502: ; 9502 (2:5502)
hlcoord 1, 1, wAttrmap
lb bc, 5, 5
ld a, $1
- call Function9af1
+ call FillBoxCGB
jp Function9537
Function9513: ; 9513 (2:5513)
@@ -310,7 +310,7 @@ Function9561: ; 9561 (2:5561)
hlcoord 1, 4, wAttrmap
lb bc, 7, 7
ld a, $1
- call Function9af1
+ call FillBoxCGB
call Function9b9c
call Function9b35
call Function9b28
@@ -332,7 +332,7 @@ asm_95b1:
hlcoord 1, 1, wAttrmap
lb bc, 7, 7
ld a, $1
- call Function9af1
+ call FillBoxCGB
call Function9b9c
call Function9b35
call Function9b28
@@ -347,7 +347,7 @@ Palettes_95cd:
RGB 0, 0, 0
Function95d5: ; 95d5 (2:55d5)
- ld de, wTempBGPals
+ ld de, wBGPals1
ld a, $1d
call Function9ac7
call Function9ad2
@@ -358,7 +358,7 @@ Function95d5: ; 95d5 (2:55d5)
hlcoord 7, 5, wAttrmap
lb bc, 7, 7
ld a, $1
- call Function9af1
+ call FillBoxCGB
call Function9b9c
call Function9b35
call Function9b28
@@ -368,46 +368,46 @@ Function95d5: ; 95d5 (2:55d5)
Function9605: ; 9605 (2:5605)
ld hl, Palettes_bbbe
- ld de, wTempBGPals
+ ld de, wBGPals1
ld bc, $80
call CopyBytes
call Function9b1d
hlcoord 0, 2, wAttrmap
lb bc, $a, $3
ld a, $2
- call Function9af1
+ call FillBoxCGB
hlcoord 17, 2, wAttrmap
lb bc, $a, $3
ld a, $2
- call Function9af1
+ call FillBoxCGB
hlcoord 0, 4, wAttrmap
lb bc, $6, $3
ld a, $3
- call Function9af1
+ call FillBoxCGB
hlcoord 17, 4, wAttrmap
lb bc, $6, $3
ld a, $3
- call Function9af1
+ call FillBoxCGB
hlcoord 0, 6, wAttrmap
lb bc, $2, $3
ld a, $4
- call Function9af1
+ call FillBoxCGB
hlcoord 17, 6, wAttrmap
lb bc, $2, $3
ld a, $4
- call Function9af1
+ call FillBoxCGB
hlcoord 4, 2, wAttrmap
lb bc, $2, $c
ld a, $1
- call Function9af1
+ call FillBoxCGB
hlcoord 3, 2, wAttrmap
lb bc, $a, $1
ld a, $1
- call Function9af1
+ call FillBoxCGB
hlcoord 16, 2, wAttrmap
lb bc, $a, $1
ld a, $1
- call Function9af1
+ call FillBoxCGB
hlcoord 0, 12, wAttrmap
ld bc, $78
ld a, $7
@@ -422,14 +422,14 @@ Function968d: ; 968d (2:568d)
ld hl, PalPacket_a115 + 1
call Function9ab2
call Function9b1d
- ld de, wTempOBPals
+ ld de, wOBPals1
ld a, $3c
call Function9ac7
call Function9ad2
hlcoord 0, 6, wAttrmap
lb bc, $c, $14
ld a, $1
- call Function9af1
+ call FillBoxCGB
call Function9b35
call Function9b28
ld a, $1
@@ -484,7 +484,7 @@ Function96f9:
ld a, $38
call Function9ac7
call Function9ad2
- ld de, wTempOBPals
+ ld de, wOBPals1
ld a, $39
call Function9ac7
.asm_970b
@@ -495,7 +495,7 @@ Function96f9:
Function9713:
ld hl, PalPacket_a0a5 + 1
call Function9ab2
- ld de, wTempOBPals
+ ld de, wOBPals1
ld a, $3a
call Function9ac7
call Function9ad2
@@ -504,7 +504,7 @@ Function9713:
Function9728: ; 9728 (2:5728)
ld hl, Palettes_bb9e
- ld de, wTempBGPals
+ ld de, wBGPals1
ld bc, $28
call CopyBytes
call Function9b28
@@ -514,7 +514,7 @@ Function9728: ; 9728 (2:5728)
Function973e: ; 973e (2:573e)
ld hl, Palettes_ba86
- ld de, wTempBGPals
+ ld de, wBGPals1
ld bc, $80
call CopyBytes
ld hl, PalPacket_a125 + 1
@@ -574,7 +574,7 @@ Function97af: ; 97af (2:57af)
ld bc, $28
call CopyBytes
ld hl, Palettes_bb5e
- ld de, wTempOBPals
+ ld de, wOBPals1
ld bc, $10
call CopyBytes
ld a, $8
@@ -594,7 +594,7 @@ Function97d4: ; 97d4 (2:57d4)
Function97e1: ; 97e1 (2:57e1)
ld hl, PalPacket_a035 + 1
call Function9ab2
- ld de, wTempOBPals
+ ld de, wOBPals1
ld a, $4c
call Function9ac7
call Function9ad2
@@ -643,37 +643,37 @@ Function9802: ; 9802 (2:5802)
hlcoord 14, 1, wAttrmap
lb bc, $7, $5
xor a
- call Function9af1
+ call FillBoxCGB
hlcoord 18, 1, wAttrmap
ld [hl], $1
hlcoord 2, 11, wAttrmap
lb bc, $2, $4
ld a, $1
- call Function9af1
+ call FillBoxCGB
hlcoord 6, 11, wAttrmap
lb bc, $2, $4
ld a, $2
- call Function9af1
+ call FillBoxCGB
hlcoord 10, 11, wAttrmap
lb bc, $2, $4
ld a, $3
- call Function9af1
+ call FillBoxCGB
hlcoord 14, 11, wAttrmap
lb bc, $2, $4
ld a, $4
- call Function9af1
+ call FillBoxCGB
hlcoord 2, 14, wAttrmap
lb bc, $2, $4
ld a, $5
- call Function9af1
+ call FillBoxCGB
hlcoord 6, 14, wAttrmap
lb bc, $2, $4
ld a, $6
- call Function9af1
+ call FillBoxCGB
hlcoord 10, 14, wAttrmap
lb bc, $2, $4
ld a, $7
- call Function9af1
+ call FillBoxCGB
call Function9b35
call Function9b28
ld a, $1
@@ -681,7 +681,7 @@ Function9802: ; 9802 (2:5802)
ret
Function98be: ; 98be (2:58be)
- ld de, wTempBGPals
+ ld de, wBGPals1
ld a, $10
call Function9ac7
call Function9ad2
@@ -697,7 +697,7 @@ Function98be: ; 98be (2:58be)
hlcoord 11, 1, wAttrmap
lb bc, $2, $9
ld a, $1
- call Function9af1
+ call FillBoxCGB
call Function9b35
call Function9b28
ld a, $1
@@ -715,7 +715,7 @@ Function98f1: ; 98f1 (2:58f1)
ret
Function9905: ; 9905 (2:5905)
- ld de, wTempBGPals
+ ld de, wBGPals1
ld a, $1d
call Function9ac7
call Function9ad2
@@ -727,7 +727,7 @@ Function9905: ; 9905 (2:5905)
ret
Function991e: ; 991e (2:591e)
- ld de, wTempBGPals
+ ld de, wBGPals1
ld hl, Palettes_996f
ld bc, $40
call CopyBytes
@@ -735,23 +735,23 @@ Function991e: ; 991e (2:591e)
hlcoord 0, 0, wAttrmap
lb bc, $1, $a
ld a, $1
- call Function9af1
+ call FillBoxCGB
hlcoord 10, 0, wAttrmap
lb bc, $1, $a
ld a, $2
- call Function9af1
+ call FillBoxCGB
hlcoord 7, 2, wAttrmap
lb bc, $9, $1
ld a, $3
- call Function9af1
+ call FillBoxCGB
hlcoord 0, 7, wAttrmap
lb bc, $3, $5
ld a, $4
- call Function9af1
+ call FillBoxCGB
hlcoord 0, 3, wAttrmap
lb bc, $3, $5
ld a, $5
- call Function9af1
+ call FillBoxCGB
call Function9b35
call Function9b28
ld a, $1
@@ -820,7 +820,7 @@ Function999f: ; 999f (2:599f)
inc a
ld c, a
ld a, $0
- call Function9af1
+ call FillBoxCGB
call Function9b35
ret
@@ -831,11 +831,11 @@ Function99d9: ; 99d9 (2:59d9)
hlcoord 0, 4, wAttrmap
lb bc, $a, $14
ld a, $2
- call Function9af1
+ call FillBoxCGB
hlcoord 0, 6, wAttrmap
lb bc, $6, $14
ld a, $1
- call Function9af1
+ call FillBoxCGB
call Function9b35
call Function9b28
ld a, $1
diff --git a/engine/gfx/color.asm b/engine/gfx/color.asm
index a807ff09..dd39d6de 100755
--- a/engine/gfx/color.asm
+++ b/engine/gfx/color.asm
@@ -121,11 +121,11 @@ Function9102:
call CheckCGB
ret z
ld hl, .BGPal
- ld de, wTempBGPals
+ ld de, wBGPals1
ld bc, $8
call CopyBytes
ld hl, .OBPal
- ld de, wTempOBPals
+ ld de, wOBPals1
ld bc, $8
call CopyBytes
call Function9b28
@@ -164,7 +164,7 @@ Function9144:
jp PushSGBPals_
.asm_9153
- ld de, wTempOBPals
+ ld de, wOBPals1
ld a, $3b
call Function9ac7
jp Function9ad2
@@ -179,7 +179,7 @@ Function915e:
jp PushSGBPals_
.asm_916d
- ld de, wTempOBPals
+ ld de, wOBPals1
ld a, $3c
call Function9ac7
jp Function9ad2
@@ -210,7 +210,7 @@ Function9178:
jp PushSGBPals_
.asm_91a9
- ld de, wTempOBPals
+ ld de, wOBPals1
ld a, c
call Function9be4
call Function9adb
@@ -242,7 +242,7 @@ Function91b4:
lb bc, 6, 4
ld a, [wc605]
and $3
- call Function9af1
+ call FillBoxCGB
call CopyTilemapAtOnce
ret
@@ -260,7 +260,7 @@ ApplyMonOrTrainerPals: ; 91e5 (2:51e5)
ld a, [wTrainerClass]
call Function9bda
.asm_91fb
- ld de, wTempBGPals
+ ld de, wBGPals1
call Function9adb
call Function9b1d
call Function9b35
@@ -312,7 +312,7 @@ ApplyHPBarPals:
.asm_9248
lb bc, 2, 8
ld a, e
- call Function9af1
+ call FillBoxCGB
ret
LoadStatsScreenPals:
@@ -324,11 +324,11 @@ LoadStatsScreenPals:
add hl, bc
add hl, bc
ld a, [hli]
- ld [wTempBGPals], a
- ld [wTempBGPals + $10], a
+ ld [wBGPals1], a
+ ld [wBGPals1 + $10], a
ld a, [hl]
- ld [wTempBGPals + 1], a
- ld [wTempBGPals + $11], a
+ ld [wBGPals1 + 1], a
+ ld [wBGPals1 + $11], a
call Function9b28
ld a, $1
ldh [hCGBPalUpdate], a
@@ -367,7 +367,7 @@ LoadMailPalettes:
ret
.asm_92ae
- ld de, wTempBGPals
+ ld de, wBGPals1
ld bc, $8
call CopyBytes
call Function9b28
@@ -382,7 +382,7 @@ INCLUDE "engine/gfx/cgb_layouts.asm"
Function9a94: ; 9a94 (2:5a94)
ld hl, Palettes_9aaa
- ld de, wTempBGPals
+ ld de, wBGPals1
ld bc, $8
call CopyBytes
call Function9b28
@@ -397,7 +397,7 @@ Palettes_9aaa:
RGB 0, 3, 19
Function9ab2: ; 9ab2 (2:5ab2)
- ld de, wTempBGPals
+ ld de, wBGPals1
ld c, $4
Function9ab7: ; 9ab7 (2:5ab7)
push bc
@@ -453,7 +453,7 @@ Function9adb: ; 9adb (2:5adb)
inc de
ret
-Function9af1: ; 9af1 (2:5af1)
+FillBoxCGB: ; 9af1 (2:5af1)
push bc
push hl
.asm_9af3
@@ -465,7 +465,7 @@ Function9af1: ; 9af1 (2:5af1)
add hl, bc
pop bc
dec b
- jr nz, Function9af1
+ jr nz, FillBoxCGB
ret
Function9b01: ; 9b01 (2:5b01)
@@ -473,7 +473,7 @@ Function9b01: ; 9b01 (2:5b01)
push bc
push de
push hl
- ld hl, wTempBGPals
+ ld hl, wBGPals1
ld c, $8
.asm_9b0a
ld a, $ff
@@ -502,8 +502,8 @@ Function9b1d: ; 9b1d (2:5b1d)
ret
Function9b28: ; 9b28 (2:5b28)
- ld hl, wTempBGPals
- ld de, wBGPals
+ ld hl, wBGPals1
+ ld de, wBGPals2
ld bc, $80
call CopyBytes
ret
@@ -574,7 +574,7 @@ Function9b75: ; 9b75 (2:5b75)
.asm_9b94
lb bc, 2, 8
ld a, e
- call Function9af1
+ call FillBoxCGB
ret
Function9b9c: ; 9b9c (2:5b9c)
@@ -836,9 +836,9 @@ InitCGBPals:: ; 9cfd (2:5cfd)
ldh [rOBPD], a
dec c
jr nz, .asm_9d2a
- ld hl, wTempBGPals
+ ld hl, wBGPals1
call Function9d3e
- ld hl, wBGPals
+ ld hl, wBGPals2
Function9d3e: ; 9d3e (2:5d3e)
ld c, $40
.asm_9d40
@@ -1332,7 +1332,7 @@ INCLUDE "data/pokemon/palettes.asm"
INCLUDE "data/trainers/palettes.asm"
Functionb649: ; b649 (2:7649)
- ld a, [wPermission]
+ ld a, [wEnvironment]
and $7
ld e, a
ld d, $0
@@ -1352,7 +1352,7 @@ Functionb649: ; b649 (2:7649)
add hl, de
ld e, l
ld d, h
- ld hl, wTempBGPals
+ ld hl, wBGPals1
ld b, $8
.asm_b66c
ld a, [de]
@@ -1387,7 +1387,7 @@ Functionb649: ; b649 (2:7649)
ld de, wTempOBPal0
ld bc, $40
call CopyBytes
- ld a, [wPermission]
+ ld a, [wEnvironment]
cp $1
jr z, .asm_b6aa
cp $2
diff --git a/engine/gfx/sgb_layouts.asm b/engine/gfx/sgb_layouts.asm
index 623bbbca..b26db675 100755
--- a/engine/gfx/sgb_layouts.asm
+++ b/engine/gfx/sgb_layouts.asm
@@ -518,7 +518,7 @@ Function8ff6: ; 8ff6 (2:4ff6)
ret
.asm_9000
- ld a, [wPermission]
+ ld a, [wEnvironment]
cp $2
jr z, .asm_9023
cp $4
diff --git a/engine/menus/naming_screen.asm b/engine/menus/naming_screen.asm
index 4a86b58d..2f19b989 100644
--- a/engine/menus/naming_screen.asm
+++ b/engine/menus/naming_screen.asm
@@ -209,11 +209,11 @@ Function11c48: ; 11c48 (4:5c48)
jr asm_11c4f
asm_11c4f:
- ld [wc5d3], a
+ ld [wNamingScreenMaxNameLength], a
ld a, l
- ld [wc5d8], a
+ ld [wNamingScreenStringEntryCoord], a
ld a, h
- ld [wc5d9], a
+ ld [wNamingScreenStringEntryCoord + 1], a
ret
Function11c5b: ; 11c5b (4:5c5b)
@@ -319,7 +319,7 @@ Function11cff: ; 11cff (4:5cff)
ld e, [hl]
inc hl
ld d, [hl]
- ld hl, wc5d8
+ ld hl, wNamingScreenStringEntryCoord
ld a, [hli]
ld h, [hl]
ld l, a
@@ -353,9 +353,9 @@ Function11d3a:
ld a, $14
call InitSpriteAnimStruct
ld a, c
- ld [wc5d5], a
+ ld [wNamingScreenCursorObjectPointer], a
ld a, b
- ld [wc5d6], a
+ ld [wNamingScreenCursorObjectPointer + 1], a
ld hl, $1
add hl, bc
ld a, [hl]
@@ -394,7 +394,7 @@ Function11d60:
call Function11ed3
ret nc
.asm_11d8e
- ld hl, wc5d5
+ ld hl, wNamingScreenCursorObjectPointer
ld c, [hl]
inc hl
ld b, [hl]
@@ -435,7 +435,7 @@ Function11d60:
ret
Function11dca: ; 11dca (4:5dca)
- ld hl, wc5d5
+ ld hl, wNamingScreenCursorObjectPointer
ld c, [hl]
inc hl
ld b, [hl]
@@ -634,7 +634,7 @@ Function11e4a: ; 11e4a (4:5e4a)
ret
Function11ed3: ; 11ed3 (4:5ed3)
- ld a, [wc5d7]
+ ld a, [wNamingScreenLastCharacter]
ld hl, Dakutens
cp $e5
jr z, asm_11f06
@@ -642,17 +642,17 @@ Function11ed3: ; 11ed3 (4:5ed3)
cp $e4
jr z, asm_11f06
Function11ee4: ; 11ee4 (4:5ee4)
- ld a, [wc5d3]
+ ld a, [wNamingScreenMaxNameLength]
ld c, a
- ld a, [wc5d2]
+ ld a, [wNamingScreenCurNameLength]
cp c
ret nc
- ld a, [wc5d7]
+ ld a, [wNamingScreenLastCharacter]
asm_11ef0:
call Function11f9d
ld [hl], a
asm_11ef4:
- ld hl, wc5d2
+ ld hl, wNamingScreenCurNameLength
inc [hl]
call Function11f9d
ld a, [hl]
@@ -667,11 +667,11 @@ asm_11ef4:
ret
asm_11f06:
- ld a, [wc5d2]
+ ld a, [wNamingScreenCurNameLength]
and a
ret z
push hl
- ld hl, wc5d2
+ ld hl, wNamingScreenCurNameLength
dec [hl]
call Function11f9d
ld c, [hl]
@@ -706,7 +706,7 @@ Handakutens: ; Dummied out
db $ff
Function11f89: ; 11f89 (4:5f89)
- ld hl, wc5d2
+ ld hl, wNamingScreenCurNameLength
ld a, [hl]
and a
ret z
@@ -726,7 +726,7 @@ Function11f9d: ; 11f9d (4:5f9d)
ld a, [hli]
ld h, [hl]
ld l, a
- ld a, [wc5d2]
+ ld a, [wNamingScreenCurNameLength]
ld e, a
ld d, $0
add hl, de
@@ -740,7 +740,7 @@ Function11fad: ; 11fad (4:5fad)
ld l, a
ld [hl], $f2
inc hl
- ld a, [wc5d3]
+ ld a, [wNamingScreenMaxNameLength]
dec a
ld c, a
ld a, $eb
@@ -756,7 +756,7 @@ Function11fc4: ; 11fc4 (4:5fc4)
ld a, [hli]
ld h, [hl]
ld l, a
- ld a, [wc5d3]
+ ld a, [wNamingScreenMaxNameLength]
ld c, a
.asm_11fce
ld a, [hl]
@@ -773,7 +773,7 @@ Function11fc4: ; 11fc4 (4:5fc4)
ret
Function11fde: ; 11fde (4:5fde)
- ld hl, wc5d5
+ ld hl, wNamingScreenCursorObjectPointer
ld c, [hl]
inc hl
ld b, [hl]
@@ -812,7 +812,7 @@ Function11fde: ; 11fde (4:5fde)
.asm_12018
add hl, de
ld a, [hl]
- ld [wc5d7], a
+ ld [wNamingScreenLastCharacter], a
ret
Function1201e: ; 1201e (4:601e)
@@ -850,7 +850,7 @@ Function1201e: ; 1201e (4:601e)
ld [wce63], a
ld [wce64], a
ldh [hBGMapMode], a
- ld [wc5d2], a
+ ld [wNamingScreenCurNameLength], a
ld a, $7
ldh [hWX], a
ret
@@ -961,7 +961,7 @@ MailIcon: INCBIN "gfx/icons/mail_big.2bpp"
Function12341: ; 12341 (4:6341)
ld a, $21
- ld [wc5d3], a
+ ld [wNamingScreenMaxNameLength], a
ret
db "メールを かいてね@"
@@ -1057,9 +1057,9 @@ Function123e8:
ld a, $1b
call InitSpriteAnimStruct
ld a, c
- ld [wc5d5], a
+ ld [wNamingScreenCursorObjectPointer], a
ld a, b
- ld [wc5d6], a
+ ld [wNamingScreenCursorObjectPointer + 1], a
ld hl, $1
add hl, bc
ld a, [hl]
@@ -1097,7 +1097,7 @@ Function12407:
call Function11fde
call Function12579
jr c, .asm_12447
- ld hl, wc5d2
+ ld hl, wNamingScreenCurNameLength
ld a, [hl]
cp $10
ret nz
@@ -1109,7 +1109,7 @@ Function12407:
ret
.asm_12447
- ld hl, wc5d5
+ ld hl, wNamingScreenCursorObjectPointer
ld c, [hl]
inc hl
ld b, [hl]
@@ -1123,7 +1123,7 @@ Function12407:
.asm_1245a
call Function11f89
- ld hl, wc5d2
+ ld hl, wNamingScreenCurNameLength
ld a, [hl]
cp $10
ret nz
@@ -1301,7 +1301,7 @@ Function124d9: ; 124d9 (4:64d9)
ret
Function12552: ; 12552 (4:6552)
- ld hl, wc5d5
+ ld hl, wNamingScreenCursorObjectPointer
ld c, [hl]
inc hl
ld b, [hl]
@@ -1334,7 +1334,7 @@ Function12558: ; 12558 (4:6558)
ret
Function12579: ; 12579 (4:6579)
- ld a, [wc5d7]
+ ld a, [wNamingScreenLastCharacter]
ld hl, $5f23
cp $e5
jr z, .asm_1258b
@@ -1342,20 +1342,20 @@ Function12579: ; 12579 (4:6579)
cp $e4
jp nz, Function11ee4
.asm_1258b
- ld a, [wc5d2]
+ ld a, [wNamingScreenCurNameLength]
and a
ret z
cp $11
jr nz, .asm_1259c
push hl
- ld hl, wc5d2
+ ld hl, wNamingScreenCurNameLength
dec [hl]
dec [hl]
jr .asm_125a1
.asm_1259c
push hl
- ld hl, wc5d2
+ ld hl, wNamingScreenCurNameLength
dec [hl]
.asm_125a1
call Function11f9d
diff --git a/engine/overworld/init_map.asm b/engine/overworld/init_map.asm
index 37a5207c..5771bd9e 100644
--- a/engine/overworld/init_map.asm
+++ b/engine/overworld/init_map.asm
@@ -19,7 +19,7 @@ Function656b: ; 656b (1:656b)
xor a
ldh [hLCDCPointer], a
ldh [hBGMapMode], a
- ld hl, wd565
+ ld hl, wEnteredMapFromContinue
set 7, [hl]
res 2, [hl]
ld a, $90
@@ -35,9 +35,9 @@ Function656b: ; 656b (1:656b)
call .LoadBGMapAddrIntoHRAM
call .WaitTransfer
xor a
- ld [wd05b], a
+ ld [wBGMapAnchor], a
ld a, $98
- ld [wd05c], a
+ ld [wBGMapAnchor + 1], a
xor a
ldh [hSCX], a
ldh [hSCY], a
diff --git a/engine/overworld/map_objects.asm b/engine/overworld/map_objects.asm
index 6909af22..07b53007 100755
--- a/engine/overworld/map_objects.asm
+++ b/engine/overworld/map_objects.asm
@@ -924,7 +924,7 @@ Function5714: ; 5714 (1:5714)
jr nz, .asm_5718
ret
-Function5730:: ; 5730 (1:5730)
+RefreshPlayerSprite:: ; 5730 (1:5730)
ld a, $3e
ld [wce87], a
ld [wce88], a
diff --git a/engine/overworld/player_movement.asm b/engine/overworld/player_movement.asm
index 1ac7fc6a..5fdca29c 100755
--- a/engine/overworld/player_movement.asm
+++ b/engine/overworld/player_movement.asm
@@ -378,7 +378,7 @@ Function10226: ; 10226 (4:4226)
and $3
cp e
jr nz, .asm_10259
- call Function22a5
+ call WarpCheck
jr nc, .asm_10259
call Function102b3
scf
diff --git a/engine/overworld/player_step.asm b/engine/overworld/player_step.asm
index a946fca6..8e250295 100755
--- a/engine/overworld/player_step.asm
+++ b/engine/overworld/player_step.asm
@@ -13,7 +13,7 @@ HandlePlayerStep_::
.asm_d4b6
ld a, $4
ld [wHandlePlayerStep], a
- call Functiond53c
+ call UpdateOverworldMap
jr .asm_d4c5
.asm_d4c0
@@ -106,98 +106,98 @@ Functiond517: ; d517 (3:5517)
inc [hl]
ret
-Functiond53c: ; d53c (3:553c)
+UpdateOverworldMap:
ld a, [wPlayerStepDirection]
and a
- jr z, .asm_d54f
- cp $1
- jr z, .asm_d559
- cp $2
- jr z, .asm_d563
- cp $3
- jr z, .asm_d56d
+ jr z, .step_down
+ cp UP
+ jr z, .step_up
+ cp LEFT
+ jr z, .step_left
+ cp RIGHT
+ jr z, .step_right
ret
-.asm_d54f
- call Functiond577
+.step_down
+ call .ScrollOverworldMapDown
call LoadMapPart
- call ScrollMapUp
+ call ScrollMapDown
ret
-.asm_d559
- call Functiond5a8
+.step_up
+ call .ScrollOverworldMapUp
call LoadMapPart
- call ScrollMapDown
+ call ScrollMapUp
ret
-.asm_d563
- call Functiond5db
+.step_left
+ call .ScrollOverworldMapLeft
call LoadMapPart
- call ScrollMapRight
+ call ScrollMapLeft
ret
-.asm_d56d
- call Functiond604
+.step_right
+ call .ScrollOverworldMapRight
call LoadMapPart
- call ScrollMapLeft
+ call ScrollMapRight
ret
-Functiond577: ; d577 (3:5577)
- ld a, [wd05b]
- add $40
- ld [wd05b], a
- jr nc, .asm_d58c
- ld a, [wd05c]
+.ScrollOverworldMapDown:
+ ld a, [wBGMapAnchor]
+ add 2 * BG_MAP_WIDTH
+ ld [wBGMapAnchor], a
+ jr nc, .not_overflowed
+ ld a, [wBGMapAnchor + 1]
inc a
- and $3
- or $98
- ld [wd05c], a
-.asm_d58c
+ and %11
+ or HIGH(vBGMap0)
+ ld [wBGMapAnchor + 1], a
+.not_overflowed
ld hl, wMetatileStandingY
inc [hl]
ld a, [hl]
- cp $2
- jr nz, .asm_d59a
- ld [hl], $0
- call Functiond59b
-.asm_d59a
+ cp 2 ; was 1
+ jr nz, .done_down
+ ld [hl], 0
+ call .ScrollMapDataDown
+.done_down
ret
-Functiond59b: ; d59b (3:559b)
+.ScrollMapDataDown:
ld hl, wOverworldMapAnchor
ld a, [wMapWidth]
- add $6
+ add 3 * 2 ; surrounding tiles
add [hl]
ld [hli], a
ret nc
inc [hl]
ret
-Functiond5a8: ; d5a8 (3:55a8)
- ld a, [wd05b]
- sub $40
- ld [wd05b], a
- jr nc, .asm_d5bd
- ld a, [wd05c]
+.ScrollOverworldMapUp:
+ ld a, [wBGMapAnchor]
+ sub 2 * BG_MAP_WIDTH
+ ld [wBGMapAnchor], a
+ jr nc, .not_underflowed
+ ld a, [wBGMapAnchor + 1]
dec a
- and $3
- or $98
- ld [wd05c], a
-.asm_d5bd
+ and %11
+ or HIGH(vBGMap0)
+ ld [wBGMapAnchor + 1], a
+.not_underflowed
ld hl, wMetatileStandingY
dec [hl]
ld a, [hl]
- cp $ff
- jr nz, .asm_d5cb
+ cp -1 ; was 0
+ jr nz, .done_up
ld [hl], $1
- call Functiond5cc
-.asm_d5cb
+ call .ScrollMapDataUp
+.done_up
ret
-Functiond5cc: ; d5cc (3:55cc)
+.ScrollMapDataUp:
ld hl, wOverworldMapAnchor
ld a, [wMapWidth]
- add $6
+ add 3 * 2 ; surrounding tiles
ld b, a
ld a, [hl]
sub b
@@ -206,8 +206,8 @@ Functiond5cc: ; d5cc (3:55cc)
dec [hl]
ret
-Functiond5db: ; d5db (3:55db)
- ld a, [wd05b]
+.ScrollOverworldMapLeft:
+ ld a, [wBGMapAnchor]
ld e, a
and $e0
ld d, a
@@ -215,28 +215,28 @@ Functiond5db: ; d5db (3:55db)
sub $2
and $1f
or d
- ld [wd05b], a
+ ld [wBGMapAnchor], a
ld hl, wMetatileStandingX
dec [hl]
ld a, [hl]
- cp $ff
- jr nz, .asm_d5f9
- ld [hl], $1
- call Functiond5fa
-.asm_d5f9
+ cp -1
+ jr nz, .done_left
+ ld [hl], 1
+ call .ScrollMapDataLeft
+.done_left
ret
-Functiond5fa: ; d5fa (3:55fa)
+.ScrollMapDataLeft:
ld hl, wOverworldMapAnchor
ld a, [hl]
- sub $1
+ sub 1
ld [hli], a
ret nc
dec [hl]
ret
-Functiond604: ; d604 (3:5604)
- ld a, [wd05b]
+.ScrollOverworldMapRight:
+ ld a, [wBGMapAnchor]
ld e, a
and $e0
ld d, a
@@ -244,21 +244,21 @@ Functiond604: ; d604 (3:5604)
add $2
and $1f
or d
- ld [wd05b], a
+ ld [wBGMapAnchor], a
ld hl, wMetatileStandingX
inc [hl]
ld a, [hl]
- cp $2
- jr nz, .asm_d622
- ld [hl], $0
- call Functiond623
-.asm_d622
+ cp 2
+ jr nz, .done_right
+ ld [hl], 0
+ call .ScrollMapDataRight
+.done_right
ret
-Functiond623: ; d623 (3:5623)
+.ScrollMapDataRight:
ld hl, wOverworldMapAnchor
ld a, [hl]
- add $1
+ add 1
ld [hli], a
ret nc
inc [hl]
diff --git a/engine/overworld/variables.asm b/engine/overworld/variables.asm
index b40a8a51..445440d2 100755
--- a/engine/overworld/variables.asm
+++ b/engine/overworld/variables.asm
@@ -49,7 +49,7 @@ GetVarAction_::
dwb wMapGroup, RETVAR_STRBUF2
dwb wMapNumber, RETVAR_STRBUF2
dwb .UnownCaught, RETVAR_EXECUTE
- dwb wPermission, RETVAR_STRBUF2
+ dwb wEnvironment, RETVAR_STRBUF2
dwb .BoxFreeSpace, RETVAR_EXECUTE
dwb wBugContestMinsRemaining, RETVAR_STRBUF2
dwb wXCoord, RETVAR_STRBUF2
diff --git a/gfx/tilesets/palette_maps.asm b/gfx/tilesets/palette_maps.asm
index 9b2346fc..e6754e9a 100755
--- a/gfx/tilesets/palette_maps.asm
+++ b/gfx/tilesets/palette_maps.asm
@@ -1,4 +1,4 @@
-TilesetPalMap_8097:
+TilesetKantoPalMap:
tilepal GRAY, BROWN, BROWN, RED, BROWN, ROOF, ROOF, ROOF
tilepal ROOF, ROOF, YELLOW, YELLOW, YELLOW, GRAY, BROWN, GRAY
tilepal GRAY, BROWN, ROOF, BROWN, WATER, ROOF, ROOF, ROOF
@@ -12,7 +12,8 @@ TilesetPalMap_8097:
tilepal GREEN, GREEN, GREEN, ROOF, BROWN, BROWN, BROWN, BROWN
tilepal BROWN, BROWN, GRAY, BROWN, GRAY, GRAY, GRAY, GRAY
-TilesetPalMap_80c7:
+Tileset0PalMap:
+TilesetJohtoPalMap:
tilepal GRAY, BROWN, BROWN, RED, GREEN, GREEN, GRAY, RED
tilepal RED, RED, ROOF, ROOF, ROOF, ROOF, ROOF, ROOF
tilepal ROOF, ROOF, ROOF, GREEN, WATER, GREEN, BROWN, BROWN
@@ -26,7 +27,7 @@ TilesetPalMap_80c7:
tilepal BROWN, BROWN, BROWN, BROWN, BROWN, BROWN, BROWN, BROWN
tilepal WATER, GRAY, GRAY, GRAY, BROWN, BROWN, GRAY, GRAY
-TilesetPalMap_80f7:
+TilesetJohtoModernPalMap:
tilepal GRAY, BROWN, BROWN, RED, GREEN, GREEN, GRAY, ROOF
tilepal RED, RED, ROOF, ROOF, ROOF, ROOF, ROOF, ROOF
tilepal ROOF, ROOF, ROOF, GREEN, WATER, GREEN, BROWN, BROWN
@@ -40,7 +41,7 @@ TilesetPalMap_80f7:
tilepal GRAY, BROWN, BROWN, GRAY, BROWN, GRAY, GRAY, GRAY
tilepal WATER, GRAY, GRAY, GRAY, BROWN, BROWN, GRAY, GRAY
-TilesetPalMap_8127:
+TilesetHousePalMap:
tilepal WATER, RED, RED, RED, RED, BROWN, WATER, WATER
tilepal GREEN, GREEN, GREEN, GREEN, WATER, WATER, BROWN, BROWN
tilepal BROWN, BROWN, RED, RED, RED, BROWN, WATER, WATER
@@ -54,7 +55,7 @@ TilesetPalMap_8127:
tilepal RED, RED, BROWN, BROWN, GREEN, YELLOW, BROWN, BROWN
tilepal GRAY, GRAY, GRAY, GRAY, BROWN, BROWN, BROWN, BROWN
-TilesetPalMap_8157:
+TilesetPlayersHousePalMap:
tilepal GRAY, BROWN, BROWN, BROWN, RED, GREEN, WATER, WATER
tilepal BROWN, BROWN, GRAY, GRAY, GRAY, GRAY, BROWN, BROWN
tilepal BROWN, BROWN, BROWN, BROWN, RED, BROWN, WATER, WATER
@@ -68,7 +69,7 @@ TilesetPalMap_8157:
tilepal GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
tilepal GRAY, GRAY, BROWN, BROWN, BROWN, BROWN, BROWN, BROWN
-TilesetPalMap_8187:
+TilesetPokecenterPalMap:
tilepal GRAY, RED, GRAY, WATER, WATER, WATER, ROOF, ROOF
tilepal GRAY, GRAY, GRAY, GRAY, GRAY, WATER, WATER, WATER
tilepal GRAY, RED, RED, WATER, WATER, WATER, WATER, WATER
@@ -82,7 +83,7 @@ TilesetPalMap_8187:
tilepal RED, RED, RED, RED, RED, RED, GRAY, GRAY
tilepal YELLOW, YELLOW, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
-TilesetPalMap_81b7:
+TilesetGatePalMap:
tilepal GRAY, GRAY, WATER, WATER, RED, GREEN, GREEN, GREEN
tilepal GREEN, GREEN, GRAY, GRAY, GRAY, GRAY, GREEN, GREEN
tilepal WATER, GRAY, WATER, WATER, RED, BROWN, BROWN, WATER
@@ -96,7 +97,7 @@ TilesetPalMap_81b7:
tilepal GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
tilepal GRAY, GRAY, GRAY, GRAY, WATER, WATER, GRAY, GRAY
-TilesetPalMap_81e7:
+TilesetPortPalMap:
tilepal GRAY, WATER, WATER, GRAY, GRAY, RED, BROWN, BROWN
tilepal BROWN, BROWN, GRAY, GRAY, RED, RED, RED, BROWN
tilepal ROOF, WATER, WATER, WATER, WATER, RED, BROWN, BROWN
@@ -110,7 +111,7 @@ TilesetPalMap_81e7:
tilepal ROOF, ROOF, ROOF, ROOF, ROOF, ROOF, ROOF, ROOF
tilepal ROOF, ROOF, ROOF, ROOF, ROOF, ROOF, ROOF, ROOF
-TilesetPalMap_8217:
+TilesetLabPalMap:
tilepal GRAY, WATER, RED, BROWN, BROWN, BROWN, BROWN, BROWN
tilepal WATER, WATER, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
tilepal GRAY, WATER, RED, BROWN, BROWN, BROWN, BROWN, BROWN
@@ -124,7 +125,7 @@ TilesetPalMap_8217:
tilepal ROOF, ROOF, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
tilepal GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
-TilesetPalMap_8247:
+TilesetFacilityPalMap:
tilepal GRAY, WATER, BROWN, BROWN, BROWN, BROWN, BROWN, BROWN
tilepal BROWN, BROWN, GRAY, GRAY, RED, RED, BROWN, BROWN
tilepal ROOF, ROOF, BROWN, BROWN, BROWN, BROWN, GRAY, GRAY
@@ -138,7 +139,7 @@ TilesetPalMap_8247:
tilepal BROWN, BROWN, BROWN, BROWN, BROWN, GRAY, BROWN, ROOF
tilepal ROOF, ROOF, GRAY, BROWN, GRAY, GRAY, GRAY, GRAY
-TilesetPalMap_8277:
+TilesetMartPalMap:
tilepal GRAY, YELLOW, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
tilepal GREEN, GREEN, WATER, RED, GRAY, GRAY, ROOF, ROOF
tilepal GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
@@ -152,7 +153,7 @@ TilesetPalMap_8277:
tilepal GRAY, GRAY, RED, YELLOW, YELLOW, YELLOW, ROOF, ROOF
tilepal ROOF, ROOF, ROOF, ROOF, RED, RED, BROWN, BROWN
-TilesetPalMap_82a7:
+TilesetMansionPalMap:
tilepal GRAY, BROWN, WATER, ROOF, RED, ROOF, BROWN, BROWN
tilepal GRAY, GRAY, GRAY, GRAY, ROOF, ROOF, ROOF, ROOF
tilepal GRAY, RED, ROOF, ROOF, ROOF, ROOF, BROWN, BROWN
@@ -166,7 +167,7 @@ TilesetPalMap_82a7:
tilepal GRAY, GRAY, GRAY, GRAY, GRAY, ROOF, BROWN, BROWN
tilepal BROWN, GRAY, BROWN, BROWN, ROOF, ROOF, BROWN, BROWN
-TilesetPalMap_82d7:
+TilesetGameCornerPalMap:
tilepal GRAY, RED, BROWN, RED, ROOF, ROOF, GREEN, GREEN
tilepal GREEN, GREEN, RED, RED, RED, RED, ROOF, BROWN
tilepal RED, RED, RED, RED, ROOF, ROOF, GRAY, GRAY
@@ -180,7 +181,7 @@ TilesetPalMap_82d7:
tilepal RED, GRAY, GRAY, GRAY, GRAY, GRAY, RED, RED
tilepal GRAY, GRAY, GRAY, WATER, ROOF, ROOF, WATER, WATER
-TilesetPalMap_8307:
+TilesetEliteFourRoomPalMap:
tilepal GRAY, ROOF, RED, RED, RED, ROOF, ROOF, GREEN
tilepal GREEN, GRAY, GREEN, GREEN, GREEN, GREEN, WATER, GREEN
tilepal GRAY, WATER, WATER, WATER, RED, ROOF, ROOF, BROWN
@@ -194,7 +195,7 @@ TilesetPalMap_8307:
tilepal WATER, GREEN, GREEN, BROWN, GRAY, GRAY, GRAY, GRAY
tilepal GRAY, GRAY, WATER, RED, WATER, WATER, ROOF, ROOF
-TilesetPalMap_8337:
+TilesetTraditionalHousePalMap:
tilepal GRAY, BROWN, WATER, WATER, RED, GRAY, GRAY, GRAY
tilepal BROWN, BROWN, GRAY, GRAY, BROWN, BROWN, BROWN, BROWN
tilepal BROWN, BROWN, WATER, WATER, RED, BROWN, GRAY, GRAY
@@ -208,7 +209,7 @@ TilesetPalMap_8337:
tilepal BROWN, BROWN, BROWN, BROWN, GREEN, GREEN, GREEN, BROWN
tilepal BROWN, BROWN, BROWN, BROWN, BROWN, BROWN, WATER, BROWN
-TilesetPalMap_8367:
+TilesetTowerPalMap:
tilepal BROWN, BROWN, BROWN, BROWN, BROWN, BROWN, BROWN, RED
tilepal RED, RED, BROWN, BROWN, BROWN, BROWN, BROWN, BROWN
tilepal BROWN, BROWN, GRAY, GRAY, BROWN, BROWN, BROWN, RED
@@ -222,7 +223,8 @@ TilesetPalMap_8367:
tilepal BROWN, BROWN, BROWN, BROWN, BROWN, BROWN, BROWN, BROWN
tilepal BROWN, BROWN, YELLOW, YELLOW, YELLOW, BROWN, BROWN, BROWN
-TilesetPalMap_8397:
+TilesetCavePalMap:
+TilesetDarkCavePalMap:
tilepal BROWN, BROWN, GRAY, GRAY, GREEN, BROWN, BROWN, BROWN
tilepal GRAY, GRAY, BROWN, BROWN, BROWN, BROWN, BROWN, BROWN
tilepal BROWN, BROWN, GRAY, GRAY, WATER, BROWN, BROWN, BROWN
@@ -236,7 +238,7 @@ TilesetPalMap_8397:
tilepal GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
tilepal GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
-TilesetPalMap_83c7:
+TilesetParkPalMap:
tilepal GRAY, GREEN, BROWN, RED, GREEN, BROWN, GRAY, GRAY
tilepal GRAY, GRAY, GRAY, GRAY, GREEN, GREEN, GREEN, GREEN
tilepal RED, RED, RED, GRAY, WATER, ROOF, GRAY, GRAY
@@ -250,7 +252,7 @@ TilesetPalMap_83c7:
tilepal BROWN, BROWN, BROWN, BROWN, GRAY, GRAY, GRAY, BROWN
tilepal BROWN, BROWN, GRAY, GRAY, WATER, WATER, WATER, GRAY
-TilesetPalMap_83f7:
+TilesetRuinsOfAlphPalMap:
tilepal GRAY, GRAY, BROWN, BROWN, BROWN, BROWN, BROWN, BROWN
tilepal WATER, WATER, WATER, WATER, YELLOW, YELLOW, GRAY, GRAY
tilepal YELLOW, YELLOW, BROWN, BROWN, YELLOW, YELLOW, YELLOW, YELLOW
@@ -264,7 +266,7 @@ TilesetPalMap_83f7:
tilepal GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
tilepal GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
-TilesetPalMap_8427:
+TilesetRadioTowerPalMap:
tilepal GRAY, RED, RED, WATER, WATER, GRAY, GRAY, GRAY
tilepal GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
tilepal WATER, WATER, RED, WATER, WATER, GRAY, GRAY, GRAY
@@ -278,7 +280,7 @@ TilesetPalMap_8427:
tilepal RED, RED, WATER, WATER, GRAY, GRAY, GRAY, GRAY
tilepal GRAY, GRAY, GRAY, RED, GRAY, GRAY, GRAY, GRAY
-TilesetPalMap_8457:
+TilesetTrainStationPalMap:
tilepal GRAY, GRAY, GREEN, GREEN, GRAY, GRAY, GRAY, GRAY
tilepal GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, RED, GRAY
tilepal GRAY, GRAY, GREEN, GREEN, GRAY, GRAY, GRAY, GRAY
@@ -292,7 +294,7 @@ TilesetPalMap_8457:
tilepal WATER, GREEN, GREEN, WATER, BROWN, BROWN, BROWN, GREEN
tilepal BROWN, BROWN, GRAY, GRAY, GREEN, GREEN, WATER, WATER
-TilesetPalMap_8487:
+TilesetUndergroundPalMap:
tilepal GRAY, GRAY, RED, WATER, WATER, WATER, WATER, RED
tilepal RED, GRAY, WATER, WATER, WATER, WATER, GRAY, GRAY
tilepal GRAY, RED, RED, WATER, WATER, WATER, WATER, RED
@@ -306,7 +308,7 @@ TilesetPalMap_8487:
tilepal GRAY, GRAY, GRAY, BROWN, BROWN, YELLOW, YELLOW, GRAY
tilepal GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
-TilesetPalMap_84b7:
+TilesetChampionsRoomPalMap:
tilepal GRAY, GREEN, GREEN, GREEN, RED, GRAY, GRAY, GRAY
tilepal GRAY, GRAY, RED, RED, GRAY, GRAY, GRAY, GRAY
tilepal GRAY, GRAY, GREEN, GREEN, RED, GRAY, GRAY, GRAY
@@ -320,7 +322,7 @@ TilesetPalMap_84b7:
tilepal BROWN, BROWN, BROWN, BROWN, GRAY, GRAY, BROWN, BROWN
tilepal GRAY, GRAY, RED, WATER, WATER, ROOF, GRAY, GRAY
-TilesetPalMap_84e7:
+TilesetLighthousePalMap:
tilepal GRAY, WATER, WATER, WATER, BROWN, WATER, WATER, RED
tilepal RED, RED, RED, BROWN, RED, RED, RED, RED
tilepal ROOF, WATER, ROOF, BROWN, RED, WATER, WATER, RED
@@ -334,7 +336,7 @@ TilesetPalMap_84e7:
tilepal RED, RED, ROOF, ROOF, ROOF, ROOF, GRAY, GRAY
tilepal RED, RED, GREEN, GREEN, ROOF, ROOF, GRAY, GRAY
-TilesetPalMap_8517:
+TilesetPlayersRoomPalMap:
tilepal BROWN, BROWN, BROWN, GRAY, GRAY, GRAY, GRAY, GREEN
tilepal GREEN, RED, RED, GRAY, GRAY, RED, RED, RED
tilepal BROWN, BROWN, BROWN, GRAY, GRAY, GRAY, GRAY, GREEN
@@ -348,7 +350,7 @@ TilesetPalMap_8517:
tilepal GRAY, GRAY, GRAY, GRAY, BROWN, BROWN, BROWN, GREEN
tilepal GREEN, YELLOW, YELLOW, GRAY, GRAY, BROWN, YELLOW, YELLOW
-TilesetPalMap_8547:
+UnusedMuseumPalMap:
tilepal WATER, RED, YELLOW, YELLOW, RED, GREEN, GREEN, BROWN
tilepal BROWN, BROWN, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
tilepal GRAY, GRAY, YELLOW, YELLOW, RED, GREEN, GREEN, BROWN
@@ -362,7 +364,7 @@ TilesetPalMap_8547:
tilepal GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
tilepal GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
-TilesetPalMap_8577:
+TilesetIcePathPalMap:
tilepal BROWN, BROWN, BROWN, BROWN, BROWN, BROWN, BROWN, BROWN
tilepal GRAY, BROWN, BROWN, BROWN, BROWN, BROWN, WATER, WATER
tilepal BROWN, BROWN, BROWN, BROWN, BROWN, BROWN, BROWN, BROWN
@@ -376,7 +378,7 @@ TilesetPalMap_8577:
tilepal BROWN, BROWN, GRAY, GRAY, WATER, WATER, WATER, WATER
tilepal WATER, WATER, WATER, WATER, WATER, WATER, WATER, WATER
-TilesetPalMap_85a7:
+TilesetForestPalMap:
tilepal GRAY, BROWN, BROWN, RED, YELLOW, GREEN, BROWN, YELLOW
tilepal YELLOW, BROWN, BROWN, BROWN, GREEN, GREEN, GREEN, GREEN
tilepal BROWN, BROWN, BROWN, RED, WATER, BROWN, BROWN, BROWN
diff --git a/home/battle.asm b/home/battle.asm
index 89ca9459..b30190bd 100644
--- a/home/battle.asm
+++ b/home/battle.asm
@@ -198,9 +198,9 @@ GetBattleAnimPointer::
rst Bankswitch
ld a, [hli]
- ld [wca10], a
+ ld [wBattleAnimAddress], a
ld a, [hl]
- ld [wca11], a
+ ld [wBattleAnimAddress + 1], a
; ClearBattleAnims is the only function that calls this...
ld a, BANK(ClearBattleAnims)
@@ -212,7 +212,7 @@ GetBattleAnimByte::
push hl
push de
- ld hl, wca10
+ ld hl, wBattleAnimAddress
ld e, [hl]
inc hl
ld d, [hl]
@@ -221,10 +221,10 @@ GetBattleAnimByte::
rst Bankswitch
ld a, [de]
- ld [wca17], a
+ ld [wBattleAnimByte], a
inc de
- ld a, BANK(ClearBattleAnims)
+ ld a, BANK("Move Animations")
rst Bankswitch
ld [hl], d
@@ -234,7 +234,7 @@ GetBattleAnimByte::
pop de
pop hl
- ld a, [wca17]
+ ld a, [wBattleAnimByte]
ret
PushLYOverrides::
@@ -252,6 +252,6 @@ PushLYOverrides::
ld a, HIGH(wLYOverrides)
ld [wRequested2bppDest + 1], a
- ld a, (wLYOverridesEnd - wLYOverrides) / 28
+ ld a, (wLYOverridesEnd - wLYOverrides) / 16
ld [wRequested2bpp], a
ret
diff --git a/home/battle_vars.asm b/home/battle_vars.asm
index 6fc94409..2ed86484 100755
--- a/home/battle_vars.asm
+++ b/home/battle_vars.asm
@@ -96,16 +96,16 @@ BattleVarPairs:
BattleVarLocations:
; entries correspond to PLAYER_* and ENEMY_* constants
- dw wPlayerSubStatus1, wEnemySubStatus1
- dw wPlayerSubStatus2, wEnemySubStatus2
- dw wPlayerSubStatus3, wEnemySubStatus3
- dw wPlayerSubStatus4, wEnemySubStatus4
- dw wPlayerSubStatus5, wEnemySubStatus5
- dw wBattleMonStatus, wEnemyMonStatus
- dw wPlayerMoveStructAnimation, wEnemyMoveStructAnimation
- dw wPlayerMoveStructEffect, wEnemyMoveStructEffect
- dw wPlayerMoveStructPower, wEnemyMoveStructPower
- dw wPlayerMoveStructType, wEnemyMoveStructType
- dw wCurPlayerMove, wCurEnemyMove
- dw wLastPlayerCounterMove, wLastEnemyCounterMove
- dw wLastPlayerMove, wLastEnemyMove
+ dw wPlayerSubStatus1, wEnemySubStatus1
+ dw wPlayerSubStatus2, wEnemySubStatus2
+ dw wPlayerSubStatus3, wEnemySubStatus3
+ dw wPlayerSubStatus4, wEnemySubStatus4
+ dw wPlayerSubStatus5, wEnemySubStatus5
+ dw wBattleMonStatus, wEnemyMonStatus
+ dw wPlayerMoveStructAnimation, wEnemyMoveStructAnimation
+ dw wPlayerMoveStructEffect, wEnemyMoveStructEffect
+ dw wPlayerMoveStructPower, wEnemyMoveStructPower
+ dw wPlayerMoveStructType, wEnemyMoveStructType
+ dw wCurPlayerMove, wCurEnemyMove
+ dw wLastPlayerCounterMove, wLastEnemyCounterMove
+ dw wLastPlayerMove, wLastEnemyMove
diff --git a/home/copy_tilemap.asm b/home/copy_tilemap.asm
index e5d979e0..dd683bb6 100755
--- a/home/copy_tilemap.asm
+++ b/home/copy_tilemap.asm
@@ -1,7 +1,7 @@
LoadTilemapToTempTilemap::
-; Load wTilemap into wTempTileMap
+; Load wTilemap into wTempTilemap
hlcoord 0, 0
- decoord 0, 0, wTempTileMap
+ decoord 0, 0, wTempTilemap
ld bc, wTilemapEnd - wTilemap
jp CopyBytes
@@ -15,7 +15,7 @@ SafeLoadTempTilemapToTilemap::
LoadTempTilemapToTilemap::
; Load wTempTilemap into wTilemap
- hlcoord 0, 0, wTempTileMap
+ hlcoord 0, 0, wTempTilemap
decoord 0, 0
ld bc, wTilemapEnd - wTilemap
jp CopyBytes
diff --git a/home/decompress.asm b/home/decompress.asm
index 1d555529..b1e2ba5e 100644
--- a/home/decompress.asm
+++ b/home/decompress.asm
@@ -19,10 +19,8 @@ Decompress::
; This function decompresses lz-compressed data from hl to de.
-
LZ_END EQU $ff ; Compressed data is terminated with $ff.
-
; A typical control command consists of:
LZ_CMD EQU %11100000 ; command id (bits 5-7)
@@ -30,8 +28,8 @@ LZ_LEN EQU %00011111 ; length n (bits 0-4)
; Additional parameters are read during command execution.
-
; Commands:
+
LZ_LITERAL EQU 0 << 5 ; Read literal data for n bytes.
LZ_ITERATE EQU 1 << 5 ; Write the same byte for n bytes.
LZ_ALTERNATE EQU 2 << 5 ; Alternate two bytes for n bytes.
@@ -49,7 +47,6 @@ LZ_REPEAT EQU 4 << 5 ; Repeat n bytes from the offset.
LZ_FLIP EQU 5 << 5 ; Repeat n bitflipped bytes.
LZ_REVERSE EQU 6 << 5 ; Repeat n bytes in reverse.
-
; If the value in the count needs to be larger than 5 bits,
; LZ_LONG can be used to expand the count to 10 bits.
LZ_LONG EQU 7 << 5
@@ -64,10 +61,8 @@ LZ_LONG_HI EQU %00000011
; x: the new control command
; y: the length
-
; For more information, refer to the code below and in extras/gfx.py.
-
; Save the output address
; for rewrite commands.
ld a, e
@@ -75,7 +70,7 @@ LZ_LONG_HI EQU %00000011
ld a, d
ld [wLZAddress + 1], a
-.Main
+.Main:
ld a, [hl]
cp LZ_END
ret z
@@ -95,7 +90,7 @@ LZ_LONG_HI EQU %00000011
add a ; << 3
add a
- ; This is our new control code.
+ ; This is our new control code.
and LZ_CMD
push af
@@ -109,7 +104,6 @@ LZ_LONG_HI EQU %00000011
inc bc
jr .command
-
.short
push af
@@ -139,7 +133,7 @@ LZ_LONG_HI EQU %00000011
cp LZ_ZERO
jr z, .Zero
-.Literal
+.Literal:
; Read literal data for bc bytes.
.lloop
dec c
diff --git a/home/fade.asm b/home/fade.asm
index 9650dce5..3364638f 100644
--- a/home/fade.asm
+++ b/home/fade.asm
@@ -44,7 +44,6 @@ RotateThreePalettesRight::
.dmg
ld hl, IncGradGBPalTable_13
ld b, 3
-
RotatePalettesRight::
; Rotate palettes to the right and fill with loaded colors from the left
; If we're already at the leftmost color, fill with the leftmost color
@@ -87,7 +86,6 @@ RotateThreePalettesLeft::
.dmg
ld hl, IncGradGBPalTable_15 - 1
ld b, 3
-
RotatePalettesLeft::
; Rotate palettes to the left and fill with loaded colors from the right
; If we're already at the rightmost color, fill with the rightmost color
diff --git a/home/flag.asm b/home/flag.asm
index 95117377..125c2a43 100644
--- a/home/flag.asm
+++ b/home/flag.asm
@@ -12,7 +12,7 @@ ResetBikeFlags::
ret
ResetFlashIfOutOfCave::
- ld a, [wPermission]
+ ld a, [wEnvironment]
cp ROUTE
jr z, .outdoors
cp TOWN
diff --git a/home/game_time.asm b/home/game_time.asm
index 86435991..3751e4a4 100644
--- a/home/game_time.asm
+++ b/home/game_time.asm
@@ -10,7 +10,7 @@ ResetGameTime::
GameTimer::
nop
-
+
UpdateGameTimer::
; Increment the game timer by one frame.
; The game timer is capped at 999:59:59.00.
diff --git a/home/gfx.asm b/home/gfx.asm
index 82e6656e..897a43ef 100644
--- a/home/gfx.asm
+++ b/home/gfx.asm
@@ -1,4 +1,4 @@
-Functiond70:: ; d70 (0:0d70)
+FarCopyBytesDouble_DoubleBankSwitch::
ld b, a
ldh a, [hROMBank]
push af
@@ -12,7 +12,7 @@ Functiond70:: ; d70 (0:0d70)
xor a
call ByteFill
- ld hl, wcf3c
+ ld hl, wUnusedBufferCF3C
ld a, [hli]
ld h, [hl]
ld l, a
@@ -29,7 +29,7 @@ ReplaceChrisSprite::
ret
LoadStandardFont::
- farcall Functionf8000
+ farcall _LoadStandardFont
ret
LoadFontsBattleExtra::
@@ -37,23 +37,23 @@ LoadFontsBattleExtra::
ret
LoadFontsExtra::
- farcall Functionf800c
+ farcall _LoadFontsExtra
ret
DecompressRequest2bpp::
push de
- ld a, BANK(sDecompressScratch)
+ ld a, BANK(sScratch)
call OpenSRAM
push bc
- ld de, sDecompressScratch
+ ld de, sScratch
ld a, b
call FarDecompress
pop bc
pop hl
- ld de, sDecompressScratch
+ ld de, sScratch
call Request2bpp
call CloseSRAM
ret
@@ -73,7 +73,6 @@ FarCopyBytes::
rst Bankswitch
ret
-
FarCopyBytesDouble::
; Copy bc bytes from a:hl to bc*2 bytes at de,
; doubling each byte in the process.
@@ -259,12 +258,12 @@ Copy1bpp::
pop hl
jp FarCopyBytesDouble
-Function_ea6::
+UnusedGet2bpp::
ldh a, [rLCDC]
add a
jp c, Request2bpp
-Function_eac::
+UnusedCopy2bpp::
push de
push hl
diff --git a/home/init.asm b/home/init.asm
index e82e4929..e5f57e1c 100644
--- a/home/init.asm
+++ b/home/init.asm
@@ -56,9 +56,9 @@ Init::
xor a
ldh [rLCDC], a
-; Clear WRAM bank 0
+; Clear WRAM
ld hl, WRAM0_Begin
- ld bc, $2000
+ ld bc, WRAM1_End - WRAM0_Begin
.ByteFill:
ld [hl], 0
inc hl
@@ -70,6 +70,8 @@ Init::
ld sp, wStackTop
call ClearVRAM
+
+; Clear HRAM
ldh a, [hCGB]
push af
xor a
@@ -137,7 +139,7 @@ Init::
; BG on
ldh [rLCDC], a
- ld a, $1f
+ ld a, IE_DEFAULT
ldh [rIE], a
ei
@@ -158,13 +160,13 @@ ClearVRAM::
ret
BlankBGMap::
- ld a, $7f
- jr asm_69e
-
-FillBGMap::
+ ld a, " "
+ jr .fill
+; unused; would fill BG Map with value in l
ld a, l
-asm_69e:
- ld de, $400
+
+.fill
+ ld de, vBGMap1 - vBGMap0
ld l, e
.loop
ld [hli], a
diff --git a/home/joypad.asm b/home/joypad.asm
index c9b9e56f..fd441178 100644
--- a/home/joypad.asm
+++ b/home/joypad.asm
@@ -1,5 +1,5 @@
Joypad::
-; Replaced by Joypad, called from VBlank instead of the useless
+; Replaced by UpdateJoypad, called from VBlank instead of the useless
; joypad interrupt.
; This is a placeholder in case the interrupt is somehow enabled.
diff --git a/home/lcd.asm b/home/lcd.asm
index 8ed6dbae..3d95bb59 100644
--- a/home/lcd.asm
+++ b/home/lcd.asm
@@ -6,7 +6,6 @@ LCD::
and a
jr z, .done
-; At this point it's assumed we're in WRAM bank 5!
push hl
ldh a, [rLY]
ld l, a
diff --git a/home/map.asm b/home/map.asm
index c210f03d..0ed02c46 100644
--- a/home/map.asm
+++ b/home/map.asm
@@ -1,105 +1,123 @@
-Clear_wc6e8:: ; 1f5d (0:1f5d)
- ld hl, wc6e8
- ld bc, $18
- ld a, $0
+; Functions dealing with rendering and interacting with maps.
+
+ClearUnusedMapBuffer::
+ ld hl, wUnusedMapBuffer
+ ld bc, wUnusedMapBufferEnd - wUnusedMapBuffer
+ ld a, 0
call ByteFill
ret
-CheckTriggers:: ; 1f69 (0:1f69)
+CheckScenes::
+; Checks wCurMapSceneScriptPointer. If it's empty, returns -1 in a. Otherwise, returns the active scene ID in a.
push hl
- ld hl, wCurrentMapTriggerPointer
+ ld hl, wCurMapSceneScriptPointer
ld a, [hli]
ld h, [hl]
ld l, a
or h
ld a, [hl]
- jr nz, .asm_1f76
- ld a, $ff
-.asm_1f76
+ jr nz, .scene_exists
+ ld a, -1
+
+.scene_exists
pop hl
ret
-GetCurrentMapTrigger:: ; 1f78 (0:1f78)
+GetCurrentMapSceneID::
+; Grabs the wram map scene script pointer for the current map and loads it into wCurMapSceneScriptPointer.
+; If there is no scene, both bytes of wCurMapSceneScriptPointer are wiped clean.
+; Copy the current map group and number into bc. This is needed for GetMapSceneID.
ld a, [wMapGroup]
ld b, a
ld a, [wMapNumber]
ld c, a
+; Blank out wCurMapSceneScriptPointer; this is the default scenario.
xor a
- ld [wCurrentMapTriggerPointer], a
- ld [wCurrentMapTriggerPointer + 1], a
- call GetMapTrigger
- ret c
+ ld [wCurMapSceneScriptPointer], a
+ ld [wCurMapSceneScriptPointer + 1], a
+ call GetMapSceneID
+ ret c ; The map is not in the scene script table
+; Load the scene script pointer from de into wCurMapSceneScriptPointer
ld a, e
- ld [wCurrentMapTriggerPointer], a
+ ld [wCurMapSceneScriptPointer], a
ld a, d
- ld [wCurrentMapTriggerPointer + 1], a
+ ld [wCurMapSceneScriptPointer + 1], a
xor a
ret
-GetMapTrigger:: ; 1f95 (0:1f95)
+GetMapSceneID::
+; Searches the scene_var table for the map group and number loaded in bc, and returns the wram pointer in de.
+; If the map is not in the scene_var table, returns carry.
push bc
ldh a, [hROMBank]
push af
- ld a, BANK(MapTriggers)
+ ld a, BANK(MapScenes)
rst Bankswitch
- ld hl, MapTriggers
-.asm_1f9f
+
+ ld hl, MapScenes
+.loop
push hl
- ld a, [hli]
- cp $ff
- jr z, .asm_1fb5
+ ld a, [hli] ; map group, or terminator
+ cp -1
+ jr z, .end ; the current map is not in the scene_var table
cp b
- jr nz, .asm_1fae
- ld a, [hli]
+ jr nz, .next ; map group did not match
+ ld a, [hli] ; map number
cp c
- jr nz, .asm_1fae
- jr .asm_1fb8
+ jr nz, .next ; map number did not match
+ jr .found ; we found our map
-.asm_1fae
+.next
pop hl
- ld de, $4
+ ld de, 4 ; scene_var size
add hl, de
- jr .asm_1f9f
+ jr .loop
-.asm_1fb5
+.end
scf
- jr .asm_1fbb
+ jr .done
-.asm_1fb8
+.found
ld e, [hl]
inc hl
ld d, [hl]
-.asm_1fbb
+
+.done
pop hl
pop bc
ld a, b
rst Bankswitch
+
pop bc
ret
-OverworldTextModeSwitch:: ; 1fc1 (0:1fc1)
+OverworldTextModeSwitch::
call LoadMapPart
call SwapTextboxPalettes
ret
-LoadMapPart:: ; 1fc8 (0:1fc8)
+LoadMapPart::
ldh a, [hROMBank]
push af
+
ld a, [wTilesetBlocksBank]
rst Bankswitch
call LoadMetatiles
- ld a, $60
+
+ ld a, "■"
hlcoord 0, 0
- ld bc, $168
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
call ByteFill
- ld a, $5
+
+ ld a, BANK(_LoadMapPart)
rst Bankswitch
- call $538d
+ call _LoadMapPart
+
pop af
rst Bankswitch
ret
-LoadMetatiles:: ; 1fe6 (0:1fe6)
+LoadMetatiles::
; de <- wOverworldMapAnchor
ld a, [wOverworldMapAnchor]
ld e, a
@@ -127,10 +145,13 @@ LoadMetatiles:: ; 1fe6 (0:1fe6)
; Load the current wSurroundingTiles address into de.
ld e, l
ld d, h
- ; Set hl to the address of the current metatile data ([TilesetBlocksAddress] + (a) tiles).
- add a
+ ; Set hl to the address of the current metatile data ([wTilesetBlocksAddress] + (a) tiles).
+ ; This is buggy; it wraps around past 128 blocks.
+ ; To fix, uncomment the line below.
+ add a ; Comment or delete this line to fix the above bug.
ld l, a
ld h, 0
+ ; add hl, hl
add hl, hl
add hl, hl
add hl, hl
@@ -142,7 +163,7 @@ LoadMetatiles:: ; 1fe6 (0:1fe6)
ld h, a
; copy the 4x4 metatile
-rept METATILE_WIDTH + -1
+rept METATILE_WIDTH - 1
rept METATILE_WIDTH
ld a, [hli]
ld [de], a
@@ -162,7 +183,7 @@ rept METATILE_WIDTH
endr
; Next metatile
pop hl
- ld de, 4
+ ld de, METATILE_WIDTH
add hl, de
pop de
inc de
@@ -185,7 +206,7 @@ endr
ret
ReturnToMapFromSubmenu::
- ld a, $fa
+ ld a, MAPSETUP_SUBMENU
ldh [hMapEntryMethod], a
farcall RunMapSetupScript
xor a
@@ -193,78 +214,80 @@ ReturnToMapFromSubmenu::
ret
HandleNewMap::
- call Clear_wc6e8
+ call ClearUnusedMapBuffer
call ResetMapBufferEventFlags
call ResetFlashIfOutOfCave
- call GetCurrentMapTrigger
+ call GetCurrentMapSceneID
call ResetBikeFlags
- ld a, $5
+ ld a, MAPCALLBACK_NEWMAP
call RunMapCallback
HandleContinueMap::
- farcall Function97c2a
- ld a, $3
+ farcall ClearCmdQueue
+ ld a, MAPCALLBACK_CMDQUEUE
call RunMapCallback
- call GetMapHeaderTimeOfDayNybble
+ call GetMapTimeOfDay
ld [wMapTimeOfDay], a
ret
LoadMapTimeOfDay::
ld a, $1
ld [wSpriteUpdatesEnabled], a
- farcall Function8c3e9
+ farcall ReplaceTimeOfDayPals
farcall UpdateTimeOfDayPal
call OverworldTextModeSwitch
- call Function20c7
- call Function20e6
+ call .ClearBGMap
+ call .PushAttrmap
ret
-Function20c7:: ; 20c7 (0:20c7)
- ld a, $98
- ld [wd05c], a
- xor a
- ld [wd05b], a
+.ClearBGMap:
+ ld a, HIGH(vBGMap0)
+ ld [wBGMapAnchor + 1], a
+ xor a ; LOW(vBGMap0)
+ ld [wBGMapAnchor], a
ldh [hSCY], a
ldh [hSCX], a
farcall ApplyBGMapAnchorToObjects
- ld a, $60
- ld bc, $400
- ld hl, $9800
+
+ ld a, "■"
+ ld bc, vBGMap1 - vBGMap0
+ hlbgcoord 0, 0
call ByteFill
ret
-Function20e6:: ; 20e6 (0:20e6)
+.PushAttrmap:
decoord 0, 0
- call Function20f7
+ call .copy
ldh a, [hCGB]
and a
ret z
+
decoord 0, 0, wAttrmap
ld a, $1
ldh [rVBK], a
-Function20f7:: ; 20f7 (0:20f7)
- ld hl, $9800
- ld c, $14
- ld b, $12
-.asm_20fe
+.copy
+ hlbgcoord 0, 0
+ ld c, SCREEN_WIDTH
+ ld b, SCREEN_HEIGHT
+.row
push bc
-.asm_20ff
+.column
ld a, [de]
inc de
ld [hli], a
dec c
- jr nz, .asm_20ff
- ld bc, $c
+ jr nz, .column
+ ld bc, BG_MAP_WIDTH - SCREEN_WIDTH
add hl, bc
pop bc
dec b
- jr nz, .asm_20fe
+ jr nz, .row
ld a, $0
ldh [rVBK], a
ret
LoadMapGraphics::
call LoadMapTileset
- call LoadTileset
+ call LoadTilesetGFX
xor a
ldh [hMapAnims], a
xor a
@@ -281,277 +304,290 @@ RefreshMapSprites::
call ClearSprites
call ResetBGWindow
call GetMovementPermissions
- farcall Function5730
+ farcall RefreshPlayerSprite
farcall CheckReplaceChrisSprite
ld hl, wPlayerSpriteSetupFlags
- bit 6, [hl]
- jr nz, .asm_2151
+ bit PLAYERSPRITESETUP_SKIP_RELOAD_GFX_F, [hl]
+ jr nz, .skip
ld hl, wVramState
set 0, [hl]
call SafeUpdateSprites
-.asm_2151
+.skip
xor a
ld [wPlayerSpriteSetupFlags], a
ret
-Function2156::
+CheckMovingOffEdgeOfMap::
ld a, [wPlayerStepDirection]
- cp $ff
+ cp STANDING
ret z
- and a
- jr z, .asm_216d
- cp $1
- jr z, .asm_217c
- cp $2
- jr z, .asm_2187
- cp $3
- jr z, .asm_2192
+ and a ; DOWN
+ jr z, .down
+ cp UP
+ jr z, .up
+ cp LEFT
+ jr z, .left
+ cp RIGHT
+ jr z, .right
and a
ret
-.asm_216d
+.down
ld a, [wPlayerStandingMapY]
- sub $4
+ sub 4
ld b, a
- ld a, [wd087]
+ ld a, [wMapHeight]
add a
cp b
- jr z, .asm_21a1
+ jr z, .ok
and a
ret
-.asm_217c
+.up
ld a, [wPlayerStandingMapY]
- sub $4
- cp $ff
- jr z, .asm_21a1
+ sub 4
+ cp -1
+ jr z, .ok
and a
ret
-.asm_2187
+.left
ld a, [wPlayerStandingMapX]
- sub $4
- cp $ff
- jr z, .asm_21a1
+ sub 4
+ cp -1
+ jr z, .ok
and a
ret
-.asm_2192
+.right
ld a, [wPlayerStandingMapX]
- sub $4
+ sub 4
ld b, a
ld a, [wMapWidth]
add a
cp b
- jr z, .asm_21a1
+ jr z, .ok
and a
ret
-.asm_21a1
+.ok
scf
ret
EnterMapConnection::
+; Return carry if a connection has been entered.
ld a, [wPlayerStepDirection]
- and a
- jp z, Function2263
- cp $1
- jp z, Function2232
- cp $2
- jp z, Function21ba
- cp $3
- jp z, Function21f6
- ret
-
-Function21ba:: ; 21ba (0:21ba)
- ld a, [wd0aa]
+ and a ; DOWN
+ jp z, .south
+ cp UP
+ jp z, .north
+ cp LEFT
+ jp z, .west
+ cp RIGHT
+ jp z, .east
+ ret
+
+.west
+ ld a, [wWestConnectedMapGroup]
ld [wMapGroup], a
- ld a, [wd0ab]
+ ld a, [wWestConnectedMapNumber]
ld [wMapNumber], a
- ld a, [wd0b3]
+ ld a, [wWestConnectionStripXOffset]
ld [wXCoord], a
- ld a, [wd0b2]
+ ld a, [wWestConnectionStripYOffset]
ld hl, wYCoord
add [hl]
ld [hl], a
ld c, a
- ld hl, wd0b4
+ ld hl, wWestConnectionWindow
ld a, [hli]
ld h, [hl]
ld l, a
srl c
- jr z, .asm_21eb
- ld a, [wd0b1]
- add $6
+ jr z, .skip_to_load
+ ld a, [wWestConnectedMapWidth]
+ add 6
ld e, a
- ld d, $0
-.asm_21e7
+ ld d, 0
+
+.loop
add hl, de
dec c
- jr nz, .asm_21e7
-.asm_21eb
+ jr nz, .loop
+
+.skip_to_load
ld a, l
ld [wOverworldMapAnchor], a
ld a, h
ld [wOverworldMapAnchor + 1], a
- jp Function2291
+ jp .done
-Function21f6:: ; 21f6 (0:21f6)
- ld a, [wd0b6]
+.east
+ ld a, [wEastConnectedMapGroup]
ld [wMapGroup], a
- ld a, [wd0b7]
+ ld a, [wEastConnectedMapNumber]
ld [wMapNumber], a
- ld a, [wd0bf]
+ ld a, [wEastConnectionStripXOffset]
ld [wXCoord], a
- ld a, [wd0be]
+ ld a, [wEastConnectionStripYOffset]
ld hl, wYCoord
add [hl]
ld [hl], a
ld c, a
- ld hl, wd0c0
+ ld hl, wEastConnectionWindow
ld a, [hli]
ld h, [hl]
ld l, a
srl c
- jr z, .asm_2227
- ld a, [wd0bd]
- add $6
+ jr z, .skip_to_load2
+ ld a, [wEastConnectedMapWidth]
+ add 6
ld e, a
- ld d, $0
-.asm_2223
+ ld d, 0
+
+.loop2
add hl, de
dec c
- jr nz, .asm_2223
-.asm_2227
+ jr nz, .loop2
+
+.skip_to_load2
ld a, l
ld [wOverworldMapAnchor], a
ld a, h
ld [wOverworldMapAnchor + 1], a
- jp Function2291
+ jp .done
-Function2232:: ; 2232 (0:2232)
- ld a, [wd092]
+.north
+ ld a, [wNorthConnectedMapGroup]
ld [wMapGroup], a
- ld a, [wd093]
+ ld a, [wNorthConnectedMapNumber]
ld [wMapNumber], a
- ld a, [wd09a]
+ ld a, [wNorthConnectionStripYOffset]
ld [wYCoord], a
- ld a, [wd09b]
+ ld a, [wNorthConnectionStripXOffset]
ld hl, wXCoord
add [hl]
ld [hl], a
ld c, a
- ld hl, wd09c
+ ld hl, wNorthConnectionWindow
ld a, [hli]
ld h, [hl]
ld l, a
- ld b, $0
+ ld b, 0
srl c
add hl, bc
ld a, l
ld [wOverworldMapAnchor], a
ld a, h
ld [wOverworldMapAnchor + 1], a
- jp Function2291
+ jp .done
-Function2263:: ; 2263 (0:2263)
- ld a, [wd09e]
+.south
+ ld a, [wSouthConnectedMapGroup]
ld [wMapGroup], a
- ld a, [wd09f]
+ ld a, [wSouthConnectedMapNumber]
ld [wMapNumber], a
- ld a, [wd0a6]
+ ld a, [wSouthConnectionStripYOffset]
ld [wYCoord], a
- ld a, [wd0a7]
+ ld a, [wSouthConnectionStripXOffset]
ld hl, wXCoord
add [hl]
ld [hl], a
ld c, a
- ld hl, wd0a8
+ ld hl, wSouthConnectionWindow
ld a, [hli]
ld h, [hl]
ld l, a
- ld b, $0
+ ld b, 0
srl c
add hl, bc
ld a, l
ld [wOverworldMapAnchor], a
ld a, h
ld [wOverworldMapAnchor + 1], a
-Function2291:: ; 2291 (0:2291)
+.done
scf
ret
-Function2293::
- call Function22ad
+CheckWarpTile::
+ call GetDestinationWarpNumber
ret nc
+
push bc
farcall CheckDirectionalWarp
pop bc
ret nc
- call Function2302
+
+ call CopyWarpData
scf
ret
-Function22a5::
- call Function22ad
+WarpCheck::
+ call GetDestinationWarpNumber
ret nc
- call Function2302
+ call CopyWarpData
ret
-Function22ad:: ; 22ad (0:22ad)
+GetDestinationWarpNumber::
farcall CheckWarpCollision
ret nc
+
ldh a, [hROMBank]
push af
+
call SwitchToMapScriptsBank
- call Function22c1
+ call .GetDestinationWarpNumber
+
pop de
ld a, d
rst Bankswitch
ret
-Function22c1:: ; 22c1 (0:22c1)
+.GetDestinationWarpNumber:
ld a, [wPlayerStandingMapY]
- sub $4
+ sub 4
ld e, a
ld a, [wPlayerStandingMapX]
- sub $4
+ sub 4
ld d, a
ld a, [wCurMapWarpCount]
and a
ret z
+
ld c, a
ld hl, wCurMapWarpsPointer
ld a, [hli]
ld h, [hl]
ld l, a
-.asm_22d9
+.loop
push hl
ld a, [hli]
cp e
- jr nz, .asm_22e4
+ jr nz, .next
ld a, [hli]
cp d
- jr nz, .asm_22e4
- jr .asm_22f1
+ jr nz, .next
+ jr .found_warp
-.asm_22e4
+.next
pop hl
- ld a, $5
+ ld a, WARP_EVENT_SIZE
add l
ld l, a
- jr nc, .asm_22ec
+ jr nc, .okay
inc h
-.asm_22ec
+
+.okay
dec c
- jr nz, .asm_22d9
+ jr nz, .loop
xor a
ret
-.asm_22f1
+.found_warp
pop hl
- call Function22fe
- ret nc
+ call .IncreaseHLTwice
+ ret nc ; never encountered
+
ld a, [wCurMapWarpCount]
inc a
sub c
@@ -559,23 +595,25 @@ Function22c1:: ; 22c1 (0:22c1)
scf
ret
-Function22fe:: ; 22fe (0:22fe)
+.IncreaseHLTwice:
inc hl
inc hl
scf
ret
-Function2302:: ; 2302 (0:2302)
+CopyWarpData::
ldh a, [hROMBank]
push af
+
call SwitchToMapScriptsBank
- call Function230f
+ call .CopyWarpData
+
pop af
rst Bankswitch
scf
ret
-Function230f:: ; 230f (0:230f)
+.CopyWarpData:
push bc
ld hl, wCurMapWarpsPointer
ld a, [hli]
@@ -583,24 +621,26 @@ Function230f:: ; 230f (0:230f)
ld l, a
ld a, c
dec a
- ld bc, $5
+ ld bc, WARP_EVENT_SIZE
call AddNTimes
- ld bc, $2
+ ld bc, 2 ; warp number
add hl, bc
ld a, [hli]
- cp $ff
- jr nz, .asm_232b
+ cp -1
+ jr nz, .skip
ld hl, wBackupWarpNumber
ld a, [hli]
-.asm_232b
+
+.skip
pop bc
- ld [wNextWarpNumber], a
+ ld [wNextWarp], a
ld a, [hli]
ld [wNextMapGroup], a
ld a, [hli]
ld [wNextMapNumber], a
+
ld a, c
- ld [wPrevWarpNumber], a
+ ld [wPrevWarp], a
ld a, [wMapGroup]
ld [wPrevMapGroup], a
ld a, [wMapNumber]
@@ -609,17 +649,17 @@ Function230f:: ; 230f (0:230f)
ret
EnterMapWarp::
- call Function2362
- call Function239b
- ld a, [wNextWarpNumber]
- ld [wd9ff], a
+ call .SaveDigWarp
+ call .SetSpawn
+ ld a, [wNextWarp]
+ ld [wWarpNumber], a
ld a, [wNextMapGroup]
ld [wMapGroup], a
ld a, [wNextMapNumber]
ld [wMapNumber], a
ret
-Function2362:: ; 2362 (0:2362)
+.SaveDigWarp::
call GetMapEnvironment
call CheckOutdoorMap
ret nz
@@ -627,19 +667,23 @@ Function2362:: ; 2362 (0:2362)
ld b, a
ld a, [wNextMapNumber]
ld c, a
- call GetAnyMapPermission
+ call GetAnyMapEnvironment
call CheckIndoorMap
ret nz
+
+; MOUNT_MOON_SQUARE and TIN_TOWER_ROOF are outdoor maps within indoor maps.
+; Dig and Escape Rope should not take you to them.
ld a, [wPrevMapGroup]
- cp $f
- jr nz, .asm_2388
+ cp GROUP_MOUNT_MOON_SQUARE ; aka GROUP_TIN_TOWER_ROOF
+ jr nz, .not_mt_moon_or_tin_tower
ld a, [wPrevMapNumber]
- cp $a
+ cp MAP_MOUNT_MOON_SQUARE
ret z
- cp $c
+ cp MAP_TIN_TOWER_ROOF
ret z
-.asm_2388
- ld a, [wPrevWarpNumber]
+.not_mt_moon_or_tin_tower
+
+ ld a, [wPrevWarp]
ld [wDigWarpNumber], a
ld a, [wPrevMapGroup]
ld [wDigMapGroup], a
@@ -647,7 +691,7 @@ Function2362:: ; 2362 (0:2362)
ld [wDigMapNumber], a
ret
-Function239b:: ; 239b (0:239b)
+.SetSpawn:
call GetMapEnvironment
call CheckOutdoorMap
ret nz
@@ -655,30 +699,34 @@ Function239b:: ; 239b (0:239b)
ld b, a
ld a, [wNextMapNumber]
ld c, a
- call GetAnyMapPermission
+ call GetAnyMapEnvironment
call CheckIndoorMap
ret nz
ld a, [wNextMapGroup]
ld b, a
ld a, [wNextMapNumber]
ld c, a
+
+; Respawn in Pokémon Centers.
call GetAnyMapTileset
ld a, c
- cp $6
+ cp TILESET_POKECENTER
ret nz
+
+.pokecenter
ld a, [wPrevMapGroup]
- ld [wd9fb], a
+ ld [wLastSpawnMapGroup], a
ld a, [wPrevMapNumber]
- ld [wd9fc], a
+ ld [wLastSpawnMapNumber], a
ret
-CheckOutdoorMap:: ; 23cd (0:23cd)
+CheckOutdoorMap::
cp ROUTE
ret z
cp TOWN
ret
-CheckIndoorMap:: ; 23d3 (0:23d3)
+CheckIndoorMap::
cp INDOOR
ret z
cp CAVE
@@ -688,7 +736,8 @@ CheckIndoorMap:: ; 23d3 (0:23d3)
cp GATE
ret
-CheckDungeonMap::
+; unused
+UnreferencedCheckEnvironment::
cp INDOOR
ret z
cp GATE
@@ -697,32 +746,32 @@ CheckDungeonMap::
ret
LoadMapAttributes::
- call CopyMapHeaders
+ call CopyMapPartialAndAttributes
call SwitchToMapScriptsBank
call ReadMapScripts
- xor a
- call ReadMapEventHeader
+ xor a ; do not skip object events
+ call ReadMapEvents
ret
LoadMapAttributes_SkipObjects::
- call CopyMapHeaders
+ call CopyMapPartialAndAttributes
call SwitchToMapScriptsBank
call ReadMapScripts
- ld a, $1
- call ReadMapEventHeader
+ ld a, TRUE ; skip object events
+ call ReadMapEvents
ret
-CopyMapHeaders:: ; 2405 (0:2405)
- call PartiallyCopyMapHeader
- call SwitchToMapBank
- call GetSecondaryMapHeaderPointer
- call CopySecondMapHeader
+CopyMapPartialAndAttributes::
+ call CopyMapPartial
+ call SwitchToMapAttributesBank
+ call GetMapAttributesPointer
+ call CopyMapAttributes
call GetMapConnections
ret
-ReadMapEventHeader:: ; 2415 (0:2415)
+ReadMapEvents::
push af
- ld hl, wd08f
+ ld hl, wMapEventsPointer
ld a, [hli]
ld h, [hl]
ld l, a
@@ -730,104 +779,115 @@ ReadMapEventHeader:: ; 2415 (0:2415)
inc hl
call ReadWarps
call ReadCoordEvents
- call ReadSignposts
+ call ReadBGEvents
+
pop af
- and a
+ and a ; skip object events?
ret nz
+
call ReadObjectEvents
ret
-ReadMapScripts:: ; 242e (0:242e)
- ld hl, wd08d
+ReadMapScripts::
+ ld hl, wMapScriptsPointer
ld a, [hli]
ld h, [hl]
ld l, a
- call ReadMapTriggers
+ call ReadMapSceneScripts
call ReadMapCallbacks
ret
-CopySecondMapHeader:: ; 243b (0:243b)
- ld de, wMapBorderBlock
- ld c, $c
-.asm_2440
+CopyMapAttributes::
+ ld de, wMapAttributes
+ ld c, wMapAttributesEnd - wMapAttributes
+.loop
ld a, [hli]
ld [de], a
inc de
dec c
- jr nz, .asm_2440
+ jr nz, .loop
ret
-GetMapConnections:: ; 2447 (0:2447)
+GetMapConnections::
ld a, $ff
- ld [wd092], a
- ld [wd09e], a
- ld [wd0aa], a
- ld [wd0b6], a
- ld a, [wd091]
+ ld [wNorthConnectedMapGroup], a
+ ld [wSouthConnectedMapGroup], a
+ ld [wWestConnectedMapGroup], a
+ ld [wEastConnectedMapGroup], a
+
+ ld a, [wMapConnections]
ld b, a
- bit 3, b
- jr z, .asm_2463
- ld de, wd092
+
+ bit NORTH_F, b
+ jr z, .no_north
+ ld de, wNorthMapConnection
call GetMapConnection
-.asm_2463
- bit 2, b
- jr z, .asm_246d
- ld de, wd09e
+.no_north
+
+ bit SOUTH_F, b
+ jr z, .no_south
+ ld de, wSouthMapConnection
call GetMapConnection
-.asm_246d
- bit 1, b
- jr z, .asm_2477
- ld de, wd0aa
+.no_south
+
+ bit WEST_F, b
+ jr z, .no_west
+ ld de, wWestMapConnection
call GetMapConnection
-.asm_2477
- bit 0, b
- jr z, .asm_2481
- ld de, wd0b6
+.no_west
+
+ bit EAST_F, b
+ jr z, .no_east
+ ld de, wEastMapConnection
call GetMapConnection
-.asm_2481
+.no_east
+
ret
-GetMapConnection:: ; 2482 (0:2482)
- ld c, $c
-.asm_2484
+GetMapConnection::
+; Load map connection struct at hl into de.
+ ld c, wSouthMapConnection - wNorthMapConnection
+.loop
ld a, [hli]
ld [de], a
inc de
dec c
- jr nz, .asm_2484
+ jr nz, .loop
ret
-ReadMapTriggers:: ; 248b (0:248b)
- ld a, [hli]
+ReadMapSceneScripts::
+ ld a, [hli] ; scene_script count
ld c, a
- ld [wd951], a
+ ld [wCurMapSceneScriptCount], a
ld a, l
- ld [wd952], a
+ ld [wCurMapSceneScriptsPointer], a
ld a, h
- ld [wd953], a
+ ld [wCurMapSceneScriptsPointer + 1], a
ld a, c
and a
ret z
- ld bc, $4
+
+ ld bc, SCENE_SCRIPT_SIZE
call AddNTimes
ret
-ReadMapCallbacks:: ; 24a2 (0:24a2)
+ReadMapCallbacks::
ld a, [hli]
ld c, a
- ld [wd954], a
+ ld [wCurMapCallbackCount], a
ld a, l
- ld [wd955], a
+ ld [wCurMapCallbacksPointer], a
ld a, h
- ld [wd956], a
+ ld [wCurMapCallbacksPointer + 1], a
ld a, c
and a
ret z
- ld bc, $3
+
+ ld bc, CALLBACK_SIZE
call AddNTimes
ret
-ReadWarps:: ; 24b9 (0:24b9)
+ReadWarps::
ld a, [hli]
ld c, a
ld [wCurMapWarpCount], a
@@ -838,26 +898,28 @@ ReadWarps:: ; 24b9 (0:24b9)
ld a, c
and a
ret z
- ld bc, $5
+ ld bc, WARP_EVENT_SIZE
call AddNTimes
ret
-ReadCoordEvents:: ; 24d0 (0:24d0)
+ReadCoordEvents::
ld a, [hli]
ld c, a
- ld [wd948], a
+ ld [wCurMapCoordEventCount], a
ld a, l
- ld [wd949], a
+ ld [wCurMapCoordEventsPointer], a
ld a, h
- ld [wd94a], a
+ ld [wCurMapCoordEventsPointer + 1], a
+
ld a, c
and a
ret z
- ld bc, $8
+
+ ld bc, COORD_EVENT_SIZE
call AddNTimes
ret
-ReadSignposts:: ; 24e7 (0:24e7)
+ReadBGEvents::
ld a, [hli]
ld c, a
ld [wCurMapBGEventCount], a
@@ -865,118 +927,136 @@ ReadSignposts:: ; 24e7 (0:24e7)
ld [wCurMapBGEventsPointer], a
ld a, h
ld [wCurMapBGEventsPointer + 1], a
+
ld a, c
and a
ret z
- ld bc, $5
+
+ ld bc, BG_EVENT_SIZE
call AddNTimes
ret
-ReadObjectEvents:: ; 24fe (0:24fe)
+ReadObjectEvents::
push hl
call ClearObjectStructs
pop de
ld hl, wMap2Object
ld a, [de]
inc de
- ld [wd94e], a
+ ld [wCurMapObjectEventCount], a
ld a, e
- ld [wd94f], a
+ ld [wCurMapObjectEventsPointer], a
ld a, d
- ld [wd950], a
- ld a, [wd94e]
- call CopyMapObjectHeaders
- ld a, [wd94e]
+ ld [wCurMapObjectEventsPointer + 1], a
+
+ ld a, [wCurMapObjectEventCount]
+ call CopyMapObjectEvents
+
+; get NUM_OBJECTS - [wCurMapObjectEventCount]
+ ld a, [wCurMapObjectEventCount]
ld c, a
- ld a, $10
+ ld a, NUM_OBJECTS ; - 1
sub c
- jr z, .asm_2533
- ld bc, $1
+ jr z, .skip
+ ; jr c, .skip
+
+ ; could have done "inc hl" instead
+ ld bc, 1
add hl, bc
- ld bc, $10
-.asm_2529
- ld [hl], $0
+; Fill the remaining sprite IDs and y coords with 0 and -1, respectively.
+; Bleeds into wObjectMasks due to a bug. Uncomment the above code to fix.
+ ld bc, MAPOBJECT_LENGTH
+.loop
+ ld [hl], 0
inc hl
- ld [hl], $ff
+ ld [hl], -1
dec hl
add hl, bc
dec a
- jr nz, .asm_2529
-.asm_2533
+ jr nz, .loop
+
+.skip
ld h, d
ld l, e
ret
-CopyMapObjectHeaders:: ; 2536 (0:2536)
+CopyMapObjectEvents::
and a
ret z
+
ld c, a
-.asm_2539
+.loop
push bc
push hl
ld a, $ff
ld [hli], a
- ld b, $d
-.asm_2540
+ ld b, OBJECT_EVENT_SIZE
+.loop2
ld a, [de]
inc de
ld [hli], a
dec b
- jr nz, .asm_2540
+ jr nz, .loop2
+
pop hl
- ld bc, $10
+ ld bc, MAPOBJECT_LENGTH
add hl, bc
pop bc
dec c
- jr nz, .asm_2539
+ jr nz, .loop
ret
-ClearObjectStructs:: ; 2550 (0:2550)
+ClearObjectStructs::
ld hl, wObject1Struct
- ld bc, $1e0
+ ld bc, OBJECT_LENGTH * (NUM_OBJECT_STRUCTS - 1)
xor a
call ByteFill
+
+; Just to make sure (this is rather pointless)
ld hl, wObject1Struct
- ld de, $28
- ld c, $c
+ ld de, OBJECT_LENGTH
+ ld c, NUM_OBJECT_STRUCTS - 1
xor a
-.asm_2563
+.loop
ld [hl], a
add hl, de
dec c
- jr nz, .asm_2563
+ jr nz, .loop
ret
GetWarpDestCoords::
call GetMapScriptsBank
rst Bankswitch
- ld hl, wd08f
+
+ ld hl, wMapEventsPointer
ld a, [hli]
ld h, [hl]
ld l, a
+rept 3 ; get to the warp coords
inc hl
- inc hl
- inc hl
- ld a, [wd9ff]
+endr
+ ld a, [wWarpNumber]
dec a
ld c, a
- ld b, $0
- ld a, $5
+ ld b, 0
+ ld a, WARP_EVENT_SIZE
call AddNTimes
ld a, [hli]
ld [wYCoord], a
ld a, [hli]
ld [wXCoord], a
+ ; destination warp number
ld a, [hli]
- cp $ff
- jr nz, .asm_2592
- call BackUpWarp
-.asm_2592
+ cp -1
+ jr nz, .skip
+ call .backup
+
+.skip
call GetMapScreenCoords
ret
-BackUpWarp:: ; 2596 (0:2596)
- ld a, [wPrevWarpNumber]
+.backup
+ ld a, [wPrevWarp]
ld [wBackupWarpNumber], a
ld a, [wPrevMapGroup]
ld [wBackupMapGroup], a
@@ -985,18 +1065,19 @@ BackUpWarp:: ; 2596 (0:2596)
ret
GetMapScreenCoords::
- ld hl, wc700
+ ld hl, wOverworldMapBlocks
ld a, [wXCoord]
bit 0, a
- jr nz, .asm_25b9
+ jr nz, .increment_then_halve1
srl a
add $1
- jr .asm_25bd
+ jr .resume
-.asm_25b9
+.increment_then_halve1
add $1
srl a
-.asm_25bd
+
+.resume
ld c, a
ld b, $0
add hl, bc
@@ -1006,15 +1087,16 @@ GetMapScreenCoords::
ld b, $0
ld a, [wYCoord]
bit 0, a
- jr nz, .asm_25d6
+ jr nz, .increment_then_halve2
srl a
add $1
- jr .asm_25da
+ jr .resume2
-.asm_25d6
+.increment_then_halve2
add $1
srl a
-.asm_25da
+
+.resume2
call AddNTimes
ld a, l
ld [wOverworldMapAnchor], a
@@ -1031,184 +1113,202 @@ GetMapScreenCoords::
LoadBlockData::
ld hl, wOverworldMapBlocks
ld bc, wOverworldMapBlocksEnd - wOverworldMapBlocks
- ld a, $0
+ ld a, 0
call ByteFill
call ChangeMap
call FillMapConnections
- ld a, $1
+ ld a, MAPCALLBACK_TILES
call RunMapCallback
ret
-ChangeMap:: ; 260d (0:260d)
+ChangeMap::
ldh a, [hROMBank]
push af
- ld hl, wc700
+
+ ld hl, wOverworldMapBlocks
ld a, [wMapWidth]
- ldh [hObjectStructIndexBuffer], a
+ ldh [hConnectedMapWidth], a
add $6
ldh [hConnectionStripLength], a
ld c, a
- ld b, $0
+ ld b, 0
add hl, bc
add hl, bc
add hl, bc
- ld c, $3
+ ld c, 3
add hl, bc
- ld a, [wd089]
+ ld a, [wMapBlocksBank]
rst Bankswitch
- ld a, [wd08a]
+
+ ld a, [wMapBlocksPointer]
ld e, a
- ld a, [wd08b]
+ ld a, [wMapBlocksPointer + 1]
ld d, a
- ld a, [wd087]
+ ld a, [wMapHeight]
ld b, a
-.asm_2635
+.row
push hl
- ldh a, [hObjectStructIndexBuffer]
+ ldh a, [hConnectedMapWidth]
ld c, a
-.asm_2639
+.col
ld a, [de]
inc de
ld [hli], a
dec c
- jr nz, .asm_2639
+ jr nz, .col
pop hl
- ldh a, [hMapObjectIndexBuffer]
+ ldh a, [hConnectionStripLength]
add l
ld l, a
- jr nc, .asm_2647
+ jr nc, .okay
inc h
-.asm_2647
+.okay
dec b
- jr nz, .asm_2635
+ jr nz, .row
+
pop af
rst Bankswitch
ret
-FillMapConnections:: ; 264d (0:264d)
- ld a, [wd092]
+FillMapConnections::
+; North
+ ld a, [wNorthConnectedMapGroup]
cp $ff
- jr z, .asm_2679
+ jr z, .South
ld b, a
- ld a, [wd093]
+ ld a, [wNorthConnectedMapNumber]
ld c, a
- call GetAnyMapBlockdataBank
- ld a, [wd094]
+ call GetAnyMapBlocksBank
+
+ ld a, [wNorthConnectionStripPointer]
ld l, a
- ld a, [wd095]
+ ld a, [wNorthConnectionStripPointer + 1]
ld h, a
- ld a, [wd096]
+ ld a, [wNorthConnectionStripLocation]
ld e, a
- ld a, [wd097]
+ ld a, [wNorthConnectionStripLocation + 1]
ld d, a
- ld a, [wd098]
+ ld a, [wNorthConnectionStripLength]
ldh [hConnectionStripLength], a
- ld a, [wd099]
- ldh [hObjectStructIndexBuffer], a
+ ld a, [wNorthConnectedMapWidth]
+ ldh [hConnectedMapWidth], a
call FillNorthConnectionStrip
-.asm_2679
- ld a, [wd09e]
+
+.South:
+ ld a, [wSouthConnectedMapGroup]
cp $ff
- jr z, .asm_26a5
+ jr z, .West
ld b, a
- ld a, [wd09f]
+ ld a, [wSouthConnectedMapNumber]
ld c, a
- call GetAnyMapBlockdataBank
- ld a, [wd0a0]
+ call GetAnyMapBlocksBank
+
+ ld a, [wSouthConnectionStripPointer]
ld l, a
- ld a, [wd0a1]
+ ld a, [wSouthConnectionStripPointer + 1]
ld h, a
- ld a, [wd0a2]
+ ld a, [wSouthConnectionStripLocation]
ld e, a
- ld a, [wd0a3]
+ ld a, [wSouthConnectionStripLocation + 1]
ld d, a
- ld a, [wd0a4]
+ ld a, [wSouthConnectionStripLength]
ldh [hConnectionStripLength], a
- ld a, [wd0a5]
- ldh [hObjectStructIndexBuffer], a
+ ld a, [wSouthConnectedMapWidth]
+ ldh [hConnectedMapWidth], a
call FillSouthConnectionStrip
-.asm_26a5
- ld a, [wd0aa]
+
+.West:
+ ld a, [wWestConnectedMapGroup]
cp $ff
- jr z, .asm_26d0
+ jr z, .East
ld b, a
- ld a, [wd0ab]
+ ld a, [wWestConnectedMapNumber]
ld c, a
- call GetAnyMapBlockdataBank
- ld a, [wd0ac]
+ call GetAnyMapBlocksBank
+
+ ld a, [wWestConnectionStripPointer]
ld l, a
- ld a, [wd0ad]
+ ld a, [wWestConnectionStripPointer + 1]
ld h, a
- ld a, [wd0ae]
+ ld a, [wWestConnectionStripLocation]
ld e, a
- ld a, [wd0af]
+ ld a, [wWestConnectionStripLocation + 1]
ld d, a
- ld a, [wd0b0]
+ ld a, [wWestConnectionStripLength]
ld b, a
- ld a, [wd0b1]
+ ld a, [wWestConnectedMapWidth]
ldh [hConnectionStripLength], a
call FillWestConnectionStrip
-.asm_26d0
- ld a, [wd0b6]
+
+.East:
+ ld a, [wEastConnectedMapGroup]
cp $ff
- jr z, .asm_26fb
+ jr z, .Done
ld b, a
- ld a, [wd0b7]
+ ld a, [wEastConnectedMapNumber]
ld c, a
- call GetAnyMapBlockdataBank
- ld a, [wd0b8]
+ call GetAnyMapBlocksBank
+
+ ld a, [wEastConnectionStripPointer]
ld l, a
- ld a, [wd0b9]
+ ld a, [wEastConnectionStripPointer + 1]
ld h, a
- ld a, [wd0ba]
+ ld a, [wEastConnectionStripLocation]
ld e, a
- ld a, [wd0bb]
+ ld a, [wEastConnectionStripLocation + 1]
ld d, a
- ld a, [wd0bc]
+ ld a, [wEastConnectionStripLength]
ld b, a
- ld a, [wd0bd]
+ ld a, [wEastConnectedMapWidth]
ldh [hConnectionStripLength], a
call FillEastConnectionStrip
-.asm_26fb
+
+.Done:
ret
-FillNorthConnectionStrip:: ; 26fc (0:26fc)
-FillSouthConnectionStrip:: ; 26fc (0:26fc)
- ld c, $3
-.asm_26fe
+FillNorthConnectionStrip::
+FillSouthConnectionStrip::
+ ld c, 3
+.y
push de
+
push hl
- ldh a, [hMapObjectIndexBuffer]
+ ldh a, [hConnectionStripLength]
ld b, a
-.asm_2703
+.x
ld a, [hli]
ld [de], a
inc de
dec b
- jr nz, .asm_2703
+ jr nz, .x
pop hl
- ldh a, [hObjectStructIndexBuffer]
+
+ ldh a, [hConnectedMapWidth]
ld e, a
- ld d, $0
+ ld d, 0
add hl, de
pop de
+
ld a, [wMapWidth]
- add $6
+ add 6
add e
ld e, a
- jr nc, .asm_271b
+ jr nc, .okay
inc d
-.asm_271b
+.okay
dec c
- jr nz, .asm_26fe
+ jr nz, .y
ret
-FillWestConnectionStrip:: ; 271f (0:271f)
-FillEastConnectionStrip:: ; 271f (0:271f)
+FillWestConnectionStrip::
+FillEastConnectionStrip::
+.loop
ld a, [wMapWidth]
- add $6
+ add 6
ldh [hConnectedMapWidth], a
+
push de
+
push hl
ld a, [hli]
ld [de], a
@@ -1220,83 +1320,93 @@ FillEastConnectionStrip:: ; 271f (0:271f)
ld [de], a
inc de
pop hl
- ldh a, [hMapObjectIndexBuffer]
+
+ ldh a, [hConnectionStripLength]
ld e, a
- ld d, $0
+ ld d, 0
add hl, de
pop de
+
ldh a, [hConnectedMapWidth]
add e
ld e, a
- jr nc, .asm_2740
+ jr nc, .okay
inc d
-.asm_2740
+.okay
dec b
- jr nz, FillWestConnectionStrip
+ jr nz, .loop
ret
LoadMapStatus::
- ld [wd159], a
+ ld [wMapStatus], a
ret
CallScript::
+; Call a script at a:hl.
+
ld [wScriptBank], a
ld a, l
- ld [wd161], a
+ ld [wScriptPos], a
ld a, h
- ld [wd162], a
- ld a, $ff
- ld [wd15f], a
+ ld [wScriptPos + 1], a
+
+ ld a, PLAYEREVENT_MAPSCRIPT
+ ld [wScriptRunning], a
+
scf
ret
CallMapScript::
- ld a, [wd15f]
+; Call a script at hl in the current bank if there isn't already a script running
+ ld a, [wScriptRunning]
and a
ret nz
call GetMapScriptsBank
jr CallScript
-RunMapCallback:: ; 2764 (0:2764)
+RunMapCallback::
+; Will run the first callback found with execution index equal to a.
ld b, a
ldh a, [hROMBank]
push af
call SwitchToMapScriptsBank
- call FindCallback
- jr nc, .asm_2779
+ call .FindCallback
+ jr nc, .done
+
call GetMapScriptsBank
ld b, a
ld d, h
ld e, l
call ExecuteCallbackScript
-.asm_2779
+
+.done
pop af
rst Bankswitch
ret
-FindCallback:: ; 277c (0:277c)
- ld a, [wd954]
+.FindCallback:
+ ld a, [wCurMapCallbackCount]
ld c, a
and a
ret z
- ld hl, wd955
+ ld hl, wCurMapCallbacksPointer
ld a, [hli]
ld h, [hl]
ld l, a
or h
ret z
- ld de, $3
-.asm_278d
+ ld de, CALLBACK_SIZE
+.loop
ld a, [hl]
cp b
- jr z, .asm_2797
+ jr z, .found
add hl, de
dec c
- jr nz, .asm_278d
+ jr nz, .loop
xor a
ret
-.asm_2797
+.found
inc hl
ld a, [hli]
ld h, [hl]
@@ -1304,44 +1414,52 @@ FindCallback:: ; 277c (0:277c)
scf
ret
-ExecuteCallbackScript:: ; 279d (0:279d)
+ExecuteCallbackScript::
+; Do map callback de and return to script bank b.
farcall CallCallback
- ld a, [wd15e]
+ ld a, [wScriptMode]
push af
- ld hl, wd15b
+ ld hl, wScriptFlags
ld a, [hl]
push af
set 1, [hl]
farcall EnableScriptMode
farcall ScriptEvents
pop af
- ld [wd15b], a
+ ld [wScriptFlags], a
pop af
- ld [wd15e], a
+ ld [wScriptMode], a
ret
MapTextbox::
ldh a, [hROMBank]
push af
+
ld a, b
rst Bankswitch
+
call SetUpTextbox
- ld a, $1
+ ld a, 1
ldh [hOAMUpdate], a
call PrintTextboxText
xor a
ldh [hOAMUpdate], a
+
pop af
rst Bankswitch
ret
Call_a_de::
+; Call a:de.
+
ld [wBuffer], a
ldh a, [hROMBank]
push af
ld a, [wBuffer]
rst Bankswitch
+
call .de
+
pop af
rst Bankswitch
ret
@@ -1351,33 +1469,42 @@ Call_a_de::
ret
GetMovementData::
+; Initialize the movement data for object c at b:hl
ldh a, [hROMBank]
push af
ld a, b
rst Bankswitch
+
ld a, c
call LoadMovementDataPointer
+
pop hl
ld a, h
rst Bankswitch
ret
GetScriptByte::
+; Return byte at wScriptBank:wScriptPos in a.
+
push hl
push bc
ldh a, [hROMBank]
push af
ld a, [wScriptBank]
rst Bankswitch
- ld hl, wd161
+
+ ld hl, wScriptPos
ld c, [hl]
inc hl
ld b, [hl]
+
ld a, [bc]
+
inc bc
ld [hl], b
dec hl
ld [hl], c
+
ld b, a
pop af
rst Bankswitch
@@ -1409,64 +1536,62 @@ CoordinatesEventText::
CheckObjectMask::
ldh a, [hMapObjectIndexBuffer]
-.asm_282c
ld e, a
ld d, $0
- ld hl, wMapObjectsEnd
+ ld hl, wObjectMasks
add hl, de
ld a, [hl]
-.asm_2834
ret
-MaskObject:: ; 2835 (0:2835)
- ldh a, [hConnectionStripLength]
+MaskObject::
+ ldh a, [hMapObjectIndexBuffer]
ld e, a
ld d, $0
- ld hl, wd545
-.asm_283c
+ ld hl, wObjectMasks
add hl, de
- ld [hl], $ff
+ ld [hl], -1 ; , masked
ret
-UnmaskObject:: ; 2841 (0:2841)
+UnmaskObject::
ldh a, [hMapObjectIndexBuffer]
ld e, a
ld d, $0
- ld hl, wMapObjectsEnd
+ ld hl, wObjectMasks
add hl, de
- ld [hl], $0
+ ld [hl], 0 ; unmasked
ret
-ScrollMapDown::
+ScrollMapUp::
hlcoord 0, 0
ld de, wBGMapBuffer
call BackupBGMapRow
- ld c, $28
+ ld c, 2 * SCREEN_WIDTH
call ScrollBGMapPalettes
- ld a, [wd05b]
+ ld a, [wBGMapAnchor]
ld e, a
- ld a, [wd05c]
+ ld a, [wBGMapAnchor + 1]
ld d, a
call UpdateBGMapRow
ld a, $1
ldh [hBGMapUpdate], a
ret
-ScrollMapUp::
- hlcoord 0, 16
+ScrollMapDown::
+ hlcoord 0, SCREEN_HEIGHT - 2
ld de, wBGMapBuffer
call BackupBGMapRow
- ld c, $28
+ ld c, 2 * SCREEN_WIDTH
call ScrollBGMapPalettes
- ld a, [wd05b]
+ ld a, [wBGMapAnchor]
ld l, a
- ld a, [wd05c]
+ ld a, [wBGMapAnchor + 1]
ld h, a
- ld bc, $200
+ ld bc, BG_MAP_WIDTH tiles
add hl, bc
+; cap d at HIGH(vBGMap0)
ld a, h
- and $3
- or $98
+ and %00000011
+ or HIGH(vBGMap0)
ld e, l
ld d, a
call UpdateBGMapRow
@@ -1474,83 +1599,85 @@ ScrollMapUp::
ldh [hBGMapUpdate], a
ret
-ScrollMapRight::
+ScrollMapLeft::
hlcoord 0, 0
ld de, wBGMapBuffer
call BackupBGMapColumn
- ld c, $24
+ ld c, 2 * SCREEN_HEIGHT
call ScrollBGMapPalettes
- ld a, [wd05b]
+ ld a, [wBGMapAnchor]
ld e, a
- ld a, [wd05c]
+ ld a, [wBGMapAnchor + 1]
ld d, a
call UpdateBGMapColumn
ld a, $1
ldh [hBGMapUpdate], a
ret
-ScrollMapLeft::
- hlcoord 18, 0
+ScrollMapRight::
+ hlcoord SCREEN_WIDTH - 2, 0
ld de, wBGMapBuffer
call BackupBGMapColumn
- ld c, $24
+ ld c, 2 * SCREEN_HEIGHT
call ScrollBGMapPalettes
- ld a, [wd05b]
+ ld a, [wBGMapAnchor]
ld e, a
- and $e0
+ and %11100000
ld b, a
ld a, e
- add $12
- and $1f
+ add SCREEN_HEIGHT
+ and %00011111
or b
ld e, a
- ld a, [wd05c]
+ ld a, [wBGMapAnchor + 1]
ld d, a
call UpdateBGMapColumn
ld a, $1
ldh [hBGMapUpdate], a
ret
-BackupBGMapRow:: ; 28da (0:28da)
- ld c, $28
-.asm_28dc
+BackupBGMapRow::
+ ld c, 2 * SCREEN_WIDTH
+.loop
ld a, [hli]
ld [de], a
inc de
dec c
- jr nz, .asm_28dc
+ jr nz, .loop
ret
-BackupBGMapColumn:: ; 28e3 (0:28e3)
- ld c, $12
-.asm_28e5
+BackupBGMapColumn::
+ ld c, SCREEN_HEIGHT
+.loop
ld a, [hli]
ld [de], a
inc de
ld a, [hl]
ld [de], a
inc de
- ld a, $13
+ ld a, SCREEN_WIDTH - 1
add l
ld l, a
- jr nc, .asm_28f2
+ jr nc, .skip
inc h
-.asm_28f2
+
+.skip
dec c
- jr nz, .asm_28e5
+ jr nz, .loop
ret
-UpdateBGMapRow:: ; 28f6 (0:28f6)
+UpdateBGMapRow::
ld hl, wBGMapBufferPtrs
push de
call .iteration
pop de
- ld a, $20
+ ld a, BG_MAP_WIDTH
add e
ld e, a
+
.iteration
- ld c, $a
-.asm_2904
+ ld c, 10
+.loop
ld a, e
ld [hli], a
ld a, d
@@ -1565,60 +1692,63 @@ UpdateBGMapRow:: ; 28f6 (0:28f6)
or b
ld e, a
dec c
- jr nz, .asm_2904
- ld a, $14
+ jr nz, .loop
+ ld a, SCREEN_WIDTH
ldh [hBGMapTileCount], a
ret
-UpdateBGMapColumn:: ; 291b (0:291b)
+UpdateBGMapColumn::
ld hl, wBGMapBufferPtrs
- ld c, $12
-.asm_2920
+ ld c, SCREEN_HEIGHT
+.loop
ld a, e
ld [hli], a
ld a, d
ld [hli], a
- ld a, $20
+ ld a, BG_MAP_WIDTH
add e
ld e, a
- jr nc, .asm_2931
+ jr nc, .skip
inc d
+; cap d at HIGH(vBGMap0)
ld a, d
- and $3
- or $98
+ and %11
+ or HIGH(vBGMap0)
ld d, a
-.asm_2931
+
+.skip
dec c
- jr nz, .asm_2920
- ld a, $12
+ jr nz, .loop
+ ld a, SCREEN_HEIGHT
ldh [hBGMapTileCount], a
ret
-Function2939::
+Unreferenced_Function2939::
ld hl, wBGMapBuffer
- ld bc, $78
+ ld bc, wBGMapBufferEnd - wBGMapBuffer
xor a
call ByteFill
ret
-LoadTileset:: ; 2944 (0:2944)
- ld hl, wd0c3
+LoadTilesetGFX::
+ ld hl, wTilesetAddress
ld a, [hli]
ld h, [hl]
ld l, a
- ld de, $9000
- ld a, [wd0c2]
+ ld de, vTiles2
+ ld a, [wTilesetBank]
call FarDecompress
- ld a, [wd082]
- cp $1
- jr z, .asm_2960
- cp $2
- jr z, .asm_2960
- jr .asm_2966
-
-.asm_2960
+ ld a, [wMapTileset]
+ cp TILESET_JOHTO
+ jr z, .load_roof
+ cp TILESET_JOHTO_MODERN
+ jr z, .load_roof
+ jr .skip_roof
+
+.load_roof
farcall LoadMapGroupRoof
-.asm_2966
+
+.skip_roof
xor a
ldh [hTileAnimFrame], a
ret
@@ -1628,27 +1758,27 @@ BufferScreen::
ld a, [hli]
ld h, [hl]
ld l, a
- ld de, wda04
- ld c, $5
- ld b, $6
-.asm_2977
+ ld de, wScreenSave
+ ld c, SCREEN_META_HEIGHT
+ ld b, SCREEN_META_WIDTH
+.row
push bc
push hl
-.asm_2979
+.col
ld a, [hli]
ld [de], a
inc de
dec b
- jr nz, .asm_2979
+ jr nz, .col
pop hl
ld a, [wMapWidth]
- add $6
+ add 6
ld c, a
- ld b, $0
+ ld b, 0
add hl, bc
pop bc
dec c
- jr nz, .asm_2977
+ jr nz, .row
ret
SaveScreen::
@@ -1656,47 +1786,47 @@ SaveScreen::
ld a, [hli]
ld h, [hl]
ld l, a
- ld de, wda04
+ ld de, wScreenSave
ld a, [wMapWidth]
- add $6
- ldh [hConnectionStripLength], a
+ add 6
+ ldh [hMapObjectIndexBuffer], a
ld a, [wPlayerStepDirection]
and a
- jr z, .asm_29bc
- cp $1
- jr z, .asm_29b1
- cp $2
- jr z, .asm_29c5
- cp $3
- jr z, .asm_29cb
+ jr z, .down
+ cp UP
+ jr z, .up
+ cp LEFT
+ jr z, .left
+ cp RIGHT
+ jr z, .right
ret
-.asm_29b1
- ld de, wda0a
- ldh a, [hConnectionStripLength]
+.up
+ ld de, wScreenSave + SCREEN_META_WIDTH
+ ldh a, [hMapObjectIndexBuffer]
ld c, a
- ld b, $0
+ ld b, 0
add hl, bc
- jr .asm_29bf
+ jr .vertical
-.asm_29bc
- ld de, wda04
-.asm_29bf
- ld b, $6
- ld c, $4
- jr SaveScreen_LoadNeighbor
+.down
+ ld de, wScreenSave
+.vertical
+ ld b, SCREEN_META_WIDTH
+ ld c, SCREEN_META_HEIGHT - 1
+ jr SaveScreen_LoadConnection
-.asm_29c5
- ld de, wda05
+.left
+ ld de, wScreenSave + 1
inc hl
- jr .asm_29ce
+ jr .horizontal
-.asm_29cb
- ld de, wda04
-.asm_29ce
- ld b, $5
- ld c, $5
- jr SaveScreen_LoadNeighbor
+.right
+ ld de, wScreenSave
+.horizontal
+ ld b, SCREEN_META_WIDTH - 1
+ ld c, SCREEN_META_HEIGHT
+ jr SaveScreen_LoadConnection
LoadConnectionBlockData::
ld hl, wOverworldMapAnchor
@@ -1704,43 +1834,46 @@ LoadConnectionBlockData::
ld h, [hl]
ld l, a
ld a, [wMapWidth]
- add $6
- ldh [hMapObjectIndexBuffer], a
- ld de, wda04
- ld b, $6
- ld c, $5
-SaveScreen_LoadNeighbor::
+ add 6
+ ldh [hConnectionStripLength], a
+ ld de, wScreenSave
+ ld b, SCREEN_META_WIDTH
+ ld c, SCREEN_META_HEIGHT
+
+SaveScreen_LoadConnection::
+.row
push bc
push hl
push de
-.asm_29eb
+.col
ld a, [de]
inc de
ld [hli], a
dec b
- jr nz, .asm_29eb
+ jr nz, .col
pop de
ld a, e
- add $6
+ add 6
ld e, a
- jr nc, .asm_29f9
+ jr nc, .okay
inc d
-.asm_29f9
+.okay
pop hl
ldh a, [hConnectionStripLength]
ld c, a
- ld b, $0
+ ld b, 0
add hl, bc
pop bc
dec c
- jr nz, SaveScreen_LoadNeighbor
+ jr nz, .row
ret
-GetMovementPermissions:: ; 2a05 (0:2a05)
+GetMovementPermissions::
xor a
ld [wTilePermissions], a
call .LeftRight
call .UpDown
+; get coords of current tile
ld a, [wPlayerStandingMapX]
ld d, a
ld a, [wPlayerStandingMapY]
@@ -1749,12 +1882,13 @@ GetMovementPermissions:: ; 2a05 (0:2a05)
ld [wPlayerStandingTile], a
call .CheckHiNybble
ret nz
+
ld a, [wPlayerStandingTile]
- and $7
+ and 7
ld hl, .MovementPermissionsData
add l
ld l, a
- ld a, $0
+ ld a, 0
adc h
ld h, a
ld a, [hl]
@@ -1764,25 +1898,27 @@ GetMovementPermissions:: ; 2a05 (0:2a05)
ret
.MovementPermissionsData:
- db 1 << DOWN
- db 1 << UP
- db 1 << LEFT
- db 1 << RIGHT
- db (1 << DOWN) | (1 << RIGHT)
- db (1 << UP) | (1 << RIGHT)
- db (1 << DOWN) | (1 << LEFT)
- db (1 << UP) | (1 << LEFT)
+ db DOWN_MASK
+ db UP_MASK
+ db LEFT_MASK
+ db RIGHT_MASK
+ db DOWN_MASK | RIGHT_MASK
+ db UP_MASK | RIGHT_MASK
+ db DOWN_MASK | LEFT_MASK
+ db UP_MASK | LEFT_MASK
.UpDown:
ld a, [wPlayerStandingMapX]
ld d, a
ld a, [wPlayerStandingMapY]
ld e, a
+
push de
inc e
call GetCoordTile
ld [wTileDown], a
call .Down
+
pop de
dec e
call GetCoordTile
@@ -1795,11 +1931,13 @@ GetMovementPermissions:: ; 2a05 (0:2a05)
ld d, a
ld a, [wPlayerStandingMapY]
ld e, a
+
push de
dec d
call GetCoordTile
ld [wTileLeft], a
call .Left
+
pop de
inc d
call GetCoordTile
@@ -1811,14 +1949,15 @@ GetMovementPermissions:: ; 2a05 (0:2a05)
call .CheckHiNybble
ret nz
ld a, [wTileDown]
- and $7
- cp $2
- jr z, .asm_2a90
- cp $6
- jr z, .asm_2a90
- cp $7
+ and %111
+ cp COLL_UP_WALL & %111 ; COLL_UP_BUOY & %111
+ jr z, .ok_down
+ cp COLL_UP_RIGHT_WALL & %111 ; COLL_UP_RIGHT_BUOY & %111
+ jr z, .ok_down
+ cp COLL_UP_LEFT_WALL & %111 ; COLL_UP_LEFT_BUOY & %111
ret nz
-.asm_2a90
+
+.ok_down
ld hl, wTilePermissions
set 3, [hl]
ret
@@ -1827,14 +1966,15 @@ GetMovementPermissions:: ; 2a05 (0:2a05)
call .CheckHiNybble
ret nz
ld a, [wTileUp]
- and $7
- cp $3
- jr z, .asm_2aaa
- cp $4
- jr z, .asm_2aaa
- cp $5
+ and %111
+ cp COLL_DOWN_WALL & %111 ; COLL_DOWN_BUOY & %111
+ jr z, .ok_up
+ cp COLL_DOWN_RIGHT_WALL & %111 ; COLL_DOWN_RIGHT_BUOY & %111
+ jr z, .ok_up
+ cp COLL_DOWN_LEFT_WALL & %111 ; COLL_DOWN_LEFT_BUOY & %111
ret nz
-.asm_2aaa
+
+.ok_up
ld hl, wTilePermissions
set 3, [hl]
ret
@@ -1843,14 +1983,15 @@ GetMovementPermissions:: ; 2a05 (0:2a05)
call .CheckHiNybble
ret nz
ld a, [wTileRight]
- and $7
- cp $1
- jr z, .asm_2ac4
- cp $5
- jr z, .asm_2ac4
- cp $7
+ and %111
+ cp COLL_LEFT_WALL & %111 ; COLL_LEFT_BUOY & %111
+ jr z, .ok_right
+ cp COLL_DOWN_LEFT_WALL & %111 ; COLL_DOWN_LEFT_BUOY & %111
+ jr z, .ok_right
+ cp COLL_UP_LEFT_WALL & %111 ; COLL_UP_LEFT_BUOY & %111
ret nz
-.asm_2ac4
+
+.ok_right
ld hl, wTilePermissions
set 3, [hl]
ret
@@ -1859,43 +2000,50 @@ GetMovementPermissions:: ; 2a05 (0:2a05)
call .CheckHiNybble
ret nz
ld a, [wTileLeft]
- and $7
- cp $0
- jr z, .asm_2ade
- cp $4
- jr z, .asm_2ade
- cp $6
+ and %111
+ cp COLL_RIGHT_WALL & %111 ; COLL_RIGHT_BUOY & %111
+ jr z, .ok_left
+ cp COLL_DOWN_RIGHT_WALL & %111 ; COLL_DOWN_RIGHT_BUOY & %111
+ jr z, .ok_left
+ cp COLL_UP_RIGHT_WALL & %111 ; COLL_UP_RIGHT_BUOY & %111
ret nz
-.asm_2ade
+
+.ok_left
ld hl, wTilePermissions
set 3, [hl]
ret
.CheckHiNybble:
and $f0
- cp $b0
+ cp HI_NYBBLE_SIDE_WALLS
ret z
- cp $c0
+ cp HI_NYBBLE_SIDE_BUOYS
ret
-GetFacingTileCoord:: ; 2aec (0:2aec)
+GetFacingTileCoord::
+; Return map coordinates in (d, e) and tile id in a
+; of the tile the player is facing.
+
ld a, [wPlayerDirection]
- and $c
+ and %1100
srl a
srl a
ld l, a
- ld h, $0
+ ld h, 0
add hl, hl
add hl, hl
ld de, .Directions
add hl, de
+
ld d, [hl]
inc hl
ld e, [hl]
inc hl
+
ld a, [hli]
ld h, [hl]
ld l, a
+
ld a, [wPlayerStandingMapX]
add d
ld d, a
@@ -1906,6 +2054,7 @@ GetFacingTileCoord:: ; 2aec (0:2aec)
ret
.Directions:
+ ; x, y
db 0, 1
dw wTileDown
db 0, -1
@@ -1915,115 +2064,126 @@ GetFacingTileCoord:: ; 2aec (0:2aec)
db 1, 0
dw wTileRight
-GetCoordTile:: ; 2b21 (0:2b21)
+GetCoordTile::
+; Get the collision byte for tile d, e
call GetBlockLocation
ld a, [hl]
and a
- jr z, .asm_2b48
+ jr z, .nope
ld l, a
ld h, $0
add hl, hl
add hl, hl
- ld a, [wd0c9]
+ ld a, [wTilesetCollisionAddress]
ld c, a
- ld a, [wd0ca]
+ ld a, [wTilesetCollisionAddress + 1]
ld b, a
add hl, bc
rr d
- jr nc, .asm_2b3b
+ jr nc, .nocarry
inc hl
-.asm_2b3b
+
+.nocarry
rr e
- jr nc, .asm_2b41
+ jr nc, .nocarry2
inc hl
inc hl
-.asm_2b41
- ld a, [wd0c8]
+
+.nocarry2
+ ld a, [wTilesetCollisionBank]
call GetFarByte
ret
-.asm_2b48
- ld a, $ff
+.nope
+ ld a, -1
ret
GetBlockLocation::
ld a, [wMapWidth]
- add $6
+ add 6
ld c, a
- ld b, $0
- ld hl, wc701
+ ld b, 0
+ ld hl, wOverworldMapBlocks + 1
add hl, bc
ld a, e
srl a
- jr z, .asm_2b69
+ jr z, .nope
and a
-.asm_2b5d
+.loop
srl a
- jr nc, .asm_2b62
+ jr nc, .ok
add hl, bc
-.asm_2b62
+
+.ok
sla c
rl b
and a
- jr nz, .asm_2b5d
-.asm_2b69
+ jr nz, .loop
+
+.nope
ld c, d
srl c
- ld b, $0
+ ld b, 0
add hl, bc
ret
-CheckFacingSign::
+CheckFacingBGEvent::
call GetFacingTileCoord
+; Load facing into b.
ld b, a
+; Convert the coordinates at de to within-boundaries coordinates.
ld a, d
- sub $4
+ sub 4
ld d, a
ld a, e
- sub $4
+ sub 4
ld e, a
+; If there are no BG events, we don't need to be here.
ld a, [wCurMapBGEventCount]
and a
ret z
+
ld c, a
ldh a, [hROMBank]
push af
call SwitchToMapScriptsBank
- call CheckIfFacingTileCoordIsSign
+ call CheckIfFacingTileCoordIsBGEvent
pop hl
ld a, h
rst Bankswitch
ret
-CheckIfFacingTileCoordIsSign:: ; 2b8f (0:2b8f)
+CheckIfFacingTileCoordIsBGEvent::
+; Checks to see if you are facing a BG event. If so, copies it into wCurBGEvent and sets carry.
ld hl, wCurMapBGEventsPointer
ld a, [hli]
ld h, [hl]
ld l, a
-.asm_2b95
+.loop
push hl
ld a, [hli]
cp e
- jr nz, .asm_2ba0
+ jr nz, .next
ld a, [hli]
cp d
- jr nz, .asm_2ba0
- jr .asm_2bad
+ jr nz, .next
+ jr .copysign
-.asm_2ba0
+.next
pop hl
- ld a, $5
+ ld a, BG_EVENT_SIZE
add l
ld l, a
- jr nc, .asm_2ba8
+ jr nc, .nocarry
inc h
-.asm_2ba8
+
+.nocarry
dec c
- jr nz, .asm_2b95
+ jr nz, .loop
xor a
ret
-.asm_2bad
+.copysign
pop hl
ld de, wCurBGEvent
ld bc, BG_EVENT_SIZE
@@ -2031,63 +2191,71 @@ CheckIfFacingTileCoordIsSign:: ; 2b8f (0:2b8f)
scf
ret
-CheckCurrentMapXYTriggers::
- ld a, [wd948]
+CheckCurrentMapCoordEvents::
+; If there are no coord events, we don't need to be here.
+ ld a, [wCurMapCoordEventCount]
and a
ret z
+; Copy the coord event count into c.
ld c, a
ldh a, [hROMBank]
push af
call SwitchToMapScriptsBank
- call .TriggerCheck
+ call .CoordEventCheck
pop hl
ld a, h
rst Bankswitch
ret
-.TriggerCheck:
- ld hl, wd949
+.CoordEventCheck:
+; Checks to see if you are standing on a coord event. If yes, copies the event to wCurCoordEvent and sets carry.
+ ld hl, wCurMapCoordEventsPointer
ld a, [hli]
ld h, [hl]
ld l, a
- call CheckTriggers
+; Load the active scene ID into b
+ call CheckScenes
ld b, a
+; Load your current coordinates into de. This will be used to check if your position is in the coord event table for the current map.
ld a, [wPlayerStandingMapX]
- sub $4
+ sub 4
ld d, a
ld a, [wPlayerStandingMapY]
- sub $4
+ sub 4
ld e, a
-.asm_2be2
+
+.loop
push hl
ld a, [hli]
cp b
- jr z, .asm_2beb
- cp $ff
- jr nz, .asm_2bf5
-.asm_2beb
+ jr z, .got_id
+ cp -1
+ jr nz, .next
+
+.got_id
ld a, [hli]
cp e
- jr nz, .asm_2bf5
+ jr nz, .next
ld a, [hli]
cp d
- jr nz, .asm_2bf5
- jr .asm_2c02
+ jr nz, .next
+ jr .copy_coord_event
-.asm_2bf5
+.next
pop hl
- ld a, $8
+ ld a, COORD_EVENT_SIZE
add l
ld l, a
- jr nc, .asm_2bfd
+ jr nc, .nocarry
inc h
-.asm_2bfd
+
+.nocarry
dec c
- jr nz, .asm_2be2
+ jr nz, .loop
xor a
ret
-.asm_2c02
+.copy_coord_event
pop hl
ld de, wCurCoordEvent
ld bc, COORD_EVENT_SIZE
@@ -2119,7 +2287,7 @@ ExitAllMenus::
call UpdateSprites
call Functiond2a
FinishExitMenu::
- ld b, $9
+ ld b, SCGB_MAPPALS
call GetSGBLayout
call WaitBGMap2
farcall FadeInPalettes
@@ -2140,7 +2308,7 @@ ReturnToMapWithSpeechTextbox::
set 0, [hl]
call UpdateSprites
call WaitBGMap2
- ld b, $9
+ ld b, SCGB_MAPPALS
call GetSGBLayout
call UpdateTimePals
call DelayFrame
@@ -2149,7 +2317,7 @@ ReturnToMapWithSpeechTextbox::
pop af
ret
-ReloadTilesetAndPalettes:: ; 2c87 (0:2c87)
+ReloadTilesetAndPalettes::
call DisableLCD
call ClearSprites
farcall Function1414b
@@ -2161,181 +2329,220 @@ ReloadTilesetAndPalettes:: ; 2c87 (0:2c87)
ld b, a
ld a, [wMapNumber]
ld c, a
- call SwitchToAnyMapBank
+ call SwitchToAnyMapAttributesBank
farcall UpdateTimeOfDayPal
call OverworldTextModeSwitch
- call LoadTileset
- ld a, $8
+ call LoadTilesetGFX
+ ld a, 8
call SkipMusic
pop af
rst Bankswitch
+
call EnableLCD
ret
-GetMapHeaderPointer:: ; 2cbe (0:2cbe)
+GetMapPointer::
ld a, [wMapGroup]
ld b, a
ld a, [wMapNumber]
ld c, a
-GetAnyMapHeaderPointer:: ; 2cc6 (0:2cc6)
- push bc
+GetAnyMapPointer::
+; Prior to calling this function, you must have switched banks so that
+; MapGroupPointers is visible.
+
+; inputs:
+; b = map group, c = map number
+
+; outputs:
+; hl points to the map within its group
+ push bc ; save map number for later
+
+ ; get pointer to map group
dec b
ld c, b
- ld b, $0
- ld hl, MapGroupPointers ; 25:40ed
+ ld b, 0
+ ld hl, MapGroupPointers
add hl, bc
add hl, bc
+
ld a, [hli]
ld h, [hl]
ld l, a
- pop bc
+ pop bc ; restore map number
+
+ ; find the cth map within the group
dec c
- ld b, $0
- ld a, $9
+ ld b, 0
+ ld a, 9
call AddNTimes
ret
-GetMapHeaderMember:: ; 2cdd (0:2cdd)
+GetMapField::
+; Extract data from the current map's group entry.
+
+; inputs:
+; de = offset of desired data within the map (a MAP_* constant)
+
+; outputs:
+; bc = data from the current map's field
+; (e.g., de = MAP_TILESET would return a pointer to the tileset id)
+
ld a, [wMapGroup]
ld b, a
ld a, [wMapNumber]
ld c, a
-GetAnyMapHeaderMember:: ; 2ce5 (0:2ce5)
+GetAnyMapField::
+ ; bankswitch
ldh a, [hROMBank]
push af
ld a, BANK(MapGroupPointers)
rst Bankswitch
- call GetAnyMapHeaderPointer
+
+ call GetAnyMapPointer
add hl, de
ld c, [hl]
inc hl
ld b, [hl]
+
+ ; bankswitch back
pop af
rst Bankswitch
ret
-SwitchToMapBank:: ; 2cf5 (0:2cf5)
+SwitchToMapAttributesBank::
ld a, [wMapGroup]
ld b, a
ld a, [wMapNumber]
ld c, a
-SwitchToAnyMapBank:: ; 2cfd (0:2cfd)
- call GetAnyMapBank
+SwitchToAnyMapAttributesBank::
+ call GetAnyMapAttributesBank
rst Bankswitch
ret
-GetMapBank::
+GetMapAttributesBank::
ld a, [wMapGroup]
ld b, a
ld a, [wMapNumber]
ld c, a
-GetAnyMapBank:: ; 2d0a (0:2d0a)
+GetAnyMapAttributesBank::
push hl
push de
- ld de, 0
- call GetAnyMapHeaderMember
+ ld de, MAP_MAPATTRIBUTES_BANK
+ call GetAnyMapField
ld a, c
pop de
pop hl
ret
-PartiallyCopyMapHeader:: ; 2d16 (0:2d16)
+CopyMapPartial::
+; Copy map data bank, tileset, environment, and map data address
+; from the current map's entry within its group.
ldh a, [hROMBank]
push af
ld a, BANK(MapGroupPointers)
rst Bankswitch
- call GetMapHeaderPointer
- ld de, wd081
- ld bc, $5
+
+ call GetMapPointer
+ ld de, wMapPartial
+ ld bc, wMapPartialEnd - wMapPartial
call CopyBytes
+
pop af
rst Bankswitch
ret
-SwitchToMapScriptsBank:: ; 2d2b (0:2d2b)
- ld a, [wd08c]
+SwitchToMapScriptsBank::
+ ld a, [wMapScriptsBank]
rst Bankswitch
ret
-GetMapScriptsBank:: ; 2d30 (0:2d30)
- ld a, [wd08c]
+GetMapScriptsBank::
+ ld a, [wMapScriptsBank]
ret
-GetAnyMapBlockdataBank:: ; 2d34 (0:2d34)
+GetAnyMapBlocksBank::
+; Return the blockdata bank for group b map c.
push hl
push de
push bc
+
push bc
- ld de, $3
- call GetAnyMapHeaderMember
+ ld de, MAP_MAPATTRIBUTES
+ call GetAnyMapField
ld l, c
ld h, b
pop bc
+
push hl
- ld de, MBC3SRamEnable
- call GetAnyMapHeaderMember
+ ld de, MAP_MAPATTRIBUTES_BANK
+ call GetAnyMapField
pop hl
- ld de, $3
+
+ ld de, MAP_MAPATTRIBUTES ; blockdata bank
add hl, de
ld a, c
call GetFarByte
rst Bankswitch
+
pop bc
pop de
pop hl
ret
-GetSecondaryMapHeaderPointer:: ; 2d56 (0:2d56)
+GetMapAttributesPointer::
+; returns the current map's data pointer in hl.
push bc
push de
- ld de, $3
- call GetMapHeaderMember
+ ld de, MAP_MAPATTRIBUTES
+ call GetMapField
ld l, c
ld h, b
pop de
pop bc
ret
-GetMapEnvironment:: ; 2d63 (0:2d63)
+GetMapEnvironment::
push hl
push de
push bc
- ld de, $2
- call GetMapHeaderMember
+ ld de, MAP_ENVIRONMENT
+ call GetMapField
ld a, c
pop bc
pop de
pop hl
ret
-Function2d71:: ; XXX
- ret
+ ret ; unused
-GetAnyMapPermission:: ; 2d72 (0:2d72)
+GetAnyMapEnvironment::
push hl
push de
push bc
- ld de, $2
- call GetAnyMapHeaderMember
+ ld de, MAP_ENVIRONMENT
+ call GetAnyMapField
ld a, c
pop bc
pop de
pop hl
ret
-GetAnyMapTileset:: ; 2d80 (0:2d80)
- ld de, $1
- call GetAnyMapHeaderMember
+GetAnyMapTileset::
+ ld de, MAP_TILESET
+ call GetAnyMapField
ld a, c
ret
GetWorldMapLocation::
+; given a map group/id in bc, return its location on the Pokégear map.
push hl
push de
push bc
- ld de, $5
- call GetAnyMapHeaderMember
+
+ ld de, MAP_LOCATION
+ call GetAnyMapField
ld a, c
+
pop bc
pop de
pop hl
@@ -2344,60 +2551,65 @@ GetWorldMapLocation::
GetMapMusic::
push hl
push bc
- ld de, $6
- call GetMapHeaderMember
+ ld de, MAP_MUSIC
+ call GetMapField
ld a, c
cp MUSIC_MAHOGANY_MART
- jr z, .mahogany_mart_check
- bit 7, c
- jr nz, .radio_tower_check
+ jr z, .mahoganymart
+ bit RADIO_TOWER_MUSIC_F, c
+ jr nz, .radiotower
ld e, c
- ld d, $0
-.load
+ ld d, 0
+.done
pop bc
pop hl
ret
-.radio_tower_check
- CheckFlag ENGINE_ROCKETS_IN_RADIO_TOWER
- jr z, .no_rockets
+.radiotower
+ ld a, [wStatusFlags2]
+ bit STATUSFLAGS2_ROCKETS_IN_RADIO_TOWER_F, a
+ jr z, .clearedradiotower
ld de, MUSIC_ROCKET_OVERTURE
- jr .load
+ jr .done
-.no_rockets
+.clearedradiotower
+ ; the rest of the byte
ld a, c
- and $7f
+ and RADIO_TOWER_MUSIC - 1
ld e, a
- ld d, $0
- jr .load
+ ld d, 0
+ jr .done
-.mahogany_mart_check
- CheckFlag ENGINE_ROCKETS_IN_MAHOGANY
- jr z, .no_rockets2
+.mahoganymart
+ ld a, [wStatusFlags2]
+ bit STATUSFLAGS2_ROCKETS_IN_MAHOGANY_F, a
+ jr z, .clearedmahogany
ld de, MUSIC_ROCKET_HIDEOUT
- jr .load
+ jr .done
-.no_rockets2
+.clearedmahogany
ld de, MUSIC_CHERRYGROVE_CITY
- jr .load
+ jr .done
-GetMapHeaderTimeOfDayNybble:: ; 2dd2 (0:2dd2)
+GetMapTimeOfDay::
call GetPhoneServiceTimeOfDayByte
and $f
ret
-GetMapHeaderPhoneServiceNybble::
+GetMapPhoneService::
call GetPhoneServiceTimeOfDayByte
and $f0
swap a
ret
-GetPhoneServiceTimeOfDayByte:: ; 2de0 (0:2de0)
+GetPhoneServiceTimeOfDayByte::
push hl
push bc
- ld de, $7
- call GetMapHeaderMember
+
+ ld de, MAP_PALETTE
+ call GetMapField
ld a, c
+
pop bc
pop hl
ret
@@ -2406,9 +2618,11 @@ GetFishingGroup::
push de
push hl
push bc
- ld de, $8
- call GetMapHeaderMember
+
+ ld de, MAP_FISHGROUP
+ call GetMapField
ld a, c
+
pop bc
pop hl
pop de
@@ -2417,19 +2631,24 @@ GetFishingGroup::
LoadMapTileset::
push hl
push bc
- ld hl, $56be
- ld bc, $f
- ld a, [wd082]
+
+ ld hl, Tilesets
+ ld bc, wTilesetEnd - wTileset
+ ld a, [wMapTileset]
call AddNTimes
- ld de, wd0c2
- ld bc, $f
- ld a, $5
+
+ ld de, wTilesetBank
+ ld bc, wTilesetEnd - wTileset
+
+ ld a, BANK(Tilesets)
call FarCopyBytes
+
pop bc
pop hl
ret
-InexplicablyEmptyFunction:: ; 2e16
+InexplicablyEmptyFunction::
+; unused
; Inexplicably empty.
; Seen in PredefPointers.
rept 16
diff --git a/home/map_objects.asm b/home/map_objects.asm
index d9cebf48..39bc915a 100644
--- a/home/map_objects.asm
+++ b/home/map_objects.asm
@@ -18,7 +18,7 @@ GetSpriteVTile::
push hl
push bc
ld hl, wUsedSprites + 2
- ld c, $b
+ ld c, SPRITE_GFX_LIST_CAPACITY - 1
ld b, a
ldh a, [hMapObjectIndexBuffer]
cp 0
@@ -80,7 +80,7 @@ GetPlayerStandingTile::
CheckOnWater::
ld a, [wPlayerStandingTile]
call GetTileCollision
- sub WATERTILE
+ sub WATER_TILE
ret z
and a
ret
diff --git a/home/math.asm b/home/math.asm
index 6daa2ed9..3042cc61 100644
--- a/home/math.asm
+++ b/home/math.asm
@@ -12,7 +12,7 @@ SimpleMultiply::
jr nz, .loop
pop bc
ret
-
+
SimpleDivide::
; Divide a by c. Return quotient b and remainder a.
ld b, 0
diff --git a/home/menu.asm b/home/menu.asm
index a32a6edf..0b0944a7 100644
--- a/home/menu.asm
+++ b/home/menu.asm
@@ -473,9 +473,9 @@ DoNthMenu::
ret
SetUpMenu::
- call DrawVariableLengthMenuBox ; ???
+ call DrawVariableLengthMenuBox
call MenuWriteText
- call InitMenuCursorAndButtonPermissions ; set up selection pointer
+ call InitMenuCursorAndButtonPermissions
ld hl, w2DMenuFlags1
set 7, [hl]
ret
diff --git a/home/names.asm b/home/names.asm
index 3e21ed53..973af3e3 100755
--- a/home/names.asm
+++ b/home/names.asm
@@ -123,7 +123,7 @@ GetPokemonName::
dec a
ld hl, PokemonNames
ld e, a
- ld d, $0
+ ld d, 0
rept MON_NAME_LENGTH - 1
add hl, de
@@ -188,7 +188,7 @@ GetTMHMName::
ld hl, .TMText
ld bc, .TMTextEnd - .TMText
-.copy:
+.copy
ld de, wStringBuffer1
call CopyBytes
@@ -204,20 +204,18 @@ GetTMHMName::
ld a, c
jr c, .not_hm
sub NUM_TMS
+.not_hm
-.not_hm:
; Divide and mod by 10 to get the top and bottom digits respectively
ld b, "0"
-
-.mod10:
+.mod10
sub 10
jr c, .done_mod
inc b
jr .mod10
-.done_mod:
+.done_mod
add 10
-
push af
ld a, b
ld [de], a
diff --git a/home/palettes.asm b/home/palettes.asm
index 1e462a67..665a86ae 100644
--- a/home/palettes.asm
+++ b/home/palettes.asm
@@ -18,7 +18,7 @@ UpdateCGBPals::
ret z
ForceUpdateCGBPals::
- ld hl, wBGPals
+ ld hl, wBGPals2
; copy 8 pals to bgpd
ld a, 1 << rBGPI_AUTO_INCREMENT
@@ -73,8 +73,8 @@ DmgToCgbBGPals::
push bc
; copy & reorder bg pal buffer
- ld hl, wBGPals ; to
- ld de, wTempBGPals ; from
+ ld hl, wBGPals2 ; to
+ ld de, wBGPals1 ; from
; order
ldh a, [rBGP]
ld b, a
@@ -112,8 +112,8 @@ DmgToCgbObjPals::
push bc
; copy & reorder obj pal buffer
- ld hl, wOBPals ; to
- ld de, wTempOBPals ; from
+ ld hl, wOBPals2 ; to
+ ld de, wOBPals1 ; from
; order
ldh a, [rOBP0]
ld b, a
@@ -142,8 +142,8 @@ DmgToCgbObjPal0::
push de
push bc
- ld hl, wOBPals palette 0
- ld de, wTempOBPals palette 0
+ ld hl, wOBPals2 palette 0
+ ld de, wOBPals1 palette 0
ldh a, [rOBP0]
ld b, a
ld c, 1
@@ -171,8 +171,8 @@ DmgToCgbObjPal1::
push de
push bc
- ld hl, wOBPals palette 1
- ld de, wTempOBPals palette 1
+ ld hl, wOBPals2 palette 1
+ ld de, wOBPals1 palette 1
ldh a, [rOBP1]
ld b, a
ld c, 1
@@ -279,7 +279,7 @@ ReloadSpritesNoPalettes::
ldh a, [hCGB]
and a
ret z
- ld hl, wBGPals
+ ld hl, wBGPals2
ld bc, (8 palettes) + (2 palettes)
xor a
call ByteFill
diff --git a/home/print_text.asm b/home/print_text.asm
index 2b8503ec..bd26f66c 100755
--- a/home/print_text.asm
+++ b/home/print_text.asm
@@ -110,7 +110,7 @@ Function33ce::
jr nz, .asm_33ce
ret
-Function33d7:: ; 33d7 (0:33d7)
+Function33d7::
ld a, [de]
swap a
and $f
@@ -123,7 +123,7 @@ Function33d7:: ; 33d7 (0:33d7)
inc de
ret
-Function33e9:: ; 33e9 (0:33e9)
+Function33e9::
ld bc, .digits
add c
ld c, a
diff --git a/home/region.asm b/home/region.asm
index bb5e1563..e752a605 100755
--- a/home/region.asm
+++ b/home/region.asm
@@ -24,11 +24,11 @@ IsInJohto::
jr nc, .Kanto
.Johto:
- xor a
+ xor a ; JOHTO_REGION
ret
.Kanto:
- ld a, 1
+ ld a, KANTO_REGION
ret
Function2ffe::
diff --git a/home/sprite_anims.asm b/home/sprite_anims.asm
index 7b5b22d5..e20c63ac 100755
--- a/home/sprite_anims.asm
+++ b/home/sprite_anims.asm
@@ -1,11 +1,11 @@
InitSpriteAnimStruct::
- ld [wAnimatedObjectStructIDBuffer], a
+ ld [wSpriteAnimIDBuffer], a
ldh a, [hROMBank]
push af
ld a, BANK(_InitSpriteAnimStruct)
rst Bankswitch
- ld a, [wAnimatedObjectStructIDBuffer]
+ ld a, [wSpriteAnimIDBuffer]
call _InitSpriteAnimStruct
@@ -15,13 +15,13 @@ InitSpriteAnimStruct::
ret
ReinitSpriteAnimFrame::
- ld [wAnimatedObjectStructIDBuffer], a
+ ld [wSpriteAnimIDBuffer], a
ldh a, [hROMBank]
push af
ld a, BANK(_ReinitSpriteAnimFrame)
rst Bankswitch
- ld a, [wAnimatedObjectStructIDBuffer]
+ ld a, [wSpriteAnimIDBuffer]
call _ReinitSpriteAnimFrame
diff --git a/home/text.asm b/home/text.asm
index c296e378..5af9f921 100644
--- a/home/text.asm
+++ b/home/text.asm
@@ -129,7 +129,7 @@ SpeechTextbox::
jp Textbox
TestText::
- text "ゲームフりーク!"
+ text "ゲームフりーク!"
done
RadioTerminator::
@@ -193,41 +193,40 @@ else
endc
ENDM
- dict "<LINE>", LineChar
- dict "<NEXT>", NextLineChar
- dict "<NULL>", NullChar
- dict $4c, Char4C
- dict $4b, Char4B
- dict "<PARA>", Paragraph
- dict "<MOM>", PrintMomsName
- dict "<PLAYER>", PrintPlayerName
- dict "<RIVAL>", PrintRivalName
- dict $35, Char35
- dict $36, Char36
- dict $37, Char37
- dict "<RED>", PrintRedsName
- dict "<GREEN>", PrintGreensName
- dict "#", PlacePOKe
- dict "<PC>", PCChar
- dict "<ROCKET>", RocketChar
- dict "<TM>", TMChar
- dict "<TRNER>", TrainerChar
- dict $23, PlaceKougeki
- dict "<LF>", HalfLineChar
- dict "<CONT>", ContText
- dict "<……>", SixDotsChar
- dict "<DONE>", DoneText
- dict "<PROMPT>", PromptText
- dict "<PKMN>", PlacePKMN
- dict "<POKE>", PlacePOKE
- dict "%", NextChar
- dict "¯", " "
- dict "<DEXEND>", PlaceDexEnd
- dict "<TARGET>", PlaceMoveTargetsName
- dict "<USER>", PlaceMoveUsersName
- dict "<ENEMY>", PlaceEnemysName
- cp $e4
- jr z, .diacritic
+ dict "<LINE>", LineChar
+ dict "<NEXT>", NextLineChar
+ dict "<NULL>", NullChar
+ dict "<SCROLL>", _ContTextNoPause
+ dict "<_CONT>", _ContText
+ dict "<PARA>", Paragraph
+ dict "<MOM>", PrintMomsName
+ dict "<PLAYER>", PrintPlayerName
+ dict "<RIVAL>", PrintRivalName
+ dict "<ROUTE>", PlaceJPRoute
+ dict "<WATASHI>", PlaceWatashi
+ dict "<KOKO_WA>", PlaceKokoWa
+ dict "<RED>", PrintRedsName
+ dict "<GREEN>", PrintGreensName
+ dict "#", PlacePOKe
+ dict "<PC>", PCChar
+ dict "<ROCKET>", RocketChar
+ dict "<TM>", TMChar
+ dict "<TRAINER>", TrainerChar
+ dict "<KOUGEKI>", PlaceKougeki
+ dict "<LF>", LineFeedChar
+ dict "<CONT>", ContText
+ dict "<……>", SixDotsChar
+ dict "<DONE>", DoneText
+ dict "<PROMPT>", PromptText
+ dict "<PKMN>", PlacePKMN
+ dict "<POKE>", PlacePOKE
+ dict "%", NextChar
+ dict "¯", " "
+ dict "<DEXEND>", PlaceDexEnd
+ dict "<TARGET>", PlaceMoveTargetsName
+ dict "<USER>", PlaceMoveUsersName
+ dict "<ENEMY>", PlaceEnemysName
+ dict "゚", .diacritic
cp $e5
jr nz, .not_diacritic
@@ -277,36 +276,38 @@ print_name: MACRO
jp PlaceCommandCharacter
ENDM
-PrintMomsName:: print_name wMomsName ; 1066 (0:1066)
-PrintPlayerName:: print_name wPlayerName ; 106d (0:106d)
-PrintRivalName:: print_name wRivalName ; 1074 (0:1074)
-PrintRedsName:: print_name wRedsName ; 107b (0:107b)
-PrintGreensName:: print_name wGreensName ; 1082 (0:1082)
-
-TrainerChar:: print_name TrainerCharText ; 1089 (0:1089)
-TMChar:: print_name TMCharText ; 1090 (0:1090)
-PCChar:: print_name PCCharText ; 1097 (0:1097)
-RocketChar:: print_name RocketCharText ; 109e (0:109e)
-PlacePOKe:: print_name POKeCharText ; 10a5 (0:10a5)
-PlaceKougeki:: print_name KougekiText ; 10ac (0:10ac)
-SixDotsChar:: print_name SixDotsCharText ; 10b3 (0:10b3)
-PlacePKMN:: print_name PKMNText ; 10ba (0:10ba)
-PlacePOKE:: print_name POKEText ; 10c1 (0:10c1)
-Char35:: print_name Char35Text ; 10c8 (0:10c8)
-Char36:: print_name Char36Text ; 10cf (0:10cf)
-Char37:: print_name Char37Text ; 10d6 (0:10d6)
-
-PlaceMoveTargetsName:: ; 10dd (0:10dd)
+PrintMomsName: print_name wMomsName
+PrintPlayerName: print_name wPlayerName
+PrintRivalName: print_name wRivalName
+PrintRedsName: print_name wRedsName
+PrintGreensName: print_name wGreensName
+
+TrainerChar: print_name TrainerCharText
+TMChar: print_name TMCharText
+PCChar: print_name PCCharText
+RocketChar: print_name RocketCharText
+PlacePOKe: print_name PlacePOKeText
+PlaceKougeki: print_name KougekiText
+SixDotsChar: print_name SixDotsCharText
+PlacePKMN: print_name PlacePKMNText
+PlacePOKE: print_name PlacePOKEText
+PlaceJPRoute: print_name PlaceJPRouteText
+PlaceWatashi: print_name PlaceWatashiText
+PlaceKokoWa: print_name PlaceKokoWaText
+
+PlaceMoveTargetsName::
ldh a, [hBattleTurn]
- xor $1
- jr PlaceMonsName
+ xor 1
+ jr PlaceMoveUsersName.place
-PlaceMoveUsersName:: ; 10e3 (0:10e3)
+PlaceMoveUsersName::
ldh a, [hBattleTurn]
-PlaceMonsName::
+
+.place:
push de
and a
jr nz, .enemy
+
ld de, wBattleMonNick
jr PlaceCommandCharacter
@@ -318,27 +319,28 @@ PlaceMonsName::
ld de, wEnemyMonNick
jr PlaceCommandCharacter
-PlaceEnemysName:: ; 10fb (0:10fb)
+PlaceEnemysName::
push de
+
ld a, [wLinkMode]
and a
jr nz, .linkbattle
+
ld a, [wTrainerClass]
cp RIVAL1
jr z, .rival
cp RIVAL2
jr z, .rival
+
ld de, wOTClassName
call PlaceString
ld h, b
ld l, c
- ld de, String116a
+ ld de, String_Space
call PlaceString
-
push bc
callfar Battle_GetTrainerName
pop hl
-
ld de, wStringBuffer1
jr PlaceCommandCharacter
@@ -350,78 +352,58 @@ PlaceEnemysName:: ; 10fb (0:10fb)
ld de, wOTClassName
jr PlaceCommandCharacter
-PlaceCommandCharacter:: ; 1132 (0:1132)
+PlaceCommandCharacter::
call PlaceString
ld h, b
ld l, c
pop de
jp NextChar
-TMCharText:: ; 113b (0:113b)
- db "TM@"
-
-TrainerCharText:: ; 113e (0:113e)
- db "TRAINER@"
-
-PCCharText:: ; 1146 (0:1146)
- db "PC@"
-
-RocketCharText:: ; 1149 (0:1149)
- db "ROCKET@"
-
-POKeCharText:: ; 1150 (0:1150)
- db "POKé@"
-
-KougekiText:: ; 1155 (0:1155)
- db "こうげき@"
-
-SixDotsCharText:: ; 115a (0:115a)
- db "……@"
-
-EnemyText:: ; 115d (0:115d)
- db "Enemy @"
-
-PKMNText:: ; 1164 (0:1164)
- db "<PK><MN>@"
-
-POKEText:: ; 1167 (0:1167)
- db "<PO><KE>@"
-
-String116a:: ; 116a (0:116a)
- db " @"
-
-Char35Text:: ; 116c (0:116c)
-Char36Text:: ; 116c (0:116c)
-Char37Text:: ; 116c (0:116c)
- db "@"
-
-NextLineChar:: ; 116d (0:116d)
+TMCharText:: db "TM@"
+TrainerCharText:: db "TRAINER@"
+PCCharText:: db "PC@"
+RocketCharText:: db "ROCKET@"
+PlacePOKeText:: db "POKé@"
+KougekiText:: db "こうげき@"
+SixDotsCharText:: db "……@"
+EnemyText:: db "Enemy @"
+PlacePKMNText:: db "<PK><MN>@"
+PlacePOKEText:: db "<PO><KE>@"
+String_Space:: db " @"
+; These strings have been dummied out.
+PlaceJPRouteText::
+PlaceWatashiText::
+PlaceKokoWaText::
+KunSuffixText::
+ChanSuffixText:: db "@"
+
+NextLineChar::
pop hl
ld bc, SCREEN_WIDTH * 2
add hl, bc
push hl
jp NextChar
-HalfLineChar:: ; 1176 (0:1176)
+LineFeedChar::
pop hl
ld bc, SCREEN_WIDTH
add hl, bc
push hl
jp NextChar
-LineChar:: ; 117f (0:117f)
+LineChar::
pop hl
hlcoord TEXTBOX_INNERX, TEXTBOX_INNERY + 2
push hl
jp NextChar
-Paragraph:: ; 1187 (0:1187)
+Paragraph::
push de
ld a, [wLinkMode]
- cp $3
- jr z, .asm_1192
+ cp LINK_COLOSSEUM
+ jr z, .linkbattle
call LoadBlinkingCursor
-.asm_1192
+.linkbattle
call Text_WaitBGMap
call PromptButton
hlcoord TEXTBOX_INNERX, TEXTBOX_INNERY
@@ -434,20 +416,25 @@ Paragraph:: ; 1187 (0:1187)
pop de
jp NextChar
-Char4B:: ; 11b0 (0:11b0)
+_ContText::
ld a, [wLinkMode]
or a
- jr nz, .link_battle
+ jr nz, .communication
call LoadBlinkingCursor
-.link_battle
+
+.communication
call Text_WaitBGMap
+
push de
call PromptButton
pop de
+
ld a, [wLinkMode]
or a
call z, UnloadBlinkingCursor
-Char4C:: ; 11c8 (0:11c8)
+ ; fallthrough
+
+_ContTextNoPause::
push de
call TextScroll
call TextScroll
@@ -455,7 +442,7 @@ Char4C:: ; 11c8 (0:11c8)
pop de
jp NextChar
-ContText:: ; 11d6 (0:11d6)
+ContText::
push de
ld de, .cont
ld b, h
@@ -466,14 +453,16 @@ ContText:: ; 11d6 (0:11d6)
pop de
jp NextChar
-.cont db $4b, "@"
+.cont: db "<_CONT>@"
-PlaceDexEnd:: ; 11e7 (0:11e7)
+PlaceDexEnd::
+; Ends a Pokédex entry in Gen 1.
+; Dex entries are now regular strings.
ld [hl], "."
pop hl
ret
-PromptText:: ; 11eb (0:11eb)
+PromptText::
ld a, [wLinkMode]
cp LINK_COLOSSEUM
jr z, .ok
@@ -483,19 +472,20 @@ PromptText:: ; 11eb (0:11eb)
call Text_WaitBGMap
call PromptButton
ld a, [wLinkMode]
- cp $3
+ cp LINK_COLOSSEUM
jr z, DoneText
call UnloadBlinkingCursor
-DoneText:: ; 1205 (0:1205)
+DoneText::
pop hl
ld de, .stop
dec de
ret
-.stop db "@"
+.stop:
+ text_end
-NullChar:: ; 120c (0:120c)
+NullChar::
ld b, h
ld c, l
pop hl
@@ -508,7 +498,7 @@ NullChar:: ; 120c (0:120c)
text "エラー"
done
-TextScroll:: ; 121d (0:121d)
+TextScroll::
hlcoord TEXTBOX_X, TEXTBOX_INNERY
decoord TEXTBOX_X, TEXTBOX_INNERY - 1
ld bc, 3 * SCREEN_WIDTH
@@ -521,19 +511,21 @@ TextScroll:: ; 121d (0:121d)
call DelayFrames
ret
-Text_WaitBGMap:: ; 123a (0:123a)
+Text_WaitBGMap::
push bc
ldh a, [hOAMUpdate]
push af
- ld a, $1
+ ld a, 1
ldh [hOAMUpdate], a
+
call WaitBGMap
+
pop af
ldh [hOAMUpdate], a
pop bc
ret
-Diacritic:: ; 124a (0:124a)
+Diacritic::
push af
push hl
ld a, b
@@ -544,12 +536,12 @@ Diacritic:: ; 124a (0:124a)
pop af
ret
-LoadBlinkingCursor:: ; 1255 (0:1255)
+LoadBlinkingCursor::
ld a, "▼"
ldcoord_a 18, 17
ret
-UnloadBlinkingCursor:: ; 125b (0:125b)
+UnloadBlinkingCursor::
ld a, "─"
ldcoord_a 18, 17
ret
@@ -558,9 +550,11 @@ FarString::
ld b, a
ldh a, [hROMBank]
push af
+
ld a, b
rst Bankswitch
call PlaceString
+
pop af
rst Bankswitch
ret
@@ -569,12 +563,13 @@ PokeFluteTerminatorCharacter::
ld hl, .stop
ret
-.stop db "@"
+.stop:
+ text_end
-PlaceHLTextAtBC:: ; 1272 (0:1272)
+PlaceHLTextAtBC::
ld a, [wTextboxFlags]
push af
- set 1, a
+ set NO_TEXT_DELAY_F, a
ld [wTextboxFlags], a
call DoTextUntilTerminator
@@ -583,18 +578,18 @@ PlaceHLTextAtBC:: ; 1272 (0:1272)
ld [wTextboxFlags], a
ret
-DoTextUntilTerminator:: ; 1283 (0:1283)
+DoTextUntilTerminator::
ld a, [hli]
- cp "@"
+ cp TX_END
ret z
- call TextCommand
+ call .TextCommand
jr DoTextUntilTerminator
-TextCommand:: ; 128c (0:128c)
+.TextCommand:
push hl
push bc
ld c, a
- ld b, $0
+ ld b, 0
ld hl, TextCommands
add hl, bc
add hl, bc
@@ -603,35 +598,42 @@ TextCommand:: ; 128c (0:128c)
ld d, [hl]
pop bc
pop hl
+
+ ; jp de
push de
ret
-TextCommands:: ; 129d (0:129d)
- dw Text_TX
- dw Text_TX_RAM
- dw Text_TX_BCD
- dw Text_TX_MOVE
- dw Text_TX_BOX
- dw Text_TX_LOW
- dw Text_WAIT_BUTTON
- dw Text_TX_SCROLL
- dw Text_TX_ASM
- dw Text_TX_NUM
- dw Text_TX_EXIT
- dw Text_TX_SFX
- dw Text_TX_DOTS
- dw Text_TX_0D
- dw Text_TX_SFX
- dw Text_TX_SFX
- dw Text_TX_SFX
- dw Text_TX_SFX
- dw Text_TX_SFX
- dw Text_TX_SFX
- dw Text_TX_BUFFER
- dw Text_TX_DAY
- dw Text_TX_FAR
-
-Text_TX:: ; 12cb (0:12cb)
+TextCommands::
+; entries correspond to TX_* constants (see macros/scripts/text.asm)
+ dw TextCommand_START ; TX_START
+ dw TextCommand_RAM ; TX_RAM
+ dw TextCommand_BCD ; TX_BCD
+ dw TextCommand_MOVE ; TX_MOVE
+ dw TextCommand_BOX ; TX_BOX
+ dw TextCommand_LOW ; TX_LOW
+ dw TextCommand_PROMPT_BUTTON ; TX_PROMPT_BUTTON
+ dw TextCommand_SCROLL ; TX_SCROLL
+ dw TextCommand_START_ASM ; TX_START_ASM
+ dw TextCommand_NUM ; TX_NUM
+ dw TextCommand_PAUSE ; TX_PAUSE
+ dw TextCommand_SOUND ; TX_SOUND_DEX_FANFARE_50_79
+ dw TextCommand_DOTS ; TX_DOTS
+ dw TextCommand_LINK_PROMPT_BUTTON ; TX_LINK_PROMPT_BUTTON
+ dw TextCommand_SOUND ; TX_SOUND_DEX_FANFARE_20_49
+ dw TextCommand_SOUND ; TX_SOUND_ITEM
+ dw TextCommand_SOUND ; TX_SOUND_CAUGHT_MON
+ dw TextCommand_SOUND ; TX_SOUND_DEX_FANFARE_80_109
+ dw TextCommand_SOUND ; TX_SOUND_FANFARE
+ dw TextCommand_SOUND ; TX_SOUND_SLOT_MACHINE_START
+ dw TextCommand_STRINGBUFFER ; TX_STRINGBUFFER
+ dw TextCommand_DAY ; TX_DAY
+ dw TextCommand_FAR ; TX_FAR
+
+TextCommand_START::
+; text_start
+; write text until "@"
+; [$00]["...@"]
+
ld d, h
ld e, l
ld h, b
@@ -642,7 +644,12 @@ Text_TX:: ; 12cb (0:12cb)
inc hl
ret
-Text_TX_RAM:: ; 12d6 (0:12d6)
+TextCommand_RAM::
+; text_ram
+; write text from a ram address
+; little endian
+; [$01][addr]
+
ld a, [hli]
ld e, a
ld a, [hli]
@@ -654,27 +661,41 @@ Text_TX_RAM:: ; 12d6 (0:12d6)
pop hl
ret
-Text_TX_FAR:: ; 12e2 (0:12e2)
+TextCommand_FAR::
+; text_far
+; write text from a different bank
+; little endian
+; [$16][addr][bank]
+
ldh a, [hROMBank]
push af
+
ld a, [hli]
ld e, a
ld a, [hli]
ld d, a
ld a, [hli]
+
ldh [hROMBank], a
ld [MBC3RomBank], a
+
push hl
ld h, d
ld l, e
call DoTextUntilTerminator
pop hl
+
pop af
ldh [hROMBank], a
ld [MBC3RomBank], a
ret
-Text_TX_BCD:: ; 12fd (0:12fd)
+TextCommand_BCD::
+; text_bcd
+; write bcd from address, typically ram
+; [$02][addr][flags]
+; flags: see PrintBCDNumber
+
ld a, [hli]
ld e, a
ld a, [hli]
@@ -690,16 +711,25 @@ Text_TX_BCD:: ; 12fd (0:12fd)
pop hl
ret
-Text_TX_MOVE:: ; 130d (0:130d)
+TextCommand_MOVE::
+; text_move
+; move to a new tile
+; [$03][addr]
+
ld a, [hli]
- ld [wcfd6], a
+ ld [wMenuScrollPosition + 2], a
ld c, a
ld a, [hli]
- ld [wcfd7], a
+ ld [wMenuScrollPosition + 2 + 1], a
ld b, a
ret
-Text_TX_BOX:: ; 1318 (0:1318)
+TextCommand_BOX::
+; text_box
+; draw a box
+; little endian
+; [$04][addr][height][width]
+
ld a, [hli]
ld e, a
ld a, [hli]
@@ -715,14 +745,23 @@ Text_TX_BOX:: ; 1318 (0:1318)
pop hl
ret
-Text_TX_LOW:: ; 1328 (0:1328)
- bccoord 1, 16
+TextCommand_LOW::
+; text_low
+; write text at (1,16)
+; [$05]
+
+ bccoord TEXTBOX_INNERX, TEXTBOX_INNERY + 2
ret
-Text_WAIT_BUTTON:: ; 132c (0:132c)
+TextCommand_PROMPT_BUTTON::
+; text_promptbutton
+; wait for button press
+; show arrow
+; [06]
+
ld a, [wLinkMode]
cp LINK_COLOSSEUM
- jp z, Text_TX_0D
+ jp z, TextCommand_LINK_PROMPT_BUTTON
push hl
call LoadBlinkingCursor
@@ -733,19 +772,26 @@ Text_WAIT_BUTTON:: ; 132c (0:132c)
pop hl
ret
-Text_TX_SCROLL:: ; 1342 (0:1342)
+TextCommand_SCROLL::
+; text_scroll
+; pushes text up two lines and sets the BC cursor to the border tile
+; below the first character column of the text box.
push hl
call UnloadBlinkingCursor
call TextScroll
call TextScroll
pop hl
- bccoord 1, 16
+ bccoord TEXTBOX_INNERX, TEXTBOX_INNERY + 2
ret
-Text_TX_ASM:: ; 1351 (0:1351)
+TextCommand_START_ASM::
+; text_asm
+
jp hl
-Text_TX_NUM:: ; 1352 (0:1352)
+TextCommand_NUM::
+; text_decimal
+; [$09][addr][hi:bytes lo:digits]
ld a, [hli]
ld e, a
ld a, [hli]
@@ -760,7 +806,7 @@ Text_TX_NUM:: ; 1352 (0:1352)
ld a, b
and $f0
swap a
- set 6, a
+ set PRINTNUM_LEFTALIGN_F, a
ld b, a
call PrintNum
ld b, h
@@ -768,21 +814,26 @@ Text_TX_NUM:: ; 1352 (0:1352)
pop hl
ret
-Text_TX_EXIT:: ; 136d (0:136d)
+TextCommand_PAUSE::
+; text_pause
push hl
push bc
call GetJoypad
ldh a, [hJoyDown]
and A_BUTTON | B_BUTTON
- jr nz, .skip
+ jr nz, .done
ld c, 30
call DelayFrames
-.skip
+.done
pop bc
pop hl
ret
-Text_TX_SFX:: ; 1380 (0:1380)
+TextCommand_SOUND::
+; chars:
+; $0b, $0e, $0f, $10, $11, $12, $13
+; see TextSFX
+
push bc
dec hl
ld a, [hli]
@@ -794,12 +845,12 @@ Text_TX_SFX:: ; 1380 (0:1380)
cp -1
jr z, .done
cp b
- jr z, .sound
+ jr z, .play
inc hl
inc hl
jr .loop
-.sound
+.play
push de
ld e, [hl]
inc hl
@@ -807,12 +858,14 @@ Text_TX_SFX:: ; 1380 (0:1380)
call PlaySFX
call WaitSFX
pop de
+
.done
pop hl
pop bc
ret
-Text_TX_CRY::
+Unreferenced_Function13a2::
+; sound_cry
push de
ld e, [hl]
inc hl
@@ -833,12 +886,15 @@ TextSFX::
dbw TX_SOUND_SLOT_MACHINE_START, SFX_SLOT_MACHINE_START
db -1
-Text_TX_DOTS:: ; 13c3 (0:13c3)
+TextCommand_DOTS::
+; text_dots
+; [$0C][num]
ld a, [hli]
ld d, a
push hl
ld h, b
ld l, c
+
.loop
push de
ld a, "…"
@@ -853,12 +909,16 @@ Text_TX_DOTS:: ; 13c3 (0:13c3)
pop de
dec d
jr nz, .loop
+
ld b, h
ld c, l
pop hl
ret
-Text_TX_0D:: ; 13e2 (0:13e2)
+TextCommand_LINK_PROMPT_BUTTON::
+; text_linkpromptbutton
+; wait for key down
+; display arrow
push hl
push bc
call PromptButton
@@ -866,11 +926,22 @@ Text_TX_0D:: ; 13e2 (0:13e2)
pop hl
ret
-Text_TX_BUFFER:: ; 13ea (0:13ea)
+TextCommand_STRINGBUFFER::
+; text_buffer
+; Print a string from one of the following:
+; 0: wStringBuffer3
+; 1: wStringBuffer4
+; 2: wStringBuffer5
+; 3: wStringBuffer2
+; 4: wStringBuffer1
+; 5: wEnemyMonNick
+; 6: wBattleMonNick
+; [$14][id]
+
ld a, [hli]
push hl
ld e, a
- ld d, $0
+ ld d, 0
ld hl, StringBufferPointers
add hl, de
add hl, de
@@ -884,12 +955,14 @@ Text_TX_BUFFER:: ; 13ea (0:13ea)
pop hl
ret
-Text_TX_DAY:: ; 1402 (0:1402)
+TextCommand_DAY::
+; text_today
+
call GetWeekday
push hl
push bc
ld c, a
- ld b, $0
+ ld b, 0
ld hl, .Days
add hl, bc
add hl, bc
@@ -907,7 +980,7 @@ Text_TX_DAY:: ; 1402 (0:1402)
pop hl
ret
-.Days: ; 1422 (0:1422)
+.Days:
dw .Sun
dw .Mon
dw .Tues
diff --git a/home/tilemap.asm b/home/tilemap.asm
index 863bafc4..981dd95c 100755
--- a/home/tilemap.asm
+++ b/home/tilemap.asm
@@ -52,7 +52,7 @@ ApplyTilemap::
call DelayFrames
ret
-CGBOnly_CopyTilemapAtOnce::
+OpenAndCloseMenu_HDMATransferTilemapAndAttrmap::
ldh a, [hCGB]
and a
jr z, WaitBGMap
@@ -174,8 +174,8 @@ ClearPalettes::
ret
.cgb
-; Fill wBGPals and wOBPals with $ffff (white)
- ld hl, wBGPals
+; Fill wBGPals2 and wOBPals2 with $ffff (white)
+ ld hl, wBGPals2
ld bc, 16 palettes
ld a, $ff
call ByteFill
diff --git a/home/time.asm b/home/time.asm
index db586abc..73bd0576 100644
--- a/home/time.asm
+++ b/home/time.asm
@@ -36,7 +36,6 @@ GetClock::
maskbits 60
ldh [hRTCSeconds], a
-
ld [hl], RTC_M
ld a, [de]
maskbits 60
diff --git a/home/vblank.asm b/home/vblank.asm
index 3c8e4aac..6bac4703 100644
--- a/home/vblank.asm
+++ b/home/vblank.asm
@@ -41,7 +41,6 @@ VBlank::
dw VBlank0
dw VBlank0 ; just in case
-
VBlank0::
; normal operation
@@ -102,12 +101,13 @@ VBlank0::
call Function1642
.done
+
ldh a, [hOAMUpdate]
and a
jr nz, .done_oam
call hTransferVirtualOAM
-
.done_oam
+
; vblank-sensitive operations are done
xor a
@@ -118,15 +118,15 @@ VBlank0::
jr z, .ok
dec a
ld [wOverworldDelay], a
-
.ok
+
ld a, [wTextDelayFrames]
and a
jr z, .ok2
dec a
ld [wTextDelayFrames], a
-
.ok2
+
call UpdateJoypad
ld a, BANK(_UpdateSound)
@@ -147,6 +147,7 @@ VBlank1::
; tiles
; oam
; sound / lcd stat
+
ldh a, [hROMBank]
ld [wROMBankBackup], a
ldh a, [hSCX]
@@ -180,13 +181,13 @@ VBlank1::
xor a
ldh [rIF], a
; enable lcd stat
- ld a, %10 ; lcd stat
+ ld a, 1 << LCD_STAT
ldh [rIE], a
; rerequest serial int if applicable (still disabled)
; request lcd stat
ld a, b
- and %1000 ; serial
- or %10 ; lcd stat
+ and 1 << SERIAL
+ or 1 << LCD_STAT
ldh [rIF], a
ei
@@ -196,7 +197,7 @@ VBlank1::
ld a, [wROMBankBackup]
rst Bankswitch
; enable ints
- ld a, %11111
+ ld a, IE_DEFAULT
ldh [rIE], a
ret
@@ -212,7 +213,7 @@ UpdatePals::
ldh [rBGP], a
ld a, [wOBP0]
ldh [rOBP0], a
- ld a, [wOPB1]
+ ld a, [wOBP1]
ldh [rOBP1], a
and a
@@ -255,6 +256,7 @@ VBlank5::
; bg map
; tiles
; joypad
+;
ldh a, [hROMBank]
ld [wROMBankBackup], a
@@ -267,8 +269,8 @@ VBlank5::
call UpdateBGMap
call Serve2bppRequest
-
.done
+
xor a
ld [wVBlankOccurred], a
@@ -276,7 +278,7 @@ VBlank5::
xor a
ldh [rIF], a
- ld a, %10 ; lcd stat
+ ld a, 1 << LCD_STAT
ldh [rIE], a
; request lcd stat
ldh [rIF], a
@@ -388,6 +390,6 @@ VBlank3::
xor a
ldh [rIF], a
; enable ints
- ld a, %11111
+ ld a, IE_DEFAULT
ldh [rIE], a
ret
diff --git a/home/video.asm b/home/video.asm
index c0c8b47c..51dbf018 100644
--- a/home/video.asm
+++ b/home/video.asm
@@ -23,7 +23,6 @@ UpdateBGMapBuffer::
.next
; Copy a pair of 16x8 blocks (one 16x16 block)
-
rept 2
; Get our BG Map address
pop bc
@@ -382,10 +381,10 @@ AnimateTileset::
ldh a, [hROMBank]
push af
- ld a, $3f
+ ld a, BANK(_AnimateTileset)
rst Bankswitch
- call $4003 ; ???
+ call _AnimateTileset
pop af
rst Bankswitch
diff --git a/home/window.asm b/home/window.asm
index e2df3d4f..7a0cb024 100644
--- a/home/window.asm
+++ b/home/window.asm
@@ -38,7 +38,7 @@ CloseText::
ldh [hWY], a
farcall Function1415c
call ReplaceChrisSprite
- ld hl, wd565
+ ld hl, wEnteredMapFromContinue
res 7, [hl]
call ResetBGWindow
ret
@@ -65,7 +65,7 @@ _OpenAndCloseMenu_HDMATransferTilemapAndAttrmap::
ld a, 1
ldh [hOAMUpdate], a
- call CGBOnly_CopyTilemapAtOnce
+ call OpenAndCloseMenu_HDMATransferTilemapAndAttrmap
pop af
ldh [hOAMUpdate], a
diff --git a/pokesilver.link b/layout.link
index 952b76df..8ad47c63 100644
--- a/pokesilver.link
+++ b/layout.link
@@ -38,7 +38,6 @@ ROMX $03
ROMX $04
"bank4"
ROMX $05
- org $4000
"bank5"
ROMX $06
org $4000
@@ -127,7 +126,6 @@ ROMX $2a
ROMX $2b
"Map Blocks 2"
ROMX $2e
- org $4000
"Pics 14"
org $6300
"bank2e_2"
@@ -148,6 +146,7 @@ ROMX $36
"bank36"
ROMX $37
"Map Blocks 3"
+ "bank37_2"
ROMX $38
org $4000
"bank38"
@@ -286,12 +285,6 @@ WRAMX 1
"Party"
org $dfff
"Stack"
-WRAMX 2
-WRAMX 3
-WRAMX 4
-WRAMX 5
-WRAMX 6
-WRAMX 7
VRAM $00
VRAM $01
SRAM $00
diff --git a/macros.asm b/macros.asm
index 2d5cfc99..272c2185 100644
--- a/macros.asm
+++ b/macros.asm
@@ -16,7 +16,6 @@ INCLUDE "macros/scripts/trade_anims.asm"
INCLUDE "macros/move_anim.asm"
INCLUDE "macros/pic.asm"
-INCLUDE "macros/mobile.asm"
INCLUDE "macros/pals.asm"
INCLUDE "macros/flag.asm"
diff --git a/macros/mobile.asm b/macros/mobile.asm
deleted file mode 100644
index 06b40d69..00000000
--- a/macros/mobile.asm
+++ /dev/null
@@ -1,2 +0,0 @@
-; Many mobile functions were dummied out in localization.
-mobile EQUS "ret"
diff --git a/macros/scripts/trade_anims.asm b/macros/scripts/trade_anims.asm
index c590cb62..75a4a3db 100755
--- a/macros/scripts/trade_anims.asm
+++ b/macros/scripts/trade_anims.asm
@@ -163,91 +163,3 @@ endm
tradeanim_wait_180_if_ot_egg: macro
db tradeanim_wait_180_if_ot_egg_command ; 2f
endm
-
-
-; Mobile
- enum_start 1
-
- enum mobiletradeanim_showgivemon_command
-mobiletradeanim_showgivemon: macro
- db mobiletradeanim_showgivemon_command ; 01
-endm
-
- enum mobiletradeanim_02_command
-mobiletradeanim_02: macro
- db mobiletradeanim_02_command ; 02
-endm
-
- enum mobiletradeanim_sendmon_command
-mobiletradeanim_sendmon: macro
- db mobiletradeanim_sendmon_command ; 03
-endm
-
-__enum__ set $05
-
- enum mobiletradeanim_05_command
-mobiletradeanim_05: macro
- db mobiletradeanim_05_command ; 05
-endm
-
- enum mobiletradeanim_06_command
-mobiletradeanim_06: macro
- db mobiletradeanim_06_command ; 06
-endm
-
- enum mobiletradeanim_07_command
-mobiletradeanim_07: macro
- db mobiletradeanim_07_command ; 07
-endm
-
- enum mobiletradeanim_receivemon_command
-mobiletradeanim_receivemon: macro
- db mobiletradeanim_receivemon_command ; 08
-endm
-
-__enum__ set $0b
-
- enum mobiletradeanim_showgetmon_command
-mobiletradeanim_showgetmon: macro
- db mobiletradeanim_showgetmon_command ; 0b
-endm
-
- enum mobiletradeanim_end_command
-mobiletradeanim_end: macro
- db mobiletradeanim_end_command ; 0c
-endm
-
- enum mobiletradeanim_showgtsgivemon_command
-mobiletradeanim_showgtsgivemon: macro
- db mobiletradeanim_showgtsgivemon_command ; 0d
-endm
-
- enum mobiletradeanim_showgtsgetmon_command
-mobiletradeanim_showgtsgetmon: macro
- db mobiletradeanim_showgtsgetmon_command ; 0e
-endm
-
- enum mobiletradeanim_0f_command
-mobiletradeanim_0f: macro
- db mobiletradeanim_0f_command ; 0f
-endm
-
- enum mobiletradeanim_10_command
-mobiletradeanim_10: macro
- db mobiletradeanim_10_command ; 10
-endm
-
- enum mobiletradeanim_11_command
-mobiletradeanim_11: macro
- db mobiletradeanim_11_command ; 11
-endm
-
- enum mobiletradeanim_12_command
-mobiletradeanim_12: macro
- db mobiletradeanim_12_command ; 12
-endm
-
- enum mobiletradeanim_showoddegg_command
-mobiletradeanim_showoddegg: macro
- db mobiletradeanim_showoddegg_command ; 13
-endm
diff --git a/macros/wram.asm b/macros/wram.asm
index afe66872..4294abb5 100755
--- a/macros/wram.asm
+++ b/macros/wram.asm
@@ -118,6 +118,18 @@ box: MACRO
ds 2 ; padding
ENDM
+map_connection_struct: MACRO
+\1ConnectedMapGroup:: db
+\1ConnectedMapNumber:: db
+\1ConnectionStripPointer:: dw
+\1ConnectionStripLocation:: dw
+\1ConnectionStripLength:: db
+\1ConnectedMapWidth:: db
+\1ConnectionStripYOffset:: db
+\1ConnectionStripXOffset:: db
+\1ConnectionWindow:: dw
+ENDM
+
channel_struct: MACRO
; Addreses are wChannel1 (c101).
\1MusicID:: dw
diff --git a/main.asm b/main.asm
index df91962b..efa33d41 100644
--- a/main.asm
+++ b/main.asm
@@ -85,6 +85,7 @@ INCLUDE "data/maps/spawn_points.asm"
INCLUDE "engine/overworld/load_map_part.asm"
INCLUDE "engine/overworld/spawn_points.asm"
INCLUDE "engine/overworld/map_setup.asm"
+INCLUDE "data/tilesets.asm"
INCLUDE "engine/events/pokemon_pc.asm"
INCLUDE "engine/items/mart.asm"
INCLUDE "engine/events/money.asm"
@@ -99,18 +100,127 @@ INCLUDE "engine/pokemon/breeding.asm"
SECTION "bank6", ROMX
- dr $18000, $1bdbc
+TilesetKantoMeta::
+ dr $18000, $18800
+TilesetKantoColl::
+ dr $18800, $18a00
+Tileset0GFX::
+TilesetJohtoGFX::
+ dr $18a00, $19006
+
+Tileset0Meta::
+TilesetJohtoMeta::
+ dr $19006, $19806
+Tileset0Coll::
+TilesetJohtoColl::
+ dr $19806, $19a06
+TilesetJohtoModernGFX::
+ dr $19a06, $1a00c
+
+TilesetJohtoModernMeta::
+ dr $1a00c, $1a80c
+TilesetJohtoModernColl::
+ dr $1a80c, $1b40c
+
+TilesetTraditionalHouseGFX::
+ dr $1b40c, $1b8bc
+TilesetTraditionalHouseMeta::
+ dr $1b8bc, $1bcbc
+TilesetTraditionalHouseColl::
+ dr $1bcbc, $1bdbc
SECTION "bank7", ROMX
LoadMapGroupRoof::
- dr $1c000, $1f84c
+ dr $1c000, $1c30c
+TilesetGateGFX::
+ dr $1c30c, $1c70c
+TilesetGateMeta::
+ dr $1c70c, $1cb0c
+TilesetGateColl::
+ dr $1cb0c, $1cc0c
+TilesetPokecenterGFX::
+ dr $1cc0c, $1d03c
+
+TilesetPokecenterMeta::
+ dr $1d03c, $1d43c
+TilesetPokecenterColl::
+ dr $1d43c, $1d53c
+TilesetPortGFX::
+ dr $1d53c, $1d94c
+TilesetPortMeta::
+ dr $1d94c, $1dd4c
+TilesetPortColl::
+ dr $1dd4c, $1de4c
+TilesetPlayersHouseGFX::
+ dr $1de4c, $1e22c
+
+TilesetPlayersHouseMeta::
+ dr $1e22c, $1e62c
+TilesetPlayersHouseColl::
+ dr $1e62c, $1e72c
+TilesetMansionGFX::
+ dr $1e72c, $1eabc
+TilesetMansionMeta::
+ dr $1eabc, $1eebc
+TilesetMansionColl::
+ dr $1eebc, $1efbc
+TilesetCaveGFX::
+ dr $1efbc, $1f34c
+
+TilesetCaveMeta::
+TilesetDarkCaveMeta::
+ dr $1f34c, $1f74c
+TilesetCaveColl::
+TilesetDarkCaveColl::
+ dr $1f74c, $1f84c
SECTION "bank8", ROMX
- dr $20000, $239fe
+ dr $20000, $20181
+TilesetTowerGFX::
+ dr $20181, $205b1
+TilesetTowerMeta::
+ dr $205b1, $209b1
+TilesetTowerColl::
+ dr $209b1, $20ab1
+TilesetLabGFX::
+ dr $20ab1, $20e81
+TilesetLabMeta::
+ dr $20e81, $21281
+
+TilesetLabColl::
+ dr $21281, $21381
+TilesetFacilityGFX::
+ dr $21381, $217a1
+TilesetFacilityMeta::
+ dr $217a1, $21ba1
+TilesetFacilityColl::
+ dr $21ba1, $21ca1
+TilesetMartGFX::
+ dr $21ca1, $22051
+
+TilesetMartMeta::
+ dr $22051, $22451
+TilesetMartColl::
+ dr $22451, $22551
+TilesetGameCornerGFX::
+ dr $22551, $22951
+TilesetGameCornerMeta::
+ dr $22951, $22d51
+TilesetGameCornerColl::
+ dr $22d51, $22e51
+TilesetTrainStationGFX::
+ dr $22e51, $231f1
+
+TilesetTrainStationMeta::
+ dr $231f1, $235f1
+TilesetTrainStationColl::
+ dr $235f1, $236f1
+TilesetForestMeta::
+ dr $236f1, $239fe
EggMovePointers::
dr $239fe, $23e3d
@@ -309,7 +419,47 @@ GivePokerusAndConvertBerries::
SECTION "bankc", ROMX
- dr $30000, $33d81
+TilesetEliteFourRoomGFX::
+ dr $30000, $304e0
+TilesetEliteFourRoomMeta::
+ dr $304e0, $308e0
+TilesetEliteFourRoomColl::
+ dr $308e0, $309e0
+TilesetParkGFX::
+ dr $309e0, $30e40
+TilesetParkMeta::
+ dr $30e40, $31240
+TilesetParkColl::
+ dr $31240, $31340
+TilesetRuinsOfAlphGFX::
+ dr $31340, $31670
+TilesetRuinsOfAlphMeta::
+ dr $31670, $31a70
+TilesetRuinsOfAlphColl::
+ dr $31a70, $31b70
+TilesetRadioTowerGFX::
+ dr $31b70, $31fc0
+TilesetRadioTowerMeta::
+ dr $31fc0, $323c0
+
+TilesetRadioTowerColl::
+ dr $323c0, $324c0
+TilesetUndergroundGFX::
+ dr $324c0, $32890
+TilesetUndergroundMeta::
+ dr $32890, $32c90
+TilesetUndergroundColl::
+ dr $32c90, $32d90
+TilesetIcePathGFX::
+ dr $32d90, $331d0
+TilesetIcePathMeta::
+ dr $331d0, $335d0
+TilesetIcePathColl::
+ dr $335d0, $336d0
+TilesetDarkCaveGFX::
+ dr $336d0, $33a10
+TilesetForestGFX::
+ dr $33a10, $33d81
SECTION "Effect Commands", ROMX
@@ -502,7 +652,7 @@ FadeInQuickly::
dr $8c3b9, $8c3c4
FadeBlackQuickly::
dr $8c3c4, $8c3e9
-Function8c3e9::
+ReplaceTimeOfDayPals::
dr $8c3e9, $8c513
DoBattleTransition::
dr $8c513, $8ca5e
@@ -530,8 +680,8 @@ PlaySpriteAnimations::
_InitSpriteAnimStruct::
dr $8d1f7, $8d332
-IF DEF(_GOLD)
_ReinitSpriteAnimFrame::
+IF DEF(_GOLD)
dr $8d332, $8e6fd
AnimateEndOfExpBar::
dr $8e6fd, $8e774
@@ -549,7 +699,6 @@ HoldSwitchmonIcon::
dr $8e93d, $8fe43
ELIF DEF(_SILVER)
-_ReinitSpriteAnimFrame::
dr $8d332, $8e6e3
AnimateEndOfExpBar::
dr $8e6e3, $8e75a
@@ -607,7 +756,7 @@ Function92c36::
SECTION "bank25", ROMX
-MapTriggers::
+MapScenes::
dr $94000, $940ed
INCLUDE "data/maps/maps.asm"
INCLUDE "data/maps/attributes.asm"
@@ -623,7 +772,7 @@ CallCallback::
dr $97365, $97a59
WarpToSpawnPoint::
dr $97a59, $97c2a
-Function97c2a::
+ClearCmdQueue::
dr $97c2a, $97d96
@@ -706,6 +855,36 @@ SECTION "bank36", ROMX
dr $d8000, $d8400
+SECTION "bank37_2", ROMX
+
+TilesetChampionsRoomGFX::
+ dr $dd773, $ddc33
+TilesetChampionsRoomMeta::
+ dr $ddc33, $de033
+TilesetChampionsRoomColl::
+ dr $de033, $de133
+TilesetHouseGFX::
+ dr $de133, $de5d3
+TilesetHouseMeta::
+ dr $de5d3, $de9d3
+TilesetHouseColl::
+ dr $de9d3, $dead3
+TilesetLighthouseGFX::
+ dr $dead3, $deed3
+TilesetLighthouseMeta::
+ dr $deed3, $df2d3
+TilesetLighthouseColl::
+ dr $df2d3, $df3d3
+TilesetPlayersRoomGFX::
+ dr $df3d3, $df893
+TilesetPlayersRoomMeta::
+ dr $df893, $dfc93
+TilesetPlayersRoomColl::
+ dr $dfc93, $dfd93
+TilesetForestColl::
+ dr $dfd93, $dfe93
+
+
SECTION "bank38", ROMX
dr $e0000, $e0002
@@ -768,9 +947,9 @@ ENDC
SECTION "bank3e", ROMX
-Functionf8000::
+_LoadStandardFont::
dr $f8000, $f800c
-Functionf800c::
+_LoadFontsExtra::
dr $f800c, $f8032
_LoadFontsBattleExtra::
dr $f8032, $f8066
@@ -828,7 +1007,46 @@ SECTION "bank3f", ROMX
nop
DummyPredef3A::
ret
- dr $fc002, $fde20
+ ret
+_AnimateTileset::
+ dr $fc003, $fc01e
+Tileset0Anim::
+TilesetJohtoModernAnim::
+TilesetKantoAnim::
+TilesetParkAnim::
+TilesetForestAnim::
+ dr $fc01e, $fc04a
+TilesetJohtoAnim::
+ dr $fc04a, $fc0d6
+TilesetPortAnim::
+ dr $fc0d6, $fc106
+TilesetEliteFourRoomAnim::
+ dr $fc106, $fc18e
+TilesetCaveAnim::
+TilesetDarkCaveAnim::
+ dr $fc18e, $fc1da
+TilesetIcePathAnim::
+ dr $fc1da, $fc226
+TilesetTowerAnim::
+ dr $fc226, $fc28e
+TilesetHouseAnim::
+TilesetPlayersHouseAnim::
+TilesetPokecenterAnim::
+TilesetGateAnim::
+TilesetLabAnim::
+TilesetFacilityAnim::
+TilesetMartAnim::
+TilesetMansionAnim::
+TilesetGameCornerAnim::
+TilesetTraditionalHouseAnim::
+TilesetTrainStationAnim::
+TilesetChampionsRoomAnim::
+TilesetLighthouseAnim::
+TilesetPlayersRoomAnim::
+TilesetRuinsOfAlphAnim::
+TilesetRadioTowerAnim::
+TilesetUndergroundAnim::
+ dr $fc28e, $fde20
SECTION "bank40", ROMX
@@ -867,7 +1085,9 @@ SECTION "bank6e", ROMX
SECTION "bank70", ROMX
- dr $1c0000, $1c0a66
+ dr $1c0000, $1c0407
+TilesetKantoGFX::
+ dr $1c0407, $1c0a66
UpdateTimePredef::
dr $1c0a66, $1c0a7a
StubbedGetFrontpic::
diff --git a/pokegold.link b/pokegold.link
deleted file mode 100644
index 952b76df..00000000
--- a/pokegold.link
+++ /dev/null
@@ -1,315 +0,0 @@
-ROM0
- org $0000
- "NULL"
- org $0000
- "rst0"
- org $0008
- "rst8"
- org $0010
- "rst10"
- org $0018
- "rst18"
- org $0020
- "rst20"
- org $0028
- "rst28"
- org $0038
- "rst38"
- org $0040
- "vblank"
- org $0048
- "lcd"
- org $0050
- "timer"
- org $0058
- "serial"
- org $0060
- "joypad"
- org $0100
- "Header"
- org $0150
- "Home"
-ROMX $01
- "bank1"
-ROMX $02
- "bank2"
-ROMX $03
- "bank3"
-ROMX $04
- "bank4"
-ROMX $05
- org $4000
- "bank5"
-ROMX $06
- org $4000
- "bank6"
-ROMX $07
- org $4000
- "bank7"
- "Extra Songs 1"
-ROMX $08
- org $4000
- "bank8"
-ROMX $09
- org $4000
- "bank9"
-ROMX $0a
- org $4000
- "banka"
-ROMX $0b
- org $4000
- "bankb"
-ROMX $0c
- org $4000
- "bankc"
-ROMX $0d
- "Effect Commands"
-ROMX $0e
- "Enemy Trainers"
-ROMX $0f
- "Battle Core"
-ROMX $10
- org $4000
- "bank10"
-ROMX $11
- org $4000
- "bank11"
-ROMX $12
- org $4000
- "Pic Pointers"
- "Pics 1"
-ROMX $14
- "bank14"
-ROMX $15
- "Pics 2"
-ROMX $16
- "Pics 3"
-ROMX $17
- "Pics 4"
-ROMX $18
- "Pics 5"
-ROMX $19
- "Pics 6"
-ROMX $1a
- "Pics 7"
-ROMX $1b
- "Pics 8"
-ROMX $1c
- "Pics 9"
-ROMX $1d
- "Pics 10"
-ROMX $1e
- "Pics 11"
-ROMX $1f
- org $4000
- "Unown Pic Pointers"
- "Pics 12"
-ROMX $20
- "Trainer Pic Pointers"
- "Pics 13"
-ROMX $21
- org $4000
- "bank21"
-ROMX $23
- org $4000
- "bank23"
-ROMX $24
- org $4000
- "bank24"
-ROMX $25
- org $4000
- "bank25"
-ROMX $26
- org $4000
- "bank26"
-ROMX $2a
- "Map Blocks 1"
-ROMX $2b
- "Map Blocks 2"
-ROMX $2e
- org $4000
- "Pics 14"
- org $6300
- "bank2e_2"
-ROMX $30
- "Sprites 1"
-ROMX $31
- "Sprites 2"
- org $7a40
- "bank31_2"
-ROMX $32
- org $4000
- "bank32"
-ROMX $33
- "Move Animations"
- "Extra Songs 2"
-ROMX $36
- org $4000
- "bank36"
-ROMX $37
- "Map Blocks 3"
-ROMX $38
- org $4000
- "bank38"
-ROMX $39
- org $4000
- "bank39"
-ROMX $3a
- "Audio"
- "Songs 1"
-ROMX $3b
- "Songs 2"
-ROMX $3c
- "Songs 3"
- "Sound Effects"
- "Cries"
-ROMX $3d
- "Songs 4"
-ROMX $3e
- org $4000
- "bank3e"
-ROMX $3f
- org $4000
- "bank3f"
-ROMX $40
- org $4000
- "bank40"
-ROMX $41
- org $4000
- "bank41"
-ROMX $42
- "Map Scripts 1"
-ROMX $43
- "Map Scripts 2"
-ROMX $44
- "Map Scripts 3"
-ROMX $45
- "Map Scripts 4"
-ROMX $46
- "Map Scripts 5"
-ROMX $47
- "Map Scripts 6"
-ROMX $48
- "Map Scripts 7"
-ROMX $49
- "Map Scripts 8"
-ROMX $4a
- "Map Scripts 9"
-ROMX $4b
- "Map Scripts 10"
-ROMX $4c
- "Map Scripts 11"
-ROMX $4d
- "Map Scripts 12"
-ROMX $4e
- "Map Scripts 13"
-ROMX $4f
- "Map Scripts 14"
-ROMX $50
- "Map Scripts 15"
-ROMX $51
- "Map Scripts 16"
-ROMX $52
- "Map Scripts 17"
-ROMX $53
- "Map Scripts 18"
-ROMX $54
- "Map Scripts 19"
-ROMX $55
- "Map Scripts 20"
-ROMX $56
- "Map Scripts 21"
-ROMX $57
- "Map Scripts 22"
-ROMX $59
- "Map Scripts 23"
-ROMX $5a
- "Map Scripts 24"
-ROMX $5b
- "Map Scripts 25"
-ROMX $5c
- "Map Scripts 26"
-ROMX $5d
- "Map Scripts 27"
-ROMX $5e
- "Map Scripts 28"
-ROMX $5f
- "Map Scripts 29"
-ROMX $60
- "Map Scripts 30"
-ROMX $61
- "Map Scripts 31"
-ROMX $62
- "Map Scripts 32"
-ROMX $64
- "Text 1"
-ROMX $65
- "Text 2"
-ROMX $66
- "Text 3"
-ROMX $68
- "Pokedex Entries 001-064"
-ROMX $69
- "Pokedex Entries 065-128"
-ROMX $6a
- "Pokedex Entries 129-192"
-ROMX $6b
- "Pokedex Entries 193-251"
-ROMX $6c
- org $4000
- "bank6c"
-ROMX $6d
- org $4000
- "bank6d"
-ROMX $6e
- org $4000
- "bank6e"
-ROMX $70
- org $4000
- "bank70"
-ROMX $7f
- org $7df8
- "bank7f"
-WRAM0
- org $c000
- "Audio RAM"
- "WRAM"
- "GBC Palettes"
- "Sprites"
- "TileMap"
- "Animated Objects"
- "Video"
-WRAMX 1
- org $d000
- "WRAM1"
- "Game Data"
- "Party"
- org $dfff
- "Stack"
-WRAMX 2
-WRAMX 3
-WRAMX 4
-WRAMX 5
-WRAMX 6
-WRAMX 7
-VRAM $00
-VRAM $01
-SRAM $00
- "Scratch"
- org $a600
- "SRAM Bank 0"
- "Backup Save 1"
- "SRAM Stack"
- org $bfff
- "SRAM Window Stack"
-SRAM $01
- "Save"
- "Active Box"
- "Link Battle Data"
- "SRAM Hall of Fame"
- "Backup Save 2"
-SRAM $02
- "Boxes 1-7"
-SRAM $03
- "Boxes 8-14"
- "Backup Save 3"
diff --git a/sram.asm b/sram.asm
index 68ebb228..a5df1ece 100755
--- a/sram.asm
+++ b/sram.asm
@@ -5,6 +5,7 @@ sScratchTilemap:: ds BG_MAP_WIDTH * BG_MAP_HEIGHT
sScratchAttrmap:: ds $200
NEXTU ; a000
+sScratch::
sDecompressScratch:: ds $188
sDecompressBuffer:: ds 7 * 7 tiles ; a188
ENDU
diff --git a/wram.asm b/wram.asm
index 53a4c346..a102aae5 100644
--- a/wram.asm
+++ b/wram.asm
@@ -191,10 +191,10 @@ palbuffer: MACRO
\1Pal7:: ds 8
ENDM
-wTempBGPals:: palbuffer wTempBG ; c200
-wTempOBPals:: palbuffer wTempOB ; c240
-wBGPals:: palbuffer wBG ; c280
-wOBPals:: palbuffer wOB ; c2c0
+wBGPals1:: palbuffer wTempBG ; c200
+wOBPals1:: palbuffer wTempOB ; c240
+wBGPals2:: palbuffer wBG ; c280
+wOBPals2:: palbuffer wOB ; c2c0
SECTION "Sprites", WRAM0
@@ -249,7 +249,7 @@ wTilemapEnd:: ; c508
SECTION "Animated Objects", WRAM0
-UNION
+UNION ; c508
; surrounding tiles
; This buffer determines the size for the rest of the union;
; it uses exactly 480 bytes.
@@ -263,7 +263,7 @@ wBoxPartialData:: ds 480
wBoxPartialDataEnd::
NEXTU ; c508
-wTempTileMap::
+wTempTilemap::
ds SCREEN_HEIGHT * SCREEN_WIDTH
NEXTU
@@ -294,18 +294,18 @@ wCurIcon:: ; c5be
ds 1
wCurIconTile:: ds 1 ; c5bf
-wAnimatedObjectStructAddrBackup::
-wAnimatedObjectStructIDBuffer::
-wCurrSpriteAddSubFlags:: ; c5c0
- ds 2
-wCurrAnimVTile:: ds 1 ; c5c2
-wCurrAnimXCoord:: ds 1 ; c5c3
-wCurrAnimYCoord:: ds 1 ; c5c4
-wCurrAnimXOffset:: ds 1 ; c5c5
-wCurrAnimYOffset:: ds 1 ; c5c6
+wSpriteAnimAddrBackup::
+wSpriteAnimIDBuffer::
+wCurSpriteOAMFlags:: ; c5c0
+ dw
+wCurAnimVTile:: ds 1 ; c5c2
+wCurAnimXCoord:: ds 1 ; c5c3
+wCurAnimYCoord:: ds 1 ; c5c4
+wCurAnimXOffset:: ds 1 ; c5c5
+wCurAnimYOffset:: ds 1 ; c5c6
wGlobalAnimYOffset:: ds 1 ; c5c7
wGlobalAnimXOffset:: ds 1 ; c5c8
-wAnimatedObjectsEnd:: ; c5c9
+wSpriteAnimsEnd:: ; c5c9
wc5c9:: ds 1 ; c5c9
wc5ca:: ds 1 ; c5ca
@@ -330,310 +330,30 @@ wLinkTradeGetmonSpecies:: db
NEXTU ; c5d0
; naming screen
wNamingScreenDestinationPointer:: dw ; c5d0
-wc5d2:: ds 1 ; c5d2
-wc5d3:: ds 1 ; c5d3
-wNamingScreenType:: ds 1 ; c5d4
-
-wc5d5:: ds 1 ; c5d5
-wc5d6:: ds 1 ; c5d6
-wc5d7:: ds 1 ; c5d7
-wc5d8:: ds 1 ; c5d8
-wc5d9:: ds 1 ; c5d9
-wc5da:: ds 1 ; c5da
-wc5db:: ds 1 ; c5db
-wc5dc:: ds 1 ; c5dc
-wc5dd:: ds 1 ; c5dd
-wc5de:: ds 1 ; c5de
-wc5df:: ds 1 ; c5df
-wc5e0:: ds 1 ; c5e0
-wc5e1:: ds 1 ; c5e1
-wc5e2:: ds 1 ; c5e2
-wc5e3:: ds 1 ; c5e3
-wc5e4:: ds 1 ; c5e4
-wc5e5:: ds 1 ; c5e5
-wc5e6:: ds 1 ; c5e6
-wc5e7:: ds 1 ; c5e7
-wc5e8:: ds 1 ; c5e8
-wc5e9:: ds 1 ; c5e9
-wc5ea:: ds 1 ; c5ea
-wc5eb:: ds 1 ; c5eb
-wc5ec:: ds 1 ; c5ec
-wc5ed:: ds 1 ; c5ed
-wc5ee:: ds 1 ; c5ee
-wc5ef:: ds 1 ; c5ef
-wc5f0:: ds 1 ; c5f0
-wc5f1:: ds 1 ; c5f1
-wc5f2:: ds 1 ; c5f2
-wc5f3:: ds 1 ; c5f3
-wc5f4:: ds 1 ; c5f4
-wc5f5:: ds 1 ; c5f5
-wc5f6:: ds 1 ; c5f6
-wc5f7:: ds 1 ; c5f7
-wc5f8:: ds 1 ; c5f8
-wc5f9:: ds 1 ; c5f9
-wc5fa:: ds 1 ; c5fa
-wc5fb:: ds 1 ; c5fb
-wc5fc:: ds 1 ; c5fc
-wc5fd:: ds 1 ; c5fd
-wc5fe:: ds 1 ; c5fe
-wc5ff:: ds 1 ; c5ff
-wc600:: ds 1 ; c600
-wc601:: ds 1 ; c601
+wNamingScreenCurNameLength:: db ; c5d2
+wNamingScreenMaxNameLength:: db ; c5d3
+wNamingScreenType:: db ; c5d4
+wNamingScreenCursorObjectPointer:: dw ; c5d5
+wNamingScreenLastCharacter:: db ; c5d7
+wNamingScreenStringEntryCoord:: dw ; c5d8
+
+ ds 40
+
+; engine/gfx/color.asm ?
wc602:: ds 1 ; c602
wc603:: ds 1 ; c603
wc604:: ds 1 ; c604
wc605:: ds 1 ; c605
wc606:: ds 1 ; c606
wc607:: ds 1 ; c607
-wc608:: ds 1 ; c608
-wc609:: ds 1 ; c609
-wc60a:: ds 1 ; c60a
-wc60b:: ds 1 ; c60b
-wc60c:: ds 1 ; c60c
-wc60d:: ds 1 ; c60d
-wc60e:: ds 1 ; c60e
-wc60f:: ds 1 ; c60f
-wc610:: ds 1 ; c610
-wc611:: ds 1 ; c611
-wc612:: ds 1 ; c612
-wc613:: ds 1 ; c613
-wc614:: ds 1 ; c614
-wc615:: ds 1 ; c615
-wc616:: ds 1 ; c616
-wc617:: ds 1 ; c617
-wc618:: ds 1 ; c618
-wc619:: ds 1 ; c619
-wc61a:: ds 1 ; c61a
-wc61b:: ds 1 ; c61b
-wc61c:: ds 1 ; c61c
-wc61d:: ds 1 ; c61d
-wc61e:: ds 1 ; c61e
-wc61f:: ds 1 ; c61f
-wc620:: ds 1 ; c620
-wc621:: ds 1 ; c621
-wc622:: ds 1 ; c622
-wc623:: ds 1 ; c623
-wc624:: ds 1 ; c624
-wc625:: ds 1 ; c625
-wc626:: ds 1 ; c626
-wc627:: ds 1 ; c627
-wc628:: ds 1 ; c628
-wc629:: ds 1 ; c629
-wc62a:: ds 1 ; c62a
-wc62b:: ds 1 ; c62b
-wc62c:: ds 1 ; c62c
-wc62d:: ds 1 ; c62d
-wc62e:: ds 1 ; c62e
-wc62f:: ds 1 ; c62f
-wc630:: ds 1 ; c630
-wc631:: ds 1 ; c631
-wc632:: ds 1 ; c632
-wc633:: ds 1 ; c633
-wc634:: ds 1 ; c634
-wc635:: ds 1 ; c635
-wc636:: ds 1 ; c636
-wc637:: ds 1 ; c637
-wc638:: ds 1 ; c638
-wc639:: ds 1 ; c639
-wc63a:: ds 1 ; c63a
-wc63b:: ds 1 ; c63b
-wc63c:: ds 1 ; c63c
-wc63d:: ds 1 ; c63d
-wc63e:: ds 1 ; c63e
-wc63f:: ds 1 ; c63f
-wc640:: ds 1 ; c640
-wc641:: ds 1 ; c641
-wc642:: ds 1 ; c642
-wc643:: ds 1 ; c643
-wc644:: ds 1 ; c644
-wc645:: ds 1 ; c645
-wc646:: ds 1 ; c646
-wc647:: ds 1 ; c647
-wc648:: ds 1 ; c648
-wc649:: ds 1 ; c649
-wc64a:: ds 1 ; c64a
-wc64b:: ds 1 ; c64b
-wc64c:: ds 1 ; c64c
-wc64d:: ds 1 ; c64d
-wc64e:: ds 1 ; c64e
-wc64f:: ds 1 ; c64f
-wc650:: ds 1 ; c650
-wc651:: ds 1 ; c651
-wc652:: ds 1 ; c652
-wc653:: ds 1 ; c653
-wc654:: ds 1 ; c654
-wc655:: ds 1 ; c655
-wc656:: ds 1 ; c656
-wc657:: ds 1 ; c657
-wc658:: ds 1 ; c658
-wc659:: ds 1 ; c659
-wc65a:: ds 1 ; c65a
-wc65b:: ds 1 ; c65b
-wc65c:: ds 1 ; c65c
-wc65d:: ds 1 ; c65d
-wc65e:: ds 1 ; c65e
-wc65f:: ds 1 ; c65f
-wc660:: ds 1 ; c660
-wc661:: ds 1 ; c661
-wc662:: ds 1 ; c662
-wc663:: ds 1 ; c663
-wc664:: ds 1 ; c664
-wc665:: ds 1 ; c665
-wc666:: ds 1 ; c666
-wc667:: ds 1 ; c667
-wc668:: ds 1 ; c668
-wc669:: ds 1 ; c669
-wc66a:: ds 1 ; c66a
-wc66b:: ds 1 ; c66b
-wc66c:: ds 1 ; c66c
-wc66d:: ds 1 ; c66d
-wc66e:: ds 1 ; c66e
-wc66f:: ds 1 ; c66f
-wc670:: ds 1 ; c670
-wc671:: ds 1 ; c671
-wc672:: ds 1 ; c672
-wc673:: ds 1 ; c673
-wc674:: ds 1 ; c674
-wc675:: ds 1 ; c675
-wc676:: ds 1 ; c676
-wc677:: ds 1 ; c677
-wc678:: ds 1 ; c678
-wc679:: ds 1 ; c679
-wc67a:: ds 1 ; c67a
-wc67b:: ds 1 ; c67b
-wc67c:: ds 1 ; c67c
-wc67d:: ds 1 ; c67d
-wc67e:: ds 1 ; c67e
-wc67f:: ds 1 ; c67f
-wc680:: ds 1 ; c680
-wc681:: ds 1 ; c681
-wc682:: ds 1 ; c682
-wc683:: ds 1 ; c683
-wc684:: ds 1 ; c684
-wc685:: ds 1 ; c685
-wc686:: ds 1 ; c686
-wc687:: ds 1 ; c687
-wc688:: ds 1 ; c688
-wc689:: ds 1 ; c689
-wc68a:: ds 1 ; c68a
-wc68b:: ds 1 ; c68b
-wc68c:: ds 1 ; c68c
-wc68d:: ds 1 ; c68d
-wc68e:: ds 1 ; c68e
-wc68f:: ds 1 ; c68f
-wc690:: ds 1 ; c690
-wc691:: ds 1 ; c691
-wc692:: ds 1 ; c692
-wc693:: ds 1 ; c693
-wc694:: ds 1 ; c694
-wc695:: ds 1 ; c695
-wc696:: ds 1 ; c696
-wc697:: ds 1 ; c697
-wc698:: ds 1 ; c698
-wc699:: ds 1 ; c699
-wc69a:: ds 1 ; c69a
-wc69b:: ds 1 ; c69b
-wc69c:: ds 1 ; c69c
-wc69d:: ds 1 ; c69d
-wc69e:: ds 1 ; c69e
-wc69f:: ds 1 ; c69f
-wc6a0:: ds 1 ; c6a0
-wc6a1:: ds 1 ; c6a1
-wc6a2:: ds 1 ; c6a2
-wc6a3:: ds 1 ; c6a3
-wc6a4:: ds 1 ; c6a4
-wc6a5:: ds 1 ; c6a5
-wc6a6:: ds 1 ; c6a6
-wc6a7:: ds 1 ; c6a7
-wc6a8:: ds 1 ; c6a8
-wc6a9:: ds 1 ; c6a9
-wc6aa:: ds 1 ; c6aa
-wc6ab:: ds 1 ; c6ab
-wc6ac:: ds 1 ; c6ac
-wc6ad:: ds 1 ; c6ad
-wc6ae:: ds 1 ; c6ae
-wc6af:: ds 1 ; c6af
-wc6b0:: ds 1 ; c6b0
-wc6b1:: ds 1 ; c6b1
-wc6b2:: ds 1 ; c6b2
-wc6b3:: ds 1 ; c6b3
-wc6b4:: ds 1 ; c6b4
-wc6b5:: ds 1 ; c6b5
-wc6b6:: ds 1 ; c6b6
-wc6b7:: ds 1 ; c6b7
-wc6b8:: ds 1 ; c6b8
-wc6b9:: ds 1 ; c6b9
-wc6ba:: ds 1 ; c6ba
-wc6bb:: ds 1 ; c6bb
-wc6bc:: ds 1 ; c6bc
-wc6bd:: ds 1 ; c6bd
-wc6be:: ds 1 ; c6be
-wc6bf:: ds 1 ; c6bf
-wc6c0:: ds 1 ; c6c0
-wc6c1:: ds 1 ; c6c1
-wc6c2:: ds 1 ; c6c2
-wc6c3:: ds 1 ; c6c3
-wc6c4:: ds 1 ; c6c4
-wc6c5:: ds 1 ; c6c5
-wc6c6:: ds 1 ; c6c6
-wc6c7:: ds 1 ; c6c7
-wc6c8:: ds 1 ; c6c8
-wc6c9:: ds 1 ; c6c9
-wc6ca:: ds 1 ; c6ca
-wc6cb:: ds 1 ; c6cb
-wc6cc:: ds 1 ; c6cc
-wc6cd:: ds 1 ; c6cd
-wc6ce:: ds 1 ; c6ce
-wc6cf:: ds 1 ; c6cf
-wc6d0:: ds 1 ; c6d0
-wc6d1:: ds 1 ; c6d1
-wc6d2:: ds 1 ; c6d2
-wc6d3:: ds 1 ; c6d3
-wc6d4:: ds 1 ; c6d4
-wc6d5:: ds 1 ; c6d5
-wc6d6:: ds 1 ; c6d6
-wc6d7:: ds 1 ; c6d7
-wc6d8:: ds 1 ; c6d8
-wc6d9:: ds 1 ; c6d9
-wc6da:: ds 1 ; c6da
-wc6db:: ds 1 ; c6db
-wc6dc:: ds 1 ; c6dc
-wc6dd:: ds 1 ; c6dd
-wc6de:: ds 1 ; c6de
-wc6df:: ds 1 ; c6df
-wc6e0:: ds 1 ; c6e0
-wc6e1:: ds 1 ; c6e1
-wc6e2:: ds 1 ; c6e2
-wc6e3:: ds 1 ; c6e3
-wc6e4:: ds 1 ; c6e4
-wc6e5:: ds 1 ; c6e5
-wc6e6:: ds 1 ; c6e6
-wc6e7:: ds 1 ; c6e7
-wc6e8:: ds 1 ; c6e8
ENDU
-wc6e9:: ds 1 ; c6e9
-wc6ea:: ds 1 ; c6ea
-wc6eb:: ds 1 ; c6eb
-wc6ec:: ds 1 ; c6ec
-wc6ed:: ds 1 ; c6ed
-wc6ee:: ds 1 ; c6ee
-wc6ef:: ds 1 ; c6ef
-wc6f0:: ds 1 ; c6f0
-wc6f1:: ds 1 ; c6f1
-wc6f2:: ds 1 ; c6f2
-wc6f3:: ds 1 ; c6f3
-wc6f4:: ds 1 ; c6f4
-wc6f5:: ds 1 ; c6f5
-wc6f6:: ds 1 ; c6f6
-wc6f7:: ds 1 ; c6f7
-wc6f8:: ds 1 ; c6f8
-wc6f9:: ds 1 ; c6f9
-wc6fa:: ds 1 ; c6fa
-wc6fb:: ds 1 ; c6fb
-wc6fc:: ds 1 ; c6fc
-wc6fd:: ds 1 ; c6fd
-wc6fe:: ds 1 ; c6fe
-wc6ff:: ds 1 ; c6ff
+
+ ds 156
+
+; This was a buffer for map-related pointers in the 1997 G/S prototype.
+; See wMapBuffer in pokegold-spaceworld's wram.asm.
+wUnusedMapBuffer:: ds 24
+wUnusedMapBufferEnd::
wOverworldMapBlocks::
wLYOverrides::
@@ -783,6 +503,7 @@ wc78c:: ds 1 ; c78c
wc78d:: ds 1 ; c78d
wc78e:: ds 1 ; c78e
wc78f:: ds 1 ; c78f
+wLYOverridesEnd::
wc790:: ds 1 ; c790
wc791:: ds 1 ; c791
wc792:: ds 1 ; c792
@@ -895,17 +616,13 @@ wc7fc:: ds 1 ; c7fc
wc7fd:: ds 1 ; c7fd
wc7fe:: ds 1 ; c7fe
wc7ff:: ds 1 ; c7ff
-wLYOverridesEnd::
wLYOverridesBackup::
wc800:: ds 1 ; c800
wc801:: ds 1 ; c801
wc802:: ds 1 ; c802
-UNION
+wMysteryGiftPartnerName::
wc803:: ds 1 ; c803
-NEXTU
-wMysteryGiftPartnerName:: ds 1 ; c803
-ENDU
wc804:: ds 1 ; c804
wc805:: ds 1 ; c805
wc806:: ds 1 ; c806
@@ -985,11 +702,8 @@ wc84f:: ds 1 ; c84f
wc850:: ds 1 ; c850
wc851:: ds 1 ; c851
wc852:: ds 1 ; c852
-UNION
-wc853:: ds 1 ; c853
-NEXTU
wMysteryGiftPlayerName::
-ENDU
+wc853:: ds 1 ; c853
wc854:: ds 1 ; c854
wc855:: ds 1 ; c855
wc856:: ds 1 ; c856
@@ -1050,6 +764,7 @@ wc88c:: ds 1 ; c88c
wc88d:: ds 1 ; c88d
wc88e:: ds 1 ; c88e
wc88f:: ds 1 ; c88f
+wLYOverridesBackupEnd::
wc890:: ds 1 ; c890
wc891:: ds 1 ; c891
wc892:: ds 1 ; c892
@@ -1162,8 +877,6 @@ wc8fc:: ds 1 ; c8fc
wc8fd:: ds 1 ; c8fd
wc8fe:: ds 1 ; c8fe
wc8ff:: ds 1 ; c8ff
-wLYOverridesBufferEnd::
-
wc900:: ds 1 ; c900
wc901:: ds 1 ; c901
wc902:: ds 1 ; c902
@@ -1436,14 +1149,13 @@ wca0c:: ds 1 ; ca0c
wca0d:: ds 1 ; ca0d
wca0e:: ds 1 ; ca0e
wca0f:: ds 1 ; ca0f
-wca10:: ds 1 ; ca10
-wca11:: ds 1 ; ca11
+wBattleAnimAddress:: dw ; ca10
wca12:: ds 1 ; ca12
wca13:: ds 1 ; ca13
wca14:: ds 1 ; ca14
wca15:: ds 1 ; ca15
wca16:: ds 1 ; ca16
-wca17:: ds 1 ; ca17
+wBattleAnimByte:: db ; ca17
wca18:: ds 1 ; ca18
wca19:: ds 1 ; ca19
wca1a:: ds 1 ; ca1a
@@ -1909,126 +1621,13 @@ wEnemyJustGotFrozen:: db ; cc1e
ENDU ; cc20
SECTION "Video", WRAM0
-wBGMapBuffer:: ds 1 ; cc20
-wcc21:: ds 1 ; cc21
-wcc22:: ds 1 ; cc22
-wcc23:: ds 1 ; cc23
-wcc24:: ds 1 ; cc24
-wcc25:: ds 1 ; cc25
-wcc26:: ds 1 ; cc26
-wcc27:: ds 1 ; cc27
-wcc28:: ds 1 ; cc28
-wcc29:: ds 1 ; cc29
-wcc2a:: ds 1 ; cc2a
-wcc2b:: ds 1 ; cc2b
-wcc2c:: ds 1 ; cc2c
-wcc2d:: ds 1 ; cc2d
-wcc2e:: ds 1 ; cc2e
-wcc2f:: ds 1 ; cc2f
-wcc30:: ds 1 ; cc30
-wcc31:: ds 1 ; cc31
-wcc32:: ds 1 ; cc32
-wcc33:: ds 1 ; cc33
-wcc34:: ds 1 ; cc34
-wcc35:: ds 1 ; cc35
-wcc36:: ds 1 ; cc36
-wcc37:: ds 1 ; cc37
-wcc38:: ds 1 ; cc38
-wcc39:: ds 1 ; cc39
-wcc3a:: ds 1 ; cc3a
-wcc3b:: ds 1 ; cc3b
-wcc3c:: ds 1 ; cc3c
-wcc3d:: ds 1 ; cc3d
-wcc3e:: ds 1 ; cc3e
-wcc3f:: ds 1 ; cc3f
-wcc40:: ds 1 ; cc40
-wcc41:: ds 1 ; cc41
-wcc42:: ds 1 ; cc42
-wcc43:: ds 1 ; cc43
-wcc44:: ds 1 ; cc44
-wcc45:: ds 1 ; cc45
-wcc46:: ds 1 ; cc46
-wcc47:: ds 1 ; cc47
-wBGMapPalBuffer:: ds 1 ; cc48
-wcc49:: ds 1 ; cc49
-wcc4a:: ds 1 ; cc4a
-wcc4b:: ds 1 ; cc4b
-wcc4c:: ds 1 ; cc4c
-wcc4d:: ds 1 ; cc4d
-wcc4e:: ds 1 ; cc4e
-wcc4f:: ds 1 ; cc4f
-wcc50:: ds 1 ; cc50
-wcc51:: ds 1 ; cc51
-wcc52:: ds 1 ; cc52
-wcc53:: ds 1 ; cc53
-wcc54:: ds 1 ; cc54
-wcc55:: ds 1 ; cc55
-wcc56:: ds 1 ; cc56
-wcc57:: ds 1 ; cc57
-wcc58:: ds 1 ; cc58
-wcc59:: ds 1 ; cc59
-wcc5a:: ds 1 ; cc5a
-wcc5b:: ds 1 ; cc5b
-wcc5c:: ds 1 ; cc5c
-wcc5d:: ds 1 ; cc5d
-wcc5e:: ds 1 ; cc5e
-wcc5f:: ds 1 ; cc5f
-wcc60:: ds 1 ; cc60
-wcc61:: ds 1 ; cc61
-wcc62:: ds 1 ; cc62
-wcc63:: ds 1 ; cc63
-wcc64:: ds 1 ; cc64
-wcc65:: ds 1 ; cc65
-wcc66:: ds 1 ; cc66
-wcc67:: ds 1 ; cc67
-wcc68:: ds 1 ; cc68
-wcc69:: ds 1 ; cc69
-wcc6a:: ds 1 ; cc6a
-wcc6b:: ds 1 ; cc6b
-wcc6c:: ds 1 ; cc6c
-wcc6d:: ds 1 ; cc6d
-wcc6e:: ds 1 ; cc6e
-wcc6f:: ds 1 ; cc6f
-wBGMapBufferPtrs:: ds 1 ; cc70
-wcc71:: ds 1 ; cc71
-wcc72:: ds 1 ; cc72
-wcc73:: ds 1 ; cc73
-wcc74:: ds 1 ; cc74
-wcc75:: ds 1 ; cc75
-wcc76:: ds 1 ; cc76
-wcc77:: ds 1 ; cc77
-wcc78:: ds 1 ; cc78
-wcc79:: ds 1 ; cc79
-wcc7a:: ds 1 ; cc7a
-wcc7b:: ds 1 ; cc7b
-wcc7c:: ds 1 ; cc7c
-wcc7d:: ds 1 ; cc7d
-wcc7e:: ds 1 ; cc7e
-wcc7f:: ds 1 ; cc7f
-wcc80:: ds 1 ; cc80
-wcc81:: ds 1 ; cc81
-wcc82:: ds 1 ; cc82
-wcc83:: ds 1 ; cc83
-wcc84:: ds 1 ; cc84
-wcc85:: ds 1 ; cc85
-wcc86:: ds 1 ; cc86
-wcc87:: ds 1 ; cc87
-wcc88:: ds 1 ; cc88
-wcc89:: ds 1 ; cc89
-wcc8a:: ds 1 ; cc8a
-wcc8b:: ds 1 ; cc8b
-wcc8c:: ds 1 ; cc8c
-wcc8d:: ds 1 ; cc8d
-wcc8e:: ds 1 ; cc8e
-wcc8f:: ds 1 ; cc8f
-wcc90:: ds 1 ; cc90
-wcc91:: ds 1 ; cc91
-wcc92:: ds 1 ; cc92
-wcc93:: ds 1 ; cc93
-wcc94:: ds 1 ; cc94
-wcc95:: ds 1 ; cc95
-wcc96:: ds 1 ; cc96
-wcc97:: ds 1 ; cc97
+
+; wBGMapBuffer
+wBGMapBuffer:: ds 40 ; cd20
+wBGMapPalBuffer:: ds 40 ; cd48
+wBGMapBufferPtrs:: ds 40 ; cd70 ; 20 bg map addresses (16x8 tiles)
+wBGMapBufferEnd::
+
wColorLayoutPredefID:: ds 1 ; cc98
wPlayerHPPal:: db ; cc99
wEnemyHPPal:: db ; cc9a
@@ -2364,7 +1963,6 @@ wceed:: db ; ceed
wceee:: db ; ceee
wceef:: db ; ceef
-; mobile?
ds 1
wcef1:: ds 2 ; cef1
wcef3:: ds 2 ; cef3
@@ -2492,8 +2090,7 @@ ENDU
wcf3a:: ds 1
wBoxAlignment:: db
-wcf3c:: ds 1
-wcf3d:: ds 1
+wUnusedBufferCF3C:: dw
wFXAnimID:: dw
ENDU
@@ -2502,7 +2099,7 @@ wcf41:: ds 1 ; cf41
wcf42:: ds 1 ; cf42
wBGP:: ds 1
wOBP0:: ds 1
-wOPB1:: ds 1
+wOBP1:: ds 1
wNumHits:: db ; cf46
wcf47:: ds 1 ; cf47
wMonOrItemNameBuffer:: ds 1 ; cf48
@@ -2573,10 +2170,8 @@ wMoveSwapBuffer::
wcfd3::
db ; cfd3
-wMenuScrollPosition:: ds 1 ; cfd4
-wcfd5:: ds 1 ; cfd5
-wcfd6:: ds 1 ; cfd6
-wcfd7:: ds 1 ; cfd7
+wMenuScrollPosition:: ds 4
+
wQueuedScriptBank:: db ; cfd8
wQueuedScriptAddr:: dw ; cfd9
wPredefID:: ds 1 ; cfdb
@@ -2676,10 +2271,10 @@ wLinkMode:: ds 1 ; d042
; 1 link battle
; used when following a map warp
-wNextWarpNumber:: ds 1 ; d043
+wNextWarp:: ds 1 ; d043
wNextMapGroup:: ds 1 ; d044
wNextMapNumber:: ds 1 ; d045
-wPrevWarpNumber:: ds 1 ; d046
+wPrevWarp:: ds 1 ; d046
wPrevMapGroup:: ds 1 ; d047
wPrevMapNumber:: ds 1 ; d048
@@ -2701,94 +2296,55 @@ wd057:: ds 1 ; d057
wd058:: ds 1 ; d058
wd059:: ds 1 ; d059
wd05a:: ds 1 ; d05a
-wd05b:: ds 1 ; d05b
-wd05c:: ds 1 ; d05c
+
+wBGMapAnchor:: dw ; d05b
wUsedSprites:: ds SPRITE_GFX_LIST_CAPACITY * 2
wUsedSpritesEnd::
ds 8
-wOverworldMapAnchor:: dw ; d07d
+wOverworldMapAnchor:: dw ; d07d
wMetatileStandingY:: db ; d07f
wMetatileStandingX:: db ; d080
-wd081:: ds 1 ; d081
-wd082:: ds 1 ; d082
-wPermission:: ds 1 ; d083
-wd084:: ds 1 ; d084
-wd085:: ds 1 ; d085
-wMapBorderBlock:: ds 1 ; d086
-wd087:: ds 1 ; d087
-wMapWidth:: ds 1 ; d088
-wd089:: ds 1 ; d089
-wd08a:: ds 1 ; d08a
-wd08b:: ds 1 ; d08b
-wd08c:: ds 1 ; d08c
-wd08d:: ds 1 ; d08d
-wd08e:: ds 1 ; d08e
-wd08f:: ds 1 ; d08f
-wd090:: ds 1 ; d090
-wd091:: ds 1 ; d091
-wd092:: ds 1 ; d092
-wd093:: ds 1 ; d093
-wd094:: ds 1 ; d094
-wd095:: ds 1 ; d095
-wd096:: ds 1 ; d096
-wd097:: ds 1 ; d097
-wd098:: ds 1 ; d098
-wd099:: ds 1 ; d099
-wd09a:: ds 1 ; d09a
-wd09b:: ds 1 ; d09b
-wd09c:: ds 1 ; d09c
-wd09d:: ds 1 ; d09d
-wd09e:: ds 1 ; d09e
-wd09f:: ds 1 ; d09f
-wd0a0:: ds 1 ; d0a0
-wd0a1:: ds 1 ; d0a1
-wd0a2:: ds 1 ; d0a2
-wd0a3:: ds 1 ; d0a3
-wd0a4:: ds 1 ; d0a4
-wd0a5:: ds 1 ; d0a5
-wd0a6:: ds 1 ; d0a6
-wd0a7:: ds 1 ; d0a7
-wd0a8:: ds 1 ; d0a8
-wd0a9:: ds 1 ; d0a9
-wd0aa:: ds 1 ; d0aa
-wd0ab:: ds 1 ; d0ab
-wd0ac:: ds 1 ; d0ac
-wd0ad:: ds 1 ; d0ad
-wd0ae:: ds 1 ; d0ae
-wd0af:: ds 1 ; d0af
-wd0b0:: ds 1 ; d0b0
-wd0b1:: ds 1 ; d0b1
-wd0b2:: ds 1 ; d0b2
-wd0b3:: ds 1 ; d0b3
-wd0b4:: ds 1 ; d0b4
-wd0b5:: ds 1 ; d0b5
-wd0b6:: ds 1 ; d0b6
-wd0b7:: ds 1 ; d0b7
-wd0b8:: ds 1 ; d0b8
-wd0b9:: ds 1 ; d0b9
-wd0ba:: ds 1 ; d0ba
-wd0bb:: ds 1 ; d0bb
-wd0bc:: ds 1 ; d0bc
-wd0bd:: ds 1 ; d0bd
-wd0be:: ds 1 ; d0be
-wd0bf:: ds 1 ; d0bf
-wd0c0:: ds 1 ; d0c0
-wd0c1:: ds 1 ; d0c1
-wd0c2:: ds 1 ; d0c2
-wd0c3:: ds 1 ; d0c3
-wd0c4:: ds 1 ; d0c4
-wTilesetBlocksBank:: ds 1 ; d0c5
+
+wMapPartial::
+wMapAttributesBank:: db ; d081
+wMapTileset:: db ; d082
+wEnvironment:: db ; d083
+wMapAttributesPointer:: dw ; d084
+wMapPartialEnd::
+
+wMapAttributes:: ; d086
+wMapBorderBlock:: db ; d086
+; width/height are in blocks (2x2 walkable tiles, 4x4 graphics tiles)
+wMapHeight:: db ; d087
+wMapWidth:: db ; d088
+wMapBlocksBank:: db; d089
+wMapBlocksPointer:: dw ; d08a
+wMapScriptsBank:: db ; d08c
+wMapScriptsPointer:: dw ; d08d
+wMapEventsPointer:: dw ; d08f
+; bit set
+wMapConnections:: db ; d091
+wMapAttributesEnd::
+
+wNorthMapConnection:: map_connection_struct wNorth ; d092
+wSouthMapConnection:: map_connection_struct wSouth ; d09e
+wWestMapConnection:: map_connection_struct wWest ; d0aa
+wEastMapConnection:: map_connection_struct wEast ; d0b6
+
+wTileset::
+wTilesetBank:: db ; d0c2
+wTilesetAddress:: dw ; d0c3
+wTilesetBlocksBank:: db ; d0c5
wTilesetBlocksAddress:: dw ; d0c6
-wd0c8:: ds 1 ; d0c8
-wd0c9:: ds 1 ; d0c9
-wd0ca:: ds 1 ; d0ca
-wd0cb:: ds 1 ; d0cb
-wd0cc:: ds 1 ; d0cc
-wd0cd:: ds 1 ; d0cd
-wd0ce:: ds 1 ; d0ce
-wTilesetPalettes:: dw ; d0cf
+wTilesetCollisionBank:: db ; d0c8
+wTilesetCollisionAddress:: dw ; d0c9
+wTilesetAnim:: dw ; bank 3f ; d0cb
+ ds 2 ; unused ; d0cd
+wTilesetPalettes:: dw ; bank 3f ; d0cf
+wTilesetEnd::
+
wEvolvableFlags:: db ; d0d1
wForceEvolution:: db ; d0d2
@@ -2934,34 +2490,33 @@ wROMBankBackup:: ds 1 ; d155
wBuffer:: ds 1 ; d156
wTimeOfDay:: ds 1 ; d157
wd158:: ds 1 ; d158
-wd159:: ds 1 ; d159
-wd15a:: ds 1 ; d15a
-wd15b:: ds 1 ; d15b
-wd15c:: ds 1 ; d15c
-wd15d:: ds 1 ; d15d
-wd15e:: ds 1 ; d15e
-wd15f:: ds 1 ; d15f
-wScriptBank:: ds 1 ; d160
-wd161:: ds 1 ; d161
-wd162:: ds 1 ; d162
-wd163:: ds 1 ; d163
-wd164:: ds 1 ; d164
-wd165:: ds 1 ; d165
-wd166:: ds 1 ; d166
-wd167:: ds 1 ; d167
-wd168:: ds 1 ; d168
-wd169:: ds 1 ; d169
-wd16a:: ds 1 ; d16a
-wd16b:: ds 1 ; d16b
-wd16c:: ds 1 ; d16c
-wd16d:: ds 1 ; d16d
-wd16e:: ds 1 ; d16e
-wd16f:: ds 1 ; d16f
-wd170:: ds 1 ; d170
-wd171:: ds 1 ; d171
-wd172:: ds 1 ; d172
-wScriptVar:: ds 1 ; d173
-wd174:: ds 1 ; d174
+
+wMapStatus:: db ; d159
+wMapEventStatus:: db ; d15a
+
+wScriptFlags:: ; d15b
+; bit 3: priority jump
+ db
+wScriptFlags2:: ; d15c
+ db
+wScriptFlags3:: ; d15d
+; bit 0: count steps
+; bit 1: coord events
+; bit 2: warps and connections
+; bit 4: wild encounters
+; bit 5: unknown
+ db
+
+wScriptMode:: db ; d15e
+wScriptRunning:: db ; d15f
+wScriptBank:: db ; d160
+wScriptPos:: dw ; d161
+
+wScriptStackSize:: db
+wScriptStack:: ds 3 * 5
+wScriptVar:: db ; d173
+wScriptDelay:: db ; d174
+
wd175:: ds 1 ; d175
wd176:: ds 1 ; d176
wd177:: ds 1 ; d177
@@ -3127,7 +2682,7 @@ wMap14Object:: map_object wMap14 ; d525
wMap15Object:: map_object wMap15 ; d535
wMapObjectsEnd:: ; d545
-wd545:: ds 1 ; d545
+wObjectMasks:: db ; d545
wd546:: ds 1 ; d546
wd547:: ds 1 ; d547
wd548:: ds 1 ; d548
@@ -3144,10 +2699,10 @@ wd552:: ds 1 ; d552
wd553:: ds 1 ; d553
wd554:: ds 1 ; d554
wVariableSprites:: ds $100 - SPRITE_VARS ; d555
-wd565:: ds 1 ; d565
+wEnteredMapFromContinue:: db ; d565
wd566:: ds 1 ; d566
wd567:: ds 1 ; d567
-wTimeOfDayPal:: ds 1
+wTimeOfDayPal:: db
wd569:: ds 1 ; d569
wd56a:: ds 1 ; d56a
wd56b:: ds 1 ; d56b
@@ -3548,25 +3103,23 @@ wd93d:: ds 1 ; d93d
wd93e:: ds 1 ; d93e
wBikeFlags:: ds 1 ; d93f
wd940:: ds 1 ; d940
-wCurrentMapTriggerPointer:: dw ; d941
-wd943:: ds 1 ; d943
-wd944:: ds 1 ; d944
-wCurMapWarpCount:: ds 1 ; d945
+
+wCurMapSceneScriptPointer:: dw ; d941
+
+wCurCaller:: dw ; d943
+wCurMapWarpCount:: db ; d945
wCurMapWarpsPointer:: dw ; d946
-wd948:: ds 1 ; d948
-wd949:: ds 1 ; d949
-wd94a:: ds 1 ; d94a
+wCurMapCoordEventCount:: db ; d948
+wCurMapCoordEventsPointer:: dw ; d949
wCurMapBGEventCount:: db ; d94b
wCurMapBGEventsPointer:: dw ; d94c
-wd94e:: ds 1 ; d94e
-wd94f:: ds 1 ; d94f
-wd950:: ds 1 ; d950
-wd951:: ds 1 ; d951
-wd952:: ds 1 ; d952
-wd953:: ds 1 ; d953
-wd954:: ds 1 ; d954
-wd955:: ds 1 ; d955
-wd956:: ds 1 ; d956
+wCurMapObjectEventCount:: db ; d94e
+wCurMapObjectEventsPointer:: dw ; d94f
+wCurMapSceneScriptCount:: db ; d951
+wCurMapSceneScriptsPointer:: dw ; d952
+wCurMapCallbackCount:: db ; d954
+wCurMapCallbacksPointer:: dw ; d955
+
wd957:: ds 1 ; d957
wd958:: ds 1 ; d958
wd959:: ds 1 ; d959
@@ -3731,46 +3284,17 @@ wBackupMapNumber:: db ; d9f7
wd9f8:: ds 1 ; d9f8
wd9f9:: ds 1 ; d9f9
wd9fa:: ds 1 ; d9fa
-wd9fb:: ds 1 ; d9fb
-wd9fc:: ds 1 ; d9fc
+wLastSpawnMapGroup:: db
+wLastSpawnMapNumber:: db
wd9fd:: ds 1 ; d9fd
wd9fe:: ds 1 ; d9fe
-wd9ff:: ds 1 ; d9ff
-
+wWarpNumber:: ds 1 ; d9ff
wMapGroup:: ds 1 ; da00
wMapNumber:: ds 1 ; da01
wYCoord:: ds 1 ; da02
wXCoord:: ds 1 ; da03
-wda04:: ds 1 ; da04
-wda05:: ds 1 ; da05
-wda06:: ds 1 ; da06
-wda07:: ds 1 ; da07
-wda08:: ds 1 ; da08
-wda09:: ds 1 ; da09
-wda0a:: ds 1 ; da0a
-wda0b:: ds 1 ; da0b
-wda0c:: ds 1 ; da0c
-wda0d:: ds 1 ; da0d
-wda0e:: ds 1 ; da0e
-wda0f:: ds 1 ; da0f
-wda10:: ds 1 ; da10
-wda11:: ds 1 ; da11
-wda12:: ds 1 ; da12
-wda13:: ds 1 ; da13
-wda14:: ds 1 ; da14
-wda15:: ds 1 ; da15
-wda16:: ds 1 ; da16
-wda17:: ds 1 ; da17
-wda18:: ds 1 ; da18
-wda19:: ds 1 ; da19
-wda1a:: ds 1 ; da1a
-wda1b:: ds 1 ; da1b
-wda1c:: ds 1 ; da1c
-wda1d:: ds 1 ; da1d
-wda1e:: ds 1 ; da1e
-wda1f:: ds 1 ; da1f
-wda20:: ds 1 ; da20
-wda21:: ds 1 ; da21
+wScreenSave:: ds SCREEN_META_WIDTH * SCREEN_META_HEIGHT
+
wCurMapDataEnd::
SECTION "Party", WRAMX, BANK[1]