diff options
author | entrpntr <entrpntr@gmail.com> | 2020-04-22 23:15:53 -0400 |
---|---|---|
committer | entrpntr <entrpntr@gmail.com> | 2020-04-22 23:18:36 -0400 |
commit | 1d456d5f66627e8023c074419180639cc027e7bc (patch) | |
tree | 96b4ef0b214f716d7c5478804d9f9bb596373564 | |
parent | b87cc706430f281d6af24daa942890574449a803 (diff) |
Finish home cleanup, identify tileset data, other misc cleanups.
65 files changed, 2233 insertions, 2566 deletions
@@ -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 @@ -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 @@ -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" @@ -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 @@ -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] |