From e63bfa7741d503fa2710792898ac4a2b5b859acf Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Mon, 23 May 2016 14:14:17 -0400 Subject: Name some wram address refs --- engine/printer.asm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/engine/printer.asm b/engine/printer.asm index 7e6ae637..bc6a07b3 100755 --- a/engine/printer.asm +++ b/engine/printer.asm @@ -432,7 +432,7 @@ Data_e8a58: db $0f, $00, $00, $00, $0f, $00 Func_e8a5e: ; e8a5e (3a:4a5e) - ld a, [$d49a] + ld a, [wUnknownSerialFlag_d49b] ld e, a ld d, 0 ld hl, Jumptable_e8a6d @@ -1229,7 +1229,7 @@ Func_e994e: ld a, [de] cp $ff jr z, .asm_e99a6 - ld [$d11d], a + ld [wd11e], a push bc push hl push de -- cgit v1.2.3 From 10f2d4e69db6c9fcc4d7c061720ab2bcc7874288 Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Mon, 23 May 2016 16:54:51 -0400 Subject: Yellow-ize evolution code --- engine/evolution.asm | 10 +++------- main.asm | 6 ++++-- scripts/rockethideout2.asm | 2 +- 3 files changed, 8 insertions(+), 10 deletions(-) diff --git a/engine/evolution.asm b/engine/evolution.asm index c65cc293..780d78e7 100755 --- a/engine/evolution.asm +++ b/engine/evolution.asm @@ -1,4 +1,4 @@ -EvolveMon: ; 7bde9 (1e:7de9) +EvolveMon: ; 5da70 (17:5a70) push hl push de push bc @@ -9,9 +9,7 @@ EvolveMon: ; 7bde9 (1e:7de9) xor a ld [wLowHealthAlarm], a ld [wChannelSoundIDs + CH4], a - dec a - ld [wNewSoundID], a - call PlaySound + call StopAllMusic ld a, $1 ld [H_AUTOBGTRANSFERENABLED], a ld a, SFX_TINK @@ -67,9 +65,7 @@ EvolveMon: ; 7bde9 (1e:7de9) ld a, [wEvoNewSpecies] .done ld [wWholeScreenPaletteMonSpecies], a - ld a, $ff - ld [wNewSoundID], a - call PlaySound + call StopAllMusic ld a, [wWholeScreenPaletteMonSpecies] call PlayCry ld c, 0 diff --git a/main.asm b/main.asm index 3fc6f370..988323fc 100755 --- a/main.asm +++ b/main.asm @@ -779,8 +779,10 @@ INCLUDE "engine/overworld/saffron_guards.asm" SECTION "bank17",ROMX,BANK[$17] dr $5c000,$5da70 -EvolveMon: ; 5da70 (17:5a70) - dr $5da70,$5df60 + +INCLUDE "engine/evolution.asm" + + dr $5db93,$5df60 SECTION "bank18",ROMX,BANK[$18] diff --git a/scripts/rockethideout2.asm b/scripts/rockethideout2.asm index 0b45967f..621e19e6 100755 --- a/scripts/rockethideout2.asm +++ b/scripts/rockethideout2.asm @@ -313,7 +313,7 @@ RocketHideout2Script3: ; 44fc2 (11:4fc2) ld [W_CURMAPSCRIPT], a ret -LoadSpinnerArrowTiles: ; 44fd7 (11:4fd7) +LoadSpinnerArrowTiles: ; 45077 (11:5077) ld a, [wSpriteStateData1 + 2] srl a srl a -- cgit v1.2.3 From 60ff6c25e36ea52d785f58dc62ce2357d082bef4 Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Tue, 24 May 2016 12:59:55 -0400 Subject: Printer error funcs --- engine/printer.asm | 139 ++++++++++++++++++++++++++++++++++++++++++++++++++--- macros.asm | 16 ++++++ wram.asm | 8 ++- 3 files changed, 154 insertions(+), 9 deletions(-) diff --git a/engine/printer.asm b/engine/printer.asm index bc6a07b3..0be02308 100755 --- a/engine/printer.asm +++ b/engine/printer.asm @@ -356,7 +356,7 @@ Func_e89e6: ld b, a ld a, [$caf4] sub b - ld hl, $c978 + ld hl, wPrinterTileBuffer ld de, $0028 .asm_e89f4 and a @@ -1078,19 +1078,142 @@ Func_e8eca: ; e8eca (3a:4eca) ret Func_e8efc: ; e8efc (3a:4efc) - dr $e8efc,$e8f09 + coord hl, 0, 0 + coord de, 0, 0, wPrinterTileBuffer + ld bc, SCREEN_HEIGHT * SCREEN_WIDTH + call CopyData + ret + Func_e8f09: ; e8f09 (3a:4f09) - dr $e8f09,$e8f16 + coord hl, 0, 0, wPrinterTileBuffer + coord de, 0, 0 + ld bc, SCREEN_HEIGHT * SCREEN_WIDTH + call CopyData + ret + Func_e8f16: ; e8f16 (3a:4f16) - dr $e8f16,$e8f24 + xor a + ld [hJoyLast], a + ld [hJoyReleased], a + ld [hJoyPressed], a + ld [hJoyHeld], a + ld [hJoy5], a + ld [hJoy6], a + ret + Func_e8f24: ; e8f24 (3a:4f24) - dr $e8f24,$e8f3b + call Func_e8f42 + ld a, [wAudioROMBank] + ld [wAudioSavedROMBank], a + ld a, BANK(Music_GBPrinter) + ld [wAudioROMBank], a + ld a, MUSIC_GB_PRINTER + ld [wNewSoundID], a + call PlaySound + ret + Func_e8f3b: ; e8f3b (3a:4f3b) - dr $e8f3b,$e8f51 + call Func_e8f42 + call PlayDefaultMusic + ret + +Func_e8f42: ; e8f42 (3a:4f42) + ld a, $4 + ld [wAudioFadeOutControl], a + call StopAllMusic +.asm_e8f4a + ld a, [wAudioFadeOutControl] + and a + jr nz, .asm_e8f4a + ret + Func_e8f51: ; e8f51 (3a:4f51) - dr $e8f51,$e8f82 + ld a, [$c970] + cp $81 + jr z, .asm_e8f62 + ld a, [$c971] + cp $ff + jr z, .asm_e8f7c + xor a + jr .asm_e8f7e + +.asm_e8f62 + ld a, [$c971] + and $e0 + ret z + bit 7, a + jr nz, .asm_e8f78 + bit 6, a + jr nz, .asm_e8f74 + ld a, 6 + jr .asm_e8f7e + +.asm_e8f74 + ld a, 7 + jr .asm_e8f7e + +.asm_e8f78 + ld a, 4 + jr .asm_e8f7e + +.asm_e8f7c + ld a, 5 +.asm_e8f7e + ld [wcae0], a + ret + Func_e8f82: ; e8f82 (3a:4f82) - dr $e8f82,$e910a + dr $e8f82,$e8fb8 + +String_e8fb8: + db "Press B to Cancel@" + +Table_e8fca: + dw String_e8fdc + dw String_e8fdd + dw String_e8ff0 + dw String_e9003 + dw String_e9014 + dw String_e9049 + dw String_e907e + dw String_e90b3 + dw String_e90e8 + +String_e8fdc: + db "@" +String_e8fdd: + db "" + next " CHECKING LINK...@" +String_e8ff0: + db "" + next " TRANSMITTING...@" +String_e9003: + db "" + next " PRINTING...@" +String_e9014: + db " Printer Error 1" + next "" + next "Check the Game Boy" + next "Printer Manual.@" +String_e9049: + db " Printer Error 2" + next "" + next "Check the Game Boy" + next "Printer Manual.@" +String_e907e: + db " Printer Error 3" + next "" + next "Check the Game Boy" + next "Printer Manual.@" +String_e90b3: + db " Printer Error 4" + next "" + next "Check the Game Boy" + next "Printer Manual.@" +String_e90e8: + db "This is not the" + next "Game Boy Printer!@" + Func_e910a: dr $e910a,$e925d diff --git a/macros.asm b/macros.asm index 06aa34a9..b71a5dd9 100644 --- a/macros.asm +++ b/macros.asm @@ -157,25 +157,41 @@ money equs "bcd3" ;\2 = X ;\3 = Y coord: MACRO +if _NARG >= 4 + ld \1, \4 + 20 * \3 + \2 +else ld \1, wTileMap + 20 * \3 + \2 +endc ENDM ;\1 = X ;\2 = Y aCoord: MACRO +if _NARG >= 3 + ld a, [\3 + 20 * \2 + \1] +else ld a, [wTileMap + 20 * \2 + \1] +endc ENDM ;\1 = X ;\2 = Y Coorda: MACRO +if _NARG >= 3 + ld [\3 + 20 * \2 + \1], a +else ld [wTileMap + 20 * \2 + \1], a +endc ENDM ;\1 = X ;\2 = Y dwCoord: MACRO +if _NARG >= 3 + dw \3 + 20 * \2 + \1 +else dw wTileMap + 20 * \2 + \1 +endc ENDM ;\1 = r diff --git a/wram.asm b/wram.asm index b8b0aa28..252f8012 100755 --- a/wram.asm +++ b/wram.asm @@ -286,7 +286,13 @@ wSerialEnemyMonsPatchList:: ; c5d0 wTempPic:: wOverworldMap:: ; c6e8 - ds 1300 + ; ds 1300 + ds $290 + +wPrinterTileBuffer:: ; c978 + ds SCREEN_HEIGHT * SCREEN_WIDTH +wcae0:: ; cae0 + ds 284 wRedrawRowOrColumnSrcTiles:: ; cbfc ; the tiles of the row or column to be redrawn by RedrawRowOrColumn -- cgit v1.2.3 From d7b38c75c336e2998d173dbd44a5010deeb34838 Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Tue, 24 May 2016 15:19:03 -0400 Subject: Finish disassembling printer functions --- engine/printer.asm | 111 ++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 110 insertions(+), 1 deletion(-) diff --git a/engine/printer.asm b/engine/printer.asm index 0be02308..95f70087 100755 --- a/engine/printer.asm +++ b/engine/printer.asm @@ -1215,7 +1215,115 @@ String_e90e8: next "Game Boy Printer!@" Func_e910a: - dr $e910a,$e925d + call GBPalWhiteOutWithDelay3 + call ClearScreen + ld de, SurfingPikachu2Graphics + ld hl, vChars2 + lb bc, BANK(SurfingPikachu2Graphics), (SurfingPikachu2GraphicsEnd - SurfingPikachu2Graphics) / $10 + call CopyVideoData + coord hl, 0, 0 + call Func_e91a9 + coord hl, 0, 17 + call Func_e91a9 + coord hl, 0, 0 + call Func_e91b5 + coord hl, 19, 0 + call Func_e91b5 + ld a, $04 + coord hl, 0, 0 + ld [hl], a + coord hl, 0, 17 + ld [hl], a + coord hl, 19, 0 + ld [hl], a + coord hl, 19, 17 + ld [hl], a + ld de, Data_e91c4 + coord hl, 10, 8 + lb bc, 3, 8 + call Func_e925d + ld de, Data_e91dc + coord hl, 2, 11 + lb bc, 6, 16 + call Func_e925d + ld de, String_e923c + coord hl, 3, 2 + call PlaceString + ld de, String_e924b + coord hl, 9, 4 + call PlaceString + ld de, String_e9256 + coord hl, 12, 6 + call PlaceString + ld de, wPlayerName + ld hl, wPlayerName + ld bc, 0 +.asm_e9182 + ld a, [hli] + inc c + cp "@" + jr nz, .asm_e9182 + ld a, 8 + sub c + jr nc, .asm_e918e + xor a +.asm_e918e + ld c, a + coord hl, 2, 4 + add hl, bc + call PlaceString + call Func_e926f + ld b, 8 + call RunPaletteCommand + ld a, $1 + ld [H_AUTOBGTRANSFERENABLED], a + call Delay3 + call GBPalNormal + ret + +Func_e91a9: + ld c, SCREEN_WIDTH / 2 +.asm_e91ab + ld [hl], $00 + inc hl + ld [hl], $01 + inc hl + dec c + jr nz, .asm_e91ab + ret + +Func_e91b5: + ld c, SCREEN_HEIGHT / 2 + ld de, SCREEN_WIDTH +.asm_e91ba + ld [hl], $02 + add hl, de + ld [hl], $03 + add hl, de + dec c + jr nz, .asm_e91ba + ret +Data_e91c4: + db $7f, $7f, $10, $11, $12, $13, $14, $15 + db $0f, $3c, $3d, $3e, $20, $21, $30, $31 + db $4c, $4d, $4e, $50, $34, $1a, $51, $2d + + +Data_e91dc: + db $7f, $7f, $7f, $7f, $7f, $7f, $16, $17, $18, $19, $7f, $1b, $1c, $1d, $1e, $1f + db $7f, $7f, $22, $23, $24, $25, $26, $27, $28, $29, $2a, $2b, $2c, $7f, $2e, $2f + db $7f, $7f, $32, $33, $33, $35, $36, $37, $38, $39, $3a, $3b, $7f, $7f, $7f, $3f + db $40, $41, $42, $43, $44, $45, $46, $47, $48, $49, $4a, $4b, $40, $40, $40, $4f + db $52, $52, $52, $53, $54, $55, $56, $57, $58, $59, $5a, $5b, $5c, $5d, $5d, $5e + db $7f, $7f, $7f, $05, $06, $07, $08, $09, $0a, $0b, $0c, $0d, $0e, $7f, $7f, $7f + + +String_e923c: + db "Pikachu's Beach@" +String_e924b: + db "'s Hi-Score@" +String_e9256: + db "Points@" Func_e925d: .asm_e925d @@ -1255,6 +1363,7 @@ Func_e927a: ret SurfingPikachu2Graphics: INCBIN "gfx/surfing_pikachu_2.2bpp" +SurfingPikachu2GraphicsEnd: Func_e988a: xor a -- cgit v1.2.3 From fdac1f9f80295eb4ce7c347f3e7626897a67826d Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Tue, 24 May 2016 16:02:32 -0400 Subject: Itemfinder and hidden item coords --- data/hidden_item_coords.asm | 111 ++++++++++++++++++++++---------------------- engine/items/itemfinder.asm | 4 +- main.asm | 20 ++++---- 3 files changed, 67 insertions(+), 68 deletions(-) diff --git a/data/hidden_item_coords.asm b/data/hidden_item_coords.asm index 54c785f5..051fdfe5 100755 --- a/data/hidden_item_coords.asm +++ b/data/hidden_item_coords.asm @@ -1,57 +1,58 @@ -HiddenItemCoords: ; 766b8 (1d:66b8) +HiddenItemCoords: ; 75faa (1d:5faa) ; map ID, then coords - db VIRIDIAN_FOREST,$12,$01 - db VIRIDIAN_FOREST,$2a,$10 - db MT_MOON_3,$0c,$12 - db ROUTE_25,$03,$26 - db ROUTE_9,$07,$0e - db SS_ANNE_6,$09,$0d - db SS_ANNE_10,$01,$03 - db ROUTE_10,$11,$09 - db ROUTE_10,$35,$10 - db ROCKET_HIDEOUT_1,$0f,$15 - db ROCKET_HIDEOUT_3,$11,$1b - db ROCKET_HIDEOUT_4,$01,$19 - db POKEMONTOWER_5,$0c,$04 - db ROUTE_13,$0e,$01 - db ROUTE_13,$0d,$10 - db MANSION_4,$09,$01 - db SAFARI_ZONE_ENTRANCE,$01,$0a - db SAFARI_ZONE_WEST,$05,$06 - db SILPH_CO_5F,$03,$0c - db SILPH_CO_9F,$0f,$02 - db COPYCATS_HOUSE_2F,$01,$01 - db UNKNOWN_DUNGEON_1,$0b,$0e - db UNKNOWN_DUNGEON_3,$03,$1b - db POWER_PLANT,$10,$11 - db POWER_PLANT,$01,$0c - db SEAFOAM_ISLANDS_3,$0f,$0f - db SEAFOAM_ISLANDS_5,$11,$19 - db MANSION_1,$10,$08 - db MANSION_3,$09,$01 - db ROUTE_23,$2c,$09 - db ROUTE_23,$46,$13 - db ROUTE_23,$5a,$08 - db VICTORY_ROAD_2,$02,$05 - db VICTORY_ROAD_2,$07,$1a - db $6f,$0b,$0e - db VIRIDIAN_CITY,$04,$0e - db ROUTE_11,$05,$30 - db ROUTE_12,$3f,$02 - db ROUTE_17,$0e,$0f - db ROUTE_17,$2d,$08 - db ROUTE_17,$48,$11 - db ROUTE_17,$5b,$04 - db ROUTE_17,$79,$08 - db UNDERGROUND_PATH_NS,$04,$03 - db UNDERGROUND_PATH_NS,$22,$04 - db UNDERGROUND_PATH_WE,$02,$0c - db UNDERGROUND_PATH_WE,$05,$15 - db CELADON_CITY,$0f,$30 - db ROUTE_25,$01,$0a - db MT_MOON_3,$09,$21 - db SEAFOAM_ISLANDS_4,$10,$09 - db VERMILION_CITY,$0b,$0e - db CERULEAN_CITY,$08,$0f - db ROUTE_4,$03,$28 + db SILPH_CO_5F, $03, $0c + db SILPH_CO_9F, $0f, $02 + db MANSION_3, $09, $01 + db MANSION_4, $09, $01 + db SAFARI_ZONE_WEST, $05, $06 + db UNKNOWN_DUNGEON_2, $0d, $10 + db UNKNOWN_DUNGEON_3, $0e, $08 + db UNUSED_MAP_6F, $0b, $0e + db SEAFOAM_ISLANDS_3, $0f, $0f + db SEAFOAM_ISLANDS_4, $10, $09 + db SEAFOAM_ISLANDS_5, $11, $19 + db VIRIDIAN_FOREST, $12, $01 + db VIRIDIAN_FOREST, $2a, $10 + db MT_MOON_3, $0c, $12 + db MT_MOON_3, $09, $21 + db SS_ANNE_10, $01, $03 + db SS_ANNE_6, $09, $0d + db UNDERGROUND_PATH_NS, $04, $03 + db UNDERGROUND_PATH_NS, $22, $04 + db UNDERGROUND_PATH_WE, $02, $0c + db UNDERGROUND_PATH_WE, $05, $15 + db ROCKET_HIDEOUT_1, $0f, $15 + db ROCKET_HIDEOUT_3, $11, $1b + db ROCKET_HIDEOUT_4, $01, $19 + db ROUTE_10, $11, $09 + db ROUTE_10, $35, $10 + db POWER_PLANT, $10, $11 + db POWER_PLANT, $01, $0c + db ROUTE_11, $05, $30 + db ROUTE_12, $3f, $02 + db ROUTE_13, $0e, $01 + db ROUTE_13, $0d, $10 + db ROUTE_17, $0e, $0f + db ROUTE_17, $2d, $08 + db ROUTE_17, $48, $11 + db ROUTE_17, $5b, $04 + db ROUTE_17, $79, $08 + db ROUTE_23, $2c, $09 + db ROUTE_23, $46, $13 + db ROUTE_23, $5a, $08 + db VICTORY_ROAD_2, $02, $05 + db VICTORY_ROAD_2, $07, $1a + db ROUTE_25, $03, $26 + db ROUTE_25, $01, $0a + db ROUTE_4, $03, $28 + db ROUTE_9, $07, $0e + db COPYCATS_HOUSE_2F, $01, $01 + db VIRIDIAN_CITY, $04, $0e + db CERULEAN_CITY, $08, $0f + db UNKNOWN_DUNGEON_1, $07, $12 + db POKEMONTOWER_5, $0c, $04 + db VERMILION_CITY, $0b, $0e + db CELADON_CITY, $0f, $30 + db SAFARI_ZONE_ENTRANCE, $01, $0a + db MANSION_1, $10, $08 db $ff diff --git a/engine/items/itemfinder.asm b/engine/items/itemfinder.asm index d638b0b8..7b479462 100755 --- a/engine/items/itemfinder.asm +++ b/engine/items/itemfinder.asm @@ -1,4 +1,4 @@ -HiddenItemNear: ; 7481f (1d:481f) +HiddenItemNear: ; 7405c (1d:405c) ld hl, HiddenItemCoords ld b, 0 .loop @@ -43,7 +43,7 @@ HiddenItemNear: ; 7481f (1d:481f) scf ret -Sub5ClampTo0: ; 7486b (1d:486b) +Sub5ClampTo0: ; 740a8 (1d:40a8) ; subtract 5 but clamp to 0 sub 5 cp $f0 diff --git a/main.asm b/main.asm index 988323fc..79b08454 100755 --- a/main.asm +++ b/main.asm @@ -835,12 +835,18 @@ INCLUDE "engine/save.asm" SECTION "bank1D",ROMX,BANK[$1D] dr $74000,$7405c -HiddenItemNear: ; 7405c (1d:405c) - dr $7405c,$74726 + +INCLUDE "engine/items/itemfinder.asm" + + dr $740af,$74726 VendingMachineMenu: ; 74726 (1d:4726) dr $74726,$75dfe PKMNLeaguePC: ; 75dfe (1d:5dfe) - dr $75dfe,$76177 + dr $75dfe,$75faa + +INCLUDE "data/hidden_item_coords.asm" + + dr $76050,$76177 SECTION "bank1E",ROMX,BANK[$1E] @@ -856,14 +862,6 @@ RedFishingTilesSide: INCBIN "gfx/red_fishing_tile_side.2bpp" RedFishingRodTiles: INCBIN "gfx/red_fishingrod_tiles.2bpp" INCLUDE "data/animations.asm" -;AttackAnimationPointers: ; 7a22a (1e:622a) -; dr $7a22a,$7a915 -;SubanimationPointers: ; 7a915 (1e:6915) -; dr $7a915,$7b11c -;FrameBlockPointers: ; 7b11c (1e:711c) -; dr $7b11c,$7be2d -;FrameBlockBaseCoords: ; 7be2d (1e:7e2d) -; dr $7be2d,$7c000 SECTION "bank2f",ROMX[$5000],BANK[$2F] -- cgit v1.2.3 From 219eddf056933c6e5f06903caa73d49de3118a60 Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Tue, 24 May 2016 17:41:33 -0400 Subject: Update hidden object functions and include them in main --- data/hidden_objects.asm | 606 +++++++++++++---------------------- engine/hidden_object_functions18.asm | 74 +++-- engine/overworld/hidden_objects.asm | 20 +- macros.asm | 4 + main.asm | 19 +- 5 files changed, 284 insertions(+), 439 deletions(-) diff --git a/data/hidden_objects.asm b/data/hidden_objects.asm index 8170cf5a..2750a8fa 100755 --- a/data/hidden_objects.asm +++ b/data/hidden_objects.asm @@ -1,244 +1,137 @@ -HiddenObjectMaps: ; 46a40 (11:6a40) - db REDS_HOUSE_2F - db BLUES_HOUSE - db OAKS_LAB - db VIRIDIAN_POKECENTER - db VIRIDIAN_MART - db VIRIDIAN_SCHOOL - db VIRIDIAN_GYM - db MUSEUM_1F - db PEWTER_GYM - db PEWTER_MART - db PEWTER_POKECENTER - db CERULEAN_POKECENTER - db CERULEAN_GYM - db CERULEAN_MART - db LAVENDER_POKECENTER - db VERMILION_POKECENTER - db VERMILION_GYM - db CELADON_MANSION_2 - db CELADON_POKECENTER - db CELADON_GYM - db GAME_CORNER - db CELADON_HOTEL - db FUCHSIA_POKECENTER - db FUCHSIA_GYM - db CINNABAR_GYM - db CINNABAR_POKECENTER - db SAFFRON_GYM - db MT_MOON_POKECENTER - db ROCK_TUNNEL_POKECENTER - db TRADE_CENTER - db COLOSSEUM - db VIRIDIAN_FOREST - db MT_MOON_3 - db INDIGO_PLATEAU - db ROUTE_25 - db ROUTE_9 - db SS_ANNE_6 - db SS_ANNE_10 - db ROCKET_HIDEOUT_1 - db ROCKET_HIDEOUT_3 - db ROCKET_HIDEOUT_4 - db SAFFRON_POKECENTER - db POKEMONTOWER_5 - db ROUTE_13 - db SAFARI_ZONE_ENTRANCE - db SAFARI_ZONE_WEST - db SILPH_CO_5F - db SILPH_CO_9F - db COPYCATS_HOUSE_2F - db UNKNOWN_DUNGEON_1 - db UNKNOWN_DUNGEON_3 - db POWER_PLANT - db SEAFOAM_ISLANDS_3 - db SEAFOAM_ISLANDS_5 - db MANSION_1 - db MANSION_3 - db ROUTE_23 - db VICTORY_ROAD_2 - db $6F - db BILLS_HOUSE - db VIRIDIAN_CITY - db SAFARI_ZONE_REST_HOUSE_2 - db SAFARI_ZONE_REST_HOUSE_3 - db SAFARI_ZONE_REST_HOUSE_4 - db ROUTE_15_GATE_2F - db LAVENDER_HOUSE_1 - db CELADON_MANSION_5 - db FIGHTING_DOJO - db ROUTE_10 - db INDIGO_PLATEAU_LOBBY - db CINNABAR_LAB_4 - db BIKE_SHOP - db ROUTE_11 - db ROUTE_12 - db MANSION_2 - db MANSION_4 - db SILPH_CO_11F - db ROUTE_17 - db UNDERGROUND_PATH_NS - db UNDERGROUND_PATH_WE - db CELADON_CITY - db SEAFOAM_ISLANDS_4 - db VERMILION_CITY - db CERULEAN_CITY - db ROUTE_4 +HiddenObjectMaps: ; f268d (3c:668d) + dbw SILPH_CO_11F, SilphCo11FHiddenObjects + dbw SILPH_CO_5F, SilphCo5FHiddenObjects + dbw SILPH_CO_9F, SilphCo9FHiddenObjects + dbw MANSION_2, Mansion2HiddenObjects + dbw MANSION_3, Mansion3HiddenObjects + dbw MANSION_4, Mansion4HiddenObjects + dbw SAFARI_ZONE_WEST, SafariZoneWestHiddenObjects + dbw UNKNOWN_DUNGEON_2, UnknownDungeon2HiddenObjects + dbw UNKNOWN_DUNGEON_3, UnknownDungeon3HiddenObjects + dbw UNUSED_MAP_6F, UnusedMap6FHiddenObjects + dbw SEAFOAM_ISLANDS_3, SeafoamIslands3HiddenObjects + dbw SEAFOAM_ISLANDS_4, SeafoamIslands4HiddenObjects + dbw SEAFOAM_ISLANDS_5, SeafoamIslands5HiddenObjects + dbw VIRIDIAN_FOREST, ViridianForestHiddenObjects + dbw MT_MOON_3, MtMoon3HiddenObjects + dbw SS_ANNE_10, SSAnne10HiddenObjects + dbw SS_ANNE_6, SSAnne6HiddenObjects + dbw UNDERGROUND_PATH_NS, UndergroundPathNsHiddenObjects + dbw UNDERGROUND_PATH_WE, UndergroundPathWeHiddenObjects + dbw ROCKET_HIDEOUT_1, RocketHideout1HiddenObjects + dbw ROCKET_HIDEOUT_3, RocketHideout3HiddenObjects + dbw ROCKET_HIDEOUT_4, RocketHideout4HiddenObjects + dbw ROUTE_10, Route10HiddenObjects + dbw ROCK_TUNNEL_POKECENTER, RockTunnelPokecenterHiddenObjects + dbw POWER_PLANT, PowerPlantHiddenObjects + dbw ROUTE_11, Route11HiddenObjects + dbw ROUTE_12, Route12HiddenObjects + dbw ROUTE_13, Route13HiddenObjects + dbw ROUTE_15_GATE_2F, Route15Gate2FHiddenObjects + dbw ROUTE_17, Route17HiddenObjects + dbw ROUTE_23, Route23HiddenObjects + dbw VICTORY_ROAD_2, VictoryRoad2HiddenObjects + dbw ROUTE_25, Route25HiddenObjects + dbw BILLS_HOUSE, BillsHouseHiddenObjects + dbw ROUTE_4, Route4HiddenObjects + dbw MT_MOON_POKECENTER, MtMoonPokecenterHiddenObjects + dbw ROUTE_9, Route9HiddenObjects + dbw TRADE_CENTER, TradeCenterHiddenObjects + dbw COLOSSEUM, ColosseumHiddenObjects + dbw INDIGO_PLATEAU, IndigoPlateauHiddenObjects + dbw INDIGO_PLATEAU_LOBBY, IndigoPlateauLobbyHiddenObjects + dbw COPYCATS_HOUSE_2F, CopycatsHouse2FHiddenObjects + dbw FIGHTING_DOJO, FightingDojoHiddenObjects + dbw SAFFRON_GYM, SaffronGymHiddenObjects + dbw SAFFRON_POKECENTER, SaffronPokecenterHiddenObjects + dbw REDS_HOUSE_2F, RedsHouse2FHiddenObjects + dbw BLUES_HOUSE, BluesHouseHiddenObjects + dbw OAKS_LAB, OaksLabHiddenObjects + dbw VIRIDIAN_CITY, ViridianCityHiddenObjects + dbw VIRIDIAN_POKECENTER, ViridianPokecenterHiddenObjects + dbw VIRIDIAN_SCHOOL, ViridianSchoolHiddenObjects + dbw VIRIDIAN_GYM, ViridianGymHiddenObjects + dbw MUSEUM_1F, Museum1FHiddenObjects + dbw PEWTER_GYM, PewterGymHiddenObjects + dbw PEWTER_POKECENTER, PewterPokecenterHiddenObjects + dbw CERULEAN_CITY, CeruleanCityHiddenObjects + dbw CERULEAN_POKECENTER, CeruleanPokecenterHiddenObjects + dbw CERULEAN_GYM, CeruleanGymHiddenObjects + dbw BIKE_SHOP, BikeShopHiddenObjects + dbw UNKNOWN_DUNGEON_1, UnknownDungeon1HiddenObjects + dbw LAVENDER_POKECENTER, LavenderPokecenterHiddenObjects + dbw POKEMONTOWER_5, Pokemontower5HiddenObjects + dbw LAVENDER_HOUSE_1, LavenderHouse1HiddenObjects + dbw VERMILION_CITY, VermilionCityHiddenObjects + dbw VERMILION_POKECENTER, VermilionPokecenterHiddenObjects + dbw POKEMON_FAN_CLUB, PokemonFanClubHiddenObjects + dbw VERMILION_GYM, VermilionGymHiddenObjects + dbw CELADON_CITY, CeladonCityHiddenObjects + dbw CELADON_HOTEL, CeladonHotelHiddenObjects + dbw CELADON_MANSION_2, CeladonMansion2HiddenObjects + dbw CELADON_MANSION_5, CeladonMansion5HiddenObjects + dbw CELADON_POKECENTER, CeladonPokecenterHiddenObjects + dbw CELADON_GYM, CeladonGymHiddenObjects + dbw GAME_CORNER, GameCornerHiddenObjects + dbw FUCHSIA_POKECENTER, FuchsiaPokecenterHiddenObjects + dbw SAFARI_ZONE_ENTRANCE, SafariZoneEntranceHiddenObjects + dbw FUCHSIA_GYM, FuchsiaGymHiddenObjects + dbw MANSION_1, Mansion1HiddenObjects + dbw CINNABAR_GYM, CinnabarGymHiddenObjects + dbw CINNABAR_LAB_4, CinnabarLab4HiddenObjects + dbw CINNABAR_POKECENTER, CinnabarPokecenterHiddenObjects db $FF -HiddenObjectPointers: ; 46a96 (11:6a96) -; each of these pointers is for the corresponding map in HiddenObjectMaps - dw RedsHouse2FHiddenObjects - dw BluesHouseHiddenObjects - dw OaksLabHiddenObjects - dw ViridianPokecenterHiddenObjects - dw ViridianMartHiddenObjects - dw ViridianSchoolHiddenObjects - dw ViridianGymHiddenObjects - dw Museum1FHiddenObjects - dw PewterGymHiddenObjects - dw PewterMartHiddenObjects - dw PewterPokecenterHiddenObjects - dw CeruleanPokecenterHiddenObjects - dw CeruleanGymHiddenObjects - dw CeruleanMartHiddenObjects - dw LavenderPokecenterHiddenObjects - dw VermilionPokecenterHiddenObjects - dw VermilionGymHiddenObjects - dw CeladonMansion2HiddenObjects - dw CeladonPokecenterHiddenObjects - dw CeladonGymHiddenObjects - dw GameCornerHiddenObjects - dw CeladonHotelHiddenObjects - dw FuchsiaPokecenterHiddenObjects - dw FuchsiaGymHiddenObjects - dw CinnabarGymHiddenObjects - dw CinnabarPokecenterHiddenObjects - dw SaffronGymHiddenObjects - dw MtMoonPokecenterHiddenObjects - dw RockTunnelPokecenterHiddenObjects - dw TradeCenterHiddenObjects - dw ColosseumHiddenObjects - dw ViridianForestHiddenObjects - dw MtMoon3HiddenObjects - dw IndigoPlateauHiddenObjects - dw Route25HiddenObjects - dw Route9HiddenObjects - dw SSAnne6HiddenObjects - dw SSAnne10HiddenObjects - dw RocketHideout1HiddenObjects - dw RocketHideout3HiddenObjects - dw RocketHideout4HiddenObjects - dw SaffronPokecenterHiddenObjects - dw PokemonTower5HiddenObjects - dw Route13HiddenObjects - dw SafariZoneEntranceHiddenObjects - dw SafariZoneWestHiddenObjects - dw SilphCo5FHiddenObjects - dw SilphCo9FHiddenObjects - dw CopycatsHouse2FHiddenObjects - dw UnknownDungeon1HiddenObjects - dw UnknownDungeon3HiddenObjects - dw PowerPlantHiddenObjects - dw SeafoamIslands3HiddenObjects - dw SeafoamIslands5HiddenObjects - dw Mansion1HiddenObjects - dw Mansion3HiddenObjects - dw Route23HiddenObjects - dw VictoryRoad2HiddenObjects - dw Unused6FHiddenObjects - dw BillsHouseHiddenObjects - dw ViridianCityHiddenObjects - dw SafariZoneRestHouse2HiddenObjects - dw SafariZoneRestHouse3HiddenObjects - dw SafariZoneRestHouse4HiddenObjects - dw Route15GateUpstairsHiddenObjects - dw LavenderHouse1HiddenObjects - dw CeladonMansion5HiddenObjects - dw FightingDojoHiddenObjects - dw Route10HiddenObjects - dw IndigoPlateauLobbyHiddenObjects - dw CinnabarLab4HiddenObjects - dw BikeShopHiddenObjects - dw Route11HiddenObjects - dw Route12HiddenObjects - dw Mansion2HiddenObjects - dw Mansion4HiddenObjects - dw SilphCo11FHiddenObjects - dw Route17HiddenObjects - dw UndergroundPathNsHiddenObjects - dw UndergroundPathWeHiddenObjects - dw CeladonCityHiddenObjects - dw SeafoamIslands4HiddenObjects - dw VermilionCityHiddenObjects - dw CeruleanCityHiddenObjects - dw Route4HiddenObjects - ; format: y-coord, x-coord, text id/item id, object routine TradeCenterHiddenObjects: ; 46b40 (11:6b40) db $04,$05,$d0 - db BANK(CableClubRightGameboy) - dw CableClubRightGameboy + dba CableClubRightGameboy db $04,$04,$d0 - db BANK(CableClubLeftGameboy) - dw CableClubLeftGameboy + dba CableClubLeftGameboy db $FF ColosseumHiddenObjects: ; 46b4d (11:6b4d) db $04,$05,$d0 - db BANK(CableClubRightGameboy) - dw CableClubRightGameboy + dba CableClubRightGameboy db $04,$04,$d0 - db BANK(CableClubLeftGameboy) - dw CableClubLeftGameboy + dba CableClubLeftGameboy db $FF RedsHouse2FHiddenObjects: ; 46b5a (11:6b5a) db $01,$00,$04 - dbw BANK(OpenRedsPC), OpenRedsPC + dba OpenRedsPC db $05,$03,$d0 - dbw BANK(PrintRedsNESText), PrintRedsNESText + dba PrintRedsNESText db $FF BluesHouseHiddenObjects: ; 46b67 (11:6b67) db $01,$00,$04 - db BANK(PrintBookcaseText) - dw PrintBookcaseText + dba PrintBookcaseText db $01,$01,$04 - db BANK(PrintBookcaseText) - dw PrintBookcaseText + dba PrintBookcaseText db $01,$07,$04 - db BANK(PrintBookcaseText) - dw PrintBookcaseText + dba PrintBookcaseText db $FF OaksLabHiddenObjects: ; 46b7a (11:6b7a) db $00,$04,$04 - db BANK(DisplayOakLabLeftPoster) - dw DisplayOakLabLeftPoster + dba DisplayOakLabLeftPoster db $00,$05,$04 - db BANK(DisplayOakLabRightPoster) - dw DisplayOakLabRightPoster + dba DisplayOakLabRightPoster db $01,$00,$04 - db BANK(DisplayOakLabEmailText) - dw DisplayOakLabEmailText + dba DisplayOakLabEmailText db $01,$01,$04 - db BANK(DisplayOakLabEmailText) - dw DisplayOakLabEmailText + dba DisplayOakLabEmailText db $FF ViridianPokecenterHiddenObjects: ; 46b93 (11:6b93) db $04,$00,$08 - db Bank(PrintBenchGuyText) - dw PrintBenchGuyText + dba PrintBenchGuyText db $03,$0d,$04 - db BANK(OpenPokemonCenterPC) - dw OpenPokemonCenterPC + dba OpenPokemonCenterPC db $FF ViridianMartHiddenObjects: ; 46ba0 (11:6ba0) db $FF ViridianSchoolHiddenObjects: ; 46ba1 (11:6ba1) db $04,$03,(ViridianSchoolNotebook_id - TextPredefs) / 2 + 1 - db Bank(PrintNotebookText) - dw PrintNotebookText + dba PrintNotebookText db $00,$03,(ViridianSchoolBlackboard_id - TextPredefs) / 2 + 1 - db BANK(PrintBlackboardLinkCableText) - dw PrintBlackboardLinkCableText + dba PrintBlackboardLinkCableText db $FF ViridianGymHiddenObjects: ; 46bae (11:6bae) db $0f,$0f,$04 @@ -248,9 +141,9 @@ ViridianGymHiddenObjects: ; 46bae (11:6bae) db $FF Museum1FHiddenObjects: ; 46bbb (11:6bbb) db $03,$02,$04 - dbw BANK(AerodactylFossil), AerodactylFossil + dba AerodactylFossil db $06,$02,$04 - dbw BANK(KabutopsFossil), KabutopsFossil + dba KabutopsFossil db $FF PewterGymHiddenObjects: ; 46bc8 (11:6bc8) db $0a,$03,$04 @@ -262,19 +155,15 @@ PewterMartHiddenObjects: ; 46bd5 (11:6bd5) db $FF PewterPokecenterHiddenObjects: ; 46bd6 (11:6bd6) db $04,$00,$08 - db Bank(PrintBenchGuyText) - dw PrintBenchGuyText + dba PrintBenchGuyText db $03,$0d,$04 - db BANK(OpenPokemonCenterPC) - dw OpenPokemonCenterPC + dba OpenPokemonCenterPC db $FF CeruleanPokecenterHiddenObjects: ; 46be3 (11:6be3) db $04,$00,$08 - db Bank(PrintBenchGuyText) - dw PrintBenchGuyText + dba PrintBenchGuyText db $03,$0d,$04 - db BANK(OpenPokemonCenterPC) - dw OpenPokemonCenterPC + dba OpenPokemonCenterPC db $FF CeruleanGymHiddenObjects: ; 46bf0 (11:6bf0) db $0b,$03,$04 @@ -286,70 +175,63 @@ CeruleanMartHiddenObjects: ; 46bfd (11:6bfd) db $FF LavenderPokecenterHiddenObjects: ; 46bfe (11:6bfe) db $04,$00,$08 - db Bank(PrintBenchGuyText) - dw PrintBenchGuyText + dba PrintBenchGuyText db $03,$0d,$04 - db BANK(OpenPokemonCenterPC) - dw OpenPokemonCenterPC + dba OpenPokemonCenterPC db $FF VermilionPokecenterHiddenObjects: ; 46c0b (11:6c0b) db $03,$0d,$04 - db BANK(OpenPokemonCenterPC) - dw OpenPokemonCenterPC + dba OpenPokemonCenterPC db $04,$00,$04 - db Bank(PrintBenchGuyText) - dw PrintBenchGuyText + dba PrintBenchGuyText db $FF VermilionGymHiddenObjects: ; 46c18 (11:6c18) db $0e,$03,$04 - dbw BANK(GymStatues), GymStatues + dba GymStatues db $0e,$06,$04 - dbw BANK(GymStatues), GymStatues + dba GymStatues db $01,$06,$00 - dbw BANK(PrintTrashText), PrintTrashText + dba PrintTrashText db $07,$01,$00 - dbw BANK(GymTrashScript), GymTrashScript + dba GymTrashScript db $09,$01,$01 - dbw BANK(GymTrashScript), GymTrashScript + dba GymTrashScript db $0b,$01,$02 - dbw BANK(GymTrashScript), GymTrashScript + dba GymTrashScript db $07,$03,$03 - dbw BANK(GymTrashScript), GymTrashScript + dba GymTrashScript db $09,$03,$04 - dbw BANK(GymTrashScript), GymTrashScript + dba GymTrashScript db $0b,$03,$05 - dbw BANK(GymTrashScript), GymTrashScript + dba GymTrashScript db $07,$05,$06 - dbw BANK(GymTrashScript), GymTrashScript + dba GymTrashScript db $09,$05,$07 - dbw BANK(GymTrashScript), GymTrashScript + dba GymTrashScript db $0b,$05,$08 - dbw BANK(GymTrashScript), GymTrashScript + dba GymTrashScript db $07,$07,$09 - dbw BANK(GymTrashScript), GymTrashScript + dba GymTrashScript db $09,$07,$0a - dbw BANK(GymTrashScript), GymTrashScript + dba GymTrashScript db $0b,$07,$0b - dbw BANK(GymTrashScript), GymTrashScript + dba GymTrashScript db $07,$09,$0c - dbw BANK(GymTrashScript), GymTrashScript + dba GymTrashScript db $09,$09,$0d - dbw BANK(GymTrashScript), GymTrashScript + dba GymTrashScript db $0b,$09,$0e - dbw BANK(GymTrashScript), GymTrashScript + dba GymTrashScript db $FF CeladonMansion2HiddenObjects: ; 46c85 (11:6c85) db $05,$00,$04 - db BANK(OpenPokemonCenterPC) - dw OpenPokemonCenterPC + dba OpenPokemonCenterPC db $FF CeladonPokecenterHiddenObjects: ; 46c8c (11:6c8c) db $04,$00,$08 - db Bank(PrintBenchGuyText) - dw PrintBenchGuyText + dba PrintBenchGuyText db $03,$0d,$04 - db BANK(OpenPokemonCenterPC) - dw OpenPokemonCenterPC + dba OpenPokemonCenterPC db $FF CeladonGymHiddenObjects: ; 46c99 (11:6c99) db $0f,$03,$04 @@ -359,77 +241,77 @@ CeladonGymHiddenObjects: ; 46c99 (11:6c99) db $FF GameCornerHiddenObjects: ; 46ca6 (11:6ca6) db $0f,$12,$d0 - dbw BANK(StartSlotMachine), StartSlotMachine + dba StartSlotMachine db $0e,$12,$d0 - dbw BANK(StartSlotMachine), StartSlotMachine + dba StartSlotMachine db $0d,$12,$d0 - dbw BANK(StartSlotMachine), StartSlotMachine + dba StartSlotMachine db $0c,$12,$d0 - dbw BANK(StartSlotMachine), StartSlotMachine + dba StartSlotMachine db $0b,$12,$d0 - dbw BANK(StartSlotMachine), StartSlotMachine + dba StartSlotMachine db $0a,$12,$ff ; "Someone's Keys" - dbw BANK(StartSlotMachine), StartSlotMachine + dba StartSlotMachine db $0a,$0d,$d0 - dbw BANK(StartSlotMachine), StartSlotMachine + dba StartSlotMachine db $0b,$0d,$d0 - dbw BANK(StartSlotMachine), StartSlotMachine + dba StartSlotMachine db $0c,$0d,$fe ; "Out To Lunch" - dbw BANK(StartSlotMachine), StartSlotMachine + dba StartSlotMachine db $0d,$0d,$d0 - dbw BANK(StartSlotMachine), StartSlotMachine + dba StartSlotMachine db $0e,$0d,$d0 - dbw BANK(StartSlotMachine), StartSlotMachine + dba StartSlotMachine db $0f,$0d,$d0 - dbw BANK(StartSlotMachine), StartSlotMachine + dba StartSlotMachine db $0f,$0c,$d0 - dbw BANK(StartSlotMachine), StartSlotMachine + dba StartSlotMachine db $0e,$0c,$d0 - dbw BANK(StartSlotMachine), StartSlotMachine + dba StartSlotMachine db $0d,$0c,$d0 - dbw BANK(StartSlotMachine), StartSlotMachine + dba StartSlotMachine db $0c,$0c,$d0 - dbw BANK(StartSlotMachine), StartSlotMachine + dba StartSlotMachine db $0b,$0c,$d0 - dbw BANK(StartSlotMachine), StartSlotMachine + dba StartSlotMachine db $0a,$0c,$d0 - dbw BANK(StartSlotMachine), StartSlotMachine + dba StartSlotMachine db $0a,$07,$d0 - dbw BANK(StartSlotMachine), StartSlotMachine + dba StartSlotMachine db $0b,$07,$d0 - dbw BANK(StartSlotMachine), StartSlotMachine + dba StartSlotMachine db $0c,$07,$d0 - dbw BANK(StartSlotMachine), StartSlotMachine + dba StartSlotMachine db $0d,$07,$d0 - dbw BANK(StartSlotMachine), StartSlotMachine + dba StartSlotMachine db $0e,$07,$d0 - dbw BANK(StartSlotMachine), StartSlotMachine + dba StartSlotMachine db $0f,$07,$d0 - dbw BANK(StartSlotMachine), StartSlotMachine + dba StartSlotMachine db $0f,$06,$d0 - dbw BANK(StartSlotMachine), StartSlotMachine + dba StartSlotMachine db $0e,$06,$d0 - dbw BANK(StartSlotMachine), StartSlotMachine + dba StartSlotMachine db $0d,$06,$d0 - dbw BANK(StartSlotMachine), StartSlotMachine + dba StartSlotMachine db $0c,$06,$fd ; "Out Of Order" - dbw BANK(StartSlotMachine), StartSlotMachine + dba StartSlotMachine db $0b,$06,$d0 - dbw BANK(StartSlotMachine), StartSlotMachine + dba StartSlotMachine db $0a,$06,$d0 - dbw BANK(StartSlotMachine), StartSlotMachine + dba StartSlotMachine db $0a,$01,$d0 - dbw BANK(StartSlotMachine), StartSlotMachine + dba StartSlotMachine db $0b,$01,$d0 - dbw BANK(StartSlotMachine), StartSlotMachine + dba StartSlotMachine db $0c,$01,$d0 - dbw BANK(StartSlotMachine), StartSlotMachine + dba StartSlotMachine db $0d,$01,$d0 - dbw BANK(StartSlotMachine), StartSlotMachine + dba StartSlotMachine db $0e,$01,$d0 - dbw BANK(StartSlotMachine), StartSlotMachine + dba StartSlotMachine db $0f,$01,$d0 - dbw BANK(StartSlotMachine), StartSlotMachine + dba StartSlotMachine db $08,$00,COIN+10 dbw BANK(HiddenCoins),HiddenCoins db $10,$01,COIN+10 @@ -457,19 +339,15 @@ GameCornerHiddenObjects: ; 46ca6 (11:6ca6) db $FF CeladonHotelHiddenObjects: ; 46dc7 (11:6dc7) db $03,$0d,$04 - db BANK(OpenPokemonCenterPC) - dw OpenPokemonCenterPC + dba OpenPokemonCenterPC db $04,$00,$08 - db Bank(PrintBenchGuyText) - dw PrintBenchGuyText + dba PrintBenchGuyText db $FF FuchsiaPokecenterHiddenObjects: ; 46dd4 (11:6dd4) db $03,$0d,$04 - db BANK(OpenPokemonCenterPC) - dw OpenPokemonCenterPC + dba OpenPokemonCenterPC db $04,$00,$04 - db Bank(PrintBenchGuyText) - dw PrintBenchGuyText + dba PrintBenchGuyText db $FF FuchsiaGymHiddenObjects: ; 46de1 (11:6de1) db $0f,$03,$04 @@ -481,31 +359,23 @@ CinnabarGymHiddenObjects: ; 46dee (11:6dee) db $0d,$11,$04 dbw BANK(GymStatues),GymStatues db $07,$0f,$01 - db Bank(PrintCinnabarQuiz) - dw PrintCinnabarQuiz + dba PrintCinnabarQuiz db $01,$0a,$12 - db Bank(PrintCinnabarQuiz) - dw PrintCinnabarQuiz + dba PrintCinnabarQuiz db $07,$09,$13 - db Bank(PrintCinnabarQuiz) - dw PrintCinnabarQuiz + dba PrintCinnabarQuiz db $0d,$09,$14 - db Bank(PrintCinnabarQuiz) - dw PrintCinnabarQuiz + dba PrintCinnabarQuiz db $0d,$01,$05 - db Bank(PrintCinnabarQuiz) - dw PrintCinnabarQuiz + dba PrintCinnabarQuiz db $07,$01,$16 - db Bank(PrintCinnabarQuiz) - dw PrintCinnabarQuiz + dba PrintCinnabarQuiz db $FF CinnabarPokecenterHiddenObjects: ; 46e19 (11:6e19) db $04,$00,$04 - db Bank(PrintBenchGuyText) - dw PrintBenchGuyText + dba PrintBenchGuyText db $03,$0d,$04 - db BANK(OpenPokemonCenterPC) - dw OpenPokemonCenterPC + dba OpenPokemonCenterPC db $FF SaffronGymHiddenObjects: ; 46e26 (11:6e26) db $0f,$09,$04 @@ -513,19 +383,15 @@ SaffronGymHiddenObjects: ; 46e26 (11:6e26) db $FF MtMoonPokecenterHiddenObjects: ; 46e2d (11:6e2d) db $04,$00,$08 - db Bank(PrintBenchGuyText) - dw PrintBenchGuyText + dba PrintBenchGuyText db $03,$0d,$04 - db BANK(OpenPokemonCenterPC) - dw OpenPokemonCenterPC + dba OpenPokemonCenterPC db $FF RockTunnelPokecenterHiddenObjects: ; 46e3a (11:6e3a) db $04,$00,$08 - db Bank(PrintBenchGuyText) - dw PrintBenchGuyText + dba PrintBenchGuyText db $03,$0d,$04 - db BANK(OpenPokemonCenterPC) - dw OpenPokemonCenterPC + dba OpenPokemonCenterPC db $FF ViridianForestHiddenObjects: ; 46e47 (11:6e47) db $12,$01,POTION @@ -541,11 +407,9 @@ MtMoon3HiddenObjects: ; 46e54 (11:6e54) db $FF IndigoPlateauHiddenObjects: ; 46e61 (11:6e61) db $0d,$08,$ff - db BANK(PrintIndigoPlateauHQText) - dw PrintIndigoPlateauHQText + dba PrintIndigoPlateauHQText db $0d,$0b,$00 - db BANK(PrintIndigoPlateauHQText) - dw PrintIndigoPlateauHQText + dba PrintIndigoPlateauHQText db $FF Route25HiddenObjects: ; 46e6e (11:6e6e) db $03,$26,ETHER @@ -559,9 +423,9 @@ Route9HiddenObjects: ; 46e7b (11:6e7b) db $FF SSAnne6HiddenObjects: ; 46e82 (11:6e82) db $05,$0d,$00 - dbw BANK(PrintTrashText), PrintTrashText + dba PrintTrashText db $07,$0d,$00 - dbw BANK(PrintTrashText), PrintTrashText + dba PrintTrashText db $09,$0d,GREAT_BALL dbw BANK(HiddenItems),HiddenItems db $FF @@ -589,11 +453,9 @@ RocketHideout4HiddenObjects: ; 46eb7 (11:6eb7) db $FF SaffronPokecenterHiddenObjects: ; 46ebe (11:6ebe) db $04,$00,$04 - db Bank(PrintBenchGuyText) - dw PrintBenchGuyText + dba PrintBenchGuyText db $03,$0d,$04 - db BANK(OpenPokemonCenterPC) - dw OpenPokemonCenterPC + dba OpenPokemonCenterPC db $FF PokemonTower5HiddenObjects: ; 46ecb (11:6ecb) db $0c,$04,ELIXER @@ -651,30 +513,25 @@ Mansion1HiddenObjects: ; 46f2b (11:6f2b) db $10,$08,MOON_STONE dbw BANK(HiddenItems),HiddenItems db $05,$02,$04 - db BANK(Mansion1Script_Switches) - dw Mansion1Script_Switches + dba Mansion1Script_Switches db $FF Mansion2HiddenObjects: ; 46f38 (11:6f38) db $0b,$02,$04 - db BANK(Mansion2Script_Switches) - dw Mansion2Script_Switches + dba Mansion2Script_Switches db $FF Mansion3HiddenObjects: ; 46f3f (11:6f3f) db $09,$01,MAX_REVIVE dbw BANK(HiddenItems),HiddenItems db $05,$0a,$04 - db BANK(Mansion3Script_Switches) - dw Mansion3Script_Switches + dba Mansion3Script_Switches db $FF Mansion4HiddenObjects: ; 46f4c (11:6f4c) db $09,$01,RARE_CANDY dbw BANK(HiddenItems),HiddenItems db $03,$14,$04 - db BANK(Mansion4Script_Switches) - dw Mansion4Script_Switches + dba Mansion4Script_Switches db $19,$12,$04 - db BANK(Mansion4Script_Switches) - dw Mansion4Script_Switches + dba Mansion4Script_Switches db $FF Route23HiddenObjects: ; 46f5f (11:6f5f) db $2c,$09,FULL_RESTORE @@ -696,7 +553,7 @@ Unused6FHiddenObjects: ; 46f7f (11:6f7f) db $FF BillsHouseHiddenObjects: ; 46f86 (11:6f86) db $04,$01,$04 - dbw BANK(BillsHousePC), BillsHousePC + dba BillsHousePC db $FF ViridianCityHiddenObjects: ; 46f8d (11:6f8d) db $04,$0e,POTION @@ -704,95 +561,75 @@ ViridianCityHiddenObjects: ; 46f8d (11:6f8d) db $FF SafariZoneRestHouse2HiddenObjects: ; 46f94 (11:6f94) db $04,$00,$08 - db Bank(PrintBenchGuyText) - dw PrintBenchGuyText + dba PrintBenchGuyText db $03,$0d,$04 - db BANK(OpenPokemonCenterPC) - dw OpenPokemonCenterPC + dba OpenPokemonCenterPC db $FF SafariZoneRestHouse3HiddenObjects: ; 46fa1 (11:6fa1) db $04,$00,$08 - db Bank(PrintBenchGuyText) - dw PrintBenchGuyText + dba PrintBenchGuyText db $03,$0d,$04 - db BANK(OpenPokemonCenterPC) - dw OpenPokemonCenterPC + dba OpenPokemonCenterPC db $FF SafariZoneRestHouse4HiddenObjects: ; 46fae (11:6fae) db $04,$00,$08 - db Bank(PrintBenchGuyText) - dw PrintBenchGuyText + dba PrintBenchGuyText db $03,$0d,$04 - db BANK(OpenPokemonCenterPC) - dw OpenPokemonCenterPC + dba OpenPokemonCenterPC db $FF Route15GateUpstairsHiddenObjects: ; 46fbb (11:6fbb) db $02,$01,$04 - db BANK(Route15GateLeftBinoculars) - dw Route15GateLeftBinoculars + dba Route15GateLeftBinoculars db $FF LavenderHouse1HiddenObjects: ; 46fc2 (11:6fc2) db $01,$00,$00 - db BANK(PrintMagazinesText) - dw PrintMagazinesText + dba PrintMagazinesText db $01,$01,$00 - db BANK(PrintMagazinesText) - dw PrintMagazinesText + dba PrintMagazinesText db $01,$07,$00 - db BANK(PrintMagazinesText) - dw PrintMagazinesText + dba PrintMagazinesText db $FF CeladonMansion5HiddenObjects: ; 46fd5 (11:6fd5) db $00,$03,(LinkCableHelp_id - TextPredefs) / 2 + 1 - db BANK(PrintBlackboardLinkCableText) - dw PrintBlackboardLinkCableText + dba PrintBlackboardLinkCableText db $00,$04,(LinkCableHelp_id - TextPredefs) / 2 + 1 - db BANK(PrintBlackboardLinkCableText) - dw PrintBlackboardLinkCableText + dba PrintBlackboardLinkCableText db $04,$03,(TMNotebook_id - TextPredefs) / 2 + 1 - db Bank(PrintNotebookText) - dw PrintNotebookText + dba PrintNotebookText db $FF FightingDojoHiddenObjects: ; 46fe8 (11:6fe8) db $09,$03,$04 - db BANK(PrintFightingDojoText) - dw PrintFightingDojoText + dba PrintFightingDojoText db $09,$06,$04 - db BANK(PrintFightingDojoText) - dw PrintFightingDojoText + dba PrintFightingDojoText db $00,$04,$04 - db BANK(PrintFightingDojoText2) - dw PrintFightingDojoText2 + dba PrintFightingDojoText2 db $00,$05,$04 - db BANK(PrintFightingDojoText3) - dw PrintFightingDojoText3 + dba PrintFightingDojoText3 db $FF IndigoPlateauLobbyHiddenObjects: ; 47001 (11:7001) db $07,$0f,$04 - db BANK(OpenPokemonCenterPC) - dw OpenPokemonCenterPC + dba OpenPokemonCenterPC db $FF CinnabarLab4HiddenObjects: ; 47008 (11:7008) db $04,$00,$04 - db BANK(OpenPokemonCenterPC) - dw OpenPokemonCenterPC + dba OpenPokemonCenterPC db $04,$02,$04 - db BANK(OpenPokemonCenterPC) - dw OpenPokemonCenterPC + dba OpenPokemonCenterPC db $FF BikeShopHiddenObjects: ; 47015 (11:7015) db $00,$01,$d0 - dbw BANK(PrintNewBikeText), PrintNewBikeText + dba PrintNewBikeText db $01,$02,$d0 - dbw BANK(PrintNewBikeText), PrintNewBikeText + dba PrintNewBikeText db $02,$01,$d0 - dbw BANK(PrintNewBikeText), PrintNewBikeText + dba PrintNewBikeText db $02,$03,$d0 - dbw BANK(PrintNewBikeText), PrintNewBikeText + dba PrintNewBikeText db $04,$00,$d0 - dbw BANK(PrintNewBikeText), PrintNewBikeText + dba PrintNewBikeText db $05,$01,$d0 - dbw BANK(PrintNewBikeText), PrintNewBikeText + dba PrintNewBikeText db $FF Route11HiddenObjects: ; 4703a (11:703a) db $05,$30,ESCAPE_ROPE @@ -804,8 +641,7 @@ Route12HiddenObjects: ; 47041 (11:7041) db $FF SilphCo11FHiddenObjects: ; 47048 (11:7048) db $0c,$0a,$04 - db BANK(OpenPokemonCenterPC) - dw OpenPokemonCenterPC + dba OpenPokemonCenterPC db $FF Route17HiddenObjects: ; 4704f (11:704f) db $0e,$0f,RARE_CANDY diff --git a/engine/hidden_object_functions18.asm b/engine/hidden_object_functions18.asm index ab66a818..9d19dd7c 100755 --- a/engine/hidden_object_functions18.asm +++ b/engine/hidden_object_functions18.asm @@ -1,4 +1,4 @@ -GymStatues: ; 62419 (18:6419) +GymStatues: ; 625e8 (18:65e8) ; if in a gym and have the corresponding badge, a = GymStatueText2_id and jp PrintPredefTextID ; if in a gym and don’t have the corresponding badge, a = GymStatueText1_id and jp PrintPredefTextID ; else ret @@ -29,14 +29,14 @@ GymStatues: ; 62419 (18:6419) jp PrintPredefTextID .BadgeFlags: ; 62442 (18:6442) - db PEWTER_GYM, %00000001 - db CERULEAN_GYM, %00000010 - db VERMILION_GYM,%00000100 - db CELADON_GYM, %00001000 - db FUCHSIA_GYM, %00010000 - db SAFFRON_GYM, %00100000 - db CINNABAR_GYM, %01000000 - db VIRIDIAN_GYM, %10000000 + db PEWTER_GYM, %00000001 + db CERULEAN_GYM, %00000010 + db VERMILION_GYM, %00000100 + db CELADON_GYM, %00001000 + db FUCHSIA_GYM, %00010000 + db SAFFRON_GYM, %00100000 + db CINNABAR_GYM, %01000000 + db VIRIDIAN_GYM, %10000000 db $ff GymStatueText1: ; 62453 (18:6453) @@ -72,30 +72,36 @@ PrintBenchGuyText: ; 6245d (18:645d) ; format: db map id, player sprite facing direction, text id of PredefTextIDPointerTable BenchGuyTextPointers: ; 6247e (18:647e) - db VIRIDIAN_POKECENTER, SPRITE_FACING_LEFT - db (ViridianCityPokecenterBenchGuyText_id - TextPredefs) / 2 + 1 - db PEWTER_POKECENTER, SPRITE_FACING_LEFT - db (PewterCityPokecenterBenchGuyText_id - TextPredefs) / 2 + 1 - db CERULEAN_POKECENTER, SPRITE_FACING_LEFT - db (CeruleanCityPokecenterBenchGuyText_id - TextPredefs) / 2 + 1 - db LAVENDER_POKECENTER, SPRITE_FACING_LEFT - db (LavenderCityPokecenterBenchGuyText_id - TextPredefs) / 2 + 1 - db VERMILION_POKECENTER, SPRITE_FACING_LEFT - db (VermilionCityPokecenterBenchGuyText_id - TextPredefs) / 2 + 1 - db CELADON_POKECENTER, SPRITE_FACING_LEFT - db (CeladonCityPokecenterBenchGuyText_id - TextPredefs) / 2 + 1 - db CELADON_HOTEL, SPRITE_FACING_LEFT - db (CeladonCityHotelText_id - TextPredefs) / 2 + 1 - db FUCHSIA_POKECENTER, SPRITE_FACING_LEFT - db (FuchsiaCityPokecenterBenchGuyText_id - TextPredefs) / 2 + 1 - db CINNABAR_POKECENTER, SPRITE_FACING_LEFT - db (CinnabarIslandPokecenterBenchGuyText_id - TextPredefs) / 2 + 1 - db SAFFRON_POKECENTER, SPRITE_FACING_LEFT - db (SaffronCityPokecenterBenchGuyText_id - TextPredefs) / 2 + 1 - db MT_MOON_POKECENTER, SPRITE_FACING_LEFT - db (MtMoonPokecenterBenchGuyText_id - TextPredefs) / 2 + 1 - db ROCK_TUNNEL_POKECENTER,SPRITE_FACING_LEFT - db (RockTunnelPokecenterBenchGuyText_id - TextPredefs) / 2 + 1 + db VIRIDIAN_POKECENTER, SPRITE_FACING_LEFT + db $11 ; (ViridianCityPokecenterBenchGuyText_id - TextPredefs) / 2 + 1 + db PEWTER_POKECENTER, SPRITE_FACING_LEFT + db $12 ; (PewterCityPokecenterBenchGuyText_id - TextPredefs) / 2 + 1 + db CERULEAN_POKECENTER, SPRITE_FACING_LEFT + db $13 ; (CeruleanCityPokecenterBenchGuyText_id - TextPredefs) / 2 + 1 + db LAVENDER_POKECENTER, SPRITE_FACING_LEFT + db $14 ; (LavenderCityPokecenterBenchGuyText_id - TextPredefs) / 2 + 1 + db VERMILION_POKECENTER, SPRITE_FACING_LEFT + db $15 ; (VermilionCityPokecenterBenchGuyText_id - TextPredefs) / 2 + 1 + db CELADON_POKECENTER, SPRITE_FACING_LEFT + db $16 ; (CeladonCityPokecenterBenchGuyText_id - TextPredefs) / 2 + 1 + db CELADON_HOTEL, SPRITE_FACING_LEFT + db $17 ; (CeladonCityHotelText_id - TextPredefs) / 2 + 1 + db FUCHSIA_POKECENTER, SPRITE_FACING_LEFT + db $18 ; (FuchsiaCityPokecenterBenchGuyText_id - TextPredefs) / 2 + 1 + db CINNABAR_POKECENTER, SPRITE_FACING_LEFT + db $19 ; (CinnabarIslandPokecenterBenchGuyText_id - TextPredefs) / 2 + 1 + db SAFFRON_POKECENTER, SPRITE_FACING_LEFT + db $1a ; (SaffronCityPokecenterBenchGuyText_id - TextPredefs) / 2 + 1 + db MT_MOON_POKECENTER, SPRITE_FACING_LEFT + db $1b ; (MtMoonPokecenterBenchGuyText_id - TextPredefs) / 2 + 1 + db ROCK_TUNNEL_POKECENTER, SPRITE_FACING_LEFT + db $1c ; (RockTunnelPokecenterBenchGuyText_id - TextPredefs) / 2 + 1 + db SAFARI_ZONE_REST_HOUSE_2,SPRITE_FACING_LEFT + db $1d + db SAFARI_ZONE_REST_HOUSE_3,SPRITE_FACING_LEFT + db $1e + db SAFARI_ZONE_REST_HOUSE_4,SPRITE_FACING_LEFT + db $1f db $FF ViridianCityPokecenterBenchGuyText: ; 624a3 (18:64a3) @@ -177,7 +183,7 @@ CeladonCityHotelText: ; 62502 (18:6502) UnusedPredefText: ; 62508 (18:6508) db "@" -PrintBookcaseText: ; 6509 (18:6509) +PrintBookcaseText: ; 626e1 (18:66e1) call EnableAutoTextBoxDrawing tx_pre_jump BookcaseText diff --git a/engine/overworld/hidden_objects.asm b/engine/overworld/hidden_objects.asm index 3774c482..15496b81 100755 --- a/engine/overworld/hidden_objects.asm +++ b/engine/overworld/hidden_objects.asm @@ -1,27 +1,17 @@ ; if a hidden object was found, stores $00 in [$ffee], else stores $ff -CheckForHiddenObject: ; 469a0 (11:69a0) +CheckForHiddenObject: ; f25f8 (3c:65f8) ld hl, $ffeb xor a ld [hli], a ld [hli], a ld [hli], a ld [hl], a - ld de, $0 ld hl, HiddenObjectMaps -.hiddenMapLoop - ld a, [hli] - ld b, a - cp $ff - jr z, .noMatch + ld de, 3 ld a, [wCurMap] - cp b - jr z, .foundMatchingMap - inc de - inc de - jr .hiddenMapLoop -.foundMatchingMap - ld hl, HiddenObjectPointers - add hl, de + call IsInArray + jr nc, .noMatch + inc hl ld a, [hli] ld h, [hl] ld l, a diff --git a/macros.asm b/macros.asm index b71a5dd9..c4318278 100644 --- a/macros.asm +++ b/macros.asm @@ -262,6 +262,10 @@ dbw: MACRO dw \2 ENDM +dba: MACRO + dbw BANK(\1), \1 + ENDM + ; data format macros RGB: MACRO dw (\3 << 10 | \2 << 5 | \1) diff --git a/main.asm b/main.asm index 79b08454..b32935de 100755 --- a/main.asm +++ b/main.asm @@ -741,7 +741,13 @@ JessieJamesPic: INCBIN "pic/ytrainer/jessiejames.pic" SECTION "bank14",ROMX,BANK[$14] - dr $50000,$525d8 + dr $50000,$52060 +Mansion2Script_Switches: + dr $52060,$522a3 +Mansion3Script_Switches: + dr $522a3,$52449 +Mansion4Script_Switches: + dr $52449,$525d8 INCLUDE "engine/overworld/card_key.asm" INCLUDE "engine/menu/prize_menu.asm" @@ -782,13 +788,14 @@ SECTION "bank17",ROMX,BANK[$17] INCLUDE "engine/evolution.asm" - dr $5db93,$5df60 + dr $5db93,$5dbae +INCLUDE "engine/hidden_object_functions17.asm" SECTION "bank18",ROMX,BANK[$18] - dr $60000,$62702 - + dr $60000,$625e8 +INCLUDE "engine/hidden_object_functions18.asm" SECTION "bank19",ROMX,BANK[$19] Overworld_GFX: @@ -842,7 +849,9 @@ INCLUDE "engine/items/itemfinder.asm" VendingMachineMenu: ; 74726 (1d:4726) dr $74726,$75dfe PKMNLeaguePC: ; 75dfe (1d:5dfe) - dr $75dfe,$75faa + dr $75dfe,$75f74 +HiddenItems: ; 75f74 (1d:5f74) + dr $75f74,$75faa INCLUDE "data/hidden_item_coords.asm" -- cgit v1.2.3 From 87b20762d539888b031aba92b574108f5f817815 Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Tue, 24 May 2016 18:54:06 -0400 Subject: Numerous changes (see below) * Fix build errors from previous commit * Fix predef text pointers * Disassemble hidden object data and additional accessory functions --- constants/predef_constants.asm | 2 +- constants/tx_pre_constants.asm | 140 +++--- data/hidden_objects.asm | 947 +++++++++++++++++------------------ engine/bank3c.asm | 78 +-- engine/game_corner_slots2.asm | 4 +- engine/hidden_object_functions17.asm | 109 ++-- engine/hidden_object_functions18.asm | 30 +- engine/overworld/hidden_items.asm | 17 +- home.asm | 143 +++--- hram.asm | 2 + macros.asm | 4 +- main.asm | 10 +- 12 files changed, 741 insertions(+), 745 deletions(-) diff --git a/constants/predef_constants.asm b/constants/predef_constants.asm index 14d1029d..d1e81a72 100644 --- a/constants/predef_constants.asm +++ b/constants/predef_constants.asm @@ -98,4 +98,4 @@ const_value = 0 predef_const DrawHP ; 5F predef_const DrawHP2 predef_const Func_1c9c6 - predef_const OaksAideScript \ No newline at end of file + predef_const OaksAideScript diff --git a/constants/tx_pre_constants.asm b/constants/tx_pre_constants.asm index e2bade58..0e06a8e3 100644 --- a/constants/tx_pre_constants.asm +++ b/constants/tx_pre_constants.asm @@ -1,70 +1,72 @@ -const_value = 1 +; const_value = 1 - tx_pre_const CardKeySuccessText ; 01 - tx_pre_const CardKeyFailText ; 02 - tx_pre_const RedBedroomPCText ; 03 - tx_pre_const RedBedroomSNESText ; 04 - tx_pre_const PushStartText ; 05 - tx_pre_const SaveOptionText ; 06 - tx_pre_const StrengthsAndWeaknessesText ; 07 - tx_pre_const OakLabEmailText ; 08 - tx_pre_const AerodactylFossilText ; 09 - tx_pre_const Route15UpstairsBinocularsText ; 0A - tx_pre_const KabutopsFossilText ; 0B - tx_pre_const GymStatueText1 ; 0C - tx_pre_const GymStatueText2 ; 0D - tx_pre_const BookcaseText ; 0E - tx_pre_const ViridianCityPokecenterBenchGuyText ; 0F - tx_pre_const PewterCityPokecenterBenchGuyText ; 10 - tx_pre_const CeruleanCityPokecenterBenchGuyText ; 11 - tx_pre_const LavenderCityPokecenterBenchGuyText ; 12 - tx_pre_const VermilionCityPokecenterBenchGuyText ; 13 - tx_pre_const CeladonCityPokecenterBenchGuyText ; 14 - tx_pre_const CeladonCityHotelText ; 15 - tx_pre_const FuchsiaCityPokecenterBenchGuyText ; 16 - tx_pre_const CinnabarIslandPokecenterBenchGuyText ; 17 - tx_pre_const SaffronCityPokecenterBenchGuyText ; 18 - tx_pre_const MtMoonPokecenterBenchGuyText ; 19 - tx_pre_const RockTunnelPokecenterBenchGuyText ; 1A - tx_pre_const UnusedBenchGuyText1 ; 1B XXX unused - tx_pre_const UnusedBenchGuyText2 ; 1C XXX unused - tx_pre_const UnusedBenchGuyText3 ; 1D XXX unused - tx_pre_const UnusedPredefText ; 1E XXX unused - tx_pre_const PokemonCenterPCText ; 1F - tx_pre_const ViridianSchoolNotebook ; 20 - tx_pre_const ViridianSchoolBlackboard ; 21 - tx_pre_const FakeTextPredef22 - tx_pre_const FakeTextPredef23 - tx_pre_const JustAMomentText ; 22 - tx_pre_const OpenBillsPCText ; 23 - tx_pre_const FoundHiddenItemText ; 24 - tx_pre_const HiddenItemBagFullText ; 25 XXX unused - tx_pre_const VermilionGymTrashText ; 26 - tx_pre_const IndigoPlateauHQText ; 27 - tx_pre_const GameCornerOutOfOrderText ; 28 - tx_pre_const GameCornerOutToLunchText ; 29 - tx_pre_const GameCornerSomeonesKeysText ; 2A - tx_pre_const FoundHiddenCoinsText ; 2B - tx_pre_const DroppedHiddenCoinsText ; 2C - tx_pre_const BillsHouseMonitorText ; 2D - tx_pre_const BillsHouseInitiatedText ; 2E - tx_pre_const BillsHousePokemonList ; 2F - tx_pre_const MagazinesText ; 30 - tx_pre_const CinnabarGymQuiz ; 31 - tx_pre_const GameCornerNoCoinsText ; 32 - tx_pre_const GameCornerCoinCaseText ; 33 - tx_pre_const LinkCableHelp ; 34 - tx_pre_const TMNotebook ; 35 - tx_pre_const FightingDojoText ; 36 - tx_pre_const EnemiesOnEverySideText ; 37 - tx_pre_const WhatGoesAroundComesAroundText ; 38 - tx_pre_const NewBicycleText ; 39 - tx_pre_const IndigoPlateauStatues ; 3A - tx_pre_const VermilionGymTrashSuccesText1 ; 3B - tx_pre_const VermilionGymTrashSuccesText2 ; 3C XXX unused - tx_pre_const VermilionGymTrashSuccesText3 ; 3D - tx_pre_const VermilionGymTrashFailText ; 3E - tx_pre_const TownMapText ; 3F - tx_pre_const BookOrSculptureText ; 40 - tx_pre_const ElevatorText ; 41 - tx_pre_const PokemonStuffText ; 42 \ No newline at end of file + ; tx_pre_const CardKeySuccessText ; 01 + ; tx_pre_const CardKeyFailText ; 02 + ; tx_pre_const RedBedroomPCText ; 03 + ; tx_pre_const RedBedroomSNESText ; 04 + ; tx_pre_const PushStartText ; 05 + ; tx_pre_const SaveOptionText ; 06 + ; tx_pre_const StrengthsAndWeaknessesText ; 07 + ; tx_pre_const OakLabEmailText ; 08 + ; tx_pre_const AerodactylFossilText ; 09 + ; tx_pre_const Route15UpstairsBinocularsText ; 0A + ; tx_pre_const KabutopsFossilText ; 0B + ; tx_pre_const FanClubRapidashText ; 0C + ; tx_pre_const FanClubFearowText ; 0D + ; tx_pre_const GymStatueText1 ; 0E + ; tx_pre_const GymStatueText2 ; 0F + ; tx_pre_const BookcaseText ; 10 + ; tx_pre_const ViridianCityPokecenterBenchGuyText ; 11 + ; tx_pre_const PewterCityPokecenterBenchGuyText ; 12 + ; tx_pre_const CeruleanCityPokecenterBenchGuyText ; 13 + ; tx_pre_const LavenderCityPokecenterBenchGuyText ; 14 + ; tx_pre_const VermilionCityPokecenterBenchGuyText ; 15 + ; tx_pre_const CeladonCityPokecenterBenchGuyText ; 16 + ; tx_pre_const CeladonCityHotelText ; 17 + ; tx_pre_const FuchsiaCityPokecenterBenchGuyText ; 18 + ; tx_pre_const CinnabarIslandPokecenterBenchGuyText ; 19 + ; tx_pre_const SaffronCityPokecenterBenchGuyText ; 1A + ; tx_pre_const MtMoonPokecenterBenchGuyText ; 1B + ; tx_pre_const RockTunnelPokecenterBenchGuyText ; 1C + ; tx_pre_const UnusedBenchGuyText1 ; 1D + ; tx_pre_const UnusedBenchGuyText2 ; 1E + ; tx_pre_const UnusedBenchGuyText3 ; 1F + ; tx_pre_const UnusedPredefText ; 20 + ; tx_pre_const PokemonCenterPCText ; 21 + ; tx_pre_const ViridianSchoolNotebook ; 22 + ; tx_pre_const ViridianSchoolBlackboard ; 23 + ; tx_pre_const FakeTextPredef22 + ; tx_pre_const FakeTextPredef23 + ; tx_pre_const JustAMomentText ; 24 + ; tx_pre_const OpenBillsPCText ; 25 + ; tx_pre_const FoundHiddenItemText ; 26 + ; tx_pre_const HiddenItemBagFullText ; 27 + ; tx_pre_const VermilionGymTrashText ; 28 + ; tx_pre_const IndigoPlateauHQText ; 29 + ; tx_pre_const GameCornerOutOfOrderText ; 2A + ; tx_pre_const GameCornerOutToLunchText ; 2B + ; tx_pre_const GameCornerSomeonesKeysText ; 2C + ; tx_pre_const FoundHiddenCoinsText ; 2D + ; tx_pre_const DroppedHiddenCoinsText ; 2E + ; tx_pre_const BillsHouseMonitorText ; 2F + ; tx_pre_const BillsHouseInitiatedText ; 30 + ; tx_pre_const BillsHousePokemonList ; 31 + ; tx_pre_const MagazinesText ; 32 + ; tx_pre_const CinnabarGymQuiz ; 33 + ; tx_pre_const GameCornerNoCoinsText ; 34 + ; tx_pre_const GameCornerCoinCaseText ; 35 + ; tx_pre_const LinkCableHelp ; 36 + ; tx_pre_const TMNotebook ; 37 + ; tx_pre_const FightingDojoText ; 38 + ; tx_pre_const EnemiesOnEverySideText ; 39 + ; tx_pre_const WhatGoesAroundComesAroundText ; 3A + ; tx_pre_const NewBicycleText ; 3B + ; tx_pre_const IndigoPlateauStatues ; 3C XXX unused + ; tx_pre_const VermilionGymTrashSuccesText1 ; 3D + ; tx_pre_const VermilionGymTrashSuccesText2 ; 3E + ; tx_pre_const VermilionGymTrashSuccesText3 ; 3F + ; tx_pre_const VermilionGymTrashFailText ; 40 + ; tx_pre_const TownMapText ; 41 + ; tx_pre_const BookOrSculptureText ; 42 + ; tx_pre_const ElevatorText ; 43 + ; tx_pre_const PokemonStuffText ; 44 diff --git a/data/hidden_objects.asm b/data/hidden_objects.asm index 2750a8fa..5b2b27d0 100755 --- a/data/hidden_objects.asm +++ b/data/hidden_objects.asm @@ -83,607 +83,592 @@ HiddenObjectMaps: ; f268d (3c:668d) db $FF ; format: y-coord, x-coord, text id/item id, object routine -TradeCenterHiddenObjects: ; 46b40 (11:6b40) - db $04,$05,$d0 +SilphCo11FHiddenObjects: + db $0c, $0a, $04 + dba OpenPokemonCenterPC + db $FF +SilphCo5FHiddenObjects: + db $03, $0c, $52 + dba HiddenItems + db $FF +SilphCo9FHiddenObjects: + db $0f, $02, $11 + dba HiddenItems + db $FF +Mansion2HiddenObjects: + db $0b, $02, $04 + dba Mansion2Script_Switches + db $FF +Mansion3HiddenObjects: + db $09, $01, $36 + dba HiddenItems + db $05, $0a, $04 + dba Mansion3Script_Switches + db $FF +Mansion4HiddenObjects: + db $09, $01, $28 + dba HiddenItems + db $03, $14, $04 + dba Mansion4Script_Switches + db $19, $12, $04 + dba Mansion4Script_Switches + db $FF +SafariZoneWestHiddenObjects: + db $05, $06, $35 + dba HiddenItems + db $FF +UnknownDungeon2HiddenObjects: + db $0d, $10, $4f + dba HiddenItems + db $FF +UnknownDungeon3HiddenObjects: + db $0e, $08, $4f + dba HiddenItems + db $FF +UnusedMap6FHiddenObjects: + db $0b, $0e, $53 + dba HiddenItems + db $FF +SeafoamIslands3HiddenObjects: + db $0f, $0f, $31 + dba HiddenItems + db $FF +SeafoamIslands4HiddenObjects: + db $10, $09, $53 + dba HiddenItems + db $FF +SeafoamIslands5HiddenObjects: + db $11, $19, $02 + dba HiddenItems + db $FF +ViridianForestHiddenObjects: + db $12, $01, $14 + dba HiddenItems + db $2a, $10, $0b + dba HiddenItems + db $FF +MtMoon3HiddenObjects: + db $0c, $12, $0a + dba HiddenItems + db $09, $21, $50 + dba HiddenItems + db $FF +SSAnne10HiddenObjects: + db $01, $03, $12 + dba HiddenItems + db $FF +SSAnne6HiddenObjects: + db $05, $0d, $00 + dba PrintTrashText + db $07, $0d, $00 + dba PrintTrashText + db $09, $0d, $03 + dba HiddenItems + db $FF +UndergroundPathNsHiddenObjects: + db $04, $03, $10 + dba HiddenItems + db $22, $04, $44 + dba HiddenItems + db $FF +UndergroundPathWeHiddenObjects: + db $02, $0c, $31 + dba HiddenItems + db $05, $15, $52 + dba HiddenItems + db $FF +RocketHideout1HiddenObjects: + db $0f, $15, $4f + dba HiddenItems + db $FF +RocketHideout3HiddenObjects: + db $11, $1b, $31 + dba HiddenItems + db $FF +RocketHideout4HiddenObjects: + db $01, $19, $13 + dba HiddenItems + db $FF +Route10HiddenObjects: + db $11, $09, $13 + dba HiddenItems + db $35, $10, $51 + dba HiddenItems + db $FF +RockTunnelPokecenterHiddenObjects: + db $04, $00, $08 + dba PrintBenchGuyText + db $03, $0d, $04 + dba OpenPokemonCenterPC + db $FF +PowerPlantHiddenObjects: + db $10, $11, $53 + dba HiddenItems + db $01, $0c, $4f + dba HiddenItems + db $FF +Route11HiddenObjects: + db $05, $30, $1d + dba HiddenItems + db $FF +Route12HiddenObjects: + db $3f, $02, $12 + dba HiddenItems + db $FF +Route13HiddenObjects: + db $0e, $01, $4f + dba HiddenItems + db $0d, $10, $27 + dba HiddenItems + db $FF +Route15Gate2FHiddenObjects: + db $02, $01, $04 + dba Route15GateLeftBinoculars + db $FF +Route17HiddenObjects: + db $0e, $0f, $28 + dba HiddenItems + db $2d, $08, $10 + dba HiddenItems + db $48, $11, $4f + dba HiddenItems + db $5b, $04, $36 + dba HiddenItems + db $79, $08, $53 + dba HiddenItems + db $FF +Route23HiddenObjects: + db $2c, $09, $10 + dba HiddenItems + db $46, $13, $02 + dba HiddenItems + db $5a, $08, $51 + dba HiddenItems + db $FF +VictoryRoad2HiddenObjects: + db $02, $05, $02 + dba HiddenItems + db $07, $1a, $10 + dba HiddenItems + db $FF +Route25HiddenObjects: + db $03, $26, $50 + dba HiddenItems + db $01, $0a, $52 + dba HiddenItems + db $FF +BillsHouseHiddenObjects: + db $04, $01, $04 + dba BillsHousePC + db $FF +Route4HiddenObjects: + db $03, $28, $03 + dba HiddenItems + db $FF +MtMoonPokecenterHiddenObjects: + db $04, $00, $08 + dba PrintBenchGuyText + db $03, $0d, $04 + dba OpenPokemonCenterPC + db $FF +Route9HiddenObjects: + db $07, $0e, $50 + dba HiddenItems + db $FF +TradeCenterHiddenObjects: + db $04, $05, $d0 dba CableClubRightGameboy - db $04,$04,$d0 + db $04, $04, $d0 dba CableClubLeftGameboy db $FF -ColosseumHiddenObjects: ; 46b4d (11:6b4d) - db $04,$05,$d0 +ColosseumHiddenObjects: + db $04, $05, $d0 dba CableClubRightGameboy - db $04,$04,$d0 + db $04, $04, $d0 dba CableClubLeftGameboy db $FF -RedsHouse2FHiddenObjects: ; 46b5a (11:6b5a) - db $01,$00,$04 +IndigoPlateauHiddenObjects: + db $0d, $08, $ff + dba PrintIndigoPlateauHQText + db $0d, $0b, $00 + dba PrintIndigoPlateauHQText + db $FF +IndigoPlateauLobbyHiddenObjects: + db $07, $0f, $04 + dba OpenPokemonCenterPC + db $FF +CopycatsHouse2FHiddenObjects: + db $01, $01, $31 + dba HiddenItems + db $FF +FightingDojoHiddenObjects: + db $09, $03, $04 + dba PrintFightingDojoText + db $09, $06, $04 + dba PrintFightingDojoText + db $00, $04, $04 + dba PrintFightingDojoText2 + db $00, $05, $04 + dba PrintFightingDojoText3 + db $FF +SaffronGymHiddenObjects: + db $0f, $09, $04 + dba GymStatues + db $FF +SaffronPokecenterHiddenObjects: + db $04, $00, $04 + dba PrintBenchGuyText + db $03, $0d, $04 + dba OpenPokemonCenterPC + db $FF +RedsHouse2FHiddenObjects: + db $01, $00, $04 dba OpenRedsPC - db $05,$03,$d0 + db $05, $03, $d0 dba PrintRedsNESText db $FF -BluesHouseHiddenObjects: ; 46b67 (11:6b67) - db $01,$00,$04 +BluesHouseHiddenObjects: + db $01, $00, $04 dba PrintBookcaseText - db $01,$01,$04 + db $01, $01, $04 dba PrintBookcaseText - db $01,$07,$04 + db $01, $07, $04 dba PrintBookcaseText db $FF -OaksLabHiddenObjects: ; 46b7a (11:6b7a) - db $00,$04,$04 +OaksLabHiddenObjects: + db $00, $04, $04 dba DisplayOakLabLeftPoster - db $00,$05,$04 + db $00, $05, $04 dba DisplayOakLabRightPoster - db $01,$00,$04 + db $01, $00, $04 dba DisplayOakLabEmailText - db $01,$01,$04 + db $01, $01, $04 dba DisplayOakLabEmailText db $FF -ViridianPokecenterHiddenObjects: ; 46b93 (11:6b93) - db $04,$00,$08 +ViridianCityHiddenObjects: + db $04, $0e, $14 + dba HiddenItems + db $FF +ViridianPokecenterHiddenObjects: + db $04, $00, $08 dba PrintBenchGuyText - db $03,$0d,$04 + db $03, $0d, $04 dba OpenPokemonCenterPC db $FF -ViridianMartHiddenObjects: ; 46ba0 (11:6ba0) - db $FF -ViridianSchoolHiddenObjects: ; 46ba1 (11:6ba1) - db $04,$03,(ViridianSchoolNotebook_id - TextPredefs) / 2 + 1 +ViridianSchoolHiddenObjects: + db $04, $03, $22 dba PrintNotebookText - db $00,$03,(ViridianSchoolBlackboard_id - TextPredefs) / 2 + 1 + db $00, $03, $23 dba PrintBlackboardLinkCableText db $FF -ViridianGymHiddenObjects: ; 46bae (11:6bae) - db $0f,$0f,$04 - dbw BANK(GymStatues),GymStatues - db $0f,$12,$04 - dbw BANK(GymStatues),GymStatues +ViridianGymHiddenObjects: + db $0f, $0f, $04 + dba GymStatues + db $0f, $12, $04 + dba GymStatues db $FF -Museum1FHiddenObjects: ; 46bbb (11:6bbb) - db $03,$02,$04 +Museum1FHiddenObjects: + db $03, $02, $04 dba AerodactylFossil - db $06,$02,$04 + db $06, $02, $04 dba KabutopsFossil db $FF -PewterGymHiddenObjects: ; 46bc8 (11:6bc8) - db $0a,$03,$04 - dbw BANK(GymStatues),GymStatues - db $0a,$06,$04 - dbw BANK(GymStatues),GymStatues - db $FF -PewterMartHiddenObjects: ; 46bd5 (11:6bd5) +PewterGymHiddenObjects: + db $0a, $03, $04 + dba GymStatues + db $0a, $06, $04 + dba GymStatues db $FF -PewterPokecenterHiddenObjects: ; 46bd6 (11:6bd6) - db $04,$00,$08 +PewterPokecenterHiddenObjects: + db $04, $00, $08 dba PrintBenchGuyText - db $03,$0d,$04 + db $03, $0d, $04 dba OpenPokemonCenterPC db $FF -CeruleanPokecenterHiddenObjects: ; 46be3 (11:6be3) - db $04,$00,$08 +CeruleanCityHiddenObjects: + db $08, $0f, $28 + dba HiddenItems + db $FF +CeruleanPokecenterHiddenObjects: + db $04, $00, $08 dba PrintBenchGuyText - db $03,$0d,$04 + db $03, $0d, $04 dba OpenPokemonCenterPC db $FF -CeruleanGymHiddenObjects: ; 46bf0 (11:6bf0) - db $0b,$03,$04 - dbw BANK(GymStatues),GymStatues - db $0b,$06,$04 - dbw BANK(GymStatues),GymStatues +CeruleanGymHiddenObjects: + db $0b, $03, $04 + dba GymStatues + db $0b, $06, $04 + dba GymStatues db $FF -CeruleanMartHiddenObjects: ; 46bfd (11:6bfd) +BikeShopHiddenObjects: + db $00, $01, $d0 + dba PrintNewBikeText + db $01, $02, $d0 + dba PrintNewBikeText + db $02, $01, $d0 + dba PrintNewBikeText + db $02, $03, $d0 + dba PrintNewBikeText + db $04, $00, $d0 + dba PrintNewBikeText + db $05, $01, $d0 + dba PrintNewBikeText + db $FF +UnknownDungeon1HiddenObjects: + db $07, $12, $4f + dba HiddenItems db $FF -LavenderPokecenterHiddenObjects: ; 46bfe (11:6bfe) - db $04,$00,$08 +LavenderPokecenterHiddenObjects: + db $04, $00, $08 dba PrintBenchGuyText - db $03,$0d,$04 + db $03, $0d, $04 dba OpenPokemonCenterPC db $FF -VermilionPokecenterHiddenObjects: ; 46c0b (11:6c0b) - db $03,$0d,$04 +Pokemontower5HiddenObjects: + db $0c, $04, $52 + dba HiddenItems + db $FF +LavenderHouse1HiddenObjects: + db $01, $00, $00 + dba PrintMagazinesText + db $01, $01, $00 + dba PrintMagazinesText + db $01, $07, $00 + dba PrintMagazinesText + db $FF +VermilionCityHiddenObjects: + db $0b, $0e, $51 + dba HiddenItems + db $FF +VermilionPokecenterHiddenObjects: + db $03, $0d, $04 dba OpenPokemonCenterPC - db $04,$00,$04 + db $04, $00, $04 dba PrintBenchGuyText db $FF -VermilionGymHiddenObjects: ; 46c18 (11:6c18) - db $0e,$03,$04 +PokemonFanClubHiddenObjects: + db $00, $01, $04 + dba FanClubPicture1 + db $00, $06, $04 + dba FanClubPicture2 + db $FF +VermilionGymHiddenObjects: + db $0e, $03, $04 dba GymStatues - db $0e,$06,$04 + db $0e, $06, $04 dba GymStatues - db $01,$06,$00 + db $01, $06, $00 dba PrintTrashText - db $07,$01,$00 + db $07, $01, $00 dba GymTrashScript - db $09,$01,$01 + db $09, $01, $01 dba GymTrashScript - db $0b,$01,$02 + db $0b, $01, $02 dba GymTrashScript - db $07,$03,$03 + db $07, $03, $03 dba GymTrashScript - db $09,$03,$04 + db $09, $03, $04 dba GymTrashScript - db $0b,$03,$05 + db $0b, $03, $05 dba GymTrashScript - db $07,$05,$06 + db $07, $05, $06 dba GymTrashScript - db $09,$05,$07 + db $09, $05, $07 dba GymTrashScript - db $0b,$05,$08 + db $0b, $05, $08 dba GymTrashScript - db $07,$07,$09 + db $07, $07, $09 dba GymTrashScript - db $09,$07,$0a + db $09, $07, $0a dba GymTrashScript - db $0b,$07,$0b + db $0b, $07, $0b dba GymTrashScript - db $07,$09,$0c + db $07, $09, $0c dba GymTrashScript - db $09,$09,$0d + db $09, $09, $0d dba GymTrashScript - db $0b,$09,$0e + db $0b, $09, $0e dba GymTrashScript db $FF -CeladonMansion2HiddenObjects: ; 46c85 (11:6c85) - db $05,$00,$04 +CeladonCityHiddenObjects: + db $0f, $30, $4f + dba HiddenItems + db $FF +CeladonHotelHiddenObjects: + db $04, $00, $08 + dba PrintBenchGuyText + db $FF +CeladonMansion2HiddenObjects: + db $05, $00, $04 dba OpenPokemonCenterPC db $FF -CeladonPokecenterHiddenObjects: ; 46c8c (11:6c8c) - db $04,$00,$08 +CeladonMansion5HiddenObjects: + db $00, $03, $36 + dbw $17, $5c7f + db $00, $04, $36 + dbw $17, $5c7f + db $04, $03, $37 + dbw $14, $68f6 + db $FF +CeladonPokecenterHiddenObjects: + db $04, $00, $08 dba PrintBenchGuyText - db $03,$0d,$04 + db $03, $0d, $04 dba OpenPokemonCenterPC db $FF -CeladonGymHiddenObjects: ; 46c99 (11:6c99) - db $0f,$03,$04 - dbw BANK(GymStatues),GymStatues - db $0f,$06,$04 - dbw BANK(GymStatues),GymStatues +CeladonGymHiddenObjects: + db $0f, $03, $04 + dba GymStatues + db $0f, $06, $04 + dba GymStatues db $FF -GameCornerHiddenObjects: ; 46ca6 (11:6ca6) - db $0f,$12,$d0 +GameCornerHiddenObjects: + db $0f, $12, $d0 dba StartSlotMachine - db $0e,$12,$d0 + db $0e, $12, $d0 dba StartSlotMachine - db $0d,$12,$d0 + db $0d, $12, $d0 dba StartSlotMachine - db $0c,$12,$d0 + db $0c, $12, $d0 dba StartSlotMachine - db $0b,$12,$d0 + db $0b, $12, $d0 dba StartSlotMachine - db $0a,$12,$ff ; "Someone's Keys" + db $0a, $12, $ff dba StartSlotMachine - db $0a,$0d,$d0 + db $0a, $0d, $d0 dba StartSlotMachine - db $0b,$0d,$d0 + db $0b, $0d, $d0 dba StartSlotMachine - db $0c,$0d,$fe ; "Out To Lunch" + db $0c, $0d, $fe dba StartSlotMachine - db $0d,$0d,$d0 + db $0d, $0d, $d0 dba StartSlotMachine - db $0e,$0d,$d0 + db $0e, $0d, $d0 dba StartSlotMachine - db $0f,$0d,$d0 + db $0f, $0d, $d0 dba StartSlotMachine - db $0f,$0c,$d0 + db $0f, $0c, $d0 dba StartSlotMachine - db $0e,$0c,$d0 + db $0e, $0c, $d0 dba StartSlotMachine - db $0d,$0c,$d0 + db $0d, $0c, $d0 dba StartSlotMachine - db $0c,$0c,$d0 + db $0c, $0c, $d0 dba StartSlotMachine - db $0b,$0c,$d0 + db $0b, $0c, $d0 dba StartSlotMachine - db $0a,$0c,$d0 + db $0a, $0c, $d0 dba StartSlotMachine - db $0a,$07,$d0 + db $0a, $07, $d0 dba StartSlotMachine - db $0b,$07,$d0 + db $0b, $07, $d0 dba StartSlotMachine - db $0c,$07,$d0 + db $0c, $07, $d0 dba StartSlotMachine - db $0d,$07,$d0 + db $0d, $07, $d0 dba StartSlotMachine - db $0e,$07,$d0 + db $0e, $07, $d0 dba StartSlotMachine - db $0f,$07,$d0 + db $0f, $07, $d0 dba StartSlotMachine - db $0f,$06,$d0 + db $0f, $06, $d0 dba StartSlotMachine - db $0e,$06,$d0 + db $0e, $06, $d0 dba StartSlotMachine - db $0d,$06,$d0 + db $0d, $06, $d0 dba StartSlotMachine - db $0c,$06,$fd ; "Out Of Order" + db $0c, $06, $fd dba StartSlotMachine - db $0b,$06,$d0 + db $0b, $06, $d0 dba StartSlotMachine - db $0a,$06,$d0 + db $0a, $06, $d0 dba StartSlotMachine - db $0a,$01,$d0 + db $0a, $01, $d0 dba StartSlotMachine - db $0b,$01,$d0 + db $0b, $01, $d0 dba StartSlotMachine - db $0c,$01,$d0 + db $0c, $01, $d0 dba StartSlotMachine - db $0d,$01,$d0 + db $0d, $01, $d0 dba StartSlotMachine - db $0e,$01,$d0 + db $0e, $01, $d0 dba StartSlotMachine - db $0f,$01,$d0 + db $0f, $01, $d0 dba StartSlotMachine - db $08,$00,COIN+10 - dbw BANK(HiddenCoins),HiddenCoins - db $10,$01,COIN+10 - dbw BANK(HiddenCoins),HiddenCoins - db $0b,$03,COIN+20 - dbw BANK(HiddenCoins),HiddenCoins - db $0e,$03,COIN+10 - dbw BANK(HiddenCoins),HiddenCoins - db $0c,$04,COIN+10 - dbw BANK(HiddenCoins),HiddenCoins - db $0c,$09,COIN+20 - dbw BANK(HiddenCoins),HiddenCoins - db $0f,$09,COIN+10 - dbw BANK(HiddenCoins),HiddenCoins - db $0e,$10,COIN+10 - dbw BANK(HiddenCoins),HiddenCoins - db $10,$0a,COIN+10 - dbw BANK(HiddenCoins),HiddenCoins - db $07,$0b,COIN+40 - dbw BANK(HiddenCoins),HiddenCoins - db $08,$0f,COIN+100 - dbw BANK(HiddenCoins),HiddenCoins - db $0f,$0c,COIN+10 - dbw BANK(HiddenCoins),HiddenCoins + db $08, $00, COIN + 10 + dba HiddenCoins + db $10, $01, COIN + 10 + dba HiddenCoins + db $0b, $03, COIN + 20 + dba HiddenCoins + db $0e, $03, COIN + 10 + dba HiddenCoins + db $0c, $04, COIN + 10 + dba HiddenCoins + db $0c, $09, COIN + 20 + dba HiddenCoins + db $0f, $09, COIN + 10 + dba HiddenCoins + db $0e, $10, COIN + 10 + dba HiddenCoins + db $10, $0a, COIN + 10 + dba HiddenCoins + db $07, $0b, COIN + 40 + dba HiddenCoins + db $08, $0f, COIN + 100 + dba HiddenCoins + db $0f, $0c, COIN + 10 + dba HiddenCoins db $FF -CeladonHotelHiddenObjects: ; 46dc7 (11:6dc7) - db $03,$0d,$04 +FuchsiaPokecenterHiddenObjects: + db $03, $0d, $04 dba OpenPokemonCenterPC - db $04,$00,$08 + db $04, $00, $04 dba PrintBenchGuyText db $FF -FuchsiaPokecenterHiddenObjects: ; 46dd4 (11:6dd4) - db $03,$0d,$04 - dba OpenPokemonCenterPC - db $04,$00,$04 - dba PrintBenchGuyText +SafariZoneEntranceHiddenObjects: + db $01, $0a, $31 + dba HiddenItems db $FF -FuchsiaGymHiddenObjects: ; 46de1 (11:6de1) - db $0f,$03,$04 - dbw BANK(GymStatues),GymStatues - db $0f,$06,$04 - dbw BANK(GymStatues),GymStatues +FuchsiaGymHiddenObjects: + db $0f, $03, $04 + dba GymStatues + db $0f, $06, $04 + dba GymStatues db $FF -CinnabarGymHiddenObjects: ; 46dee (11:6dee) - db $0d,$11,$04 - dbw BANK(GymStatues),GymStatues - db $07,$0f,$01 +Mansion1HiddenObjects: + db $10, $08, $0a + dba HiddenItems + db $05, $02, $04 + dba Mansion1Script_Switches + db $FF +CinnabarGymHiddenObjects: + db $0d, $11, $04 + dba GymStatues + db $07, $0f, $01 dba PrintCinnabarQuiz - db $01,$0a,$12 + db $01, $0a, $12 dba PrintCinnabarQuiz - db $07,$09,$13 + db $07, $09, $13 dba PrintCinnabarQuiz - db $0d,$09,$14 + db $0d, $09, $14 dba PrintCinnabarQuiz - db $0d,$01,$05 + db $0d, $01, $05 dba PrintCinnabarQuiz - db $07,$01,$16 + db $07, $01, $16 dba PrintCinnabarQuiz db $FF -CinnabarPokecenterHiddenObjects: ; 46e19 (11:6e19) - db $04,$00,$04 - dba PrintBenchGuyText - db $03,$0d,$04 +CinnabarLab4HiddenObjects: + db $04, $00, $04 dba OpenPokemonCenterPC - db $FF -SaffronGymHiddenObjects: ; 46e26 (11:6e26) - db $0f,$09,$04 - dbw BANK(GymStatues),GymStatues - db $FF -MtMoonPokecenterHiddenObjects: ; 46e2d (11:6e2d) - db $04,$00,$08 - dba PrintBenchGuyText - db $03,$0d,$04 + db $04, $02, $04 dba OpenPokemonCenterPC db $FF -RockTunnelPokecenterHiddenObjects: ; 46e3a (11:6e3a) - db $04,$00,$08 - dba PrintBenchGuyText - db $03,$0d,$04 - dba OpenPokemonCenterPC - db $FF -ViridianForestHiddenObjects: ; 46e47 (11:6e47) - db $12,$01,POTION - dbw BANK(HiddenItems),HiddenItems - db $2a,$10,ANTIDOTE - dbw BANK(HiddenItems),HiddenItems - db $FF -MtMoon3HiddenObjects: ; 46e54 (11:6e54) - db $0c,$12,MOON_STONE - dbw BANK(HiddenItems),HiddenItems - db $09,$21,ETHER - dbw BANK(HiddenItems),HiddenItems - db $FF -IndigoPlateauHiddenObjects: ; 46e61 (11:6e61) - db $0d,$08,$ff - dba PrintIndigoPlateauHQText - db $0d,$0b,$00 - dba PrintIndigoPlateauHQText - db $FF -Route25HiddenObjects: ; 46e6e (11:6e6e) - db $03,$26,ETHER - dbw BANK(HiddenItems),HiddenItems - db $01,$0a,ELIXER - dbw BANK(HiddenItems),HiddenItems - db $FF -Route9HiddenObjects: ; 46e7b (11:6e7b) - db $07,$0e,ETHER - dbw BANK(HiddenItems),HiddenItems - db $FF -SSAnne6HiddenObjects: ; 46e82 (11:6e82) - db $05,$0d,$00 - dba PrintTrashText - db $07,$0d,$00 - dba PrintTrashText - db $09,$0d,GREAT_BALL - dbw BANK(HiddenItems),HiddenItems - db $FF -SSAnne10HiddenObjects: ; 46e95 (11:6e95) - db $01,$03,HYPER_POTION - dbw BANK(HiddenItems),HiddenItems - db $FF -Route10HiddenObjects: ; 46e9c (11:6e9c) - db $11,$09,SUPER_POTION - dbw BANK(HiddenItems),HiddenItems - db $35,$10,MAX_ETHER - dbw BANK(HiddenItems),HiddenItems - db $FF -RocketHideout1HiddenObjects: ; 46ea9 (11:6ea9) - db $0f,$15,PP_UP - dbw BANK(HiddenItems),HiddenItems - db $FF -RocketHideout3HiddenObjects: ; 46eb0 (11:6eb0) - db $11,$1b,NUGGET - dbw BANK(HiddenItems),HiddenItems - db $FF -RocketHideout4HiddenObjects: ; 46eb7 (11:6eb7) - db $01,$19,SUPER_POTION - dbw BANK(HiddenItems),HiddenItems - db $FF -SaffronPokecenterHiddenObjects: ; 46ebe (11:6ebe) - db $04,$00,$04 +CinnabarPokecenterHiddenObjects: ; 6cc3 + db $04, $00, $04 dba PrintBenchGuyText - db $03,$0d,$04 + db $03, $0d, $04 dba OpenPokemonCenterPC db $FF -PokemonTower5HiddenObjects: ; 46ecb (11:6ecb) - db $0c,$04,ELIXER - dbw BANK(HiddenItems),HiddenItems - db $FF -Route13HiddenObjects: ; 46ed2 (11:6ed2) - db $0e,$01,PP_UP - dbw BANK(HiddenItems),HiddenItems - db $0d,$10,CALCIUM - dbw BANK(HiddenItems),HiddenItems - db $FF -SafariZoneEntranceHiddenObjects: ; 46edf (11:6edf) - db $01,$0a,NUGGET - dbw BANK(HiddenItems),HiddenItems - db $FF -SafariZoneWestHiddenObjects: ; 46ee6 (11:6ee6) - db $05,$06,REVIVE - dbw BANK(HiddenItems),HiddenItems - db $FF -SilphCo5FHiddenObjects: ; 46eed (11:6eed) - db $03,$0c,ELIXER - dbw BANK(HiddenItems),HiddenItems - db $FF -SilphCo9FHiddenObjects: ; 46ef4 (11:6ef4) - db $0f,$02,MAX_POTION - dbw BANK(HiddenItems),HiddenItems - db $FF -CopycatsHouse2FHiddenObjects: ; 46efb (11:6efb) - db $01,$01,NUGGET - dbw BANK(HiddenItems),HiddenItems - db $FF -UnknownDungeon1HiddenObjects: ; 46f02 (11:6f02) - db $0b,$0e,RARE_CANDY - dbw BANK(HiddenItems),HiddenItems - db $FF -UnknownDungeon3HiddenObjects: ; 46f09 (11:6f09) - db $03,$1b,ULTRA_BALL - dbw BANK(HiddenItems),HiddenItems - db $FF -PowerPlantHiddenObjects: ; 46f10 (11:6f10) - db $10,$11,MAX_ELIXER - dbw BANK(HiddenItems),HiddenItems - db $01,$0c,PP_UP - dbw BANK(HiddenItems),HiddenItems - db $FF -SeafoamIslands3HiddenObjects: ; 46f1d (11:6f1d) - db $0f,$0f,NUGGET - dbw BANK(HiddenItems),HiddenItems - db $FF -SeafoamIslands5HiddenObjects: ; 46f24 (11:6f24) - db $11,$19,ULTRA_BALL - dbw BANK(HiddenItems),HiddenItems - db $FF -Mansion1HiddenObjects: ; 46f2b (11:6f2b) - db $10,$08,MOON_STONE - dbw BANK(HiddenItems),HiddenItems - db $05,$02,$04 - dba Mansion1Script_Switches - db $FF -Mansion2HiddenObjects: ; 46f38 (11:6f38) - db $0b,$02,$04 - dba Mansion2Script_Switches - db $FF -Mansion3HiddenObjects: ; 46f3f (11:6f3f) - db $09,$01,MAX_REVIVE - dbw BANK(HiddenItems),HiddenItems - db $05,$0a,$04 - dba Mansion3Script_Switches - db $FF -Mansion4HiddenObjects: ; 46f4c (11:6f4c) - db $09,$01,RARE_CANDY - dbw BANK(HiddenItems),HiddenItems - db $03,$14,$04 - dba Mansion4Script_Switches - db $19,$12,$04 - dba Mansion4Script_Switches - db $FF -Route23HiddenObjects: ; 46f5f (11:6f5f) - db $2c,$09,FULL_RESTORE - dbw BANK(HiddenItems),HiddenItems - db $46,$13,ULTRA_BALL - dbw BANK(HiddenItems),HiddenItems - db $5a,$08,MAX_ETHER - dbw BANK(HiddenItems),HiddenItems - db $FF -VictoryRoad2HiddenObjects: ; 46f72 (11:6f72) - db $02,$05,ULTRA_BALL - dbw BANK(HiddenItems),HiddenItems - db $07,$1a,FULL_RESTORE - dbw BANK(HiddenItems),HiddenItems - db $FF -Unused6FHiddenObjects: ; 46f7f (11:6f7f) - db $0b,$0e,MAX_ELIXER - dbw BANK(HiddenItems),HiddenItems - db $FF -BillsHouseHiddenObjects: ; 46f86 (11:6f86) - db $04,$01,$04 - dba BillsHousePC - db $FF -ViridianCityHiddenObjects: ; 46f8d (11:6f8d) - db $04,$0e,POTION - dbw BANK(HiddenItems),HiddenItems - db $FF -SafariZoneRestHouse2HiddenObjects: ; 46f94 (11:6f94) - db $04,$00,$08 - dba PrintBenchGuyText - db $03,$0d,$04 - dba OpenPokemonCenterPC - db $FF -SafariZoneRestHouse3HiddenObjects: ; 46fa1 (11:6fa1) - db $04,$00,$08 - dba PrintBenchGuyText - db $03,$0d,$04 - dba OpenPokemonCenterPC - db $FF -SafariZoneRestHouse4HiddenObjects: ; 46fae (11:6fae) - db $04,$00,$08 - dba PrintBenchGuyText - db $03,$0d,$04 - dba OpenPokemonCenterPC - db $FF -Route15GateUpstairsHiddenObjects: ; 46fbb (11:6fbb) - db $02,$01,$04 - dba Route15GateLeftBinoculars - db $FF -LavenderHouse1HiddenObjects: ; 46fc2 (11:6fc2) - db $01,$00,$00 - dba PrintMagazinesText - db $01,$01,$00 - dba PrintMagazinesText - db $01,$07,$00 - dba PrintMagazinesText - db $FF -CeladonMansion5HiddenObjects: ; 46fd5 (11:6fd5) - db $00,$03,(LinkCableHelp_id - TextPredefs) / 2 + 1 - dba PrintBlackboardLinkCableText - db $00,$04,(LinkCableHelp_id - TextPredefs) / 2 + 1 - dba PrintBlackboardLinkCableText - db $04,$03,(TMNotebook_id - TextPredefs) / 2 + 1 - dba PrintNotebookText - db $FF -FightingDojoHiddenObjects: ; 46fe8 (11:6fe8) - db $09,$03,$04 - dba PrintFightingDojoText - db $09,$06,$04 - dba PrintFightingDojoText - db $00,$04,$04 - dba PrintFightingDojoText2 - db $00,$05,$04 - dba PrintFightingDojoText3 - db $FF -IndigoPlateauLobbyHiddenObjects: ; 47001 (11:7001) - db $07,$0f,$04 - dba OpenPokemonCenterPC - db $FF -CinnabarLab4HiddenObjects: ; 47008 (11:7008) - db $04,$00,$04 - dba OpenPokemonCenterPC - db $04,$02,$04 - dba OpenPokemonCenterPC - db $FF -BikeShopHiddenObjects: ; 47015 (11:7015) - db $00,$01,$d0 - dba PrintNewBikeText - db $01,$02,$d0 - dba PrintNewBikeText - db $02,$01,$d0 - dba PrintNewBikeText - db $02,$03,$d0 - dba PrintNewBikeText - db $04,$00,$d0 - dba PrintNewBikeText - db $05,$01,$d0 - dba PrintNewBikeText - db $FF -Route11HiddenObjects: ; 4703a (11:703a) - db $05,$30,ESCAPE_ROPE - dbw BANK(HiddenItems),HiddenItems - db $FF -Route12HiddenObjects: ; 47041 (11:7041) - db $3f,$02,HYPER_POTION - dbw BANK(HiddenItems),HiddenItems - db $FF -SilphCo11FHiddenObjects: ; 47048 (11:7048) - db $0c,$0a,$04 - dba OpenPokemonCenterPC - db $FF -Route17HiddenObjects: ; 4704f (11:704f) - db $0e,$0f,RARE_CANDY - dbw BANK(HiddenItems),HiddenItems - db $2d,$08,FULL_RESTORE - dbw BANK(HiddenItems),HiddenItems - db $48,$11,PP_UP - dbw BANK(HiddenItems),HiddenItems - db $5b,$04,MAX_REVIVE - dbw BANK(HiddenItems),HiddenItems - db $79,$08,MAX_ELIXER - dbw BANK(HiddenItems),HiddenItems - db $FF -UndergroundPathNsHiddenObjects: ; 4706e (11:706e) - db $04,$03,FULL_RESTORE - dbw BANK(HiddenItems),HiddenItems - db $22,$04,X_SPECIAL - dbw BANK(HiddenItems),HiddenItems - db $FF -UndergroundPathWeHiddenObjects: ; 4707b (11:707b) - db $02,$0c,NUGGET - dbw BANK(HiddenItems),HiddenItems - db $05,$15,ELIXER - dbw BANK(HiddenItems),HiddenItems - db $FF -CeladonCityHiddenObjects: ; 47088 (11:7088) - db $0f,$30,PP_UP - dbw BANK(HiddenItems),HiddenItems - db $FF -SeafoamIslands4HiddenObjects: ; 4708f (11:708f) - db $10,$09,MAX_ELIXER - dbw BANK(HiddenItems),HiddenItems - db $FF -VermilionCityHiddenObjects: ; 47096 (11:7096) - db $0b,$0e,MAX_ETHER - dbw BANK(HiddenItems),HiddenItems - db $FF -CeruleanCityHiddenObjects: ; 4709d (11:709d) - db $08,$0f,RARE_CANDY - dbw BANK(HiddenItems),HiddenItems - db $FF -Route4HiddenObjects: ; 470a4 (11:70a4) - db $03,$28,GREAT_BALL - dbw BANK(HiddenItems),HiddenItems - db $FF +; 6cd0 diff --git a/engine/bank3c.asm b/engine/bank3c.asm index cadfe1cf..f5f9d696 100644 --- a/engine/bank3c.asm +++ b/engine/bank3c.asm @@ -157,7 +157,7 @@ INCLUDE "engine/overworld/advance_player_sprite.asm" ResetStatusAndHalveMoneyOnBlackout:: ; f0274 (3c:4274) ; Reset player status on blackout. xor a - ld [wd435],a + ld [wd435], a xor a ; gamefreak copypasting functions (double xor a) ld [wBattleResult], a ld [wWalkBikeSurfState], a @@ -204,33 +204,33 @@ ResetStatusAndHalveMoneyOnBlackout:: ; f0274 (3c:4274) predef_jump HealParty Func_f02da:: ; f02da (3c:42da) - ld a,[wCurMap] + ld a, [wCurMap] cp VERMILION_GYM ; ??? new thing about verm gym? - jr z,.asm_f02ee - ld c,a - ld hl,Pointer_f02fa + jr z, .asm_f02ee + ld c, a + ld hl, Pointer_f02fa .asm_f02e5 - ld a,[hli] + ld a, [hli] cp c - jr z,.asm_f02f4 - cp a,$ff - jr nz,.asm_f02e5 + jr z, .asm_f02f4 + cp a, $ff + jr nz, .asm_f02e5 ret .asm_f02ee - ld hl,wd126 - set 6,[hl] + ld hl, wd126 + set 6, [hl] ret .asm_f02f4 - ld hl,wd126 - set 5,[hl] + ld hl, wd126 + set 5, [hl] ret Pointer_f02fa:: ; f02fa (3c:42fa) - db $cf,$d0,$d1,$d2,$d3,$d4 - db $d5,$e9,$ea,$eb,$d6,$d7 - db $d8,$a5,$a6,$87,$c7,$ca - db $c6,$6c,$c2,$71,$f5,$f6 - db $f7,$ff + db $cf, $d0, $d1, $d2, $d3, $d4 + db $d5, $e9, $ea, $eb, $d6, $d7 + db $d8, $a5, $a6, $87, $c7, $ca + db $c6, $6c, $c2, $71, $f5, $f6 + db $f7, $ff BeachHouse_GFX:: ; f0314 (3c:4314) INCBIN "gfx/tilesets/beachhouse.2bpp" @@ -242,40 +242,44 @@ Func_f0a54:: ; f0a54 (3c:4a54) ret Func_f0a55:: ; f0a55 (3c:4a55) - ld hl,Pointer_f0a76 ; 3c:4a76 + ld hl, Pointer_f0a76 ; 3c:4a76 .loop - ld a,[hli] - cp a,$ff + ld a, [hli] + cp a, $ff ret z - ld b,a - ld a,[wCurMap] + ld b, a + ld a, [wCurMap] cp b - jr z,.asm_f0a68 + jr z, .asm_f0a68 inc hl inc hl inc hl jr .loop .asm_f0a68 - ld a,[hli] - ld c,a - ld b,$0 - ld a,[hli] - ld h,[hl] - ld l,a - ld de,wMissableObjectList + ld a, [hli] + ld c, a + ld b, $0 + ld a, [hli] + ld h, [hl] + ld l, a + ld de, wMissableObjectList call CopyData ret Pointer_f0a76:: ; f0a76 (3c:4a76) - db $27,$07,$7b,$4a,$ff - db $01,$ec,$02,$ed,$03,$ee,$ff + db $27, $07, $7b, $4a, $ff + db $01, $ec, $02, $ed, $03, $ee, $ff - dr $f0a82,$f220e + dr $f0a82, $f220e BeachHouse_h: ; f220e (3c:620e) ;INCLUDE "data/mapHeaders/beach_house.asm" - dr $f220e,$f24ae + dr $f220e, $f24ae Func_f24ae: ; f24ae (3c:64ae) - dr $f24ae,$f25f8 + dr $f24ae, $f25f8 CheckForHiddenObject:: ; f25f8 (3c:65f8) - dr $f25f8,$f4000 \ No newline at end of file + dr $f25f8, $f268d +INCLUDE "data/hidden_objects.asm" + dr $f2cd0, $f2d0c +Func_f2d0c: + dr $f2d0c, $f2db8 diff --git a/engine/game_corner_slots2.asm b/engine/game_corner_slots2.asm index 1bcbefb1..3f7c3f71 100755 --- a/engine/game_corner_slots2.asm +++ b/engine/game_corner_slots2.asm @@ -6,13 +6,13 @@ AbleToPlaySlotsCheck: ; 2fdfd (b:7dfd) predef GetQuantityOfItemInBag ld a, b and a - ld b, GameCornerCoinCaseText_id ; - TextPredefs) / 2 + 1 + ld b, (GameCornerCoinCaseText_id - TextPredefs) / 2 + 1 jr z, .printCoinCaseRequired ld hl, wPlayerCoins ld a, [hli] or [hl] jr nz, .done ; able to play - ld b, GameCornerNoCoinsText_id ; - TextPredefs) / 2 + 1 + ld b, (GameCornerNoCoinsText_id - TextPredefs) / 2 + 1 .printCoinCaseRequired call EnableAutoTextBoxDrawing ld a, b diff --git a/engine/hidden_object_functions17.asm b/engine/hidden_object_functions17.asm index 90b26578..41f20218 100755 --- a/engine/hidden_object_functions17.asm +++ b/engine/hidden_object_functions17.asm @@ -1,4 +1,4 @@ -PrintRedsNESText: ; 5db79 (17:5b79) +PrintRedsNESText: ; 5dbae (17:5bae) call EnableAutoTextBoxDrawing tx_pre_jump RedBedroomSNESText @@ -22,7 +22,10 @@ Route15GateLeftBinoculars: ; 5db8f (17:5b8f) ld a, ARTICUNO ld [wcf91], a call PlayCry - jp DisplayMonFrontSpriteInBox + call DisplayMonFrontSpriteInBox + xor a + ld [H_AUTOBGTRANSFERENABLED], a + ret Route15UpstairsBinocularsText: ; 5dba8 (17:5ba8) TX_FAR _Route15UpstairsBinocularsText @@ -52,6 +55,30 @@ KabutopsFossilText: ; 5dbd4 (17:5bd4) TX_FAR _KabutopsFossilText db "@" +FanClubPicture1: ; 5dbad (17:5c12) + ld a, RAPIDASH + ld [wcf91], a + call DisplayMonFrontSpriteInBox + call EnableAutoTextBoxDrawing + tx_pre FanClubPicture1Text + ret + +FanClubPicture1Text: ; 5dbbe (17:5bbe) + TX_FAR _FanClubPicture1Text + db "@" + +FanClubPicture2: ; 5dbad (17:5c28) + ld a, FEAROW + ld [wcf91], a + call DisplayMonFrontSpriteInBox + call EnableAutoTextBoxDrawing + tx_pre FanClubPicture2Text + ret + +FanClubPicture2Text: ; 5dc39 (17:5c39) + TX_FAR _FanClubPicture2Text + db "@" + DisplayMonFrontSpriteInBox: ; 5dbd9 (17:5bd9) ; Displays a pokemon's front sprite in a pop-up window. ; [wcf91] = pokemon interal id number @@ -110,8 +137,7 @@ LinkCableHelp: ; 5dc29 (17:5c29) ld hl, wd730 set 6, [hl] coord hl, 0, 0 - ld b, $8 - ld c, $d + lb bc, $8, $d call TextBoxBorder coord hl, 2, 2 ld de, HowToLinkText @@ -339,53 +365,17 @@ GymTrashScript: ; 5ddfc (17:5dfc) .openFirstLock ; Next can is trying for the second switch. SetEvent EVENT_1ST_LOCK_OPENED - - ld hl, GymTrashCans - ld a, [wGymTrashCanIndex] - ; * 5 - ld b, a - add a - add a - add b - - ld d, 0 - ld e, a - add hl, de - ld a, [hli] - -; There is a bug in this code. It should calculate a value in the range [0, 3] -; but if the mask and random number don't have any 1 bits in common, then -; the result of the AND will be 0. When 1 is subtracted from that, the value -; will become $ff. This will result in 255 being added to hl, which will cause -; hl to point to one of the zero bytes that pad the end of the ROM bank. -; Trash can 0 was intended to be able to have the second lock only when the -; first lock was in trash can 1 or 3. However, due to this bug, trash can 0 can -; have the second lock regardless of which trash can had the first lock. - - ld [hGymTrashCanRandNumMask], a - push hl - call Random - swap a - ld b, a - ld a, [hGymTrashCanRandNumMask] - and b - dec a - pop hl - - ld d, 0 - ld e, a - add hl, de - ld a, [hl] - and $f - ld [wSecondLockTrashCanIndex], a - + callab Func_f2d0c tx_pre_id VermilionGymTrashSuccesText1 jr .done .trySecondLock - ld a, [wSecondLockTrashCanIndex] - ld b, a ld a, [wGymTrashCanIndex] + ld b, a + ld a, [wSecondLockTrashCanIndex] + cp b + jr z, .openSecondLock + ld a, [wSecondLockTrashCanIndex + 1] cp b jr z, .openSecondLock @@ -413,25 +403,24 @@ GymTrashScript: ; 5ddfc (17:5dfc) GymTrashCans: ; 5de7d (17:5e7d) ; byte 0: mask for random number ; bytes 1-4: indices of the trash cans that can have the second lock -; (but see the comment above explaining a bug regarding this) ; Note that the mask is simply the number of valid trash can indices that -; follow. The remaining bytes are filled with 0 to pad the length of each entry +; follow. The remaining bytes are filled with -1 to pad the length of each entry ; to 5 bytes. - db 2, 1, 3, 0, 0 ; 0 - db 3, 0, 2, 4, 0 ; 1 - db 2, 1, 5, 0, 0 ; 2 - db 3, 0, 4, 6, 0 ; 3 + db 2, 1, 3, -1, -1 ; 0 + db 3, 0, 2, 4, -1 ; 1 + db 2, 1, 5, -1, -1 ; 2 + db 3, 0, 4, 6, -1 ; 3 db 4, 1, 3, 5, 7 ; 4 - db 3, 2, 4, 8, 0 ; 5 - db 3, 3, 7, 9, 0 ; 6 + db 3, 2, 4, 8, -1 ; 5 + db 3, 3, 7, 9, -1 ; 6 db 4, 4, 6, 8, 10 ; 7 - db 3, 5, 7, 11, 0 ; 8 - db 3, 6, 10, 12, 0 ; 9 + db 3, 5, 7, 11, -1 ; 8 + db 3, 6, 10, 12, -1 ; 9 db 4, 7, 9, 11, 13 ; 10 - db 3, 8, 10, 14, 0 ; 11 - db 2, 9, 13, 0, 0 ; 12 - db 3, 10, 12, 14, 0 ; 13 - db 2, 11, 13, 0, 0 ; 14 + db 3, 8, 10, 14, -1 ; 11 + db 2, 9, 13, -1, -1 ; 12 + db 3, 10, 12, 14, -1 ; 13 + db 2, 11, 13, -1, -1 ; 14 ; 5dec8 VermilionGymTrashSuccesText1: ; 5dec8 (17:5ec8) diff --git a/engine/hidden_object_functions18.asm b/engine/hidden_object_functions18.asm index 9d19dd7c..443f8369 100755 --- a/engine/hidden_object_functions18.asm +++ b/engine/hidden_object_functions18.asm @@ -73,35 +73,35 @@ PrintBenchGuyText: ; 6245d (18:645d) ; format: db map id, player sprite facing direction, text id of PredefTextIDPointerTable BenchGuyTextPointers: ; 6247e (18:647e) db VIRIDIAN_POKECENTER, SPRITE_FACING_LEFT - db $11 ; (ViridianCityPokecenterBenchGuyText_id - TextPredefs) / 2 + 1 + db_tx_pre ViridianCityPokecenterBenchGuyText db PEWTER_POKECENTER, SPRITE_FACING_LEFT - db $12 ; (PewterCityPokecenterBenchGuyText_id - TextPredefs) / 2 + 1 + db_tx_pre PewterCityPokecenterBenchGuyText db CERULEAN_POKECENTER, SPRITE_FACING_LEFT - db $13 ; (CeruleanCityPokecenterBenchGuyText_id - TextPredefs) / 2 + 1 + db_tx_pre CeruleanCityPokecenterBenchGuyText db LAVENDER_POKECENTER, SPRITE_FACING_LEFT - db $14 ; (LavenderCityPokecenterBenchGuyText_id - TextPredefs) / 2 + 1 + db_tx_pre LavenderCityPokecenterBenchGuyText db VERMILION_POKECENTER, SPRITE_FACING_LEFT - db $15 ; (VermilionCityPokecenterBenchGuyText_id - TextPredefs) / 2 + 1 + db_tx_pre VermilionCityPokecenterBenchGuyText db CELADON_POKECENTER, SPRITE_FACING_LEFT - db $16 ; (CeladonCityPokecenterBenchGuyText_id - TextPredefs) / 2 + 1 + db_tx_pre CeladonCityPokecenterBenchGuyText db CELADON_HOTEL, SPRITE_FACING_LEFT - db $17 ; (CeladonCityHotelText_id - TextPredefs) / 2 + 1 + db_tx_pre CeladonCityHotelText db FUCHSIA_POKECENTER, SPRITE_FACING_LEFT - db $18 ; (FuchsiaCityPokecenterBenchGuyText_id - TextPredefs) / 2 + 1 + db_tx_pre FuchsiaCityPokecenterBenchGuyText db CINNABAR_POKECENTER, SPRITE_FACING_LEFT - db $19 ; (CinnabarIslandPokecenterBenchGuyText_id - TextPredefs) / 2 + 1 + db_tx_pre CinnabarIslandPokecenterBenchGuyText db SAFFRON_POKECENTER, SPRITE_FACING_LEFT - db $1a ; (SaffronCityPokecenterBenchGuyText_id - TextPredefs) / 2 + 1 + db_tx_pre SaffronCityPokecenterBenchGuyText db MT_MOON_POKECENTER, SPRITE_FACING_LEFT - db $1b ; (MtMoonPokecenterBenchGuyText_id - TextPredefs) / 2 + 1 + db_tx_pre MtMoonPokecenterBenchGuyText db ROCK_TUNNEL_POKECENTER, SPRITE_FACING_LEFT - db $1c ; (RockTunnelPokecenterBenchGuyText_id - TextPredefs) / 2 + 1 + db_tx_pre RockTunnelPokecenterBenchGuyText db SAFARI_ZONE_REST_HOUSE_2,SPRITE_FACING_LEFT - db $1d + db_tx_pre UnusedBenchGuyText1 db SAFARI_ZONE_REST_HOUSE_3,SPRITE_FACING_LEFT - db $1e + db_tx_pre UnusedBenchGuyText2 db SAFARI_ZONE_REST_HOUSE_4,SPRITE_FACING_LEFT - db $1f + db_tx_pre UnusedBenchGuyText3 db $FF ViridianCityPokecenterBenchGuyText: ; 624a3 (18:64a3) diff --git a/engine/overworld/hidden_items.asm b/engine/overworld/hidden_items.asm index f7f81070..39bb385d 100755 --- a/engine/overworld/hidden_items.asm +++ b/engine/overworld/hidden_items.asm @@ -9,7 +9,7 @@ HiddenItems: ; 76688 (1d:6688) predef FlagActionPredef ld a, c and a - ret nz + jr nz, .asm_75fa5 call EnableAutoTextBoxDrawing ld a, 1 ld [wDoNotWaitForButtonPressAfterDisplayingText], a @@ -18,6 +18,11 @@ HiddenItems: ; 76688 (1d:6688) call GetItemName tx_pre_jump FoundHiddenItemText +.asm_75fa5 + ld a, $ff + ld [hItemAlreadyFound], a + ret + INCLUDE "data/hidden_item_coords.asm" FoundHiddenItemText: ; 7675b (1d:675b) @@ -54,7 +59,7 @@ HiddenCoins: ; 76799 (1d:6799) predef GetQuantityOfItemInBag ld a, b and a - ret z + jr z, .asm_760ce ld hl, HiddenCoinCoords call FindHiddenItemOrCoinsIndex ld [wHiddenItemOrCoinsIndex], a @@ -65,7 +70,7 @@ HiddenCoins: ; 76799 (1d:6799) predef FlagActionPredef ld a, c and a - ret nz + jr nz, .asm_760ce xor a ld [hUnusedCoinsByte], a ld [hCoins], a @@ -79,6 +84,12 @@ HiddenCoins: ; 76799 (1d:6799) cp 40 jr z, .bcd20 jr .bcd100 + +.asm_760ce + ld a, $ff + ld [hItemAlreadyFound], a + ret + .bcd10 ld a, $10 ld [hCoins + 1], a diff --git a/home.asm b/home.asm index 3d8db84f..e5a84d9b 100644 --- a/home.asm +++ b/home.asm @@ -4977,72 +4977,77 @@ SetMapTextPointer:: ; 3f54 (0:3f54) ret TextPredefs:: ; 3f67 (0:3f67) - dr $3f67,$4000 -; add_tx_pre CardKeySuccessText ; 01 -; add_tx_pre CardKeyFailText ; 02 -; add_tx_pre RedBedroomPC ; 03 -; add_tx_pre RedBedroomSNESText ; 04 -; add_tx_pre PushStartText ; 05 -; add_tx_pre SaveOptionText ; 06 -; add_tx_pre StrengthsAndWeaknessesText ; 07 -; add_tx_pre OakLabEmailText ; 08 -; add_tx_pre AerodactylFossilText ; 09 -; add_tx_pre Route15UpstairsBinocularsText ; 0A -; add_tx_pre KabutopsFossilText ; 0B -; add_tx_pre GymStatueText1 ; 0C -; add_tx_pre GymStatueText2 ; 0D -; add_tx_pre BookcaseText ; 0E -; add_tx_pre ViridianCityPokecenterBenchGuyText ; 0F -; add_tx_pre PewterCityPokecenterBenchGuyText ; 10 -; add_tx_pre CeruleanCityPokecenterBenchGuyText ; 11 -; add_tx_pre LavenderCityPokecenterBenchGuyText ; 12 -; add_tx_pre VermilionCityPokecenterBenchGuyText ; 13 -; add_tx_pre CeladonCityPokecenterBenchGuyText ; 14 -; add_tx_pre CeladonCityHotelText ; 15 -; add_tx_pre FuchsiaCityPokecenterBenchGuyText ; 16 -; add_tx_pre CinnabarIslandPokecenterBenchGuyText ; 17 -; add_tx_pre SaffronCityPokecenterBenchGuyText ; 18 -; add_tx_pre MtMoonPokecenterBenchGuyText ; 19 -; add_tx_pre RockTunnelPokecenterBenchGuyText ; 1A -; add_tx_pre UnusedBenchGuyText1 ; 1B -; add_tx_pre UnusedBenchGuyText2 ; 1C -; add_tx_pre UnusedBenchGuyText3 ; 1D -; add_tx_pre TerminatorText_62508 ; 1E -; add_tx_pre PredefText1f ; 1F -; add_tx_pre ViridianSchoolNotebook ; 20 -; add_tx_pre ViridianSchoolBlackboard ; 21 -; add_tx_pre JustAMomentText ; 22 -; add_tx_pre PredefText23 ; 23 -; add_tx_pre FoundHiddenItemText ; 24 -; add_tx_pre HiddenItemBagFullText ; 25 -; add_tx_pre VermilionGymTrashText ; 26 -; add_tx_pre IndigoPlateauHQText ; 27 -; add_tx_pre GameCornerOutOfOrderText ; 28 -; add_tx_pre GameCornerOutToLunchText ; 29 -; add_tx_pre GameCornerSomeonesKeysText ; 2A -; add_tx_pre FoundHiddenCoinsText ; 2B -; add_tx_pre DroppedHiddenCoinsText ; 2C -; add_tx_pre BillsHouseMonitorText ; 2D -; add_tx_pre BillsHouseInitiatedText ; 2E -; add_tx_pre BillsHousePokemonList ; 2F -; add_tx_pre MagazinesText ; 30 -; add_tx_pre CinnabarGymQuiz ; 31 -; add_tx_pre GameCornerNoCoinsText ; 32 -; add_tx_pre GameCornerCoinCaseText ; 33 -; add_tx_pre LinkCableHelp ; 34 -; add_tx_pre TMNotebook ; 35 -; add_tx_pre FightingDojoText ; 36 -; add_tx_pre FightingDojoText_52a10 ; 37 -; add_tx_pre FightingDojoText_52a1d ; 38 -; add_tx_pre NewBicycleText ; 39 -; add_tx_pre IndigoPlateauStatues ; 3A -; add_tx_pre VermilionGymTrashSuccesText1 ; 3B -; add_tx_pre VermilionGymTrashSuccesText2 ; 3C -; add_tx_pre VermilionGymTrashSuccesText3 ; 3D -; add_tx_pre VermilionGymTrashFailText ; 3E -; add_tx_pre TownMapText ; 3F -; add_tx_pre BookOrSculptureText ; 40 -; add_tx_pre ElevatorText ; 41 -; add_tx_pre PokemonStuffText ; 42 -; add_tx_pre $7a9b ; 43 -; add_tx_pre $7ad3 ; 44 +const_value = 1 + + add_tx_pre CardKeySuccessText ; 01 + add_tx_pre CardKeyFailText ; 02 + add_tx_pre RedBedroomPCText ; 03 + add_tx_pre RedBedroomSNESText ; 04 + add_tx_pre PushStartText ; 05 + add_tx_pre SaveOptionText ; 06 + add_tx_pre StrengthsAndWeaknessesText ; 07 + add_tx_pre OakLabEmailText ; 08 + add_tx_pre AerodactylFossilText ; 09 + add_tx_pre Route15UpstairsBinocularsText ; 0A + add_tx_pre KabutopsFossilText ; 0B + add_tx_pre FanClubPicture1Text ; 0C + add_tx_pre FanClubPicture2Text ; 0D + add_tx_pre GymStatueText1 ; 0E + add_tx_pre GymStatueText2 ; 0F + add_tx_pre BookcaseText ; 10 + add_tx_pre ViridianCityPokecenterBenchGuyText ; 11 + add_tx_pre PewterCityPokecenterBenchGuyText ; 12 + add_tx_pre CeruleanCityPokecenterBenchGuyText ; 13 + add_tx_pre LavenderCityPokecenterBenchGuyText ; 14 + add_tx_pre VermilionCityPokecenterBenchGuyText ; 15 + add_tx_pre CeladonCityPokecenterBenchGuyText ; 16 + add_tx_pre CeladonCityHotelText ; 17 + add_tx_pre FuchsiaCityPokecenterBenchGuyText ; 18 + add_tx_pre CinnabarIslandPokecenterBenchGuyText ; 19 + add_tx_pre SaffronCityPokecenterBenchGuyText ; 1A + add_tx_pre MtMoonPokecenterBenchGuyText ; 1B + add_tx_pre RockTunnelPokecenterBenchGuyText ; 1C + add_tx_pre UnusedBenchGuyText1 ; 1D + add_tx_pre UnusedBenchGuyText2 ; 1E + add_tx_pre UnusedBenchGuyText3 ; 1F + add_tx_pre UnusedPredefText ; 20 + add_tx_pre PokemonCenterPCText ; 21 + add_tx_pre ViridianSchoolNotebook ; 22 + add_tx_pre ViridianSchoolBlackboard ; 23 + ; add_tx_pre FakeTextPredef22 + ; add_tx_pre FakeTextPredef23 + add_tx_pre JustAMomentText ; 24 + add_tx_pre OpenBillsPCText ; 25 + add_tx_pre FoundHiddenItemText ; 26 + add_tx_pre HiddenItemBagFullText ; 27 + add_tx_pre VermilionGymTrashText ; 28 + add_tx_pre IndigoPlateauHQText ; 29 + add_tx_pre GameCornerOutOfOrderText ; 2A + add_tx_pre GameCornerOutToLunchText ; 2B + add_tx_pre GameCornerSomeonesKeysText ; 2C + add_tx_pre FoundHiddenCoinsText ; 2D + add_tx_pre DroppedHiddenCoinsText ; 2E + add_tx_pre BillsHouseMonitorText ; 2F + add_tx_pre BillsHouseInitiatedText ; 30 + add_tx_pre BillsHousePokemonList ; 31 + add_tx_pre MagazinesText ; 32 + add_tx_pre CinnabarGymQuiz ; 33 + add_tx_pre GameCornerNoCoinsText ; 34 + add_tx_pre GameCornerCoinCaseText ; 35 + add_tx_pre LinkCableHelp ; 36 + add_tx_pre TMNotebook ; 37 + add_tx_pre FightingDojoText ; 38 + add_tx_pre EnemiesOnEverySideText ; 39 + add_tx_pre WhatGoesAroundComesAroundText ; 3A + add_tx_pre NewBicycleText ; 3B + add_tx_pre IndigoPlateauStatues ; 3C XXX unused + add_tx_pre VermilionGymTrashSuccesText1 ; 3D + add_tx_pre VermilionGymTrashSuccesText2 ; 3E + add_tx_pre VermilionGymTrashSuccesText3 ; 3F + add_tx_pre VermilionGymTrashFailText ; 40 + add_tx_pre TownMapText ; 41 + add_tx_pre BookOrSculptureText ; 42 + add_tx_pre ElevatorText ; 43 + add_tx_pre PokemonStuffText ; 44 + + ; dr $3f67,$4000 diff --git a/hram.asm b/hram.asm index 21dbee05..eeb425f6 100644 --- a/hram.asm +++ b/hram.asm @@ -309,6 +309,8 @@ hCoordsInFrontOfPlayerMatch EQU $FFEA hSpriteAnimFrameCounter EQU $FFEA +hItemAlreadyFound EQU $FFEB + H_WHOSETURN EQU $FFF3 ; 0 on player’s turn, 1 on enemy’s turn hLCDCPointer EQU $FFF4 diff --git a/macros.asm b/macros.asm index c4318278..f153e379 100644 --- a/macros.asm +++ b/macros.asm @@ -342,11 +342,11 @@ add_tx_pre: MACRO ENDM db_tx_pre: MACRO - db \1_id + db (\1_id - TextPredefs) / 2 + 1 ENDM tx_pre_id: MACRO - ld a, \1_id ; - TextPredefs) / 2 + 1 + ld a, (\1_id - TextPredefs) / 2 + 1 ENDM tx_pre: MACRO diff --git a/main.asm b/main.asm index b32935de..a106b3a3 100755 --- a/main.asm +++ b/main.asm @@ -674,7 +674,9 @@ SECTION "bank11",ROMX,BANK[$11] INCLUDE "engine/pokedex_rating.asm" - dr $44251,$45077 + dr $44251,$443b7 +Mansion1Script_Switches: + dr $443b7,$45077 LoadSpinnerArrowTiles: ; 45077 (11:5077) dr $45077,$46bf3 @@ -850,12 +852,8 @@ VendingMachineMenu: ; 74726 (1d:4726) dr $74726,$75dfe PKMNLeaguePC: ; 75dfe (1d:5dfe) dr $75dfe,$75f74 -HiddenItems: ; 75f74 (1d:5f74) - dr $75f74,$75faa -INCLUDE "data/hidden_item_coords.asm" - - dr $76050,$76177 +INCLUDE "engine/overworld/hidden_items.asm" SECTION "bank1E",ROMX,BANK[$1E] -- cgit v1.2.3 From 35029fdc4a8ea99564f054c8cd53555d418de360 Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Tue, 24 May 2016 20:11:56 -0400 Subject: Trash can randomization function --- engine/bank3c.asm | 87 +++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 85 insertions(+), 2 deletions(-) diff --git a/engine/bank3c.asm b/engine/bank3c.asm index f5f9d696..2dedb64c 100644 --- a/engine/bank3c.asm +++ b/engine/bank3c.asm @@ -279,7 +279,90 @@ Func_f24ae: ; f24ae (3c:64ae) dr $f24ae, $f25f8 CheckForHiddenObject:: ; f25f8 (3c:65f8) dr $f25f8, $f268d + INCLUDE "data/hidden_objects.asm" - dr $f2cd0, $f2d0c + +Func_f2cd0: + ld d, 0 + ld hl, Jumptable_f2ce1 + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + call JumpToAddress + ld e, a + ld d, 0 + ret + +Jumptable_f2ce1: + dw Func_f2ceb + dw Func_f2ceb + dw Func_f2cee + dw Func_f2cf4 + dw Func_f2d06 + +Func_f2ceb: + ld a, 0 + ret + +Func_f2cee: + call Random + and $1 + ret + +Func_f2cf4: ; should return to a, instead returns to b + call Random + swap a + cp $55 + ld b, 0 + ret c + cp $aa + ld b, 1 + ret c + ld b, 2 + ret + +Func_f2d06: + call Random + and $3 + ret + Func_f2d0c: - dr $f2d0c, $f2db8 + ld hl, GymTrashCans3a + ld a, [wGymTrashCanIndex] + ld c, a + ld b, 0 + ld a, 9 + call AddNTimes + call AddNTimes ; ???? + ld a, [hli] + ld [hGymTrashCanRandNumMask], a + ld e, a + push hl + call Func_f2cd0 + pop hl + add hl, de + add hl, de + ld a, [hli] + ld [wSecondLockTrashCanIndex], a + ld a, [hl] + ld [wSecondLockTrashCanIndex + 1], a + ret + +GymTrashCans3a: ; f2d31 (3c:6d31) + db $04, $01, $03, $03, $01, $01, $ff, $03, $ff + db $03, $00, $02, $02, $04, $04, $00, $ff, $ff + db $04, $01, $05, $05, $01, $01, $ff, $05, $ff + db $03, $00, $04, $04, $06, $06, $00, $ff, $ff + db $04, $01, $03, $03, $01, $05, $05, $07, $07 + db $03, $02, $04, $04, $08, $08, $02, $ff, $ff + db $03, $03, $07, $07, $09, $09, $03, $ff, $ff + db $04, $04, $08, $06, $0a, $08, $04, $0a, $06 + db $03, $05, $07, $07, $0b, $0b, $05, $ff, $ff + db $03, $06, $0a, $0a, $0c, $0c, $06, $ff, $ff + db $04, $07, $09, $09, $07, $0b, $0d, $0d, $0b + db $03, $08, $0a, $0a, $0e, $0e, $08, $ff, $ff + db $04, $09, $0d, $0d, $09, $09, $ff, $0d, $ff + db $03, $0a, $0c, $0c, $0e, $0e, $0a, $ff, $ff + db $04, $0b, $0d, $0d, $0b, $0b, $ff, $0d, $ff -- cgit v1.2.3 From 1e0e17ec528f81ed698df39c9aaeddb58405ede7 Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Tue, 24 May 2016 20:25:21 -0400 Subject: Comment on bug in bank 3c trash can sampling function --- engine/bank3c.asm | 53 ++++++++++++++++++++++++++---------- engine/hidden_object_functions17.asm | 2 ++ 2 files changed, 40 insertions(+), 15 deletions(-) diff --git a/engine/bank3c.asm b/engine/bank3c.asm index 2dedb64c..4e5fca0a 100644 --- a/engine/bank3c.asm +++ b/engine/bank3c.asm @@ -351,18 +351,41 @@ Func_f2d0c: ret GymTrashCans3a: ; f2d31 (3c:6d31) - db $04, $01, $03, $03, $01, $01, $ff, $03, $ff - db $03, $00, $02, $02, $04, $04, $00, $ff, $ff - db $04, $01, $05, $05, $01, $01, $ff, $05, $ff - db $03, $00, $04, $04, $06, $06, $00, $ff, $ff - db $04, $01, $03, $03, $01, $05, $05, $07, $07 - db $03, $02, $04, $04, $08, $08, $02, $ff, $ff - db $03, $03, $07, $07, $09, $09, $03, $ff, $ff - db $04, $04, $08, $06, $0a, $08, $04, $0a, $06 - db $03, $05, $07, $07, $0b, $0b, $05, $ff, $ff - db $03, $06, $0a, $0a, $0c, $0c, $06, $ff, $ff - db $04, $07, $09, $09, $07, $0b, $0d, $0d, $0b - db $03, $08, $0a, $0a, $0e, $0e, $08, $ff, $ff - db $04, $09, $0d, $0d, $09, $09, $ff, $0d, $ff - db $03, $0a, $0c, $0c, $0e, $0e, $0a, $ff, $ff - db $04, $0b, $0d, $0d, $0b, $0b, $ff, $0d, $ff +; First byte: number of trashcan entries +; Following four byte pairs: indices for the second trash can. +; BUG: Rows that have 3 trashcan entries are sampled incorrectly. +; The sampling occurs by taking a random number and seeing which +; third of the range 0-255 the number falls in. However, it returns +; that value to the wrong register, so the result is never used. +; Instead of using an offset in [0,1,2], the offset is instead +; in the full range 0-255. This results in truly random behavior. + db 4 + db 1,3, 3,1, 1,-1, 3,-1 + db 3 + db 0,2, 2,4, 4,0, -1,-1 + db 4 + db 1,5, 5,1, 1,-1, 5,-1 + db 3 + db 0,4, 4,6, 6,0, -1,-1 + db 4 + db 1,3, 3,1, 5,5, 7,7 + db 3 + db 2,4, 4,8, 8,2, -1,-1 + db 3 + db 3,7, 7,9, 9,3, -1,-1 + db 4 + db 4,8, 6,10, 8,4, 10,6 + db 3 + db 5,7, 7,11, 11,5, -1,-1 + db 3 + db 6,10, 10,12, 12,6, -1,-1 + db 4 + db 7,9, 9,7, 11,13, 13,11 + db 3 + db 8,10, 10,14, 14,8, -1,-1 + db 4 + db 9,13, 13,9, 9,-1, 13,-1 + db 3 + db 10,12, 12,14, 14,10, -1,-1 + db 4 + db 11,13, 13,11, 11,-1, 13,-1 diff --git a/engine/hidden_object_functions17.asm b/engine/hidden_object_functions17.asm index 41f20218..8e5920d5 100755 --- a/engine/hidden_object_functions17.asm +++ b/engine/hidden_object_functions17.asm @@ -406,6 +406,8 @@ GymTrashCans: ; 5de7d (17:5e7d) ; Note that the mask is simply the number of valid trash can indices that ; follow. The remaining bytes are filled with -1 to pad the length of each entry ; to 5 bytes. +; This is functionally replaced with GymTrashCans3a but was never removed from source. + db 2, 1, 3, -1, -1 ; 0 db 3, 0, 2, 4, -1 ; 1 db 2, 1, 5, -1, -1 ; 2 -- cgit v1.2.3 From 39b2a1685c2d365bb8fdb976a91a43804b5f3e40 Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Tue, 24 May 2016 20:29:57 -0400 Subject: Replace hidden object file include in bank 3c --- engine/bank3c.asm | 4 +--- engine/overworld/hidden_objects.asm | 6 +++--- hram.asm | 2 ++ 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/engine/bank3c.asm b/engine/bank3c.asm index 4e5fca0a..e98153bc 100644 --- a/engine/bank3c.asm +++ b/engine/bank3c.asm @@ -277,10 +277,8 @@ BeachHouse_h: ; f220e (3c:620e) dr $f220e, $f24ae Func_f24ae: ; f24ae (3c:64ae) dr $f24ae, $f25f8 -CheckForHiddenObject:: ; f25f8 (3c:65f8) - dr $f25f8, $f268d -INCLUDE "data/hidden_objects.asm" +INCLUDE "engine/overworld/hidden_objects.asm" Func_f2cd0: ld d, 0 diff --git a/engine/overworld/hidden_objects.asm b/engine/overworld/hidden_objects.asm index 15496b81..cba2a221 100755 --- a/engine/overworld/hidden_objects.asm +++ b/engine/overworld/hidden_objects.asm @@ -1,6 +1,6 @@ -; if a hidden object was found, stores $00 in [$ffee], else stores $ff +; if a hidden object was found, stores $00 in [hDidntFindAnyHiddenObject], else stores $ff CheckForHiddenObject: ; f25f8 (3c:65f8) - ld hl, $ffeb + ld hl, hItemAlreadyFound xor a ld [hli], a ld [hli], a @@ -55,7 +55,7 @@ CheckForHiddenObject: ; f25f8 (3c:65f8) ret .noMatch ld a, $ff - ld [$ffee], a + ld [hDidntFindAnyHiddenObject], a ret ; checks if the coordinates in front of the player's sprite match Y in b and X in c diff --git a/hram.asm b/hram.asm index eeb425f6..7ec1393a 100644 --- a/hram.asm +++ b/hram.asm @@ -311,6 +311,8 @@ hSpriteAnimFrameCounter EQU $FFEA hItemAlreadyFound EQU $FFEB +hDidntFindAnyHiddenObject EQU $FFEE + H_WHOSETURN EQU $FFF3 ; 0 on player’s turn, 1 on enemy’s turn hLCDCPointer EQU $FFF4 -- cgit v1.2.3 From bda73a876c8d5e4939197f56dfef63b84af72f34 Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Tue, 24 May 2016 20:34:19 -0400 Subject: These are actually map indices --- engine/bank3c.asm | 31 ++++++++++++++++++++++++++----- 1 file changed, 26 insertions(+), 5 deletions(-) diff --git a/engine/bank3c.asm b/engine/bank3c.asm index e98153bc..e2aa941c 100644 --- a/engine/bank3c.asm +++ b/engine/bank3c.asm @@ -226,11 +226,32 @@ Func_f02da:: ; f02da (3c:42da) ret Pointer_f02fa:: ; f02fa (3c:42fa) - db $cf, $d0, $d1, $d2, $d3, $d4 - db $d5, $e9, $ea, $eb, $d6, $d7 - db $d8, $a5, $a6, $87, $c7, $ca - db $c6, $6c, $c2, $71, $f5, $f6 - db $f7, $ff + db SILPH_CO_2F + db SILPH_CO_3F + db SILPH_CO_4F + db SILPH_CO_5F + db SILPH_CO_6F + db SILPH_CO_7F + db SILPH_CO_8F + db SILPH_CO_9F + db SILPH_CO_10F + db SILPH_CO_11F + db MANSION_2 + db MANSION_3 + db MANSION_4 + db MANSION_1 + db CINNABAR_GYM + db GAME_CORNER + db ROCKET_HIDEOUT_1 + db ROCKET_HIDEOUT_4 + db VICTORY_ROAD_3 + db VICTORY_ROAD_1 + db VICTORY_ROAD_2 + db LANCES_ROOM + db LORELEIS_ROOM + db BRUNOS_ROOM + db AGATHAS_ROOM + db $ff BeachHouse_GFX:: ; f0314 (3c:4314) INCBIN "gfx/tilesets/beachhouse.2bpp" -- cgit v1.2.3 From 850b1186547b1603e9e8927a5985ad6d2deb8e56 Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Tue, 24 May 2016 20:43:52 -0400 Subject: We don't need this file anymore --- constants.asm | 1 - constants/tx_pre_constants.asm | 72 ------------------------------------------ 2 files changed, 73 deletions(-) delete mode 100644 constants/tx_pre_constants.asm diff --git a/constants.asm b/constants.asm index 24730d77..c5f4575e 100644 --- a/constants.asm +++ b/constants.asm @@ -29,7 +29,6 @@ INCLUDE "constants/music_constants.asm" INCLUDE "constants/tilesets.asm" INCLUDE "constants/starter_mons.asm" INCLUDE "constants/predef_constants.asm" -INCLUDE "constants/tx_pre_constants.asm" INCLUDE "constants/event_constants.asm" INCLUDE "constants/event_macros.asm" INCLUDE "constants/pikachu_emotion_constants.asm" \ No newline at end of file diff --git a/constants/tx_pre_constants.asm b/constants/tx_pre_constants.asm deleted file mode 100644 index 0e06a8e3..00000000 --- a/constants/tx_pre_constants.asm +++ /dev/null @@ -1,72 +0,0 @@ -; const_value = 1 - - ; tx_pre_const CardKeySuccessText ; 01 - ; tx_pre_const CardKeyFailText ; 02 - ; tx_pre_const RedBedroomPCText ; 03 - ; tx_pre_const RedBedroomSNESText ; 04 - ; tx_pre_const PushStartText ; 05 - ; tx_pre_const SaveOptionText ; 06 - ; tx_pre_const StrengthsAndWeaknessesText ; 07 - ; tx_pre_const OakLabEmailText ; 08 - ; tx_pre_const AerodactylFossilText ; 09 - ; tx_pre_const Route15UpstairsBinocularsText ; 0A - ; tx_pre_const KabutopsFossilText ; 0B - ; tx_pre_const FanClubRapidashText ; 0C - ; tx_pre_const FanClubFearowText ; 0D - ; tx_pre_const GymStatueText1 ; 0E - ; tx_pre_const GymStatueText2 ; 0F - ; tx_pre_const BookcaseText ; 10 - ; tx_pre_const ViridianCityPokecenterBenchGuyText ; 11 - ; tx_pre_const PewterCityPokecenterBenchGuyText ; 12 - ; tx_pre_const CeruleanCityPokecenterBenchGuyText ; 13 - ; tx_pre_const LavenderCityPokecenterBenchGuyText ; 14 - ; tx_pre_const VermilionCityPokecenterBenchGuyText ; 15 - ; tx_pre_const CeladonCityPokecenterBenchGuyText ; 16 - ; tx_pre_const CeladonCityHotelText ; 17 - ; tx_pre_const FuchsiaCityPokecenterBenchGuyText ; 18 - ; tx_pre_const CinnabarIslandPokecenterBenchGuyText ; 19 - ; tx_pre_const SaffronCityPokecenterBenchGuyText ; 1A - ; tx_pre_const MtMoonPokecenterBenchGuyText ; 1B - ; tx_pre_const RockTunnelPokecenterBenchGuyText ; 1C - ; tx_pre_const UnusedBenchGuyText1 ; 1D - ; tx_pre_const UnusedBenchGuyText2 ; 1E - ; tx_pre_const UnusedBenchGuyText3 ; 1F - ; tx_pre_const UnusedPredefText ; 20 - ; tx_pre_const PokemonCenterPCText ; 21 - ; tx_pre_const ViridianSchoolNotebook ; 22 - ; tx_pre_const ViridianSchoolBlackboard ; 23 - ; tx_pre_const FakeTextPredef22 - ; tx_pre_const FakeTextPredef23 - ; tx_pre_const JustAMomentText ; 24 - ; tx_pre_const OpenBillsPCText ; 25 - ; tx_pre_const FoundHiddenItemText ; 26 - ; tx_pre_const HiddenItemBagFullText ; 27 - ; tx_pre_const VermilionGymTrashText ; 28 - ; tx_pre_const IndigoPlateauHQText ; 29 - ; tx_pre_const GameCornerOutOfOrderText ; 2A - ; tx_pre_const GameCornerOutToLunchText ; 2B - ; tx_pre_const GameCornerSomeonesKeysText ; 2C - ; tx_pre_const FoundHiddenCoinsText ; 2D - ; tx_pre_const DroppedHiddenCoinsText ; 2E - ; tx_pre_const BillsHouseMonitorText ; 2F - ; tx_pre_const BillsHouseInitiatedText ; 30 - ; tx_pre_const BillsHousePokemonList ; 31 - ; tx_pre_const MagazinesText ; 32 - ; tx_pre_const CinnabarGymQuiz ; 33 - ; tx_pre_const GameCornerNoCoinsText ; 34 - ; tx_pre_const GameCornerCoinCaseText ; 35 - ; tx_pre_const LinkCableHelp ; 36 - ; tx_pre_const TMNotebook ; 37 - ; tx_pre_const FightingDojoText ; 38 - ; tx_pre_const EnemiesOnEverySideText ; 39 - ; tx_pre_const WhatGoesAroundComesAroundText ; 3A - ; tx_pre_const NewBicycleText ; 3B - ; tx_pre_const IndigoPlateauStatues ; 3C XXX unused - ; tx_pre_const VermilionGymTrashSuccesText1 ; 3D - ; tx_pre_const VermilionGymTrashSuccesText2 ; 3E - ; tx_pre_const VermilionGymTrashSuccesText3 ; 3F - ; tx_pre_const VermilionGymTrashFailText ; 40 - ; tx_pre_const TownMapText ; 41 - ; tx_pre_const BookOrSculptureText ; 42 - ; tx_pre_const ElevatorText ; 43 - ; tx_pre_const PokemonStuffText ; 44 -- cgit v1.2.3 From 436997a5c41f740de52bdce6fbe3044aa33bd317 Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Tue, 24 May 2016 21:06:48 -0400 Subject: Pretty up the hidden object data --- data/hidden_objects.asm | 342 ++++++++++++++++++++++++------------------------ 1 file changed, 171 insertions(+), 171 deletions(-) diff --git a/data/hidden_objects.asm b/data/hidden_objects.asm index 5b2b27d0..852d9d82 100755 --- a/data/hidden_objects.asm +++ b/data/hidden_objects.asm @@ -84,463 +84,463 @@ HiddenObjectMaps: ; f268d (3c:668d) ; format: y-coord, x-coord, text id/item id, object routine SilphCo11FHiddenObjects: - db $0c, $0a, $04 + db $0c, $0a, SPRITE_FACING_UP dba OpenPokemonCenterPC db $FF SilphCo5FHiddenObjects: - db $03, $0c, $52 + db $03, $0c, ELIXER dba HiddenItems db $FF SilphCo9FHiddenObjects: - db $0f, $02, $11 + db $0f, $02, MAX_POTION dba HiddenItems db $FF Mansion2HiddenObjects: - db $0b, $02, $04 + db $0b, $02, SPRITE_FACING_UP dba Mansion2Script_Switches db $FF Mansion3HiddenObjects: - db $09, $01, $36 + db $09, $01, MAX_REVIVE dba HiddenItems - db $05, $0a, $04 + db $05, $0a, SPRITE_FACING_UP dba Mansion3Script_Switches db $FF Mansion4HiddenObjects: - db $09, $01, $28 + db $09, $01, RARE_CANDY dba HiddenItems - db $03, $14, $04 + db $03, $14, SPRITE_FACING_UP dba Mansion4Script_Switches - db $19, $12, $04 + db $19, $12, SPRITE_FACING_UP dba Mansion4Script_Switches db $FF SafariZoneWestHiddenObjects: - db $05, $06, $35 + db $05, $06, REVIVE dba HiddenItems db $FF UnknownDungeon2HiddenObjects: - db $0d, $10, $4f + db $0d, $10, PP_UP dba HiddenItems db $FF UnknownDungeon3HiddenObjects: - db $0e, $08, $4f + db $0e, $08, PP_UP dba HiddenItems db $FF UnusedMap6FHiddenObjects: - db $0b, $0e, $53 + db $0b, $0e, MAX_ELIXER dba HiddenItems db $FF SeafoamIslands3HiddenObjects: - db $0f, $0f, $31 + db $0f, $0f, NUGGET dba HiddenItems db $FF SeafoamIslands4HiddenObjects: - db $10, $09, $53 + db $10, $09, MAX_ELIXER dba HiddenItems db $FF SeafoamIslands5HiddenObjects: - db $11, $19, $02 + db $11, $19, ULTRA_BALL dba HiddenItems db $FF ViridianForestHiddenObjects: - db $12, $01, $14 + db $12, $01, POTION dba HiddenItems - db $2a, $10, $0b + db $2a, $10, ANTIDOTE dba HiddenItems db $FF MtMoon3HiddenObjects: - db $0c, $12, $0a + db $0c, $12, MOON_STONE dba HiddenItems - db $09, $21, $50 + db $09, $21, ETHER dba HiddenItems db $FF SSAnne10HiddenObjects: - db $01, $03, $12 + db $01, $03, HYPER_POTION dba HiddenItems db $FF SSAnne6HiddenObjects: - db $05, $0d, $00 + db $05, $0d, SPRITE_FACING_DOWN dba PrintTrashText - db $07, $0d, $00 + db $07, $0d, SPRITE_FACING_DOWN dba PrintTrashText - db $09, $0d, $03 + db $09, $0d, GREAT_BALL dba HiddenItems db $FF UndergroundPathNsHiddenObjects: - db $04, $03, $10 + db $04, $03, FULL_RESTORE dba HiddenItems - db $22, $04, $44 + db $22, $04, X_SPECIAL dba HiddenItems db $FF UndergroundPathWeHiddenObjects: - db $02, $0c, $31 + db $02, $0c, NUGGET dba HiddenItems - db $05, $15, $52 + db $05, $15, ELIXER dba HiddenItems db $FF RocketHideout1HiddenObjects: - db $0f, $15, $4f + db $0f, $15, PP_UP dba HiddenItems db $FF RocketHideout3HiddenObjects: - db $11, $1b, $31 + db $11, $1b, NUGGET dba HiddenItems db $FF RocketHideout4HiddenObjects: - db $01, $19, $13 + db $01, $19, SUPER_POTION dba HiddenItems db $FF Route10HiddenObjects: - db $11, $09, $13 + db $11, $09, SUPER_POTION dba HiddenItems - db $35, $10, $51 + db $35, $10, MAX_ETHER dba HiddenItems db $FF RockTunnelPokecenterHiddenObjects: - db $04, $00, $08 + db $04, $00, SPRITE_FACING_LEFT dba PrintBenchGuyText - db $03, $0d, $04 + db $03, $0d, SPRITE_FACING_UP dba OpenPokemonCenterPC db $FF PowerPlantHiddenObjects: - db $10, $11, $53 + db $10, $11, MAX_ELIXER dba HiddenItems - db $01, $0c, $4f + db $01, $0c, PP_UP dba HiddenItems db $FF Route11HiddenObjects: - db $05, $30, $1d + db $05, $30, ESCAPE_ROPE dba HiddenItems db $FF Route12HiddenObjects: - db $3f, $02, $12 + db $3f, $02, HYPER_POTION dba HiddenItems db $FF Route13HiddenObjects: - db $0e, $01, $4f + db $0e, $01, PP_UP dba HiddenItems - db $0d, $10, $27 + db $0d, $10, CALCIUM dba HiddenItems db $FF Route15Gate2FHiddenObjects: - db $02, $01, $04 + db $02, $01, SPRITE_FACING_UP dba Route15GateLeftBinoculars db $FF Route17HiddenObjects: - db $0e, $0f, $28 + db $0e, $0f, RARE_CANDY dba HiddenItems - db $2d, $08, $10 + db $2d, $08, FULL_RESTORE dba HiddenItems - db $48, $11, $4f + db $48, $11, PP_UP dba HiddenItems - db $5b, $04, $36 + db $5b, $04, MAX_REVIVE dba HiddenItems - db $79, $08, $53 + db $79, $08, MAX_ELIXER dba HiddenItems db $FF Route23HiddenObjects: - db $2c, $09, $10 + db $2c, $09, FULL_RESTORE dba HiddenItems - db $46, $13, $02 + db $46, $13, ULTRA_BALL dba HiddenItems - db $5a, $08, $51 + db $5a, $08, MAX_ETHER dba HiddenItems db $FF VictoryRoad2HiddenObjects: - db $02, $05, $02 + db $02, $05, ULTRA_BALL dba HiddenItems - db $07, $1a, $10 + db $07, $1a, FULL_RESTORE dba HiddenItems db $FF Route25HiddenObjects: - db $03, $26, $50 + db $03, $26, ETHER dba HiddenItems - db $01, $0a, $52 + db $01, $0a, ELIXER dba HiddenItems db $FF BillsHouseHiddenObjects: - db $04, $01, $04 + db $04, $01, SPRITE_FACING_UP dba BillsHousePC db $FF Route4HiddenObjects: - db $03, $28, $03 + db $03, $28, GREAT_BALL dba HiddenItems db $FF MtMoonPokecenterHiddenObjects: - db $04, $00, $08 + db $04, $00, SPRITE_FACING_LEFT dba PrintBenchGuyText - db $03, $0d, $04 + db $03, $0d, SPRITE_FACING_UP dba OpenPokemonCenterPC db $FF Route9HiddenObjects: - db $07, $0e, $50 + db $07, $0e, ETHER dba HiddenItems db $FF TradeCenterHiddenObjects: db $04, $05, $d0 dba CableClubRightGameboy - db $04, $04, $d0 + db $04, $04, $d0 dba CableClubLeftGameboy db $FF ColosseumHiddenObjects: db $04, $05, $d0 dba CableClubRightGameboy - db $04, $04, $d0 + db $04, $04, $d0 dba CableClubLeftGameboy db $FF IndigoPlateauHiddenObjects: db $0d, $08, $ff dba PrintIndigoPlateauHQText - db $0d, $0b, $00 + db $0d, $0b, SPRITE_FACING_DOWN dba PrintIndigoPlateauHQText db $FF IndigoPlateauLobbyHiddenObjects: - db $07, $0f, $04 + db $07, $0f, SPRITE_FACING_UP dba OpenPokemonCenterPC db $FF CopycatsHouse2FHiddenObjects: - db $01, $01, $31 + db $01, $01, NUGGET dba HiddenItems db $FF FightingDojoHiddenObjects: - db $09, $03, $04 + db $09, $03, SPRITE_FACING_UP dba PrintFightingDojoText - db $09, $06, $04 + db $09, $06, SPRITE_FACING_UP dba PrintFightingDojoText - db $00, $04, $04 + db $00, $04, SPRITE_FACING_UP dba PrintFightingDojoText2 - db $00, $05, $04 + db $00, $05, SPRITE_FACING_UP dba PrintFightingDojoText3 db $FF SaffronGymHiddenObjects: - db $0f, $09, $04 + db $0f, $09, SPRITE_FACING_UP dba GymStatues db $FF SaffronPokecenterHiddenObjects: - db $04, $00, $04 + db $04, $00, SPRITE_FACING_UP dba PrintBenchGuyText - db $03, $0d, $04 + db $03, $0d, SPRITE_FACING_UP dba OpenPokemonCenterPC db $FF RedsHouse2FHiddenObjects: - db $01, $00, $04 + db $01, $00, SPRITE_FACING_UP dba OpenRedsPC - db $05, $03, $d0 + db $05, $03, $d0 dba PrintRedsNESText db $FF BluesHouseHiddenObjects: - db $01, $00, $04 + db $01, $00, SPRITE_FACING_UP dba PrintBookcaseText - db $01, $01, $04 + db $01, $01, SPRITE_FACING_UP dba PrintBookcaseText - db $01, $07, $04 + db $01, $07, SPRITE_FACING_UP dba PrintBookcaseText db $FF OaksLabHiddenObjects: - db $00, $04, $04 + db $00, $04, SPRITE_FACING_UP dba DisplayOakLabLeftPoster - db $00, $05, $04 + db $00, $05, SPRITE_FACING_UP dba DisplayOakLabRightPoster - db $01, $00, $04 + db $01, $00, SPRITE_FACING_UP dba DisplayOakLabEmailText - db $01, $01, $04 + db $01, $01, SPRITE_FACING_UP dba DisplayOakLabEmailText db $FF ViridianCityHiddenObjects: - db $04, $0e, $14 + db $04, $0e, POTION dba HiddenItems db $FF ViridianPokecenterHiddenObjects: - db $04, $00, $08 + db $04, $00, SPRITE_FACING_LEFT dba PrintBenchGuyText - db $03, $0d, $04 + db $03, $0d, SPRITE_FACING_UP dba OpenPokemonCenterPC db $FF ViridianSchoolHiddenObjects: - db $04, $03, $22 + db $04, $03, (ViridianSchoolNotebook_id - TextPredefs) / 2 + 1 dba PrintNotebookText - db $00, $03, $23 + db $00, $03, (ViridianSchoolBlackboard_id - TextPredefs) / 2 + 1 dba PrintBlackboardLinkCableText db $FF ViridianGymHiddenObjects: - db $0f, $0f, $04 + db $0f, $0f, SPRITE_FACING_UP dba GymStatues - db $0f, $12, $04 + db $0f, $12, SPRITE_FACING_UP dba GymStatues db $FF Museum1FHiddenObjects: - db $03, $02, $04 + db $03, $02, SPRITE_FACING_UP dba AerodactylFossil - db $06, $02, $04 + db $06, $02, SPRITE_FACING_UP dba KabutopsFossil db $FF PewterGymHiddenObjects: - db $0a, $03, $04 + db $0a, $03, SPRITE_FACING_UP dba GymStatues - db $0a, $06, $04 + db $0a, $06, SPRITE_FACING_UP dba GymStatues db $FF PewterPokecenterHiddenObjects: - db $04, $00, $08 + db $04, $00, SPRITE_FACING_LEFT dba PrintBenchGuyText - db $03, $0d, $04 + db $03, $0d, SPRITE_FACING_UP dba OpenPokemonCenterPC db $FF CeruleanCityHiddenObjects: - db $08, $0f, $28 + db $08, $0f, RARE_CANDY dba HiddenItems db $FF CeruleanPokecenterHiddenObjects: - db $04, $00, $08 + db $04, $00, SPRITE_FACING_LEFT dba PrintBenchGuyText - db $03, $0d, $04 + db $03, $0d, SPRITE_FACING_UP dba OpenPokemonCenterPC db $FF CeruleanGymHiddenObjects: - db $0b, $03, $04 + db $0b, $03, SPRITE_FACING_UP dba GymStatues - db $0b, $06, $04 + db $0b, $06, SPRITE_FACING_UP dba GymStatues db $FF BikeShopHiddenObjects: db $00, $01, $d0 dba PrintNewBikeText - db $01, $02, $d0 + db $01, $02, $d0 dba PrintNewBikeText - db $02, $01, $d0 + db $02, $01, $d0 dba PrintNewBikeText - db $02, $03, $d0 + db $02, $03, $d0 dba PrintNewBikeText - db $04, $00, $d0 + db $04, $00, $d0 dba PrintNewBikeText - db $05, $01, $d0 + db $05, $01, $d0 dba PrintNewBikeText db $FF UnknownDungeon1HiddenObjects: - db $07, $12, $4f + db $07, $12, PP_UP dba HiddenItems db $FF LavenderPokecenterHiddenObjects: - db $04, $00, $08 + db $04, $00, SPRITE_FACING_LEFT dba PrintBenchGuyText - db $03, $0d, $04 + db $03, $0d, SPRITE_FACING_UP dba OpenPokemonCenterPC db $FF Pokemontower5HiddenObjects: - db $0c, $04, $52 + db $0c, $04, ELIXER dba HiddenItems db $FF LavenderHouse1HiddenObjects: - db $01, $00, $00 + db $01, $00, SPRITE_FACING_DOWN dba PrintMagazinesText - db $01, $01, $00 + db $01, $01, SPRITE_FACING_DOWN dba PrintMagazinesText - db $01, $07, $00 + db $01, $07, SPRITE_FACING_DOWN dba PrintMagazinesText db $FF VermilionCityHiddenObjects: - db $0b, $0e, $51 + db $0b, $0e, MAX_ETHER dba HiddenItems db $FF VermilionPokecenterHiddenObjects: - db $03, $0d, $04 + db $03, $0d, SPRITE_FACING_UP dba OpenPokemonCenterPC - db $04, $00, $04 + db $04, $00, SPRITE_FACING_UP dba PrintBenchGuyText db $FF PokemonFanClubHiddenObjects: - db $00, $01, $04 + db $00, $01, SPRITE_FACING_UP dba FanClubPicture1 - db $00, $06, $04 + db $00, $06, SPRITE_FACING_UP dba FanClubPicture2 db $FF VermilionGymHiddenObjects: - db $0e, $03, $04 + db $0e, $03, SPRITE_FACING_UP dba GymStatues - db $0e, $06, $04 + db $0e, $06, SPRITE_FACING_UP dba GymStatues - db $01, $06, $00 + db $01, $06, SPRITE_FACING_DOWN dba PrintTrashText - db $07, $01, $00 + db $07, $01, 0 dba GymTrashScript - db $09, $01, $01 + db $09, $01, 1 dba GymTrashScript - db $0b, $01, $02 + db $0b, $01, 2 dba GymTrashScript - db $07, $03, $03 + db $07, $03, 3 dba GymTrashScript - db $09, $03, $04 + db $09, $03, 4 dba GymTrashScript - db $0b, $03, $05 + db $0b, $03, 5 dba GymTrashScript - db $07, $05, $06 + db $07, $05, 6 dba GymTrashScript - db $09, $05, $07 + db $09, $05, 7 dba GymTrashScript - db $0b, $05, $08 + db $0b, $05, 8 dba GymTrashScript - db $07, $07, $09 + db $07, $07, 9 dba GymTrashScript - db $09, $07, $0a + db $09, $07, 10 dba GymTrashScript - db $0b, $07, $0b + db $0b, $07, 11 dba GymTrashScript - db $07, $09, $0c + db $07, $09, 12 dba GymTrashScript - db $09, $09, $0d + db $09, $09, 13 dba GymTrashScript - db $0b, $09, $0e + db $0b, $09, 14 dba GymTrashScript db $FF CeladonCityHiddenObjects: - db $0f, $30, $4f + db $0f, $30, PP_UP dba HiddenItems db $FF CeladonHotelHiddenObjects: - db $04, $00, $08 + db $04, $00, SPRITE_FACING_LEFT dba PrintBenchGuyText db $FF CeladonMansion2HiddenObjects: - db $05, $00, $04 + db $05, $00, SPRITE_FACING_UP dba OpenPokemonCenterPC db $FF CeladonMansion5HiddenObjects: - db $00, $03, $36 - dbw $17, $5c7f - db $00, $04, $36 - dbw $17, $5c7f - db $04, $03, $37 - dbw $14, $68f6 + db $00, $03, (LinkCableHelp_id - TextPredefs) / 2 + 1 + dba PrintBlackboardLinkCableText + db $00, $04, (LinkCableHelp_id - TextPredefs) / 2 + 1 + dba PrintBlackboardLinkCableText + db $04, $03, (TMNotebook_id - TextPredefs) / 2 + 1 + dba PrintNotebookText db $FF CeladonPokecenterHiddenObjects: - db $04, $00, $08 + db $04, $00, SPRITE_FACING_LEFT dba PrintBenchGuyText - db $03, $0d, $04 + db $03, $0d, SPRITE_FACING_UP dba OpenPokemonCenterPC db $FF CeladonGymHiddenObjects: - db $0f, $03, $04 + db $0f, $03, SPRITE_FACING_UP dba GymStatues - db $0f, $06, $04 + db $0f, $06, SPRITE_FACING_UP dba GymStatues db $FF GameCornerHiddenObjects: db $0f, $12, $d0 dba StartSlotMachine - db $0e, $12, $d0 + db $0e, $12, $d0 dba StartSlotMachine - db $0d, $12, $d0 + db $0d, $12, $d0 dba StartSlotMachine - db $0c, $12, $d0 + db $0c, $12, $d0 dba StartSlotMachine - db $0b, $12, $d0 + db $0b, $12, $d0 dba StartSlotMachine - db $0a, $12, $ff + db $0a, $12, $ff ; "Someone's Keys" dba StartSlotMachine db $0a, $0d, $d0 dba StartSlotMachine db $0b, $0d, $d0 dba StartSlotMachine - db $0c, $0d, $fe + db $0c, $0d, $fe ; "Out To Lunch" dba StartSlotMachine db $0d, $0d, $d0 dba StartSlotMachine @@ -578,7 +578,7 @@ GameCornerHiddenObjects: dba StartSlotMachine db $0d, $06, $d0 dba StartSlotMachine - db $0c, $06, $fd + db $0c, $06, $fd ; "Out Of Order" dba StartSlotMachine db $0b, $06, $d0 dba StartSlotMachine @@ -622,53 +622,53 @@ GameCornerHiddenObjects: dba HiddenCoins db $FF FuchsiaPokecenterHiddenObjects: - db $03, $0d, $04 + db $03, $0d, SPRITE_FACING_UP dba OpenPokemonCenterPC - db $04, $00, $04 + db $04, $00, SPRITE_FACING_UP dba PrintBenchGuyText db $FF SafariZoneEntranceHiddenObjects: - db $01, $0a, $31 + db $01, $0a, NUGGET dba HiddenItems db $FF FuchsiaGymHiddenObjects: - db $0f, $03, $04 + db $0f, $03, SPRITE_FACING_UP dba GymStatues - db $0f, $06, $04 + db $0f, $06, SPRITE_FACING_UP dba GymStatues db $FF Mansion1HiddenObjects: - db $10, $08, $0a + db $10, $08, MOON_STONE dba HiddenItems - db $05, $02, $04 + db $05, $02, SPRITE_FACING_UP dba Mansion1Script_Switches db $FF CinnabarGymHiddenObjects: - db $0d, $11, $04 + db $0d, $11, SPRITE_FACING_UP dba GymStatues - db $07, $0f, $01 + db $07, $0f, (0 << 4) | 1 dba PrintCinnabarQuiz - db $01, $0a, $12 + db $01, $0a, (1 << 4) | 2 dba PrintCinnabarQuiz - db $07, $09, $13 + db $07, $09, (1 << 4) | 3 dba PrintCinnabarQuiz - db $0d, $09, $14 + db $0d, $09, (1 << 4) | 4 dba PrintCinnabarQuiz - db $0d, $01, $05 + db $0d, $01, (0 << 4) | 5 dba PrintCinnabarQuiz - db $07, $01, $16 + db $07, $01, (1 << 4) | 6 dba PrintCinnabarQuiz db $FF CinnabarLab4HiddenObjects: - db $04, $00, $04 + db $04, $00, SPRITE_FACING_UP dba OpenPokemonCenterPC - db $04, $02, $04 + db $04, $02, SPRITE_FACING_UP dba OpenPokemonCenterPC db $FF CinnabarPokecenterHiddenObjects: ; 6cc3 - db $04, $00, $04 + db $04, $00, SPRITE_FACING_UP dba PrintBenchGuyText - db $03, $0d, $04 + db $03, $0d, SPRITE_FACING_UP dba OpenPokemonCenterPC db $FF ; 6cd0 -- cgit v1.2.3 From 0ad4a73314dc9c8f5a94145d5da0bbe658066529 Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Tue, 24 May 2016 21:17:43 -0400 Subject: hidden_object macro; coords as dec --- data/hidden_objects.asm | 889 +++++++++++++++++++++--------------------------- 1 file changed, 381 insertions(+), 508 deletions(-) diff --git a/data/hidden_objects.asm b/data/hidden_objects.asm index 852d9d82..ccf32510 100755 --- a/data/hidden_objects.asm +++ b/data/hidden_objects.asm @@ -80,595 +80,468 @@ HiddenObjectMaps: ; f268d (3c:668d) dbw CINNABAR_GYM, CinnabarGymHiddenObjects dbw CINNABAR_LAB_4, CinnabarLab4HiddenObjects dbw CINNABAR_POKECENTER, CinnabarPokecenterHiddenObjects - db $FF + db $ff ; format: y-coord, x-coord, text id/item id, object routine +hidden_object: macro + db \1, \2, \3 + dba \4 + endm + SilphCo11FHiddenObjects: - db $0c, $0a, SPRITE_FACING_UP - dba OpenPokemonCenterPC - db $FF + hidden_object 12, 10, SPRITE_FACING_UP, OpenPokemonCenterPC + db $ff + SilphCo5FHiddenObjects: - db $03, $0c, ELIXER - dba HiddenItems - db $FF + hidden_object 3, 12, ELIXER, HiddenItems + db $ff + SilphCo9FHiddenObjects: - db $0f, $02, MAX_POTION - dba HiddenItems - db $FF + hidden_object 15, 2, MAX_POTION, HiddenItems + db $ff + Mansion2HiddenObjects: - db $0b, $02, SPRITE_FACING_UP - dba Mansion2Script_Switches - db $FF + hidden_object 11, 2, SPRITE_FACING_UP, Mansion2Script_Switches + db $ff + Mansion3HiddenObjects: - db $09, $01, MAX_REVIVE - dba HiddenItems - db $05, $0a, SPRITE_FACING_UP - dba Mansion3Script_Switches - db $FF + hidden_object 9, 1, MAX_REVIVE, HiddenItems + hidden_object 5, 10, SPRITE_FACING_UP, Mansion3Script_Switches + db $ff + Mansion4HiddenObjects: - db $09, $01, RARE_CANDY - dba HiddenItems - db $03, $14, SPRITE_FACING_UP - dba Mansion4Script_Switches - db $19, $12, SPRITE_FACING_UP - dba Mansion4Script_Switches - db $FF + hidden_object 9, 1, RARE_CANDY, HiddenItems + hidden_object 3, 20, SPRITE_FACING_UP, Mansion4Script_Switches + hidden_object 25, 18, SPRITE_FACING_UP, Mansion4Script_Switches + db $ff + SafariZoneWestHiddenObjects: - db $05, $06, REVIVE - dba HiddenItems - db $FF + hidden_object 5, 6, REVIVE, HiddenItems + db $ff + UnknownDungeon2HiddenObjects: - db $0d, $10, PP_UP - dba HiddenItems - db $FF + hidden_object 13, 16, PP_UP, HiddenItems + db $ff + UnknownDungeon3HiddenObjects: - db $0e, $08, PP_UP - dba HiddenItems - db $FF + hidden_object 14, 8, PP_UP, HiddenItems + db $ff + UnusedMap6FHiddenObjects: - db $0b, $0e, MAX_ELIXER - dba HiddenItems - db $FF + hidden_object 11, 14, MAX_ELIXER, HiddenItems + db $ff + SeafoamIslands3HiddenObjects: - db $0f, $0f, NUGGET - dba HiddenItems - db $FF + hidden_object 15, 15, NUGGET, HiddenItems + db $ff + SeafoamIslands4HiddenObjects: - db $10, $09, MAX_ELIXER - dba HiddenItems - db $FF + hidden_object 16, 9, MAX_ELIXER, HiddenItems + db $ff + SeafoamIslands5HiddenObjects: - db $11, $19, ULTRA_BALL - dba HiddenItems - db $FF + hidden_object 17, 25, ULTRA_BALL, HiddenItems + db $ff + ViridianForestHiddenObjects: - db $12, $01, POTION - dba HiddenItems - db $2a, $10, ANTIDOTE - dba HiddenItems - db $FF + hidden_object 18, 1, POTION, HiddenItems + hidden_object 42, 16, ANTIDOTE, HiddenItems + db $ff + MtMoon3HiddenObjects: - db $0c, $12, MOON_STONE - dba HiddenItems - db $09, $21, ETHER - dba HiddenItems - db $FF + hidden_object 12, 18, MOON_STONE, HiddenItems + hidden_object 9, 33, ETHER, HiddenItems + db $ff + SSAnne10HiddenObjects: - db $01, $03, HYPER_POTION - dba HiddenItems - db $FF + hidden_object 1, 3, HYPER_POTION, HiddenItems + db $ff + SSAnne6HiddenObjects: - db $05, $0d, SPRITE_FACING_DOWN - dba PrintTrashText - db $07, $0d, SPRITE_FACING_DOWN - dba PrintTrashText - db $09, $0d, GREAT_BALL - dba HiddenItems - db $FF + hidden_object 5, 13, SPRITE_FACING_DOWN, PrintTrashText + hidden_object 7, 13, SPRITE_FACING_DOWN, PrintTrashText + hidden_object 9, 13, GREAT_BALL, HiddenItems + db $ff + UndergroundPathNsHiddenObjects: - db $04, $03, FULL_RESTORE - dba HiddenItems - db $22, $04, X_SPECIAL - dba HiddenItems - db $FF + hidden_object 4, 3, FULL_RESTORE, HiddenItems + hidden_object 34, 4, X_SPECIAL, HiddenItems + db $ff + UndergroundPathWeHiddenObjects: - db $02, $0c, NUGGET - dba HiddenItems - db $05, $15, ELIXER - dba HiddenItems - db $FF + hidden_object 2, 12, NUGGET, HiddenItems + hidden_object 5, 21, ELIXER, HiddenItems + db $ff + RocketHideout1HiddenObjects: - db $0f, $15, PP_UP - dba HiddenItems - db $FF + hidden_object 15, 21, PP_UP, HiddenItems + db $ff + RocketHideout3HiddenObjects: - db $11, $1b, NUGGET - dba HiddenItems - db $FF + hidden_object 17, 27, NUGGET, HiddenItems + db $ff + RocketHideout4HiddenObjects: - db $01, $19, SUPER_POTION - dba HiddenItems - db $FF + hidden_object 1, 25, SUPER_POTION, HiddenItems + db $ff + Route10HiddenObjects: - db $11, $09, SUPER_POTION - dba HiddenItems - db $35, $10, MAX_ETHER - dba HiddenItems - db $FF + hidden_object 17, 9, SUPER_POTION, HiddenItems + hidden_object 53, 16, MAX_ETHER, HiddenItems + db $ff + RockTunnelPokecenterHiddenObjects: - db $04, $00, SPRITE_FACING_LEFT - dba PrintBenchGuyText - db $03, $0d, SPRITE_FACING_UP - dba OpenPokemonCenterPC - db $FF + hidden_object 4, 0, SPRITE_FACING_LEFT, PrintBenchGuyText + hidden_object 3, 13, SPRITE_FACING_UP, OpenPokemonCenterPC + db $ff + PowerPlantHiddenObjects: - db $10, $11, MAX_ELIXER - dba HiddenItems - db $01, $0c, PP_UP - dba HiddenItems - db $FF + hidden_object 16, 17, MAX_ELIXER, HiddenItems + hidden_object 1, 12, PP_UP, HiddenItems + db $ff + Route11HiddenObjects: - db $05, $30, ESCAPE_ROPE - dba HiddenItems - db $FF + hidden_object 5, 48, ESCAPE_ROPE, HiddenItems + db $ff + Route12HiddenObjects: - db $3f, $02, HYPER_POTION - dba HiddenItems - db $FF + hidden_object 63, 2, HYPER_POTION, HiddenItems + db $ff + Route13HiddenObjects: - db $0e, $01, PP_UP - dba HiddenItems - db $0d, $10, CALCIUM - dba HiddenItems - db $FF + hidden_object 14, 1, PP_UP, HiddenItems + hidden_object 13, 16, CALCIUM, HiddenItems + db $ff + Route15Gate2FHiddenObjects: - db $02, $01, SPRITE_FACING_UP - dba Route15GateLeftBinoculars - db $FF + hidden_object 2, 1, SPRITE_FACING_UP, Route15GateLeftBinoculars + db $ff + Route17HiddenObjects: - db $0e, $0f, RARE_CANDY - dba HiddenItems - db $2d, $08, FULL_RESTORE - dba HiddenItems - db $48, $11, PP_UP - dba HiddenItems - db $5b, $04, MAX_REVIVE - dba HiddenItems - db $79, $08, MAX_ELIXER - dba HiddenItems - db $FF + hidden_object 14, 15, RARE_CANDY, HiddenItems + hidden_object 45, 8, FULL_RESTORE, HiddenItems + hidden_object 72, 17, PP_UP, HiddenItems + hidden_object 91, 4, MAX_REVIVE, HiddenItems + hidden_object 121, 8, MAX_ELIXER, HiddenItems + db $ff + Route23HiddenObjects: - db $2c, $09, FULL_RESTORE - dba HiddenItems - db $46, $13, ULTRA_BALL - dba HiddenItems - db $5a, $08, MAX_ETHER - dba HiddenItems - db $FF + hidden_object 44, 9, FULL_RESTORE, HiddenItems + hidden_object 70, 19, ULTRA_BALL, HiddenItems + hidden_object 90, 8, MAX_ETHER, HiddenItems + db $ff + VictoryRoad2HiddenObjects: - db $02, $05, ULTRA_BALL - dba HiddenItems - db $07, $1a, FULL_RESTORE - dba HiddenItems - db $FF + hidden_object 2, 5, ULTRA_BALL, HiddenItems + hidden_object 7, 26, FULL_RESTORE, HiddenItems + db $ff + Route25HiddenObjects: - db $03, $26, ETHER - dba HiddenItems - db $01, $0a, ELIXER - dba HiddenItems - db $FF + hidden_object 3, 38, ETHER, HiddenItems + hidden_object 1, 10, ELIXER, HiddenItems + db $ff + BillsHouseHiddenObjects: - db $04, $01, SPRITE_FACING_UP - dba BillsHousePC - db $FF + hidden_object 4, 1, SPRITE_FACING_UP, BillsHousePC + db $ff + Route4HiddenObjects: - db $03, $28, GREAT_BALL - dba HiddenItems - db $FF + hidden_object 3, 40, GREAT_BALL, HiddenItems + db $ff + MtMoonPokecenterHiddenObjects: - db $04, $00, SPRITE_FACING_LEFT - dba PrintBenchGuyText - db $03, $0d, SPRITE_FACING_UP - dba OpenPokemonCenterPC - db $FF + hidden_object 4, 0, SPRITE_FACING_LEFT, PrintBenchGuyText + hidden_object 3, 13, SPRITE_FACING_UP, OpenPokemonCenterPC + db $ff + Route9HiddenObjects: - db $07, $0e, ETHER - dba HiddenItems - db $FF + hidden_object 7, 14, ETHER, HiddenItems + db $ff + TradeCenterHiddenObjects: - db $04, $05, $d0 - dba CableClubRightGameboy - db $04, $04, $d0 - dba CableClubLeftGameboy - db $FF + hidden_object 4, 5, $d0, CableClubRightGameboy + hidden_object 4, 4, $d0, CableClubLeftGameboy + db $ff + ColosseumHiddenObjects: - db $04, $05, $d0 - dba CableClubRightGameboy - db $04, $04, $d0 - dba CableClubLeftGameboy - db $FF + hidden_object 4, 5, $d0, CableClubRightGameboy + hidden_object 4, 4, $d0, CableClubLeftGameboy + db $ff + IndigoPlateauHiddenObjects: - db $0d, $08, $ff - dba PrintIndigoPlateauHQText - db $0d, $0b, SPRITE_FACING_DOWN - dba PrintIndigoPlateauHQText - db $FF + hidden_object 13, 8, $ff, PrintIndigoPlateauHQText + hidden_object 13, 11, SPRITE_FACING_DOWN, PrintIndigoPlateauHQText + db $ff + IndigoPlateauLobbyHiddenObjects: - db $07, $0f, SPRITE_FACING_UP - dba OpenPokemonCenterPC - db $FF + hidden_object 7, 15, SPRITE_FACING_UP, OpenPokemonCenterPC + db $ff + CopycatsHouse2FHiddenObjects: - db $01, $01, NUGGET - dba HiddenItems - db $FF + hidden_object 1, 1, NUGGET, HiddenItems + db $ff + FightingDojoHiddenObjects: - db $09, $03, SPRITE_FACING_UP - dba PrintFightingDojoText - db $09, $06, SPRITE_FACING_UP - dba PrintFightingDojoText - db $00, $04, SPRITE_FACING_UP - dba PrintFightingDojoText2 - db $00, $05, SPRITE_FACING_UP - dba PrintFightingDojoText3 - db $FF + hidden_object 9, 3, SPRITE_FACING_UP, PrintFightingDojoText + hidden_object 9, 6, SPRITE_FACING_UP, PrintFightingDojoText + hidden_object 0, 4, SPRITE_FACING_UP, PrintFightingDojoText2 + hidden_object 0, 5, SPRITE_FACING_UP, PrintFightingDojoText3 + db $ff + SaffronGymHiddenObjects: - db $0f, $09, SPRITE_FACING_UP - dba GymStatues - db $FF + hidden_object 15, 9, SPRITE_FACING_UP, GymStatues + db $ff + SaffronPokecenterHiddenObjects: - db $04, $00, SPRITE_FACING_UP - dba PrintBenchGuyText - db $03, $0d, SPRITE_FACING_UP - dba OpenPokemonCenterPC - db $FF + hidden_object 4, 0, SPRITE_FACING_UP, PrintBenchGuyText + hidden_object 3, 13, SPRITE_FACING_UP, OpenPokemonCenterPC + db $ff + RedsHouse2FHiddenObjects: - db $01, $00, SPRITE_FACING_UP - dba OpenRedsPC - db $05, $03, $d0 - dba PrintRedsNESText - db $FF + hidden_object 1, 0, SPRITE_FACING_UP, OpenRedsPC + hidden_object 5, 3, $d0, PrintRedsNESText + db $ff + BluesHouseHiddenObjects: - db $01, $00, SPRITE_FACING_UP - dba PrintBookcaseText - db $01, $01, SPRITE_FACING_UP - dba PrintBookcaseText - db $01, $07, SPRITE_FACING_UP - dba PrintBookcaseText - db $FF + hidden_object 1, 0, SPRITE_FACING_UP, PrintBookcaseText + hidden_object 1, 1, SPRITE_FACING_UP, PrintBookcaseText + hidden_object 1, 7, SPRITE_FACING_UP, PrintBookcaseText + db $ff + OaksLabHiddenObjects: - db $00, $04, SPRITE_FACING_UP - dba DisplayOakLabLeftPoster - db $00, $05, SPRITE_FACING_UP - dba DisplayOakLabRightPoster - db $01, $00, SPRITE_FACING_UP - dba DisplayOakLabEmailText - db $01, $01, SPRITE_FACING_UP - dba DisplayOakLabEmailText - db $FF + hidden_object 0, 4, SPRITE_FACING_UP, DisplayOakLabLeftPoster + hidden_object 0, 5, SPRITE_FACING_UP, DisplayOakLabRightPoster + hidden_object 1, 0, SPRITE_FACING_UP, DisplayOakLabEmailText + hidden_object 1, 1, SPRITE_FACING_UP, DisplayOakLabEmailText + db $ff + ViridianCityHiddenObjects: - db $04, $0e, POTION - dba HiddenItems - db $FF + hidden_object 4, 14, POTION, HiddenItems + db $ff + ViridianPokecenterHiddenObjects: - db $04, $00, SPRITE_FACING_LEFT - dba PrintBenchGuyText - db $03, $0d, SPRITE_FACING_UP - dba OpenPokemonCenterPC - db $FF + hidden_object 4, 0, SPRITE_FACING_LEFT, PrintBenchGuyText + hidden_object 3, 13, SPRITE_FACING_UP, OpenPokemonCenterPC + db $ff + ViridianSchoolHiddenObjects: - db $04, $03, (ViridianSchoolNotebook_id - TextPredefs) / 2 + 1 - dba PrintNotebookText - db $00, $03, (ViridianSchoolBlackboard_id - TextPredefs) / 2 + 1 - dba PrintBlackboardLinkCableText - db $FF + hidden_object 4, 3, (ViridianSchoolNotebook_id - TextPredefs) / 2 + 1, PrintNotebookText + hidden_object 0, 3, (ViridianSchoolBlackboard_id - TextPredefs) / 2 + 1, PrintBlackboardLinkCableText + db $ff + ViridianGymHiddenObjects: - db $0f, $0f, SPRITE_FACING_UP - dba GymStatues - db $0f, $12, SPRITE_FACING_UP - dba GymStatues - db $FF + hidden_object 15, 15, SPRITE_FACING_UP, GymStatues + hidden_object 15, 18, SPRITE_FACING_UP, GymStatues + db $ff + Museum1FHiddenObjects: - db $03, $02, SPRITE_FACING_UP - dba AerodactylFossil - db $06, $02, SPRITE_FACING_UP - dba KabutopsFossil - db $FF + hidden_object 3, 2, SPRITE_FACING_UP, AerodactylFossil + hidden_object 6, 2, SPRITE_FACING_UP, KabutopsFossil + db $ff + PewterGymHiddenObjects: - db $0a, $03, SPRITE_FACING_UP - dba GymStatues - db $0a, $06, SPRITE_FACING_UP - dba GymStatues - db $FF + hidden_object 10, 3, SPRITE_FACING_UP, GymStatues + hidden_object 10, 6, SPRITE_FACING_UP, GymStatues + db $ff + PewterPokecenterHiddenObjects: - db $04, $00, SPRITE_FACING_LEFT - dba PrintBenchGuyText - db $03, $0d, SPRITE_FACING_UP - dba OpenPokemonCenterPC - db $FF + hidden_object 4, 0, SPRITE_FACING_LEFT, PrintBenchGuyText + hidden_object 3, 13, SPRITE_FACING_UP, OpenPokemonCenterPC + db $ff + CeruleanCityHiddenObjects: - db $08, $0f, RARE_CANDY - dba HiddenItems - db $FF + hidden_object 8, 15, RARE_CANDY, HiddenItems + db $ff + CeruleanPokecenterHiddenObjects: - db $04, $00, SPRITE_FACING_LEFT - dba PrintBenchGuyText - db $03, $0d, SPRITE_FACING_UP - dba OpenPokemonCenterPC - db $FF + hidden_object 4, 0, SPRITE_FACING_LEFT, PrintBenchGuyText + hidden_object 3, 13, SPRITE_FACING_UP, OpenPokemonCenterPC + db $ff + CeruleanGymHiddenObjects: - db $0b, $03, SPRITE_FACING_UP - dba GymStatues - db $0b, $06, SPRITE_FACING_UP - dba GymStatues - db $FF + hidden_object 11, 3, SPRITE_FACING_UP, GymStatues + hidden_object 11, 6, SPRITE_FACING_UP, GymStatues + db $ff + BikeShopHiddenObjects: - db $00, $01, $d0 - dba PrintNewBikeText - db $01, $02, $d0 - dba PrintNewBikeText - db $02, $01, $d0 - dba PrintNewBikeText - db $02, $03, $d0 - dba PrintNewBikeText - db $04, $00, $d0 - dba PrintNewBikeText - db $05, $01, $d0 - dba PrintNewBikeText - db $FF + hidden_object 0, 1, $d0, PrintNewBikeText + hidden_object 1, 2, $d0, PrintNewBikeText + hidden_object 2, 1, $d0, PrintNewBikeText + hidden_object 2, 3, $d0, PrintNewBikeText + hidden_object 4, 0, $d0, PrintNewBikeText + hidden_object 5, 1, $d0, PrintNewBikeText + db $ff + UnknownDungeon1HiddenObjects: - db $07, $12, PP_UP - dba HiddenItems - db $FF + hidden_object 7, 18, PP_UP, HiddenItems + db $ff + LavenderPokecenterHiddenObjects: - db $04, $00, SPRITE_FACING_LEFT - dba PrintBenchGuyText - db $03, $0d, SPRITE_FACING_UP - dba OpenPokemonCenterPC - db $FF + hidden_object 4, 0, SPRITE_FACING_LEFT, PrintBenchGuyText + hidden_object 3, 13, SPRITE_FACING_UP, OpenPokemonCenterPC + db $ff + Pokemontower5HiddenObjects: - db $0c, $04, ELIXER - dba HiddenItems - db $FF + hidden_object 12, 4, ELIXER, HiddenItems + db $ff + LavenderHouse1HiddenObjects: - db $01, $00, SPRITE_FACING_DOWN - dba PrintMagazinesText - db $01, $01, SPRITE_FACING_DOWN - dba PrintMagazinesText - db $01, $07, SPRITE_FACING_DOWN - dba PrintMagazinesText - db $FF + hidden_object 1, 0, SPRITE_FACING_DOWN, PrintMagazinesText + hidden_object 1, 1, SPRITE_FACING_DOWN, PrintMagazinesText + hidden_object 1, 7, SPRITE_FACING_DOWN, PrintMagazinesText + db $ff + VermilionCityHiddenObjects: - db $0b, $0e, MAX_ETHER - dba HiddenItems - db $FF + hidden_object 11, 14, MAX_ETHER, HiddenItems + db $ff + VermilionPokecenterHiddenObjects: - db $03, $0d, SPRITE_FACING_UP - dba OpenPokemonCenterPC - db $04, $00, SPRITE_FACING_UP - dba PrintBenchGuyText - db $FF + hidden_object 3, 13, SPRITE_FACING_UP, OpenPokemonCenterPC + hidden_object 4, 0, SPRITE_FACING_UP, PrintBenchGuyText + db $ff + PokemonFanClubHiddenObjects: - db $00, $01, SPRITE_FACING_UP - dba FanClubPicture1 - db $00, $06, SPRITE_FACING_UP - dba FanClubPicture2 - db $FF + hidden_object 0, 1, SPRITE_FACING_UP, FanClubPicture1 + hidden_object 0, 6, SPRITE_FACING_UP, FanClubPicture2 + db $ff + VermilionGymHiddenObjects: - db $0e, $03, SPRITE_FACING_UP - dba GymStatues - db $0e, $06, SPRITE_FACING_UP - dba GymStatues - db $01, $06, SPRITE_FACING_DOWN - dba PrintTrashText - db $07, $01, 0 - dba GymTrashScript - db $09, $01, 1 - dba GymTrashScript - db $0b, $01, 2 - dba GymTrashScript - db $07, $03, 3 - dba GymTrashScript - db $09, $03, 4 - dba GymTrashScript - db $0b, $03, 5 - dba GymTrashScript - db $07, $05, 6 - dba GymTrashScript - db $09, $05, 7 - dba GymTrashScript - db $0b, $05, 8 - dba GymTrashScript - db $07, $07, 9 - dba GymTrashScript - db $09, $07, 10 - dba GymTrashScript - db $0b, $07, 11 - dba GymTrashScript - db $07, $09, 12 - dba GymTrashScript - db $09, $09, 13 - dba GymTrashScript - db $0b, $09, 14 - dba GymTrashScript - db $FF + hidden_object 14, 3, SPRITE_FACING_UP, GymStatues + hidden_object 14, 6, SPRITE_FACING_UP, GymStatues + hidden_object 1, 6, SPRITE_FACING_DOWN, PrintTrashText + hidden_object 7, 1, 0, GymTrashScript + hidden_object 9, 1, 1, GymTrashScript + hidden_object 11, 1, 2, GymTrashScript + hidden_object 7, 3, 3, GymTrashScript + hidden_object 9, 3, 4, GymTrashScript + hidden_object 11, 3, 5, GymTrashScript + hidden_object 7, 5, 6, GymTrashScript + hidden_object 9, 5, 7, GymTrashScript + hidden_object 11, 5, 8, GymTrashScript + hidden_object 7, 7, 9, GymTrashScript + hidden_object 9, 7, 10, GymTrashScript + hidden_object 11, 7, 11, GymTrashScript + hidden_object 7, 9, 12, GymTrashScript + hidden_object 9, 9, 13, GymTrashScript + hidden_object 11, 9, 14, GymTrashScript + db $ff + CeladonCityHiddenObjects: - db $0f, $30, PP_UP - dba HiddenItems - db $FF + hidden_object 15, 48, PP_UP, HiddenItems + db $ff + CeladonHotelHiddenObjects: - db $04, $00, SPRITE_FACING_LEFT - dba PrintBenchGuyText - db $FF + hidden_object 4, 0, SPRITE_FACING_LEFT, PrintBenchGuyText + db $ff + CeladonMansion2HiddenObjects: - db $05, $00, SPRITE_FACING_UP - dba OpenPokemonCenterPC - db $FF + hidden_object 5, 0, SPRITE_FACING_UP, OpenPokemonCenterPC + db $ff + CeladonMansion5HiddenObjects: - db $00, $03, (LinkCableHelp_id - TextPredefs) / 2 + 1 - dba PrintBlackboardLinkCableText - db $00, $04, (LinkCableHelp_id - TextPredefs) / 2 + 1 - dba PrintBlackboardLinkCableText - db $04, $03, (TMNotebook_id - TextPredefs) / 2 + 1 - dba PrintNotebookText - db $FF + hidden_object 0, 3, (LinkCableHelp_id - TextPredefs) / 2 + 1, PrintBlackboardLinkCableText + hidden_object 0, 4, (LinkCableHelp_id - TextPredefs) / 2 + 1, PrintBlackboardLinkCableText + hidden_object 4, 3, (TMNotebook_id - TextPredefs) / 2 + 1, PrintNotebookText + db $ff + CeladonPokecenterHiddenObjects: - db $04, $00, SPRITE_FACING_LEFT - dba PrintBenchGuyText - db $03, $0d, SPRITE_FACING_UP - dba OpenPokemonCenterPC - db $FF + hidden_object 4, 0, SPRITE_FACING_LEFT, PrintBenchGuyText + hidden_object 3, 13, SPRITE_FACING_UP, OpenPokemonCenterPC + db $ff + CeladonGymHiddenObjects: - db $0f, $03, SPRITE_FACING_UP - dba GymStatues - db $0f, $06, SPRITE_FACING_UP - dba GymStatues - db $FF + hidden_object 15, 3, SPRITE_FACING_UP, GymStatues + hidden_object 15, 6, SPRITE_FACING_UP, GymStatues + db $ff + GameCornerHiddenObjects: - db $0f, $12, $d0 - dba StartSlotMachine - db $0e, $12, $d0 - dba StartSlotMachine - db $0d, $12, $d0 - dba StartSlotMachine - db $0c, $12, $d0 - dba StartSlotMachine - db $0b, $12, $d0 - dba StartSlotMachine - db $0a, $12, $ff ; "Someone's Keys" - dba StartSlotMachine - db $0a, $0d, $d0 - dba StartSlotMachine - db $0b, $0d, $d0 - dba StartSlotMachine - db $0c, $0d, $fe ; "Out To Lunch" - dba StartSlotMachine - db $0d, $0d, $d0 - dba StartSlotMachine - db $0e, $0d, $d0 - dba StartSlotMachine - db $0f, $0d, $d0 - dba StartSlotMachine - db $0f, $0c, $d0 - dba StartSlotMachine - db $0e, $0c, $d0 - dba StartSlotMachine - db $0d, $0c, $d0 - dba StartSlotMachine - db $0c, $0c, $d0 - dba StartSlotMachine - db $0b, $0c, $d0 - dba StartSlotMachine - db $0a, $0c, $d0 - dba StartSlotMachine - db $0a, $07, $d0 - dba StartSlotMachine - db $0b, $07, $d0 - dba StartSlotMachine - db $0c, $07, $d0 - dba StartSlotMachine - db $0d, $07, $d0 - dba StartSlotMachine - db $0e, $07, $d0 - dba StartSlotMachine - db $0f, $07, $d0 - dba StartSlotMachine - db $0f, $06, $d0 - dba StartSlotMachine - db $0e, $06, $d0 - dba StartSlotMachine - db $0d, $06, $d0 - dba StartSlotMachine - db $0c, $06, $fd ; "Out Of Order" - dba StartSlotMachine - db $0b, $06, $d0 - dba StartSlotMachine - db $0a, $06, $d0 - dba StartSlotMachine - db $0a, $01, $d0 - dba StartSlotMachine - db $0b, $01, $d0 - dba StartSlotMachine - db $0c, $01, $d0 - dba StartSlotMachine - db $0d, $01, $d0 - dba StartSlotMachine - db $0e, $01, $d0 - dba StartSlotMachine - db $0f, $01, $d0 - dba StartSlotMachine - db $08, $00, COIN + 10 - dba HiddenCoins - db $10, $01, COIN + 10 - dba HiddenCoins - db $0b, $03, COIN + 20 - dba HiddenCoins - db $0e, $03, COIN + 10 - dba HiddenCoins - db $0c, $04, COIN + 10 - dba HiddenCoins - db $0c, $09, COIN + 20 - dba HiddenCoins - db $0f, $09, COIN + 10 - dba HiddenCoins - db $0e, $10, COIN + 10 - dba HiddenCoins - db $10, $0a, COIN + 10 - dba HiddenCoins - db $07, $0b, COIN + 40 - dba HiddenCoins - db $08, $0f, COIN + 100 - dba HiddenCoins - db $0f, $0c, COIN + 10 - dba HiddenCoins - db $FF + hidden_object 15, 18, $d0, StartSlotMachine + hidden_object 14, 18, $d0, StartSlotMachine + hidden_object 13, 18, $d0, StartSlotMachine + hidden_object 12, 18, $d0, StartSlotMachine + hidden_object 11, 18, $d0, StartSlotMachine + hidden_object 10, 18, $ff, StartSlotMachine ; "Someone's Keys" + hidden_object 10, 13, $d0, StartSlotMachine + hidden_object 11, 13, $d0, StartSlotMachine + hidden_object 12, 13, $fe, StartSlotMachine ; "Out To Lunch" + hidden_object 13, 13, $d0, StartSlotMachine + hidden_object 14, 13, $d0, StartSlotMachine + hidden_object 15, 13, $d0, StartSlotMachine + hidden_object 15, 12, $d0, StartSlotMachine + hidden_object 14, 12, $d0, StartSlotMachine + hidden_object 13, 12, $d0, StartSlotMachine + hidden_object 12, 12, $d0, StartSlotMachine + hidden_object 11, 12, $d0, StartSlotMachine + hidden_object 10, 12, $d0, StartSlotMachine + hidden_object 10, 7, $d0, StartSlotMachine + hidden_object 11, 7, $d0, StartSlotMachine + hidden_object 12, 7, $d0, StartSlotMachine + hidden_object 13, 7, $d0, StartSlotMachine + hidden_object 14, 7, $d0, StartSlotMachine + hidden_object 15, 7, $d0, StartSlotMachine + hidden_object 15, 6, $d0, StartSlotMachine + hidden_object 14, 6, $d0, StartSlotMachine + hidden_object 13, 6, $d0, StartSlotMachine + hidden_object 12, 6, $fd, StartSlotMachine ; "Out Of Order" + hidden_object 11, 6, $d0, StartSlotMachine + hidden_object 10, 6, $d0, StartSlotMachine + hidden_object 10, 1, $d0, StartSlotMachine + hidden_object 11, 1, $d0, StartSlotMachine + hidden_object 12, 1, $d0, StartSlotMachine + hidden_object 13, 1, $d0, StartSlotMachine + hidden_object 14, 1, $d0, StartSlotMachine + hidden_object 15, 1, $d0, StartSlotMachine + hidden_object 8, 0, COIN + 10, HiddenCoins + hidden_object 16, 1, COIN + 10, HiddenCoins + hidden_object 11, 3, COIN + 20, HiddenCoins + hidden_object 14, 3, COIN + 10, HiddenCoins + hidden_object 12, 4, COIN + 10, HiddenCoins + hidden_object 12, 9, COIN + 20, HiddenCoins + hidden_object 15, 9, COIN + 10, HiddenCoins + hidden_object 14, 16, COIN + 10, HiddenCoins + hidden_object 16, 10, COIN + 10, HiddenCoins + hidden_object 7, 11, COIN + 40, HiddenCoins + hidden_object 8, 15, COIN + 100, HiddenCoins + hidden_object 15, 12, COIN + 10, HiddenCoins + db $ff + FuchsiaPokecenterHiddenObjects: - db $03, $0d, SPRITE_FACING_UP - dba OpenPokemonCenterPC - db $04, $00, SPRITE_FACING_UP - dba PrintBenchGuyText - db $FF + hidden_object 3, 13, SPRITE_FACING_UP, OpenPokemonCenterPC + hidden_object 4, 0, SPRITE_FACING_UP, PrintBenchGuyText + db $ff + SafariZoneEntranceHiddenObjects: - db $01, $0a, NUGGET - dba HiddenItems - db $FF + hidden_object 1, 10, NUGGET, HiddenItems + db $ff + FuchsiaGymHiddenObjects: - db $0f, $03, SPRITE_FACING_UP - dba GymStatues - db $0f, $06, SPRITE_FACING_UP - dba GymStatues - db $FF + hidden_object 15, 3, SPRITE_FACING_UP, GymStatues + hidden_object 15, 6, SPRITE_FACING_UP, GymStatues + db $ff + Mansion1HiddenObjects: - db $10, $08, MOON_STONE - dba HiddenItems - db $05, $02, SPRITE_FACING_UP - dba Mansion1Script_Switches - db $FF + hidden_object 16, 8, MOON_STONE, HiddenItems + hidden_object 5, 2, SPRITE_FACING_UP, Mansion1Script_Switches + db $ff + CinnabarGymHiddenObjects: - db $0d, $11, SPRITE_FACING_UP - dba GymStatues - db $07, $0f, (0 << 4) | 1 - dba PrintCinnabarQuiz - db $01, $0a, (1 << 4) | 2 - dba PrintCinnabarQuiz - db $07, $09, (1 << 4) | 3 - dba PrintCinnabarQuiz - db $0d, $09, (1 << 4) | 4 - dba PrintCinnabarQuiz - db $0d, $01, (0 << 4) | 5 - dba PrintCinnabarQuiz - db $07, $01, (1 << 4) | 6 - dba PrintCinnabarQuiz - db $FF + hidden_object 13, 17, SPRITE_FACING_UP, GymStatues + hidden_object 7, 15, (0 << 4) | 1, PrintCinnabarQuiz + hidden_object 1, 10, (1 << 4) | 2, PrintCinnabarQuiz + hidden_object 7, 9, (1 << 4) | 3, PrintCinnabarQuiz + hidden_object 13, 9, (1 << 4) | 4, PrintCinnabarQuiz + hidden_object 13, 1, (0 << 4) | 5, PrintCinnabarQuiz + hidden_object 7, 1, (1 << 4) | 6, PrintCinnabarQuiz + db $ff + CinnabarLab4HiddenObjects: - db $04, $00, SPRITE_FACING_UP - dba OpenPokemonCenterPC - db $04, $02, SPRITE_FACING_UP - dba OpenPokemonCenterPC - db $FF + hidden_object 4, 0, SPRITE_FACING_UP, OpenPokemonCenterPC + hidden_object 4, 2, SPRITE_FACING_UP, OpenPokemonCenterPC + db $ff + CinnabarPokecenterHiddenObjects: ; 6cc3 - db $04, $00, SPRITE_FACING_UP - dba PrintBenchGuyText - db $03, $0d, SPRITE_FACING_UP - dba OpenPokemonCenterPC - db $FF + hidden_object 4, 0, SPRITE_FACING_UP, PrintBenchGuyText + hidden_object 3, 13, SPRITE_FACING_UP, OpenPokemonCenterPC + db $ff + ; 6cd0 -- cgit v1.2.3 From 604fc2ada31f430da07debbd39a575bf69821137 Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Tue, 24 May 2016 21:46:08 -0400 Subject: Actually include the Beach House scripts and headers --- data/mapHeaders/beach_house.asm | 2 +- engine/bank3c.asm | 15 +++- main.asm | 2 +- scripts/beach_house.asm | 160 ++++++++++++++++++++-------------------- 4 files changed, 91 insertions(+), 88 deletions(-) diff --git a/data/mapHeaders/beach_house.asm b/data/mapHeaders/beach_house.asm index 99d237f6..04652643 100644 --- a/data/mapHeaders/beach_house.asm +++ b/data/mapHeaders/beach_house.asm @@ -1,4 +1,4 @@ -BeachHouse_h: +BeachHouse_h: ; f220e (3c:620e) db BEACH_HOUSE_TILESET db BEACH_HOUSE_HEIGHT, BEACH_HOUSE_WIDTH ; dimensions (y, x) diff --git a/engine/bank3c.asm b/engine/bank3c.asm index e2aa941c..db31842b 100644 --- a/engine/bank3c.asm +++ b/engine/bank3c.asm @@ -292,11 +292,18 @@ Pointer_f0a76:: ; f0a76 (3c:4a76) db $27, $07, $7b, $4a, $ff db $01, $ec, $02, $ed, $03, $ee, $ff +Func_f0a82: ; f0a82 dr $f0a82, $f220e -BeachHouse_h: ; f220e (3c:620e) -;INCLUDE "data/mapHeaders/beach_house.asm" - dr $f220e, $f24ae -Func_f24ae: ; f24ae (3c:64ae) + +INCLUDE "data/mapHeaders/beach_house.asm" +INCLUDE "scripts/beach_house.asm" +BeachHouseBlockdata: ; f2388 (3c:6388) +INCBIN "maps/beach_house.blk" +INCLUDE "data/mapObjects/beach_house.asm" + +Func_f23d0: ; f23d0 + dr $f23d0, $f24ae +Func_f24ae: ; f24ae dr $f24ae, $f25f8 INCLUDE "engine/overworld/hidden_objects.asm" diff --git a/main.asm b/main.asm index a106b3a3..c77d840f 100755 --- a/main.asm +++ b/main.asm @@ -943,7 +943,7 @@ SECTION "bank3D",ROMX,BANK[$3D] INCLUDE "engine/bank3d.asm" SECTION "bank3E",ROMX,BANK[$3E] - +Func_f8000: ; f8000 dr $f8000,$f982d PlayIntroScene: ; f982d (3e:582d) dr $f982d,$fa35a diff --git a/scripts/beach_house.asm b/scripts/beach_house.asm index d6112df7..6d53b7ce 100644 --- a/scripts/beach_house.asm +++ b/scripts/beach_house.asm @@ -12,37 +12,35 @@ BeachHouseTextPointers: SurfinDudeText: TX_ASM - ld a,[$d471] - bit 6,a - jr nz,.next - ld hl,.SurfinDudeText4 + ld a, [wd472] + bit 6, a + jr nz, .next + ld hl, .SurfinDudeText4 call PrintText jr .done .next - ld hl,$d492 - bit 0,[hl] - set 0,[hl] - jr nz,.next2 - ld hl,.SurfinDudeText1 + ld hl, wPreventBlackout + bit 0, [hl] + set 0, [hl] + jr nz, .next2 + ld hl, .SurfinDudeText1 jr .next3 .next2 - ld hl,.SurfinDudeText3 + ld hl, .SurfinDudeText3 .next3 call PrintText call YesNoChoice - ld a,[wCurrentMenuItem] + ld a, [wCurrentMenuItem] and a - jr nz,.xf226b - ld a,1 - ld [$cc3c],a - ld b,$3e - ld hl,$4000 - call $3e84 - ld hl,$d492 - set 1,[hl] + jr nz, .asm_f226b + ld a, 1 + ld [wDoNotWaitForButtonPressAfterDisplayingText], a + callba Func_f8000 + ld hl, wPreventBlackout + set 1, [hl] jr .done -.xf226b - ld hl,.SurfinDudeText2 +.asm_f226b + ld hl, .SurfinDudeText2 call PrintText .done jp TextScriptEnd @@ -62,9 +60,9 @@ SurfinDudeText: BeachHousePikachuText: TX_ASM - ld hl,.BeachHousePikachuText + ld hl, .BeachHousePikachuText call PrintText - ld a,PIKACHU + ld a, PIKACHU call PlayCry call WaitForSoundToFinish jp TextScriptEnd @@ -75,11 +73,11 @@ BeachHousePikachuText: BeachHouseSign1Text: TX_ASM - ld hl,.BeachHouseSign1Text2 - ld a,[$d471] - bit 6,a - jr z,.next - ld hl,.BeachHouseSign1Text1 + ld hl, .BeachHouseSign1Text2 + ld a, [wd472] + bit 6, a + jr z, .next + ld hl, .BeachHouseSign1Text1 .next call PrintText jp TextScriptEnd @@ -93,11 +91,11 @@ BeachHouseSign1Text: BeachHouseSign2Text: TX_ASM - ld hl,.BeachHouseSign2Text2 - ld a,[$d471] - bit 6,a - jr z,.next - ld hl,.BeachHouseSign2Text1 + ld hl, .BeachHouseSign2Text2 + ld a, [wd472] + bit 6, a + jr z, .next + ld hl, .BeachHouseSign2Text1 .next call PrintText jp TextScriptEnd @@ -111,11 +109,11 @@ BeachHouseSign2Text: BeachHouseSign3Text: TX_ASM - ld hl,.BeachHouseSign3Text2 - ld a,[$d471] - bit 6,a - jr z,.next - ld hl,.BeachHouseSign3Text1 + ld hl, .BeachHouseSign3Text2 + ld a, [wd472] + bit 6, a + jr z, .next + ld hl, .BeachHouseSign3Text1 .next call PrintText jp TextScriptEnd @@ -129,67 +127,65 @@ BeachHouseSign3Text: BeachHouseSign4Text: TX_ASM - ld a,1 - ld [$cc3c],a - ld a,[$d471] - bit 6,a - jr z,.xf2369 + ld a, 1 + ld [wDoNotWaitForButtonPressAfterDisplayingText], a + ld a, [wd472] + bit 6, a + jr z, .asm_f2369 - ld hl,$d492 - bit 1,[hl] - jr z,.next2 - ld a,0 - ld [$cc3c],a + ld hl, wPreventBlackout + bit 1, [hl] + jr z, .next2 + ld a, 0 + ld [wDoNotWaitForButtonPressAfterDisplayingText], a .next2 - ld hl,.BeachHousePrinterText2 + ld hl, .BeachHousePrinterText2 call PrintText - ld a,[$d492] - bit 1,a - jr z,.xf236f + ld a, [wPreventBlackout] + bit 1, a + jr z, .asm_f236f - ld a,1 - ld [$cc3c],a - ld hl,.BeachHousePrinterText3 + ld a, 1 + ld [wDoNotWaitForButtonPressAfterDisplayingText], a + ld hl, .BeachHousePrinterText3 call PrintText call YesNoChoice - ld a,[wCurrentMenuItem] + ld a, [wCurrentMenuItem] and a - jp z,$63d0 ; 0xf23d0 - call $36ec - ld hl,$d72f - set 6,[hl] + jp z, Func_f23d0 ; 0xf23d0 + call SaveScreenTilesToBuffer2 + ld hl, wd730 + set 6, [hl] xor a - ld [$cfca],a - ld hl,$510a - ld b,$3a - call $3e84 - call $3852 - ld hl,$d72f - res 6,[hl] - call $3dd8 - call $2f83 - call $3dc2 - call $36f8 - call $3ddb - call $3de0 - ld a,1 - ld [$cfca],a - jr .xf236f -.xf2369 - ld hl,.BeachHousePrinterText1 + ld [wUpdateSpritesEnabled], a + callab Func_e910a + call WaitForTextScrollButtonPress + ld hl, wd730 + res 6, [hl] + call GBPalWhiteOutWithDelay3 + call ReloadTilesetTilePatterns + call RestoreScreenTilesAndReloadTilePatterns + call LoadScreenTilesFromBuffer2 + call Delay3 + call GBPalNormal + ld a, 1 + ld [wUpdateSpritesEnabled], a + jr .asm_f236f +.asm_f2369 + ld hl, .BeachHousePrinterText1 call PrintText -.xf236f +.asm_f236f jp TextScriptEnd .BeachHousePrinterText1 TX_FAR _BeachHousePrinterText1 - db $d,"@" + db $d, "@" .BeachHousePrinterText2 TX_FAR _BeachHousePrinterText2 - db $d,"@" + db $d, "@" .BeachHousePrinterText3 TX_FAR _BeachHousePrinterText3 db "@" -.xf2383 +.BeachHousePrinterText4 TX_FAR _BeachHousePrinterText4 db "@" -- cgit v1.2.3 From 1746ac03c35fe1f7d1af0ccee5d70bc3672f05ae Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Tue, 24 May 2016 22:03:01 -0400 Subject: Func_f0a82 --- engine/bank3c.asm | 29 ++++++++++++++++++++++++++++- engine/bank3f.asm | 4 +++- 2 files changed, 31 insertions(+), 2 deletions(-) diff --git a/engine/bank3c.asm b/engine/bank3c.asm index db31842b..fe2d192f 100644 --- a/engine/bank3c.asm +++ b/engine/bank3c.asm @@ -293,7 +293,34 @@ Pointer_f0a76:: ; f0a76 (3c:4a76) db $01, $ec, $02, $ed, $03, $ee, $ff Func_f0a82: ; f0a82 - dr $f0a82, $f220e + ld a, [wd472] + bit 7, a + ret z + ld a, [wWalkBikeSurfState] + and a + ret nz + push hl + push bc + callab Func_fcb4d + pop bc + pop hl + ld a, b + cp e + ret nz + push hl + ld a, [wUpdateSpritesEnabled] + push af + ld a, $ff + ld [wUpdateSpritesEnabled], a + callab Func_fd831 + pop af + ld [wUpdateSpritesEnabled], a + pop hl + call Func_159b + callab Func_fcba1 + ret + + dr $f0abf, $f220e INCLUDE "data/mapHeaders/beach_house.asm" INCLUDE "scripts/beach_house.asm" diff --git a/engine/bank3f.asm b/engine/bank3f.asm index 92e6d857..b36a3761 100644 --- a/engine/bank3f.asm +++ b/engine/bank3f.asm @@ -2296,7 +2296,9 @@ Pointer_fd230: ; fd230 (3f:5230) Func_fd252: ; fd252 (3f:5252) dr $fd252,$fd2a1 Func_fd2a1:: ; fd2a1 (3f:52a1) - dr $fd2a1,$fd8ab + dr $fd2a1,$fd831 +Func_fd831: + dr $fd831,$fd8ab Func_fd8ab: ; fd8ab (3f:58ab) dr $fd8ab,$fd8d4 Func_fd8d4: ; fd8d4 (3f:58d4) -- cgit v1.2.3 From 1f8a845185f07f88e637e187db45de5a185813ab Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Tue, 24 May 2016 22:34:41 -0400 Subject: A couple more funcs in bank 3f --- engine/bank3f.asm | 95 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 94 insertions(+), 1 deletion(-) diff --git a/engine/bank3f.asm b/engine/bank3f.asm index b36a3761..a30361d9 100644 --- a/engine/bank3f.asm +++ b/engine/bank3f.asm @@ -2295,8 +2295,101 @@ Pointer_fd230: ; fd230 (3f:5230) dr $fd230,$fd252 Func_fd252: ; fd252 (3f:5252) dr $fd252,$fd2a1 + Func_fd2a1:: ; fd2a1 (3f:52a1) - dr $fd2a1,$fd831 + ld a, b + ld [wd44a], a + ld a, l + ld [wd44b], a + ld a, h + ld [wd44b + 1], a + call Func_fd2c1 +.asm_fd2b0 + call Func_fd2f5 + jr nc, .asm_fd2ba + call Func_fd329 + jr .asm_fd2b0 + +.asm_fd2ba + call Func_fd2c1 + call DelayFrame + ret + +Func_fd2c1: + ld a, [wUpdateSpritesEnabled] + push af + ld a, $ff + ld [wUpdateSpritesEnabled], a + push hl + push de + push bc + + ld hl, wSpriteStateData1 + ld de, wSpriteStateData1 + $f0 + ld c, $10 + call Func_fd2eb + + ld hl, wSpriteStateData2 + ld de, wSpriteStateData2 + $f0 + ld c, $10 + call Func_fd2eb + + pop bc + pop de + pop hl + pop af + ld [wUpdateSpritesEnabled], a + ret + +Func_fd2eb: +.asm_fd2eb + ld b, [hl] + ld a, [de] + ld [hli], a + ld a, b + ld [de], a + inc de + dec c + jr nz, .asm_fd2eb + ret + +Func_fd2f5: + call Func_157c + cp $3f + ret z + ld c, a + ld b, 0 + ld hl, Data_fd3b0 + add hl, bc + add hl, bc + add hl, bc + add hl, bc + ld a, [hli] + ld [wd44b + 4], a + ld a, [hli] + cp $80 + jr nz, .asm_fd311 + call Func_157c +.asm_fd311 + ld [wd44b + 3], a + ld a, [hli] + ld [wd44b + 6], a + ld a, [hli] + cp $80 + jr nz, .asm_fd320 + call Func_157c +.asm_fd320 + ld [wd44b + 5], a + xor a + ld [wd44b + 7], a + scf + ret + +Func_fd329: + dr $fd329,$fd3b0 + +Data_fd3b0: + dr $fd3b0,$fd831 Func_fd831: dr $fd831,$fd8ab Func_fd8ab: ; fd8ab (3f:58ab) -- cgit v1.2.3 From bac69a46de17d2f80cee509323eca2e5f05c4347 Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Tue, 24 May 2016 22:49:12 -0400 Subject: More disassembled functions --- engine/bank3f.asm | 95 +++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 88 insertions(+), 7 deletions(-) diff --git a/engine/bank3f.asm b/engine/bank3f.asm index a30361d9..7e79e42f 100644 --- a/engine/bank3f.asm +++ b/engine/bank3f.asm @@ -2365,31 +2365,112 @@ Func_fd2f5: add hl, bc add hl, bc ld a, [hli] - ld [wd44b + 4], a + ld [$d44e], a ld a, [hli] cp $80 jr nz, .asm_fd311 call Func_157c .asm_fd311 - ld [wd44b + 3], a + ld [$d44d], a ld a, [hli] - ld [wd44b + 6], a + ld [$d450], a ld a, [hli] cp $80 jr nz, .asm_fd320 call Func_157c .asm_fd320 - ld [wd44b + 5], a + ld [$d44f], a xor a - ld [wd44b + 7], a + ld [$d451], a scf ret Func_fd329: - dr $fd329,$fd3b0 + xor a + ld [$d44c], a + ld [$d457], a + ld [$d458], a + ld a, [wSpriteStateData2 + 7] + push af +.asm_fd337 + ld bc, wSpriteStateData1 + ld a, [$d44e] + ld hl, Jumptable_fd4ac + call Func_fd365 + ld a, [$d450] + ld hl, Jumptable_fd65c + call Func_fd365 + call Func_fd36e + call Func_fd39d + call DelayFrame + call DelayFrame + ld hl, $d44c + bit 7, [hl] + jr z, .asm_fd337 + pop af + ld [wSpriteStateData2 + 7], a + scf + ret + +Func_fd365: + ld e, a + ld d, 0 + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] + +Func_fd36e: + ld hl, 2 + add hl, bc + ld a, [$d452] + ld [hl], a + ld a, [$d454] + ld d, a + ld a, [$d456] + add d + ld hl, 4 + add hl, bc + ld [hl], a + ld a, [$d453] + ld d, a + ld a, [$d455] + add d + ld hl, 6 + add hl, bc + ld [hl], a + ld hl, $d44c + bit 6, [hl] + ret z + ld hl, wSpriteStateData2 + 7 - wSpriteStateData1 + add hl, bc + ld [hl], 0 + ret + +Func_fd39d: + ld hl, $d44c + bit 6, [hl] + res 6, [hl] + ld hl, wd736 + res 6, [hl] + ret z + set 6, [hl] + call Func_fd7f3 + ret Data_fd3b0: - dr $fd3b0,$fd831 + dr $fd3b0,$fd4ac + +Jumptable_fd4ac: + dr $fd4ac,$fd65c + +Jumptable_fd65c: + dr $fd65c,$fd7f3 + +Func_fd7f3: + dr $fd7f3,$fd831 Func_fd831: dr $fd831,$fd8ab Func_fd8ab: ; fd8ab (3f:58ab) -- cgit v1.2.3 From 700f9bc62715ca223c0f4ac966852ae7cda0d64f Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Tue, 24 May 2016 22:52:13 -0400 Subject: Trivially disassemble a data array in bank 3f --- engine/bank3f.asm | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 63 insertions(+), 1 deletion(-) diff --git a/engine/bank3f.asm b/engine/bank3f.asm index 7e79e42f..4de63fa0 100644 --- a/engine/bank3f.asm +++ b/engine/bank3f.asm @@ -2461,7 +2461,69 @@ Func_fd39d: ret Data_fd3b0: - dr $fd3b0,$fd4ac + db $01, $00, $00, $00 + db $03, $80, $01, $00 + db $04, $80, $01, $00 + db $05, $80, $01, $00 + db $06, $80, $01, $00 + db $07, $80, $01, $00 + db $08, $80, $01, $00 + db $09, $80, $01, $00 + db $0a, $80, $01, $00 + db $03, $80, $06, $00 + db $04, $80, $06, $00 + db $05, $80, $06, $00 + db $06, $80, $06, $00 + db $07, $80, $06, $00 + db $08, $80, $06, $00 + db $09, $80, $06, $00 + db $0a, $80, $06, $00 + db $03, $80, $03, $80 + db $04, $80, $03, $80 + db $05, $80, $03, $80 + db $06, $80, $03, $80 + db $07, $80, $03, $80 + db $08, $80, $03, $80 + db $09, $80, $03, $80 + db $0a, $80, $03, $80 + db $03, $80, $07, $80 + db $04, $80, $07, $80 + db $05, $80, $07, $80 + db $06, $80, $07, $80 + db $0b, $27, $02, $00 + db $0c, $27, $02, $00 + db $0d, $27, $02, $00 + db $0e, $27, $02, $00 + db $0f, $27, $02, $00 + db $10, $27, $02, $00 + db $11, $27, $02, $00 + db $12, $27, $02, $00 + db $0b, $0f, $02, $00 + db $0c, $0f, $02, $00 + db $0d, $0f, $02, $00 + db $0e, $0f, $02, $00 + db $0f, $0f, $02, $00 + db $10, $0f, $02, $00 + db $11, $0f, $02, $00 + db $12, $0f, $02, $00 + db $0b, $0f, $08, $17 + db $0c, $0f, $08, $17 + db $0d, $0f, $08, $17 + db $0e, $0f, $08, $17 + db $0f, $0f, $08, $17 + db $10, $0f, $08, $17 + db $11, $0f, $08, $17 + db $12, $0f, $08, $17 + db $13, $0f, $06, $00 + db $14, $0f, $06, $00 + db $15, $0f, $06, $00 + db $16, $0f, $06, $00 + db $02, $80, $04, $00 + db $02, $80, $05, $00 + db $02, $80, $03, $80 + db $02, $80, $07, $80 + db $02, $80, $09, $80 + db $02, $80, $06, $00 Jumptable_fd4ac: dr $fd4ac,$fd65c -- cgit v1.2.3 From e00b5732e290a4b4d9c4028618730ac8b2bff1a7 Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Tue, 24 May 2016 23:27:37 -0400 Subject: another chunk of bank 3f --- engine/bank3f.asm | 282 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 279 insertions(+), 3 deletions(-) diff --git a/engine/bank3f.asm b/engine/bank3f.asm index 4de63fa0..ebb8cd40 100644 --- a/engine/bank3f.asm +++ b/engine/bank3f.asm @@ -2526,11 +2526,287 @@ Data_fd3b0: db $02, $80, $06, $00 Jumptable_fd4ac: - dr $fd4ac,$fd65c + dw Func_fd4e5 + dw Func_fd4e9 + dw Func_fd504 + dw Func_fd50c + dw Func_fd511 + dw Func_fd518 + dw Func_fd52c + dw Func_fd540 + dw Func_fd553 + dw Func_fd566 + dw Func_fd579 + dw Func_fd5b1 + dw Func_fd5b5 + dw Func_fd5b9 + dw Func_fd5bd + dw Func_fd5c1 + dw Func_fd5c5 + dw Func_fd5c9 + dw Func_fd5cd + dw Func_fd5ea + dw Func_fd5ee + dw Func_fd5f2 + dw Func_fd5f6 + dw Func_fd4e5 + +Func_fd4dc: + ld a, [$d44c] + set 7, a + ld [$d44c], a + ret -Jumptable_fd65c: - dr $fd65c,$fd7f3 +Func_fd4e5: + call Func_fd4dc + ret + +Func_fd4e9: + ld hl, 4 + add hl, bc + ld a, [hl] + ld [$d454], a + ld hl, 6 + add hl, bc + ld a, [hl] + ld [$d453], a + xor a + ld [$d456], a + ld [$d455], a + call Func_fd4dc + ret + +Func_fd504: + call Func_fd775 + ret nz + call Func_fd4dc + ret + +Func_fd50c: + call Func_fd75f + jr asm_fd58c + +Func_fd511: + call Func_fd75f + xor %100 + jr asm_fd58c + +Func_fd518: + call Func_fd75f + ld hl, Data_fd523 + call Func_fd5a0 + jr asm_fd58c + +Data_fd523: + db SPRITE_FACING_DOWN + db SPRITE_FACING_RIGHT + db SPRITE_FACING_UP + db SPRITE_FACING_LEFT + db SPRITE_FACING_LEFT + db SPRITE_FACING_DOWN + db SPRITE_FACING_RIGHT + db SPRITE_FACING_UP + db $ff +Func_fd52c: + call Func_fd75f + ld hl, Data_fd537 + call Func_fd5a0 + jr asm_fd58c + +Data_fd537: + db SPRITE_FACING_DOWN + db SPRITE_FACING_LEFT + db SPRITE_FACING_UP + db SPRITE_FACING_RIGHT + db SPRITE_FACING_LEFT + db SPRITE_FACING_UP + db SPRITE_FACING_RIGHT + db SPRITE_FACING_DOWN + db $ff + +Func_fd540: + call Func_fd75f + ld hl, Data_fd54b + call Func_fd5a0 + jr asm_fd58c + +Data_fd54b: + db SPRITE_FACING_DOWN + db SPRITE_FACING_UP | $10 + db SPRITE_FACING_UP + db SPRITE_FACING_LEFT | $10 + db SPRITE_FACING_LEFT + db SPRITE_FACING_DOWN | $10 + db SPRITE_FACING_RIGHT + db SPRITE_FACING_RIGHT | $10 + +Func_fd553: + call Func_fd75f + ld hl, Data_fd55e + call Func_fd5a0 + jr asm_fd58c + +Data_fd55e: + db SPRITE_FACING_DOWN + db SPRITE_FACING_DOWN | $10 + db SPRITE_FACING_UP + db SPRITE_FACING_RIGHT | $10 + db SPRITE_FACING_LEFT + db SPRITE_FACING_LEFT | $10 + db SPRITE_FACING_RIGHT + db SPRITE_FACING_UP | $10 + +Func_fd566: + call Func_fd75f + ld hl, Data_fd571 + call Func_fd5a0 + jr asm_fd58c + +Data_fd571: + db SPRITE_FACING_DOWN + db SPRITE_FACING_RIGHT | $10 + db SPRITE_FACING_UP + db SPRITE_FACING_DOWN | $10 + db SPRITE_FACING_LEFT + db SPRITE_FACING_UP | $10 + db SPRITE_FACING_RIGHT + db SPRITE_FACING_LEFT | $10 + +Func_fd579: + call Func_fd75f + ld hl, Data_fd584 + call Func_fd5a0 + jr asm_fd58c + +Data_fd584: + db SPRITE_FACING_DOWN + db SPRITE_FACING_LEFT | $10 + db SPRITE_FACING_UP + db SPRITE_FACING_UP | $10 + db SPRITE_FACING_LEFT + db SPRITE_FACING_RIGHT | $10 + db SPRITE_FACING_RIGHT + db SPRITE_FACING_DOWN | $10 + +asm_fd58c + rrca + rrca + and $7 + ld e, a + call Func_fd784 + ld d, a + call Func_fd601 + call Func_fd775 + ret nz + call Func_fd4dc + ret + +Func_fd5a0: + push de + ld d, a +.asm_fd5a2 + ld a, [hli] + cp d + jr z, .asm_fd5ad + inc hl + cp $ff + jr nz, .asm_fd5a2 + pop de + ret + +.asm_fd5ad + ld a, [hl] + pop de + scf + ret + +Func_fd5b1: + ld a, 0 + jr asm_fd5d1 + +Func_fd5b5: + ld a, 1 + jr asm_fd5d1 + +Func_fd5b9: + ld a, 2 + jr asm_fd5d1 + +Func_fd5bd: + ld a, 3 + jr asm_fd5d1 + +Func_fd5c1: + ld e, 4 + jr asm_fd5d5 + +Func_fd5c5: + ld e, 5 + jr asm_fd5d5 + +Func_fd5c9: + ld e, 6 + jr asm_fd5d5 + +Func_fd5cd: + ld e, 7 + jr asm_fd5d5 + +asm_fd5d1 + ld e, a + call Func_fd769 +asm_fd5d5 + call Func_fd784 + ld d, a + push de + call Func_fd601 + pop de + call Func_fd775 + ret nz + ld a, e + call Func_fd7cb + call Func_fd4dc + ret + +Func_fd5ea: + ld a, 0 + jr asm_fd5fa + +Func_fd5ee: + ld a, 1 + jr asm_fd5fa + +Func_fd5f2: + ld a, 2 + jr asm_fd5fa + +Func_fd5f6: + ld a, 3 + jr asm_fd5fa + +asm_fd5fa + call Func_fd769 + call Func_fd4dc + ret + +Func_fd601: + dr $fd601,$fd65c + +Jumptable_fd65c: + dr $fd65c,$fd75f + +Func_fd75f: + dr $fd75f,$fd769 + +Func_fd769: + dr $fd769,$fd775 +Func_fd775: + dr $fd775,$fd784 +Func_fd784: + dr $fd784,$fd7cb +Func_fd7cb: + dr $fd7cb,$fd7f3 Func_fd7f3: dr $fd7f3,$fd831 Func_fd831: -- cgit v1.2.3 From 1e1782f15ac1f7e4b41a23168f3c5d93fed0d891 Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Wed, 25 May 2016 08:22:34 -0400 Subject: More code and what looks like scripts in F --- engine/bank3f.asm | 1866 +++++++++++++++++++++++---------------------- home.asm | 2178 ++++++++++++++++++++++++++--------------------------- hram.asm | 2 + 3 files changed, 2073 insertions(+), 1973 deletions(-) diff --git a/engine/bank3f.asm b/engine/bank3f.asm index ebb8cd40..3c66f4a0 100644 --- a/engine/bank3f.asm +++ b/engine/bank3f.asm @@ -4,17 +4,17 @@ INCLUDE "data/map_header_banks.asm" Func_fc4dd:: ; fc4dd (3f:44dd) ; possibly to test if pika should be out? - ld a,[wd430] - bit 5,a - jr nz,.asm_fc4f8 ; 3f:44f8 - ld a,[wd430] - bit 7,a - jr nz,.asm_fc4f8 + ld a, [wd430] + bit 5, a + jr nz, .asm_fc4f8 ; 3f:44f8 + ld a, [wd430] + bit 7, a + jr nz, .asm_fc4f8 call IsStarterPikachuInOurParty - jr nc,.asm_fc4f8 - ld a,[wWalkBikeSurfState] + jr nc, .asm_fc4f8 + ld a, [wWalkBikeSurfState] and a - jr nz,.asm_fc4f8 + jr nz, .asm_fc4f8 scf ret .asm_fc4f8 @@ -22,14 +22,14 @@ Func_fc4dd:: ; fc4dd (3f:44dd) ret Func_fc4fa:: ; fc4fa (3f:44fa) - ld hl,wd430 - bit 4,[hl] - res 4,[hl] - jr nz,.asm_fc515 + ld hl, wd430 + bit 4, [hl] + res 4, [hl] + jr nz, .asm_fc515 call Func_1542 call Func_fc523 - ld a,$ff - ld [wSpriteStateData1 + $f2],a + ld a, $ff + ld [wSpriteStateData1 + $f2], a call Func_fcb84 call Func_fc5bc ret @@ -37,17 +37,17 @@ Func_fc4fa:: ; fc4fa (3f:44fa) .asm_fc515 call Func_fc53f xor a - ld [wd431],a - ld a,[wSpriteStateData1 + $9] - ld [wSpriteStateData1 + $f9],a + ld [wd431], a + ld a, [wSpriteStateData1 + $9] + ld [wSpriteStateData1 + $f9], a ret Func_fc523:: ; fc523 (3f:4523) - ld hl,wSpriteStateData1 + $f0 + ld hl, wSpriteStateData1 + $f0 call Func_fc52c - ld hl,wSpriteStateData2 + $f0 + ld hl, wSpriteStateData2 + $f0 Func_fc52c:: ; fc52c (3f:4523) - ld bc,$10 + ld bc, $10 xor a call FillMemory ret @@ -56,60 +56,60 @@ Func_fc534:: ; fc534 (3f:4534) call Func_fc53f call Func_fc5bc xor a - ld [wd431],a + ld [wd431], a ret Func_fc53f:: ; fc53f (3f:453f) - ld bc,wSpriteStateData1 + $f0 - ld a,[wYCoord] + ld bc, wSpriteStateData1 + $f0 + ld a, [wYCoord] add $4 - ld e,a - ld a,[wXCoord] + ld e, a + ld a, [wXCoord] add $4 - ld d,a - ld a,[wd431] + ld d, a + ld a, [wd431] and a - jr z,.asm_fc5aa + jr z, .asm_fc5aa cp $1 - jr z,.asm_fc59e + jr z, .asm_fc59e cp $2 - jr z,.asm_fc584 + jr z, .asm_fc584 cp $3 - jr z,.asm_fc5aa + jr z, .asm_fc5aa cp $4 - jr z,.asm_fc5a4 + jr z, .asm_fc5a4 cp $5 - jr z,.asm_fc5a7 + jr z, .asm_fc5a7 cp $6 - jr z,.asm_fc5a1 + jr z, .asm_fc5a1 cp $7 - jr z,.asm_fc572 + jr z, .asm_fc572 jr .asm_fc59e .asm_fc572 - ld a,[wSpriteStateData1 + $9] + ld a, [wSpriteStateData1 + $9] and a ; SPRITE_FACING_DOWN - jr z,.asm_fc5a4 + jr z, .asm_fc5a4 cp SPRITE_FACING_UP - jr z,.asm_fc5a7 + jr z, .asm_fc5a7 cp SPRITE_FACING_LEFT - jr z,.asm_fc5a1 + jr z, .asm_fc5a1 cp SPRITE_FACING_RIGHT - jr z,.asm_fc59e + jr z, .asm_fc59e .asm_fc584 - ld a,[wSpriteStateData1 + $9] + ld a, [wSpriteStateData1 + $9] and a - jr nz,.asm_fc58d + jr nz, .asm_fc58d dec e jr .asm_fc5aa .asm_fc58d cp SPRITE_FACING_UP - jr nz,.asm_fc594 + jr nz, .asm_fc594 inc e jr .asm_fc5aa .asm_fc594 cp SPRITE_FACING_LEFT - jr nz,.asm_fc59b + jr nz, .asm_fc59b inc d jr .asm_fc5aa .asm_fc59b @@ -128,179 +128,179 @@ Func_fc53f:: ; fc53f (3f:453f) dec e jr .asm_fc5aa ; useless jr .asm_fc5aa - ld hl,$104 - add hl,bc - ld [hl],e + ld hl, $104 + add hl, bc + ld [hl], e inc hl - ld [hl],d + ld [hl], d inc hl Func_fc4b2:: ; fc4b2 (3f:44b2) - ld [hl],$fe + ld [hl], $fe push hl - ld hl,wd472 - set 5,[hl] + ld hl, wd472 + set 5, [hl] pop hl ret Func_fc5bc:: ; fc5bc (3f:45bc) - ld a,$49 - ld [wSpriteStateData1 + $f0],a - ld a,$ff - ld [wSpriteStateData1 + $f2],a - ld a,[wd431] + ld a, $49 + ld [wSpriteStateData1 + $f0], a + ld a, $ff + ld [wSpriteStateData1 + $f2], a + ld a, [wd431] and a - jr z,.asm_fc5e4 + jr z, .asm_fc5e4 cp $1 - jr z,.asm_fc5e4 + jr z, .asm_fc5e4 cp $3 - jr z,.asm_fc5eb + jr z, .asm_fc5eb cp $4 - jr z,.asm_fc5e4 + jr z, .asm_fc5e4 cp $6 - jr z,.asm_fc5e4 + jr z, .asm_fc5e4 cp $7 - jr z,.asm_fc5f1 + jr z, .asm_fc5f1 call Func_fccb2 ret .asm_fc5e4 - ld a,[wSpriteStateData1 + $9] - ld [wSpriteStateData1 + $f9],a + ld a, [wSpriteStateData1 + $9] + ld [wSpriteStateData1 + $f9], a ret .asm_fc5eb - ld a,$0 - ld [wSpriteStateData1 + $f9],a + ld a, $0 + ld [wSpriteStateData1 + $f9], a ret .asm_fc5f1 - ld a,[wSpriteStateData1 + $9] + ld a, [wSpriteStateData1 + $9] xor $4 - ld [wSpriteStateData1 + $f9],a + ld [wSpriteStateData1 + $f9], a ret Func_fc5fa:: ; fc5fa (3f:45fa) - ld a,[wCurMap] + ld a, [wCurMap] cp OAKS_LAB - jr z,.asm_fc63d + jr z, .asm_fc63d cp ROUTE_22_GATE - jr z,.asm_fc62d + jr z, .asm_fc62d cp MT_MOON_2 - jr z,.asm_fc635 + jr z, .asm_fc635 cp ROCK_TUNNEL_1 - jr z,.asm_fc645 - ld a,[wCurMap] - ld hl,Pointer_fc64b + jr z, .asm_fc645 + ld a, [wCurMap] + ld hl, Pointer_fc64b call Func_1568 ; similar to IsInArray, but not the same - jr c,.asm_fc639 - ld a,[wCurMap] - ld hl,Pointer_fc653 + jr c, .asm_fc639 + ld a, [wCurMap] + ld hl, Pointer_fc653 call Func_1568 - jr nc,.asm_fc641 - ld a,[wSpriteStateData1 + $9] + jr nc, .asm_fc641 + ld a, [wSpriteStateData1 + $9] and a - jr nz,.asm_fc641 - ld a,$3 + jr nz, .asm_fc641 + ld a, $3 jr .asm_fc647 .asm_fc62d - ld a,[wSpriteStateData1 + $9] + ld a, [wSpriteStateData1 + $9] and a - jr z,.asm_fc645 + jr z, .asm_fc645 jr .asm_fc641 .asm_fc635 - ld a,$3 + ld a, $3 jr .asm_fc647 .asm_fc639 - ld a,$4 + ld a, $4 jr .asm_fc647 .asm_fc63d - ld a,$6 + ld a, $6 jr .asm_fc647 .asm_fc641 - ld a,$1 + ld a, $1 jr .asm_fc647 .asm_fc645 - ld a,$3 + ld a, $3 .asm_fc647 - ld [wd431],a + ld [wd431], a ret Pointer_fc64b:: ; fc64b (3f:464b) - db $c2,$4c,$4f,$ba,$be,$b8,$54,$ff + db $c2, $4c, $4f, $ba, $be, $b8, $54, $ff Pointer_fc653:: ; fc653 (3f:4653) - db $2f,$e6,$3e,$5e,$80,$31,$a4,$ff + db $2f, $e6, $3e, $5e, $80, $31, $a4, $ff Func_fc65b:: ; fc65b (3f:465b) - ld a,[wCurMap] + ld a, [wCurMap] cp VIRIDIAN_FOREST_EXIT - jr z,.asm_fc673 + jr z, .asm_fc673 cp VIRIDIAN_FOREST_ENTRANCE - jr z,.asm_fc67c - ld a,[wCurMap] - ld hl,Pointer_fc68e + jr z, .asm_fc67c + ld a, [wCurMap] + ld hl, Pointer_fc68e call Func_1568 - jr c,.asm_fc688 + jr c, .asm_fc688 jr .asm_fc684 .asm_fc673 - ld a,[wSpriteStateData1 + $9] + ld a, [wSpriteStateData1 + $9] cp SPRITE_FACING_UP - jr z,.asm_fc688 + jr z, .asm_fc688 jr .asm_fc684 .asm_fc67c - ld a,[wSpriteStateData1 + $9] + ld a, [wSpriteStateData1 + $9] and a ; SPRITE_FACING_DOWN - jr z,.asm_fc684 + jr z, .asm_fc684 jr .asm_fc688 .asm_fc684 - ld a,$0 + ld a, $0 jr .asm_fc68a .asm_fc688 - ld a,$1 + ld a, $1 .asm_fc68a - ld [wd431],a + ld [wd431], a ret Pointer_fc68e:: ; fc68e (3f:468e) - db $33,$dd,$df,$e0,$e1,$de,$ec,$7f,$a8,$a9,$aa,$ff + db $33, $dd, $df, $e0, $e1, $de, $ec, $7f, $a8, $a9, $aa, $ff Func_fc69a:: ; fc69a (3f:469a) - ld a,[wCurMap] + ld a, [wCurMap] cp ROUTE_22_GATE - jr z,.asm_fc6a7 + jr z, .asm_fc6a7 cp ROUTE_2_GATE - jr z,.asm_fc6b0 + jr z, .asm_fc6b0 jr .asm_fc6bd .asm_fc6a7 - ld a,[wSpriteStateData1 + $9] + ld a, [wSpriteStateData1 + $9] cp SPRITE_FACING_UP - jr z,.asm_fc6b9 + jr z, .asm_fc6b9 jr .asm_fc6bd .asm_fc6b0 - ld a,[wSpriteStateData1 + $9] + ld a, [wSpriteStateData1 + $9] cp SPRITE_FACING_UP - jr z,.asm_fc6b9 + jr z, .asm_fc6b9 jr .asm_fc6bd .asm_fc6b9 - ld a,$1 + ld a, $1 jr .asm_fc6c1 .asm_fc6bd - ld a,$3 + ld a, $3 jr .asm_fc6c1 .asm_fc6c1 - ld [wd431],a + ld [wd431], a ret Func_fc6c5:: ; fc6c5 (3f:46c5) push hl - ld hl,wd430 - set 2,[hl] + ld hl, wd430 + set 2, [hl] pop hl ret Func_fc6cd:: ; fc6cd (3f:46cd) push hl - ld hl,wd430 - res 2,[hl] + ld hl, wd430 + res 2, [hl] pop hl ret @@ -312,30 +312,30 @@ Func_fc6d5:: ; fc6d5 (3f:46d5) call Func_fcd25 pop bc ret c - ld bc,wSpriteStateData1 + $f0 - ld hl,$1 - add hl,bc - bit 7,[hl] - jp nz,asm_fc745 - ld a,[wFontLoaded] - bit 0,a - jp nz,asm_fc76a + ld bc, wSpriteStateData1 + $f0 + ld hl, $1 + add hl, bc + bit 7, [hl] + jp nz, asm_fc745 + ld a, [wFontLoaded] + bit 0, a + jp nz, asm_fc76a call Func_154a - jp nz,asm_fc76a - ld a,[hl] + jp nz, asm_fc76a + ld a, [hl] and $7f cp $a - jr c,.asm_fc704 + jr c, .asm_fc704 xor a .asm_fc704 add a - ld e,a - ld d,0 - ld hl,PointerTable_fc710 - add hl,de - ld a,[hli] - ld h,[hl] - ld l,a + ld e, a + ld d, 0 + ld hl, PointerTable_fc710 + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a jp hl PointerTable_fc710: ; fc710 (3f:4710) @@ -356,10 +356,10 @@ Func_fc726: ; fc726 (3f:4726) Func_fc727: ; fc727 (3f:4727) call Func_fc4dd - jr nc,.asm_fc73b - ld a,[wSpriteStateData1 + $f1] + jr nc, .asm_fc73b + ld a, [wSpriteStateData1 + $f1] and a - jr nz,.asm_fc739 + jr nz, .asm_fc739 push bc push hl call Func_fc534 @@ -369,53 +369,53 @@ Func_fc727: ; fc727 (3f:4727) scf ret .asm_fc73b - ld hl,wSpriteStateData1 + $f2 - ld [hl],$ff + ld hl, wSpriteStateData1 + $f2 + ld [hl], $ff dec hl - ld [hl],$0 + ld [hl], $0 xor a ret asm_fc745: ; fc745 (3f:4745) - ld hl,$1 - add hl,bc - res 7,[hl] - ld hl,wSpriteStateData2 - wSpriteStateData1 - add hl,bc - ld [hl],a + ld hl, $1 + add hl, bc + res 7, [hl] + ld hl, wSpriteStateData2 - wSpriteStateData1 + add hl, bc + ld [hl], a call Func_154a - jr nz,.asm_fc75f - ld a,[wSpriteStateData1 + $9] + jr nz, .asm_fc75f + ld a, [wSpriteStateData1 + $9] xor $4 - ld hl,$9 - add hl,bc - ld [hl],a + ld hl, $9 + add hl, bc + ld [hl], a .asm_fc75f xor a - ld hl,$7 - add hl,bc - ld [hli],a - ld [hl],a + ld hl, $7 + add hl, bc + ld [hli], a + ld [hl], a call Func_fca99 ret asm_fc76a: ; fc76a (3f:476a) xor a - ld hl,$7 - add hl,bc - ld [hli],a - ld [hl],a + ld hl, $7 + add hl, bc + ld [hli], a + ld [hl], a call Func_fca99 call Func_fc82e - jr c,.asm_fc783 + jr c, .asm_fc783 push bc callab InitializeSpriteScreenPosition pop bc .asm_fc783 - ld hl,$1 - add hl,bc - ld [hl],$1 - ld hl,wSpriteStateData2 - wSpriteStateData1 - add hl,bc - ld [hl],$0 + ld hl, $1 + add hl, bc + ld [hl], $1 + ld hl, wSpriteStateData2 - wSpriteStateData1 + add hl, bc + ld [hl], $0 call Func_fcba1 ret @@ -424,125 +424,125 @@ Func_fc793: ; fc793 (3f:4793) push bc callab InitializeSpriteScreenPosition pop bc - ld hl,$2 - add hl,bc - ld [hl],$ff + ld hl, $2 + add hl, bc + ld [hl], $ff dec hl - ld [hl],$1 + ld [hl], $1 ret Func_fc7aa: ; fc7aa (3f:47aa) call Func_fcc92 - jp c,Func_fc803 + jp c, Func_fc803 dec a - ld l,a - ld h,$0 - add hl,hl - add hl,hl - ld de,Pointer_fc7e3 - add hl,de - ld d,h - ld e,l - ld a,[de] + ld l, a + ld h, $0 + add hl, hl + add hl, hl + ld de, Pointer_fc7e3 + add hl, de + ld d, h + ld e, l + ld a, [de] inc de - ld hl,$9 - add hl,bc - ld [hl],a - ld a,[de] + ld hl, $9 + add hl, bc + ld [hl], a + ld a, [de] inc de - ld hl,$5 - add hl,bc - ld [hl],a + ld hl, $5 + add hl, bc + ld [hl], a dec hl dec hl - ld a,[de] - ld [hl],a + ld a, [de] + ld [hl], a inc de - ld a,[de] - ld hl,$1 - add hl,bc - ld [hl],a + ld a, [de] + ld hl, $1 + add hl, bc + ld [hl], a cp $4 - jp z,Func_fca0a + jp z, Func_fca0a call Func_fcd17 - jp c,Func_fc9df + jp c, Func_fc9df jp Func_fc9b4 Pointer_fc7e3: ; fc7e3 (3f:47e3) - db $0,$0 - db $1,$3 - db $4,$0 - db $ff,$3 - db $8,$ff - db $0,$3 - db $c,$1 - db $0,$3 - db $0,$0 - db $1,$4 - db $4,$0 - db $ff,$4 - db $8,$ff - db $0,$4 - db $c,$1 - db $0,$4 + db $0, $0 + db $1, $3 + db $4, $0 + db $ff, $3 + db $8, $ff + db $0, $3 + db $c, $1 + db $0, $3 + db $0, $0 + db $1, $4 + db $4, $0 + db $ff, $4 + db $8, $ff + db $0, $4 + db $c, $1 + db $0, $4 Func_fc803: ; fc803 (3f:4803) call Func_fcae2 ret c - ld hl,wSpriteStateData2 - wSpriteStateData1 - add hl,bc + ld hl, wSpriteStateData2 - wSpriteStateData1 + add hl, bc dec [hl] - jr nz,.asm_fc823 + jr nz, .asm_fc823 push hl call Func_fccee pop hl cp $5 - jr nc,Func_fc842 - ld [hl],$20 + jr nc, Func_fc842 + ld [hl], $20 call Random and $c - ld hl,$9 - add hl,bc - ld [hl],a + ld hl, $9 + add hl, bc + ld [hl], a .asm_fc823 xor a - ld hl,$7 - add hl,bc - ld [hli],a - ld [hl],a + ld hl, $7 + add hl, bc + ld [hli], a + ld [hl], a call Func_fca99 ret Func_fc82e: ; fc82e (3f:482e) - ld a,[wWalkCounter] + ld a, [wWalkCounter] and a ret z scf ret Func_fc835: ; fc835 (3f:4835) - ld hl,wSpriteStateData2 - wSpriteStateData1 - add hl,bc - ld [hl],$10 - ld hl,$1 - add hl,bc - ld [hl],$1 + ld hl, wSpriteStateData2 - wSpriteStateData1 + add hl, bc + ld [hl], $10 + ld hl, $1 + add hl, bc + ld [hl], $1 ret Func_fc842: ; fc842 (3f:4842) - ld hl,$0 + ld hl, $0 push af call Random - ld a,[hRandomAdd] + ld a, [hRandomAdd] and %11 - ld e,a - ld d,$0 - ld hl,PointerTable_fc85a - add hl,de - add hl,de - ld a,[hli] - ld h,[hl] - ld l,a + ld e, a + ld d, $0 + ld hl, PointerTable_fc85a + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a pop af jp hl @@ -557,427 +557,427 @@ Func_fc862: ; fc862 (3f:4862) add a add a and $c - ld hl,$9 - add hl,bc - ld [hl],a - ld hl,$1 - add hl,bc - ld [hl],$6 + ld hl, $9 + add hl, bc + ld [hl], a + ld hl, $1 + add hl, bc + ld [hl], $6 xor a - ld [wd432],a - ld [wd433],a - ld hl,wSpriteStateData2 - wSpriteStateData1 - add hl,bc - ld [hl],$11 + ld [wd432], a + ld [wd433], a + ld hl, wSpriteStateData2 - wSpriteStateData1 + add hl, bc + ld [hl], $11 asm_fc87f: ; fc87f (3f:487f) - ld a,[wd432] - ld e,a - ld a,[wd433] - ld d,a + ld a, [wd432] + ld e, a + ld a, [wd433] + ld d, a call Func_fc82e - jr c,Func_fc8c7 + jr c, Func_fc8c7 call Func_fc6c5 - ld hl,$4 - add hl,bc - ld a,[hl] + ld hl, $4 + add hl, bc + ld a, [hl] sub e - ld e,a + ld e, a inc hl inc hl - ld a,[hl] + ld a, [hl] sub d - ld d,a - ld hl,wSpriteStateData2 - wSpriteStateData1 - add hl,bc - ld a,[hl] + ld d, a + ld hl, wSpriteStateData2 - wSpriteStateData1 + add hl, bc + ld a, [hl] dec a add a add $d6 - ld l,a - ld a,$48 + ld l, a + ld a, $48 adc $0 - ld h,a - ld a,[hli] - ld [wd432],a + ld h, a + ld a, [hli] + ld [wd432], a add e - ld e,a - ld a,[hl] - ld [wd433],a + ld e, a + ld a, [hl] + ld [wd433], a add d - ld d,a - ld hl,$4 - add hl,bc - ld [hl],e + ld d, a + ld hl, $4 + add hl, bc + ld [hl], e inc hl inc hl - ld [hl],d - ld hl,wSpriteStateData2 - wSpriteStateData1 - add hl,bc + ld [hl], d + ld hl, wSpriteStateData2 - wSpriteStateData1 + add hl, bc dec [hl] ret nz jp Func_fc835 Func_fc8c7: ; fc8c7 (3f:48c7) - ld hl,$4 - add hl,bc - ld a,[hl] + ld hl, $4 + add hl, bc + ld a, [hl] sub e - ld [hl],a + ld [hl], a inc hl inc hl - ld a,[hl] + ld a, [hl] sub d - ld [hl],a + ld [hl], a jp Func_fc835 Pointer_fc8d6: ; fc8d6 (3f:48d6) - db $0,$0,$fe,$1,$fc - db $2,$fe,$3,$0,$4 - db $fe,$3,$fc,$2,$fe - db $1,$0,$0,$fe,$ff - db $fc,$fe,$fe,$fd,$0 - db $fc,$fe,$fd,$fc,$fe - db $fe,$ff,$00,$00 + db $0, $0, $fe, $1, $fc + db $2, $fe, $3, $0, $4 + db $fe, $3, $fc, $2, $fe + db $1, $0, $0, $fe, $ff + db $fc, $fe, $fe, $fd, $0 + db $fc, $fe, $fd, $fc, $fe + db $fe, $ff, $00, $00 Func_fc8f8: ; fc8f8 (3f:48f8) - ld hl,$1 - add hl,bc - ld [hl],$7 - ld hl,wSpriteStateData2 - wSpriteStateData1 - add hl,bc - ld [hl],$30 + ld hl, $1 + add hl, bc + ld [hl], $7 + ld hl, wSpriteStateData2 - wSpriteStateData1 + add hl, bc + ld [hl], $30 asm_fc904: ; fc904 (3f:4904) call Func_fc82e - jp c,Func_fc835 + jp c, Func_fc835 call Func_fc6c5 - ld hl,$7 - add hl,bc - ld a,[hl] + ld hl, $7 + add hl, bc + ld a, [hl] inc a cp $8 - ld [hl],a - jr nz,.asm_fc91f + ld [hl], a + jr nz, .asm_fc91f xor a - ld [hli],a - ld a,[hl] + ld [hli], a + ld a, [hl] inc a and %11 - ld [hl],a + ld [hl], a .asm_fc91f call Func_fca99 - ld hl,wSpriteStateData2 - wSpriteStateData1 - add hl,bc + ld hl, wSpriteStateData2 - wSpriteStateData1 + add hl, bc dec [hl] ret nz jp Func_fc835 Func_fc92b: ; fc92b (3f:492b) - ld hl,wSpriteStateData2 - wSpriteStateData1 - add hl,bc - ld [hl],$20 - ld hl,$1 - add hl,bc - ld [hl],$8 + ld hl, wSpriteStateData2 - wSpriteStateData1 + add hl, bc + ld [hl], $20 + ld hl, $1 + add hl, bc + ld [hl], $8 asm_fc937: ; fc937 (3f:4937) call Func_fc82e - jp c,Func_fc835 + jp c, Func_fc835 call Func_fc6c5 - ld hl,$7 - add hl,bc - ld a,[hl] + ld hl, $7 + add hl, bc + ld a, [hl] inc a cp $8 - ld [hl],a - jr nz,.asm_fc951 + ld [hl], a + jr nz, .asm_fc951 xor a - ld [hli],a - ld a,[hl] + ld [hli], a + ld a, [hl] xor $1 - ld [hl],a + ld [hl], a .asm_fc951 call Func_fca99 - ld hl,wSpriteStateData2 - wSpriteStateData1 - add hl,bc + ld hl, wSpriteStateData2 - wSpriteStateData1 + add hl, bc dec [hl] ret nz jp Func_fc835 Func_fc95d: ; fc95d (3f:495d) - ld hl,wSpriteStateData2 - wSpriteStateData1 - add hl,bc - ld [hl],$20 - ld hl,$1 - add hl,bc - ld [hl],$9 + ld hl, wSpriteStateData2 - wSpriteStateData1 + add hl, bc + ld [hl], $20 + ld hl, $1 + add hl, bc + ld [hl], $9 asm_fc969: ; fc969 (3f:4969) call Func_fc82e - jp c,Func_fc835 + jp c, Func_fc835 call Func_fc6c5 - ld hl,$7 - add hl,bc - ld a,[hl] + ld hl, $7 + add hl, bc + ld a, [hl] inc a cp $8 - ld [hl],a - jr nz,.asm_fc988 + ld [hl], a + jr nz, .asm_fc988 xor a - ld [hl],a - ld hl,$9 - add hl,bc - ld a,[hl] + ld [hl], a + ld hl, $9 + add hl, bc + ld a, [hl] call Func_fc994 - ld [hl],a + ld [hl], a .asm_fc988 call Func_fca99 - ld hl,wSpriteStateData2 - wSpriteStateData1 - add hl,bc + ld hl, wSpriteStateData2 - wSpriteStateData1 + add hl, bc dec [hl] ret nz jp Func_fc835 Func_fc994: ; fc994 (3f:4994) push hl - ld hl,Pointer_fc9ac - ld d,a + ld hl, Pointer_fc9ac + ld d, a .loop - ld a,[hli] + ld a, [hli] cp d - jr nz,.loop - ld a,[hl] + jr nz, .loop + ld a, [hl] pop hl ret Func_fc9a0: ; fc9a0 (3f:49a0) push hl - ld hl,Pointer_fc9ac_End - ld d,a + ld hl, Pointer_fc9ac_End + ld d, a .loop - ld a,[hld] + ld a, [hld] cp d - jr nz,.loop - ld a,[hl] + jr nz, .loop + ld a, [hl] pop hl ret Pointer_fc9ac: ; fc9ac (3f:49ac) - db SPRITE_FACING_DOWN,SPRITE_FACING_LEFT,SPRITE_FACING_UP,SPRITE_FACING_RIGHT - db SPRITE_FACING_DOWN,SPRITE_FACING_LEFT,SPRITE_FACING_UP,SPRITE_FACING_RIGHT + db SPRITE_FACING_DOWN, SPRITE_FACING_LEFT, SPRITE_FACING_UP, SPRITE_FACING_RIGHT + db SPRITE_FACING_DOWN, SPRITE_FACING_LEFT, SPRITE_FACING_UP, SPRITE_FACING_RIGHT Pointer_fc9ac_End: Func_fc9b4: ; fc9b4 (3f:49b4) - ld hl,wSpriteStateData2 - wSpriteStateData1 - add hl,bc - ld [hl],$8 - ld hl,$1 - add hl,bc - ld [hl],$3 + ld hl, wSpriteStateData2 - wSpriteStateData1 + add hl, bc + ld [hl], $8 + ld hl, $1 + add hl, bc + ld [hl], $3 call Func_fca38 asm_fc9c3: ; fc9c3 (3f:49c3) call Func_fca4b call Func_fca7e call Func_fca99 - ld hl,$100 - add hl,bc + ld hl, $100 + add hl, bc dec [hl] ret nz call Func_fca75 call Func_fccb2 - ld hl,$1 - add hl,bc - ld [hl],$1 + ld hl, $1 + add hl, bc + ld [hl], $1 ret Func_fc9df: ; fc9df (3f:49df) - ld hl,wSpriteStateData2 - wSpriteStateData1 - add hl,bc - ld [hl],$4 - ld hl,$1 - add hl,bc - ld [hl],$5 + ld hl, wSpriteStateData2 - wSpriteStateData1 + add hl, bc + ld [hl], $4 + ld hl, $1 + add hl, bc + ld [hl], $5 call Func_fca38 asm_fc9ee: ; fc9ee (3f:49ee) call asm_fca59 call Func_fca7e call Func_fca99 - ld hl,wSpriteStateData2 - wSpriteStateData1 - add hl,bc + ld hl, wSpriteStateData2 - wSpriteStateData1 + add hl, bc dec [hl] ret nz call Func_fca75 call Func_fccb2 - ld hl,$1 - add hl,bc - ld [hl],$1 + ld hl, $1 + add hl, bc + ld [hl], $1 ret Func_fca0a: ; fca0a (3f:4a0a) - ld hl,wSpriteStateData2 - wSpriteStateData1 - add hl,bc - ld [hl],$8 - ld hl,$1 - add hl,bc - ld [hl],$4 + ld hl, wSpriteStateData2 - wSpriteStateData1 + add hl, bc + ld [hl], $8 + ld hl, $1 + add hl, bc + ld [hl], $4 call Func_fca38 call Func_fca38 asm_fca1c: ; fca1c (3f:4a1c) call asm_fca59 call Func_fca7e call Func_fca99 - ld hl,wSpriteStateData2 - wSpriteStateData1 - add hl,bc + ld hl, wSpriteStateData2 - wSpriteStateData1 + add hl, bc dec [hl] ret nz call Func_fca75 call Func_fccb2 - ld hl,$1 - add hl,bc - ld [hl],$1 + ld hl, $1 + add hl, bc + ld [hl], $1 ret Func_fca38: ; fca38 (3f:4a38) - ld hl,$3 - add hl,bc - ld e,[hl] + ld hl, $3 + add hl, bc + ld e, [hl] inc hl inc hl - ld d,[hl] - ld hl,$104 - add hl,bc - ld a,[hl] + ld d, [hl] + ld hl, $104 + add hl, bc + ld a, [hl] add e - ld [hli],a - ld a,[hl] + ld [hli], a + ld a, [hl] add d - ld [hl],a + ld [hl], a ret Func_fca4b: ; fca4b (3f:4a4b) - ld a,[wWalkBikeSurfState] + ld a, [wWalkBikeSurfState] cp $1 - jr nz,Func_fca68 - ld a,[wd736] - bit 6,a - jr nz,Func_fca68 + jr nz, Func_fca68 + ld a, [wd736] + bit 6, a + jr nz, Func_fca68 asm_fca59: ; fca59 (3f:4a59) - ld hl,$3 - add hl,bc - ld a,[hli] + ld hl, $3 + add hl, bc + ld a, [hli] add a add a add [hl] - ld [hli],a - ld a,[hli] + ld [hli], a + ld a, [hli] add a add a add [hl] - ld [hl],a + ld [hl], a ret Func_fca68: ; fca68 (3f:4a68) - ld hl,$3 - add hl,bc - ld a,[hli] + ld hl, $3 + add hl, bc + ld a, [hli] add a add [hl] - ld [hli],a - ld a,[hli] + ld [hli], a + ld a, [hli] add a add [hl] - ld [hli],a + ld [hli], a ret Func_fca75: ; fca75 (3f:4a75) - ld hl,$3 - add hl,bc + ld hl, $3 + add hl, bc xor a - ld [hli],a + ld [hli], a inc hl - ld [hl],a + ld [hl], a ret Func_fca7e: ; fca7e (3f:4a7e) call Func_fcdad - ld d,$2 - jr nc,.asm_fca87 - ld d,$5 + ld d, $2 + jr nc, .asm_fca87 + ld d, $5 .asm_fca87 - ld hl,$7 - add hl,bc - ld a,[hl] + ld hl, $7 + add hl, bc + ld a, [hl] inc a cp d - jr nz,.asm_fca91 + jr nz, .asm_fca91 xor a .asm_fca91 - ld [hli],a + ld [hli], a ret nz - ld a,[hl] + ld a, [hl] inc a and $3 - ld [hl],a + ld [hl], a ret Func_fca99: ; fca99 (3f:4a99) - ld a,[wd430] - bit 3,a - jr nz,.asm_fcad1 - ld hl,$10e - add hl,bc - ld a,[hl] + ld a, [wd430] + bit 3, a + jr nz, .asm_fcad1 + ld hl, $10e + add hl, bc + ld a, [hl] dec a swap a - ld d,a - ld a,[wd736] - bit 7,a - jr nz,.asm_fcad8 - ld hl,$9 - add hl,bc - ld a,[hl] + ld d, a + ld a, [wd736] + bit 7, a + jr nz, .asm_fcad8 + ld hl, $9 + add hl, bc + ld a, [hl] or d - ld d,a - ld a,[wFontLoaded] - bit 0,a - jr z,.asm_fcac4 + ld d, a + ld a, [wFontLoaded] + bit 0, a + jr z, .asm_fcac4 call Func_fcae2 ret c jr .asm_fcacb .asm_fcac4 - ld hl,$8 - add hl,bc - ld a,d + ld hl, $8 + add hl, bc + ld a, d or [hl] - ld d,a + ld d, a .asm_fcacb - ld hl,$2 - add hl,bc - ld [hl],d + ld hl, $2 + add hl, bc + ld [hl], d ret .asm_fcad1 - ld hl,$2 - add hl,bc - ld [hl],$ff + ld hl, $2 + add hl, bc + ld [hl], $ff ret .asm_fcad8 - ld a,[wSpriteStateData1 + $2] + ld a, [wSpriteStateData1 + $2] and $f or d - ld [wSpriteStateData1 + $f2],a + ld [wSpriteStateData1 + $f2], a ret Func_fcae2: ; fcae2 (3f:4ae2) - ld hl,$104 - add hl,bc - ld a,[wYCoord] + ld hl, $104 + add hl, bc + ld a, [wYCoord] add $4 cp [hl] - jr nz,.asm_fcaff + jr nz, .asm_fcaff inc hl - ld a,[wXCoord] + ld a, [wXCoord] add $4 cp [hl] - jr nz,.asm_fcaff - ld hl,$2 - add hl,bc - ld [hl],$ff + jr nz, .asm_fcaff + ld hl, $2 + add hl, bc + ld [hl], $ff scf ret .asm_fcaff @@ -988,42 +988,42 @@ Func_fcb01: ; fcb01 (3f:4b01) push bc push de push hl - ld bc,wSpriteStateData1 + $f0 - ld a,[wXCoord] + ld bc, wSpriteStateData1 + $f0 + ld a, [wXCoord] add $4 - ld d,a - ld a,[wYCoord] + ld d, a + ld a, [wYCoord] add $4 - ld e,a - ld hl,$104 - add hl,bc - ld a,[hl] + ld e, a + ld hl, $104 + add hl, bc + ld a, [hl] sub e and a - jr z,.asm_fcb30 + jr z, .asm_fcb30 cp $ff - jr z,.asm_fcb26 + jr z, .asm_fcb26 cp $1 - jr z,.asm_fcb26 + jr z, .asm_fcb26 jr .asm_fcb48 .asm_fcb26 - ld hl,$105 - add hl,bc - ld a,[hl] + ld hl, $105 + add hl, bc + ld a, [hl] sub d - jr z,.asm_fcb43 + jr z, .asm_fcb43 jr .asm_fcb48 .asm_fcb30 - ld hl,$105 - add hl,bc - ld a,[hl] + ld hl, $105 + add hl, bc + ld a, [hl] sub d cp $ff - jr z,.asm_fcb43 + jr z, .asm_fcb43 cp $1 - jr z,.asm_fcb43 + jr z, .asm_fcb43 and a - jr z,.asm_fcb43 + jr z, .asm_fcb43 jr .asm_fcb48 .asm_fcb43 pop hl @@ -1040,64 +1040,64 @@ Func_fcb01: ; fcb01 (3f:4b01) Func_fcb4d: ; fcb4d (3f:4b4d) call Func_fcb52 - ld e,a + ld e, a ret Func_fcb52: ; fcb52 (3f:4b52) - ld bc,wSpriteStateData1 + $f0 - ld a,[wXCoord] + ld bc, wSpriteStateData1 + $f0 + ld a, [wXCoord] add $4 - ld d,a - ld a,[wYCoord] + ld d, a + ld a, [wYCoord] add $4 - ld e,a - ld hl,$104 - add hl,bc - ld a,[hl] + ld e, a + ld hl, $104 + add hl, bc + ld a, [hl] cp e - jr z,Func_fcb71 - jr nc,.asm_fcb6e - ld a,$4 + jr z, Func_fcb71 + jr nc, .asm_fcb6e + ld a, $4 ret .asm_fcb6e - ld a,$0 + ld a, $0 ret Func_fcb71: ; fcb71 (3f:4b71) - ld hl,$105 - add hl,bc - ld a,[hl] + ld hl, $105 + add hl, bc + ld a, [hl] cp d - jr z,.asm_fcb81 - jr nc,.asm_fcb7e - ld a,$8 + jr z, .asm_fcb81 + jr nc, .asm_fcb7e + ld a, $8 ret .asm_fcb7e - ld a,$c + ld a, $c ret .asm_fcb81 - ld a,$ff + ld a, $ff ret Func_fcb84: ; fcb84 (3f:4b84) push bc - ld hl,wd437 - ld [hl],$ff + ld hl, wd437 + ld [hl], $ff inc hl - ld bc,$10 + ld bc, $10 xor a call FillMemory pop bc ret Func_fcb94: ; fcb94 (3f:4b94) - ld hl,wd437 + ld hl, wd437 inc [hl] - ld e,[hl] - ld d,0 - ld hl,wd438 - add hl,de - ld [hl],a + ld e, [hl] + ld d, 0 + ld hl, wd438 + add hl, de + ld [hl], a ret Func_fcba1: ; fcba1 (3f:4ba1) @@ -1108,58 +1108,58 @@ Func_fcba1: ; fcba1 (3f:4ba1) ret Func_fcbac: ; fcbac (3f:4bac) - ld bc,wSpriteStateData1 + $f0 - ld hl,$104 - add hl,bc - ld a,[wYCoord] + ld bc, wSpriteStateData1 + $f0 + ld hl, $104 + add hl, bc + ld a, [wYCoord] add $4 sub [hl] - jr z,.asm_fcbd7 - jr c,.asm_fcbca + jr z, .asm_fcbd7 + jr c, .asm_fcbca call Func_fcc01 - jr c,.asm_fcbc6 - ld a,$5 + jr c, .asm_fcbc6 + ld a, $5 and a ret .asm_fcbc6 - ld a,$1 + ld a, $1 and a ret .asm_fcbca call Func_fcc01 - jr c,.asm_fcbd3 - ld a,$6 + jr c, .asm_fcbd3 + ld a, $6 and a ret .asm_fcbd3 - ld a,$2 + ld a, $2 and a ret .asm_fcbd7 - ld hl,$105 - add hl,bc - ld a,[wXCoord] + ld hl, $105 + add hl, bc + ld a, [wXCoord] add $4 sub [hl] - jr z,.asm_fcbff - jr c,.asm_fcbf2 + jr z, .asm_fcbff + jr c, .asm_fcbf2 call Func_fcc01 - jr c,.asm_fcbee - ld a,$8 + jr c, .asm_fcbee + ld a, $8 and a ret .asm_fcbee - ld a,$4 + ld a, $4 and a ret .asm_fcbf2 call Func_fcc01 - jr c,.asm_fcbfb - ld a,$7 + jr c, .asm_fcbfb + ld a, $7 and a ret .asm_fcbfb - ld a,$3 + ld a, $3 and a ret .asm_fcbff @@ -1167,7 +1167,7 @@ Func_fcbac: ; fcbac (3f:4bac) ret Func_fcc01: ; fcc01 (3f:4c01) - jr nc,.asm_fcc05 + jr nc, .asm_fcc05 cpl inc a .asm_fcc05 @@ -1177,9 +1177,9 @@ Func_fcc01: ; fcc01 (3f:4c01) Func_fcc08:: ; fcc08 (3f:4c08) call Func_fcc23 ret nc - ld a,[wd736] - bit 6,a - jr nz,.asm_fcc1b + ld a, [wd736] + bit 6, a + jr nz, .asm_fcc1b call Func_fcc42 ret c call Func_fcb94 @@ -1191,18 +1191,18 @@ Func_fcc08:: ; fcc08 (3f:4c08) ret Func_fcc23: ; fcc23 (3f:4c28) - ld a,[wd430] - bit 5,a - jr nz,.asm_fcc40 - ld a,[wd430] - bit 7,a - jr nz,.asm_fcc40 - ld a,[wd472] - bit 7,a - jr z,.asm_fcc40 - ld a,[wWalkBikeSurfState] + ld a, [wd430] + bit 5, a + jr nz, .asm_fcc40 + ld a, [wd430] + bit 7, a + jr nz, .asm_fcc40 + ld a, [wd472] + bit 7, a + jr z, .asm_fcc40 + ld a, [wWalkBikeSurfState] and a - jr nz,.asm_fcc40 + jr nz, .asm_fcc40 scf ret .asm_fcc40 @@ -1211,83 +1211,83 @@ Func_fcc23: ; fcc23 (3f:4c28) Func_fcc42: ; fcc42 (3f:4c42) xor a - ld a,[wPlayerDirection] - bit 3,a - jr nz,.asm_fcc58 - bit 2,a - jr nz,.asm_fcc5b - bit 1,a - jr nz,.asm_fcc5e - bit 0,a - jr nz,.asm_fcc61 + ld a, [wPlayerDirection] + bit 3, a + jr nz, .asm_fcc58 + bit 2, a + jr nz, .asm_fcc5b + bit 1, a + jr nz, .asm_fcc5e + bit 0, a + jr nz, .asm_fcc61 scf ret .asm_fcc58 - ld a,$2 + ld a, $2 ret .asm_fcc5b - ld a,$1 + ld a, $1 ret .asm_fcc5e - ld a,$3 + ld a, $3 ret .asm_fcc61 - ld a,$4 + ld a, $4 ret Func_fcc64: ; fcc64 (3f:4c64) - ld hl,wd430 - bit 6,[hl] - jr z,.asm_fcc6e - res 6,[hl] + ld hl, wd430 + bit 6, [hl] + jr z, .asm_fcc6e + res 6, [hl] ret .asm_fcc6e - set 6,[hl] + set 6, [hl] xor a - ld a,[wPlayerDirection] - bit 3,a - jr nz,.asm_fcc86 - bit 2,a - jr nz,.asm_fcc89 - bit 1,a - jr nz,.asm_fcc8c - bit 0,a - jr nz,.asm_fcc8f + ld a, [wPlayerDirection] + bit 3, a + jr nz, .asm_fcc86 + bit 2, a + jr nz, .asm_fcc89 + bit 1, a + jr nz, .asm_fcc8c + bit 0, a + jr nz, .asm_fcc8f scf ret .asm_fcc86 - ld a,$6 + ld a, $6 ret .asm_fcc89 - ld a,$5 + ld a, $5 ret .asm_fcc8c - ld a,$7 + ld a, $7 ret .asm_fcc8f - ld a,$8 + ld a, $8 ret Func_fcc92: ; fcc92 (3f:4c92) - ld hl,wd437 - ld a,[hl] + ld hl, wd437 + ld a, [hl] cp $ff - jr z,.asm_fccb0 + jr z, .asm_fccb0 and a - jr z,.asm_fccb0 + jr z, .asm_fccb0 dec [hl] - ld e,a - ld d,0 - ld hl,wd438 - add hl,de + ld e, a + ld d, 0 + ld hl, wd438 + add hl, de inc e - ld a,$ff + ld a, $ff .asm_fcca8 - ld d,[hl] - ldd [hl],a - ld a,d + ld d, [hl] + ldd [hl], a + ld a, d dec e - jr nz,.asm_fcca8 + jr nz, .asm_fcca8 and a ret .asm_fccb0 @@ -1297,78 +1297,78 @@ Func_fcc92: ; fcc92 (3f:4c92) Func_fccb2:: ; fccb2 (3f:4cb2) call Func_fcd01 and a - jr z,.asm_fccbf + jr z, .asm_fccbf dec a and $3 add a add a jr .asm_fccea .asm_fccbf - ld a,[wYCoord] + ld a, [wYCoord] add $4 - ld d,a - ld a,[wXCoord] + ld d, a + ld a, [wXCoord] add $4 - ld e,a - ld a,[wSpriteStateData2 + $f4] + ld e, a + ld a, [wSpriteStateData2 + $f4] cp d - jr z,.asm_fccd9 - ld a,SPRITE_FACING_DOWN - jr c,.asm_fccea - ld a,SPRITE_FACING_UP + jr z, .asm_fccd9 + ld a, SPRITE_FACING_DOWN + jr c, .asm_fccea + ld a, SPRITE_FACING_UP jr .asm_fccea .asm_fccd9 - ld a,[wSpriteStateData2 + $f5] + ld a, [wSpriteStateData2 + $f5] cp e - jr z,.asm_fcce7 - ld a,SPRITE_FACING_RIGHT - jr c,.asm_fccea - ld a,SPRITE_FACING_LEFT + jr z, .asm_fcce7 + ld a, SPRITE_FACING_RIGHT + jr c, .asm_fccea + ld a, SPRITE_FACING_LEFT jr .asm_fccea .asm_fcce7 - ld a,[wSpriteStateData1 + $9] + ld a, [wSpriteStateData1 + $9] .asm_fccea - ld [wSpriteStateData1 + $f9],a + ld [wSpriteStateData1 + $f9], a ret Func_fccee: ; fccee (3f:4cee) - ld hl,wd437 - ld a,[hl] + ld hl, wd437 + ld a, [hl] cp $ff - jr z,.asm_fccff - ld e,a - ld d,0 - ld hl,wd438 - add hl,de - ld a,[hl] + jr z, .asm_fccff + ld e, a + ld d, 0 + ld hl, wd438 + add hl, de + ld a, [hl] ret .asm_fccff xor a ret Func_fcd01: ; fcd01 (3f:4d01) - ld hl,wd437 - ld a,[hl] + ld hl, wd437 + ld a, [hl] cp $ff - jr z,.asm_fcd15 + jr z, .asm_fcd15 and a - jr z,.asm_fcd15 - ld e,a - ld d,0 - ld hl,wd438 - add hl,de - ld a,[hl] + jr z, .asm_fcd15 + ld e, a + ld d, 0 + ld hl, wd438 + add hl, de + ld a, [hl] ret .asm_fcd15 xor a ret Func_fcd17: ; fcd17 (3f:4d17) - ld a,[wd437] + ld a, [wd437] cp $ff ret z cp $2 - jr nc,.asm_fcd23 + jr nc, .asm_fcd23 and a ret .asm_fcd23 @@ -1376,163 +1376,163 @@ Func_fcd17: ; fcd17 (3f:4d17) ret Func_fcd25: ; fcd25 (3f:4d25) - ld h,wSpriteStateData2 / $100 - ld a,[H_CURRENTSPRITEOFFSET] + ld h, wSpriteStateData2 / $100 + ld a, [H_CURRENTSPRITEOFFSET] add $4 - ld l,a - ld b,[hl] - ld a,[wYCoord] + ld l, a + ld b, [hl] + ld a, [wYCoord] cp b - jr z,.asm_fcd3a - jr nc,.asm_fcd63 + jr z, .asm_fcd3a + jr nc, .asm_fcd63 add $8 cp b - jr c,.asm_fcd63 + jr c, .asm_fcd63 .asm_fcd3a inc l - ld b,[hl] - ld a,[wXCoord] + ld b, [hl] + ld a, [wXCoord] cp b - jr z,.asm_fcd49 - jr nc,.asm_fcd63 + jr z, .asm_fcd49 + jr nc, .asm_fcd63 add $9 cp b - jr c,.asm_fcd63 + jr c, .asm_fcd63 .asm_fcd49 call Func_fcd83 - ld d,$60 - ld a,[hli] - ld e,a + ld d, $60 + ld a, [hli] + ld e, a cp d - jr nc,.asm_fcd63 - ld a,[hld] + jr nc, .asm_fcd63 + ld a, [hld] cp d - jr nc,.asm_fcd63 - ld bc,-20 - add hl,bc - ld a,[hli] + jr nc, .asm_fcd63 + ld bc, -20 + add hl, bc + ld a, [hli] cp d - jr nc,.asm_fcd63 - ld a,[hl] + jr nc, .asm_fcd63 + ld a, [hl] cp d - jr c,.asm_fcd6f + jr c, .asm_fcd6f .asm_fcd63 - ld h,wSpriteStateData1 / $100 - ld a,[H_CURRENTSPRITEOFFSET] + ld h, wSpriteStateData1 / $100 + ld a, [H_CURRENTSPRITEOFFSET] add $2 - ld l,a - ld [hl],$ff + ld l, a + ld [hl], $ff scf jr .asm_fcd82 .asm_fcd6f - ld h,wSpriteStateData2 / $100 - ld a,[H_CURRENTSPRITEOFFSET] + ld h, wSpriteStateData2 / $100 + ld a, [H_CURRENTSPRITEOFFSET] add $7 - ld l,a - ld a,[wGrassTile] + ld l, a + ld a, [wGrassTile] cp e - ld a,$0 - jr nz,.asm_fcd80 - ld a,$80 + ld a, $0 + jr nz, .asm_fcd80 + ld a, $80 .asm_fcd80 - ld [hl],a + ld [hl], a and a .asm_fcd82 ret Func_fcd83: ; fcd83 (3f:4d83) - ld h,wSpriteStateData1 / $100 - ld a,[H_CURRENTSPRITEOFFSET] + ld h, wSpriteStateData1 / $100 + ld a, [H_CURRENTSPRITEOFFSET] add $4 - ld l,a - ld a,[hli] + ld l, a + ld a, [hli] add $4 and $f0 srl a - ld c,a - ld b,$0 + ld c, a + ld b, $0 inc l - ld a,[hl] + ld a, [hl] add $2 srl a srl a srl a add SCREEN_WIDTH - ld d,0 - ld e,a - ld hl,wTileMap + ld d, 0 + ld e, a + ld hl, wTileMap rept 5 - add hl,bc + add hl, bc endr - add hl,de + add hl, de ret Func_fcdad: ; fcdad (3f:4dad) push bc push af - ld a,[wPikachuHappiness] + ld a, [wPikachuHappiness] cp $50 pop bc - ld a,b + ld a, b pop bc ret IsStarterPikachuInOurParty:: ; fcdb8 (3f:4db8) - ld hl,wPartySpecies - ld de,wPartyMon1OTID - ld bc,wPartyMonOT + ld hl, wPartySpecies + ld de, wPartyMon1OTID + ld bc, wPartyMonOT push hl .loop pop hl - ld a,[hli] + ld a, [hli] push hl inc a - jr z,.noPlayerPikachu + jr z, .noPlayerPikachu cp PIKACHU + 1 - jr nz,.curMonNotPlayerPikachu - ld h,d - ld l,e - ld a,[wPlayerID] + jr nz, .curMonNotPlayerPikachu + ld h, d + ld l, e + ld a, [wPlayerID] cp [hl] - jr nz,.curMonNotPlayerPikachu + jr nz, .curMonNotPlayerPikachu inc hl - ld a,[wPlayerID+1] + ld a, [wPlayerID+1] cp [hl] - jr nz,.curMonNotPlayerPikachu + jr nz, .curMonNotPlayerPikachu push de push bc - ld hl,wPlayerName - ld d,$6 ; possible player length - 1 + ld hl, wPlayerName + ld d, $6 ; possible player length - 1 .nameCompareLoop dec d - jr z,.sameOT - ld a,[bc] + jr z, .sameOT + ld a, [bc] inc bc cp [hl] inc hl - jr z,.nameCompareLoop + jr z, .nameCompareLoop pop bc pop de .curMonNotPlayerPikachu - ld hl,wPartyMon2 - wPartyMon1 - add hl,de - ld d,h - ld e,l - ld hl,NAME_LENGTH - add hl,bc - ld b,h - ld c,l + ld hl, wPartyMon2 - wPartyMon1 + add hl, de + ld d, h + ld e, l + ld hl, NAME_LENGTH + add hl, bc + ld b, h + ld c, l jr .loop .sameOT pop bc pop de - ld h,d - ld l,e - ld bc,-NAME_LENGTH - add hl,bc - ld a,[hli] + ld h, d + ld l, e + ld bc, -NAME_LENGTH + add hl, bc + ld a, [hli] or [hl] - jr z,.noPlayerPikachu ; XXX how is this determined? + jr z, .noPlayerPikachu ; XXX how is this determined? pop hl scf ret @@ -1542,46 +1542,46 @@ IsStarterPikachuInOurParty:: ; fcdb8 (3f:4db8) ret IsThisPartymonStarterPikachu_Box:: ; fce0d (3f:4e0d) - ld hl,wBoxMon1 - ld bc,wBoxMon2 - wBoxMon1 - ld de,wBoxMonOT + ld hl, wBoxMon1 + ld bc, wBoxMon2 - wBoxMon1 + ld de, wBoxMonOT jr asm_fce21 IsThisPartymonStarterPikachu_Party:: ; fce18 (3f:4e18) IsThisPartymonStarterPikachu:: - ld hl,wPartyMon1 - ld bc,wPartyMon2 - wPartyMon1 - ld de,wPartyMonOT + ld hl, wPartyMon1 + ld bc, wPartyMon2 - wPartyMon1 + ld de, wPartyMonOT asm_fce21: ; fce21 (3f:4e21) - ld a,[wWhichPokemon] + ld a, [wWhichPokemon] call AddNTimes - ld a,[hl] + ld a, [hl] cp PIKACHU - jr nz,.notPlayerPikachu - ld bc,wPartyMon1OTID - wPartyMon1 - add hl,bc - ld a,[wPlayerID] + jr nz, .notPlayerPikachu + ld bc, wPartyMon1OTID - wPartyMon1 + add hl, bc + ld a, [wPlayerID] cp [hl] - jr nz,.notPlayerPikachu + jr nz, .notPlayerPikachu inc hl - ld a,[wPlayerID+1] + ld a, [wPlayerID+1] cp [hl] - jr nz,.notPlayerPikachu - ld h,d - ld l,e - ld a,[wWhichPokemon] - ld bc,NAME_LENGTH + jr nz, .notPlayerPikachu + ld h, d + ld l, e + ld a, [wWhichPokemon] + ld bc, NAME_LENGTH call AddNTimes - ld de,wPlayerName - ld b,$6 + ld de, wPlayerName + ld b, $6 .loop dec b - jr z,.isPlayerPikachu - ld a,[de] + jr z, .isPlayerPikachu + ld a, [de] inc de cp [hl] inc hl - jr z,.loop + jr z, .loop .notPlayerPikachu and a ret @@ -1594,52 +1594,52 @@ Func_fce5a:: ; fce5a (3f:4e5a) call IsStarterPikachuInOurParty pop de ret nc - ld a,d + ld a, d cp $80 - ld a,[wPikachuMood] - jr c,.asm_fce6c + ld a, [wPikachuMood] + jr c, .asm_fce6c cp d - jr c,.asm_fce6e + jr c, .asm_fce6e ret .asm_fce6c cp d ret c .asm_fce6e - ld a,d - ld [wPikachuMood],a + ld a, d + ld [wPikachuMood], a ret Func_fce73:: ; fce73 (3f:4e73) ; function to test if a pokemon is alive? xor a - ld [wWhichPokemon],a - ld hl,wPartyCount + ld [wWhichPokemon], a + ld hl, wPartyCount .loop inc hl - ld a,[hl] + ld a, [hl] cp $ff - jr z,.asm_fcea9 + jr z, .asm_fcea9 push hl call IsThisPartymonStarterPikachu_Party pop hl - jr nc,.asm_fce9e - ld a,[wWhichPokemon] - ld hl,wPartyMon1HP - ld bc,wPartyMon2 - wPartyMon1 + jr nc, .asm_fce9e + ld a, [wWhichPokemon] + ld hl, wPartyMon1HP + ld bc, wPartyMon2 - wPartyMon1 call AddNTimes - ld a,[hli] + ld a, [hli] or [hl] - ld d,a + ld d, a inc hl inc hl - ld a,[hl] + ld a, [hl] and a - jr nz,.asm_fcea7 + jr nz, .asm_fcea7 jr .asm_fcea9 .asm_fce9e - ld a,[wWhichPokemon] + ld a, [wWhichPokemon] inc a - ld [wWhichPokemon],a + ld [wWhichPokemon], a jr .loop .asm_fcea7 scf @@ -1649,29 +1649,29 @@ Func_fce73:: ; fce73 (3f:4e73) ret Func_fceab:: ; fceab (3f:4eab) - ld hl,wPartySpecies - ld de,wPartyMon1Moves - ld bc,wPartyMonOT + ld hl, wPartySpecies + ld de, wPartyMon1Moves + ld bc, wPartyMonOT push hl .loop pop hl - ld a,[hli] + ld a, [hli] push hl inc a - jr z,.noSurfingPlayerPikachu + jr z, .noSurfingPlayerPikachu cp PIKACHU+1 - jr nz,.curMonNotSurfingPlayerPikachu - ld h,d - ld l,e + jr nz, .curMonNotSurfingPlayerPikachu + ld h, d + ld l, e push hl push bc - ld b,NUM_MOVES + ld b, NUM_MOVES .moveSearchLoop - ld a,[hli] + ld a, [hli] cp SURF - jr z,.foundSurfingPikachu + jr z, .foundSurfingPikachu dec b - jr nz,.moveSearchLoop + jr nz, .moveSearchLoop pop bc pop hl jr .curMonNotSurfingPlayerPikachu @@ -1682,36 +1682,36 @@ Func_fceab:: ; fceab (3f:4eab) inc hl inc hl inc hl - ld a,[wPlayerID] + ld a, [wPlayerID] cp [hl] - jr nz,.curMonNotSurfingPlayerPikachu + jr nz, .curMonNotSurfingPlayerPikachu inc hl - ld a,[wPlayerID+1] + ld a, [wPlayerID+1] cp [hl] - jr nz,.curMonNotSurfingPlayerPikachu + jr nz, .curMonNotSurfingPlayerPikachu push de push bc - ld hl,wPlayerName - ld d,$6 + ld hl, wPlayerName + ld d, $6 .nameCompareLoop dec d - jr z,.foundSurfingPlayerPikachu - ld a,[bc] + jr z, .foundSurfingPlayerPikachu + ld a, [bc] inc bc cp [hl] inc hl - jr z,.nameCompareLoop + jr z, .nameCompareLoop pop bc pop de .curMonNotSurfingPlayerPikachu - ld hl,wPartyMon2 - wPartyMon1 - add hl,de - ld d,h - ld e,l - ld hl,NAME_LENGTH - add hl,bc - ld b,h - ld c,l + ld hl, wPartyMon2 - wPartyMon1 + add hl, de + ld d, h + ld e, l + ld hl, NAME_LENGTH + add hl, bc + ld b, h + ld c, l jr .loop .foundSurfingPlayerPikachu pop bc @@ -2022,7 +2022,7 @@ Func_fd05e: ; fd05e (3f:505e) ret Pointer_fd0cb: - db $12,$15,$17,$18,$19 + db $12, $15, $17, $18, $19 IsPlayerPikachuAsleepInParty:: ; fd0d0 (3f:50d0) xor a @@ -2286,15 +2286,113 @@ PikachuEmotion32_fd213: ; fd213 (3f:5213) db $ff Pointer_fd218: ; fd218 (3f:5218) - dr $fd218,$fd21e + + db $00 + db $39, $01 + db $3e, $1e + db $3f + Pointer_fd21e: ; fd21e (3f:521e) - dr $fd21e,$fd224 + db $00 + db $39, $00 + db $3e, $1e + db $3f + Pointer_fd224: ; fd224 (3f:5224) - dr $fd224,$fd230 + db $00 + db $3c, $07, $2f + db $3c, $07, $2f + db $3f + +Pointer_fd22c: ; fd22c (3f:522c) + db $3b, $1f, $03 + db $3f + Pointer_fd230: ; fd230 (3f:5230) - dr $fd230,$fd252 + db $00 + db $3c, $0f, $1f + db $3c, $0f, $1f + db $3f + +Pointer_fd238: ; fd238 (3f:5238) + db $00 + db $05, $07 + db $39, $00 + db $05, $07 + db $06, $07 + db $39, $00 + db $06, $07 + db $08, $07 + db $39, $00 + db $08, $07 + db $07, $07 + db $39, $00 + db $07, $07 + db $3f + Func_fd252: ; fd252 (3f:5252) - dr $fd252,$fd2a1 + ld a, $40 + ld [h_0xFFFC], a + call Func_fd8ab + call Func_fd266 + and a + jr z, .asm_fd262 + call Func_159b +.asm_fd262 + xor a + ld [h_0xFFFC], a + ret + +Func_fd266: + ld a, [wSpriteStateData2 + 15 * 16 + 4] + ld e, a + ld a, [wSpriteStateData2 + 15 * 16 + 5] + ld d, a + ld a, [wYCoord] + add 4 + cp e + jr z, .asm_fd280 + jr nc, .asm_fd27e + ld hl, Data_fd294 + ld a, 1 + ret + +.asm_fd27e + xor a + ret + +.asm_fd280 + ld a, [wXCoord] + add 4 + cp d + jr c, .asm_fd28e + ld hl, Data_fd299 + ld a, 2 + ret + +.asm_fd28e + ld hl, Data_fd29d + ld a, 3 + ret + +Data_fd294: + db $00 + db $36 + db $2b + db $34 + db $3f + +Data_fd299: + db $00 + db $36 + db $34 + db $3f + +Data_fd29d: + db $00 + db $36 + db $33 + db $3f Func_fd2a1:: ; fd2a1 (3f:52a1) ld a, b @@ -2461,69 +2559,69 @@ Func_fd39d: ret Data_fd3b0: - db $01, $00, $00, $00 - db $03, $80, $01, $00 - db $04, $80, $01, $00 - db $05, $80, $01, $00 - db $06, $80, $01, $00 - db $07, $80, $01, $00 - db $08, $80, $01, $00 - db $09, $80, $01, $00 - db $0a, $80, $01, $00 - db $03, $80, $06, $00 - db $04, $80, $06, $00 - db $05, $80, $06, $00 - db $06, $80, $06, $00 - db $07, $80, $06, $00 - db $08, $80, $06, $00 - db $09, $80, $06, $00 - db $0a, $80, $06, $00 - db $03, $80, $03, $80 - db $04, $80, $03, $80 - db $05, $80, $03, $80 - db $06, $80, $03, $80 - db $07, $80, $03, $80 - db $08, $80, $03, $80 - db $09, $80, $03, $80 - db $0a, $80, $03, $80 - db $03, $80, $07, $80 - db $04, $80, $07, $80 - db $05, $80, $07, $80 - db $06, $80, $07, $80 - db $0b, $27, $02, $00 - db $0c, $27, $02, $00 - db $0d, $27, $02, $00 - db $0e, $27, $02, $00 - db $0f, $27, $02, $00 - db $10, $27, $02, $00 - db $11, $27, $02, $00 - db $12, $27, $02, $00 - db $0b, $0f, $02, $00 - db $0c, $0f, $02, $00 - db $0d, $0f, $02, $00 - db $0e, $0f, $02, $00 - db $0f, $0f, $02, $00 - db $10, $0f, $02, $00 - db $11, $0f, $02, $00 - db $12, $0f, $02, $00 - db $0b, $0f, $08, $17 - db $0c, $0f, $08, $17 - db $0d, $0f, $08, $17 - db $0e, $0f, $08, $17 - db $0f, $0f, $08, $17 - db $10, $0f, $08, $17 - db $11, $0f, $08, $17 - db $12, $0f, $08, $17 - db $13, $0f, $06, $00 - db $14, $0f, $06, $00 - db $15, $0f, $06, $00 - db $16, $0f, $06, $00 - db $02, $80, $04, $00 - db $02, $80, $05, $00 - db $02, $80, $03, $80 - db $02, $80, $07, $80 - db $02, $80, $09, $80 - db $02, $80, $06, $00 + db $01, $00, $00, $00 ; $00 + db $03, $80, $01, $00 ; $01 + db $04, $80, $01, $00 ; $02 + db $05, $80, $01, $00 ; $03 + db $06, $80, $01, $00 ; $04 + db $07, $80, $01, $00 ; $05 + db $08, $80, $01, $00 ; $06 + db $09, $80, $01, $00 ; $07 + db $0a, $80, $01, $00 ; $08 + db $03, $80, $06, $00 ; $09 + db $04, $80, $06, $00 ; $0a + db $05, $80, $06, $00 ; $0b + db $06, $80, $06, $00 ; $0c + db $07, $80, $06, $00 ; $0d + db $08, $80, $06, $00 ; $0e + db $09, $80, $06, $00 ; $0f + db $0a, $80, $06, $00 ; $10 + db $03, $80, $03, $80 ; $11 + db $04, $80, $03, $80 ; $12 + db $05, $80, $03, $80 ; $13 + db $06, $80, $03, $80 ; $14 + db $07, $80, $03, $80 ; $15 + db $08, $80, $03, $80 ; $16 + db $09, $80, $03, $80 ; $17 + db $0a, $80, $03, $80 ; $18 + db $03, $80, $07, $80 ; $19 + db $04, $80, $07, $80 ; $1a + db $05, $80, $07, $80 ; $1b + db $06, $80, $07, $80 ; $1c + db $0b, $27, $02, $00 ; $1d + db $0c, $27, $02, $00 ; $1e + db $0d, $27, $02, $00 ; $1f + db $0e, $27, $02, $00 ; $20 + db $0f, $27, $02, $00 ; $21 + db $10, $27, $02, $00 ; $22 + db $11, $27, $02, $00 ; $23 + db $12, $27, $02, $00 ; $24 + db $0b, $0f, $02, $00 ; $25 + db $0c, $0f, $02, $00 ; $26 + db $0d, $0f, $02, $00 ; $27 + db $0e, $0f, $02, $00 ; $28 + db $0f, $0f, $02, $00 ; $29 + db $10, $0f, $02, $00 ; $2a + db $11, $0f, $02, $00 ; $2b + db $12, $0f, $02, $00 ; $2c + db $0b, $0f, $08, $17 ; $2d + db $0c, $0f, $08, $17 ; $2e + db $0d, $0f, $08, $17 ; $2f + db $0e, $0f, $08, $17 ; $30 + db $0f, $0f, $08, $17 ; $31 + db $10, $0f, $08, $17 ; $32 + db $11, $0f, $08, $17 ; $33 + db $12, $0f, $08, $17 ; $34 + db $13, $0f, $06, $00 ; $35 + db $14, $0f, $06, $00 ; $36 + db $15, $0f, $06, $00 ; $37 + db $16, $0f, $06, $00 ; $38 + db $02, $80, $04, $00 ; $39 + db $02, $80, $05, $00 ; $3a + db $02, $80, $03, $80 ; $3b + db $02, $80, $07, $80 ; $3c + db $02, $80, $09, $80 ; $3d + db $02, $80, $06, $00 ; $3e Jumptable_fd4ac: dw Func_fd4e5 @@ -2791,40 +2889,40 @@ asm_fd5fa ret Func_fd601: - dr $fd601,$fd65c + dr $fd601, $fd65c Jumptable_fd65c: - dr $fd65c,$fd75f + dr $fd65c, $fd75f Func_fd75f: - dr $fd75f,$fd769 + dr $fd75f, $fd769 Func_fd769: - dr $fd769,$fd775 + dr $fd769, $fd775 Func_fd775: - dr $fd775,$fd784 + dr $fd775, $fd784 Func_fd784: - dr $fd784,$fd7cb + dr $fd784, $fd7cb Func_fd7cb: - dr $fd7cb,$fd7f3 + dr $fd7cb, $fd7f3 Func_fd7f3: - dr $fd7f3,$fd831 + dr $fd7f3, $fd831 Func_fd831: - dr $fd831,$fd8ab + dr $fd831, $fd8ab Func_fd8ab: ; fd8ab (3f:58ab) - dr $fd8ab,$fd8d4 + dr $fd8ab, $fd8d4 Func_fd8d4: ; fd8d4 (3f:58d4) - dr $fd8d4,$fd8e1 + dr $fd8d4, $fd8e1 Func_fd8e1: ; fd8e1 (3f:58e1) - dr $fd8e1,$fd8ee + dr $fd8e1, $fd8ee Func_fd8ee: ; fd8ee (3f:58ee) - dr $fd8ee,$fd8f8 + dr $fd8ee, $fd8f8 Func_fd8f8: ; fd8f8 (3f:58f8) - dr $fd8f8,$fd978 + dr $fd8f8, $fd978 Func_fd978: ; fd978 (3f:5978) - dr $fd978,$fd9d0 + dr $fd978, $fd9d0 Func_fd9d0: ; fd9d0 (3f:59d0) - dr $fd9d0,$fe66f + dr $fd9d0, $fe66f OfficerJennySprite: INCBIN "gfx/sprites/officer_jenny.2bpp" PikachuSprite: INCBIN "gfx/sprites/pikachu.2bpp" diff --git a/home.asm b/home.asm index e5a84d9b..55f474b7 100644 --- a/home.asm +++ b/home.asm @@ -22,7 +22,7 @@ SECTION "vblank", ROM0 [$40] jp VBlank SECTION "hblank", ROM0 [$48] jp LCDC -SECTION "timer", ROM0 [$50] +SECTION "timer", ROM0 [$50] jp Timer SECTION "serial", ROM0 [$58] jp Serial @@ -102,21 +102,21 @@ SECTION "Header", ROM0 [$104] SECTION "Main", ROM0 PlayPikachuPCM:: ; 0150 (0:0150) - ld a,[H_LOADEDROMBANK] + ld a, [H_LOADEDROMBANK] push af - ld a,b + ld a, b call BankswitchCommon - ld a,[hli] - ld c,a - ld a,[hli] - ld b,a + ld a, [hli] + ld c, a + ld a, [hli] + ld b, a .loop - ld a,[hli] - ld d,a - ld a,$3 + ld a, [hli] + ld d, a + ld a, $3 .playSingleSample dec a - jr nz,.playSingleSample + jr nz, .playSingleSample rept 7 call LoadNextSoundClipSample @@ -125,27 +125,27 @@ PlayPikachuPCM:: ; 0150 (0:0150) call LoadNextSoundClipSample dec bc - ld a,c + ld a, c or b - jr nz,.loop + jr nz, .loop pop af call BankswitchCommon ret LoadNextSoundClipSample:: ; 0199 (0:0199) - ld a,d + ld a, d and $80 srl a srl a - ld [rNR32],a + ld [rNR32], a sla d ret PlaySoundClipSample:: ; 01a5 (0:01a5) - ld a,$3 + ld a, $3 .loop dec a - jr nz,.loop + jr nz, .loop ret Start:: ; 01ab (0:01ab) @@ -198,24 +198,24 @@ CheckForUserInterruption:: ; 10ba (0:10ba) ; INPUT: ; a = ID of destination warp within destination map LoadDestinationWarpPosition:: ; 10d5 (0:10d5) - ld b,a - ld a,[H_LOADEDROMBANK] + ld b, a + ld a, [H_LOADEDROMBANK] push af - ld a,[wPredefParentBank] - ld [H_LOADEDROMBANK],a - ld [MBC1RomBank],a - ld a,b + ld a, [wPredefParentBank] + ld [H_LOADEDROMBANK], a + ld [MBC1RomBank], a + ld a, b add a add a - ld c,a - ld b,0 - add hl,bc - ld bc,4 - ld de,wCurrentTileBlockMapViewPointer + ld c, a + ld b, 0 + add hl, bc + ld bc, 4 + ld de, wCurrentTileBlockMapViewPointer call CopyData pop af - ld [H_LOADEDROMBANK],a - ld [MBC1RomBank],a + ld [H_LOADEDROMBANK], a + ld [MBC1RomBank], a ret @@ -239,18 +239,18 @@ DrawHPBar:: ; 10f8 (0:10f8) ; Middle ld a, $63 ; empty .draw - ld [hli],a + ld [hli], a dec d jr nz, .draw ; Right - ld a,[wHPBarType] + ld a, [wHPBarType] dec a ld a, $6d ; status screen and battle jr z, .ok dec a ; pokemon menu .ok - ld [hl],a + ld [hl], a pop hl @@ -357,17 +357,17 @@ LoadFrontSpriteByMonIndex:: ; 1149 (0:1149) PlayCry:: ; 118b (0:118b) ; Play monster a's cry. push bc - ld b,a - ld a,[wLowHealthAlarm] + ld b, a + ld a, [wLowHealthAlarm] push af xor a - ld [wLowHealthAlarm],a - ld a,b + ld [wLowHealthAlarm], a + ld a, b call GetCryData call PlaySound call WaitForSoundToFinish pop af - ld [wLowHealthAlarm],a + ld [wLowHealthAlarm], a pop bc ret @@ -391,8 +391,8 @@ GetCryData:: ; 11a5 (0:11a5) ld [wTempoModifier], a call BankswitchBack - ; Cry headers have 3 channels, - ; and start from index $14, + ; Cry headers have 3 channels, + ; and start from index $14, ; so add 3 times the cry id. ld a, b ld c, $14 @@ -402,10 +402,10 @@ GetCryData:: ; 11a5 (0:11a5) ret DisplayPartyMenu:: ; 11c8 (0:11c8) - ld a,[hTilesetType] + ld a, [hTilesetType] push af xor a - ld [hTilesetType],a + ld [hTilesetType], a call GBPalWhiteOutWithDelay3 call ClearSprites call PartyMenuInit @@ -413,10 +413,10 @@ DisplayPartyMenu:: ; 11c8 (0:11c8) jp HandlePartyMenuInput GoBackToPartyMenu:: ; 11dd (0:11dd) - ld a,[hTilesetType] + ld a, [hTilesetType] push af xor a - ld [hTilesetType],a + ld [hTilesetType], a call PartyMenuInit call RedrawPartyMenu jp HandlePartyMenuInput @@ -461,77 +461,77 @@ PartyMenuInit:: ; 11ec (0:11ec) ret HandlePartyMenuInput:: ; 1226 (0:1226) - ld a,1 - ld [wMenuWrappingEnabled],a - ld a,$40 - ld [wPartyMenuAnimMonEnabled],a + ld a, 1 + ld [wMenuWrappingEnabled], a + ld a, $40 + ld [wPartyMenuAnimMonEnabled], a call HandleMenuInputPokemonSelection push af ; save hJoy5 OR wMenuWrapping enabled, if no inputs were selected within a certain period of time - bit 1,a ; was B button pressed? - ld a,$0 - ld [wPartyMenuAnimMonEnabled],a - ld a,[wCurrentMenuItem] - ld [wPartyAndBillsPCSavedMenuItem],a - jr nz,.asm_1258 - ld a,[wCurrentMenuItem] - ld [wWhichPokemon],a + bit 1, a ; was B button pressed? + ld a, $0 + ld [wPartyMenuAnimMonEnabled], a + ld a, [wCurrentMenuItem] + ld [wPartyAndBillsPCSavedMenuItem], a + jr nz, .asm_1258 + ld a, [wCurrentMenuItem] + ld [wWhichPokemon], a callab IsThisPartymonStarterPikachu_Party ; 3f:4e18 - jr nc,.asm_1258 + jr nc, .asm_1258 call Func_154a - jr nz,.asm_128f + jr nz, .asm_128f .asm_1258 pop af call PlaceUnfilledArrowMenuCursor - ld b,a - ld hl,wd730 - res 6,[hl] ; turn on letter printing delay - ld a,[wMenuItemToSwap] + ld b, a + ld hl, wd730 + res 6, [hl] ; turn on letter printing delay + ld a, [wMenuItemToSwap] and a - jp nz,.swappingPokemon + jp nz, .swappingPokemon pop af ; double pop af? - ld [hTilesetType],a - bit 1,b - jr nz,.noPokemonChosen - ld a,[wPartyCount] + ld [hTilesetType], a + bit 1, b + jr nz, .noPokemonChosen + ld a, [wPartyCount] and a - jr z,.noPokemonChosen - ld a,[wCurrentMenuItem] - ld [wWhichPokemon],a - ld hl,wPartySpecies - ld b,0 - ld c,a - add hl,bc - ld a,[hl] - ld [wcf91],a - ld [wBattleMonSpecies2],a + jr z, .noPokemonChosen + ld a, [wCurrentMenuItem] + ld [wWhichPokemon], a + ld hl, wPartySpecies + ld b, 0 + ld c, a + add hl, bc + ld a, [hl] + ld [wcf91], a + ld [wBattleMonSpecies2], a call BankswitchBack and a ret .asm_128f pop af - ld hl,PartyMenuText_12cc + ld hl, PartyMenuText_12cc call PrintText xor a - ld [wMenuItemToSwap],a + ld [wMenuItemToSwap], a pop af - ld [hTilesetType],a + ld [hTilesetType], a .noPokemonChosen call BankswitchBack scf ret .swappingPokemon - bit 1,b ; was the B button pressed? - jr z,.handleSwap ; if not, handle swapping the pokemon + bit 1, b ; was the B button pressed? + jr z, .handleSwap ; if not, handle swapping the pokemon .cancelSwap ; if the B button was pressed callba ErasePartyMenuCursors ; 4:5e98 xor a - ld [wMenuItemToSwap],a - ld [wPartyMenuTypeOrMessageID],a + ld [wMenuItemToSwap], a + ld [wPartyMenuTypeOrMessageID], a call RedrawPartyMenu jp HandlePartyMenuInput .handleSwap - ld a,[wCurrentMenuItem] - ld [wWhichPokemon],a + ld a, [wCurrentMenuItem] + ld [wWhichPokemon], a callba SwitchPartyMon ; 4:61c5 jp HandlePartyMenuInput @@ -558,19 +558,19 @@ PrintStatusCondition:: ; 12de (0:12de) push de dec de dec de ; de = address of current HP - ld a,[de] - ld b,a + ld a, [de] + ld b, a dec de - ld a,[de] + ld a, [de] or b ; is the pokemon's HP zero? pop de - jr nz,PrintStatusConditionNotFainted + jr nz, PrintStatusConditionNotFainted ; if the pokemon's HP is 0, print "FNT" - ld a,"F" - ld [hli],a - ld a,"N" - ld [hli],a - ld [hl],"T" + ld a, "F" + ld [hli], a + ld a, "N" + ld [hli], a + ld [hl], "T" and a ret @@ -582,12 +582,12 @@ PrintStatusConditionNotFainted: ; 12f3 (0:12f3) ; hl = destination address ; [wLoadedMonLevel] = level PrintLevel:: ; 1303 (0:1303) - ld a,$6e ; ":L" tile ID - ld [hli],a - ld c,2 ; number of digits - ld a,[wLoadedMonLevel] ; level - cp a,100 - jr c,PrintLevelCommon + ld a, $6e ; ":L" tile ID + ld [hli], a + ld c, 2 ; number of digits + ld a, [wLoadedMonLevel] ; level + cp a, 100 + jr c, PrintLevelCommon ; if level at least 100, write over the ":L" tile dec hl inc c ; increment number of digits to 3 @@ -598,75 +598,75 @@ PrintLevel:: ; 1303 (0:1303) ; hl = destination address ; [wLoadedMonLevel] = level PrintLevelFull:: ; 1313 (0:1313) - ld a,$6e ; ":L" tile ID - ld [hli],a - ld c,3 ; number of digits - ld a,[wLoadedMonLevel] ; level + ld a, $6e ; ":L" tile ID + ld [hli], a + ld c, 3 ; number of digits + ld a, [wLoadedMonLevel] ; level PrintLevelCommon:: ; 131b (0:131b) - ld [wd11e],a - ld de,wd11e - ld b,LEFT_ALIGN | 1 ; 1 byte + ld [wd11e], a + ld de, wd11e + ld b, LEFT_ALIGN | 1 ; 1 byte jp PrintNumber GetwMoves:: ; 1326 (0:1326) ; Unused. Returns the move at index a from wMoves in a - ld hl,wMoves - ld c,a - ld b,0 - add hl,bc - ld a,[hl] + ld hl, wMoves + ld c, a + ld b, 0 + add hl, bc + ld a, [hl] ret ; copies the base stat data of a pokemon to wMonHeader ; INPUT: ; [wd0b5] = pokemon ID GetMonHeader:: ; 132f (0:132f) - ld a,[H_LOADEDROMBANK] + ld a, [H_LOADEDROMBANK] push af switchbank BaseStats push bc push de push hl - ld a,[wd11e] + ld a, [wd11e] push af - ld a,[wd0b5] - ld [wd11e],a - ld de,FossilKabutopsPic - ld b,$66 ; size of Kabutops fossil and Ghost sprites - cp a,FOSSIL_KABUTOPS ; Kabutops fossil - jr z,.specialID - ld de,GhostPic - cp a,MON_GHOST ; Ghost - jr z,.specialID - ld de,FossilAerodactylPic - ld b,$77 ; size of Aerodactyl fossil sprite - cp a,FOSSIL_AERODACTYL ; Aerodactyl fossil - jr z,.specialID - ;cp a,MEW - ;jr z,.mew + ld a, [wd0b5] + ld [wd11e], a + ld de, FossilKabutopsPic + ld b, $66 ; size of Kabutops fossil and Ghost sprites + cp a, FOSSIL_KABUTOPS ; Kabutops fossil + jr z, .specialID + ld de, GhostPic + cp a, MON_GHOST ; Ghost + jr z, .specialID + ld de, FossilAerodactylPic + ld b, $77 ; size of Aerodactyl fossil sprite + cp a, FOSSIL_AERODACTYL ; Aerodactyl fossil + jr z, .specialID + ;cp a, MEW + ;jr z, .mew predef IndexToPokedex ; convert pokemon ID in [wd11e] to pokedex number - ld a,[wd11e] + ld a, [wd11e] dec a - ld bc,28 - ld hl,BaseStats + ld bc, 28 + ld hl, BaseStats call AddNTimes - ld de,wMonHeader - ld bc,28 + ld de, wMonHeader + ld bc, 28 call CopyData jr .done .specialID - ld hl,wMonHSpriteDim - ld [hl],b ; write sprite dimensions + ld hl, wMonHSpriteDim + ld [hl], b ; write sprite dimensions inc hl - ld [hl],e ; write front sprite pointer + ld [hl], e ; write front sprite pointer inc hl - ld [hl],d + ld [hl], d .done - ld a,[wd0b5] - ld [wMonHIndex],a + ld a, [wd0b5] + ld [wMonHIndex], a pop af - ld [wd11e],a + ld [wd11e], a pop hl pop de pop bc @@ -676,17 +676,17 @@ GetMonHeader:: ; 132f (0:132f) ; copy party pokemon's name to wcd6d GetPartyMonName2:: ; 1394 (0:1394) - ld a,[wWhichPokemon] ; index within party - ld hl,wPartyMonNicks + ld a, [wWhichPokemon] ; index within party + ld hl, wPartyMonNicks ; this is called more often GetPartyMonName:: ; 139a (0:139a) push hl push bc call SkipFixedLengthTextEntries ; add NAME_LENGTH to hl, a times - ld de,wcd6d + ld de, wcd6d push de - ld bc,NAME_LENGTH + ld bc, NAME_LENGTH call CopyData pop de pop bc @@ -707,38 +707,38 @@ GetPartyMonName:: ; 139a (0:139a) ; Note that bits 5 and 7 are modified during execution. The above reflects ; their meaning at the beginning of the functions's execution. PrintBCDNumber:: ; 13ad (0:13ad) - ld b,c ; save flags in b - res 7,c - res 6,c - res 5,c ; c now holds the length - bit 5,b - jr z,.loop - bit 7,b - jr nz,.loop + ld b, c ; save flags in b + res 7, c + res 6, c + res 5, c ; c now holds the length + bit 5, b + jr z, .loop + bit 7, b + jr nz, .loop ld [hl], "¥" inc hl .loop - ld a,[de] + ld a, [de] swap a call PrintBCDDigit ; print upper digit - ld a,[de] + ld a, [de] call PrintBCDDigit ; print lower digit inc de dec c - jr nz,.loop - bit 7,b ; were any non-zero digits printed? - jr z,.done ; if so, we are done + jr nz, .loop + bit 7, b ; were any non-zero digits printed? + jr z, .done ; if so, we are done .numberEqualsZero ; if every digit of the BCD number is zero - bit 6,b ; left or right alignment? - jr nz,.skipRightAlignmentAdjustment + bit 6, b ; left or right alignment? + jr nz, .skipRightAlignmentAdjustment dec hl ; if the string is right-aligned, it needs to be moved back one space .skipRightAlignmentAdjustment - bit 5,b - jr z,.skipCurrencySymbol + bit 5, b + jr z, .skipCurrencySymbol ld [hl], "¥" inc hl .skipCurrencySymbol - ld [hl],"0" + ld [hl], "0" call PrintLetterDelay inc hl .done @@ -747,26 +747,26 @@ PrintBCDNumber:: ; 13ad (0:13ad) PrintBCDDigit:: ; 13e4 (0:13e4) and $f and a - jr z,.zeroDigit + jr z, .zeroDigit .nonzeroDigit - bit 7,b ; have any non-space characters been printed? - jr z,.outputDigit + bit 7, b ; have any non-space characters been printed? + jr z, .outputDigit ; if bit 7 is set, then no numbers have been printed yet - bit 5,b ; print the currency symbol? - jr z,.skipCurrencySymbol + bit 5, b ; print the currency symbol? + jr z, .skipCurrencySymbol ld [hl], "¥" inc hl - res 5,b + res 5, b .skipCurrencySymbol - res 7,b ; unset 7 to indicate that a nonzero digit has been reached + res 7, b ; unset 7 to indicate that a nonzero digit has been reached .outputDigit - add a,"0" - ld [hli],a + add a, "0" + ld [hli], a jp PrintLetterDelay .zeroDigit - bit 7,b ; either printing leading zeroes or already reached a nonzero digit? - jr z,.outputDigit ; if so, print a zero digit - bit 6,b ; left or right alignment? + bit 7, b ; either printing leading zeroes or already reached a nonzero digit? + jr z, .outputDigit ; if so, print a zero digit + bit 6, b ; left or right alignment? ret nz inc hl ; if right-aligned, "print" a space by advancing the pointer ret @@ -775,12 +775,12 @@ PrintBCDDigit:: ; 13e4 (0:13e4) ; assumes the corresponding mon header is already loaded ; hl contains offset to sprite pointer ($b for front or $d for back) UncompressMonSprite:: ; 1407 (0:1407) - ld bc,wMonHeader - add hl,bc - ld a,[hli] - ld [W_SPRITEINPUTPTR],a ; fetch sprite input pointer - ld a,[hl] - ld [W_SPRITEINPUTPTR+1],a + ld bc, wMonHeader + add hl, bc + ld a, [hli] + ld [W_SPRITEINPUTPTR], a ; fetch sprite input pointer + ld a, [hl] + ld [W_SPRITEINPUTPTR+1], a ; define (by index number) the bank that a pokemon's image is in ; index = Mew, bank 1 ; index = Kabutops fossil, bank $B @@ -788,33 +788,33 @@ UncompressMonSprite:: ; 1407 (0:1407) ; $1F ≤ index < $4A, bank $A ; $4A ≤ index < $74, bank $B ; $74 ≤ index < $99, bank $C -; $99 ≤ index, bank $D - ld a,[wcf91] ; XXX name for this ram location - ld b,a +; $99 ≤ index, bank $D + ld a, [wcf91] ; XXX name for this ram location + ld b, a ;cp MEW - ;ld a,BANK(MewPicFront) - ;jr z,.GotBank - ;ld a,b + ;ld a, BANK(MewPicFront) + ;jr z, .GotBank + ;ld a, b cp FOSSIL_KABUTOPS - ld a,BANK(FossilKabutopsPic) - jr z,.GotBank - ld a,b + ld a, BANK(FossilKabutopsPic) + jr z, .GotBank + ld a, b cp TANGELA + 1 - ld a,BANK(TangelaPicFront) - jr c,.GotBank - ld a,b + ld a, BANK(TangelaPicFront) + jr c, .GotBank + ld a, b cp MOLTRES + 1 - ld a,BANK(MoltresPicFront) - jr c,.GotBank - ld a,b + ld a, BANK(MoltresPicFront) + jr c, .GotBank + ld a, b cp BEEDRILL + 2 - ld a,BANK(BeedrillPicFront) - jr c,.GotBank - ld a,b + ld a, BANK(BeedrillPicFront) + jr c, .GotBank + ld a, b cp STARMIE + 1 - ld a,BANK(StarmiePicFront) - jr c,.GotBank - ld a,BANK(VictreebelPicFront) + ld a, BANK(StarmiePicFront) + jr c, .GotBank + ld a, BANK(VictreebelPicFront) .GotBank jp UncompressSpriteData ; 23f8 @@ -832,7 +832,7 @@ LoadMonFrontSprite:: ; 143e (0:143e) ; postprocesses uncompressed sprite chunks to a 2bpp sprite and loads it into video ram ; calculates alignment parameters to place both sprite chunks in the center of the 7*7 tile sprite buffers ; de: destination location -; a,c: sprite dimensions (in tiles of 8x8 each) +; a, c: sprite dimensions (in tiles of 8x8 each) LoadUncompressedSpriteData:: ; 1672 (0:1672) push de and $f @@ -865,7 +865,7 @@ LoadUncompressedSpriteData:: ; 1672 (0:1672) add a add a ; 8*(7*((8-w)/2) + 7-h) ; combined overall offset (in bytes) ld [H_SPRITEOFFSET], a - ld a,$0 + ld a, $0 call SwitchSRAMBankAndLatchClockData ld hl, S_SPRITEBUFFER0 call ZeroSpriteBuffer ; zero buffer 0 @@ -924,7 +924,7 @@ ZeroSpriteBuffer:: ; 14bc (0:14bc) ; in the resulting sprite, the rows of the two source sprites are interlaced ; de: output address InterlaceMergeSpriteBuffers:: ; 14c7 (0:14c7) - ld a,$0 + ld a, $0 call SwitchSRAMBankAndLatchClockData push de ld hl, S_SPRITEBUFFER2 + (SPRITEBUFFERSIZE - 1) ; destination: end of buffer 2 @@ -972,75 +972,75 @@ InterlaceMergeSpriteBuffers:: ; 14c7 (0:14c7) Func_1510:: ; 1510 (0:1510) push hl - ld hl,wd430 - set 7,[hl] - ld hl,wSpriteStateData1 + $f2 ; pikachu data? - ld [hl],$ff + ld hl, wd430 + set 7, [hl] + ld hl, wSpriteStateData1 + $f2 ; pikachu data? + ld [hl], $ff pop hl ret Func_151d:: ; 151d (0:151d) push hl - ld hl,wd430 - res 7,[hl] + ld hl, wd430 + res 7, [hl] pop hl ret Func_1525:: ; 1525 (0:1525) push hl - ld hl,wd430 - res 3,[hl] + ld hl, wd430 + res 3, [hl] pop hl ret Func_152d:: ; 152d (0:152d) push hl - ld hl,wd430 - set 3,[hl] - ld hl,wSpriteStateData1 + $f2 ; pikachu data? - ld [hl],$ff + ld hl, wd430 + set 3, [hl] + ld hl, wSpriteStateData1 + $f2 ; pikachu data? + ld [hl], $ff pop hl ret Func_153a:: ; 153a (0:153a) push hl - ld hl,wd430 - set 1,[hl] + ld hl, wd430 + set 1, [hl] pop hl ret Func_1542:: ; 1542 (0:1542) push hl - ld hl,wd430 - res 1,[hl] + ld hl, wd430 + res 1, [hl] pop hl ret Func_154a:: ; 154a (0:154a) push hl - ld hl,wd430 - bit 1,[hl] + ld hl, wd430 + bit 1, [hl] pop hl ret Func_1552:: ; 1552 (0:1552) - ld a,[hl] + ld a, [hl] dec a swap a - ld [$ff93],a + ld [$ff93], a homecall Func_fc6d5 ; 3f:46d5 ret Func_1568:: ; 1568 (0:1568) - ld b,$0 - ld c,a + ld b, $0 + ld c, a .asm_156b inc b - ld a,[hli] + ld a, [hli] cp $ff - jr z,.asm_1578 + jr z, .asm_1578 cp c - jr nz,.asm_156b + jr nz, .asm_156b dec b dec hl scf @@ -1054,30 +1054,30 @@ Func_1568:: ; 1568 (0:1568) Func_157c:: ; 157c (0:157c) push hl push bc - ld a,[H_LOADEDROMBANK] + ld a, [H_LOADEDROMBANK] push af - ld a,[wd44a] + ld a, [wd44a] call BankswitchCommon - ld hl,wd44b - ld c,[hl] + ld hl, wd44b + ld c, [hl] inc hl - ld b,[hl] - ld a,[bc] + ld b, [hl] + ld a, [bc] inc bc - ld [hl],b + ld [hl], b dec hl - ld [hl],c - ld c,a + ld [hl], c + ld c, a pop af call BankswitchCommon - ld a,c + ld a, c pop bc pop hl ret Func_159b:: ; 159b (0:159b) - ld a,[H_LOADEDROMBANK] - ld b,a + ld a, [H_LOADEDROMBANK] + ld b, a push af callbs Func_fd2a1 pop af @@ -1112,11 +1112,11 @@ UpdateSprites:: ; 231c (0:231c) ld a, [H_LOADEDROMBANK] push af switchbank _UpdateSprites - ld a,$ff - ld [wUpdateSpritesEnabled],a + ld a, $ff + ld [wUpdateSpritesEnabled], a call _UpdateSprites ; 1:4bb7 - ld a,$1 - ld [wUpdateSpritesEnabled],a + ld a, $1 + ld [wUpdateSpritesEnabled], a pop af call BankswitchCommon ret @@ -1126,7 +1126,7 @@ INCLUDE "data/mart_inventories.asm" TextScriptEndingChar:: ; 23d1 (0:23d1) db "@" TextScriptEnd:: ; 23d2 (0:23d2) - ld hl,TextScriptEndingChar + ld hl, TextScriptEndingChar ret ExclamationText:: ; 23d6 (0:23d6) @@ -1235,43 +1235,43 @@ UnknownText_2812:: ; 2812 (0:2812) ; this function is used to display sign messages, sprite dialog, etc. ; INPUT: [hSpriteIndexOrTextID] = sprite ID or text ID DisplayTextID:: ; 2817 (0:2817) - ld a,[H_LOADEDROMBANK] + ld a, [H_LOADEDROMBANK] push af callba DisplayTextIDInit ; initialization - ld hl,wTextPredefFlag - bit 0,[hl] - res 0,[hl] - jr nz,.skipSwitchToMapBank - ld a,[wCurMap] + ld hl, wTextPredefFlag + bit 0, [hl] + res 0, [hl] + jr nz, .skipSwitchToMapBank + ld a, [wCurMap] call SwitchToMapRomBank .skipSwitchToMapBank - ld a,30 ; half a second - ld [H_FRAMECOUNTER],a ; used as joypad poll timer - ld hl,wMapTextPtr - ld a,[hli] - ld h,[hl] - ld l,a ; hl = map text pointer - ld d,$00 - ld a,[hSpriteIndexOrTextID] ; text ID - ld [wSpriteIndex],a + ld a, 30 ; half a second + ld [H_FRAMECOUNTER], a ; used as joypad poll timer + ld hl, wMapTextPtr + ld a, [hli] + ld h, [hl] + ld l, a ; hl = map text pointer + ld d, $00 + ld a, [hSpriteIndexOrTextID] ; text ID + ld [wSpriteIndex], a and a - jp z,DisplayStartMenu - cp a,$d4 ; new yellow asm - jp z,DisplayUnknownText_29c6 - cp a,TEXT_SAFARI_GAME_OVER - jp z,DisplaySafariGameOverText - cp a,TEXT_MON_FAINTED - jp z,DisplayPokemonFaintedText - cp a,TEXT_BLACKED_OUT - jp z,DisplayPlayerBlackedOutText - cp a,TEXT_REPEL_WORE_OFF - jp z,DisplayRepelWoreOffText - ld a,[wNumSprites] - ld e,a - ld a,[hSpriteIndexOrTextID] ; sprite ID + jp z, DisplayStartMenu + cp a, $d4 ; new yellow asm + jp z, DisplayUnknownText_29c6 + cp a, TEXT_SAFARI_GAME_OVER + jp z, DisplaySafariGameOverText + cp a, TEXT_MON_FAINTED + jp z, DisplayPokemonFaintedText + cp a, TEXT_BLACKED_OUT + jp z, DisplayPlayerBlackedOutText + cp a, TEXT_REPEL_WORE_OFF + jp z, DisplayRepelWoreOffText + ld a, [wNumSprites] + ld e, a + ld a, [hSpriteIndexOrTextID] ; sprite ID cp e - jr z,.spriteHandling - jr nc,.skipSpriteHandling + jr z, .spriteHandling + jr nc, .skipSpriteHandling .spriteHandling ; get the text ID of the sprite push hl @@ -1280,95 +1280,95 @@ DisplayTextID:: ; 2817 (0:2817) ;callba UpdateSpriteFacingOffsetAndDelayMovement ; update the graphics of the sprite the player is talking to (to face the right direction) ;pop bc ;pop de - ld hl,wMapSpriteData ; NPC text entries - ld a,[hSpriteIndexOrTextID] + ld hl, wMapSpriteData ; NPC text entries + ld a, [hSpriteIndexOrTextID] dec a add a - ld e,a - ld d,$0 - add hl,de + ld e, a + ld d, $0 + add hl, de inc hl - ld a,[hl] ; a = text ID of the sprite + ld a, [hl] ; a = text ID of the sprite pop hl .skipSpriteHandling ; look up the address of the text in the map's text entries dec a - ld e,a - ld d,$0 - add hl,de - add hl,de - ld a,[hli] - ld h,[hl] - ld l,a ; hl = address of the text - ld a,[hl] ; a = first byte of text + ld e, a + ld d, $0 + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a ; hl = address of the text + ld a, [hl] ; a = first byte of text ; check first byte of text for special cases - cp a,$fe ; Pokemart NPC - jp z,DisplayPokemartDialogue - cp a,$ff ; Pokemon Center NPC - jp z,DisplayPokemonCenterDialogue - cp a,$fc ; Item Storage PC - jp z,FuncTX_ItemStoragePC - cp a,$fd ; Bill's PC - jp z,FuncTX_BillsPC - cp a,$f9 ; Pokemon Center PC - jp z,FuncTX_PokemonCenterPC - cp a,$f5 ; Vending Machine - jr nz,.notVendingMachine + cp a, $fe ; Pokemart NPC + jp z, DisplayPokemartDialogue + cp a, $ff ; Pokemon Center NPC + jp z, DisplayPokemonCenterDialogue + cp a, $fc ; Item Storage PC + jp z, FuncTX_ItemStoragePC + cp a, $fd ; Bill's PC + jp z, FuncTX_BillsPC + cp a, $f9 ; Pokemon Center PC + jp z, FuncTX_PokemonCenterPC + cp a, $f5 ; Vending Machine + jr nz, .notVendingMachine callba VendingMachineMenu ; jump banks to vending machine routine jr AfterDisplayingTextID .notVendingMachine - cp a,$f7 ; slot machine - jp z,FuncTX_SlotMachine - cp a,$f6 ; cable connection NPC in Pokemon Center - jr nz,.notSpecialCase + cp a, $f7 ; slot machine + jp z, FuncTX_SlotMachine + cp a, $f6 ; cable connection NPC in Pokemon Center + jr nz, .notSpecialCase callab CableClubNPC jr AfterDisplayingTextID .notSpecialCase call PrintText_NoCreatingTextBox ; display the text - ld a,[wDoNotWaitForButtonPressAfterDisplayingText] + ld a, [wDoNotWaitForButtonPressAfterDisplayingText] and a - jr nz,HoldTextDisplayOpen + jr nz, HoldTextDisplayOpen AfterDisplayingTextID:: ; 28c6 (0:28c6) - ld a,[wEnteringCableClub] + ld a, [wEnteringCableClub] and a - jr nz,HoldTextDisplayOpen + jr nz, HoldTextDisplayOpen call WaitForTextScrollButtonPress ; wait for a button press after displaying all the text ; loop to hold the dialogue box open as long as the player keeps holding down the A button HoldTextDisplayOpen:: ; 28cf (0:28cf) call Joypad - ld a,[hJoyHeld] - bit 0,a ; is the A button being pressed? - jr nz,HoldTextDisplayOpen + ld a, [hJoyHeld] + bit 0, a ; is the A button being pressed? + jr nz, HoldTextDisplayOpen CloseTextDisplay:: ; 28d8 (0:28d8) - ld a,[wCurMap] + ld a, [wCurMap] call SwitchToMapRomBank - ld a,$90 - ld [hWY],a ; move the window off the screen + ld a, $90 + ld [hWY], a ; move the window off the screen call DelayFrame call LoadGBPal xor a - ld [H_AUTOBGTRANSFERENABLED],a ; disable continuous WRAM to VRAM transfer each V-blank + ld [H_AUTOBGTRANSFERENABLED], a ; disable continuous WRAM to VRAM transfer each V-blank ; loop to make sprites face the directions they originally faced before the dialogue - ld hl,wSpriteStateData2 + $19 - ld c,$0f - ld de,$0010 + ld hl, wSpriteStateData2 + $19 + ld c, $0f + ld de, $0010 .restoreSpriteFacingDirectionLoop - ld a,[hl] + ld a, [hl] dec h - ld [hl],a + ld [hl], a inc h - add hl,de + add hl, de dec c - jr nz,.restoreSpriteFacingDirectionLoop + jr nz, .restoreSpriteFacingDirectionLoop call InitMapSprites ; reload sprite tile pattern data (since it was partially overwritten by text tile patterns) - ld hl,wFontLoaded - res 0,[hl] - ld a,[wd732] - bit 3,a ; used fly warp - call z,LoadPlayerSpriteGraphics + ld hl, wFontLoaded + res 0, [hl] + ld a, [wd732] + bit 3, a ; used fly warp + call z, LoadPlayerSpriteGraphics call LoadCurrentMapView pop af call BankswitchCommon @@ -1376,13 +1376,13 @@ CloseTextDisplay:: ; 28d8 (0:28d8) DisplayPokemartDialogue:: ; 2915 (0:2915) push hl - ld hl,PokemartGreetingText + ld hl, PokemartGreetingText call PrintText pop hl inc hl call LoadItemList - ld a,PRICEDITEMLISTMENU - ld [wListMenuID],a ; selects between subtypes of menus + ld a, PRICEDITEMLISTMENU + ld [wListMenuID], a ; selects between subtypes of menus homecall DisplayPokemartDialogue_ jp AfterDisplayingTextID @@ -1391,27 +1391,27 @@ PokemartGreetingText:: ; 2938 (0:2938) db "@" LoadItemList:: ; 293d (0:293d) - ld a,1 - ld [wUpdateSpritesEnabled],a - ld a,h - ld [wItemListPointer],a - ld a,l - ld [wItemListPointer + 1],a - ld de,wItemList + ld a, 1 + ld [wUpdateSpritesEnabled], a + ld a, h + ld [wItemListPointer], a + ld a, l + ld [wItemListPointer + 1], a + ld de, wItemList .loop - ld a,[hli] - ld [de],a + ld a, [hli] + ld [de], a inc de - cp a,$ff - jr nz,.loop + cp a, $ff + jr nz, .loop ret DisplayPokemonCenterDialogue:: ; 2955 (0:2955) ; zeroing these doesn't appear to serve any purpose xor a - ld [$ff8b],a - ld [$ff8c],a - ld [$ff8d],a + ld [$ff8b], a + ld [$ff8c], a + ld [$ff8d], a inc hl homecall DisplayPokemonCenterDialogue_ @@ -1422,7 +1422,7 @@ DisplaySafariGameOverText:: ; 296f (0:296f) jp AfterDisplayingTextID DisplayPokemonFaintedText:: ; 297a (0:297a) - ld hl,PokemonFaintedText + ld hl, PokemonFaintedText call PrintText jp AfterDisplayingTextID @@ -1431,21 +1431,21 @@ PokemonFaintedText:: ; 2983 (0:2983) db "@" DisplayPlayerBlackedOutText:: ; 2988 (0:2988) - ld hl,PlayerBlackedOutText + ld hl, PlayerBlackedOutText call PrintText - ld a,[wd732] - res 5,a ; reset forced to use bike bit - ld [wd732],a - ld a,[wd790] - bit 7,a - jr z,.didnotblackoutinsafari + ld a, [wd732] + res 5, a ; reset forced to use bike bit + ld [wd732], a + ld a, [wd790] + bit 7, a + jr z, .didnotblackoutinsafari xor a - ld [wNumSafariBalls],a - ld [wSafariSteps],a - ld [wSafariSteps+1],a - ld [wd790],a - ld [wcf0d],a - ld [wSafariZoneEntranceCurScript],a + ld [wNumSafariBalls], a + ld [wSafariSteps], a + ld [wSafariSteps+1], a + ld [wd790], a + ld [wcf0d], a + ld [wSafariZoneEntranceCurScript], a .didnotblackoutinsafari jp HoldTextDisplayOpen @@ -1454,7 +1454,7 @@ PlayerBlackedOutText:: ; 29b3 (0:29b3) db "@" DisplayRepelWoreOffText:: ; 29b8 (0:29b8) - ld hl,RepelWoreOffText + ld hl, RepelWoreOffText call PrintText jp AfterDisplayingTextID @@ -1475,22 +1475,22 @@ INCLUDE "engine/menu/start_menu.asm" ; OUTPUT: ; [wNumSetBits] = number of set bits CountSetBits:: ; 2a81 (0:2a81) - ld c,0 + ld c, 0 .loop - ld a,[hli] - ld e,a - ld d,8 + ld a, [hli] + ld e, a + ld d, 8 .innerLoop ; count how many bits are set in the current byte srl e - ld a,0 + ld a, 0 adc c - ld c,a + ld c, a dec d - jr nz,.innerLoop + jr nz, .innerLoop dec b - jr nz,.loop - ld a,c - ld [wNumSetBits],a + jr nz, .loop + ld a, c + ld [wNumSetBits], a ret ; subtracts the amount the player paid from their money @@ -1500,12 +1500,12 @@ SubtractAmountPaidFromMoney:: ; 2a98 (0:2a98) ; adds the amount the player sold to their money AddAmountSoldToMoney:: ; 2aa0 (0:2aa0) - ld de,wPlayerMoney + 2 - ld hl,$ffa1 ; total price of items - ld c,3 ; length of money in bytes + ld de, wPlayerMoney + 2 + ld hl, $ffa1 ; total price of items + ld c, 3 ; length of money in bytes predef AddBCDPredef ; add total price to money - ld a,MONEY_BOX - ld [wTextBoxID],a + ld a, MONEY_BOX + ld [wTextBoxID], a call DisplayTextBoxID ; redraw money text box ld a, $b2 ; SFX_PURCHASE call PlaySoundWaitForCurrent ; play sound @@ -1537,80 +1537,80 @@ AddItemToInventory:: ; 2acd (0:2acd) ; [wListPointer] = address of the list (2 bytes) DisplayListMenuID:: ; 2ae0 (0:2ae0) xor a - ld [H_AUTOBGTRANSFERENABLED],a ; disable auto-transfer - ld a,1 - ld [hJoy7],a ; joypad state update flag - ld a,[wBattleType] + ld [H_AUTOBGTRANSFERENABLED], a ; disable auto-transfer + ld a, 1 + ld [hJoy7], a ; joypad state update flag + ld a, [wBattleType] and a ; is it the Old Man battle? - jr nz,.specialBattleType - ld a,$01 ; hardcoded bank + jr nz, .specialBattleType + ld a, $01 ; hardcoded bank jr .bankswitch .specialBattleType ; Old Man battle ld a, $f ; BANK(DisplayBattleMenu) .bankswitch call BankswitchHome - ld hl,wd730 - set 6,[hl] ; turn off letter printing delay + ld hl, wd730 + set 6, [hl] ; turn off letter printing delay xor a - ld [wMenuItemToSwap],a ; 0 means no item is currently being swapped - ld [wListCount],a - ld a,[wListPointer] - ld l,a - ld a,[wListPointer + 1] - ld h,a ; hl = address of the list - ld a,[hl] ; the first byte is the number of entries in the list - ld [wListCount],a - ld a,LIST_MENU_BOX - ld [wTextBoxID],a + ld [wMenuItemToSwap], a ; 0 means no item is currently being swapped + ld [wListCount], a + ld a, [wListPointer] + ld l, a + ld a, [wListPointer + 1] + ld h, a ; hl = address of the list + ld a, [hl] ; the first byte is the number of entries in the list + ld [wListCount], a + ld a, LIST_MENU_BOX + ld [wTextBoxID], a call DisplayTextBoxID ; draw the menu text box call UpdateSprites ; disable sprites behind the text box ; the code up to .skipMovingSprites appears to be useless coord hl, 4, 2 ; coordinates of upper left corner of menu text box lb de, 9, 14 ; height and width of menu text box - ld a,[wListMenuID] + ld a, [wListMenuID] and a ; is it a PC pokemon list? - jr nz,.skipMovingSprites + jr nz, .skipMovingSprites call UpdateSprites .skipMovingSprites - ld a,1 ; max menu item ID is 1 if the list has less than 2 entries - ld [wMenuWatchMovingOutOfBounds],a - ld a,[wListCount] - cp a,2 ; does the list have less than 2 entries? - jr c,.setMenuVariables - ld a,2 ; max menu item ID is 2 if the list has at least 2 entries + ld a, 1 ; max menu item ID is 1 if the list has less than 2 entries + ld [wMenuWatchMovingOutOfBounds], a + ld a, [wListCount] + cp a, 2 ; does the list have less than 2 entries? + jr c, .setMenuVariables + ld a, 2 ; max menu item ID is 2 if the list has at least 2 entries .setMenuVariables - ld [wMaxMenuItem],a - ld a,4 - ld [wTopMenuItemY],a - ld a,5 - ld [wTopMenuItemX],a - ld a,A_BUTTON | B_BUTTON | SELECT - ld [wMenuWatchedKeys],a - ld c,10 + ld [wMaxMenuItem], a + ld a, 4 + ld [wTopMenuItemY], a + ld a, 5 + ld [wTopMenuItemX], a + ld a, A_BUTTON | B_BUTTON | SELECT + ld [wMenuWatchedKeys], a + ld c, 10 call DelayFrames DisplayListMenuIDLoop:: ; 2b4d (0:2b4d) xor a - ld [H_AUTOBGTRANSFERENABLED],a ; disable transfer + ld [H_AUTOBGTRANSFERENABLED], a ; disable transfer call PrintListMenuEntries - ld a,1 - ld [H_AUTOBGTRANSFERENABLED],a ; enable transfer + ld a, 1 + ld [H_AUTOBGTRANSFERENABLED], a ; enable transfer call Delay3 - ld a,[wBattleType] + ld a, [wBattleType] and a ; is it the Old Man battle? - jr z,.notOldManBattle + jr z, .notOldManBattle .oldManBattle - ld a,"▶" + ld a, "▶" Coorda 5, 4 ; place menu cursor in front of first menu entry - ld c,20 + ld c, 20 call DelayFrames xor a - ld [wCurrentMenuItem],a + ld [wCurrentMenuItem], a coord hl, 5, 4 - ld a,l - ld [wMenuCursorLocation],a - ld a,h - ld [wMenuCursorLocation + 1],a + ld a, l + ld [wMenuCursorLocation], a + ld a, h + ld [wMenuCursorLocation + 1], a jr .buttonAPressed .notOldManBattle call LoadGBPal @@ -1618,111 +1618,111 @@ DisplayListMenuIDLoop:: ; 2b4d (0:2b4d) push af call PlaceMenuCursor pop af - bit 0,a ; was the A button pressed? - jp z,.checkOtherKeys + bit 0, a ; was the A button pressed? + jp z, .checkOtherKeys .buttonAPressed - ld a,[wCurrentMenuItem] + ld a, [wCurrentMenuItem] call PlaceUnfilledArrowMenuCursor ; pointless because both values are overwritten before they are read - ld a,$01 - ld [wMenuExitMethod],a - ld [wChosenMenuItem],a + ld a, $01 + ld [wMenuExitMethod], a + ld [wChosenMenuItem], a xor a - ld [wMenuWatchMovingOutOfBounds],a - ld a,[wCurrentMenuItem] - ld c,a - ld a,[wListScrollOffset] + ld [wMenuWatchMovingOutOfBounds], a + ld a, [wCurrentMenuItem] + ld c, a + ld a, [wListScrollOffset] add c - ld c,a - ld a,[wListCount] + ld c, a + ld a, [wListCount] and a ; is the list empty? - jp z,ExitListMenu ; if so, exit the menu + jp z, ExitListMenu ; if so, exit the menu dec a cp c ; did the player select Cancel? - jp c,ExitListMenu ; if so, exit the menu - ld a,c - ld [wWhichPokemon],a - ld a,[wListMenuID] - cp a,ITEMLISTMENU - jr nz,.skipMultiplying + jp c, ExitListMenu ; if so, exit the menu + ld a, c + ld [wWhichPokemon], a + ld a, [wListMenuID] + cp a, ITEMLISTMENU + jr nz, .skipMultiplying ; if it's an item menu sla c ; item entries are 2 bytes long, so multiply by 2 .skipMultiplying - ld a,[wListPointer] - ld l,a - ld a,[wListPointer + 1] - ld h,a + ld a, [wListPointer] + ld l, a + ld a, [wListPointer + 1] + ld h, a inc hl ; hl = beginning of list entries - ld b,0 - add hl,bc - ld a,[hl] - ld [wcf91],a - ld a,[wListMenuID] + ld b, 0 + add hl, bc + ld a, [hl] + ld [wcf91], a + ld a, [wListMenuID] and a ; is it a PC pokemon list? - jr z,.pokemonList + jr z, .pokemonList push hl call GetItemPrice pop hl - ld a,[wListMenuID] - cp a,ITEMLISTMENU - jr nz,.skipGettingQuantity + ld a, [wListMenuID] + cp a, ITEMLISTMENU + jr nz, .skipGettingQuantity ; if it's an item menu inc hl - ld a,[hl] ; a = item quantity - ld [wMaxItemQuantity],a + ld a, [hl] ; a = item quantity + ld [wMaxItemQuantity], a .skipGettingQuantity - ld a,[wcf91] - ld [wd0b5],a - ld a,BANK(ItemNames) - ld [wPredefBank],a + ld a, [wcf91] + ld [wd0b5], a + ld a, BANK(ItemNames) + ld [wPredefBank], a call GetName jr .storeChosenEntry .pokemonList - ld hl,wPartyCount - ld a,[wListPointer] + ld hl, wPartyCount + ld a, [wListPointer] cp l ; is it a list of party pokemon or box pokemon? - ld hl,wPartyMonNicks - jr z,.getPokemonName + ld hl, wPartyMonNicks + jr z, .getPokemonName ld hl, wBoxMonNicks ; box pokemon names .getPokemonName - ld a,[wWhichPokemon] + ld a, [wWhichPokemon] call GetPartyMonName .storeChosenEntry ; store the menu entry that the player chose and return - ld de,wcd6d + ld de, wcd6d call CopyStringToCF4B ; copy name to wcf4b - ld a,CHOSE_MENU_ITEM - ld [wMenuExitMethod],a - ld a,[wCurrentMenuItem] - ld [wChosenMenuItem],a + ld a, CHOSE_MENU_ITEM + ld [wMenuExitMethod], a + ld a, [wCurrentMenuItem] + ld [wChosenMenuItem], a xor a - ld [hJoy7],a ; joypad state update flag - ld hl,wd730 - res 6,[hl] ; turn on letter printing delay + ld [hJoy7], a ; joypad state update flag + ld hl, wd730 + res 6, [hl] ; turn on letter printing delay jp BankswitchBack .checkOtherKeys ; check B, SELECT, Up, and Down keys - bit 1,a ; was the B button pressed? - jp nz,ExitListMenu ; if so, exit the menu - bit 2,a ; was the select button pressed? - jp nz,HandleItemListSwapping ; if so, allow the player to swap menu entries - ld b,a - bit 7,b ; was Down pressed? - ld hl,wListScrollOffset - jr z,.upPressed + bit 1, a ; was the B button pressed? + jp nz, ExitListMenu ; if so, exit the menu + bit 2, a ; was the select button pressed? + jp nz, HandleItemListSwapping ; if so, allow the player to swap menu entries + ld b, a + bit 7, b ; was Down pressed? + ld hl, wListScrollOffset + jr z, .upPressed .downPressed - ld a,[hl] - add a,3 - ld b,a - ld a,[wListCount] + ld a, [hl] + add a, 3 + ld b, a + ld a, [wListCount] cp b ; will going down scroll past the Cancel button? - jp c,DisplayListMenuIDLoop + jp c, DisplayListMenuIDLoop inc [hl] ; if not, go down jp DisplayListMenuIDLoop .upPressed - ld a,[hl] + ld a, [hl] and a - jp z,DisplayListMenuIDLoop + jp z, DisplayListMenuIDLoop dec [hl] jp DisplayListMenuIDLoop @@ -1730,117 +1730,117 @@ DisplayChooseQuantityMenu:: ; 2c51 (0:2c51) ; text box dimensions/coordinates for just quantity coord hl, 15, 9 lb bc, 1, 3 ; height and width - ld a,[wListMenuID] - cp a,PRICEDITEMLISTMENU - jr nz,.drawTextBox + ld a, [wListMenuID] + cp a, PRICEDITEMLISTMENU + jr nz, .drawTextBox ; text box dimensions/coordinates for quantity and price coord hl, 7, 9 lb bc, 1, 11 ; height and width .drawTextBox call TextBoxBorder coord hl, 16, 10 - ld a,[wListMenuID] - cp a,PRICEDITEMLISTMENU - jr nz,.printInitialQuantity + ld a, [wListMenuID] + cp a, PRICEDITEMLISTMENU + jr nz, .printInitialQuantity coord hl, 8, 10 .printInitialQuantity - ld de,InitialQuantityText + ld de, InitialQuantityText call PlaceString xor a - ld [wItemQuantity],a ; initialize current quantity to 0 + ld [wItemQuantity], a ; initialize current quantity to 0 jp .incrementQuantity .waitForKeyPressLoop call JoypadLowSensitivity - ld a,[hJoyPressed] ; newly pressed buttons - bit 0,a ; was the A button pressed? - jp nz,.buttonAPressed - bit 1,a ; was the B button pressed? - jp nz,.buttonBPressed - bit 6,a ; was Up pressed? - jr nz,.incrementQuantity - bit 7,a ; was Down pressed? - jr nz,.decrementQuantity + ld a, [hJoyPressed] ; newly pressed buttons + bit 0, a ; was the A button pressed? + jp nz, .buttonAPressed + bit 1, a ; was the B button pressed? + jp nz, .buttonBPressed + bit 6, a ; was Up pressed? + jr nz, .incrementQuantity + bit 7, a ; was Down pressed? + jr nz, .decrementQuantity jr .waitForKeyPressLoop .incrementQuantity - ld a,[wMaxItemQuantity] + ld a, [wMaxItemQuantity] inc a - ld b,a - ld hl,wItemQuantity ; current quantity + ld b, a + ld hl, wItemQuantity ; current quantity inc [hl] - ld a,[hl] + ld a, [hl] cp b - jr nz,.handleNewQuantity + jr nz, .handleNewQuantity ; wrap to 1 if the player goes above the max quantity - ld a,1 - ld [hl],a + ld a, 1 + ld [hl], a jr .handleNewQuantity .decrementQuantity - ld hl,wItemQuantity ; current quantity + ld hl, wItemQuantity ; current quantity dec [hl] - jr nz,.handleNewQuantity + jr nz, .handleNewQuantity ; wrap to the max quantity if the player goes below 1 - ld a,[wMaxItemQuantity] - ld [hl],a + ld a, [wMaxItemQuantity] + ld [hl], a .handleNewQuantity coord hl, 17, 10 - ld a,[wListMenuID] - cp a,PRICEDITEMLISTMENU - jr nz,.printQuantity + ld a, [wListMenuID] + cp a, PRICEDITEMLISTMENU + jr nz, .printQuantity .printPrice - ld c,$03 - ld a,[wItemQuantity] - ld b,a - ld hl,hMoney ; total price + ld c, $03 + ld a, [wItemQuantity] + ld b, a + ld hl, hMoney ; total price ; initialize total price to 0 xor a - ld [hli],a - ld [hli],a - ld [hl],a + ld [hli], a + ld [hli], a + ld [hl], a .addLoop ; loop to multiply the individual price by the quantity to get the total price - ld de,hMoney + 2 - ld hl,hItemPrice + 2 + ld de, hMoney + 2 + ld hl, hItemPrice + 2 push bc predef AddBCDPredef ; add the individual price to the current sum pop bc dec b - jr nz,.addLoop - ld a,[hHalveItemPrices] + jr nz, .addLoop + ld a, [hHalveItemPrices] and a ; should the price be halved (for selling items)? - jr z,.skipHalvingPrice + jr z, .skipHalvingPrice xor a - ld [hDivideBCDDivisor],a - ld [hDivideBCDDivisor + 1],a - ld a,$02 - ld [hDivideBCDDivisor + 2],a + ld [hDivideBCDDivisor], a + ld [hDivideBCDDivisor + 1], a + ld a, $02 + ld [hDivideBCDDivisor + 2], a predef DivideBCDPredef3 ; halves the price ; store the halved price - ld a,[hDivideBCDQuotient] - ld [hMoney],a - ld a,[hDivideBCDQuotient + 1] - ld [hMoney + 1],a - ld a,[hDivideBCDQuotient + 2] - ld [hMoney + 2],a + ld a, [hDivideBCDQuotient] + ld [hMoney], a + ld a, [hDivideBCDQuotient + 1] + ld [hMoney + 1], a + ld a, [hDivideBCDQuotient + 2] + ld [hMoney + 2], a .skipHalvingPrice coord hl, 12, 10 - ld de,SpacesBetweenQuantityAndPriceText + ld de, SpacesBetweenQuantityAndPriceText call PlaceString - ld de,hMoney ; total price - ld c,$a3 + ld de, hMoney ; total price + ld c, $a3 call PrintBCDNumber coord hl, 9, 10 .printQuantity - ld de,wItemQuantity ; current quantity + ld de, wItemQuantity ; current quantity lb bc, LEADING_ZEROES | 1, 2 ; 1 byte, 2 digits call PrintNumber jp .waitForKeyPressLoop .buttonAPressed ; the player chose to make the transaction xor a - ld [wMenuItemToSwap],a ; 0 means no item is currently being swapped + ld [wMenuItemToSwap], a ; 0 means no item is currently being swapped ret .buttonBPressed ; the player chose to cancel the transaction xor a - ld [wMenuItemToSwap],a ; 0 means no item is currently being swapped - ld a,$ff + ld [wMenuItemToSwap], a ; 0 means no item is currently being swapped + ld a, $ff ret InitialQuantityText:: ; 2d28 (0:2d28) @@ -1850,18 +1850,18 @@ SpacesBetweenQuantityAndPriceText:: ; 2d2c (0:2d2c) db " @" ExitListMenu:: ; 2d33 (0:2d33) - ld a,[wCurrentMenuItem] - ld [wChosenMenuItem],a - ld a,CANCELLED_MENU - ld [wMenuExitMethod],a - ld [wMenuWatchMovingOutOfBounds],a + ld a, [wCurrentMenuItem] + ld [wChosenMenuItem], a + ld a, CANCELLED_MENU + ld [wMenuExitMethod], a + ld [wMenuWatchMovingOutOfBounds], a xor a - ld [hJoy7],a - ld hl,wd730 - res 6,[hl] + ld [hJoy7], a + ld hl, wd730 + res 6, [hl] call BankswitchBack xor a - ld [wMenuItemToSwap],a ; 0 means no item is currently being swapped + ld [wMenuItemToSwap], a ; 0 means no item is currently being swapped scf ret @@ -1869,64 +1869,64 @@ PrintListMenuEntries:: ; 2d52 (0:2d52) coord hl, 5, 3 lb bc, 9, 14 call ClearScreenArea - ld a,[wListPointer] - ld e,a - ld a,[wListPointer + 1] - ld d,a + ld a, [wListPointer] + ld e, a + ld a, [wListPointer + 1] + ld d, a inc de ; de = beginning of list entries - ld a,[wListScrollOffset] - ld c,a - ld a,[wListMenuID] - cp a,ITEMLISTMENU - ld a,c - jr nz,.skipMultiplying + ld a, [wListScrollOffset] + ld c, a + ld a, [wListMenuID] + cp a, ITEMLISTMENU + ld a, c + jr nz, .skipMultiplying ; if it's an item menu ; item entries are 2 bytes long, so multiply by 2 add a sla c .skipMultiplying add e - ld e,a - jr nc,.noCarry + ld e, a + jr nc, .noCarry inc d .noCarry coord hl, 6, 4 ; coordinates of first list entry name - ld b,4 ; print 4 names + ld b, 4 ; print 4 names .loop - ld a,b - ld [wWhichPokemon],a - ld a,[de] - ld [wd11e],a - cp a,$ff - jp z,.printCancelMenuItem + ld a, b + ld [wWhichPokemon], a + ld a, [de] + ld [wd11e], a + cp a, $ff + jp z, .printCancelMenuItem push bc push de push hl push hl push de - ld a,[wListMenuID] + ld a, [wListMenuID] and a - jr z,.pokemonPCMenu - cp a,$01 - jr z,.movesMenu + jr z, .pokemonPCMenu + cp a, $01 + jr z, .movesMenu .itemMenu call GetItemName jr .placeNameString .pokemonPCMenu push hl - ld hl,wPartyCount - ld a,[wListPointer] + ld hl, wPartyCount + ld a, [wListPointer] cp l ; is it a list of party pokemon or box pokemon? - ld hl,wPartyMonNicks - jr z,.getPokemonName + ld hl, wPartyMonNicks + jr z, .getPokemonName ld hl, wBoxMonNicks ; box pokemon names .getPokemonName - ld a,[wWhichPokemon] - ld b,a - ld a,4 + ld a, [wWhichPokemon] + ld b, a + ld a, 4 sub b - ld b,a - ld a,[wListScrollOffset] + ld b, a + ld a, [wListScrollOffset] add b call GetPartyMonName pop hl @@ -1937,90 +1937,90 @@ PrintListMenuEntries:: ; 2d52 (0:2d52) call PlaceString pop de pop hl - ld a,[wPrintItemPrices] + ld a, [wPrintItemPrices] and a ; should prices be printed? - jr z,.skipPrintingItemPrice + jr z, .skipPrintingItemPrice .printItemPrice push hl - ld a,[de] - ld de,ItemPrices - ld [wcf91],a + ld a, [de] + ld de, ItemPrices + ld [wcf91], a call GetItemPrice ; get price pop hl ld bc, SCREEN_WIDTH + 5 ; 1 row down and 5 columns right - add hl,bc - ld c,$a3 ; no leading zeroes, right-aligned, print currency symbol, 3 bytes + add hl, bc + ld c, $a3 ; no leading zeroes, right-aligned, print currency symbol, 3 bytes call PrintBCDNumber .skipPrintingItemPrice - ld a,[wListMenuID] + ld a, [wListMenuID] and a - jr nz,.skipPrintingPokemonLevel + jr nz, .skipPrintingPokemonLevel .printPokemonLevel - ld a,[wd11e] + ld a, [wd11e] push af push hl - ld hl,wPartyCount - ld a,[wListPointer] + ld hl, wPartyCount + ld a, [wListPointer] cp l ; is it a list of party pokemon or box pokemon? - ld a,PLAYER_PARTY_DATA - jr z,.next - ld a,BOX_DATA + ld a, PLAYER_PARTY_DATA + jr z, .next + ld a, BOX_DATA .next - ld [wMonDataLocation],a - ld hl,wWhichPokemon - ld a,[hl] - ld b,a - ld a,$04 + ld [wMonDataLocation], a + ld hl, wWhichPokemon + ld a, [hl] + ld b, a + ld a, $04 sub b - ld b,a - ld a,[wListScrollOffset] + ld b, a + ld a, [wListScrollOffset] add b - ld [hl],a + ld [hl], a call LoadMonData - ld a,[wMonDataLocation] + ld a, [wMonDataLocation] and a ; is it a list of party pokemon or box pokemon? - jr z,.skipCopyingLevel + jr z, .skipCopyingLevel .copyLevel - ld a,[wLoadedMonBoxLevel] - ld [wLoadedMonLevel],a + ld a, [wLoadedMonBoxLevel] + ld [wLoadedMonLevel], a .skipCopyingLevel pop hl - ld bc,$001c - add hl,bc + ld bc, $001c + add hl, bc call PrintLevel pop af - ld [wd11e],a + ld [wd11e], a .skipPrintingPokemonLevel pop hl pop de inc de - ld a,[wListMenuID] - cp a,ITEMLISTMENU - jr nz,.nextListEntry + ld a, [wListMenuID] + cp a, ITEMLISTMENU + jr nz, .nextListEntry .printItemQuantity - ld a,[wd11e] - ld [wcf91],a + ld a, [wd11e] + ld [wcf91], a call IsKeyItem ; check if item is unsellable - ld a,[wIsKeyItem] + ld a, [wIsKeyItem] and a ; is the item unsellable? - jr nz,.skipPrintingItemQuantity ; if so, don't print the quantity + jr nz, .skipPrintingItemQuantity ; if so, don't print the quantity push hl ld bc, SCREEN_WIDTH + 8 ; 1 row down and 8 columns right - add hl,bc - ld a,"×" - ld [hli],a - ld a,[wd11e] + add hl, bc + ld a, "×" + ld [hli], a + ld a, [wd11e] push af - ld a,[de] - ld [wMaxItemQuantity],a + ld a, [de] + ld [wMaxItemQuantity], a push de - ld de,wd11e - ld [de],a + ld de, wd11e + ld [de], a lb bc, 1, 2 call PrintNumber pop de pop af - ld [wd11e],a + ld [wd11e], a pop hl .skipPrintingItemQuantity inc de @@ -2028,29 +2028,29 @@ PrintListMenuEntries:: ; 2d52 (0:2d52) inc c push bc inc c - ld a,[wMenuItemToSwap] ; ID of item chosen for swapping (counts from 1) + ld a, [wMenuItemToSwap] ; ID of item chosen for swapping (counts from 1) and a ; is an item being swapped? - jr z,.nextListEntry + jr z, .nextListEntry add a cp c ; is it this item? - jr nz,.nextListEntry + jr nz, .nextListEntry dec hl - ld a,$ec ; unfilled right arrow menu cursor to indicate an item being swapped - ld [hli],a + ld a, $ec ; unfilled right arrow menu cursor to indicate an item being swapped + ld [hli], a .nextListEntry - ld bc,2 * SCREEN_WIDTH ; 2 rows - add hl,bc + ld bc, 2 * SCREEN_WIDTH ; 2 rows + add hl, bc pop bc inc c dec b - jp nz,.loop - ld bc,-8 - add hl,bc - ld a,$ee ; down arrow - ld [hl],a + jp nz, .loop + ld bc, -8 + add hl, bc + ld a, $ee ; down arrow + ld [hl], a ret .printCancelMenuItem - ld de,ListMenuCancelText + ld de, ListMenuCancelText jp PlaceString ListMenuCancelText:: ; 2e8c (0:2e8c) @@ -2058,27 +2058,27 @@ ListMenuCancelText:: ; 2e8c (0:2e8c) GetMonName:: ; 2e93 (0:2e93) push hl - ld a,[H_LOADEDROMBANK] + ld a, [H_LOADEDROMBANK] push af - ld a,BANK(MonsterNames) ; 3a - ld [H_LOADEDROMBANK],a - ld [MBC1RomBank],a - ld a,[wd11e] + ld a, BANK(MonsterNames) ; 3a + ld [H_LOADEDROMBANK], a + ld [MBC1RomBank], a + ld a, [wd11e] dec a - ld hl,MonsterNames ; 4000 - ld c,10 - ld b,0 + ld hl, MonsterNames ; 4000 + ld c, 10 + ld b, 0 call AddNTimes - ld de,wcd6d + ld de, wcd6d push de - ld bc,10 + ld bc, 10 call CopyData - ld hl,wcd6d + 10 + ld hl, wcd6d + 10 ld [hl], "@" pop de pop af - ld [H_LOADEDROMBANK],a - ld [MBC1RomBank],a + ld [H_LOADEDROMBANK], a + ld [MBC1RomBank], a pop hl ret @@ -2087,22 +2087,22 @@ GetItemName:: ; 2ec4 (0:2ec4) ; starting at wcd6d push hl push bc - ld a,[wd11e] + ld a, [wd11e] cp HM_01 ; is this a TM/HM? - jr nc,.Machine + jr nc, .Machine - ld [wd0b5],a - ld a,ITEM_NAME - ld [wNameListType],a - ld a,BANK(ItemNames) - ld [wPredefBank],a + ld [wd0b5], a + ld a, ITEM_NAME + ld [wNameListType], a + ld a, BANK(ItemNames) + ld [wPredefBank], a call GetName jr .Finish .Machine call GetMachineName .Finish - ld de,wcd6d ; pointer to where item name is stored in RAM + ld de, wcd6d ; pointer to where item name is stored in RAM pop bc pop hl ret @@ -2112,48 +2112,48 @@ GetMachineName:: ; 2ee8 (0:2ee8) push hl push de push bc - ld a,[wd11e] + ld a, [wd11e] push af cp TM_01 ; is this a TM? [not HM] - jr nc,.WriteTM + jr nc, .WriteTM ; if HM, then write "HM" and add 5 to the item ID, so we can reuse the ; TM printing code add 5 - ld [wd11e],a - ld hl,HiddenPrefix ; points to "HM" - ld bc,2 + ld [wd11e], a + ld hl, HiddenPrefix ; points to "HM" + ld bc, 2 jr .WriteMachinePrefix .WriteTM - ld hl,TechnicalPrefix ; points to "TM" - ld bc,2 + ld hl, TechnicalPrefix ; points to "TM" + ld bc, 2 .WriteMachinePrefix - ld de,wcd6d + ld de, wcd6d call CopyData ; now get the machine number and convert it to text - ld a,[wd11e] + ld a, [wd11e] sub TM_01 - 1 ld b, "0" .FirstDigit sub 10 - jr c,.SecondDigit + jr c, .SecondDigit inc b jr .FirstDigit .SecondDigit add 10 push af - ld a,b - ld [de],a + ld a, b + ld [de], a inc de pop af ld b, "0" add b - ld [de],a + ld [de], a inc de - ld a,"@" - ld [de],a + ld a, "@" + ld [de], a pop af - ld [wd11e],a + ld [wd11e], a pop bc pop de pop hl @@ -2167,9 +2167,9 @@ HiddenPrefix:: ; 2f33 (0:2f33) ; sets carry if item is HM, clears carry if item is not HM ; Input: a = item ID IsItemHM:: ; 2f35 (0:2f35) - cp a,HM_01 - jr c,.notHM - cp a,TM_01 + cp a, HM_01 + jr c, .notHM + cp a, TM_01 ret .notHM and a @@ -2178,32 +2178,32 @@ IsItemHM:: ; 2f35 (0:2f35) ; sets carry if move is an HM, clears carry if move is not an HM ; Input: a = move ID IsMoveHM:: ; 2f3e (0:2f3e) - ld hl,HMMoves - ld de,1 + ld hl, HMMoves + ld de, 1 jp IsInArray HMMoves:: ; 2f47 (0:2f47) - db CUT,FLY,SURF,STRENGTH,FLASH + db CUT, FLY, SURF, STRENGTH, FLASH db $ff ; terminator GetMoveName:: ; 2f4d (0:2f4d) push hl - ld a,MOVE_NAME - ld [wNameListType],a - ld a,[wd11e] - ld [wd0b5],a - ld a,BANK(MoveNames) - ld [wPredefBank],a + ld a, MOVE_NAME + ld [wNameListType], a + ld a, [wd11e] + ld [wd0b5], a + ld a, BANK(MoveNames) + ld [wPredefBank], a call GetName - ld de,wcd6d ; pointer to where move name is stored in RAM + ld de, wcd6d ; pointer to where move name is stored in RAM pop hl ret ; reloads text box tile patterns, current map view, and tileset tile patterns ReloadMapData:: ; 2f66 (0:2f66) - ld a,[H_LOADEDROMBANK] + ld a, [H_LOADEDROMBANK] push af - ld a,[wCurMap] + ld a, [wCurMap] call SwitchToMapRomBank call DisableLCD call LoadTextBoxTilePatterns @@ -2216,9 +2216,9 @@ ReloadMapData:: ; 2f66 (0:2f66) ; reloads tileset tile patterns ReloadTilesetTilePatterns:: ; 2f83 (0:2f83) - ld a,[H_LOADEDROMBANK] + ld a, [H_LOADEDROMBANK] push af - ld a,[wCurMap] + ld a, [wCurMap] call SwitchToMapRomBank call DisableLCD call LoadTilesetTilePatternData @@ -2229,8 +2229,8 @@ ReloadTilesetTilePatterns:: ; 2f83 (0:2f83) ; shows the town map and lets the player choose a destination to fly to ChooseFlyDestination:: ; 2f9a (0:2f9a) - ld hl,wd72e - res 4,[hl] + ld hl, wd72e + res 4, [hl] jpba LoadTownMap_Fly Func_2fa7:: ; 2fa7 (0:2fa7) @@ -2238,33 +2238,33 @@ Func_2fa7:: ; 2fa7 (0:2fa7) ret SerialFunction:: ; 2fb7 (0:2fb7) - ld a,[wUnknownSerialFlag_d49a] - bit 0,a + ld a, [wUnknownSerialFlag_d49a] + bit 0, a ret z - ld a,[wUnknownSerialFlag_d49b] + ld a, [wUnknownSerialFlag_d49b] and a ret nz - ld hl,wOverworldMap+650 + ld hl, wOverworldMap+650 inc [hl] - ld a,[hl] + ld a, [hl] cp $6 ret c xor a - ld [hl],a - ld a,$0c - ld [wUnknownSerialFlag_d49b],a - ld a,$88 - ld [rSB],a - ld a,$1 - ld [rSC],a - ld a,START_TRANSFER_INTERNAL_CLOCK - ld [rSC],a + ld [hl], a + ld a, $0c + ld [wUnknownSerialFlag_d49b], a + ld a, $88 + ld [rSB], a + ld a, $1 + ld [rSC], a + ld a, START_TRANSFER_INTERNAL_CLOCK + ld [rSC], a ret ; causes the text box to close without waiting for a button press after displaying text DisableWaitingAfterTextDisplay:: ; 2fde (0:2fde) - ld a,$01 - ld [wDoNotWaitForButtonPressAfterDisplayingText],a + ld a, $01 + ld [wDoNotWaitForButtonPressAfterDisplayingText], a ret ; uses an item @@ -2288,16 +2288,16 @@ UseItem:: ; 2fe4 (0:2fe4) ; OUTPUT: ; clears carry flag if the item is tossed, sets carry flag if not TossItem:: ; 2fec (0:2fec) - ld a,[H_LOADEDROMBANK] + ld a, [H_LOADEDROMBANK] push af - ld a,BANK(TossItem_) - ld [H_LOADEDROMBANK],a - ld [MBC1RomBank],a + ld a, BANK(TossItem_) + ld [H_LOADEDROMBANK], a + ld [MBC1RomBank], a call TossItem_ pop de - ld a,d - ld [H_LOADEDROMBANK],a - ld [MBC1RomBank],a + ld a, d + ld [H_LOADEDROMBANK], a + ld [MBC1RomBank], a ret ; checks if an item is a key item @@ -2397,7 +2397,7 @@ UpdateGBCPal_OBP1:: ; 3061 (0:3061) ret Func_3082:: ; 3082 (0:3082) - ld a,[H_LOADEDROMBANK] + ld a, [H_LOADEDROMBANK] push af call FadeOutAudio callbs Music_DoLowHealthAlarm @@ -2927,8 +2927,8 @@ FuncTX_BillsPC:: ; 33f9 (0:33f9) FuncTX_SlotMachine:: ; 3403 (0:3403) ; XXX find a better name for this function ; special_F7 - ld b,BANK(CeladonPrizeMenu) - ld hl,CeladonPrizeMenu + ld b, BANK(CeladonPrizeMenu) + ld hl, CeladonPrizeMenu bankswitchAndContinue:: ; 3408 (0:3408) call Bankswitch jp HoldTextDisplayOpen ; continue to main text-engine function @@ -2952,49 +2952,49 @@ IsItemInBag:: ; 3422 (0:3422) ; else reset zero flag ; related to Pokémon Tower and ghosts predef GetQuantityOfItemInBag - ld a,b + ld a, b and a ret IsSurfingPikachuInParty:: ; 342a (0:342a) ; set bit 6 of wd472 if true ; also calls Func_3467, which is a bankswitch to IsStarterPikachuInOurParty - ld a,[wd472] + ld a, [wd472] and $3f - ld [wd472],a - ld hl,wPartyMon1 - ld c,PARTY_LENGTH - ld b,SURF + ld [wd472], a + ld hl, wPartyMon1 + ld c, PARTY_LENGTH + ld b, SURF .loop - ld a,[hl] + ld a, [hl] cp PIKACHU - jr nz,.notPikachu + jr nz, .notPikachu push hl - ld de,$8 - add hl,de - ld a,[hli] + ld de, $8 + add hl, de + ld a, [hli] cp b ; does pikachu have surf as one of its moves - jr z,.hasSurf - ld a,[hli] + jr z, .hasSurf + ld a, [hli] cp b - jr z,.hasSurf - ld a,[hli] + jr z, .hasSurf + ld a, [hli] cp b - jr z,.hasSurf - ld a,[hli] + jr z, .hasSurf + ld a, [hli] cp b - jr nz,.noSurf + jr nz, .noSurf .hasSurf - ld a,[wd472] - set 6,a - ld [wd472],a + ld a, [wd472] + set 6, a + ld [wd472], a .noSurf pop hl .notPikachu - ld de,wPartyMon2 - wPartyMon1 - add hl,de + ld de, wPartyMon2 - wPartyMon1 + add hl, de dec c - jr nz,.loop + jr nz, .loop call Func_3467 ret @@ -3005,9 +3005,9 @@ Func_3467:: ; 3467 (0:3467) pop bc pop hl ret nc - ld a,[wd472] - set 7,a - ld [wd472],a + ld a, [wd472] + set 7, a + ld [wd472], a ret DisplayPokedex:: ; 347d (0:347d) @@ -3034,23 +3034,23 @@ SetSpriteImageIndexAfterSettingFacingDirection:: ; 349b (0:349b) ret SpriteFunc_34a1:: ; 34a1 (0:34a1) - ld a,[H_SPRITEINDEX] + ld a, [H_SPRITEINDEX] swap a add $e - ld l,a - ld h,$c2 - ld c,[hl] + ld l, a + ld h, $c2 + ld c, [hl] dec c swap c - ld a,[$ff8d] + ld a, [$ff8d] add c - ld c,a - ld a,[$ff8c] + ld c, a + ld a, [$ff8c] swap a add $2 - ld l,a + ld l, a dec h - ld [hl],c + ld [hl], c ret ; tests if the player's coordinates are in a specified array @@ -3060,32 +3060,32 @@ SpriteFunc_34a1:: ; 34a1 (0:34a1) ; [wCoordIndex] = if there is match, the matching array index ; sets carry if the coordinates are in the array, clears carry if not ArePlayerCoordsInArray:: ; 34bc (0:34bc) - ld a,[wYCoord] - ld b,a - ld a,[wXCoord] - ld c,a + ld a, [wYCoord] + ld b, a + ld a, [wXCoord] + ld c, a ; fallthrough CheckCoords:: ; 34c4 (0:34c4) xor a - ld [wCoordIndex],a + ld [wCoordIndex], a .loop - ld a,[hli] - cp a,$ff ; reached terminator? - jr z,.notInArray + ld a, [hli] + cp a, $ff ; reached terminator? + jr z, .notInArray push hl - ld hl,wCoordIndex + ld hl, wCoordIndex inc [hl] pop hl .compareYCoord cp b - jr z,.compareXCoord + jr z, .compareXCoord inc hl jr .loop .compareXCoord - ld a,[hli] + ld a, [hli] cp c - jr nz,.loop + jr nz, .loop .inArray scf ret @@ -3179,31 +3179,31 @@ SetSpriteMovementBytesToFE:: ; 3530 (0:3530) SetSpriteMovementBytesToFF:: ; 353f (0:353f) push hl call GetSpriteMovementByte1Pointer - ld [hl],$FF + ld [hl], $FF call GetSpriteMovementByte2Pointer - ld [hl],$FF ; prevent person from walking? + ld [hl], $FF ; prevent person from walking? pop hl ret ; returns the sprite movement byte 1 pointer for sprite [H_SPRITEINDEX] in hl GetSpriteMovementByte1Pointer:: ; 354b (0:354b) - ld h,$C2 - ld a,[H_SPRITEINDEX] + ld h, $C2 + ld a, [H_SPRITEINDEX] swap a - add a,6 - ld l,a + add a, 6 + ld l, a ret ; returns the sprite movement byte 2 pointer for sprite [H_SPRITEINDEX] in hl GetSpriteMovementByte2Pointer:: ; 3555 (0:3555) push de - ld hl,wMapSpriteData - ld a,[H_SPRITEINDEX] + ld hl, wMapSpriteData + ld a, [H_SPRITEINDEX] dec a add a - ld e,a - ld d,0 - add hl,de + ld e, a + ld d, 0 + add hl, de pop de ret @@ -3242,21 +3242,21 @@ GetTrainerInformation:: ; 3563 (0:3563) ret IsFightingJessieJames:: ; 359e (0:359e) - ld a,[wTrainerClass] + ld a, [wTrainerClass] cp ROCKET ret nz - ld a,[wTrainerNo] + ld a, [wTrainerNo] cp $2a ret c - ld de,JessieJamesPic + ld de, JessieJamesPic cp $2e - jr c,.dummy - ld de,JessieJamesPic ; possibly meant to add another pic + jr c, .dummy + ld de, JessieJamesPic ; possibly meant to add another pic .dummy - ld hl,wTrainerPicPointer - ld a,e - ld [hli],a - ld [hl],d + ld hl, wTrainerPicPointer + ld a, e + ld [hli], a + ld [hl], d ret GetTrainerName:: ; 35bb (0:35bb) @@ -3282,16 +3282,16 @@ HasEnoughCoins:: ; 35ce (0:35ce) BankswitchHome:: ; 35d9 (0:35d9) ; switches to bank # in a ; Only use this when in the home bank! - ld [wBankswitchHomeTemp],a - ld a,[H_LOADEDROMBANK] - ld [wBankswitchHomeSavedROMBank],a - ld a,[wBankswitchHomeTemp] + ld [wBankswitchHomeTemp], a + ld a, [H_LOADEDROMBANK] + ld [wBankswitchHomeSavedROMBank], a + ld a, [wBankswitchHomeTemp] call BankswitchCommon ret BankswitchBack:: ; 35e8 (0:35e8) ; returns from BankswitchHome - ld a,[wBankswitchHomeSavedROMBank] + ld a, [wBankswitchHomeSavedROMBank] call BankswitchCommon ret @@ -3353,31 +3353,31 @@ MoveSprite_:: ; 3640 (0:3640) push bc call GetSpriteMovementByte1Pointer xor a - ld [hl],a - ld hl,wNPCMovementDirections - ld c,0 + ld [hl], a + ld hl, wNPCMovementDirections + ld c, 0 .loop - ld a,[de] - ld [hli],a + ld a, [de] + ld [hli], a inc de inc c - cp a,$FF ; have we reached the end of the movement data? - jr nz,.loop + cp a, $FF ; have we reached the end of the movement data? + jr nz, .loop - ld a,c - ld [wNPCNumScriptedSteps],a ; number of steps taken + ld a, c + ld [wNPCNumScriptedSteps], a ; number of steps taken pop bc - ld hl,wd730 - set 0,[hl] + ld hl, wd730 + set 0, [hl] pop hl xor a - ld [wOverrideSimulatedJoypadStatesMask],a - ld [wSimulatedJoypadStatesEnd],a + ld [wOverrideSimulatedJoypadStatesMask], a + ld [wSimulatedJoypadStatesEnd], a dec a - ld [wJoyIgnore],a - ld [wWastedByteCD3A],a + ld [wJoyIgnore], a + ld [wWastedByteCD3A], a ret ; divides [hDividend2] by [hDivisor2] and stores the quotient in [hQuotient2] @@ -3500,7 +3500,7 @@ DelayFrames:: ; 372f (0:372f) ; wait c frames call DelayFrame dec c - jr nz,DelayFrames + jr nz, DelayFrames ret PlaySoundWaitForCurrent:: ; 3736 (0:3736) @@ -3545,75 +3545,75 @@ GetName:: ; 3762 (0:3762) ; [wPredefBank] = bank of list ; ; returns pointer to name in de - ld a,[wd0b5] - ld [wd11e],a + ld a, [wd0b5] + ld [wd11e], a ; TM names are separate from item names. ; BUG: This applies to all names instead of just items. cp HM_01 jp nc, GetMachineName - ld a,[H_LOADEDROMBANK] + ld a, [H_LOADEDROMBANK] push af push hl push bc push de - ld a,[wNameListType] ;List3759_entrySelector + ld a, [wNameListType] ;List3759_entrySelector dec a - jr nz,.otherEntries + jr nz, .otherEntries ;1 = MON_NAMES call GetMonName - ld hl,NAME_LENGTH - add hl,de - ld e,l - ld d,h + ld hl, NAME_LENGTH + add hl, de + ld e, l + ld d, h jr .gotPtr .otherEntries ;2-7 = OTHER ENTRIES - ld a,[wPredefBank] + ld a, [wPredefBank] call BankswitchCommon - ld a,[wNameListType] ;VariousNames' entryID + ld a, [wNameListType] ;VariousNames' entryID dec a add a - ld d,0 - ld e,a - jr nc,.skip + ld d, 0 + ld e, a + jr nc, .skip inc d .skip - ld hl,NamePointers - add hl,de - ld a,[hli] - ld [$ff96],a - ld a,[hl] - ld [$ff95],a - ld a,[$ff95] - ld h,a - ld a,[$ff96] - ld l,a - ld a,[wd0b5] - ld b,a - ld c,0 + ld hl, NamePointers + add hl, de + ld a, [hli] + ld [$ff96], a + ld a, [hl] + ld [$ff95], a + ld a, [$ff95] + ld h, a + ld a, [$ff96] + ld l, a + ld a, [wd0b5] + ld b, a + ld c, 0 .nextName - ld d,h - ld e,l + ld d, h + ld e, l .nextChar - ld a,[hli] + ld a, [hli] cp a, "@" - jr nz,.nextChar + jr nz, .nextChar inc c ;entry counter - ld a,b ;wanted entry + ld a, b ;wanted entry cp c - jr nz,.nextName - ld h,d - ld l,e - ld de,wcd6d - ld bc,$0014 + jr nz, .nextName + ld h, d + ld l, e + ld de, wcd6d + ld bc, $0014 call CopyData .gotPtr - ld a,e - ld [wUnusedCF8D],a - ld a,d - ld [wUnusedCF8D + 1],a + ld a, e + ld [wUnusedCF8D], a + ld a, d + ld [wUnusedCF8D + 1], a pop de pop bc pop hl @@ -3684,49 +3684,49 @@ CopyString:: ; 3816 (0:3816) ; Just copies [hJoyPressed] to [hJoy5]. ; 2. Get currently pressed buttons at low sample rate with delay ; ([hJoy7] == 1, [hJoy6] != 0) -; If the user holds down buttons for more than half a second, +; If the user holds down buttons for more than half a second, ; report buttons as being pressed up to 12 times per second thereafter. -; If the user holds down buttons for less than half a second, +; If the user holds down buttons for less than half a second, ; report only one button press. ; 3. Same as 2, but report no buttons as pressed if A or B is held down. ; ([hJoy7] == 1, [hJoy6] == 0) JoypadLowSensitivity:: ; 381e (0:381e) call Joypad - ld a,[hJoy7] ; flag + ld a, [hJoy7] ; flag and a ; get all currently pressed buttons or only newly pressed buttons? - ld a,[hJoyPressed] ; newly pressed buttons - jr z,.storeButtonState - ld a,[hJoyHeld] ; all currently pressed buttons + ld a, [hJoyPressed] ; newly pressed buttons + jr z, .storeButtonState + ld a, [hJoyHeld] ; all currently pressed buttons .storeButtonState - ld [hJoy5],a - ld a,[hJoyPressed] ; newly pressed buttons + ld [hJoy5], a + ld a, [hJoyPressed] ; newly pressed buttons and a ; have any buttons been newly pressed since last check? - jr z,.noNewlyPressedButtons + jr z, .noNewlyPressedButtons .newlyPressedButtons - ld a,30 ; half a second delay - ld [H_FRAMECOUNTER],a + ld a, 30 ; half a second delay + ld [H_FRAMECOUNTER], a ret .noNewlyPressedButtons - ld a,[H_FRAMECOUNTER] + ld a, [H_FRAMECOUNTER] and a ; is the delay over? - jr z,.delayOver + jr z, .delayOver .delayNotOver xor a - ld [hJoy5],a ; report no buttons as pressed + ld [hJoy5], a ; report no buttons as pressed ret .delayOver ; if [hJoy6] = 0 and A or B is pressed, report no buttons as pressed - ld a,[hJoyHeld] + ld a, [hJoyHeld] and A_BUTTON | B_BUTTON - jr z,.setShortDelay - ld a,[hJoy6] ; flag + jr z, .setShortDelay + ld a, [hJoy6] ; flag and a - jr nz,.setShortDelay + jr nz, .setShortDelay xor a - ld [hJoy5],a + ld [hJoy5], a .setShortDelay - ld a,5 ; 1/12 of a second delay - ld [H_FRAMECOUNTER],a + ld a, 5 ; 1/12 of a second delay + ld [H_FRAMECOUNTER], a ret WaitForTextScrollButtonPress:: ; 3852 (0:3852) @@ -3814,42 +3814,42 @@ Divide:: ; 38b2 (0:38b2) ; screen unless the player presses the A/B button or the delay is turned off ; through the [wd730] or [wLetterPrintingDelayFlags] flags. PrintLetterDelay:: ; 38c8 (0:38c8) - ld a,[wd730] - bit 6,a + ld a, [wd730] + bit 6, a ret nz - ld a,[wLetterPrintingDelayFlags] - bit 1,a + ld a, [wLetterPrintingDelayFlags] + bit 1, a ret z push hl push de push bc - ld a,[wLetterPrintingDelayFlags] - bit 0,a - jr z,.waitOneFrame - ld a,[wOptions] + ld a, [wLetterPrintingDelayFlags] + bit 0, a + jr z, .waitOneFrame + ld a, [wOptions] and $f - ld [H_FRAMECOUNTER],a + ld [H_FRAMECOUNTER], a jr .checkButtons .waitOneFrame - ld a,1 - ld [H_FRAMECOUNTER],a + ld a, 1 + ld [H_FRAMECOUNTER], a .checkButtons call Joypad - ld a,[hJoyHeld] + ld a, [hJoyHeld] .checkAButton - bit 0,a ; is the A button pressed? - jr z,.checkBButton + bit 0, a ; is the A button pressed? + jr z, .checkBButton jr .endWait .checkBButton - bit 1,a ; is the B button pressed? - jr z,.buttonsNotPressed + bit 1, a ; is the B button pressed? + jr z, .buttonsNotPressed .endWait call DelayFrame jr .done .buttonsNotPressed ; if neither A nor B is pressed - ld a,[H_FRAMECOUNTER] + ld a, [H_FRAMECOUNTER] and a - jr nz,.checkButtons + jr nz, .checkButtons .done pop bc pop de @@ -3857,18 +3857,18 @@ PrintLetterDelay:: ; 38c8 (0:38c8) ret ; Copies [hl, bc) to [de, bc - hl). -; In other words, the source data is from hl up to but not including bc, +; In other words, the source data is from hl up to but not including bc, ; and the destination is de. CopyDataUntil:: ; 3908 (0:3908) - ld a,[hli] - ld [de],a + ld a, [hli] + ld [de], a inc de - ld a,h + ld a, h cp b - jr nz,CopyDataUntil - ld a,l + jr nz, CopyDataUntil + ld a, l cp c - jr nz,CopyDataUntil + jr nz, CopyDataUntil ret ; Function to remove a pokemon from the party or the current box. @@ -3906,7 +3906,7 @@ CalcStats:: ; 392b (0:392b) ret ; calculates stat c of current mon -; c: stat to calc (HP=1,Atk=2,Def=3,Spd=4,Spc=5) +; c: stat to calc (HP=1, Atk=2, Def=3, Spd=4, Spc=5) ; b: consider stat exp? ; hl: base ptr to stat exp values ([hl + 2*c - 1] and [hl + 2*c]) CalcStat:: ; 393f (0:393f) @@ -4113,21 +4113,21 @@ AddNTimes:: ; 3a74 (0:3a74) and a ret z .loop - add hl,bc + add hl, bc dec a - jr nz,.loop + jr nz, .loop ret ; Compare strings, c bytes in length, at de and hl. ; Often used to compare big endian numbers in battle calculations. StringCmp:: ; 3a7b (0:3a7b) - ld a,[de] + ld a, [de] cp [hl] ret nz inc de inc hl dec c - jr nz,StringCmp + jr nz, StringCmp ret ; INPUT: @@ -4136,298 +4136,298 @@ StringCmp:: ; 3a7b (0:3a7b) ; c = X coordinate of upper left corner of sprite ; de = base address of 4 tile number and attribute pairs WriteOAMBlock:: ; 3a84 (0:3a84) - ld h,wOAMBuffer / $100 + ld h, wOAMBuffer / $100 swap a ; multiply by 16 - ld l,a + ld l, a call .writeOneEntry ; upper left push bc - ld a,8 + ld a, 8 add c - ld c,a + ld c, a call .writeOneEntry ; upper right pop bc - ld a,8 + ld a, 8 add b - ld b,a + ld b, a call .writeOneEntry ; lower left - ld a,8 + ld a, 8 add c - ld c,a + ld c, a ; lower right .writeOneEntry ; 3aa0 (0:3aa0) - ld [hl],b ; Y coordinate + ld [hl], b ; Y coordinate inc hl - ld [hl],c ; X coordinate + ld [hl], c ; X coordinate inc hl - ld a,[de] ; tile number + ld a, [de] ; tile number inc de - ld [hli],a - ld a,[de] ; attribute + ld [hli], a + ld a, [de] ; attribute inc de - ld [hli],a + ld [hli], a ret HandleMenuInput:: ; 3aab (0:3aab) xor a - ld [wPartyMenuAnimMonEnabled],a + ld [wPartyMenuAnimMonEnabled], a HandleMenuInputPokemonSelection:: ; 3aaf (0:3aaf) - ld a,[H_DOWNARROWBLINKCNT1] + ld a, [H_DOWNARROWBLINKCNT1] push af - ld a,[H_DOWNARROWBLINKCNT2] + ld a, [H_DOWNARROWBLINKCNT2] push af ; save existing values on stack xor a - ld [H_DOWNARROWBLINKCNT1],a ; blinking down arrow timing value 1 - ld a,6 - ld [H_DOWNARROWBLINKCNT2],a ; blinking down arrow timing value 2 + ld [H_DOWNARROWBLINKCNT1], a ; blinking down arrow timing value 1 + ld a, 6 + ld [H_DOWNARROWBLINKCNT2], a ; blinking down arrow timing value 2 .loop1 xor a - ld [wAnimCounter],a ; counter for pokemon shaking animation + ld [wAnimCounter], a ; counter for pokemon shaking animation call PlaceMenuCursor call Delay3 .loop2 push hl - ld a,[wPartyMenuAnimMonEnabled] + ld a, [wPartyMenuAnimMonEnabled] and a ; is it a pokemon selection menu? - jr z,.getJoypadState + jr z, .getJoypadState callba AnimatePartyMon ; shake mini sprite of selected pokemon (1c:578c) .getJoypadState pop hl call JoypadLowSensitivity - ld a,[hJoy5] + ld a, [hJoy5] and a ; was a key pressed? - jr nz,.keyPressed + jr nz, .keyPressed push hl coord hl, 18, 11 ; coordinates of blinking down arrow in some menus call HandleDownArrowBlinkTiming ; blink down arrow (if any) pop hl - ld a,[wMenuJoypadPollCount] + ld a, [wMenuJoypadPollCount] dec a - jr z,.giveUpWaiting + jr z, .giveUpWaiting jr .loop2 .giveUpWaiting ; if a key wasn't pressed within the specified number of checks pop af - ld [H_DOWNARROWBLINKCNT2],a + ld [H_DOWNARROWBLINKCNT2], a pop af - ld [H_DOWNARROWBLINKCNT1],a ; restore previous values + ld [H_DOWNARROWBLINKCNT1], a ; restore previous values xor a - ld [wMenuWrappingEnabled],a ; disable menu wrapping + ld [wMenuWrappingEnabled], a ; disable menu wrapping ret .keyPressed xor a - ld [wCheckFor180DegreeTurn],a - ld a,[hJoy5] - ld b,a - bit 0,a ; pressed A key? - jr nz,.checkOtherKeys - bit 6,a ; pressed Up key? - jr z,.checkIfDownPressed + ld [wCheckFor180DegreeTurn], a + ld a, [hJoy5] + ld b, a + bit 0, a ; pressed A key? + jr nz, .checkOtherKeys + bit 6, a ; pressed Up key? + jr z, .checkIfDownPressed .upPressed - ld a,[wCurrentMenuItem] ; selected menu item + ld a, [wCurrentMenuItem] ; selected menu item and a ; already at the top of the menu? - jr z,.alreadyAtTop + jr z, .alreadyAtTop .notAtTop dec a - ld [wCurrentMenuItem],a ; move selected menu item up one space + ld [wCurrentMenuItem], a ; move selected menu item up one space jr .checkOtherKeys .alreadyAtTop - ld a,[wMenuWrappingEnabled] + ld a, [wMenuWrappingEnabled] and a ; is wrapping around enabled? - jr z,.noWrappingAround - ld a,[wMaxMenuItem] - ld [wCurrentMenuItem],a ; wrap to the bottom of the menu + jr z, .noWrappingAround + ld a, [wMaxMenuItem] + ld [wCurrentMenuItem], a ; wrap to the bottom of the menu jr .checkOtherKeys .checkIfDownPressed - bit 7,a - jr z,.checkOtherKeys + bit 7, a + jr z, .checkOtherKeys .downPressed - ld a,[wCurrentMenuItem] + ld a, [wCurrentMenuItem] inc a - ld c,a - ld a,[wMaxMenuItem] + ld c, a + ld a, [wMaxMenuItem] cp c - jr nc,.notAtBottom + jr nc, .notAtBottom .alreadyAtBottom - ld a,[wMenuWrappingEnabled] + ld a, [wMenuWrappingEnabled] and a ; is wrapping around enabled? - jr z,.noWrappingAround - ld c,$00 ; wrap from bottom to top + jr z, .noWrappingAround + ld c, $00 ; wrap from bottom to top .notAtBottom - ld a,c - ld [wCurrentMenuItem],a + ld a, c + ld [wCurrentMenuItem], a .checkOtherKeys - ld a,[wMenuWatchedKeys] + ld a, [wMenuWatchedKeys] and b ; does the menu care about any of the pressed keys? - jp z,.loop1 + jp z, .loop1 .checkIfAButtonOrBButtonPressed - ld a,[hJoy5] + ld a, [hJoy5] and A_BUTTON | B_BUTTON - jr z,.skipPlayingSound + jr z, .skipPlayingSound .AButtonOrBButtonPressed push hl - ld hl,wFlags_0xcd60 - bit 5,[hl] + ld hl, wFlags_0xcd60 + bit 5, [hl] pop hl - jr nz,.skipPlayingSound + jr nz, .skipPlayingSound ld a, $90 ; SFX_PRESS_AB call PlaySound ; play sound .skipPlayingSound pop af - ld [H_DOWNARROWBLINKCNT2],a + ld [H_DOWNARROWBLINKCNT2], a pop af - ld [H_DOWNARROWBLINKCNT1],a ; restore previous values + ld [H_DOWNARROWBLINKCNT1], a ; restore previous values xor a - ld [wMenuWrappingEnabled],a ; disable menu wrapping - ld a,[hJoy5] + ld [wMenuWrappingEnabled], a ; disable menu wrapping + ld a, [hJoy5] ret .noWrappingAround - ld a,[wMenuWatchMovingOutOfBounds] + ld a, [wMenuWatchMovingOutOfBounds] and a ; should we return if the user tried to go past the top or bottom? - jr z,.checkOtherKeys + jr z, .checkOtherKeys jr .checkIfAButtonOrBButtonPressed PlaceMenuCursor:: ; 3b6d (0:3b6d) - ld a,[wTopMenuItemY] + ld a, [wTopMenuItemY] and a ; is the y coordinate 0? - jr z,.adjustForXCoord + jr z, .adjustForXCoord coord hl, 0, 0 - ld bc,SCREEN_WIDTH + ld bc, SCREEN_WIDTH .topMenuItemLoop - add hl,bc + add hl, bc dec a - jr nz,.topMenuItemLoop + jr nz, .topMenuItemLoop .adjustForXCoord - ld a,[wTopMenuItemX] - ld b,0 - ld c,a - add hl,bc + ld a, [wTopMenuItemX] + ld b, 0 + ld c, a + add hl, bc push hl - ld a,[wLastMenuItem] + ld a, [wLastMenuItem] and a ; was the previous menu id 0? - jr z,.checkForArrow1 - ld bc,40 + jr z, .checkForArrow1 + ld bc, 40 push af - ld a,[hFlags_0xFFFA] - bit 1,a ; is the menu double spaced? - jr z,.doubleSpaced1 - ld bc,20 + ld a, [hFlags_0xFFFA] + bit 1, a ; is the menu double spaced? + jr z, .doubleSpaced1 + ld bc, 20 .doubleSpaced1 pop af .oldMenuItemLoop - add hl,bc + add hl, bc dec a - jr nz,.oldMenuItemLoop + jr nz, .oldMenuItemLoop .checkForArrow1 - ld a,[hl] - cp a,"▶" ; was an arrow next to the previously selected menu item? - jr nz,.skipClearingArrow + ld a, [hl] + cp a, "▶" ; was an arrow next to the previously selected menu item? + jr nz, .skipClearingArrow .clearArrow - ld a,[wTileBehindCursor] - ld [hl],a + ld a, [wTileBehindCursor] + ld [hl], a .skipClearingArrow pop hl - ld a,[wCurrentMenuItem] + ld a, [wCurrentMenuItem] and a - jr z,.checkForArrow2 - ld bc,40 + jr z, .checkForArrow2 + ld bc, 40 push af - ld a,[hFlags_0xFFFA] - bit 1,a ; is the menu double spaced? - jr z,.doubleSpaced2 - ld bc,20 + ld a, [hFlags_0xFFFA] + bit 1, a ; is the menu double spaced? + jr z, .doubleSpaced2 + ld bc, 20 .doubleSpaced2 pop af .currentMenuItemLoop - add hl,bc + add hl, bc dec a - jr nz,.currentMenuItemLoop + jr nz, .currentMenuItemLoop .checkForArrow2 - ld a,[hl] - cp a,"▶" ; has the right arrow already been placed? - jr z,.skipSavingTile ; if so, don't lose the saved tile - ld [wTileBehindCursor],a ; save tile before overwriting with right arrow + ld a, [hl] + cp a, "▶" ; has the right arrow already been placed? + jr z, .skipSavingTile ; if so, don't lose the saved tile + ld [wTileBehindCursor], a ; save tile before overwriting with right arrow .skipSavingTile - ld a,"▶" ; place right arrow - ld [hl],a - ld a,l - ld [wMenuCursorLocation],a - ld a,h - ld [wMenuCursorLocation + 1],a - ld a,[wCurrentMenuItem] - ld [wLastMenuItem],a + ld a, "▶" ; place right arrow + ld [hl], a + ld a, l + ld [wMenuCursorLocation], a + ld a, h + ld [wMenuCursorLocation + 1], a + ld a, [wCurrentMenuItem] + ld [wLastMenuItem], a ret ; This is used to mark a menu cursor other than the one currently being ; manipulated. In the case of submenus, this is used to show the location of -; the menu cursor in the parent menu. In the case of swapping items in list, +; the menu cursor in the parent menu. In the case of swapping items in list, ; this is used to mark the item that was first chosen to be swapped. PlaceUnfilledArrowMenuCursor:: ; 3bd9 (0:3bd9) - ld b,a - ld a,[wMenuCursorLocation] - ld l,a - ld a,[wMenuCursorLocation + 1] - ld h,a - ld [hl],$ec ; outline of right arrow - ld a,b + ld b, a + ld a, [wMenuCursorLocation] + ld l, a + ld a, [wMenuCursorLocation + 1] + ld h, a + ld [hl], $ec ; outline of right arrow + ld a, b ret ; Replaces the menu cursor with a blank space. EraseMenuCursor:: ; 3be6 (0:3be6) - ld a,[wMenuCursorLocation] - ld l,a - ld a,[wMenuCursorLocation + 1] - ld h,a - ld [hl]," " + ld a, [wMenuCursorLocation] + ld l, a + ld a, [wMenuCursorLocation + 1] + ld h, a + ld [hl], " " ret ; This toggles a blinking down arrow at hl on and off after a delay has passed. ; This is often called even when no blinking is occurring. ; The reason is that most functions that call this initialize H_DOWNARROWBLINKCNT1 to 0. -; The effect is that if the tile at hl is initialized with a down arrow, +; The effect is that if the tile at hl is initialized with a down arrow, ; this function will toggle that down arrow on and off, but if the tile isn't ; initliazed with a down arrow, this function does nothing. ; That allows this to be called without worrying about if a down arrow should ; be blinking. HandleDownArrowBlinkTiming:: ; 3bf1 (0:3bf1) - ld a,[hl] - ld b,a - ld a,$ee ; down arrow + ld a, [hl] + ld b, a + ld a, $ee ; down arrow cp b - jr nz,.downArrowOff + jr nz, .downArrowOff .downArrowOn - ld a,[H_DOWNARROWBLINKCNT1] + ld a, [H_DOWNARROWBLINKCNT1] dec a - ld [H_DOWNARROWBLINKCNT1],a + ld [H_DOWNARROWBLINKCNT1], a ret nz - ld a,[H_DOWNARROWBLINKCNT2] + ld a, [H_DOWNARROWBLINKCNT2] dec a - ld [H_DOWNARROWBLINKCNT2],a + ld [H_DOWNARROWBLINKCNT2], a ret nz - ld a," " - ld [hl],a - ld a,$ff - ld [H_DOWNARROWBLINKCNT1],a - ld a,$06 - ld [H_DOWNARROWBLINKCNT2],a + ld a, " " + ld [hl], a + ld a, $ff + ld [H_DOWNARROWBLINKCNT1], a + ld a, $06 + ld [H_DOWNARROWBLINKCNT2], a ret .downArrowOff - ld a,[H_DOWNARROWBLINKCNT1] + ld a, [H_DOWNARROWBLINKCNT1] and a ret z dec a - ld [H_DOWNARROWBLINKCNT1],a + ld [H_DOWNARROWBLINKCNT1], a ret nz dec a - ld [H_DOWNARROWBLINKCNT1],a - ld a,[H_DOWNARROWBLINKCNT2] + ld [H_DOWNARROWBLINKCNT1], a + ld a, [H_DOWNARROWBLINKCNT2] dec a - ld [H_DOWNARROWBLINKCNT2],a + ld [H_DOWNARROWBLINKCNT2], a ret nz - ld a,$06 - ld [H_DOWNARROWBLINKCNT2],a - ld a,$ee ; down arrow - ld [hl],a + ld a, $06 + ld [H_DOWNARROWBLINKCNT2], a + ld a, $ee ; down arrow + ld [hl], a ret ; The following code either enables or disables the automatic drawing of @@ -4439,19 +4439,19 @@ EnableAutoTextBoxDrawing:: ; 3c29 (0:3c29) jr AutoTextBoxDrawingCommon DisableAutoTextBoxDrawing:: ; 3c2c (0:3c2c) - ld a,$01 + ld a, $01 AutoTextBoxDrawingCommon:: ; 3c2e (0:3c2d) - ld [wAutoTextBoxDrawingControl],a + ld [wAutoTextBoxDrawingControl], a xor a - ld [wDoNotWaitForButtonPressAfterDisplayingText],a ; make DisplayTextID wait for button press + ld [wDoNotWaitForButtonPressAfterDisplayingText], a ; make DisplayTextID wait for button press ret PrintText:: ; 3c36 (0:3c36) ; Print text hl at (1, 14). push hl - ld a,MESSAGE_BOX - ld [wTextBoxID],a + ld a, MESSAGE_BOX + ld [wTextBoxID], a call DisplayTextBoxID call UpdateSprites call Delay3 @@ -4462,9 +4462,9 @@ PrintText_NoCreatingTextBox:: ; 3c46 (0:3c46) FarPrintText:: ; 3c4c (0:3c4c) ; print text b:hl at (1, 14) - ld a,[H_LOADEDROMBANK] + ld a, [H_LOADEDROMBANK] push af - ld a,b + ld a, b call BankswitchCommon call PrintText pop af @@ -4675,7 +4675,7 @@ endm ret .NextDigit: ; 3d85 (0:3d85) -; Increment unless the number is left-aligned, +; Increment unless the number is left-aligned, ; leading zeroes are not printed, and no digits ; have been printed yet. bit BIT_LEADING_ZEROES, d @@ -4777,9 +4777,9 @@ GBPalNormal:: ; 3de0 (0:3de0) GBPalWhiteOut:: ; 3df2 (0:3df2) ; White out all palettes. xor a - ld [rBGP],a - ld [rOBP0],a - ld [rOBP1],a + ld [rBGP], a + ld [rOBP0], a + ld [rOBP1], a call UpdateGBCPal_BGP call UpdateGBCPal_OBP0 call UpdateGBCPal_OBP1 @@ -4787,9 +4787,9 @@ GBPalWhiteOut:: ; 3df2 (0:3df2) RunDefaultPaletteCommand:: ; 3e03 (0:3e03) - ld b,$ff + ld b, $ff RunPaletteCommand:: ; 3e05 (0:3e05) - ld a,[wOnSGB] + ld a, [wOnSGB] and a ret z predef_jump _RunPaletteCommand @@ -4831,7 +4831,7 @@ ReloadMapSpriteTilePatterns:: ; 3e1e (0:3e1e) GiveItem:: ; 3e3f (0:3e3f) -; Give player quantity c of item b, +; Give player quantity c of item b, ; and copy the item's name to wcf4b. ; Return carry on success. ld a, b @@ -4839,7 +4839,7 @@ GiveItem:: ; 3e3f (0:3e3f) ld [wcf91], a ld a, c ld [wItemQuantity], a - ld hl,wNumBagItems + ld hl, wNumBagItems call AddItemToInventory ret nc call GetItemName @@ -4871,22 +4871,22 @@ Random:: ; 3e6d (0:3e6d) ret BankswitchCommon:: ; 3e7e (0:3e7e) - ld [H_LOADEDROMBANK],a + ld [H_LOADEDROMBANK], a ld [MBC1RomBank], a ret Bankswitch:: ; 3e84 (0:3e84) ; self-contained bankswitch, use this when not in the home bank ; switches to the bank in b - ld a,[H_LOADEDROMBANK] + ld a, [H_LOADEDROMBANK] push af - ld a,b - ld [H_LOADEDROMBANK],a + ld a, b + ld [H_LOADEDROMBANK], a ld [MBC1RomBank], a call JumpToAddress pop bc - ld a,b - ld [H_LOADEDROMBANK],a + ld a, b + ld [H_LOADEDROMBANK], a ld [MBC1RomBank], a ret JumpToAddress:: ; 3e98 (0:3e98) @@ -4897,9 +4897,9 @@ SwitchSRAMBankAndLatchClockData:: ; 3e99 (0:3e99) ld a, $1 ld [MBC1SRamBankingMode], a ld a, SRAM_ENABLE - ld [MBC1SRamEnable],a + ld [MBC1SRamEnable], a pop af - ld [MBC1SRamBank],a + ld [MBC1SRamBank], a ret PrepareRTCDataAndDisableSRAM:: ; 3ea9 (0:3ea9) @@ -4929,11 +4929,11 @@ CheckForHiddenObjectOrBookshelfOrCardKeyDoor:: ; 3ef9 (0:3ef9) and a jr nz, .hiddenObjectNotFound xor a - ld [$ffeb],a + ld [$ffeb], a ld a, [wHiddenObjectFunctionRomBank] call BankswitchCommon call JumpToAddress - ld a,[$ffeb] + ld a, [$ffeb] jr .done .hiddenObjectNotFound predef GetTileAndCoordsInFrontOfPlayer @@ -5050,4 +5050,4 @@ const_value = 1 add_tx_pre ElevatorText ; 43 add_tx_pre PokemonStuffText ; 44 - ; dr $3f67,$4000 + ; dr $3f67, $4000 diff --git a/hram.asm b/hram.asm index 7ec1393a..5138b239 100644 --- a/hram.asm +++ b/hram.asm @@ -327,4 +327,6 @@ hFlags_0xFFFA EQU $FFFA hFieldMoveMonMenuTopMenuItemX EQU $FFFB +h_0xFFFC EQU $FFFC + hGBC EQU $FFFE ; 0 if DMG, != 0 if GBC -- cgit v1.2.3 From b3c51c2c748d92ac033b66bfad24eca1d2ccbf45 Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Wed, 25 May 2016 08:51:00 -0400 Subject: Another chunk of bank F --- engine/bank3f.asm | 305 ++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 298 insertions(+), 7 deletions(-) diff --git a/engine/bank3f.asm b/engine/bank3f.asm index 3c66f4a0..9f4429f8 100644 --- a/engine/bank3f.asm +++ b/engine/bank3f.asm @@ -2892,19 +2892,308 @@ Func_fd601: dr $fd601, $fd65c Jumptable_fd65c: - dr $fd65c, $fd75f + dw Func_fd678 + dw Func_fd6a3 + dw Func_fd698 + dw Func_fd6f4 + dw Func_fd6ff + dw Func_fd718 + dw Func_fd68c + dw Func_fd6c6 + dw Func_fd6c0 + dw Func_fd6e2 + dw Func_fd68b + +Func_fd672: + ld hl, $d44c + set 6, [hl] + ret + +Func_fd678: + ld hl, 7 + add hl, bc + xor a + ld [hli], a + ld [hl], a + call Func_fd74a + ld d, a + call Func_fd75f + or d + ld [$d452], a + ret + +Func_fd68b: + ret + +Func_fd68c: + call Func_fd74a + ld d, a + call Func_fd755 + or d + ld [$d452], a + ret + +Func_fd698: + call Func_fd74a + ld d, a + call Func_fd75f + or d + ld d, a + jr asm_fd6ac + +Func_fd6a3: + call Func_fd74a + ld d, a + call Func_fd755 + or d + ld d, a +asm_fd6ac + ld hl, 8 + add hl, bc + call Func_fd78e + jr nz, .asm_fd6b6 + inc [hl] +.asm_fd6b6 + ld a, [hl] + rrca + rrca + and 3 + or d + ld [$d452], a + ret + +Func_fd6c0: + call Func_fd75f + ld d, a + jr asm_fd6ca + +Func_fd6c6: + call Func_fd755 + ld d, a +asm_fd6ca + call Func_fd74a + or d + ld d, a + call Func_fd736 + or d + ld [$d452], a + call Func_fd79d + ld [$d456], a + and a + ret z + call Func_fd672 + ret + +Func_fd6e2: + call Func_fd75f + ld d, a + call Func_fd74a + or d + ld [$d452], a + call Func_fd79d + ld [$d456], a + ret + +Func_fd6f4: + ld a, [$d44f] + and $40 + cp $40 + jr z, Func_fd6ff + jr Func_fd718 + +Func_fd6ff: + call Func_fd755 + ld d, a + call Func_fd78e + jr nz, .asm_fd710 + ld hl, Data_fd731 +.asm_fd70b + ld a, [hli] + cp d + jr nz, .asm_fd70b + ld d, [hl] +.asm_fd710 + call Func_fd74a + or d + ld [$d452], a + ret + +Func_fd718: + call Func_fd755 + ld d, a + call Func_fd78e + jr nz, .asm_fd529 + ld hl, Data_fd731End +.asm_fd524 + ld a, [hld] + cp d + jr nz, .asm_fd524 + ld d, [hl] +.asm_fd529 + call Func_fd74a + or d + ld [$d452], a + ret + +Data_fd731: + db SPRITE_FACING_DOWN + db SPRITE_FACING_LEFT + db SPRITE_FACING_UP + db SPRITE_FACING_RIGHT + db SPRITE_FACING_DOWN +Data_fd731End: + +Func_fd736: + push hl + ld hl, 7 + add hl, bc + ld a, [hl] + inc a + and $3 + ld [hli], a + jr nz, .asm_fd747 + ld a, [hl] + inc a + and $3 + ld [hl], a +.asm_fd747 + ld a, [hl] + pop hl + ret + +Func_fd74a: + push hl + ld hl, wSpriteStateData2 - wSpriteStateData1 + 14 + add hl, bc + ld a, [hl] + dec a + swap a + pop hl + ret + +Func_fd755: + push hl + ld hl, 2 + add hl, bc + ld a, [hl] + and $c + pop hl + ret Func_fd75f: - dr $fd75f, $fd769 + push hl + ld hl, 9 + add hl, bc + ld a, [hl] + and $c + pop hl + ret Func_fd769: - dr $fd769, $fd775 + push hl + ld hl, 9 + add hl, bc + add a + add a + and $c + ld [hl], a + pop hl + ret + Func_fd775: - dr $fd775, $fd784 + ld hl, $d457 + inc [hl] + ld a, [$d44d] + and $1f + inc a + cp [hl] + ret nz + ld [hl], 0 + ret + Func_fd784: - dr $fd784, $fd7cb + ld a, [$d44d] + swap a + rrca + and $3 + inc a + ret + +Func_fd78e: + ld hl, $d458 + inc [hl] + ld a, [$d44f] + and $f + inc a + cp [hl] + ret nz + ld [hl], 0 + ret + +Func_fd79d: + call Func_fd7b2 + ld a, [$d458] + add e + ld [$d458], a + add $20 + ld e, a + push hl + push bc + call Func_fd907 + pop bc + pop hl + ret + +Func_fd7b2: + ld a, [$d44f] + and $f + inc a + ld d, a + ld a, [$d44f] + swap a + and $7 + ld e, a + ld a, 1 + jr z, .asm_fd7c9 +.asm_fd7c5 + add a + dec e + jr nz, .asm_fd7c5 +.asm_fd7c9 + ld e, a + ret + Func_fd7cb: - dr $fd7cb, $fd7f3 + push bc + ld c, a + ld b, 0 + ld hl, Data_fd7e3 + add hl, bc + add hl, bc + ld d, [hl] + inc hl + ld e, [hl] + pop bc + ld hl, wSpriteStateData2 - wSpriteStateData1 + 4 + add hl, bc + ld a, [hl] + add e + ld [hli], a + ld a, [hl] + add d + ld [hl], a + ret + +Data_fd7e3: + db 0, 1 + db 0, -1 + db -1, 0 + db 1, 0 + db -1, 1 + db 1, 1 + db -1, -1 + db 1, -1 + Func_fd7f3: dr $fd7f3, $fd831 Func_fd831: @@ -2918,7 +3207,9 @@ Func_fd8e1: ; fd8e1 (3f:58e1) Func_fd8ee: ; fd8ee (3f:58ee) dr $fd8ee, $fd8f8 Func_fd8f8: ; fd8f8 (3f:58f8) - dr $fd8f8, $fd978 + dr $fd8f8, $fd907 +Func_fd907: + dr $fd907, $fd978 Func_fd978: ; fd978 (3f:5978) dr $fd978, $fd9d0 Func_fd9d0: ; fd9d0 (3f:59d0) -- cgit v1.2.3 From 6d3c4943b232b420ea93fbf43440934284098d87 Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Wed, 25 May 2016 09:29:13 -0400 Subject: Another chunk of F... overworld movement engine? --- engine/bank3f.asm | 52 +++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 51 insertions(+), 1 deletion(-) diff --git a/engine/bank3f.asm b/engine/bank3f.asm index 9f4429f8..55d4471f 100644 --- a/engine/bank3f.asm +++ b/engine/bank3f.asm @@ -3195,7 +3195,57 @@ Data_fd7e3: db 1, -1 Func_fd7f3: - dr $fd7f3, $fd831 + push bc + push de + push hl + + ld bc, wOAMBuffer + 4 * 36 + ld a, [$d454] + ld e, a + ld a, [$d453] + ld d, a + ld hl, Data_fd80b + call Func_fd814 + + pop hl + pop de + pop bc + ret + +Data_fd80b: + db $02 + db $0c, $00, $ff, 0 + db $0c, $08, $ff, 1 << OAM_X_FLIP + +Func_fd814: + ld a, e + add $10 + ld e, a + ld a, d + add $8 + ld d, a + ld a, [hli] +.asm_fd81d + push af + ld a, [hli] + add e + ld [bc], a + inc bc + ld a, [hli] + add d + ld [bc], a + inc bc + ld a, [hli] + ld [bc], a + inc bc + ld a, [hli] + ld [bc], a + inc bc + pop af + dec a + jr nz, .asm_fd81d + ret + Func_fd831: dr $fd831, $fd8ab Func_fd8ab: ; fd8ab (3f:58ab) -- cgit v1.2.3 From 8474adf2641767c01f4e1b9b9e3bd283ddd697df Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Wed, 25 May 2016 09:45:59 -0400 Subject: More code and gfx pointers --- engine/bank3f.asm | 36 +++++++++++++++++++++++++++++++++++- gfx/unknown_fd86b.png | Bin 0 -> 92 bytes 2 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 gfx/unknown_fd86b.png diff --git a/engine/bank3f.asm b/engine/bank3f.asm index 55d4471f..170bafb4 100644 --- a/engine/bank3f.asm +++ b/engine/bank3f.asm @@ -3247,7 +3247,41 @@ Func_fd814: ret Func_fd831: - dr $fd831, $fd8ab + ld hl, vChars1 + $7f * $10 + ld de, LedgeHoppingShadowGFX_3F + lb bc, BANK(LedgeHoppingShadowGFX_3F), (LedgeHoppingShadowGFX_3FEnd - LedgeHoppingShadowGFX_3F) / 8 + jp CopyVideoDataDoubleAlternate + +LedgeHoppingShadowGFX_3F: +INCBIN "gfx/ledge_hopping_shadow.1bpp" +LedgeHoppingShadowGFX_3FEnd: + +Func_fd845: + ld hl, vChars1 + $7e * $10 + ld de, GFX_fd86b + lb bc, BANK(GFX_fd86b), 1 + jp CopyVideoDataDoubleAlternate + +Func_fd851: + ld hl, vChars0 + $c * $10 + ld a, 3 +.asm_fd856 + push af + push hl + ld de, GFX_fd86b + lb bc, BANK(GFX_fd86b), 4 + call CopyVideoDataAlternate + pop hl + ld de, 4 * $10 + add hl, de + pop af + dec a + jr nz, .asm_fd856 + ret + +GFX_fd86b: +INCBIN "gfx/unknown_fd86b.2bpp" + Func_fd8ab: ; fd8ab (3f:58ab) dr $fd8ab, $fd8d4 Func_fd8d4: ; fd8d4 (3f:58d4) diff --git a/gfx/unknown_fd86b.png b/gfx/unknown_fd86b.png new file mode 100644 index 00000000..20bcf5a7 Binary files /dev/null and b/gfx/unknown_fd86b.png differ -- cgit v1.2.3 From e933fb3639329a40576b2878344d647fe42218cb Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Wed, 25 May 2016 10:20:45 -0400 Subject: More pikachu engine stuff --- engine/bank3f.asm | 149 ++++++++++++++++++++++++++++++++++++++++++++++++++---- macros.asm | 11 ++++ 2 files changed, 149 insertions(+), 11 deletions(-) diff --git a/engine/bank3f.asm b/engine/bank3f.asm index 170bafb4..f958de12 100644 --- a/engine/bank3f.asm +++ b/engine/bank3f.asm @@ -3247,7 +3247,7 @@ Func_fd814: ret Func_fd831: - ld hl, vChars1 + $7f * $10 + ld hl, vNPCSprites2 + $7f * $10 ld de, LedgeHoppingShadowGFX_3F lb bc, BANK(LedgeHoppingShadowGFX_3F), (LedgeHoppingShadowGFX_3FEnd - LedgeHoppingShadowGFX_3F) / 8 jp CopyVideoDataDoubleAlternate @@ -3257,13 +3257,13 @@ INCBIN "gfx/ledge_hopping_shadow.1bpp" LedgeHoppingShadowGFX_3FEnd: Func_fd845: - ld hl, vChars1 + $7e * $10 + ld hl, vNPCSprites2 + $7e * $10 ld de, GFX_fd86b lb bc, BANK(GFX_fd86b), 1 jp CopyVideoDataDoubleAlternate Func_fd851: - ld hl, vChars0 + $c * $10 + ld hl, vNPCSprites + $c * $10 ld a, 3 .asm_fd856 push af @@ -3283,19 +3283,146 @@ GFX_fd86b: INCBIN "gfx/unknown_fd86b.2bpp" Func_fd8ab: ; fd8ab (3f:58ab) - dr $fd8ab, $fd8d4 + ld de, PikachuSprite + lb bc, BANK(PikachuSprite), (SandshrewSprite - PikachuSprite) / 32 + ld hl, vNPCSprites + $c * $10 + push bc + call CopyVideoDataAlternate + ld de, PikachuSprite + $c * $10 + ld hl, vNPCSprites2 + $c * $10 + ld a, [h_0xFFFC] + and a + jr z, .asm_fd8c9 + ld de, PikachuSprite + $c * $10 + ld hl, vNPCSprites2 + $4c * $10 +.asm_fd8c9 + pop bc + call CopyVideoDataAlternate + call Func_fd831 + call Func_fd845 + ret + Func_fd8d4: ; fd8d4 (3f:58d4) - dr $fd8d4, $fd8e1 + ld a, [wCurMap] + cp PEWTER_POKECENTER + ret nz + call Func_1542 + call Func_fcff2 + ret + Func_fd8e1: ; fd8e1 (3f:58e1) - dr $fd8e1, $fd8ee + ld a, [wCurMap] + cp POKEMON_FAN_CLUB + ret nz + call Func_1542 + call Func_fcff2 + ret + Func_fd8ee: ; fd8ee (3f:58ee) - dr $fd8ee, $fd8f8 + ld a, [wCurMap] + cp BILLS_HOUSE + ret nz + call Func_1542 + ret + Func_fd8f8: ; fd8f8 (3f:58f8) - dr $fd8f8, $fd907 -Func_fd907: - dr $fd907, $fd978 + call LoadCurrentMapView + call UpdateSprites + call Delay3 + ret + +Func_fd902: ; cosine? + ld a, e + add $10 + jr asm_fd908 + +Func_fd907: ; sine? + ld a, e +asm_fd908 + and $3f + cp $20 + jr nc, .asm_fd913 + call Func_fd91c + ld a, h + ret + +.asm_fd913 + and $1f + call Func_fd91c + ld a, h + cpl + inc a + ret + +Func_fd91c: + ld e, a + ld a, d + ld d, 0 + ld hl, Data_fd938 + add hl, de + add hl, de + ld e, [hl] + inc hl + ld d, [hl] + ld hl, 0 +.asm_fd92b + srl a + jr nc, .asm_fd930 + add hl, de +.asm_fd930 + sla e + rl d + and a + jr nz, .asm_fd92b + ret + +Data_fd938: + sine_wave $100 + Func_fd978: ; fd978 (3f:5978) - dr $fd978, $fd9d0 + ld hl, Data_fd99c + ld a, [wPikachuMood] + ld d, a +.asm_fd97f + ld a, [hli] + inc hl + cp d + jr c, .asm_fd97f + dec hl + ld e, [hl] + ld hl, Data_fd9a6 + ld a, [wPikachuHappiness] + ld d, a + ld bc, 6 +.asm_fd990 + ld a, [hl] + cp d + jr nc, .asm_fd997 + add hl, bc + jr .asm_fd990 + +.asm_fd997 + ld d, 0 + add hl, de + ld a, [hl] + ret + +Data_fd99c: + db $28, 1 + db $7f, 2 + db $80, 3 + db $d2, 4 + db $ff, 5 + +Data_fd9a6: + db $32, $0e, $0e, $06, $0d, $0d + db $64, $09, $09, $05, $0c, $0c + db $82, $03, $03, $01, $08, $08 + db $a0, $03, $03, $04, $0f, $0f + db $c8, $11, $11, $07, $02, $02 + db $fa, $11, $11, $10, $0a, $0a + db $ff, $11, $11, $13, $14, $14 + Func_fd9d0: ; fd9d0 (3f:59d0) dr $fd9d0, $fe66f diff --git a/macros.asm b/macros.asm index f153e379..969d9465 100644 --- a/macros.asm +++ b/macros.asm @@ -758,3 +758,14 @@ ENDC endr db x ENDM + +sine_wave: MACRO +; \1: amplitude + +x = 0 + rept $20 + ; Round up. + dw (sin(x) + (sin(x) & $ff)) >> 8 +x = x + (\1) * $40000 + endr +ENDM -- cgit v1.2.3 From 42a51ba334dbf11f570607d739df8fcb61c7429e Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Wed, 25 May 2016 11:06:15 -0400 Subject: Another chunk of bank 3f --- engine/bank3f.asm | 647 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 646 insertions(+), 1 deletion(-) diff --git a/engine/bank3f.asm b/engine/bank3f.asm index f958de12..fea08865 100644 --- a/engine/bank3f.asm +++ b/engine/bank3f.asm @@ -3408,6 +3408,8 @@ Func_fd978: ; fd978 (3f:5978) ret Data_fd99c: +; First byte: mood threshold +; Second byte: column index in Data_fd9a6 db $28, 1 db $7f, 2 db $80, 3 @@ -3415,6 +3417,8 @@ Data_fd99c: db $ff, 5 Data_fd9a6: +; First byte: happiness threshold +; Remaining bytes: loaded based on Pikachu's mood db $32, $0e, $0e, $06, $0d, $0d db $64, $09, $09, $05, $0c, $0c db $82, $03, $03, $01, $08, $08 @@ -3424,7 +3428,648 @@ Data_fd9a6: db $ff, $11, $11, $13, $14, $14 Func_fd9d0: ; fd9d0 (3f:59d0) - dr $fd9d0, $fe66f + ld a, [H_AUTOBGTRANSFERENABLED] + push af + xor a + ld [H_AUTOBGTRANSFERENABLED], a + ld a, [de] + ld [$d448], a + inc de + push de + call Func_fd9e4 + pop de + pop af + ld [H_AUTOBGTRANSFERENABLED], a + ret + +Func_fd9e4: + call Func_fda2c + callab Func_720e3 + call Func_fd9ff + call Func_fda46 + call Func_fda9a + call Func_fda2c + call RunDefaultPaletteCommand + ret + +Func_fd9ff: + ld hl, $d44d + ld bc, $0011 + xor a + call FillMemory + ld hl, wNPCMovementDirections2 + ld bc, $0021 + xor a + call FillMemory + call Func_fe15c + ld hl, $0064 + ld a, l + ld [$d451], a + ld a, h + ld [$d452], a + ld a, $07 + ld [$d454], a + ld a, $06 + ld [$d455], a + ret + +Func_fda2c: + xor a + ld [H_AUTOBGTRANSFERENABLED], a + coord hl, 6, 5 + lb bc, 5, 5 + call TextBoxBorder + call Delay3 + call UpdateSprites + ld a, $01 + ld [H_AUTOBGTRANSFERENABLED], a + call Delay3 + ret + +Func_fda46: + ld a, [$d448] + cp $1d + jr c, .asm_fda4f + ld a, $00 +.asm_fda4f + ld e, a + ld d, $00 + ld hl, Data_fda5e + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + call Func_fe0d0 + ret + +Data_fda5e: + dw Data_fe28a + dw Data_fe28a + dw Data_fe2a4 + dw Data_fe2be + dw Data_fe2d8 + dw Data_fe2f2 + dw Data_fe30c + dw Data_fe326 + dw Data_fe340 + dw Data_fe35a + dw Data_fe374 + dw Data_fe390 + dw Data_fe3aa + dw Data_fe3c4 + dw Data_fe3de + dw Data_fe3f8 + dw Data_fe412 + dw Data_fe42c + dw Data_fe446 + dw Data_fe460 + dw Data_fe47a + dw Data_fe494 + dw Data_fe4b4 + dw Data_fe4ce + dw Data_fe4e8 + dw Data_fe502 + dw Data_fe520 + dw Data_fe53e + dw Data_fe558 + dw Data_fe28a + + +Func_fda9a: +.asm_fda9a + xor a + ld [H_AUTOBGTRANSFERENABLED], a + call Func_fe046 + call Func_fdad5 + call Func_fdad6 + call Func_fdad5 + ld a, $01 + ld [H_AUTOBGTRANSFERENABLED], a + call Func_fdab4 + and a + jr z, .asm_fda9a + ret + +Func_fdab4: + call Delay3 + call Func_fdac4 + and a + ret nz + call JoypadLowSensitivity + ld a, [hJoyPressed] + and A_BUTTON | B_BUTTON + ret + +Func_fdac4: + ld hl, $d451 + dec [hl] + jr nz, .asm_fdad0 + inc hl + ld a, [hl] + and a + jr z, .asm_fdad2 + dec [hl] +.asm_fdad0 + xor a + ret + +.asm_fdad2 + ld a, $01 + ret + +Func_fdad5: + ret + +Func_fdad6: + ld bc, wNPCMovementDirections2 + 1 + ld a, 4 +.asm_fdadb + push af + push bc + ld hl, 0 + add hl, bc + ld a, [hli] + and a + jr z, .asm_fdb26 + ld a, [hli] + ld [$d459], a + ld a, [hli] + ld [$d45a], a + ld a, [hli] + ld [$d45b], a + ld a, [hli] + ld [$d456], a + ld a, [hli] + ld [$d457], a + ld a, [hli] + ld [$d458], a + ld a, [hli] + ld [$d45c], a + push bc + call Func_fdb7e + pop bc + ld hl, 1 + add hl, bc + ld a, [$d459] + ld [hli], a + ld a, [$d45a] + ld [hli], a + ld a, [$d45b] + ld [hli], a + ld a, [$d456] + ld [hli], a + ld a, [$d457] + ld [hli], a + ld a, [$d458] + ld [hli], a + ld a, [$d45c] + ld [hl], a +.asm_fdb26 + pop bc + ld hl, 8 + add hl, bc + ld b, h + ld c, l + pop af + dec a + jr nz, .asm_fdadb + ret + +Func_fdb32: + ld hl, wNPCMovementDirections2 + 1 + ld de, 8 + ld c, 4 +.asm_fdb3a + ld a, [hl] + and a + jr z, .asm_fdb44 + add hl, de + dec c + jr nz, .asm_fdb3a + scf + ret + +.asm_fdb44 + ld a, [wNPCMovementDirections2] + inc a + ld [wNPCMovementDirections2], a + ld [hli], a + call Func_fe0c3 + ld [hli], a + call Func_fe0c3 + ld [hl], a + xor a + ld [hli], a + ld [hli], a + call Func_fe0c3 + ld [hli], a + call Func_fe0c3 + ld [hli], a + call Func_fe0c3 + ld [hli], a + and a + ret + +Func_fdb65 + call Func_fe0c3 + ld b, a + ld hl, wNPCMovementDirections2 + 1 + ld de, 8 + ld c, 4 +.asm_fdb71 + ld a, [hl] + cp b + jr z, .asm_fdb7b + add hl, de + dec c + jr nz, .asm_fdb71 + scf + ret + +.asm_fdb7b + xor a + ld [hl], a + ret + +Func_fdb7e: +.asm_fdb7e + ld a, [$d459] + cp $23 + jr c, .asm_fdb87 + ld a, $04 +.asm_fdb87 + ld e, a + ld d, $00 + ld hl, Pointers_fdbc9 + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [$d45a] + ld e, a + ld d, 0 + add hl, de + add hl, de + ld a, [hli] + cp $e0 + jr z, .asm_fdba1 + jr .asm_fdbaa + +.asm_fdba1 + xor a + ld [$d45a], a + ld [$d45b], a + jr .asm_fdb7e + +.asm_fdbaa + push hl + call Func_fdd62 + pop hl + ld a, [hl] + and a + jr z, .asm_fdbc8 + ld a, [$d45b] + inc a + ld [$d45b], a + cp [hl] + jr nz, .asm_fdbc8 + xor a + ld [$d45b], a + ld a, [$d45a] + inc a + ld [$d45a], a +.asm_fdbc8 + ret + +Pointers_fdbc9: + dw Data_fdc11 + dw Data_fdc11 + dw Data_fdc29 + dw Data_fdc32 + dw Data_fdc3b + dw Data_fdc3e + dw Data_fdc41 + dw Data_fdc50 + dw Data_fdc61 + dw Data_fdc6e + dw Data_fdc77 + dw Data_fdc84 + dw Data_fdc8d + dw Data_fdc98 + dw Data_fdca5 + dw Data_fdcb2 + dw Data_fdcb7 + dw Data_fdcc2 + dw Data_fdccb + dw Data_fdcd4 + dw Data_fdcdf + dw Data_fdce8 + dw Data_fdcf1 + dw Data_fdcf6 + dw Data_fdd01 + dw Data_fdd0a + dw Data_fdd13 + dw Data_fdd1c + dw Data_fdd27 + dw Data_fdd2c + dw Data_fdd35 + dw Data_fdd40 + dw Data_fdd47 + dw Data_fdd54 + dw Data_fdd59 + dw Data_fdc3b + +Data_fdc11: + db $01, $14 + db $07, $02 + db $01, $01 + db $07, $02 + db $01, $01 + db $07, $08 + db $e0 +Data_fdc1e: + db $02, $02 + db $01, $01 + db $02, $02 + db $01, $01 + db $02, $08 + db $e0 +Data_fdc29: + db $00, $08 + db $08, $08 + db $00, $08 + db $08, $08 + db $e0 +Data_fdc32: + db $08, $08 + db $00, $08 + db $08, $08 + db $00, $08 + db $e0 +Data_fdc3b: + db $01, $00 + db $e0 +Data_fdc3e: + db $09, $00 + db $e0 +Data_fdc41: + db $00, $02 + db $0e, $04 + db $00, $08 + db $0e, $04 + db $00, $40 + db $0e, $04 + db $00, $40 + db $e0 +Data_fdc50: + db $00, $04 + db $0f, $04 + db $00, $04 + db $0f, $04 + db $00, $08 + db $0f, $04 + db $00, $08 + db $0f, $04 + db $e0 +Data_fdc61: + db $10, $01 + db $00, $01 + db $10, $01 + db $00, $40 + db $10, $01 + db $00, $40 + db $e0 +Data_fdc6e: + db $00, $08 + db $11, $08 + db $00, $14 + db $11, $08 + db $e0 +Data_fdc77: + db $00, $02 + db $12, $02 + db $00, $02 + db $12, $40 + db $00, $03 + db $12, $40 + db $e0 +Data_fdc84: + db $00, $08 + db $13, $40 + db $00, $04 + db $13, $40 + db $e0 +Data_fdc8d: + db $14, $08 + db $00, $02 + db $14, $08 + db $00, $02 + db $14, $08 + db $e0 +Data_fdc98: + db $15, $04 + db $00, $08 + db $15, $04 + db $00, $40 + db $15, $04 + db $00, $40 + db $e0 +Data_fdca5: + db $00, $02 + db $16, $02 + db $00, $02 + db $16, $02 + db $00, $14 + db $16, $02 + db $e0 +Data_fdcb2: + db $00, $08 + db $17, $08 + db $e0 +Data_fdcb7: + db $00, $08 + db $17, $03 + db $18, $05 + db $17, $03 + db $00, $05 + db $e0 +Data_fdcc2: + db $00, $14 + db $19, $08 + db $00, $14 + db $19, $08 + db $e0 +Data_fdccb: + db $00, $0d + db $1a, $0c + db $00, $64 + db $1a, $08 + db $e0 +Data_fdcd4: + db $00, $05 + db $1b, $05 + db $00, $05 + db $1b, $05 + db $00, $64 + db $e0 +Data_fdcdf: + db $00, $02 + db $1c, $02 + db $00, $02 + db $1c, $02 + db $e0 +Data_fdce8: + db $00, $05 + db $1d, $05 + db $00, $05 + db $1d, $05 + db $e0 +Data_fdcf1: + db $1e, $08 + db $00, $64 + db $e0 +Data_fdcf6: + db $00, $0a + db $1f, $03 + db $00, $03 + db $1f, $03 + db $00, $64 + db $e0 +Data_fdd01: + db $00, $03 + db $20, $64 + db $00, $08 + db $20, $08 + db $e0 +Data_fdd0a: + db $21, $06 + db $00, $06 + db $21, $06 + db $00, $06 + db $e0 +Data_fdd13: + db $00, $08 + db $22, $0c + db $00, $08 + db $22, $0c + db $e0 +Data_fdd1c: + db $00, $08 + db $09, $02 + db $0a, $01 + db $0b, $01 + db $0c, $64 + db $e0 +Data_fdd27: + db $00, $08 + db $24, $64 + db $e0 +Data_fdd2c: + db $00, $10 + db $25, $10 + db $00, $10 + db $25, $10 + db $e0 +Data_fdd35: + db $00, $06 + db $26, $06 + db $00, $06 + db $26, $06 + db $00, $64 + db $e0 +Data_fdd40: + db $00, $06 + db $09, $06 + db $0a, $64 + db $e0 +Data_fdd47: + db $00, $14 + db $09, $08 + db $00, $14 + db $09, $08 + db $0a, $08 + db $0b, $64 + db $e0 +Data_fdd54: + db $00, $04 + db $09, $64 + db $e0 +Data_fdd59: + db $00, $0c + db $09, $0c + db $00, $0c + db $09, $64 + db $e0 + +Func_fdd62: + dr $fdd62, $fe046 +Func_fe046: + dr $fe046, $fe0c3 +Func_fe0c3: + dr $fe0c3, $fe0d0 +Func_fe0d0: + dr $fe0d0, $fe15c +Func_fe15c: + dr $fe15c, $fe28a + +Data_fe28a: + dr $fe28a, $fe2a4 +Data_fe2a4: + dr $fe2a4, $fe2be +Data_fe2be: + dr $fe2be, $fe2d8 +Data_fe2d8: + dr $fe2d8, $fe2f2 +Data_fe2f2: + dr $fe2f2, $fe30c +Data_fe30c: + dr $fe30c, $fe326 +Data_fe326: + dr $fe326, $fe340 +Data_fe340: + dr $fe340, $fe35a +Data_fe35a: + dr $fe35a, $fe374 +Data_fe374: + dr $fe374, $fe390 +Data_fe390: + dr $fe390, $fe3aa +Data_fe3aa: + dr $fe3aa, $fe3c4 +Data_fe3c4: + dr $fe3c4, $fe3de +Data_fe3de: + dr $fe3de, $fe3f8 +Data_fe3f8: + dr $fe3f8, $fe412 +Data_fe412: + dr $fe412, $fe42c +Data_fe42c: + dr $fe42c, $fe446 +Data_fe446: + dr $fe446, $fe460 +Data_fe460: + dr $fe460, $fe47a +Data_fe47a: + dr $fe47a, $fe494 +Data_fe494: + dr $fe494, $fe4b4 +Data_fe4b4: + dr $fe4b4, $fe4ce +Data_fe4ce: + dr $fe4ce, $fe4e8 +Data_fe4e8: + dr $fe4e8, $fe502 +Data_fe502: + dr $fe502, $fe520 +Data_fe520: + dr $fe520, $fe53e +Data_fe53e: + dr $fe53e, $fe558 +Data_fe558: + dr $fe558, $fe66f OfficerJennySprite: INCBIN "gfx/sprites/officer_jenny.2bpp" PikachuSprite: INCBIN "gfx/sprites/pikachu.2bpp" -- cgit v1.2.3 From d55106ed8111cd8c0bef86cf1e93993d91dfcbbc Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Wed, 25 May 2016 12:14:43 -0400 Subject: Yet another chunk of bank 3f --- engine/bank3f.asm | 513 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 507 insertions(+), 6 deletions(-) diff --git a/engine/bank3f.asm b/engine/bank3f.asm index fea08865..ca99b928 100644 --- a/engine/bank3f.asm +++ b/engine/bank3f.asm @@ -4004,15 +4004,513 @@ Data_fdd59: db $e0 Func_fdd62: - dr $fdd62, $fe046 + and a + ret z + ld e, a + ld d, 0 + ld hl, Pointers_fddb8 + add hl, de + add hl, de + ld e, [hl] + inc hl + ld d, [hl] + ld a, [de] + ld c, a + inc de + ld a, [de] + ld b, a + inc de + push de + push bc + call Func_fdd98 + pop bc + pop de +.asm_fdd7c + push bc + push hl + ld a, [$d456] + ld c, a +.asm_fdd82 + ld a, [de] + inc de + cp $ff + jr z, .asm_fdd8a + add c + ld [hl], a +.asm_fdd8a + inc hl + dec b + jr nz, .asm_fdd82 + pop hl + ld bc, SCREEN_WIDTH + add hl, bc + pop bc + dec c + jr nz, .asm_fdd7c + ret + +Func_fdd98: + push bc + ld a, [$d458] + ld b, a + ld a, [$d455] + add b + coord hl, 0, 0 + ld bc, SCREEN_WIDTH + call AddNTimes + ld a, [$d457] + ld c, a + ld a, [$d454] + add c + ld c, a + ld b, 0 + add hl, bc + pop bc + ret + +Pointers_fddb8: + dw Data_fde0e + dw Data_fde0f + dw Data_fde2a + dw Data_fde60 + dw Data_fde63 + dw Data_fde67 + dw Data_fde6b + dw Data_fde45 + dw Data_fde6b + dw Data_fdfaa + dw Data_fdfc5 + dw Data_fdfe0 + dw Data_fdffb + dw Data_fe016 + dw Data_fde81 + dw Data_fde9c + dw Data_fdeb7 + dw Data_fded2 + dw Data_fdeed + dw Data_fdf08 + dw Data_fdf23 + dw Data_fdf3e + dw Data_fdf59 + dw Data_fdf74 + dw Data_fdf8f + dw Data_fdfaa + dw Data_fdfaa + dw Data_fdfaa + dw Data_fdfaa + dw Data_fdfaa + dw Data_fdfaa + dw Data_fdfaa + dw Data_fdfaa + dw Data_fdfaa + dw Data_fdfaa + dw Data_fdfaa + dw Data_fdfaa + dw Data_fdfaa + dw Data_fdfaa + dw Data_fdfaa + dw Data_fdfc5 + dw Data_fdfe0 + dw Data_fde0f + +Data_fde0e: + db $ff ; unused + +Data_fde0f: ; fde0f + db 5, 5 + db $00, $05, $0a, $0f, $14 + db $01, $06, $0b, $10, $15 + db $02, $07, $0c, $11, $16 + db $03, $08, $0d, $12, $17 + db $04, $09, $0e, $13, $18 + +Data_fde2a: ; fde2a + db 5, 5 + db $19, $1e, $23, $28, $2d + db $1a, $1f, $24, $29, $2e + db $1b, $20, $25, $2a, $2f + db $1c, $21, $26, $2b, $30 + db $1d, $22, $27, $2c, $31 + +Data_fde45: ; fde45 + db 5, 5 + db $ff, $ff, $ff, $ff, $ff + db $ff, $ff, $ff, $ff, $ff + db $ff, $20, $25, $ff, $ff + db $ff, $21, $26, $ff, $ff + db $ff, $ff, $ff, $ff, $ff + +Data_fde60: ; fde60 + db 1, 1 + db $00 + +Data_fde63: ; fde63 + db 2, 1 + db $00 + db $01 + +Data_fde67: ; fde67 + db 1, 2 + db $00, $01 + +Data_fde6b: ; fde6b + db 2, 2 + db $00, $01 + db $02, $03 + +Data_fde71: ; fde71 + db 3, 2 + db $00, $01 + db $02, $03 + db $04, $05 + +Data_fde79: ; fde79 + db 2, 3 + db $00, $01, $02 + db $03, $04, $05 + +Data_fde81: ; fde81 + db 5, 5 + db $ff, $ff, $ff, $ff, $ff + db $ff, $ff, $ff, $ff, $ff + db $00, $01, $02, $03, $04 + db $ff, $ff, $ff, $ff, $ff + db $ff, $ff, $ff, $ff, $ff + +Data_fde9c: ; fde9c + db 5, 5 + db $ff, $ff, $ff, $ff, $ff + db $ff, $ff, $ff, $ff, $ff + db $ff, $ff, $ff, $ff, $ff + db $00, $01, $02, $03, $04 + db $05, $06, $07, $08, $09 + +Data_fdeb7: ; fdeb7 + db 5, 5 + db $00, $01, $ff, $ff, $ff + db $02, $03, $ff, $ff, $ff + db $04, $05, $ff, $ff, $ff + db $ff, $ff, $ff, $ff, $ff + db $ff, $ff, $ff, $ff, $ff + +Data_fded2: ; fded2 + db 5, 5 + db $ff, $ff, $ff, $ff, $ff + db $00, $01, $02, $03, $04 + db $05, $06, $07, $08, $09 + db $0a, $0b, $0c, $0d, $0e + db $0f, $10, $11, $12, $13 + +Data_fdeed: ; fdeed + db 5, 5 + db $ff, $ff, $ff, $ff, $ff + db $ff, $ff, $ff, $00, $01 + db $ff, $ff, $ff, $02, $03 + db $ff, $ff, $ff, $ff, $ff + db $ff, $ff, $ff, $ff, $ff + +Data_fdf08: ; fdf08 + db 5, 5 + db $ff, $ff, $ff, $ff, $ff + db $ff, $ff, $ff, $ff, $ff + db $00, $01, $ff, $ff, $ff + db $02, $03, $ff, $ff, $ff + db $ff, $ff, $ff, $ff, $ff + +Data_fdf23: ; fdf23 + db 5, 5 + db $00, $01, $02, $03, $04 + db $05, $06, $07, $08, $09 + db $0a, $0b, $0c, $0d, $0e + db $0f, $10, $11, $12, $13 + db $14, $15, $16, $17, $18 + +Data_fdf3e: ; fdf3e + db 5, 5 + db $ff, $ff, $ff, $ff, $ff + db $ff, $ff, $ff, $ff, $ff + db $00, $01, $02, $03, $04 + db $05, $06, $07, $08, $09 + db $ff, $ff, $ff, $ff, $ff + +Data_fdf59: ; fdf59 + db 5, 5 + db $ff, $ff, $ff, $ff, $ff + db $ff, $ff, $ff, $ff, $ff + db $00, $01, $ff, $ff, $ff + db $02, $03, $ff, $ff, $ff + db $04, $05, $ff, $ff, $ff + +Data_fdf74: ; fdf74 + db 5, 5 + db $00, $01, $02, $03, $04 + db $05, $06, $07, $08, $09 + db $0a, $0b, $0c, $0d, $0e + db $0f, $10, $11, $12, $13 + db $14, $15, $16, $17, $18 + +Data_fdf8f: ; fdf8f + db 5, 5 + db $19, $1a, $1b, $1c, $1d + db $1e, $1f, $20, $21, $22 + db $23, $24, $25, $26, $27 + db $28, $29, $2a, $2b, $2c + db $2d, $2e, $2f, $30, $31 + +Data_fdfaa: ; fdfaa + db 5, 5 + db $00, $01, $02, $03, $04 + db $05, $06, $07, $08, $09 + db $0a, $0b, $0c, $0d, $0e + db $0f, $10, $11, $12, $13 + db $14, $15, $16, $17, $18 + +Data_fdfc5: ; fdfc5 + db 5, 5 + db $19, $1a, $1b, $1c, $1d + db $1e, $1f, $20, $21, $22 + db $23, $24, $25, $26, $27 + db $28, $29, $2a, $2b, $2c + db $2d, $2e, $2f, $30, $31 + +Data_fdfe0: ; fdfe0 + db 5, 5 + db $32, $33, $34, $35, $36 + db $37, $38, $39, $3a, $3b + db $3c, $3d, $3e, $3f, $40 + db $41, $42, $43, $44, $45 + db $46, $47, $48, $49, $4a + +Data_fdffb: ; fdffb + db 5, 5 + db $4b, $4c, $4d, $4e, $4f + db $50, $51, $52, $53, $54 + db $55, $56, $57, $58, $59 + db $5a, $5b, $5c, $5d, $5e + db $5f, $60, $61, $62, $63 + +Data_fe016: ; fe016 + db 5, 5 + db $64, $65, $66, $67, $68 + db $69, $6a, $6b, $6c, $6d + db $6e, $6f, $70, $71, $72 + db $73, $74, $75, $76, $77 + db $78, $79, $7a, $7b, $7c + +Func_fe031: + push hl + ld e, a + ld d, 0 + ld hl, Data_fe572 + add hl, de + add hl, de + add hl, de + add hl, de + ld a, [hli] + ld c, a + ld a, [hli] + ld b, a + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + pop hl + ret + Func_fe046: - dr $fe046, $fe0c3 + call Func_fe066 + ret c + xor a + ld [$d44f], a +.asm_fe04e + call Func_fe0c3 + ld e, a + ld d, 0 + ld hl, Jumptable_fe071 + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + call JumpToAddress + ld a, [$d44f] + and a + jr z, .asm_fe04e + ret + +Func_fe066: + ld a, [$d453] + and a + ret z + dec a + ld [$d453], a + scf + ret + +Jumptable_fe071: + dw Func_fe08f + dw Func_fe0af + dw Func_fe0db + dw Func_fdb32 + dw Func_fe0b6 + dw Func_fe0b6 + dw Func_fdb65 + dw Func_fe0b6 + dw Func_fe0b6 + dw Func_fe0b7 + dw Func_fe09c + dw Func_fe1c7 + dw Func_fe1d7 + dw Func_fe0a9 + dw Func_fe090 + +Func_fe08f: + ret + +Func_fe090: + ld a, 1 + ld [$d451], a + xor a + ld [$d452], a + jr Func_fe0a9 + +Func_fe09b: + ret + +Func_fe09c: + call Func_fe0c3 + ld [$d451], a + call Func_fe0c3 + ld [$d452], a + ret + +Func_fe0a9: + ld a, $ff + ld [$d44f], a + ret + +Func_fe0af: + call Func_fe0c3 + ld [$d453], a + ret + +Func_fe0b6: + ret + +Func_fe0b7: + call Func_fe0c3 + ld l, a + call Func_fe0c3 + ld h, a + call Func_fe0d0 + ret + Func_fe0c3: - dr $fe0c3, $fe0d0 + push hl + ld hl, $d44d + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [hli] + call Func_fe0d0 + pop hl + ret + Func_fe0d0: - dr $fe0d0, $fe15c + push af + ld a, l + ld [$d44d], a + ld a, h + ld [$d44e], a + pop af + ret + +Func_fe0db: + ld a, [wUpdateSpritesEnabled] + push af + ld a, $ff + ld [wUpdateSpritesEnabled], a + ld a, [H_AUTOBGTRANSFERENABLED] + push af + xor a + ld [H_AUTOBGTRANSFERENABLED], a + ld a, [hTilesetType] + push af + xor a + ld [hTilesetType], a + call Func_fe0c3 + ld [$d450], a + ld a, [$d450] + call Func_fe031 + ld a, c + cp a, $ff + jr z, .asm_fe106 + call Func_fe114 + jr .asm_fe109 + +.asm_fe106 + call Func_fe128 +.asm_fe109 + pop af + ld [hTilesetType], a + pop af + ld [H_AUTOBGTRANSFERENABLED], a + pop af + ld [wUpdateSpritesEnabled], a + ret + +Func_fe114: ; fe114 + push de + ld a, [$d450] + ld d, a + ld e, c + call Func_fe17a + pop de + jr c, .asm_fe127 + call Func_fe167 + call CopyVideoDataAlternate + and a +.asm_fe127 + ret + +Func_fe128: ; fe128 + push de + ld a, [$d450] + ld d, a + ld e, $19 + call Func_fe17a + pop de + jr c, .asm_fe15b + ld a, b + call UncompressSpriteFromDE + ld a, $00 + call SwitchSRAMBankAndLatchClockData + ld hl, S_SPRITEBUFFER1 + ld de, S_SPRITEBUFFER0 + ld bc, SPRITEBUFFERSIZE * 2 + call CopyData + call PrepareRTCDataAndDisableSRAM + ld a, [$d450] + call Func_fe1af + call Func_fe167 + ld d, h + ld e, l + call InterlaceMergeSpriteBuffers +.asm_fe15b + ret + Func_fe15c: - dr $fe15c, $fe28a + dr $fe15c, $fe167 +Func_fe167: + dr $fe167, $fe17a +Func_fe17a: + dr $fe17a, $fe1af +Func_fe1af: + dr $fe1af, $fe1c7 +Func_fe1c7: + dr $fe1c7, $fe1d7 +Func_fe1d7: + dr $fe1d7, $fe28a Data_fe28a: dr $fe28a, $fe2a4 @@ -4069,7 +4567,10 @@ Data_fe520: Data_fe53e: dr $fe53e, $fe558 Data_fe558: - dr $fe558, $fe66f + dr $fe558, $fe572 + +Data_fe572: + dr $fe572, $fe66f OfficerJennySprite: INCBIN "gfx/sprites/officer_jenny.2bpp" PikachuSprite: INCBIN "gfx/sprites/pikachu.2bpp" -- cgit v1.2.3 From d2f8f96e19e6f680f666c03dc1455e9bd5158edf Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Wed, 25 May 2016 13:09:59 -0400 Subject: Yet another chunk of asm --- engine/bank3f.asm | 227 ++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 220 insertions(+), 7 deletions(-) diff --git a/engine/bank3f.asm b/engine/bank3f.asm index ca99b928..eefffd97 100644 --- a/engine/bank3f.asm +++ b/engine/bank3f.asm @@ -2889,7 +2889,44 @@ asm_fd5fa ret Func_fd601: - dr $fd601, $fd65c + push de + ld d, 0 + ld hl, Jumptable_fd60f + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + pop de + ld a, d + jp [hl] + +Jumptable_fd60f: + dw Func_fd61f + dw Func_fd624 + dw Func_fd62b + dw Func_fd632 + dw Func_fd637 + dw Func_fd63d + dw Func_fd641 + dw Func_fd647 + +Func_fd61f: + dr $fd61f, $fd624 +Func_fd624: + dr $fd624, $fd62b +Func_fd62b: + dr $fd62b, $fd632 +Func_fd632: + dr $fd632, $fd637 +Func_fd637: + dr $fd637, $fd63d +Func_fd63d: + dr $fd63d, $fd641 +Func_fd641: + dr $fd641, $fd647 +Func_fd647: + dr $fd647, $fd65c Jumptable_fd65c: dw Func_fd678 @@ -4500,17 +4537,193 @@ Func_fe128: ; fe128 ret Func_fe15c: - dr $fe15c, $fe167 + ld hl, wNPCMovementDirections + ld bc, $11 + xor a + call FillMemory + ret + Func_fe167: - dr $fe167, $fe17a + ld hl, vNPCSprites + push bc + ld b, a + and $f + swap a + ld c, a + ld a, b + and $f0 + swap a + ld b, a + add hl, bc + pop bc + ret + Func_fe17a: - dr $fe17a, $fe1af + push bc + push hl + ld hl, wNPCMovementDirections + 1 + ld c, 8 +.asm_fe181 + ld a, [hl] + and a + jr z, .asm_fe192 + cp d + jr z, .asm_fe18f + inc hl + inc hl + dec c + jr nz, .asm_fe181 + scf + ret + +.asm_fe18f + inc hl + ld a, [hl] + ret + +.asm_fe192 + ld [hl], d + inc hl + ld a, [wNPCMovementDirections] + add $80 + ld [hl], a + ld a, [wNPCMovementDirections] + add e + ld [wNPCMovementDirections], a + cp $80 + jr z, .asm_fe1a7 + jr nc, .asm_fe1ab +.asm_fe1a7 + ld a, [hl] + and a + jr .asm_fe1ac + +.asm_fe1ab + scf +.asm_fe1ac + pop hl + pop bc + ret + Func_fe1af: - dr $fe1af, $fe1c7 + push bc + push hl + ld b, a + ld hl, wNPCMovementDirections + 1 + ld c, 8 +.asm_fe1b7 + ld a, [hli] + cp b + jr z, .asm_fe1c2 + inc hl + dec c + jr nz, .asm_fe1b7 + scf + jr .asm_fe1c4 + +.asm_fe1c2 + ld a, [hl] + and a +.asm_fe1c4 + pop hl + pop bc + ret + Func_fe1c7: - dr $fe1c7, $fe1d7 + call Func_fe0c3 + cp $ff + ret z + ld e, a + callab PlayPikachuSoundClip + ret + Func_fe1d7: - dr $fe1d7, $fe28a + ld a, $1 + ld [wMuteAudioAndPauseMusic], a + call DelayFrame + ld a, [wAudioROMBank] + push af + ld a, BANK(SFX_Battle_2F) + ld [wAudioROMBank], a + ld [wAudioSavedROMBank], a + call Func_fe203 + call PlaySound + call Func_fe227 + call WaitForSoundToFinish + pop af + ld [wAudioROMBank], a + ld [wAudioSavedROMBank], a + xor a + ld [wMuteAudioAndPauseMusic], a + ret + +Func_fe203: + ld hl, MoveSoundTable + ld e, THUNDERBOLT + ld d, 0 + add hl, de + add hl, de + add hl, de + ld a, BANK(MoveSoundTable) + call GetFarByte + ld b, a + inc hl + ld a, BANK(MoveSoundTable) + call GetFarByte + inc hl + ld [wFrequencyModifier], a + ld a, BANK(MoveSoundTable) + call GetFarByte + ld [wTempoModifier], a + ld a, b + ret + +Func_fe227: + ld hl, Data_fe242 +.asm_fe22a + ld a, [hli] + cp $ff + ret z + ld c, a + ld b, [hl] + inc hl + push hl + call Func_fe238 + pop hl + jr .asm_fe22a + +Func_fe238: + ld a, b + ld [rBGP], a + call UpdateGBCPal_BGP + call DelayFrames + ret + +Data_fe242: + db 4, %11000000 + db 4, %11100100 + db 4, %11000000 + db 4, %11100100 + db 4, %11000000 + db 4, %11100100 + db 4, %11000000 + db 4, %11100100 + db 4, %11000000 + db 4, %11100100 + db 4, %11000000 + db 4, %11100100 + db 4, %11000000 + db 4, %11100100 + db 4, %11000000 + db 4, %11100100 + db 4, %11000000 + db 4, %11100100 + db 4, %11000000 + db 4, %11100100 + db $ff + +Data_fe26b: + dr $fe26b, $fe28a Data_fe28a: dr $fe28a, $fe2a4 -- cgit v1.2.3 From 91dd4212c8d19c29a4a1929bc8819a856f787052 Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Wed, 25 May 2016 13:14:26 -0400 Subject: Last chunk of asm in bank 3f; remaining drs are data --- engine/bank3f.asm | 58 +++++++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 50 insertions(+), 8 deletions(-) diff --git a/engine/bank3f.asm b/engine/bank3f.asm index eefffd97..72a8ed26 100644 --- a/engine/bank3f.asm +++ b/engine/bank3f.asm @@ -2912,21 +2912,63 @@ Jumptable_fd60f: dw Func_fd647 Func_fd61f: - dr $fd61f, $fd624 + ld d, 0 + ld e, a + jr Func_fd64d + Func_fd624: - dr $fd624, $fd62b + ld d, 0 + cpl + inc a + ld e, a + jr Func_fd64d + Func_fd62b: - dr $fd62b, $fd632 + cpl + inc a + ld d, a + ld e, 0 + jr Func_fd64d + Func_fd632: - dr $fd632, $fd637 + ld d, a + ld e, 0 + jr Func_fd64d + Func_fd637: - dr $fd637, $fd63d + ld e, a + cpl + inc a + ld d, a + jr Func_fd64d + Func_fd63d: - dr $fd63d, $fd641 + ld e, a + ld d, a + jr Func_fd64d + Func_fd641: - dr $fd641, $fd647 + cpl + inc a + ld e, a + ld d, a + jr Func_fd64d + Func_fd647: - dr $fd647, $fd65c + ld d, a + cpl + inc a + ld e, a + jr Func_fd64d + +Func_fd64d: + ld a, [$d453] + add d + ld [$d453], a + ld a, [$d454] + add e + ld [$d454], a + ret Jumptable_fd65c: dw Func_fd678 -- cgit v1.2.3 From 10c5a34994150fe034653c7a4ad258079180bcc7 Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Wed, 25 May 2016 16:39:00 -0400 Subject: Make some sense out of the pic animations --- engine/bank3c.asm | 86 +- engine/bank3f.asm | 2976 +------------------------------------- engine/pikachu_pic_animation.asm | 2898 +++++++++++++++++++++++++++++++++++++ macros.asm | 118 ++ wram.asm | 19 +- 5 files changed, 3107 insertions(+), 2990 deletions(-) create mode 100755 engine/pikachu_pic_animation.asm diff --git a/engine/bank3c.asm b/engine/bank3c.asm index fe2d192f..1ebbd65b 100644 --- a/engine/bank3c.asm +++ b/engine/bank3c.asm @@ -90,67 +90,67 @@ PikachuCriesPointerTable: ; f008e (3c:408e) ; dw pointer to cry ; bank 21 - dbw BANK(PikachuCry1), PikachuCry1 ; 21:4000 - dbw BANK(PikachuCry2), PikachuCry2 ; 21:491a - dbw BANK(PikachuCry3), PikachuCry3 ; 21:4fdc - dbw BANK(PikachuCry4), PikachuCry4 ; 21:59ee + pikacry_def PikachuCry1 ; 21:4000 + pikacry_def PikachuCry2 ; 21:491a + pikacry_def PikachuCry3 ; 21:4fdc + pikacry_def PikachuCry4 ; 21:59ee ; bank 22 - dbw BANK(PikachuCry5), PikachuCry5 ; 22:4000 - dbw BANK(PikachuCry6), PikachuCry6 ; 22:5042 - dbw BANK(PikachuCry7), PikachuCry7 ; 22:6254 + pikacry_def PikachuCry5 ; 22:4000 + pikacry_def PikachuCry6 ; 22:5042 + pikacry_def PikachuCry7 ; 22:6254 ; bank 23 - dbw BANK(PikachuCry8), PikachuCry8 ; 23:4000 - dbw BANK(PikachuCry9), PikachuCry9 ; 23:50ca - dbw BANK(PikachuCry10), PikachuCry10 ; 23:5e0c + pikacry_def PikachuCry8 ; 23:4000 + pikacry_def PikachuCry9 ; 23:50ca + pikacry_def PikachuCry10 ; 23:5e0c ; bank 24 - dbw BANK(PikachuCry11), PikachuCry11 ; 24:4000 - dbw BANK(PikachuCry12), PikachuCry12 ; 24:4722 - dbw BANK(PikachuCry13), PikachuCry13 ; 24:54a4 + pikacry_def PikachuCry11 ; 24:4000 + pikacry_def PikachuCry12 ; 24:4722 + pikacry_def PikachuCry13 ; 24:54a4 ; bank 25 - dbw BANK(PikachuCry14), PikachuCry14 ; 25:4000 - dbw BANK(PikachuCry15), PikachuCry15 ; 25:589a + pikacry_def PikachuCry14 ; 25:4000 + pikacry_def PikachuCry15 ; 25:589a ; banks 31-34, in no particular order - dbw BANK(PikachuCry16), PikachuCry16 ; 31:4000 - dbw BANK(PikachuCry17), PikachuCry17 ; 34:4000 - dbw BANK(PikachuCry18), PikachuCry18 ; 31:549a - dbw BANK(PikachuCry19), PikachuCry19 ; 33:4000 - dbw BANK(PikachuCry20), PikachuCry20 ; 32:4000 - dbw BANK(PikachuCry21), PikachuCry21 ; 32:6002 - dbw BANK(PikachuCry22), PikachuCry22 ; 31:63a4 - dbw BANK(PikachuCry23), PikachuCry23 ; 34:4862 - dbw BANK(PikachuCry24), PikachuCry24 ; 33:5632 - dbw BANK(PikachuCry25), PikachuCry25 ; 34:573c - dbw BANK(PikachuCry26), PikachuCry26 ; 33:725c + pikacry_def PikachuCry16 ; 31:4000 + pikacry_def PikachuCry17 ; 34:4000 + pikacry_def PikachuCry18 ; 31:549a + pikacry_def PikachuCry19 ; 33:4000 + pikacry_def PikachuCry20 ; 32:4000 + pikacry_def PikachuCry21 ; 32:6002 + pikacry_def PikachuCry22 ; 31:63a4 + pikacry_def PikachuCry23 ; 34:4862 + pikacry_def PikachuCry24 ; 33:5632 + pikacry_def PikachuCry25 ; 34:573c + pikacry_def PikachuCry26 ; 33:725c ; bank 35 - dbw BANK(PikachuCry27), PikachuCry27 ; 35:4000 - dbw BANK(PikachuCry28), PikachuCry28 ; 35:4b5a - dbw BANK(PikachuCry29), PikachuCry29 ; 35:5da4 - dbw BANK(PikachuCry30), PikachuCry30 ; 35:69ce - dbw BANK(PikachuCry31), PikachuCry31 ; 35:6e80 + pikacry_def PikachuCry27 ; 35:4000 + pikacry_def PikachuCry28 ; 35:4b5a + pikacry_def PikachuCry29 ; 35:5da4 + pikacry_def PikachuCry30 ; 35:69ce + pikacry_def PikachuCry31 ; 35:6e80 ; bank 36 - dbw BANK(PikachuCry32), PikachuCry32 ; 36:4000 - dbw BANK(PikachuCry33), PikachuCry33 ; 36:458a - dbw BANK(PikachuCry34), PikachuCry34 ; 36:523c + pikacry_def PikachuCry32 ; 36:4000 + pikacry_def PikachuCry33 ; 36:458a + pikacry_def PikachuCry34 ; 36:523c ; bank 37 - dbw BANK(PikachuCry35), PikachuCry35 ; 37:4000 - dbw BANK(PikachuCry36), PikachuCry36 ; 37:522a + pikacry_def PikachuCry35 ; 37:4000 + pikacry_def PikachuCry36 ; 37:522a ; banks 36-38 - dbw BANK(PikachuCry37), PikachuCry37 ; 38:4000 - dbw BANK(PikachuCry38), PikachuCry38 ; 38:4dfa - dbw BANK(PikachuCry39), PikachuCry39 ; 37:6e0c - dbw BANK(PikachuCry40), PikachuCry40 ; 38:5a64 - dbw BANK(PikachuCry41), PikachuCry41 ; 36:6746 - dbw BANK(PikachuCry42), PikachuCry42 ; 38:6976 + pikacry_def PikachuCry37 ; 38:4000 + pikacry_def PikachuCry38 ; 38:4dfa + pikacry_def PikachuCry39 ; 37:6e0c + pikacry_def PikachuCry40 ; 38:5a64 + pikacry_def PikachuCry41 ; 36:6746 + pikacry_def PikachuCry42 ; 38:6976 INCLUDE "engine/overworld/advance_player_sprite.asm" @@ -312,7 +312,7 @@ Func_f0a82: ; f0a82 push af ld a, $ff ld [wUpdateSpritesEnabled], a - callab Func_fd831 + callab LoadPikachuShadowIntoVRAM pop af ld [wUpdateSpritesEnabled], a pop hl diff --git a/engine/bank3f.asm b/engine/bank3f.asm index 72a8ed26..fda65680 100644 --- a/engine/bank3f.asm +++ b/engine/bank3f.asm @@ -1764,7 +1764,7 @@ DoStarterPikachuEmotions: ; fcf35 (3f:4f35) jr z, .done ld c, a ld b, $0 - ld hl, Jumptable_fcf54 + ld hl, StarterPikachuEmotionsJumptable add hl, bc add hl, bc ld a, [hli] @@ -1775,23 +1775,24 @@ DoStarterPikachuEmotions: ; fcf35 (3f:4f35) .done ret -Jumptable_fcf54: ; fcf54 (3f:4f54) - dw Func_fcf6a - dw Func_fcf6b - dw Func_fcf77 - dw Func_fcf8d - dw Func_fcfb0 - dw Func_fd9d0 - dw Func_fcfc7 - dw Func_fcfbe - dw Func_fcfe8 - dw Func_fcfe9 - dw Func_fcf6a +StarterPikachuEmotionsJumptable: ; fcf54 (3f:4f54) + dw StarterPikachuEmotionCommand_nop ; 0 + dw StarterPikachuEmotionCommand_text ; 1 + dw StarterPikachuEmotionCommand_pcm ; 2 + dw StarterPikachuEmotionCommand_emote ; 3 + dw StarterPikachuEmotionCommand_4 ; 4 + dw StarterPikachuEmotionCommand_5 ; 5 + dw StarterPikachuEmotionCommand_subcmd ; 6 + dw StarterPikachuEmotionCommand_delay ; 7 + dw StarterPikachuEmotionCommand_nop2 ; 8 + dw StarterPikachuEmotionCommand_9 ; 9 + dw StarterPikachuEmotionCommand_nop3 ; a -Func_fcf6a: ; fcf6a (3f:4f6a) +StarterPikachuEmotionCommand_nop: ; fcf6a (3f:4f6a) +StarterPikachuEmotionCommand_nop3: ; fcf6a (3f:4f6a) ret -Func_fcf6b: ; fcf6b (3f:4f6b) +StarterPikachuEmotionCommand_text: ; fcf6b (3f:4f6b) ld a, [de] ld l, a inc de @@ -1803,23 +1804,23 @@ Func_fcf6b: ; fcf6b (3f:4f6b) pop de ret -Func_fcf77: ; fcf77 (3f:4f77) +StarterPikachuEmotionCommand_pcm: ; fcf77 (3f:4f77) ld a, [de] inc de push de ld e, a nop - call Func_fcf81 + call PlayPikachuSoundClip_ pop de ret -Func_fcf81: ; fcf81 (3f:4f81) +PlayPikachuSoundClip_: ; fcf81 (3f:4f81) cp $ff ret z callab PlayPikachuSoundClip ret -Func_fcf8d: ; fcf8d (3f:4f8d) +StarterPikachuEmotionCommand_emote: ; fcf8d (3f:4f8d) ld a, [wUpdateSpritesEnabled] push af ld a, $ff @@ -1827,20 +1828,20 @@ Func_fcf8d: ; fcf8d (3f:4f8d) ld a, [de] inc de push de - call Func_fcfa2 + call ShowPikachuEmoteBubble pop de pop af ld [wUpdateSpritesEnabled], a ret -Func_fcfa2: ; fcfa2 (3f:4fa2) +ShowPikachuEmoteBubble: ; fcfa2 (3f:4fa2) ld [wWhichEmotionBubble], a ld a, $f ld [wEmotionBubbleSpriteIndex], a predef EmotionBubble ret -Func_fcfb0: ; fcfb0 (3f:4fb0) +StarterPikachuEmotionCommand_4: ; fcfb0 (3f:4fb0) ld a, [de] inc de ld l, a @@ -1853,7 +1854,7 @@ Func_fcfb0: ; fcfb0 (3f:4fb0) pop de ret -Func_fcfbe: ; fcfbe (3f:4fbe) +StarterPikachuEmotionCommand_delay: ; fcfbe (3f:4fbe) ld a, [de] inc de push de @@ -1862,7 +1863,7 @@ Func_fcfbe: ; fcfbe (3f:4fbe) pop de ret -Func_fcfc7: ; fcfc7 (3f:4fc7) +StarterPikachuEmotionCommand_subcmd: ; fcfc7 (3f:4fc7) ld a, [de] inc de push de @@ -1879,18 +1880,18 @@ Func_fcfc7: ; fcfc7 (3f:4fc7) ret Jumptable_fcfda: - dw Func_fd8ab + dw LoadPikachuSpriteIntoVRAM dw LoadFontTilePatterns - dw Func_fd8f8 + dw Pikachu_LoadCurrentMapViewUpdateSpritesAndDelay3 dw WaitForTextScrollButtonPress - dw Func_fd8d4 - dw Func_fd8e1 - dw Func_fd8ee + dw PikachuPewterPokecenterCheck + dw PikachuFanClubCheck + dw PikachuBillsHouseCheck -Func_fcfe8: ; fcfe8 (3f:4fe8) +StarterPikachuEmotionCommand_nop2: ; fcfe8 (3f:4fe8) ret -Func_fcfe9: ; fcfe9 (3f:4fe9) +StarterPikachuEmotionCommand_9: ; fcfe9 (3f:4fe9) push de call Func_fcff2 call UpdateSprites @@ -1914,2918 +1915,7 @@ Func_fd001:: ; fd001 (3f:5001) ld a, e jr asm_fd00f -Func_fd004:: ; fd004 (3f:5004) - call Func_fd05e - jr c, asm_fd00f - call Func_fd978 - call Func_fcffb -asm_fd00f: ; fd00f (3f:500f) - ld [wExpressionNumber], a - ld hl, PikachuEmotionTable - call DoStarterPikachuEmotions - ret - -PikachuEmotionTable: ; fd019 (3f:4019) - dw PikachuEmotion0_fd115 - dw PikachuEmotion1_fd141 - dw PikachuEmotion2_fd116 - dw PikachuEmotion3_fd160 - dw PikachuEmotion4_fd136 - dw PikachuEmotion5_fd14d - dw PikachuEmotion6_fd153 - dw PikachuEmotion7_fd128 - dw PikachuEmotion8_fd147 - dw PikachuEmotion9_fd166 - dw PikachuEmotion10_fd11e - dw PikachuEmotion11_fd173 - dw PikachuEmotion12_fd17a - dw PikachuEmotion13_fd180 - dw PikachuEmotion14_fd189 - dw PikachuEmotion15_fd191 - dw PikachuEmotion16_fd197 - dw PikachuEmotion17_fd19d - dw PikachuEmotion18_fd1a3 - dw PikachuEmotion19_fd1a9 - dw PikachuEmotion20_fd1b1 - dw PikachuEmotion21_fd1b9 - dw PikachuEmotion22_fd1c1 - dw PikachuEmotion23_fd1c7 - dw PikachuEmotion24_fd1cf - dw PikachuEmotion25_fd1d7 - dw PikachuEmotion26_fd1df - dw PikachuEmotion27_fd1eb - dw PikachuEmotion28_fd1f1 - dw PikachuEmotion29_fd1f7 - dw PikachuEmotion30_fd1fc - dw PikachuEmotion31_fd20a - dw PikachuEmotion32_fd213 - dw PikachuEmotion33_fd05d - -PikachuEmotion33_fd05d: ; fd05d (3f:505d) - db $ff - -Func_fd05e: ; fd05e (3f:505e) - ld a, [wCurMap] - cp POKEMON_FAN_CLUB - jr nz, .notFanClub - ld hl, wPreventBlackout - bit 7, [hl] - ld a, $1d - jr z, .asm_fd0c9 - call Func_154a - ld a, $1e - jr nz, .asm_fd0c9 - jr .asm_fd096 -.notFanClub - ld a, [wCurMap] - cp PEWTER_POKECENTER - jr nz, .notPewterPokecenter - call Func_154a - ld a, $1a - jr nz, .asm_fd0c9 - jr .asm_fd096 -.notPewterPokecenter - callab Func_f24ae - ld a, e - cp $ff - jr nz, .asm_fd0c9 - jr .asm_fd096 -.asm_fd096 - call IsPlayerPikachuAsleepInParty - ld a, $b - jr c, .asm_fd0c9 - callab Func_fce73 ; same bank - ld a, $1c - jr c, .asm_fd0c9 - ld a, [wCurMap] - cp POKEMONTOWER_1 - jr c, .notInLavenderTower - cp POKEMONTOWER_7 + 1 - ld a, $16 - jr c, .asm_fd0c9 -.notInLavenderTower - ld a, [wd49c] - and a - jr z, .asm_fd0c7 - dec a - ld c, a - ld b, $0 - ld hl, Pointer_fd0cb - add hl, bc - ld a, [hl] - jr .asm_fd0c9 -.asm_fd0c7 - and a - ret -.asm_fd0c9 - scf - ret - -Pointer_fd0cb: - db $12, $15, $17, $18, $19 - -IsPlayerPikachuAsleepInParty:: ; fd0d0 (3f:50d0) - xor a - ld [wWhichPokemon], a -.loop - ld a, [wWhichPokemon] - ld c, a - ld b, $0 - ld hl, wPartySpecies - add hl, bc - ld a, [hl] - cp $ff - jr z, .done - cp PIKACHU - jr nz, .curMonNotStarterPikachu - callab IsThisPartymonStarterPikachu - jr nc, .curMonNotStarterPikachu - ld a, [wWhichPokemon] - ld hl, wPartyMon1Status - ld bc, wPartyMon2 - wPartyMon1 - call AddNTimes - ld a, [hl] - and SLP - jr z, .done - jr .curMonSleepingPikachu -.curMonNotStarterPikachu - ld a, [wWhichPokemon] - cp PARTY_LENGTH - 1 - jr z, .done - inc a - ld [wWhichPokemon], a - jr .loop -.curMonSleepingPikachu - scf - ret -.done - and a - ret - -PikachuEmotion0_fd115: ; fd115 (3f:5115) - db $ff - -PikachuEmotion2_fd116: ; fd116 (3f:5116) - pikaemotion_dummy2 - pikaemotion_emotebubble SMILE_BUBBLE - pikaemotion_pcm $22 - pikaemotion_5 $2 - db $ff - -PikachuEmotion10_fd11e: ; fd11e (3f:511e) - pikaemotion_dummy2 - pikaemotion_subcmd PIKAEMOTION_SUBCMD_LOADEXTRAPIKASPRITES - pikaemotion_emotebubble HEART_BUBBLE - pikaemotion_pcm $4 - pikaemotion_5 $a - db $ff - -PikachuEmotion7_fd128: ; fd128 (3f:5128) - pikaemotion_dummy2 - pikaemotion_subcmd PIKAEMOTION_SUBCMD_LOADEXTRAPIKASPRITES - pikaemotion_4 Pointer_fd224 - pikaemotion_pcm $0 - pikaemotion_4 Pointer_fd224 - pikaemotion_5 $7 - db $ff - -PikachuEmotion4_fd136: ; fd136 (3f:5136) - pikaemotion_dummy2 - pikaemotion_subcmd PIKAEMOTION_SUBCMD_LOADEXTRAPIKASPRITES - pikaemotion_4 Pointer_fd230 - pikaemotion_pcm $1c - pikaemotion_5 $4 - db $ff - -PikachuEmotion1_fd141: ; fd141 (3f:5141) - pikaemotion_dummy2 - pikaemotion_pcm $ff - pikaemotion_5 $1 - db $ff - -PikachuEmotion8_fd147: ; fd147 (3f:5147) - pikaemotion_dummy2 - pikaemotion_pcm $26 - pikaemotion_5 $8 - db $ff - -PikachuEmotion5_fd14d: ; fd14d (3f:514d) - pikaemotion_dummy2 - pikaemotion_pcm $1e - pikaemotion_5 $5 - db $ff - -PikachuEmotion6_fd153: ; fd153 (3f:5153) - pikaemotion_dummy2 - pikaemotion_subcmd PIKAEMOTION_SUBCMD_LOADEXTRAPIKASPRITES - pikaemotion_pcm $ff - pikaemotion_4 Pointer_fd21e - pikaemotion_emotebubble SKULL_BUBBLE - pikaemotion_5 $6 - db $ff - -PikachuEmotion3_fd160: ; fd160 (3f:5160) - pikaemotion_dummy2 - pikaemotion_pcm $27 - pikaemotion_5 $3 - db $ff - -PikachuEmotion9_fd166: ; fd166 (3f:5166) - pikaemotion_dummy2 - pikaemotion_subcmd PIKAEMOTION_SUBCMD_LOADEXTRAPIKASPRITES - pikaemotion_pcm $5 - pikaemotion_4 Pointer_fd218 - pikaemotion_emotebubble SKULL_BUBBLE - pikaemotion_5 $9 - db $ff - -PikachuEmotion11_fd173: ; fd173 (3f:5173) - pikaemotion_emotebubble ZZZ_BUBBLE - pikaemotion_pcm $24 - pikaemotion_5 $b - db $ff - -PikachuEmotion12_fd17a: ; fd17a (3f:517a) - pikaemotion_dummy2 - pikaemotion_pcm $ff - pikaemotion_5 $c - db $ff - -PikachuEmotion13_fd180: ; fd180 (3f:5180) - pikaemotion_dummy2 - pikaemotion_subcmd PIKAEMOTION_SUBCMD_LOADEXTRAPIKASPRITES - pikaemotion_4 Pointer_fd21e - pikaemotion_5 $d - db $ff - -PikachuEmotion14_fd189: ; fd189 (3f:5189) - pikaemotion_dummy2 - pikaemotion_emotebubble BOLT_BUBBLE - pikaemotion_pcm $9 - pikaemotion_5 $e - db $ff - -PikachuEmotion15_fd191: ; fd191 (3f:5191) - pikaemotion_dummy2 - pikaemotion_pcm $21 - pikaemotion_5 $f - db $ff - -PikachuEmotion16_fd197: ; fd197 (3f:5197) - pikaemotion_dummy2 - pikaemotion_pcm $20 - pikaemotion_5 $10 - db $ff - -PikachuEmotion17_fd19d: ; fd19d (3f:519d) - pikaemotion_dummy2 - pikaemotion_pcm $c - pikaemotion_5 $11 - db $ff - -PikachuEmotion18_fd1a3: ; fd1a3 (3f:51a3) - pikaemotion_dummy2 - pikaemotion_pcm $ff - pikaemotion_5 $12 - db $ff - -PikachuEmotion19_fd1a9: ; fd1a9 (3f:51a9) - pikaemotion_dummy2 - pikaemotion_emotebubble HEART_BUBBLE - pikaemotion_pcm $20 - pikaemotion_5 $13 - db $ff - -PikachuEmotion20_fd1b1: ; fd1b1 (3f:51b1) - pikaemotion_dummy2 - pikaemotion_emotebubble HEART_BUBBLE - pikaemotion_pcm $4 - pikaemotion_5 $14 - db $ff - -PikachuEmotion21_fd1b9: ; fd1b9 (3f:51b9) - pikaemotion_dummy2 - pikaemotion_emotebubble FISH_BUBBLE - pikaemotion_pcm $ff - pikaemotion_5 $15 - db $ff - -PikachuEmotion22_fd1c1: ; fd1c1 (3f:51c1) - pikaemotion_dummy2 - pikaemotion_pcm $3 - pikaemotion_5 $16 - db $ff - -PikachuEmotion23_fd1c7: ; fd1c7 (3f:51c7) - pikaemotion_dummy2 - pikaemotion_pcm $12 - pikaemotion_5 $17 - pikaemotion_subcmd PIKAEMOTION_SUBCMD_SHOWMAPVIEW - db $ff - -PikachuEmotion24_fd1cf: ; fd1cf (3f:51cf) - pikaemotion_dummy2 - pikaemotion_emotebubble EXCLAMATION_BUBBLE - pikaemotion_pcm $ff - pikaemotion_5 $18 - db $ff - -PikachuEmotion25_fd1d7: ; fd1d7 (3f:51d7) - pikaemotion_dummy2 - pikaemotion_emotebubble BOLT_BUBBLE - pikaemotion_pcm $22 - pikaemotion_5 $19 - db $ff - -PikachuEmotion26_fd1df: ; fd1df (3f:51df) - pikaemotion_dummy2 - pikaemotion_emotebubble ZZZ_BUBBLE - pikaemotion_pcm $24 - pikaemotion_5 $1a - pikaemotion_subcmd PIKAEMOTION_SUBCMD_SHOWMAPVIEW - pikaemotion_subcmd PIKAEMOTION_SUBCMD_CHECKPEWTERCENTER - db $ff - -PikachuEmotion27_fd1eb: ; fd1eb (3f:51eb) - pikaemotion_dummy2 - pikaemotion_pcm $8 - pikaemotion_5 $1b - db $ff - -PikachuEmotion28_fd1f1: ; fd1f1 (3f:51f1) - pikaemotion_dummy2 - pikaemotion_pcm $e - pikaemotion_5 $1c - db $ff - -PikachuEmotion29_fd1f7: ; fd1f7 (3f:51f7) - pikaemotion_pcm $4 - pikaemotion_5 $a - db $ff - -PikachuEmotion30_fd1fc: ; fd1fc (3f:51fc) - pikaemotion_9 - pikaemotion_emotebubble HEART_BUBBLE - pikaemotion_pcm $4 - pikaemotion_5 $14 - pikaemotion_subcmd PIKAEMOTION_SUBCMD_SHOWMAPVIEW - pikaemotion_subcmd PIKAEMOTION_SUBCMD_LOADFONT - pikaemotion_subcmd PIKAEMOTION_SUBCMD_CHECKLAVENDERTOWER - db $ff - -PikachuEmotion31_fd20a: ; fd20a (3f:520a) - pikaemotion_pcm $12 - pikaemotion_5 $17 - pikaemotion_subcmd PIKAEMOTION_SUBCMD_SHOWMAPVIEW - pikaemotion_subcmd PIKAEMOTION_SUBCMD_CHECKBILLSHOUSE - db $ff - -PikachuEmotion32_fd213: ; fd213 (3f:5213) - pikaemotion_pcm $19 - pikaemotion_5 $17 - db $ff - -Pointer_fd218: ; fd218 (3f:5218) - - db $00 - db $39, $01 - db $3e, $1e - db $3f - -Pointer_fd21e: ; fd21e (3f:521e) - db $00 - db $39, $00 - db $3e, $1e - db $3f - -Pointer_fd224: ; fd224 (3f:5224) - db $00 - db $3c, $07, $2f - db $3c, $07, $2f - db $3f - -Pointer_fd22c: ; fd22c (3f:522c) - db $3b, $1f, $03 - db $3f - -Pointer_fd230: ; fd230 (3f:5230) - db $00 - db $3c, $0f, $1f - db $3c, $0f, $1f - db $3f - -Pointer_fd238: ; fd238 (3f:5238) - db $00 - db $05, $07 - db $39, $00 - db $05, $07 - db $06, $07 - db $39, $00 - db $06, $07 - db $08, $07 - db $39, $00 - db $08, $07 - db $07, $07 - db $39, $00 - db $07, $07 - db $3f - -Func_fd252: ; fd252 (3f:5252) - ld a, $40 - ld [h_0xFFFC], a - call Func_fd8ab - call Func_fd266 - and a - jr z, .asm_fd262 - call Func_159b -.asm_fd262 - xor a - ld [h_0xFFFC], a - ret - -Func_fd266: - ld a, [wSpriteStateData2 + 15 * 16 + 4] - ld e, a - ld a, [wSpriteStateData2 + 15 * 16 + 5] - ld d, a - ld a, [wYCoord] - add 4 - cp e - jr z, .asm_fd280 - jr nc, .asm_fd27e - ld hl, Data_fd294 - ld a, 1 - ret - -.asm_fd27e - xor a - ret - -.asm_fd280 - ld a, [wXCoord] - add 4 - cp d - jr c, .asm_fd28e - ld hl, Data_fd299 - ld a, 2 - ret - -.asm_fd28e - ld hl, Data_fd29d - ld a, 3 - ret - -Data_fd294: - db $00 - db $36 - db $2b - db $34 - db $3f - -Data_fd299: - db $00 - db $36 - db $34 - db $3f - -Data_fd29d: - db $00 - db $36 - db $33 - db $3f - -Func_fd2a1:: ; fd2a1 (3f:52a1) - ld a, b - ld [wd44a], a - ld a, l - ld [wd44b], a - ld a, h - ld [wd44b + 1], a - call Func_fd2c1 -.asm_fd2b0 - call Func_fd2f5 - jr nc, .asm_fd2ba - call Func_fd329 - jr .asm_fd2b0 - -.asm_fd2ba - call Func_fd2c1 - call DelayFrame - ret - -Func_fd2c1: - ld a, [wUpdateSpritesEnabled] - push af - ld a, $ff - ld [wUpdateSpritesEnabled], a - push hl - push de - push bc - - ld hl, wSpriteStateData1 - ld de, wSpriteStateData1 + $f0 - ld c, $10 - call Func_fd2eb - - ld hl, wSpriteStateData2 - ld de, wSpriteStateData2 + $f0 - ld c, $10 - call Func_fd2eb - - pop bc - pop de - pop hl - pop af - ld [wUpdateSpritesEnabled], a - ret - -Func_fd2eb: -.asm_fd2eb - ld b, [hl] - ld a, [de] - ld [hli], a - ld a, b - ld [de], a - inc de - dec c - jr nz, .asm_fd2eb - ret - -Func_fd2f5: - call Func_157c - cp $3f - ret z - ld c, a - ld b, 0 - ld hl, Data_fd3b0 - add hl, bc - add hl, bc - add hl, bc - add hl, bc - ld a, [hli] - ld [$d44e], a - ld a, [hli] - cp $80 - jr nz, .asm_fd311 - call Func_157c -.asm_fd311 - ld [$d44d], a - ld a, [hli] - ld [$d450], a - ld a, [hli] - cp $80 - jr nz, .asm_fd320 - call Func_157c -.asm_fd320 - ld [$d44f], a - xor a - ld [$d451], a - scf - ret - -Func_fd329: - xor a - ld [$d44c], a - ld [$d457], a - ld [$d458], a - ld a, [wSpriteStateData2 + 7] - push af -.asm_fd337 - ld bc, wSpriteStateData1 - ld a, [$d44e] - ld hl, Jumptable_fd4ac - call Func_fd365 - ld a, [$d450] - ld hl, Jumptable_fd65c - call Func_fd365 - call Func_fd36e - call Func_fd39d - call DelayFrame - call DelayFrame - ld hl, $d44c - bit 7, [hl] - jr z, .asm_fd337 - pop af - ld [wSpriteStateData2 + 7], a - scf - ret - -Func_fd365: - ld e, a - ld d, 0 - add hl, de - add hl, de - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] - -Func_fd36e: - ld hl, 2 - add hl, bc - ld a, [$d452] - ld [hl], a - ld a, [$d454] - ld d, a - ld a, [$d456] - add d - ld hl, 4 - add hl, bc - ld [hl], a - ld a, [$d453] - ld d, a - ld a, [$d455] - add d - ld hl, 6 - add hl, bc - ld [hl], a - ld hl, $d44c - bit 6, [hl] - ret z - ld hl, wSpriteStateData2 + 7 - wSpriteStateData1 - add hl, bc - ld [hl], 0 - ret - -Func_fd39d: - ld hl, $d44c - bit 6, [hl] - res 6, [hl] - ld hl, wd736 - res 6, [hl] - ret z - set 6, [hl] - call Func_fd7f3 - ret - -Data_fd3b0: - db $01, $00, $00, $00 ; $00 - db $03, $80, $01, $00 ; $01 - db $04, $80, $01, $00 ; $02 - db $05, $80, $01, $00 ; $03 - db $06, $80, $01, $00 ; $04 - db $07, $80, $01, $00 ; $05 - db $08, $80, $01, $00 ; $06 - db $09, $80, $01, $00 ; $07 - db $0a, $80, $01, $00 ; $08 - db $03, $80, $06, $00 ; $09 - db $04, $80, $06, $00 ; $0a - db $05, $80, $06, $00 ; $0b - db $06, $80, $06, $00 ; $0c - db $07, $80, $06, $00 ; $0d - db $08, $80, $06, $00 ; $0e - db $09, $80, $06, $00 ; $0f - db $0a, $80, $06, $00 ; $10 - db $03, $80, $03, $80 ; $11 - db $04, $80, $03, $80 ; $12 - db $05, $80, $03, $80 ; $13 - db $06, $80, $03, $80 ; $14 - db $07, $80, $03, $80 ; $15 - db $08, $80, $03, $80 ; $16 - db $09, $80, $03, $80 ; $17 - db $0a, $80, $03, $80 ; $18 - db $03, $80, $07, $80 ; $19 - db $04, $80, $07, $80 ; $1a - db $05, $80, $07, $80 ; $1b - db $06, $80, $07, $80 ; $1c - db $0b, $27, $02, $00 ; $1d - db $0c, $27, $02, $00 ; $1e - db $0d, $27, $02, $00 ; $1f - db $0e, $27, $02, $00 ; $20 - db $0f, $27, $02, $00 ; $21 - db $10, $27, $02, $00 ; $22 - db $11, $27, $02, $00 ; $23 - db $12, $27, $02, $00 ; $24 - db $0b, $0f, $02, $00 ; $25 - db $0c, $0f, $02, $00 ; $26 - db $0d, $0f, $02, $00 ; $27 - db $0e, $0f, $02, $00 ; $28 - db $0f, $0f, $02, $00 ; $29 - db $10, $0f, $02, $00 ; $2a - db $11, $0f, $02, $00 ; $2b - db $12, $0f, $02, $00 ; $2c - db $0b, $0f, $08, $17 ; $2d - db $0c, $0f, $08, $17 ; $2e - db $0d, $0f, $08, $17 ; $2f - db $0e, $0f, $08, $17 ; $30 - db $0f, $0f, $08, $17 ; $31 - db $10, $0f, $08, $17 ; $32 - db $11, $0f, $08, $17 ; $33 - db $12, $0f, $08, $17 ; $34 - db $13, $0f, $06, $00 ; $35 - db $14, $0f, $06, $00 ; $36 - db $15, $0f, $06, $00 ; $37 - db $16, $0f, $06, $00 ; $38 - db $02, $80, $04, $00 ; $39 - db $02, $80, $05, $00 ; $3a - db $02, $80, $03, $80 ; $3b - db $02, $80, $07, $80 ; $3c - db $02, $80, $09, $80 ; $3d - db $02, $80, $06, $00 ; $3e - -Jumptable_fd4ac: - dw Func_fd4e5 - dw Func_fd4e9 - dw Func_fd504 - dw Func_fd50c - dw Func_fd511 - dw Func_fd518 - dw Func_fd52c - dw Func_fd540 - dw Func_fd553 - dw Func_fd566 - dw Func_fd579 - dw Func_fd5b1 - dw Func_fd5b5 - dw Func_fd5b9 - dw Func_fd5bd - dw Func_fd5c1 - dw Func_fd5c5 - dw Func_fd5c9 - dw Func_fd5cd - dw Func_fd5ea - dw Func_fd5ee - dw Func_fd5f2 - dw Func_fd5f6 - dw Func_fd4e5 - -Func_fd4dc: - ld a, [$d44c] - set 7, a - ld [$d44c], a - ret - -Func_fd4e5: - call Func_fd4dc - ret - -Func_fd4e9: - ld hl, 4 - add hl, bc - ld a, [hl] - ld [$d454], a - ld hl, 6 - add hl, bc - ld a, [hl] - ld [$d453], a - xor a - ld [$d456], a - ld [$d455], a - call Func_fd4dc - ret - -Func_fd504: - call Func_fd775 - ret nz - call Func_fd4dc - ret - -Func_fd50c: - call Func_fd75f - jr asm_fd58c - -Func_fd511: - call Func_fd75f - xor %100 - jr asm_fd58c - -Func_fd518: - call Func_fd75f - ld hl, Data_fd523 - call Func_fd5a0 - jr asm_fd58c - -Data_fd523: - db SPRITE_FACING_DOWN - db SPRITE_FACING_RIGHT - db SPRITE_FACING_UP - db SPRITE_FACING_LEFT - db SPRITE_FACING_LEFT - db SPRITE_FACING_DOWN - db SPRITE_FACING_RIGHT - db SPRITE_FACING_UP - db $ff - -Func_fd52c: - call Func_fd75f - ld hl, Data_fd537 - call Func_fd5a0 - jr asm_fd58c - -Data_fd537: - db SPRITE_FACING_DOWN - db SPRITE_FACING_LEFT - db SPRITE_FACING_UP - db SPRITE_FACING_RIGHT - db SPRITE_FACING_LEFT - db SPRITE_FACING_UP - db SPRITE_FACING_RIGHT - db SPRITE_FACING_DOWN - db $ff - -Func_fd540: - call Func_fd75f - ld hl, Data_fd54b - call Func_fd5a0 - jr asm_fd58c - -Data_fd54b: - db SPRITE_FACING_DOWN - db SPRITE_FACING_UP | $10 - db SPRITE_FACING_UP - db SPRITE_FACING_LEFT | $10 - db SPRITE_FACING_LEFT - db SPRITE_FACING_DOWN | $10 - db SPRITE_FACING_RIGHT - db SPRITE_FACING_RIGHT | $10 - -Func_fd553: - call Func_fd75f - ld hl, Data_fd55e - call Func_fd5a0 - jr asm_fd58c - -Data_fd55e: - db SPRITE_FACING_DOWN - db SPRITE_FACING_DOWN | $10 - db SPRITE_FACING_UP - db SPRITE_FACING_RIGHT | $10 - db SPRITE_FACING_LEFT - db SPRITE_FACING_LEFT | $10 - db SPRITE_FACING_RIGHT - db SPRITE_FACING_UP | $10 - -Func_fd566: - call Func_fd75f - ld hl, Data_fd571 - call Func_fd5a0 - jr asm_fd58c - -Data_fd571: - db SPRITE_FACING_DOWN - db SPRITE_FACING_RIGHT | $10 - db SPRITE_FACING_UP - db SPRITE_FACING_DOWN | $10 - db SPRITE_FACING_LEFT - db SPRITE_FACING_UP | $10 - db SPRITE_FACING_RIGHT - db SPRITE_FACING_LEFT | $10 - -Func_fd579: - call Func_fd75f - ld hl, Data_fd584 - call Func_fd5a0 - jr asm_fd58c - -Data_fd584: - db SPRITE_FACING_DOWN - db SPRITE_FACING_LEFT | $10 - db SPRITE_FACING_UP - db SPRITE_FACING_UP | $10 - db SPRITE_FACING_LEFT - db SPRITE_FACING_RIGHT | $10 - db SPRITE_FACING_RIGHT - db SPRITE_FACING_DOWN | $10 - -asm_fd58c - rrca - rrca - and $7 - ld e, a - call Func_fd784 - ld d, a - call Func_fd601 - call Func_fd775 - ret nz - call Func_fd4dc - ret - -Func_fd5a0: - push de - ld d, a -.asm_fd5a2 - ld a, [hli] - cp d - jr z, .asm_fd5ad - inc hl - cp $ff - jr nz, .asm_fd5a2 - pop de - ret - -.asm_fd5ad - ld a, [hl] - pop de - scf - ret - -Func_fd5b1: - ld a, 0 - jr asm_fd5d1 - -Func_fd5b5: - ld a, 1 - jr asm_fd5d1 - -Func_fd5b9: - ld a, 2 - jr asm_fd5d1 - -Func_fd5bd: - ld a, 3 - jr asm_fd5d1 - -Func_fd5c1: - ld e, 4 - jr asm_fd5d5 - -Func_fd5c5: - ld e, 5 - jr asm_fd5d5 - -Func_fd5c9: - ld e, 6 - jr asm_fd5d5 - -Func_fd5cd: - ld e, 7 - jr asm_fd5d5 - -asm_fd5d1 - ld e, a - call Func_fd769 -asm_fd5d5 - call Func_fd784 - ld d, a - push de - call Func_fd601 - pop de - call Func_fd775 - ret nz - ld a, e - call Func_fd7cb - call Func_fd4dc - ret - -Func_fd5ea: - ld a, 0 - jr asm_fd5fa - -Func_fd5ee: - ld a, 1 - jr asm_fd5fa - -Func_fd5f2: - ld a, 2 - jr asm_fd5fa - -Func_fd5f6: - ld a, 3 - jr asm_fd5fa - -asm_fd5fa - call Func_fd769 - call Func_fd4dc - ret - -Func_fd601: - push de - ld d, 0 - ld hl, Jumptable_fd60f - add hl, de - add hl, de - ld a, [hli] - ld h, [hl] - ld l, a - pop de - ld a, d - jp [hl] - -Jumptable_fd60f: - dw Func_fd61f - dw Func_fd624 - dw Func_fd62b - dw Func_fd632 - dw Func_fd637 - dw Func_fd63d - dw Func_fd641 - dw Func_fd647 - -Func_fd61f: - ld d, 0 - ld e, a - jr Func_fd64d - -Func_fd624: - ld d, 0 - cpl - inc a - ld e, a - jr Func_fd64d - -Func_fd62b: - cpl - inc a - ld d, a - ld e, 0 - jr Func_fd64d - -Func_fd632: - ld d, a - ld e, 0 - jr Func_fd64d - -Func_fd637: - ld e, a - cpl - inc a - ld d, a - jr Func_fd64d - -Func_fd63d: - ld e, a - ld d, a - jr Func_fd64d - -Func_fd641: - cpl - inc a - ld e, a - ld d, a - jr Func_fd64d - -Func_fd647: - ld d, a - cpl - inc a - ld e, a - jr Func_fd64d - -Func_fd64d: - ld a, [$d453] - add d - ld [$d453], a - ld a, [$d454] - add e - ld [$d454], a - ret - -Jumptable_fd65c: - dw Func_fd678 - dw Func_fd6a3 - dw Func_fd698 - dw Func_fd6f4 - dw Func_fd6ff - dw Func_fd718 - dw Func_fd68c - dw Func_fd6c6 - dw Func_fd6c0 - dw Func_fd6e2 - dw Func_fd68b - -Func_fd672: - ld hl, $d44c - set 6, [hl] - ret - -Func_fd678: - ld hl, 7 - add hl, bc - xor a - ld [hli], a - ld [hl], a - call Func_fd74a - ld d, a - call Func_fd75f - or d - ld [$d452], a - ret - -Func_fd68b: - ret - -Func_fd68c: - call Func_fd74a - ld d, a - call Func_fd755 - or d - ld [$d452], a - ret - -Func_fd698: - call Func_fd74a - ld d, a - call Func_fd75f - or d - ld d, a - jr asm_fd6ac - -Func_fd6a3: - call Func_fd74a - ld d, a - call Func_fd755 - or d - ld d, a -asm_fd6ac - ld hl, 8 - add hl, bc - call Func_fd78e - jr nz, .asm_fd6b6 - inc [hl] -.asm_fd6b6 - ld a, [hl] - rrca - rrca - and 3 - or d - ld [$d452], a - ret - -Func_fd6c0: - call Func_fd75f - ld d, a - jr asm_fd6ca - -Func_fd6c6: - call Func_fd755 - ld d, a -asm_fd6ca - call Func_fd74a - or d - ld d, a - call Func_fd736 - or d - ld [$d452], a - call Func_fd79d - ld [$d456], a - and a - ret z - call Func_fd672 - ret - -Func_fd6e2: - call Func_fd75f - ld d, a - call Func_fd74a - or d - ld [$d452], a - call Func_fd79d - ld [$d456], a - ret - -Func_fd6f4: - ld a, [$d44f] - and $40 - cp $40 - jr z, Func_fd6ff - jr Func_fd718 - -Func_fd6ff: - call Func_fd755 - ld d, a - call Func_fd78e - jr nz, .asm_fd710 - ld hl, Data_fd731 -.asm_fd70b - ld a, [hli] - cp d - jr nz, .asm_fd70b - ld d, [hl] -.asm_fd710 - call Func_fd74a - or d - ld [$d452], a - ret - -Func_fd718: - call Func_fd755 - ld d, a - call Func_fd78e - jr nz, .asm_fd529 - ld hl, Data_fd731End -.asm_fd524 - ld a, [hld] - cp d - jr nz, .asm_fd524 - ld d, [hl] -.asm_fd529 - call Func_fd74a - or d - ld [$d452], a - ret - -Data_fd731: - db SPRITE_FACING_DOWN - db SPRITE_FACING_LEFT - db SPRITE_FACING_UP - db SPRITE_FACING_RIGHT - db SPRITE_FACING_DOWN -Data_fd731End: - -Func_fd736: - push hl - ld hl, 7 - add hl, bc - ld a, [hl] - inc a - and $3 - ld [hli], a - jr nz, .asm_fd747 - ld a, [hl] - inc a - and $3 - ld [hl], a -.asm_fd747 - ld a, [hl] - pop hl - ret - -Func_fd74a: - push hl - ld hl, wSpriteStateData2 - wSpriteStateData1 + 14 - add hl, bc - ld a, [hl] - dec a - swap a - pop hl - ret - -Func_fd755: - push hl - ld hl, 2 - add hl, bc - ld a, [hl] - and $c - pop hl - ret - -Func_fd75f: - push hl - ld hl, 9 - add hl, bc - ld a, [hl] - and $c - pop hl - ret - -Func_fd769: - push hl - ld hl, 9 - add hl, bc - add a - add a - and $c - ld [hl], a - pop hl - ret - -Func_fd775: - ld hl, $d457 - inc [hl] - ld a, [$d44d] - and $1f - inc a - cp [hl] - ret nz - ld [hl], 0 - ret - -Func_fd784: - ld a, [$d44d] - swap a - rrca - and $3 - inc a - ret - -Func_fd78e: - ld hl, $d458 - inc [hl] - ld a, [$d44f] - and $f - inc a - cp [hl] - ret nz - ld [hl], 0 - ret - -Func_fd79d: - call Func_fd7b2 - ld a, [$d458] - add e - ld [$d458], a - add $20 - ld e, a - push hl - push bc - call Func_fd907 - pop bc - pop hl - ret - -Func_fd7b2: - ld a, [$d44f] - and $f - inc a - ld d, a - ld a, [$d44f] - swap a - and $7 - ld e, a - ld a, 1 - jr z, .asm_fd7c9 -.asm_fd7c5 - add a - dec e - jr nz, .asm_fd7c5 -.asm_fd7c9 - ld e, a - ret - -Func_fd7cb: - push bc - ld c, a - ld b, 0 - ld hl, Data_fd7e3 - add hl, bc - add hl, bc - ld d, [hl] - inc hl - ld e, [hl] - pop bc - ld hl, wSpriteStateData2 - wSpriteStateData1 + 4 - add hl, bc - ld a, [hl] - add e - ld [hli], a - ld a, [hl] - add d - ld [hl], a - ret - -Data_fd7e3: - db 0, 1 - db 0, -1 - db -1, 0 - db 1, 0 - db -1, 1 - db 1, 1 - db -1, -1 - db 1, -1 - -Func_fd7f3: - push bc - push de - push hl - - ld bc, wOAMBuffer + 4 * 36 - ld a, [$d454] - ld e, a - ld a, [$d453] - ld d, a - ld hl, Data_fd80b - call Func_fd814 - - pop hl - pop de - pop bc - ret - -Data_fd80b: - db $02 - db $0c, $00, $ff, 0 - db $0c, $08, $ff, 1 << OAM_X_FLIP - -Func_fd814: - ld a, e - add $10 - ld e, a - ld a, d - add $8 - ld d, a - ld a, [hli] -.asm_fd81d - push af - ld a, [hli] - add e - ld [bc], a - inc bc - ld a, [hli] - add d - ld [bc], a - inc bc - ld a, [hli] - ld [bc], a - inc bc - ld a, [hli] - ld [bc], a - inc bc - pop af - dec a - jr nz, .asm_fd81d - ret - -Func_fd831: - ld hl, vNPCSprites2 + $7f * $10 - ld de, LedgeHoppingShadowGFX_3F - lb bc, BANK(LedgeHoppingShadowGFX_3F), (LedgeHoppingShadowGFX_3FEnd - LedgeHoppingShadowGFX_3F) / 8 - jp CopyVideoDataDoubleAlternate - -LedgeHoppingShadowGFX_3F: -INCBIN "gfx/ledge_hopping_shadow.1bpp" -LedgeHoppingShadowGFX_3FEnd: - -Func_fd845: - ld hl, vNPCSprites2 + $7e * $10 - ld de, GFX_fd86b - lb bc, BANK(GFX_fd86b), 1 - jp CopyVideoDataDoubleAlternate - -Func_fd851: - ld hl, vNPCSprites + $c * $10 - ld a, 3 -.asm_fd856 - push af - push hl - ld de, GFX_fd86b - lb bc, BANK(GFX_fd86b), 4 - call CopyVideoDataAlternate - pop hl - ld de, 4 * $10 - add hl, de - pop af - dec a - jr nz, .asm_fd856 - ret - -GFX_fd86b: -INCBIN "gfx/unknown_fd86b.2bpp" - -Func_fd8ab: ; fd8ab (3f:58ab) - ld de, PikachuSprite - lb bc, BANK(PikachuSprite), (SandshrewSprite - PikachuSprite) / 32 - ld hl, vNPCSprites + $c * $10 - push bc - call CopyVideoDataAlternate - ld de, PikachuSprite + $c * $10 - ld hl, vNPCSprites2 + $c * $10 - ld a, [h_0xFFFC] - and a - jr z, .asm_fd8c9 - ld de, PikachuSprite + $c * $10 - ld hl, vNPCSprites2 + $4c * $10 -.asm_fd8c9 - pop bc - call CopyVideoDataAlternate - call Func_fd831 - call Func_fd845 - ret - -Func_fd8d4: ; fd8d4 (3f:58d4) - ld a, [wCurMap] - cp PEWTER_POKECENTER - ret nz - call Func_1542 - call Func_fcff2 - ret - -Func_fd8e1: ; fd8e1 (3f:58e1) - ld a, [wCurMap] - cp POKEMON_FAN_CLUB - ret nz - call Func_1542 - call Func_fcff2 - ret - -Func_fd8ee: ; fd8ee (3f:58ee) - ld a, [wCurMap] - cp BILLS_HOUSE - ret nz - call Func_1542 - ret - -Func_fd8f8: ; fd8f8 (3f:58f8) - call LoadCurrentMapView - call UpdateSprites - call Delay3 - ret - -Func_fd902: ; cosine? - ld a, e - add $10 - jr asm_fd908 - -Func_fd907: ; sine? - ld a, e -asm_fd908 - and $3f - cp $20 - jr nc, .asm_fd913 - call Func_fd91c - ld a, h - ret - -.asm_fd913 - and $1f - call Func_fd91c - ld a, h - cpl - inc a - ret - -Func_fd91c: - ld e, a - ld a, d - ld d, 0 - ld hl, Data_fd938 - add hl, de - add hl, de - ld e, [hl] - inc hl - ld d, [hl] - ld hl, 0 -.asm_fd92b - srl a - jr nc, .asm_fd930 - add hl, de -.asm_fd930 - sla e - rl d - and a - jr nz, .asm_fd92b - ret - -Data_fd938: - sine_wave $100 - -Func_fd978: ; fd978 (3f:5978) - ld hl, Data_fd99c - ld a, [wPikachuMood] - ld d, a -.asm_fd97f - ld a, [hli] - inc hl - cp d - jr c, .asm_fd97f - dec hl - ld e, [hl] - ld hl, Data_fd9a6 - ld a, [wPikachuHappiness] - ld d, a - ld bc, 6 -.asm_fd990 - ld a, [hl] - cp d - jr nc, .asm_fd997 - add hl, bc - jr .asm_fd990 - -.asm_fd997 - ld d, 0 - add hl, de - ld a, [hl] - ret - -Data_fd99c: -; First byte: mood threshold -; Second byte: column index in Data_fd9a6 - db $28, 1 - db $7f, 2 - db $80, 3 - db $d2, 4 - db $ff, 5 - -Data_fd9a6: -; First byte: happiness threshold -; Remaining bytes: loaded based on Pikachu's mood - db $32, $0e, $0e, $06, $0d, $0d - db $64, $09, $09, $05, $0c, $0c - db $82, $03, $03, $01, $08, $08 - db $a0, $03, $03, $04, $0f, $0f - db $c8, $11, $11, $07, $02, $02 - db $fa, $11, $11, $10, $0a, $0a - db $ff, $11, $11, $13, $14, $14 - -Func_fd9d0: ; fd9d0 (3f:59d0) - ld a, [H_AUTOBGTRANSFERENABLED] - push af - xor a - ld [H_AUTOBGTRANSFERENABLED], a - ld a, [de] - ld [$d448], a - inc de - push de - call Func_fd9e4 - pop de - pop af - ld [H_AUTOBGTRANSFERENABLED], a - ret - -Func_fd9e4: - call Func_fda2c - callab Func_720e3 - call Func_fd9ff - call Func_fda46 - call Func_fda9a - call Func_fda2c - call RunDefaultPaletteCommand - ret - -Func_fd9ff: - ld hl, $d44d - ld bc, $0011 - xor a - call FillMemory - ld hl, wNPCMovementDirections2 - ld bc, $0021 - xor a - call FillMemory - call Func_fe15c - ld hl, $0064 - ld a, l - ld [$d451], a - ld a, h - ld [$d452], a - ld a, $07 - ld [$d454], a - ld a, $06 - ld [$d455], a - ret - -Func_fda2c: - xor a - ld [H_AUTOBGTRANSFERENABLED], a - coord hl, 6, 5 - lb bc, 5, 5 - call TextBoxBorder - call Delay3 - call UpdateSprites - ld a, $01 - ld [H_AUTOBGTRANSFERENABLED], a - call Delay3 - ret - -Func_fda46: - ld a, [$d448] - cp $1d - jr c, .asm_fda4f - ld a, $00 -.asm_fda4f - ld e, a - ld d, $00 - ld hl, Data_fda5e - add hl, de - add hl, de - ld a, [hli] - ld h, [hl] - ld l, a - call Func_fe0d0 - ret - -Data_fda5e: - dw Data_fe28a - dw Data_fe28a - dw Data_fe2a4 - dw Data_fe2be - dw Data_fe2d8 - dw Data_fe2f2 - dw Data_fe30c - dw Data_fe326 - dw Data_fe340 - dw Data_fe35a - dw Data_fe374 - dw Data_fe390 - dw Data_fe3aa - dw Data_fe3c4 - dw Data_fe3de - dw Data_fe3f8 - dw Data_fe412 - dw Data_fe42c - dw Data_fe446 - dw Data_fe460 - dw Data_fe47a - dw Data_fe494 - dw Data_fe4b4 - dw Data_fe4ce - dw Data_fe4e8 - dw Data_fe502 - dw Data_fe520 - dw Data_fe53e - dw Data_fe558 - dw Data_fe28a - - -Func_fda9a: -.asm_fda9a - xor a - ld [H_AUTOBGTRANSFERENABLED], a - call Func_fe046 - call Func_fdad5 - call Func_fdad6 - call Func_fdad5 - ld a, $01 - ld [H_AUTOBGTRANSFERENABLED], a - call Func_fdab4 - and a - jr z, .asm_fda9a - ret - -Func_fdab4: - call Delay3 - call Func_fdac4 - and a - ret nz - call JoypadLowSensitivity - ld a, [hJoyPressed] - and A_BUTTON | B_BUTTON - ret - -Func_fdac4: - ld hl, $d451 - dec [hl] - jr nz, .asm_fdad0 - inc hl - ld a, [hl] - and a - jr z, .asm_fdad2 - dec [hl] -.asm_fdad0 - xor a - ret - -.asm_fdad2 - ld a, $01 - ret - -Func_fdad5: - ret - -Func_fdad6: - ld bc, wNPCMovementDirections2 + 1 - ld a, 4 -.asm_fdadb - push af - push bc - ld hl, 0 - add hl, bc - ld a, [hli] - and a - jr z, .asm_fdb26 - ld a, [hli] - ld [$d459], a - ld a, [hli] - ld [$d45a], a - ld a, [hli] - ld [$d45b], a - ld a, [hli] - ld [$d456], a - ld a, [hli] - ld [$d457], a - ld a, [hli] - ld [$d458], a - ld a, [hli] - ld [$d45c], a - push bc - call Func_fdb7e - pop bc - ld hl, 1 - add hl, bc - ld a, [$d459] - ld [hli], a - ld a, [$d45a] - ld [hli], a - ld a, [$d45b] - ld [hli], a - ld a, [$d456] - ld [hli], a - ld a, [$d457] - ld [hli], a - ld a, [$d458] - ld [hli], a - ld a, [$d45c] - ld [hl], a -.asm_fdb26 - pop bc - ld hl, 8 - add hl, bc - ld b, h - ld c, l - pop af - dec a - jr nz, .asm_fdadb - ret - -Func_fdb32: - ld hl, wNPCMovementDirections2 + 1 - ld de, 8 - ld c, 4 -.asm_fdb3a - ld a, [hl] - and a - jr z, .asm_fdb44 - add hl, de - dec c - jr nz, .asm_fdb3a - scf - ret - -.asm_fdb44 - ld a, [wNPCMovementDirections2] - inc a - ld [wNPCMovementDirections2], a - ld [hli], a - call Func_fe0c3 - ld [hli], a - call Func_fe0c3 - ld [hl], a - xor a - ld [hli], a - ld [hli], a - call Func_fe0c3 - ld [hli], a - call Func_fe0c3 - ld [hli], a - call Func_fe0c3 - ld [hli], a - and a - ret - -Func_fdb65 - call Func_fe0c3 - ld b, a - ld hl, wNPCMovementDirections2 + 1 - ld de, 8 - ld c, 4 -.asm_fdb71 - ld a, [hl] - cp b - jr z, .asm_fdb7b - add hl, de - dec c - jr nz, .asm_fdb71 - scf - ret - -.asm_fdb7b - xor a - ld [hl], a - ret - -Func_fdb7e: -.asm_fdb7e - ld a, [$d459] - cp $23 - jr c, .asm_fdb87 - ld a, $04 -.asm_fdb87 - ld e, a - ld d, $00 - ld hl, Pointers_fdbc9 - add hl, de - add hl, de - ld a, [hli] - ld h, [hl] - ld l, a - ld a, [$d45a] - ld e, a - ld d, 0 - add hl, de - add hl, de - ld a, [hli] - cp $e0 - jr z, .asm_fdba1 - jr .asm_fdbaa - -.asm_fdba1 - xor a - ld [$d45a], a - ld [$d45b], a - jr .asm_fdb7e - -.asm_fdbaa - push hl - call Func_fdd62 - pop hl - ld a, [hl] - and a - jr z, .asm_fdbc8 - ld a, [$d45b] - inc a - ld [$d45b], a - cp [hl] - jr nz, .asm_fdbc8 - xor a - ld [$d45b], a - ld a, [$d45a] - inc a - ld [$d45a], a -.asm_fdbc8 - ret - -Pointers_fdbc9: - dw Data_fdc11 - dw Data_fdc11 - dw Data_fdc29 - dw Data_fdc32 - dw Data_fdc3b - dw Data_fdc3e - dw Data_fdc41 - dw Data_fdc50 - dw Data_fdc61 - dw Data_fdc6e - dw Data_fdc77 - dw Data_fdc84 - dw Data_fdc8d - dw Data_fdc98 - dw Data_fdca5 - dw Data_fdcb2 - dw Data_fdcb7 - dw Data_fdcc2 - dw Data_fdccb - dw Data_fdcd4 - dw Data_fdcdf - dw Data_fdce8 - dw Data_fdcf1 - dw Data_fdcf6 - dw Data_fdd01 - dw Data_fdd0a - dw Data_fdd13 - dw Data_fdd1c - dw Data_fdd27 - dw Data_fdd2c - dw Data_fdd35 - dw Data_fdd40 - dw Data_fdd47 - dw Data_fdd54 - dw Data_fdd59 - dw Data_fdc3b - -Data_fdc11: - db $01, $14 - db $07, $02 - db $01, $01 - db $07, $02 - db $01, $01 - db $07, $08 - db $e0 -Data_fdc1e: - db $02, $02 - db $01, $01 - db $02, $02 - db $01, $01 - db $02, $08 - db $e0 -Data_fdc29: - db $00, $08 - db $08, $08 - db $00, $08 - db $08, $08 - db $e0 -Data_fdc32: - db $08, $08 - db $00, $08 - db $08, $08 - db $00, $08 - db $e0 -Data_fdc3b: - db $01, $00 - db $e0 -Data_fdc3e: - db $09, $00 - db $e0 -Data_fdc41: - db $00, $02 - db $0e, $04 - db $00, $08 - db $0e, $04 - db $00, $40 - db $0e, $04 - db $00, $40 - db $e0 -Data_fdc50: - db $00, $04 - db $0f, $04 - db $00, $04 - db $0f, $04 - db $00, $08 - db $0f, $04 - db $00, $08 - db $0f, $04 - db $e0 -Data_fdc61: - db $10, $01 - db $00, $01 - db $10, $01 - db $00, $40 - db $10, $01 - db $00, $40 - db $e0 -Data_fdc6e: - db $00, $08 - db $11, $08 - db $00, $14 - db $11, $08 - db $e0 -Data_fdc77: - db $00, $02 - db $12, $02 - db $00, $02 - db $12, $40 - db $00, $03 - db $12, $40 - db $e0 -Data_fdc84: - db $00, $08 - db $13, $40 - db $00, $04 - db $13, $40 - db $e0 -Data_fdc8d: - db $14, $08 - db $00, $02 - db $14, $08 - db $00, $02 - db $14, $08 - db $e0 -Data_fdc98: - db $15, $04 - db $00, $08 - db $15, $04 - db $00, $40 - db $15, $04 - db $00, $40 - db $e0 -Data_fdca5: - db $00, $02 - db $16, $02 - db $00, $02 - db $16, $02 - db $00, $14 - db $16, $02 - db $e0 -Data_fdcb2: - db $00, $08 - db $17, $08 - db $e0 -Data_fdcb7: - db $00, $08 - db $17, $03 - db $18, $05 - db $17, $03 - db $00, $05 - db $e0 -Data_fdcc2: - db $00, $14 - db $19, $08 - db $00, $14 - db $19, $08 - db $e0 -Data_fdccb: - db $00, $0d - db $1a, $0c - db $00, $64 - db $1a, $08 - db $e0 -Data_fdcd4: - db $00, $05 - db $1b, $05 - db $00, $05 - db $1b, $05 - db $00, $64 - db $e0 -Data_fdcdf: - db $00, $02 - db $1c, $02 - db $00, $02 - db $1c, $02 - db $e0 -Data_fdce8: - db $00, $05 - db $1d, $05 - db $00, $05 - db $1d, $05 - db $e0 -Data_fdcf1: - db $1e, $08 - db $00, $64 - db $e0 -Data_fdcf6: - db $00, $0a - db $1f, $03 - db $00, $03 - db $1f, $03 - db $00, $64 - db $e0 -Data_fdd01: - db $00, $03 - db $20, $64 - db $00, $08 - db $20, $08 - db $e0 -Data_fdd0a: - db $21, $06 - db $00, $06 - db $21, $06 - db $00, $06 - db $e0 -Data_fdd13: - db $00, $08 - db $22, $0c - db $00, $08 - db $22, $0c - db $e0 -Data_fdd1c: - db $00, $08 - db $09, $02 - db $0a, $01 - db $0b, $01 - db $0c, $64 - db $e0 -Data_fdd27: - db $00, $08 - db $24, $64 - db $e0 -Data_fdd2c: - db $00, $10 - db $25, $10 - db $00, $10 - db $25, $10 - db $e0 -Data_fdd35: - db $00, $06 - db $26, $06 - db $00, $06 - db $26, $06 - db $00, $64 - db $e0 -Data_fdd40: - db $00, $06 - db $09, $06 - db $0a, $64 - db $e0 -Data_fdd47: - db $00, $14 - db $09, $08 - db $00, $14 - db $09, $08 - db $0a, $08 - db $0b, $64 - db $e0 -Data_fdd54: - db $00, $04 - db $09, $64 - db $e0 -Data_fdd59: - db $00, $0c - db $09, $0c - db $00, $0c - db $09, $64 - db $e0 - -Func_fdd62: - and a - ret z - ld e, a - ld d, 0 - ld hl, Pointers_fddb8 - add hl, de - add hl, de - ld e, [hl] - inc hl - ld d, [hl] - ld a, [de] - ld c, a - inc de - ld a, [de] - ld b, a - inc de - push de - push bc - call Func_fdd98 - pop bc - pop de -.asm_fdd7c - push bc - push hl - ld a, [$d456] - ld c, a -.asm_fdd82 - ld a, [de] - inc de - cp $ff - jr z, .asm_fdd8a - add c - ld [hl], a -.asm_fdd8a - inc hl - dec b - jr nz, .asm_fdd82 - pop hl - ld bc, SCREEN_WIDTH - add hl, bc - pop bc - dec c - jr nz, .asm_fdd7c - ret - -Func_fdd98: - push bc - ld a, [$d458] - ld b, a - ld a, [$d455] - add b - coord hl, 0, 0 - ld bc, SCREEN_WIDTH - call AddNTimes - ld a, [$d457] - ld c, a - ld a, [$d454] - add c - ld c, a - ld b, 0 - add hl, bc - pop bc - ret - -Pointers_fddb8: - dw Data_fde0e - dw Data_fde0f - dw Data_fde2a - dw Data_fde60 - dw Data_fde63 - dw Data_fde67 - dw Data_fde6b - dw Data_fde45 - dw Data_fde6b - dw Data_fdfaa - dw Data_fdfc5 - dw Data_fdfe0 - dw Data_fdffb - dw Data_fe016 - dw Data_fde81 - dw Data_fde9c - dw Data_fdeb7 - dw Data_fded2 - dw Data_fdeed - dw Data_fdf08 - dw Data_fdf23 - dw Data_fdf3e - dw Data_fdf59 - dw Data_fdf74 - dw Data_fdf8f - dw Data_fdfaa - dw Data_fdfaa - dw Data_fdfaa - dw Data_fdfaa - dw Data_fdfaa - dw Data_fdfaa - dw Data_fdfaa - dw Data_fdfaa - dw Data_fdfaa - dw Data_fdfaa - dw Data_fdfaa - dw Data_fdfaa - dw Data_fdfaa - dw Data_fdfaa - dw Data_fdfaa - dw Data_fdfc5 - dw Data_fdfe0 - dw Data_fde0f - -Data_fde0e: - db $ff ; unused - -Data_fde0f: ; fde0f - db 5, 5 - db $00, $05, $0a, $0f, $14 - db $01, $06, $0b, $10, $15 - db $02, $07, $0c, $11, $16 - db $03, $08, $0d, $12, $17 - db $04, $09, $0e, $13, $18 - -Data_fde2a: ; fde2a - db 5, 5 - db $19, $1e, $23, $28, $2d - db $1a, $1f, $24, $29, $2e - db $1b, $20, $25, $2a, $2f - db $1c, $21, $26, $2b, $30 - db $1d, $22, $27, $2c, $31 - -Data_fde45: ; fde45 - db 5, 5 - db $ff, $ff, $ff, $ff, $ff - db $ff, $ff, $ff, $ff, $ff - db $ff, $20, $25, $ff, $ff - db $ff, $21, $26, $ff, $ff - db $ff, $ff, $ff, $ff, $ff - -Data_fde60: ; fde60 - db 1, 1 - db $00 - -Data_fde63: ; fde63 - db 2, 1 - db $00 - db $01 - -Data_fde67: ; fde67 - db 1, 2 - db $00, $01 - -Data_fde6b: ; fde6b - db 2, 2 - db $00, $01 - db $02, $03 - -Data_fde71: ; fde71 - db 3, 2 - db $00, $01 - db $02, $03 - db $04, $05 - -Data_fde79: ; fde79 - db 2, 3 - db $00, $01, $02 - db $03, $04, $05 - -Data_fde81: ; fde81 - db 5, 5 - db $ff, $ff, $ff, $ff, $ff - db $ff, $ff, $ff, $ff, $ff - db $00, $01, $02, $03, $04 - db $ff, $ff, $ff, $ff, $ff - db $ff, $ff, $ff, $ff, $ff - -Data_fde9c: ; fde9c - db 5, 5 - db $ff, $ff, $ff, $ff, $ff - db $ff, $ff, $ff, $ff, $ff - db $ff, $ff, $ff, $ff, $ff - db $00, $01, $02, $03, $04 - db $05, $06, $07, $08, $09 - -Data_fdeb7: ; fdeb7 - db 5, 5 - db $00, $01, $ff, $ff, $ff - db $02, $03, $ff, $ff, $ff - db $04, $05, $ff, $ff, $ff - db $ff, $ff, $ff, $ff, $ff - db $ff, $ff, $ff, $ff, $ff - -Data_fded2: ; fded2 - db 5, 5 - db $ff, $ff, $ff, $ff, $ff - db $00, $01, $02, $03, $04 - db $05, $06, $07, $08, $09 - db $0a, $0b, $0c, $0d, $0e - db $0f, $10, $11, $12, $13 - -Data_fdeed: ; fdeed - db 5, 5 - db $ff, $ff, $ff, $ff, $ff - db $ff, $ff, $ff, $00, $01 - db $ff, $ff, $ff, $02, $03 - db $ff, $ff, $ff, $ff, $ff - db $ff, $ff, $ff, $ff, $ff - -Data_fdf08: ; fdf08 - db 5, 5 - db $ff, $ff, $ff, $ff, $ff - db $ff, $ff, $ff, $ff, $ff - db $00, $01, $ff, $ff, $ff - db $02, $03, $ff, $ff, $ff - db $ff, $ff, $ff, $ff, $ff - -Data_fdf23: ; fdf23 - db 5, 5 - db $00, $01, $02, $03, $04 - db $05, $06, $07, $08, $09 - db $0a, $0b, $0c, $0d, $0e - db $0f, $10, $11, $12, $13 - db $14, $15, $16, $17, $18 - -Data_fdf3e: ; fdf3e - db 5, 5 - db $ff, $ff, $ff, $ff, $ff - db $ff, $ff, $ff, $ff, $ff - db $00, $01, $02, $03, $04 - db $05, $06, $07, $08, $09 - db $ff, $ff, $ff, $ff, $ff - -Data_fdf59: ; fdf59 - db 5, 5 - db $ff, $ff, $ff, $ff, $ff - db $ff, $ff, $ff, $ff, $ff - db $00, $01, $ff, $ff, $ff - db $02, $03, $ff, $ff, $ff - db $04, $05, $ff, $ff, $ff - -Data_fdf74: ; fdf74 - db 5, 5 - db $00, $01, $02, $03, $04 - db $05, $06, $07, $08, $09 - db $0a, $0b, $0c, $0d, $0e - db $0f, $10, $11, $12, $13 - db $14, $15, $16, $17, $18 - -Data_fdf8f: ; fdf8f - db 5, 5 - db $19, $1a, $1b, $1c, $1d - db $1e, $1f, $20, $21, $22 - db $23, $24, $25, $26, $27 - db $28, $29, $2a, $2b, $2c - db $2d, $2e, $2f, $30, $31 - -Data_fdfaa: ; fdfaa - db 5, 5 - db $00, $01, $02, $03, $04 - db $05, $06, $07, $08, $09 - db $0a, $0b, $0c, $0d, $0e - db $0f, $10, $11, $12, $13 - db $14, $15, $16, $17, $18 - -Data_fdfc5: ; fdfc5 - db 5, 5 - db $19, $1a, $1b, $1c, $1d - db $1e, $1f, $20, $21, $22 - db $23, $24, $25, $26, $27 - db $28, $29, $2a, $2b, $2c - db $2d, $2e, $2f, $30, $31 - -Data_fdfe0: ; fdfe0 - db 5, 5 - db $32, $33, $34, $35, $36 - db $37, $38, $39, $3a, $3b - db $3c, $3d, $3e, $3f, $40 - db $41, $42, $43, $44, $45 - db $46, $47, $48, $49, $4a - -Data_fdffb: ; fdffb - db 5, 5 - db $4b, $4c, $4d, $4e, $4f - db $50, $51, $52, $53, $54 - db $55, $56, $57, $58, $59 - db $5a, $5b, $5c, $5d, $5e - db $5f, $60, $61, $62, $63 - -Data_fe016: ; fe016 - db 5, 5 - db $64, $65, $66, $67, $68 - db $69, $6a, $6b, $6c, $6d - db $6e, $6f, $70, $71, $72 - db $73, $74, $75, $76, $77 - db $78, $79, $7a, $7b, $7c - -Func_fe031: - push hl - ld e, a - ld d, 0 - ld hl, Data_fe572 - add hl, de - add hl, de - add hl, de - add hl, de - ld a, [hli] - ld c, a - ld a, [hli] - ld b, a - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - pop hl - ret - -Func_fe046: - call Func_fe066 - ret c - xor a - ld [$d44f], a -.asm_fe04e - call Func_fe0c3 - ld e, a - ld d, 0 - ld hl, Jumptable_fe071 - add hl, de - add hl, de - ld a, [hli] - ld h, [hl] - ld l, a - call JumpToAddress - ld a, [$d44f] - and a - jr z, .asm_fe04e - ret - -Func_fe066: - ld a, [$d453] - and a - ret z - dec a - ld [$d453], a - scf - ret - -Jumptable_fe071: - dw Func_fe08f - dw Func_fe0af - dw Func_fe0db - dw Func_fdb32 - dw Func_fe0b6 - dw Func_fe0b6 - dw Func_fdb65 - dw Func_fe0b6 - dw Func_fe0b6 - dw Func_fe0b7 - dw Func_fe09c - dw Func_fe1c7 - dw Func_fe1d7 - dw Func_fe0a9 - dw Func_fe090 - -Func_fe08f: - ret - -Func_fe090: - ld a, 1 - ld [$d451], a - xor a - ld [$d452], a - jr Func_fe0a9 - -Func_fe09b: - ret - -Func_fe09c: - call Func_fe0c3 - ld [$d451], a - call Func_fe0c3 - ld [$d452], a - ret - -Func_fe0a9: - ld a, $ff - ld [$d44f], a - ret - -Func_fe0af: - call Func_fe0c3 - ld [$d453], a - ret - -Func_fe0b6: - ret - -Func_fe0b7: - call Func_fe0c3 - ld l, a - call Func_fe0c3 - ld h, a - call Func_fe0d0 - ret - -Func_fe0c3: - push hl - ld hl, $d44d - ld a, [hli] - ld h, [hl] - ld l, a - ld a, [hli] - call Func_fe0d0 - pop hl - ret - -Func_fe0d0: - push af - ld a, l - ld [$d44d], a - ld a, h - ld [$d44e], a - pop af - ret - -Func_fe0db: - ld a, [wUpdateSpritesEnabled] - push af - ld a, $ff - ld [wUpdateSpritesEnabled], a - ld a, [H_AUTOBGTRANSFERENABLED] - push af - xor a - ld [H_AUTOBGTRANSFERENABLED], a - ld a, [hTilesetType] - push af - xor a - ld [hTilesetType], a - call Func_fe0c3 - ld [$d450], a - ld a, [$d450] - call Func_fe031 - ld a, c - cp a, $ff - jr z, .asm_fe106 - call Func_fe114 - jr .asm_fe109 - -.asm_fe106 - call Func_fe128 -.asm_fe109 - pop af - ld [hTilesetType], a - pop af - ld [H_AUTOBGTRANSFERENABLED], a - pop af - ld [wUpdateSpritesEnabled], a - ret - -Func_fe114: ; fe114 - push de - ld a, [$d450] - ld d, a - ld e, c - call Func_fe17a - pop de - jr c, .asm_fe127 - call Func_fe167 - call CopyVideoDataAlternate - and a -.asm_fe127 - ret - -Func_fe128: ; fe128 - push de - ld a, [$d450] - ld d, a - ld e, $19 - call Func_fe17a - pop de - jr c, .asm_fe15b - ld a, b - call UncompressSpriteFromDE - ld a, $00 - call SwitchSRAMBankAndLatchClockData - ld hl, S_SPRITEBUFFER1 - ld de, S_SPRITEBUFFER0 - ld bc, SPRITEBUFFERSIZE * 2 - call CopyData - call PrepareRTCDataAndDisableSRAM - ld a, [$d450] - call Func_fe1af - call Func_fe167 - ld d, h - ld e, l - call InterlaceMergeSpriteBuffers -.asm_fe15b - ret - -Func_fe15c: - ld hl, wNPCMovementDirections - ld bc, $11 - xor a - call FillMemory - ret - -Func_fe167: - ld hl, vNPCSprites - push bc - ld b, a - and $f - swap a - ld c, a - ld a, b - and $f0 - swap a - ld b, a - add hl, bc - pop bc - ret - -Func_fe17a: - push bc - push hl - ld hl, wNPCMovementDirections + 1 - ld c, 8 -.asm_fe181 - ld a, [hl] - and a - jr z, .asm_fe192 - cp d - jr z, .asm_fe18f - inc hl - inc hl - dec c - jr nz, .asm_fe181 - scf - ret - -.asm_fe18f - inc hl - ld a, [hl] - ret - -.asm_fe192 - ld [hl], d - inc hl - ld a, [wNPCMovementDirections] - add $80 - ld [hl], a - ld a, [wNPCMovementDirections] - add e - ld [wNPCMovementDirections], a - cp $80 - jr z, .asm_fe1a7 - jr nc, .asm_fe1ab -.asm_fe1a7 - ld a, [hl] - and a - jr .asm_fe1ac - -.asm_fe1ab - scf -.asm_fe1ac - pop hl - pop bc - ret - -Func_fe1af: - push bc - push hl - ld b, a - ld hl, wNPCMovementDirections + 1 - ld c, 8 -.asm_fe1b7 - ld a, [hli] - cp b - jr z, .asm_fe1c2 - inc hl - dec c - jr nz, .asm_fe1b7 - scf - jr .asm_fe1c4 - -.asm_fe1c2 - ld a, [hl] - and a -.asm_fe1c4 - pop hl - pop bc - ret - -Func_fe1c7: - call Func_fe0c3 - cp $ff - ret z - ld e, a - callab PlayPikachuSoundClip - ret - -Func_fe1d7: - ld a, $1 - ld [wMuteAudioAndPauseMusic], a - call DelayFrame - ld a, [wAudioROMBank] - push af - ld a, BANK(SFX_Battle_2F) - ld [wAudioROMBank], a - ld [wAudioSavedROMBank], a - call Func_fe203 - call PlaySound - call Func_fe227 - call WaitForSoundToFinish - pop af - ld [wAudioROMBank], a - ld [wAudioSavedROMBank], a - xor a - ld [wMuteAudioAndPauseMusic], a - ret - -Func_fe203: - ld hl, MoveSoundTable - ld e, THUNDERBOLT - ld d, 0 - add hl, de - add hl, de - add hl, de - ld a, BANK(MoveSoundTable) - call GetFarByte - ld b, a - inc hl - ld a, BANK(MoveSoundTable) - call GetFarByte - inc hl - ld [wFrequencyModifier], a - ld a, BANK(MoveSoundTable) - call GetFarByte - ld [wTempoModifier], a - ld a, b - ret - -Func_fe227: - ld hl, Data_fe242 -.asm_fe22a - ld a, [hli] - cp $ff - ret z - ld c, a - ld b, [hl] - inc hl - push hl - call Func_fe238 - pop hl - jr .asm_fe22a - -Func_fe238: - ld a, b - ld [rBGP], a - call UpdateGBCPal_BGP - call DelayFrames - ret - -Data_fe242: - db 4, %11000000 - db 4, %11100100 - db 4, %11000000 - db 4, %11100100 - db 4, %11000000 - db 4, %11100100 - db 4, %11000000 - db 4, %11100100 - db 4, %11000000 - db 4, %11100100 - db 4, %11000000 - db 4, %11100100 - db 4, %11000000 - db 4, %11100100 - db 4, %11000000 - db 4, %11100100 - db 4, %11000000 - db 4, %11100100 - db 4, %11000000 - db 4, %11100100 - db $ff - -Data_fe26b: - dr $fe26b, $fe28a - -Data_fe28a: - dr $fe28a, $fe2a4 -Data_fe2a4: - dr $fe2a4, $fe2be -Data_fe2be: - dr $fe2be, $fe2d8 -Data_fe2d8: - dr $fe2d8, $fe2f2 -Data_fe2f2: - dr $fe2f2, $fe30c -Data_fe30c: - dr $fe30c, $fe326 -Data_fe326: - dr $fe326, $fe340 -Data_fe340: - dr $fe340, $fe35a -Data_fe35a: - dr $fe35a, $fe374 -Data_fe374: - dr $fe374, $fe390 -Data_fe390: - dr $fe390, $fe3aa -Data_fe3aa: - dr $fe3aa, $fe3c4 -Data_fe3c4: - dr $fe3c4, $fe3de -Data_fe3de: - dr $fe3de, $fe3f8 -Data_fe3f8: - dr $fe3f8, $fe412 -Data_fe412: - dr $fe412, $fe42c -Data_fe42c: - dr $fe42c, $fe446 -Data_fe446: - dr $fe446, $fe460 -Data_fe460: - dr $fe460, $fe47a -Data_fe47a: - dr $fe47a, $fe494 -Data_fe494: - dr $fe494, $fe4b4 -Data_fe4b4: - dr $fe4b4, $fe4ce -Data_fe4ce: - dr $fe4ce, $fe4e8 -Data_fe4e8: - dr $fe4e8, $fe502 -Data_fe502: - dr $fe502, $fe520 -Data_fe520: - dr $fe520, $fe53e -Data_fe53e: - dr $fe53e, $fe558 -Data_fe558: - dr $fe558, $fe572 - -Data_fe572: - dr $fe572, $fe66f +INCLUDE "engine/pikachu_pic_animation.asm" OfficerJennySprite: INCBIN "gfx/sprites/officer_jenny.2bpp" PikachuSprite: INCBIN "gfx/sprites/pikachu.2bpp" diff --git a/engine/pikachu_pic_animation.asm b/engine/pikachu_pic_animation.asm new file mode 100755 index 00000000..81a94cbd --- /dev/null +++ b/engine/pikachu_pic_animation.asm @@ -0,0 +1,2898 @@ +Func_fd004:: ; fd004 (3f:5004) + call Func_fd05e + jr c, asm_fd00f + call GetPikaPicAnimationScriptIndex + call Func_fcffb +asm_fd00f: ; fd00f (3f:500f) + ld [wExpressionNumber], a + ld hl, PikachuEmotionTable + call DoStarterPikachuEmotions + ret + +PikachuEmotionTable: ; fd019 (3f:4019) + dw PikachuEmotion0_fd115 + dw PikachuEmotion1_fd141 + dw PikachuEmotion2_fd116 + dw PikachuEmotion3_fd160 + dw PikachuEmotion4_fd136 + dw PikachuEmotion5_fd14d + dw PikachuEmotion6_fd153 + dw PikachuEmotion7_fd128 + dw PikachuEmotion8_fd147 + dw PikachuEmotion9_fd166 + dw PikachuEmotion10_fd11e + dw PikachuEmotion11_fd173 + dw PikachuEmotion12_fd17a + dw PikachuEmotion13_fd180 + dw PikachuEmotion14_fd189 + dw PikachuEmotion15_fd191 + dw PikachuEmotion16_fd197 + dw PikachuEmotion17_fd19d + dw PikachuEmotion18_fd1a3 + dw PikachuEmotion19_fd1a9 + dw PikachuEmotion20_fd1b1 + dw PikachuEmotion21_fd1b9 + dw PikachuEmotion22_fd1c1 + dw PikachuEmotion23_fd1c7 + dw PikachuEmotion24_fd1cf + dw PikachuEmotion25_fd1d7 + dw PikachuEmotion26_fd1df + dw PikachuEmotion27_fd1eb + dw PikachuEmotion28_fd1f1 + dw PikachuEmotion29_fd1f7 + dw PikachuEmotion30_fd1fc + dw PikachuEmotion31_fd20a + dw PikachuEmotion32_fd213 + dw PikachuEmotion33_fd05d + +PikachuEmotion33_fd05d: ; fd05d (3f:505d) + db $ff + +Func_fd05e: ; fd05e (3f:505e) + ld a, [wCurMap] + cp POKEMON_FAN_CLUB + jr nz, .notFanClub + ld hl, wPreventBlackout + bit 7, [hl] + ld a, $1d + jr z, .asm_fd0c9 + call Func_154a + ld a, $1e + jr nz, .asm_fd0c9 + jr .asm_fd096 +.notFanClub + ld a, [wCurMap] + cp PEWTER_POKECENTER + jr nz, .notPewterPokecenter + call Func_154a + ld a, $1a + jr nz, .asm_fd0c9 + jr .asm_fd096 +.notPewterPokecenter + callab Func_f24ae + ld a, e + cp $ff + jr nz, .asm_fd0c9 + jr .asm_fd096 +.asm_fd096 + call IsPlayerPikachuAsleepInParty + ld a, $b + jr c, .asm_fd0c9 + callab Func_fce73 ; same bank + ld a, $1c + jr c, .asm_fd0c9 + ld a, [wCurMap] + cp POKEMONTOWER_1 + jr c, .notInLavenderTower + cp POKEMONTOWER_7 + 1 + ld a, $16 + jr c, .asm_fd0c9 +.notInLavenderTower + ld a, [wd49c] + and a + jr z, .asm_fd0c7 + dec a + ld c, a + ld b, $0 + ld hl, Pointer_fd0cb + add hl, bc + ld a, [hl] + jr .asm_fd0c9 +.asm_fd0c7 + and a + ret +.asm_fd0c9 + scf + ret + +Pointer_fd0cb: + db $12, $15, $17, $18, $19 + +IsPlayerPikachuAsleepInParty:: ; fd0d0 (3f:50d0) + xor a + ld [wWhichPokemon], a +.loop + ld a, [wWhichPokemon] + ld c, a + ld b, $0 + ld hl, wPartySpecies + add hl, bc + ld a, [hl] + cp $ff + jr z, .done + cp PIKACHU + jr nz, .curMonNotStarterPikachu + callab IsThisPartymonStarterPikachu + jr nc, .curMonNotStarterPikachu + ld a, [wWhichPokemon] + ld hl, wPartyMon1Status + ld bc, wPartyMon2 - wPartyMon1 + call AddNTimes + ld a, [hl] + and SLP + jr z, .done + jr .curMonSleepingPikachu +.curMonNotStarterPikachu + ld a, [wWhichPokemon] + cp PARTY_LENGTH - 1 + jr z, .done + inc a + ld [wWhichPokemon], a + jr .loop +.curMonSleepingPikachu + scf + ret +.done + and a + ret + +PikachuEmotion0_fd115: ; fd115 (3f:5115) + db $ff + +PikachuEmotion2_fd116: ; fd116 (3f:5116) + pikaemotion_dummy2 + pikaemotion_emotebubble SMILE_BUBBLE + pikaemotion_pcm $22 + pikaemotion_5 $2 + db $ff + +PikachuEmotion10_fd11e: ; fd11e (3f:511e) + pikaemotion_dummy2 + pikaemotion_subcmd PIKAEMOTION_SUBCMD_LOADEXTRAPIKASPRITES + pikaemotion_emotebubble HEART_BUBBLE + pikaemotion_pcm $4 + pikaemotion_5 $a + db $ff + +PikachuEmotion7_fd128: ; fd128 (3f:5128) + pikaemotion_dummy2 + pikaemotion_subcmd PIKAEMOTION_SUBCMD_LOADEXTRAPIKASPRITES + pikaemotion_4 Pointer_fd224 + pikaemotion_pcm $0 + pikaemotion_4 Pointer_fd224 + pikaemotion_5 $7 + db $ff + +PikachuEmotion4_fd136: ; fd136 (3f:5136) + pikaemotion_dummy2 + pikaemotion_subcmd PIKAEMOTION_SUBCMD_LOADEXTRAPIKASPRITES + pikaemotion_4 Pointer_fd230 + pikaemotion_pcm $1c + pikaemotion_5 $4 + db $ff + +PikachuEmotion1_fd141: ; fd141 (3f:5141) + pikaemotion_dummy2 + pikaemotion_pcm $ff + pikaemotion_5 $1 + db $ff + +PikachuEmotion8_fd147: ; fd147 (3f:5147) + pikaemotion_dummy2 + pikaemotion_pcm $26 + pikaemotion_5 $8 + db $ff + +PikachuEmotion5_fd14d: ; fd14d (3f:514d) + pikaemotion_dummy2 + pikaemotion_pcm $1e + pikaemotion_5 $5 + db $ff + +PikachuEmotion6_fd153: ; fd153 (3f:5153) + pikaemotion_dummy2 + pikaemotion_subcmd PIKAEMOTION_SUBCMD_LOADEXTRAPIKASPRITES + pikaemotion_pcm $ff + pikaemotion_4 Pointer_fd21e + pikaemotion_emotebubble SKULL_BUBBLE + pikaemotion_5 $6 + db $ff + +PikachuEmotion3_fd160: ; fd160 (3f:5160) + pikaemotion_dummy2 + pikaemotion_pcm $27 + pikaemotion_5 $3 + db $ff + +PikachuEmotion9_fd166: ; fd166 (3f:5166) + pikaemotion_dummy2 + pikaemotion_subcmd PIKAEMOTION_SUBCMD_LOADEXTRAPIKASPRITES + pikaemotion_pcm $5 + pikaemotion_4 Pointer_fd218 + pikaemotion_emotebubble SKULL_BUBBLE + pikaemotion_5 $9 + db $ff + +PikachuEmotion11_fd173: ; fd173 (3f:5173) + pikaemotion_emotebubble ZZZ_BUBBLE + pikaemotion_pcm $24 + pikaemotion_5 $b + db $ff + +PikachuEmotion12_fd17a: ; fd17a (3f:517a) + pikaemotion_dummy2 + pikaemotion_pcm $ff + pikaemotion_5 $c + db $ff + +PikachuEmotion13_fd180: ; fd180 (3f:5180) + pikaemotion_dummy2 + pikaemotion_subcmd PIKAEMOTION_SUBCMD_LOADEXTRAPIKASPRITES + pikaemotion_4 Pointer_fd21e + pikaemotion_5 $d + db $ff + +PikachuEmotion14_fd189: ; fd189 (3f:5189) + pikaemotion_dummy2 + pikaemotion_emotebubble BOLT_BUBBLE + pikaemotion_pcm $9 + pikaemotion_5 $e + db $ff + +PikachuEmotion15_fd191: ; fd191 (3f:5191) + pikaemotion_dummy2 + pikaemotion_pcm $21 + pikaemotion_5 $f + db $ff + +PikachuEmotion16_fd197: ; fd197 (3f:5197) + pikaemotion_dummy2 + pikaemotion_pcm $20 + pikaemotion_5 $10 + db $ff + +PikachuEmotion17_fd19d: ; fd19d (3f:519d) + pikaemotion_dummy2 + pikaemotion_pcm $c + pikaemotion_5 $11 + db $ff + +PikachuEmotion18_fd1a3: ; fd1a3 (3f:51a3) + pikaemotion_dummy2 + pikaemotion_pcm $ff + pikaemotion_5 $12 + db $ff + +PikachuEmotion19_fd1a9: ; fd1a9 (3f:51a9) + pikaemotion_dummy2 + pikaemotion_emotebubble HEART_BUBBLE + pikaemotion_pcm $20 + pikaemotion_5 $13 + db $ff + +PikachuEmotion20_fd1b1: ; fd1b1 (3f:51b1) + pikaemotion_dummy2 + pikaemotion_emotebubble HEART_BUBBLE + pikaemotion_pcm $4 + pikaemotion_5 $14 + db $ff + +PikachuEmotion21_fd1b9: ; fd1b9 (3f:51b9) + pikaemotion_dummy2 + pikaemotion_emotebubble FISH_BUBBLE + pikaemotion_pcm $ff + pikaemotion_5 $15 + db $ff + +PikachuEmotion22_fd1c1: ; fd1c1 (3f:51c1) + pikaemotion_dummy2 + pikaemotion_pcm $3 + pikaemotion_5 $16 + db $ff + +PikachuEmotion23_fd1c7: ; fd1c7 (3f:51c7) + pikaemotion_dummy2 + pikaemotion_pcm $12 + pikaemotion_5 $17 + pikaemotion_subcmd PIKAEMOTION_SUBCMD_SHOWMAPVIEW + db $ff + +PikachuEmotion24_fd1cf: ; fd1cf (3f:51cf) + pikaemotion_dummy2 + pikaemotion_emotebubble EXCLAMATION_BUBBLE + pikaemotion_pcm $ff + pikaemotion_5 $18 + db $ff + +PikachuEmotion25_fd1d7: ; fd1d7 (3f:51d7) + pikaemotion_dummy2 + pikaemotion_emotebubble BOLT_BUBBLE + pikaemotion_pcm $22 + pikaemotion_5 $19 + db $ff + +PikachuEmotion26_fd1df: ; fd1df (3f:51df) + pikaemotion_dummy2 + pikaemotion_emotebubble ZZZ_BUBBLE + pikaemotion_pcm $24 + pikaemotion_5 $1a + pikaemotion_subcmd PIKAEMOTION_SUBCMD_SHOWMAPVIEW + pikaemotion_subcmd PIKAEMOTION_SUBCMD_CHECKPEWTERCENTER + db $ff + +PikachuEmotion27_fd1eb: ; fd1eb (3f:51eb) + pikaemotion_dummy2 + pikaemotion_pcm $8 + pikaemotion_5 $1b + db $ff + +PikachuEmotion28_fd1f1: ; fd1f1 (3f:51f1) + pikaemotion_dummy2 + pikaemotion_pcm $e + pikaemotion_5 $1c + db $ff + +PikachuEmotion29_fd1f7: ; fd1f7 (3f:51f7) + pikaemotion_pcm $4 + pikaemotion_5 $a + db $ff + +PikachuEmotion30_fd1fc: ; fd1fc (3f:51fc) + pikaemotion_9 + pikaemotion_emotebubble HEART_BUBBLE + pikaemotion_pcm $4 + pikaemotion_5 $14 + pikaemotion_subcmd PIKAEMOTION_SUBCMD_SHOWMAPVIEW + pikaemotion_subcmd PIKAEMOTION_SUBCMD_LOADFONT + pikaemotion_subcmd PIKAEMOTION_SUBCMD_CHECKLAVENDERTOWER + db $ff + +PikachuEmotion31_fd20a: ; fd20a (3f:520a) + pikaemotion_pcm $12 + pikaemotion_5 $17 + pikaemotion_subcmd PIKAEMOTION_SUBCMD_SHOWMAPVIEW + pikaemotion_subcmd PIKAEMOTION_SUBCMD_CHECKBILLSHOUSE + db $ff + +PikachuEmotion32_fd213: ; fd213 (3f:5213) + pikaemotion_pcm $19 + pikaemotion_5 $17 + db $ff + +Pointer_fd218: ; fd218 (3f:5218) + + db $00 + db $39, $01 + db $3e, $1e + db $3f + +Pointer_fd21e: ; fd21e (3f:521e) + db $00 + db $39, $00 + db $3e, $1e + db $3f + +Pointer_fd224: ; fd224 (3f:5224) + db $00 + db $3c, $07, $2f + db $3c, $07, $2f + db $3f + +Pointer_fd22c: ; fd22c (3f:522c) + db $3b, $1f, $03 + db $3f + +Pointer_fd230: ; fd230 (3f:5230) + db $00 + db $3c, $0f, $1f + db $3c, $0f, $1f + db $3f + +Pointer_fd238: ; fd238 (3f:5238) + db $00 + db $05, $07 + db $39, $00 + db $05, $07 + db $06, $07 + db $39, $00 + db $06, $07 + db $08, $07 + db $39, $00 + db $08, $07 + db $07, $07 + db $39, $00 + db $07, $07 + db $3f + +Func_fd252: ; fd252 (3f:5252) + ld a, $40 + ld [h_0xFFFC], a + call LoadPikachuSpriteIntoVRAM + call Func_fd266 + and a + jr z, .asm_fd262 + call Func_159b +.asm_fd262 + xor a + ld [h_0xFFFC], a + ret + +Func_fd266: + ld a, [wSpriteStateData2 + 15 * 16 + 4] + ld e, a + ld a, [wSpriteStateData2 + 15 * 16 + 5] + ld d, a + ld a, [wYCoord] + add 4 + cp e + jr z, .asm_fd280 + jr nc, .asm_fd27e + ld hl, Data_fd294 + ld a, 1 + ret + +.asm_fd27e + xor a + ret + +.asm_fd280 + ld a, [wXCoord] + add 4 + cp d + jr c, .asm_fd28e + ld hl, Data_fd299 + ld a, 2 + ret + +.asm_fd28e + ld hl, Data_fd29d + ld a, 3 + ret + +Data_fd294: + db $00 + db $36 + db $2b + db $34 + db $3f + +Data_fd299: + db $00 + db $36 + db $34 + db $3f + +Data_fd29d: + db $00 + db $36 + db $33 + db $3f + +Func_fd2a1:: ; fd2a1 (3f:52a1) + ld a, b + ld [wd44a], a + ld a, l + ld [wd44b], a + ld a, h + ld [wd44b + 1], a + call PikachuSwapSpriteStateData +.loop + call Func_fd2f5 + jr nc, .done + call Func_fd329 + jr .loop + +.done + call PikachuSwapSpriteStateData + call DelayFrame + ret + +PikachuSwapSpriteStateData: + ld a, [wUpdateSpritesEnabled] + push af + ld a, $ff + ld [wUpdateSpritesEnabled], a + push hl + push de + push bc + + ld hl, wSpriteStateData1 + ld de, wSpriteStateData1 + $f0 + ld c, $10 + call SwapBytes3f + + ld hl, wSpriteStateData2 + ld de, wSpriteStateData2 + $f0 + ld c, $10 + call SwapBytes3f + + pop bc + pop de + pop hl + pop af + ld [wUpdateSpritesEnabled], a + ret + +SwapBytes3f: +.loop + ld b, [hl] + ld a, [de] + ld [hli], a + ld a, b + ld [de], a + inc de + dec c + jr nz, .loop + ret + +Func_fd2f5: + call Func_157c + cp $3f + ret z + ld c, a + ld b, 0 + ld hl, Data_fd3b0 + add hl, bc + add hl, bc + add hl, bc + add hl, bc + ld a, [hli] + ld [wPikaPicAnimPointer + 1], a + ld a, [hli] + cp $80 + jr nz, .asm_fd311 + call Func_157c +.asm_fd311 + ld [wPikaPicAnimPointer], a + ld a, [hli] + ld [$d450], a + ld a, [hli] + cp $80 + jr nz, .asm_fd320 + call Func_157c +.asm_fd320 + ld [$d44f], a + xor a + ld [wPikaPicAnimTimer], a + scf + ret + +Func_fd329: + xor a + ld [$d44c], a + ld [$d457], a + ld [$d458], a + ld a, [wSpriteStateData2 + 7] + push af +.asm_fd337 + ld bc, wSpriteStateData1 + ld a, [wPikaPicAnimPointer + 1] + ld hl, Jumptable_fd4ac + call Func_fd365 + ld a, [$d450] + ld hl, Jumptable_fd65c + call Func_fd365 + call Func_fd36e + call Func_fd39d + call DelayFrame + call DelayFrame + ld hl, $d44c + bit 7, [hl] + jr z, .asm_fd337 + pop af + ld [wSpriteStateData2 + 7], a + scf + ret + +Func_fd365: + ld e, a + ld d, 0 + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] + +Func_fd36e: + ld hl, 2 + add hl, bc + ld a, [wPikaPicAnimTimer + 1] + ld [hl], a + ld a, [wPikaSpriteY] + ld d, a + ld a, [$d456] + add d + ld hl, 4 + add hl, bc + ld [hl], a + ld a, [wPikaSpriteX] + ld d, a + ld a, [$d455] + add d + ld hl, 6 + add hl, bc + ld [hl], a + ld hl, $d44c + bit 6, [hl] + ret z + ld hl, wSpriteStateData2 + 7 - wSpriteStateData1 + add hl, bc + ld [hl], 0 + ret + +Func_fd39d: + ld hl, $d44c + bit 6, [hl] + res 6, [hl] + ld hl, wd736 + res 6, [hl] + ret z + set 6, [hl] + call Func_fd7f3 + ret + +Data_fd3b0: + db $01, $00, $00, $00 ; $00 + db $03, $80, $01, $00 ; $01 + db $04, $80, $01, $00 ; $02 + db $05, $80, $01, $00 ; $03 + db $06, $80, $01, $00 ; $04 + db $07, $80, $01, $00 ; $05 + db $08, $80, $01, $00 ; $06 + db $09, $80, $01, $00 ; $07 + db $0a, $80, $01, $00 ; $08 + db $03, $80, $06, $00 ; $09 + db $04, $80, $06, $00 ; $0a + db $05, $80, $06, $00 ; $0b + db $06, $80, $06, $00 ; $0c + db $07, $80, $06, $00 ; $0d + db $08, $80, $06, $00 ; $0e + db $09, $80, $06, $00 ; $0f + db $0a, $80, $06, $00 ; $10 + db $03, $80, $03, $80 ; $11 + db $04, $80, $03, $80 ; $12 + db $05, $80, $03, $80 ; $13 + db $06, $80, $03, $80 ; $14 + db $07, $80, $03, $80 ; $15 + db $08, $80, $03, $80 ; $16 + db $09, $80, $03, $80 ; $17 + db $0a, $80, $03, $80 ; $18 + db $03, $80, $07, $80 ; $19 + db $04, $80, $07, $80 ; $1a + db $05, $80, $07, $80 ; $1b + db $06, $80, $07, $80 ; $1c + db $0b, $27, $02, $00 ; $1d + db $0c, $27, $02, $00 ; $1e + db $0d, $27, $02, $00 ; $1f + db $0e, $27, $02, $00 ; $20 + db $0f, $27, $02, $00 ; $21 + db $10, $27, $02, $00 ; $22 + db $11, $27, $02, $00 ; $23 + db $12, $27, $02, $00 ; $24 + db $0b, $0f, $02, $00 ; $25 + db $0c, $0f, $02, $00 ; $26 + db $0d, $0f, $02, $00 ; $27 + db $0e, $0f, $02, $00 ; $28 + db $0f, $0f, $02, $00 ; $29 + db $10, $0f, $02, $00 ; $2a + db $11, $0f, $02, $00 ; $2b + db $12, $0f, $02, $00 ; $2c + db $0b, $0f, $08, $17 ; $2d + db $0c, $0f, $08, $17 ; $2e + db $0d, $0f, $08, $17 ; $2f + db $0e, $0f, $08, $17 ; $30 + db $0f, $0f, $08, $17 ; $31 + db $10, $0f, $08, $17 ; $32 + db $11, $0f, $08, $17 ; $33 + db $12, $0f, $08, $17 ; $34 + db $13, $0f, $06, $00 ; $35 + db $14, $0f, $06, $00 ; $36 + db $15, $0f, $06, $00 ; $37 + db $16, $0f, $06, $00 ; $38 + db $02, $80, $04, $00 ; $39 + db $02, $80, $05, $00 ; $3a + db $02, $80, $03, $80 ; $3b + db $02, $80, $07, $80 ; $3c + db $02, $80, $09, $80 ; $3d + db $02, $80, $06, $00 ; $3e + +Jumptable_fd4ac: + dw Func_fd4e5 + dw Func_fd4e9 + dw Func_fd504 + dw Func_fd50c + dw Func_fd511 + dw Func_fd518 + dw Func_fd52c + dw Func_fd540 + dw Func_fd553 + dw Func_fd566 + dw Func_fd579 + dw Func_fd5b1 + dw Func_fd5b5 + dw Func_fd5b9 + dw Func_fd5bd + dw Func_fd5c1 + dw Func_fd5c5 + dw Func_fd5c9 + dw Func_fd5cd + dw Func_fd5ea + dw Func_fd5ee + dw Func_fd5f2 + dw Func_fd5f6 + dw Func_fd4e5 + +Func_fd4dc: + ld a, [$d44c] + set 7, a + ld [$d44c], a + ret + +Func_fd4e5: + call Func_fd4dc + ret + +Func_fd4e9: + ld hl, 4 + add hl, bc + ld a, [hl] + ld [wPikaSpriteY], a + ld hl, 6 + add hl, bc + ld a, [hl] + ld [wPikaSpriteX], a + xor a + ld [$d456], a + ld [$d455], a + call Func_fd4dc + ret + +Func_fd504: + call Func_fd775 + ret nz + call Func_fd4dc + ret + +Func_fd50c: + call GetObjectFacing + jr asm_fd58c + +Func_fd511: + call GetObjectFacing + xor %100 + jr asm_fd58c + +Func_fd518: + call GetObjectFacing + ld hl, Data_fd523 + call Func_fd5a0 + jr asm_fd58c + +Data_fd523: + db SPRITE_FACING_DOWN, SPRITE_FACING_RIGHT + db SPRITE_FACING_UP, SPRITE_FACING_LEFT + db SPRITE_FACING_LEFT, SPRITE_FACING_DOWN + db SPRITE_FACING_RIGHT, SPRITE_FACING_UP + db $ff + +Func_fd52c: + call GetObjectFacing + ld hl, Data_fd537 + call Func_fd5a0 + jr asm_fd58c + +Data_fd537: + db SPRITE_FACING_DOWN, SPRITE_FACING_LEFT + db SPRITE_FACING_UP, SPRITE_FACING_RIGHT + db SPRITE_FACING_LEFT, SPRITE_FACING_UP + db SPRITE_FACING_RIGHT, SPRITE_FACING_DOWN + db $ff + +Func_fd540: + call GetObjectFacing + ld hl, Data_fd54b + call Func_fd5a0 + jr asm_fd58c + +Data_fd54b: + db SPRITE_FACING_DOWN, SPRITE_FACING_UP | $10 + db SPRITE_FACING_UP, SPRITE_FACING_LEFT | $10 + db SPRITE_FACING_LEFT, SPRITE_FACING_DOWN | $10 + db SPRITE_FACING_RIGHT, SPRITE_FACING_RIGHT | $10 + +Func_fd553: + call GetObjectFacing + ld hl, Data_fd55e + call Func_fd5a0 + jr asm_fd58c + +Data_fd55e: + db SPRITE_FACING_DOWN, SPRITE_FACING_DOWN | $10 + db SPRITE_FACING_UP, SPRITE_FACING_RIGHT | $10 + db SPRITE_FACING_LEFT, SPRITE_FACING_LEFT | $10 + db SPRITE_FACING_RIGHT, SPRITE_FACING_UP | $10 + +Func_fd566: + call GetObjectFacing + ld hl, Data_fd571 + call Func_fd5a0 + jr asm_fd58c + +Data_fd571: + db SPRITE_FACING_DOWN, SPRITE_FACING_RIGHT | $10 + db SPRITE_FACING_UP, SPRITE_FACING_DOWN | $10 + db SPRITE_FACING_LEFT, SPRITE_FACING_UP | $10 + db SPRITE_FACING_RIGHT, SPRITE_FACING_LEFT | $10 + +Func_fd579: + call GetObjectFacing + ld hl, Data_fd584 + call Func_fd5a0 + jr asm_fd58c + +Data_fd584: + db SPRITE_FACING_DOWN, SPRITE_FACING_LEFT | $10 + db SPRITE_FACING_UP, SPRITE_FACING_UP | $10 + db SPRITE_FACING_LEFT, SPRITE_FACING_RIGHT | $10 + db SPRITE_FACING_RIGHT, SPRITE_FACING_DOWN | $10 + +asm_fd58c + rrca + rrca + and $7 + ld e, a + call Func_fd784 + ld d, a + call UpdatePikachuPosition + call Func_fd775 + ret nz + call Func_fd4dc + ret + +Func_fd5a0: + push de + ld d, a +.asm_fd5a2 + ld a, [hli] + cp d + jr z, .asm_fd5ad + inc hl + cp $ff + jr nz, .asm_fd5a2 + pop de + ret + +.asm_fd5ad + ld a, [hl] + pop de + scf + ret + +Func_fd5b1: + ld a, SPRITE_FACING_DOWN >> 2 + jr asm_fd5d1 + +Func_fd5b5: + ld a, SPRITE_FACING_UP >> 2 + jr asm_fd5d1 + +Func_fd5b9: + ld a, SPRITE_FACING_LEFT >> 2 + jr asm_fd5d1 + +Func_fd5bd: + ld a, SPRITE_FACING_RIGHT >> 2 + jr asm_fd5d1 + +Func_fd5c1: + ld e, 4 + jr asm_fd5d5 + +Func_fd5c5: + ld e, 5 + jr asm_fd5d5 + +Func_fd5c9: + ld e, 6 + jr asm_fd5d5 + +Func_fd5cd: + ld e, 7 + jr asm_fd5d5 + +asm_fd5d1 + ld e, a + call SetObjectFacing +asm_fd5d5 + call Func_fd784 + ld d, a + push de + call UpdatePikachuPosition + pop de + call Func_fd775 + ret nz + ld a, e + call Func_fd7cb + call Func_fd4dc + ret + +Func_fd5ea: + ld a, SPRITE_FACING_DOWN >> 2 + jr asm_fd5fa + +Func_fd5ee: + ld a, SPRITE_FACING_UP >> 2 + jr asm_fd5fa + +Func_fd5f2: + ld a, SPRITE_FACING_LEFT >> 2 + jr asm_fd5fa + +Func_fd5f6: + ld a, SPRITE_FACING_RIGHT >> 2 + jr asm_fd5fa + +asm_fd5fa + call SetObjectFacing + call Func_fd4dc + ret + +UpdatePikachuPosition: + push de + ld d, 0 + ld hl, Jumptable_fd60f + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + pop de + ld a, d + jp [hl] + +Jumptable_fd60f: + dw MovePikachuSpriteDown + dw MovePikachuSpriteUp + dw MovePikachuSpriteLeft + dw MovePikachuSpriteRight + dw MovePikachuSpriteDownLeft + dw MovePikachuSpriteDownRight + dw MovePikachuSpriteUpLeft + dw MovePikachuSpriteUpRight + +MovePikachuSpriteDown: + ld d, 0 + ld e, a + jr asm_fd64d + +MovePikachuSpriteUp: + ld d, 0 + cpl + inc a + ld e, a + jr asm_fd64d + +MovePikachuSpriteLeft: + cpl + inc a + ld d, a + ld e, 0 + jr asm_fd64d + +MovePikachuSpriteRight: + ld d, a + ld e, 0 + jr asm_fd64d + +MovePikachuSpriteDownLeft: + ld e, a + cpl + inc a + ld d, a + jr asm_fd64d + +MovePikachuSpriteDownRight: + ld e, a + ld d, a + jr asm_fd64d + +MovePikachuSpriteUpLeft: + cpl + inc a + ld e, a + ld d, a + jr asm_fd64d + +MovePikachuSpriteUpRight: + ld d, a + cpl + inc a + ld e, a + jr asm_fd64d + +asm_fd64d + ld a, [wPikaSpriteX] + add d + ld [wPikaSpriteX], a + ld a, [wPikaSpriteY] + add e + ld [wPikaSpriteY], a + ret + +Jumptable_fd65c: + dw Func_fd678 + dw Func_fd6a3 + dw Func_fd698 + dw Func_fd6f4 + dw Func_fd6ff + dw Func_fd718 + dw Func_fd68c + dw Func_fd6c6 + dw Func_fd6c0 + dw Func_fd6e2 + dw Func_fd68b + +Func_fd672: + ld hl, $d44c + set 6, [hl] + ret + +Func_fd678: + ld hl, 7 + add hl, bc + xor a + ld [hli], a + ld [hl], a + call Func_fd74a + ld d, a + call GetObjectFacing + or d + ld [wPikaPicAnimTimer + 1], a + ret + +Func_fd68b: + ret + +Func_fd68c: + call Func_fd74a + ld d, a + call Func_fd755 + or d + ld [wPikaPicAnimTimer + 1], a + ret + +Func_fd698: + call Func_fd74a + ld d, a + call GetObjectFacing + or d + ld d, a + jr asm_fd6ac + +Func_fd6a3: + call Func_fd74a + ld d, a + call Func_fd755 + or d + ld d, a +asm_fd6ac + ld hl, 8 + add hl, bc + call Func_fd78e + jr nz, .asm_fd6b6 + inc [hl] +.asm_fd6b6 + ld a, [hl] + rrca + rrca + and 3 + or d + ld [wPikaPicAnimTimer + 1], a + ret + +Func_fd6c0: + call GetObjectFacing + ld d, a + jr asm_fd6ca + +Func_fd6c6: + call Func_fd755 + ld d, a +asm_fd6ca + call Func_fd74a + or d + ld d, a + call Func_fd736 + or d + ld [wPikaPicAnimTimer + 1], a + call Func_fd79d + ld [$d456], a + and a + ret z + call Func_fd672 + ret + +Func_fd6e2: + call GetObjectFacing + ld d, a + call Func_fd74a + or d + ld [wPikaPicAnimTimer + 1], a + call Func_fd79d + ld [$d456], a + ret + +Func_fd6f4: + ld a, [$d44f] + and $40 + cp $40 + jr z, Func_fd6ff + jr Func_fd718 + +Func_fd6ff: + call Func_fd755 + ld d, a + call Func_fd78e + jr nz, .asm_fd710 + ld hl, Data_fd731 +.asm_fd70b + ld a, [hli] + cp d + jr nz, .asm_fd70b + ld d, [hl] +.asm_fd710 + call Func_fd74a + or d + ld [wPikaPicAnimTimer + 1], a + ret + +Func_fd718: + call Func_fd755 + ld d, a + call Func_fd78e + jr nz, .asm_fd529 + ld hl, Data_fd731End +.asm_fd524 + ld a, [hld] + cp d + jr nz, .asm_fd524 + ld d, [hl] +.asm_fd529 + call Func_fd74a + or d + ld [wPikaPicAnimTimer + 1], a + ret + +Data_fd731: + db SPRITE_FACING_DOWN + db SPRITE_FACING_LEFT + db SPRITE_FACING_UP + db SPRITE_FACING_RIGHT + db SPRITE_FACING_DOWN +Data_fd731End: + +Func_fd736: + push hl + ld hl, 7 + add hl, bc + ld a, [hl] + inc a + and $3 + ld [hli], a + jr nz, .asm_fd747 + ld a, [hl] + inc a + and $3 + ld [hl], a +.asm_fd747 + ld a, [hl] + pop hl + ret + +Func_fd74a: + push hl + ld hl, wSpriteStateData2 - wSpriteStateData1 + 14 + add hl, bc + ld a, [hl] + dec a + swap a + pop hl + ret + +Func_fd755: + push hl + ld hl, 2 + add hl, bc + ld a, [hl] + and $c + pop hl + ret + +GetObjectFacing: + push hl + ld hl, 9 + add hl, bc + ld a, [hl] + and $c + pop hl + ret + +SetObjectFacing: + push hl + ld hl, 9 + add hl, bc + add a + add a + and $c + ld [hl], a + pop hl + ret + +Func_fd775: + ld hl, $d457 + inc [hl] + ld a, [wPikaPicAnimPointer] + and $1f + inc a + cp [hl] + ret nz + ld [hl], 0 + ret + +Func_fd784: + ld a, [wPikaPicAnimPointer] + swap a + rrca + and $3 + inc a + ret + +Func_fd78e: + ld hl, $d458 + inc [hl] + ld a, [$d44f] + and $f + inc a + cp [hl] + ret nz + ld [hl], 0 + ret + +Func_fd79d: + call Func_fd7b2 + ld a, [$d458] + add e + ld [$d458], a + add $20 + ld e, a + push hl + push bc + call Sine_e + pop bc + pop hl + ret + +Func_fd7b2: + ld a, [$d44f] + and $f + inc a + ld d, a + ld a, [$d44f] + swap a + and $7 + ld e, a + ld a, 1 + jr z, .asm_fd7c9 +.asm_fd7c5 + add a + dec e + jr nz, .asm_fd7c5 +.asm_fd7c9 + ld e, a + ret + +Func_fd7cb: + push bc + ld c, a + ld b, 0 + ld hl, Data_fd7e3 + add hl, bc + add hl, bc + ld d, [hl] + inc hl + ld e, [hl] + pop bc + ld hl, wSpriteStateData2 - wSpriteStateData1 + 4 + add hl, bc + ld a, [hl] + add e + ld [hli], a + ld a, [hl] + add d + ld [hl], a + ret + +Data_fd7e3: + db 0, 1 + db 0, -1 + db -1, 0 + db 1, 0 + db -1, 1 + db 1, 1 + db -1, -1 + db 1, -1 + +Func_fd7f3: + push bc + push de + push hl + + ld bc, wOAMBuffer + 4 * 36 + ld a, [wPikaSpriteY] + ld e, a + ld a, [wPikaSpriteX] + ld d, a + ld hl, Data_fd80b + call Func_fd814 + + pop hl + pop de + pop bc + ret + +Data_fd80b: + db $02 + db $0c, $00, $ff, 0 + db $0c, $08, $ff, 1 << OAM_X_FLIP + +Func_fd814: + ld a, e + add $10 + ld e, a + ld a, d + add $8 + ld d, a + ld a, [hli] +.asm_fd81d + push af + ld a, [hli] + add e + ld [bc], a + inc bc + ld a, [hli] + add d + ld [bc], a + inc bc + ld a, [hli] + ld [bc], a + inc bc + ld a, [hli] + ld [bc], a + inc bc + pop af + dec a + jr nz, .asm_fd81d + ret + +LoadPikachuShadowIntoVRAM: + ld hl, vNPCSprites2 + $7f * $10 + ld de, LedgeHoppingShadowGFX_3F + lb bc, BANK(LedgeHoppingShadowGFX_3F), (LedgeHoppingShadowGFX_3FEnd - LedgeHoppingShadowGFX_3F) / 8 + jp CopyVideoDataDoubleAlternate + +LedgeHoppingShadowGFX_3F: +INCBIN "gfx/ledge_hopping_shadow.1bpp" +LedgeHoppingShadowGFX_3FEnd: + +LoadPikachuBallIconIntoVRAM: + ld hl, vNPCSprites2 + $7e * $10 + ld de, GFX_fd86b + lb bc, BANK(GFX_fd86b), 1 + jp CopyVideoDataDoubleAlternate + +Func_fd851: + ld hl, vNPCSprites + $c * $10 + ld a, 3 +.asm_fd856 + push af + push hl + ld de, GFX_fd86b + lb bc, BANK(GFX_fd86b), 4 + call CopyVideoDataAlternate + pop hl + ld de, 4 * $10 + add hl, de + pop af + dec a + jr nz, .asm_fd856 + ret + +GFX_fd86b: +INCBIN "gfx/unknown_fd86b.2bpp" + +LoadPikachuSpriteIntoVRAM: ; fd8ab (3f:58ab) + ld de, PikachuSprite + lb bc, BANK(PikachuSprite), (SandshrewSprite - PikachuSprite) / 32 + ld hl, vNPCSprites + $c * $10 + push bc + call CopyVideoDataAlternate + ld de, PikachuSprite + $c * $10 + ld hl, vNPCSprites2 + $c * $10 + ld a, [h_0xFFFC] + and a + jr z, .load + ld de, PikachuSprite + $c * $10 + ld hl, vNPCSprites2 + $4c * $10 +.load + pop bc + call CopyVideoDataAlternate + call LoadPikachuShadowIntoVRAM + call LoadPikachuBallIconIntoVRAM + ret + +PikachuPewterPokecenterCheck: ; fd8d4 (3f:58d4) + ld a, [wCurMap] + cp PEWTER_POKECENTER + ret nz + call Func_1542 + call Func_fcff2 + ret + +PikachuFanClubCheck: ; fd8e1 (3f:58e1) + ld a, [wCurMap] + cp POKEMON_FAN_CLUB + ret nz + call Func_1542 + call Func_fcff2 + ret + +PikachuBillsHouseCheck: ; fd8ee (3f:58ee) + ld a, [wCurMap] + cp BILLS_HOUSE + ret nz + call Func_1542 + ret + +Pikachu_LoadCurrentMapViewUpdateSpritesAndDelay3: ; fd8f8 (3f:58f8) + call LoadCurrentMapView + call UpdateSprites + call Delay3 + ret + +Cosine_e: ; cosine? + ld a, e + add $10 + jr asm_fd908 + +Sine_e: ; sine? + ld a, e +asm_fd908 + and $3f + cp $20 + jr nc, .asm_fd913 + call GetSine + ld a, h + ret + +.asm_fd913 + and $1f + call GetSine + ld a, h + cpl + inc a + ret + +GetSine: + ld e, a + ld a, d + ld d, 0 + ld hl, SineWave_3f + add hl, de + add hl, de + ld e, [hl] + inc hl + ld d, [hl] + ld hl, 0 +.asm_fd92b + srl a + jr nc, .asm_fd930 + add hl, de +.asm_fd930 + sla e + rl d + and a + jr nz, .asm_fd92b + ret + +SineWave_3f: + sine_wave $100 + +GetPikaPicAnimationScriptIndex: ; fd978 (3f:5978) + ld hl, PikachuMoodLookupTable + ld a, [wPikachuMood] + ld d, a +.asm_fd97f + ld a, [hli] + inc hl + cp d + jr c, .asm_fd97f + dec hl + ld e, [hl] + ld hl, PikaPicAnimationScriptPointerLookupTable + ld a, [wPikachuHappiness] + ld d, a + ld bc, 6 +.asm_fd990 + ld a, [hl] + cp d + jr nc, .asm_fd997 + add hl, bc + jr .asm_fd990 + +.asm_fd997 + ld d, 0 + add hl, de + ld a, [hl] + ret + +PikachuMoodLookupTable: +; First byte: mood threshold +; Second byte: column index in PikaPicAnimationScriptPointerLookupTable + db $28, 1 + db $7f, 2 + db $80, 3 + db $d2, 4 + db $ff, 5 + +PikaPicAnimationScriptPointerLookupTable: +; First byte: happiness threshold +; Remaining bytes: loaded based on Pikachu's mood + db $32, $0e, $0e, $06, $0d, $0d + db $64, $09, $09, $05, $0c, $0c + db $82, $03, $03, $01, $08, $08 + db $a0, $03, $03, $04, $0f, $0f + db $c8, $11, $11, $07, $02, $02 + db $fa, $11, $11, $10, $0a, $0a + db $ff, $11, $11, $13, $14, $14 + +StarterPikachuEmotionCommand_5: ; fd9d0 (3f:59d0) + ld a, [H_AUTOBGTRANSFERENABLED] + push af + xor a + ld [H_AUTOBGTRANSFERENABLED], a + ld a, [de] + ld [wExpressionNumber2], a + inc de + push de + call Func_fd9e4 + pop de + pop af + ld [H_AUTOBGTRANSFERENABLED], a + ret + +Func_fd9e4: + call Func_fda2c + callab Func_720e3 + call Func_fd9ff + call LoadCurrentPikaPicAnimScriptPointer + call Func_fda9a + call Func_fda2c + call RunDefaultPaletteCommand + ret + +Func_fd9ff: + ld hl, wPikaPicAnimPointer + ld bc, $11 + xor a + call FillMemory + ld hl, wNPCMovementDirections2 + ld bc, $21 + xor a + call FillMemory + call Func_fe15c + ld hl, $64 + ld a, l + ld [wPikaPicAnimTimer], a + ld a, h + ld [wPikaPicAnimTimer + 1], a + ld a, $07 + ld [wPikaSpriteY], a + ld a, $06 + ld [$d455], a + ret + +Func_fda2c: + xor a + ld [H_AUTOBGTRANSFERENABLED], a + coord hl, 6, 5 + lb bc, 5, 5 + call TextBoxBorder + call Delay3 + call UpdateSprites + ld a, $01 + ld [H_AUTOBGTRANSFERENABLED], a + call Delay3 + ret + +LoadCurrentPikaPicAnimScriptPointer: + ld a, [wExpressionNumber2] + cp $1d + jr c, .valid + ld a, 0 +.valid + ld e, a + ld d, 0 + ld hl, Pointers_fda5e + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + call UpdatePikaPicAnimPointer + ret + +Pointers_fda5e: + dw Data_fe28a ; 00 + dw Data_fe28a ; 01 + dw Data_fe2a4 ; 02 + dw Data_fe2be ; 03 + dw Data_fe2d8 ; 04 + dw Data_fe2f2 ; 05 + dw Data_fe30c ; 06 + dw Data_fe326 ; 07 + dw Data_fe340 ; 08 + dw Data_fe35a ; 09 + dw Data_fe374 ; 0a + dw Data_fe390 ; 0b + dw Data_fe3aa ; 0c + dw Data_fe3c4 ; 0d + dw Data_fe3de ; 0e + dw Data_fe3f8 ; 0f + dw Data_fe412 ; 10 + dw Data_fe42c ; 11 + dw Data_fe446 ; 12 + dw Data_fe460 ; 13 + dw Data_fe47a ; 14 + dw Data_fe494 ; 15 + dw Data_fe4b4 ; 16 + dw Data_fe4ce ; 17 + dw Data_fe4e8 ; 18 + dw Data_fe502 ; 19 + dw Data_fe520 ; 1a + dw Data_fe53e ; 1b + dw Data_fe558 ; 1c + dw Data_fe28a ; 1d + + +Func_fda9a: +.loop + xor a + ld [H_AUTOBGTRANSFERENABLED], a + call RunPikaPicAnimScript + call Func_fdad5 + call Func_fdad6 + call Func_fdad5 + ld a, $01 + ld [H_AUTOBGTRANSFERENABLED], a + call PikaPicAnimTimerAndJoypad + and a + jr z, .loop + ret + +PikaPicAnimTimerAndJoypad: + call Delay3 + call CheckPikaPicAnimTimer + and a + ret nz + call JoypadLowSensitivity + ld a, [hJoyPressed] + and A_BUTTON | B_BUTTON + ret + +CheckPikaPicAnimTimer: + ld hl, wPikaPicAnimTimer + dec [hl] + jr nz, .not_done_yet + inc hl + ld a, [hl] + and a + jr z, .timer_expired + dec [hl] +.not_done_yet + xor a + ret + +.timer_expired + ld a, $01 + ret + +Func_fdad5: + ret + +Func_fdad6: + ld bc, wNPCMovementDirections2 + 1 + ld a, 4 +.asm_fdadb + push af + push bc + ld hl, 0 + add hl, bc + ld a, [hli] + and a + jr z, .asm_fdb26 + ld a, [hli] + ld [$d459], a + ld a, [hli] + ld [$d45a], a + ld a, [hli] + ld [$d45b], a + ld a, [hli] + ld [$d456], a + ld a, [hli] + ld [$d457], a + ld a, [hli] + ld [$d458], a + ld a, [hli] + ld [$d45c], a + push bc + call Func_fdb7e + pop bc + ld hl, 1 + add hl, bc + ld a, [$d459] + ld [hli], a + ld a, [$d45a] + ld [hli], a + ld a, [$d45b] + ld [hli], a + ld a, [$d456] + ld [hli], a + ld a, [$d457] + ld [hli], a + ld a, [$d458] + ld [hli], a + ld a, [$d45c] + ld [hl], a +.asm_fdb26 + pop bc + ld hl, 8 + add hl, bc + ld b, h + ld c, l + pop af + dec a + jr nz, .asm_fdadb + ret + +Func_fdb32: + ld hl, wNPCMovementDirections2 + 1 + ld de, 8 + ld c, 4 +.asm_fdb3a + ld a, [hl] + and a + jr z, .asm_fdb44 + add hl, de + dec c + jr nz, .asm_fdb3a + scf + ret + +.asm_fdb44 + ld a, [wNPCMovementDirections2] + inc a + ld [wNPCMovementDirections2], a + ld [hli], a + call GetPikaPicAnimByte + ld [hli], a + call GetPikaPicAnimByte + ld [hl], a + xor a + ld [hli], a + ld [hli], a + call GetPikaPicAnimByte + ld [hli], a + call GetPikaPicAnimByte + ld [hli], a + call GetPikaPicAnimByte + ld [hli], a + and a + ret + +Func_fdb65: + call GetPikaPicAnimByte + ld b, a + ld hl, wNPCMovementDirections2 + 1 + ld de, 8 + ld c, 4 +.asm_fdb71 + ld a, [hl] + cp b + jr z, .asm_fdb7b + add hl, de + dec c + jr nz, .asm_fdb71 + scf + ret + +.asm_fdb7b + xor a + ld [hl], a + ret + +Func_fdb7e: +.asm_fdb7e + ld a, [$d459] + cp $23 + jr c, .asm_fdb87 + ld a, $04 +.asm_fdb87 + ld e, a + ld d, $00 + ld hl, Pointers_fdbc9 + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [$d45a] + ld e, a + ld d, 0 + add hl, de + add hl, de + ld a, [hli] + cp $e0 + jr z, .asm_fdba1 + jr .asm_fdbaa + +.asm_fdba1 + xor a + ld [$d45a], a + ld [$d45b], a + jr .asm_fdb7e + +.asm_fdbaa + push hl + call Func_fdd62 + pop hl + ld a, [hl] + and a + jr z, .asm_fdbc8 + ld a, [$d45b] + inc a + ld [$d45b], a + cp [hl] + jr nz, .asm_fdbc8 + xor a + ld [$d45b], a + ld a, [$d45a] + inc a + ld [$d45a], a +.asm_fdbc8 + ret + +Pointers_fdbc9: + dw Data_fdc11 + dw Data_fdc11 + dw Data_fdc29 + dw Data_fdc32 + dw Data_fdc3b + dw Data_fdc3e + dw Data_fdc41 + dw Data_fdc50 + dw Data_fdc61 + dw Data_fdc6e + dw Data_fdc77 + dw Data_fdc84 + dw Data_fdc8d + dw Data_fdc98 + dw Data_fdca5 + dw Data_fdcb2 + dw Data_fdcb7 + dw Data_fdcc2 + dw Data_fdccb + dw Data_fdcd4 + dw Data_fdcdf + dw Data_fdce8 + dw Data_fdcf1 + dw Data_fdcf6 + dw Data_fdd01 + dw Data_fdd0a + dw Data_fdd13 + dw Data_fdd1c + dw Data_fdd27 + dw Data_fdd2c + dw Data_fdd35 + dw Data_fdd40 + dw Data_fdd47 + dw Data_fdd54 + dw Data_fdd59 + dw Data_fdc3b + +Data_fdc11: + db $01, $14 + db $07, $02 + db $01, $01 + db $07, $02 + db $01, $01 + db $07, $08 + db $e0 +Data_fdc1e: + db $02, $02 + db $01, $01 + db $02, $02 + db $01, $01 + db $02, $08 + db $e0 +Data_fdc29: + db $00, $08 + db $08, $08 + db $00, $08 + db $08, $08 + db $e0 +Data_fdc32: + db $08, $08 + db $00, $08 + db $08, $08 + db $00, $08 + db $e0 +Data_fdc3b: + db $01, $00 + db $e0 +Data_fdc3e: + db $09, $00 + db $e0 +Data_fdc41: + db $00, $02 + db $0e, $04 + db $00, $08 + db $0e, $04 + db $00, $40 + db $0e, $04 + db $00, $40 + db $e0 +Data_fdc50: + db $00, $04 + db $0f, $04 + db $00, $04 + db $0f, $04 + db $00, $08 + db $0f, $04 + db $00, $08 + db $0f, $04 + db $e0 +Data_fdc61: + db $10, $01 + db $00, $01 + db $10, $01 + db $00, $40 + db $10, $01 + db $00, $40 + db $e0 +Data_fdc6e: + db $00, $08 + db $11, $08 + db $00, $14 + db $11, $08 + db $e0 +Data_fdc77: + db $00, $02 + db $12, $02 + db $00, $02 + db $12, $40 + db $00, $03 + db $12, $40 + db $e0 +Data_fdc84: + db $00, $08 + db $13, $40 + db $00, $04 + db $13, $40 + db $e0 +Data_fdc8d: + db $14, $08 + db $00, $02 + db $14, $08 + db $00, $02 + db $14, $08 + db $e0 +Data_fdc98: + db $15, $04 + db $00, $08 + db $15, $04 + db $00, $40 + db $15, $04 + db $00, $40 + db $e0 +Data_fdca5: + db $00, $02 + db $16, $02 + db $00, $02 + db $16, $02 + db $00, $14 + db $16, $02 + db $e0 +Data_fdcb2: + db $00, $08 + db $17, $08 + db $e0 +Data_fdcb7: + db $00, $08 + db $17, $03 + db $18, $05 + db $17, $03 + db $00, $05 + db $e0 +Data_fdcc2: + db $00, $14 + db $19, $08 + db $00, $14 + db $19, $08 + db $e0 +Data_fdccb: + db $00, $0d + db $1a, $0c + db $00, $64 + db $1a, $08 + db $e0 +Data_fdcd4: + db $00, $05 + db $1b, $05 + db $00, $05 + db $1b, $05 + db $00, $64 + db $e0 +Data_fdcdf: + db $00, $02 + db $1c, $02 + db $00, $02 + db $1c, $02 + db $e0 +Data_fdce8: + db $00, $05 + db $1d, $05 + db $00, $05 + db $1d, $05 + db $e0 +Data_fdcf1: + db $1e, $08 + db $00, $64 + db $e0 +Data_fdcf6: + db $00, $0a + db $1f, $03 + db $00, $03 + db $1f, $03 + db $00, $64 + db $e0 +Data_fdd01: + db $00, $03 + db $20, $64 + db $00, $08 + db $20, $08 + db $e0 +Data_fdd0a: + db $21, $06 + db $00, $06 + db $21, $06 + db $00, $06 + db $e0 +Data_fdd13: + db $00, $08 + db $22, $0c + db $00, $08 + db $22, $0c + db $e0 +Data_fdd1c: + db $00, $08 + db $09, $02 + db $0a, $01 + db $0b, $01 + db $0c, $64 + db $e0 +Data_fdd27: + db $00, $08 + db $24, $64 + db $e0 +Data_fdd2c: + db $00, $10 + db $25, $10 + db $00, $10 + db $25, $10 + db $e0 +Data_fdd35: + db $00, $06 + db $26, $06 + db $00, $06 + db $26, $06 + db $00, $64 + db $e0 +Data_fdd40: + db $00, $06 + db $09, $06 + db $0a, $64 + db $e0 +Data_fdd47: + db $00, $14 + db $09, $08 + db $00, $14 + db $09, $08 + db $0a, $08 + db $0b, $64 + db $e0 +Data_fdd54: + db $00, $04 + db $09, $64 + db $e0 +Data_fdd59: + db $00, $0c + db $09, $0c + db $00, $0c + db $09, $64 + db $e0 + +Func_fdd62: + and a + ret z + ld e, a + ld d, 0 + ld hl, Pointers_fddb8 + add hl, de + add hl, de + ld e, [hl] + inc hl + ld d, [hl] + ld a, [de] + ld c, a + inc de + ld a, [de] + ld b, a + inc de + push de + push bc + call Func_fdd98 + pop bc + pop de +.asm_fdd7c + push bc + push hl + ld a, [$d456] + ld c, a +.asm_fdd82 + ld a, [de] + inc de + cp $ff + jr z, .asm_fdd8a + add c + ld [hl], a +.asm_fdd8a + inc hl + dec b + jr nz, .asm_fdd82 + pop hl + ld bc, SCREEN_WIDTH + add hl, bc + pop bc + dec c + jr nz, .asm_fdd7c + ret + +Func_fdd98: + push bc + ld a, [$d458] + ld b, a + ld a, [$d455] + add b + coord hl, 0, 0 + ld bc, SCREEN_WIDTH + call AddNTimes + ld a, [$d457] + ld c, a + ld a, [wPikaSpriteY] + add c + ld c, a + ld b, 0 + add hl, bc + pop bc + ret + +Pointers_fddb8: + dw Data_fde0e + dw Data_fde0f + dw Data_fde2a + dw Data_fde60 + dw Data_fde63 + dw Data_fde67 + dw Data_fde6b + dw Data_fde45 + dw Data_fde6b + dw Data_fdfaa + dw Data_fdfc5 + dw Data_fdfe0 + dw Data_fdffb + dw Data_fe016 + dw Data_fde81 + dw Data_fde9c + dw Data_fdeb7 + dw Data_fded2 + dw Data_fdeed + dw Data_fdf08 + dw Data_fdf23 + dw Data_fdf3e + dw Data_fdf59 + dw Data_fdf74 + dw Data_fdf8f + dw Data_fdfaa + dw Data_fdfaa + dw Data_fdfaa + dw Data_fdfaa + dw Data_fdfaa + dw Data_fdfaa + dw Data_fdfaa + dw Data_fdfaa + dw Data_fdfaa + dw Data_fdfaa + dw Data_fdfaa + dw Data_fdfaa + dw Data_fdfaa + dw Data_fdfaa + dw Data_fdfaa + dw Data_fdfc5 + dw Data_fdfe0 + dw Data_fde0f + +Data_fde0e: + db $ff ; unused + +Data_fde0f: ; fde0f + db 5, 5 + db $00, $05, $0a, $0f, $14 + db $01, $06, $0b, $10, $15 + db $02, $07, $0c, $11, $16 + db $03, $08, $0d, $12, $17 + db $04, $09, $0e, $13, $18 + +Data_fde2a: ; fde2a + db 5, 5 + db $19, $1e, $23, $28, $2d + db $1a, $1f, $24, $29, $2e + db $1b, $20, $25, $2a, $2f + db $1c, $21, $26, $2b, $30 + db $1d, $22, $27, $2c, $31 + +Data_fde45: ; fde45 + db 5, 5 + db $ff, $ff, $ff, $ff, $ff + db $ff, $ff, $ff, $ff, $ff + db $ff, $20, $25, $ff, $ff + db $ff, $21, $26, $ff, $ff + db $ff, $ff, $ff, $ff, $ff + +Data_fde60: ; fde60 + db 1, 1 + db $00 + +Data_fde63: ; fde63 + db 2, 1 + db $00 + db $01 + +Data_fde67: ; fde67 + db 1, 2 + db $00, $01 + +Data_fde6b: ; fde6b + db 2, 2 + db $00, $01 + db $02, $03 + +Data_fde71: ; fde71 + db 3, 2 + db $00, $01 + db $02, $03 + db $04, $05 + +Data_fde79: ; fde79 + db 2, 3 + db $00, $01, $02 + db $03, $04, $05 + +Data_fde81: ; fde81 + db 5, 5 + db $ff, $ff, $ff, $ff, $ff + db $ff, $ff, $ff, $ff, $ff + db $00, $01, $02, $03, $04 + db $ff, $ff, $ff, $ff, $ff + db $ff, $ff, $ff, $ff, $ff + +Data_fde9c: ; fde9c + db 5, 5 + db $ff, $ff, $ff, $ff, $ff + db $ff, $ff, $ff, $ff, $ff + db $ff, $ff, $ff, $ff, $ff + db $00, $01, $02, $03, $04 + db $05, $06, $07, $08, $09 + +Data_fdeb7: ; fdeb7 + db 5, 5 + db $00, $01, $ff, $ff, $ff + db $02, $03, $ff, $ff, $ff + db $04, $05, $ff, $ff, $ff + db $ff, $ff, $ff, $ff, $ff + db $ff, $ff, $ff, $ff, $ff + +Data_fded2: ; fded2 + db 5, 5 + db $ff, $ff, $ff, $ff, $ff + db $00, $01, $02, $03, $04 + db $05, $06, $07, $08, $09 + db $0a, $0b, $0c, $0d, $0e + db $0f, $10, $11, $12, $13 + +Data_fdeed: ; fdeed + db 5, 5 + db $ff, $ff, $ff, $ff, $ff + db $ff, $ff, $ff, $00, $01 + db $ff, $ff, $ff, $02, $03 + db $ff, $ff, $ff, $ff, $ff + db $ff, $ff, $ff, $ff, $ff + +Data_fdf08: ; fdf08 + db 5, 5 + db $ff, $ff, $ff, $ff, $ff + db $ff, $ff, $ff, $ff, $ff + db $00, $01, $ff, $ff, $ff + db $02, $03, $ff, $ff, $ff + db $ff, $ff, $ff, $ff, $ff + +Data_fdf23: ; fdf23 + db 5, 5 + db $00, $01, $02, $03, $04 + db $05, $06, $07, $08, $09 + db $0a, $0b, $0c, $0d, $0e + db $0f, $10, $11, $12, $13 + db $14, $15, $16, $17, $18 + +Data_fdf3e: ; fdf3e + db 5, 5 + db $ff, $ff, $ff, $ff, $ff + db $ff, $ff, $ff, $ff, $ff + db $00, $01, $02, $03, $04 + db $05, $06, $07, $08, $09 + db $ff, $ff, $ff, $ff, $ff + +Data_fdf59: ; fdf59 + db 5, 5 + db $ff, $ff, $ff, $ff, $ff + db $ff, $ff, $ff, $ff, $ff + db $00, $01, $ff, $ff, $ff + db $02, $03, $ff, $ff, $ff + db $04, $05, $ff, $ff, $ff + +Data_fdf74: ; fdf74 + db 5, 5 + db $00, $01, $02, $03, $04 + db $05, $06, $07, $08, $09 + db $0a, $0b, $0c, $0d, $0e + db $0f, $10, $11, $12, $13 + db $14, $15, $16, $17, $18 + +Data_fdf8f: ; fdf8f + db 5, 5 + db $19, $1a, $1b, $1c, $1d + db $1e, $1f, $20, $21, $22 + db $23, $24, $25, $26, $27 + db $28, $29, $2a, $2b, $2c + db $2d, $2e, $2f, $30, $31 + +Data_fdfaa: ; fdfaa + db 5, 5 + db $00, $01, $02, $03, $04 + db $05, $06, $07, $08, $09 + db $0a, $0b, $0c, $0d, $0e + db $0f, $10, $11, $12, $13 + db $14, $15, $16, $17, $18 + +Data_fdfc5: ; fdfc5 + db 5, 5 + db $19, $1a, $1b, $1c, $1d + db $1e, $1f, $20, $21, $22 + db $23, $24, $25, $26, $27 + db $28, $29, $2a, $2b, $2c + db $2d, $2e, $2f, $30, $31 + +Data_fdfe0: ; fdfe0 + db 5, 5 + db $32, $33, $34, $35, $36 + db $37, $38, $39, $3a, $3b + db $3c, $3d, $3e, $3f, $40 + db $41, $42, $43, $44, $45 + db $46, $47, $48, $49, $4a + +Data_fdffb: ; fdffb + db 5, 5 + db $4b, $4c, $4d, $4e, $4f + db $50, $51, $52, $53, $54 + db $55, $56, $57, $58, $59 + db $5a, $5b, $5c, $5d, $5e + db $5f, $60, $61, $62, $63 + +Data_fe016: ; fe016 + db 5, 5 + db $64, $65, $66, $67, $68 + db $69, $6a, $6b, $6c, $6d + db $6e, $6f, $70, $71, $72 + db $73, $74, $75, $76, $77 + db $78, $79, $7a, $7b, $7c + +Func_fe031: + push hl + ld e, a + ld d, 0 + ld hl, Data_fe572 + add hl, de + add hl, de + add hl, de + add hl, de + ld a, [hli] + ld c, a + ld a, [hli] + ld b, a + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + pop hl + ret + +RunPikaPicAnimScript: + call Func_fe066 + ret c + xor a + ld [$d44f], a +.loop + call GetPikaPicAnimByte + ld e, a + ld d, 0 + ld hl, Jumptable_fe071 + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + call JumpToAddress + ld a, [$d44f] + and a + jr z, .loop + ret + +Func_fe066: + ld a, [wPikaSpriteX] + and a + ret z + dec a + ld [wPikaSpriteX], a + scf + ret + +Jumptable_fe071: + dw PikaPicAnimCommand_nop ; 00, 0 params + dw PikaPicAnimCommand_writebyte ; 01, 1 param + dw Func_fe0db ; 02, 1 param + dw Func_fdb32 ; 03, 5 params + dw Func_fe0b6 ; 04, 0 params + dw Func_fe0b6 ; 05, 0 params + dw Func_fdb65 ; 06, 1 param + dw Func_fe0b6 ; 07, 0 params + dw Func_fe0b6 ; 08, 0 params + dw PikaPicAnimCommand_jump ; 09, 1 dw param + dw PikaPicAnimCommand_setdelay ; 0a, 1 dw param + dw PikaPicAnimCommand_cry ; 0b, 1 param + dw PikaPicAnimCommand_thunderbolt ; 0c, 0 params + dw Func_fe0a9 ; 0d, 0 params (ret) + dw Func_fe090 ; 0e, 0 params (ret) + +PikaPicAnimCommand_nop: + ret + +Func_fe090: + ld a, 1 + ld [wPikaPicAnimTimer], a + xor a + ld [wPikaPicAnimTimer + 1], a + jr Func_fe0a9 + +Func_fe09b: + ret + +PikaPicAnimCommand_setdelay: + call GetPikaPicAnimByte + ld [wPikaPicAnimTimer], a + call GetPikaPicAnimByte + ld [wPikaPicAnimTimer + 1], a + ret + +Func_fe0a9: + ld a, $ff + ld [$d44f], a + ret + +PikaPicAnimCommand_writebyte: + call GetPikaPicAnimByte + ld [wPikaSpriteX], a + ret + +Func_fe0b6: + ret + +PikaPicAnimCommand_jump: + call GetPikaPicAnimByte + ld l, a + call GetPikaPicAnimByte + ld h, a + call UpdatePikaPicAnimPointer + ret + +GetPikaPicAnimByte: + push hl + ld hl, wPikaPicAnimPointer + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [hli] + call UpdatePikaPicAnimPointer + pop hl + ret + +UpdatePikaPicAnimPointer: + push af + ld a, l + ld [wPikaPicAnimPointer], a + ld a, h + ld [wPikaPicAnimPointer + 1], a + pop af + ret + +Func_fe0db: + ld a, [wUpdateSpritesEnabled] + push af + ld a, $ff + ld [wUpdateSpritesEnabled], a + ld a, [H_AUTOBGTRANSFERENABLED] + push af + xor a + ld [H_AUTOBGTRANSFERENABLED], a + ld a, [hTilesetType] + push af + xor a + ld [hTilesetType], a + call GetPikaPicAnimByte + ld [$d450], a + ld a, [$d450] + call Func_fe031 + ld a, c + cp a, $ff + jr z, .asm_fe106 + call Func_fe114 + jr .asm_fe109 + +.asm_fe106 + call Func_fe128 +.asm_fe109 + pop af + ld [hTilesetType], a + pop af + ld [H_AUTOBGTRANSFERENABLED], a + pop af + ld [wUpdateSpritesEnabled], a + ret + +Func_fe114: ; fe114 + push de + ld a, [$d450] + ld d, a + ld e, c + call Func_fe17a + pop de + jr c, .asm_fe127 + call Func_fe167 + call CopyVideoDataAlternate + and a +.asm_fe127 + ret + +Func_fe128: ; fe128 + push de + ld a, [$d450] + ld d, a + ld e, $19 + call Func_fe17a + pop de + jr c, .asm_fe15b + ld a, b + call UncompressSpriteFromDE + ld a, $00 + call SwitchSRAMBankAndLatchClockData + ld hl, S_SPRITEBUFFER1 + ld de, S_SPRITEBUFFER0 + ld bc, SPRITEBUFFERSIZE * 2 + call CopyData + call PrepareRTCDataAndDisableSRAM + ld a, [$d450] + call Func_fe1af + call Func_fe167 + ld d, h + ld e, l + call InterlaceMergeSpriteBuffers +.asm_fe15b + ret + +Func_fe15c: + ld hl, wNPCMovementDirections + ld bc, $11 + xor a + call FillMemory + ret + +Func_fe167: + ld hl, vNPCSprites + push bc + ld b, a + and $f + swap a + ld c, a + ld a, b + and $f0 + swap a + ld b, a + add hl, bc + pop bc + ret + +Func_fe17a: + push bc + push hl + ld hl, wNPCMovementDirections + 1 + ld c, 8 +.asm_fe181 + ld a, [hl] + and a + jr z, .asm_fe192 + cp d + jr z, .asm_fe18f + inc hl + inc hl + dec c + jr nz, .asm_fe181 + scf + ret + +.asm_fe18f + inc hl + ld a, [hl] + ret + +.asm_fe192 + ld [hl], d + inc hl + ld a, [wNPCMovementDirections] + add $80 + ld [hl], a + ld a, [wNPCMovementDirections] + add e + ld [wNPCMovementDirections], a + cp $80 + jr z, .asm_fe1a7 + jr nc, .asm_fe1ab +.asm_fe1a7 + ld a, [hl] + and a + jr .asm_fe1ac + +.asm_fe1ab + scf +.asm_fe1ac + pop hl + pop bc + ret + +Func_fe1af: + push bc + push hl + ld b, a + ld hl, wNPCMovementDirections + 1 + ld c, 8 +.asm_fe1b7 + ld a, [hli] + cp b + jr z, .asm_fe1c2 + inc hl + dec c + jr nz, .asm_fe1b7 + scf + jr .asm_fe1c4 + +.asm_fe1c2 + ld a, [hl] + and a +.asm_fe1c4 + pop hl + pop bc + ret + +PikaPicAnimCommand_cry: + call GetPikaPicAnimByte + cp $ff + ret z + ld e, a + callab PlayPikachuSoundClip + ret + +PikaPicAnimCommand_thunderbolt: + ld a, $1 + ld [wMuteAudioAndPauseMusic], a + call DelayFrame + ld a, [wAudioROMBank] + push af + ld a, BANK(SFX_Battle_2F) + ld [wAudioROMBank], a + ld [wAudioSavedROMBank], a + call PikaPicAnimLoadThunderboltAudio + call PlaySound + call PikaPicAnimThunderboltFlashScreen + call WaitForSoundToFinish + pop af + ld [wAudioROMBank], a + ld [wAudioSavedROMBank], a + xor a + ld [wMuteAudioAndPauseMusic], a + ret + +PikaPicAnimLoadThunderboltAudio: + ld hl, MoveSoundTable + ld e, THUNDERBOLT + ld d, 0 + add hl, de + add hl, de + add hl, de + ld a, BANK(MoveSoundTable) + call GetFarByte + ld b, a + inc hl + ld a, BANK(MoveSoundTable) + call GetFarByte + inc hl + ld [wFrequencyModifier], a + ld a, BANK(MoveSoundTable) + call GetFarByte + ld [wTempoModifier], a + ld a, b + ret + +PikaPicAnimThunderboltFlashScreen: + ld hl, Data_fe242 +.loop + ld a, [hli] + cp $ff + ret z + ld c, a + ld b, [hl] + inc hl + push hl + call GetDMGBGPalForPikaThunderbolt + pop hl + jr .loop + +GetDMGBGPalForPikaThunderbolt: + ld a, b + ld [rBGP], a + call UpdateGBCPal_BGP + call DelayFrames + ret + +Data_fe242: + db 4, %11000000 + db 4, %11100100 + db 4, %11000000 + db 4, %11100100 + db 4, %11000000 + db 4, %11100100 + db 4, %11000000 + db 4, %11100100 + db 4, %11000000 + db 4, %11100100 + db 4, %11000000 + db 4, %11100100 + db 4, %11000000 + db 4, %11100100 + db 4, %11000000 + db 4, %11100100 + db 4, %11000000 + db 4, %11100100 + db 4, %11000000 + db 4, %11100100 + db $ff + +Data_fe26b: + pikapic_2 $1 + pikapic_2 $f + pikapic_2 $3e + pikapic_3 $1, $80, $0 + pikapic_3 $2, $5b2, $5 + pikapic_3 $3, $5b6, $5 + pikapic_d + pikapic_cry $ff +Data_fe286: + pikapic_d + pikapic_jump Data_fe286 + +Data_fe28a: + dr $fe28a, $fe2a4 +Data_fe2a4: + dr $fe2a4, $fe2be +Data_fe2be: + dr $fe2be, $fe2d8 +Data_fe2d8: + dr $fe2d8, $fe2f2 +Data_fe2f2: + dr $fe2f2, $fe30c +Data_fe30c: + dr $fe30c, $fe326 +Data_fe326: + dr $fe326, $fe340 +Data_fe340: + dr $fe340, $fe35a +Data_fe35a: + dr $fe35a, $fe374 +Data_fe374: + dr $fe374, $fe390 +Data_fe390: + dr $fe390, $fe3aa +Data_fe3aa: + dr $fe3aa, $fe3c4 +Data_fe3c4: + dr $fe3c4, $fe3de +Data_fe3de: + dr $fe3de, $fe3f8 +Data_fe3f8: + dr $fe3f8, $fe412 +Data_fe412: + dr $fe412, $fe42c +Data_fe42c: + dr $fe42c, $fe446 +Data_fe446: + dr $fe446, $fe460 +Data_fe460: + dr $fe460, $fe47a +Data_fe47a: + dr $fe47a, $fe494 +Data_fe494: + dr $fe494, $fe4b4 +Data_fe4b4: + dr $fe4b4, $fe4ce +Data_fe4ce: + dr $fe4ce, $fe4e8 +Data_fe4e8: + dr $fe4e8, $fe502 +Data_fe502: + dr $fe502, $fe520 +Data_fe520: + dr $fe520, $fe53e +Data_fe53e: + dr $fe53e, $fe558 +Data_fe558: + dr $fe558, $fe572 + +Data_fe572: + dr $fe572, $fe66f diff --git a/macros.asm b/macros.asm index 969d9465..7cb768cc 100644 --- a/macros.asm +++ b/macros.asm @@ -769,3 +769,121 @@ x = 0 x = x + (\1) * $40000 endr ENDM + +enum_start: macro +if _NARG >= 1 +__enum__ = \1 +else +__enum__ = 0 +endc +if _NARG >= 2 +__enumdir__ = \2 +else +__enumdir__ = +1 +endc +endm + +enum: macro +\1 = __enum__ +__enum__ = __enum__ + __enumdir__ +endm + +enum_set: macro +__enum__ = \1 +endm + +pikacry_def: MACRO +\1_id:: dba \1 +endm + +dpikacry: MACRO + db (\1_id - PikachuCriesPointerTable) / 3 + endm + +pikacry: MACRO + ld a, (\1_id - PikachuCriesPointerTable) / 3 + endm + + + enum_start + enum pikapic_nop_command +pikapic_nop: macro + db pikapic_nop_command + endm + + enum pikapic_writebyte_command +pikapic_writebyte: macro + db pikapic_writebyte_command, \1 + endm + + enum pikapic_2_command +pikapic_2: macro + db pikapic_2_command, \1 + endm + + enum pikapic_3_command +pikapic_3: macro + db pikapic_3_command + dw \1, \2 + db \3 + endm + + enum pikapic_4_command +pikapic_4: macro + db pikapic_4_command + endm + + enum pikapic_5_command +pikapic_5: macro + db pikapic_5_command + endm + + enum pikapic_6_command +pikapic_6: macro + db pikapic_6_command, \1 + endm + + enum pikapic_7_command +pikapic_7: macro + db pikapic_7_command + endm + + enum pikapic_8_command +pikapic_8: macro + db pikapic_8_command + endm + + enum pikapic_jump_command +pikapic_jump: macro ; 9 + dbw pikapic_jump_command, \1 + endm + + enum pikapic_setdelay_command +pikapic_setdelay: macro ; a + dbw pikapic_setdelay_command, \1 + endm + + enum pikapic_cry_command +pikapic_cry: macro ; b + db pikapic_cry_command +if \1 == $ff + db \1 +else + dpikacry \1 + endc + endm + + enum pikapic_thunderbolt_command +pikapic_thunderbolt: macro ; c + db pikapic_thunderbolt_command + endm + + enum pikapic_d_command +pikapic_d: macro ; d + db pikapic_d_command + endm + + enum pikapic_e_command +pikapic_e: macro ; e + db pikapic_e_command + endm diff --git a/wram.asm b/wram.asm index 252f8012..53821388 100755 --- a/wram.asm +++ b/wram.asm @@ -2523,13 +2523,24 @@ wd438:: ds 1 wExpressionNumber:: ; d447 ds 1 - +wExpressionNumber2:: ds 1 -wd44a:: ds 1 +wd44a:: ds 1 ; d449 wd44b:: ds 1 - - ds 36 +wd44c:: ds 1 +wd44d:: ds 1 +wPikaPicAnimPointer:: dw ; d44d +wd450:: ds 1 +wd451:: ds 1 +wPikaPicAnimTimer:: ds 1 ; d451 +wd453:: ds 1 +wPikaPicAnimVar:: +wPikaSpriteX:: ds 1 +wPikaPicTextboxStartX:: +wPikaSpriteY:: ds 1 ; d454 +wPikaPicTextboxStartY:: ds 1 + ds 25 wPikachuHappiness:: ds 1 ; d46f wPikachuMood:: ds 1 ; d470 -- cgit v1.2.3 From 3724c414fc7fd7b216efff954ec4b7a0cc74839d Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Wed, 25 May 2016 17:11:10 -0400 Subject: More playing around with pikapic script disasm --- engine/bank3f.asm | 5 +- engine/pikachu_pic_animation.asm | 145 +++++++++++++++++++++++++++++---------- macros.asm | 67 +++++++++--------- 3 files changed, 150 insertions(+), 67 deletions(-) diff --git a/engine/bank3f.asm b/engine/bank3f.asm index fda65680..f6a9371e 100644 --- a/engine/bank3f.asm +++ b/engine/bank3f.asm @@ -1917,6 +1917,9 @@ Func_fd001:: ; fd001 (3f:5001) INCLUDE "engine/pikachu_pic_animation.asm" +Func_fe66e: + ret + OfficerJennySprite: INCBIN "gfx/sprites/officer_jenny.2bpp" PikachuSprite: INCBIN "gfx/sprites/pikachu.2bpp" SandshrewSprite: INCBIN "gfx/sprites/sandshrew.2bpp" @@ -1927,4 +1930,4 @@ Clefairy2Sprite: INCBIN "gfx/sprites/clefairy2.2bpp" ChanseySprite: INCBIN "gfx/sprites/chansey.2bpp" SurfingPikachuSprite: INCBIN "gfx/sprites/surfing_pikachu.2bpp" JessieSprite: INCBIN "gfx/sprites/jessie.2bpp" -JamesSprite: INCBIN "gfx/sprites/james.2bpp" \ No newline at end of file +JamesSprite: INCBIN "gfx/sprites/james.2bpp" diff --git a/engine/pikachu_pic_animation.asm b/engine/pikachu_pic_animation.asm index 81a94cbd..3419b8bf 100755 --- a/engine/pikachu_pic_animation.asm +++ b/engine/pikachu_pic_animation.asm @@ -1775,21 +1775,21 @@ Func_fdad6: jr nz, .asm_fdadb ret -Func_fdb32: +PikaPicAnimCommand_object: ld hl, wNPCMovementDirections2 + 1 ld de, 8 ld c, 4 -.asm_fdb3a +.loop ld a, [hl] and a - jr z, .asm_fdb44 + jr z, .found add hl, de dec c - jr nz, .asm_fdb3a + jr nz, .loop scf ret -.asm_fdb44 +.found ld a, [wNPCMovementDirections2] inc a ld [wNPCMovementDirections2], a @@ -1810,7 +1810,7 @@ Func_fdb32: and a ret -Func_fdb65: +PikaPicAnimCommand_deleteobject: call GetPikaPicAnimByte ld b, a ld hl, wNPCMovementDirections2 + 1 @@ -2436,11 +2436,11 @@ Data_fe016: ; fe016 db $73, $74, $75, $76, $77 db $78, $79, $7a, $7b, $7c -Func_fe031: +LoadPikaPicAnimGFXHeader: push hl ld e, a ld d, 0 - ld hl, Data_fe572 + ld hl, PikaPicAnimGFXHeaders add hl, de add hl, de add hl, de @@ -2489,29 +2489,29 @@ Func_fe066: Jumptable_fe071: dw PikaPicAnimCommand_nop ; 00, 0 params dw PikaPicAnimCommand_writebyte ; 01, 1 param - dw Func_fe0db ; 02, 1 param - dw Func_fdb32 ; 03, 5 params - dw Func_fe0b6 ; 04, 0 params - dw Func_fe0b6 ; 05, 0 params - dw Func_fdb65 ; 06, 1 param - dw Func_fe0b6 ; 07, 0 params - dw Func_fe0b6 ; 08, 0 params + dw PikaPicAnimCommand_loadgfx ; 02, 1 param + dw PikaPicAnimCommand_object ; 03, 5 params + dw PikaPicAnimCommand_nop4 ; 04, 0 params + dw PikaPicAnimCommand_nop5 ; 05, 0 params + dw PikaPicAnimCommand_deleteobject ; 06, 1 param + dw PikaPicAnimCommand_nop7 ; 07, 0 params + dw PikaPicAnimCommand_nop8 ; 08, 0 params dw PikaPicAnimCommand_jump ; 09, 1 dw param dw PikaPicAnimCommand_setdelay ; 0a, 1 dw param dw PikaPicAnimCommand_cry ; 0b, 1 param dw PikaPicAnimCommand_thunderbolt ; 0c, 0 params - dw Func_fe0a9 ; 0d, 0 params (ret) - dw Func_fe090 ; 0e, 0 params (ret) + dw PikaPicAnimCommand_waitbgmap ; 0d, 0 params (ret) + dw PikaPicAnimCommand_ret ; 0e, 0 params (ret) PikaPicAnimCommand_nop: ret -Func_fe090: +PikaPicAnimCommand_ret: ld a, 1 ld [wPikaPicAnimTimer], a xor a ld [wPikaPicAnimTimer + 1], a - jr Func_fe0a9 + jr PikaPicAnimCommand_waitbgmap Func_fe09b: ret @@ -2523,7 +2523,7 @@ PikaPicAnimCommand_setdelay: ld [wPikaPicAnimTimer + 1], a ret -Func_fe0a9: +PikaPicAnimCommand_waitbgmap: ld a, $ff ld [$d44f], a ret @@ -2533,7 +2533,10 @@ PikaPicAnimCommand_writebyte: ld [wPikaSpriteX], a ret -Func_fe0b6: +PikaPicAnimCommand_nop4: +PikaPicAnimCommand_nop5: +PikaPicAnimCommand_nop7: +PikaPicAnimCommand_nop8: ret PikaPicAnimCommand_jump: @@ -2564,7 +2567,7 @@ UpdatePikaPicAnimPointer: pop af ret -Func_fe0db: +PikaPicAnimCommand_loadgfx: ld a, [wUpdateSpritesEnabled] push af ld a, $ff @@ -2580,7 +2583,7 @@ Func_fe0db: call GetPikaPicAnimByte ld [$d450], a ld a, [$d450] - call Func_fe031 + call LoadPikaPicAnimGFXHeader ld a, c cp a, $ff jr z, .asm_fe106 @@ -2825,20 +2828,30 @@ Data_fe242: db $ff Data_fe26b: - pikapic_2 $1 - pikapic_2 $f - pikapic_2 $3e - pikapic_3 $1, $80, $0 - pikapic_3 $2, $5b2, $5 - pikapic_3 $3, $5b6, $5 - pikapic_d - pikapic_cry $ff + pikapic_loadgfx $1 + pikapic_loadgfx $f + pikapic_loadgfx $3e + pikapic_object $1, $80, $0, $0 + pikapic_object $2, $b2, $5, $5 + pikapic_object $3, $b6, $5, $5 + pikapic_waitbgmap + pikapic_cry Data_fe286: - pikapic_d + pikapic_waitbgmap pikapic_jump Data_fe286 Data_fe28a: - dr $fe28a, $fe2a4 + pikapic_setdelay $28 + pikapic_loadgfx $1 + pikapic_loadgfx $2 + pikapic_object $4, $80, $0, $0 + pikapic_object $6, $99, $0, $0 + pikapic_waitbgmap + pikapic_cry PikachuCry3 +Data_fe2a0: + pikapic_waitbgmap + pikapic_jump Data_fe2a0 + Data_fe2a4: dr $fe2a4, $fe2be Data_fe2be: @@ -2894,5 +2907,67 @@ Data_fe53e: Data_fe558: dr $fe558, $fe572 -Data_fe572: - dr $fe572, $fe66f +PikaPicAnimGFXHeaders: + dbbw $01, $39, $0000 + dbbw $ff, $39, $4000 + dbbw $05, $39, $40cc + dbbw $ff, $39, $411c + dbbw $0a, $39, $41d2 + dbbw $ff, $39, $4272 + dbbw $06, $39, $4323 + dbbw $ff, $39, $4383 + dbbw $14, $39, $444b + dbbw $ff, $39, $458b + dbbw $04, $39, $463b + dbbw $ff, $39, $467b + dbbw $04, $39, $472e + dbbw $ff, $39, $476e + dbbw $19, $39, $4841 + dbbw $ff, $39, $49d1 + dbbw $0a, $39, $4a99 + dbbw $ff, $39, $4b39 + dbbw $06, $39, $4bde + dbbw $ff, $39, $4c3e + dbbw $19, $39, $4ce0 + dbbw $19, $39, $4e70 + dbbw $ff, $39, $5000 + dbbw $19, $39, $50af + dbbw $ff, $39, $523f + dbbw $19, $39, $52fe + dbbw $ff, $39, $548e + dbbw $19, $39, $5541 + dbbw $ff, $39, $56d1 + dbbw $19, $39, $5794 + dbbw $ff, $39, $5924 + dbbw $19, $39, $59ed + dbbw $ff, $39, $5b7d + dbbw $19, $39, $5c4d + dbbw $ff, $39, $5ddd + dbbw $19, $39, $5e90 + dbbw $19, $39, $6020 + dbbw $19, $39, $61b0 + dbbw $ff, $39, $6340 + dbbw $19, $39, $63f7 + dbbw $ff, $39, $6587 + dbbw $19, $39, $6646 + dbbw $ff, $39, $67d6 + dbbw $19, $39, $682f + dbbw $19, $39, $69bf + dbbw $19, $39, $6b4f + dbbw $19, $39, $6cdf + dbbw $19, $39, $6e6f + dbbw $19, $39, $6fff + dbbw $19, $39, $718f + dbbw $19, $39, $731f + dbbw $19, $39, $74af + dbbw $19, $39, $763f + dbbw $ff, $39, $77cf + dbbw $19, $39, $7863 + dbbw $19, $39, $79f3 + dbbw $19, $39, $7b83 + dbbw $19, $39, $7d13 + dbbw $ff, $3c, $4abf + dbbw $19, $3c, $4b64 + dbbw $ff, $3c, $4cf4 + dbbw $19, $3c, $4d82 + dbbw $18, BANK(PikachuSprite), PikachuSprite diff --git a/macros.asm b/macros.asm index 7cb768cc..c59a77ed 100644 --- a/macros.asm +++ b/macros.asm @@ -266,6 +266,11 @@ dba: MACRO dbw BANK(\1), \1 ENDM +dbbw: MACRO + db \1, \2 + dw \3 + ENDM + ; data format macros RGB: MACRO dw (\3 << 10 | \2 << 5 | \1) @@ -816,41 +821,41 @@ pikapic_writebyte: macro db pikapic_writebyte_command, \1 endm - enum pikapic_2_command -pikapic_2: macro - db pikapic_2_command, \1 + enum pikapic_loadgfx_command +pikapic_loadgfx: macro + db pikapic_loadgfx_command, \1 ; _id - PikaPicAnimGFXHeaders) / 4 endm - enum pikapic_3_command -pikapic_3: macro - db pikapic_3_command - dw \1, \2 - db \3 + enum pikapic_object_command +pikapic_object: macro + db pikapic_object_command + dw \1 + db \2, \3, \4 endm - enum pikapic_4_command -pikapic_4: macro - db pikapic_4_command + enum pikapic_nop4_command +pikapic_nop4: macro + db pikapic_nop4_command endm - enum pikapic_5_command -pikapic_5: macro - db pikapic_5_command + enum pikapic_nop5_command +pikapic_nop5: macro + db pikapic_nop5_command endm - enum pikapic_6_command -pikapic_6: macro - db pikapic_6_command, \1 + enum pikapic_waitbgmapeleteobject_command +pikapic_waitbgmapeleteobject: macro + db pikapic_waitbgmapeleteobject_command, \1 endm - enum pikapic_7_command -pikapic_7: macro - db pikapic_7_command + enum pikapic_nop7_command +pikapic_nop7: macro + db pikapic_nop7_command endm - enum pikapic_8_command -pikapic_8: macro - db pikapic_8_command + enum pikapic_nop8_command +pikapic_nop8: macro + db pikapic_nop8_command endm enum pikapic_jump_command @@ -866,8 +871,8 @@ pikapic_setdelay: macro ; a enum pikapic_cry_command pikapic_cry: macro ; b db pikapic_cry_command -if \1 == $ff - db \1 +IF _NARG == 0 + db $ff else dpikacry \1 endc @@ -878,12 +883,12 @@ pikapic_thunderbolt: macro ; c db pikapic_thunderbolt_command endm - enum pikapic_d_command -pikapic_d: macro ; d - db pikapic_d_command + enum pikapic_waitbgmap_command +pikapic_waitbgmap: macro ; d + db pikapic_waitbgmap_command endm - enum pikapic_e_command -pikapic_e: macro ; e - db pikapic_e_command + enum pikapic_ret_command +pikapic_ret: macro ; e + db pikapic_ret_command endm -- cgit v1.2.3 From 64ed5af7be6e55b611a6178e8e4048d25b87af6e Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Wed, 25 May 2016 17:44:47 -0400 Subject: I'm pretty sure these are graphics pointers --- engine/pikachu_pic_animation.asm | 254 +++++++++++++++++++++------------------ main.asm | 8 +- wram.asm | 35 ++++-- 3 files changed, 168 insertions(+), 129 deletions(-) diff --git a/engine/pikachu_pic_animation.asm b/engine/pikachu_pic_animation.asm index 3419b8bf..42b37735 100755 --- a/engine/pikachu_pic_animation.asm +++ b/engine/pikachu_pic_animation.asm @@ -555,13 +555,13 @@ Func_fd2f5: .asm_fd311 ld [wPikaPicAnimPointer], a ld a, [hli] - ld [$d450], a + ld [wPikaPicAnimCurGraphicID], a ld a, [hli] cp $80 jr nz, .asm_fd320 call Func_157c .asm_fd320 - ld [$d44f], a + ld [wPikaPicAnimPointerSetupFinished], a xor a ld [wPikaPicAnimTimer], a scf @@ -570,8 +570,8 @@ Func_fd2f5: Func_fd329: xor a ld [$d44c], a - ld [$d457], a - ld [$d458], a + ld [wd457], a + ld [wd458], a ld a, [wSpriteStateData2 + 7] push af .asm_fd337 @@ -579,7 +579,7 @@ Func_fd329: ld a, [wPikaPicAnimPointer + 1] ld hl, Jumptable_fd4ac call Func_fd365 - ld a, [$d450] + ld a, [wPikaPicAnimCurGraphicID] ld hl, Jumptable_fd65c call Func_fd365 call Func_fd36e @@ -611,14 +611,14 @@ Func_fd36e: ld [hl], a ld a, [wPikaSpriteY] ld d, a - ld a, [$d456] + ld a, [wd456] add d ld hl, 4 add hl, bc ld [hl], a - ld a, [wPikaSpriteX] + ld a, [wPikaPicAnimDelay] ld d, a - ld a, [$d455] + ld a, [wPikaPicTextboxStartY] add d ld hl, 6 add hl, bc @@ -751,10 +751,10 @@ Func_fd4e9: ld hl, 6 add hl, bc ld a, [hl] - ld [wPikaSpriteX], a + ld [wPikaPicAnimDelay], a xor a - ld [$d456], a - ld [$d455], a + ld [wd456], a + ld [wPikaPicTextboxStartY], a call Func_fd4dc ret @@ -1022,9 +1022,9 @@ MovePikachuSpriteUpRight: jr asm_fd64d asm_fd64d - ld a, [wPikaSpriteX] + ld a, [wPikaPicAnimDelay] add d - ld [wPikaSpriteX], a + ld [wPikaPicAnimDelay], a ld a, [wPikaSpriteY] add e ld [wPikaSpriteY], a @@ -1117,7 +1117,7 @@ asm_fd6ca or d ld [wPikaPicAnimTimer + 1], a call Func_fd79d - ld [$d456], a + ld [wd456], a and a ret z call Func_fd672 @@ -1130,11 +1130,11 @@ Func_fd6e2: or d ld [wPikaPicAnimTimer + 1], a call Func_fd79d - ld [$d456], a + ld [wd456], a ret Func_fd6f4: - ld a, [$d44f] + ld a, [wPikaPicAnimPointerSetupFinished] and $40 cp $40 jr z, Func_fd6ff @@ -1240,7 +1240,7 @@ SetObjectFacing: ret Func_fd775: - ld hl, $d457 + ld hl, wd457 inc [hl] ld a, [wPikaPicAnimPointer] and $1f @@ -1259,9 +1259,9 @@ Func_fd784: ret Func_fd78e: - ld hl, $d458 + ld hl, wd458 inc [hl] - ld a, [$d44f] + ld a, [wPikaPicAnimPointerSetupFinished] and $f inc a cp [hl] @@ -1271,9 +1271,9 @@ Func_fd78e: Func_fd79d: call Func_fd7b2 - ld a, [$d458] + ld a, [wd458] add e - ld [$d458], a + ld [wd458], a add $20 ld e, a push hl @@ -1284,11 +1284,11 @@ Func_fd79d: ret Func_fd7b2: - ld a, [$d44f] + ld a, [wPikaPicAnimPointerSetupFinished] and $f inc a ld d, a - ld a, [$d44f] + ld a, [wPikaPicAnimPointerSetupFinished] swap a and $7 ld e, a @@ -1341,7 +1341,7 @@ Func_fd7f3: ld bc, wOAMBuffer + 4 * 36 ld a, [wPikaSpriteY] ld e, a - ld a, [wPikaSpriteX] + ld a, [wPikaPicAnimDelay] ld d, a ld hl, Data_fd80b call Func_fd814 @@ -1596,7 +1596,7 @@ Func_fd9ff: ld bc, $11 xor a call FillMemory - ld hl, wNPCMovementDirections2 + ld hl, wPikaPicAnimObjectDataBufferSize ld bc, $21 xor a call FillMemory @@ -1609,7 +1609,7 @@ Func_fd9ff: ld a, $07 ld [wPikaSpriteY], a ld a, $06 - ld [$d455], a + ld [wPikaPicTextboxStartY], a ret Func_fda2c: @@ -1721,7 +1721,7 @@ Func_fdad5: ret Func_fdad6: - ld bc, wNPCMovementDirections2 + 1 + ld bc, wPikaPicAnimObjectDataBuffer ld a, 4 .asm_fdadb push af @@ -1732,37 +1732,37 @@ Func_fdad6: and a jr z, .asm_fdb26 ld a, [hli] - ld [$d459], a + ld [wCurPikaPicAnimObject], a ld a, [hli] - ld [$d45a], a + ld [wCurPikaPicAnimObject + 1], a ld a, [hli] - ld [$d45b], a + ld [wCurPikaPicAnimObject + 2], a ld a, [hli] - ld [$d456], a + ld [wd456], a ld a, [hli] - ld [$d457], a + ld [wd457], a ld a, [hli] - ld [$d458], a + ld [wd458], a ld a, [hli] - ld [$d45c], a + ld [wCurPikaPicAnimObject + 3], a push bc call Func_fdb7e pop bc ld hl, 1 add hl, bc - ld a, [$d459] + ld a, [wCurPikaPicAnimObject] ld [hli], a - ld a, [$d45a] + ld a, [wCurPikaPicAnimObject + 1] ld [hli], a - ld a, [$d45b] + ld a, [wCurPikaPicAnimObject + 2] ld [hli], a - ld a, [$d456] + ld a, [wd456] ld [hli], a - ld a, [$d457] + ld a, [wd457] ld [hli], a - ld a, [$d458] + ld a, [wd458] ld [hli], a - ld a, [$d45c] + ld a, [wCurPikaPicAnimObject + 3] ld [hl], a .asm_fdb26 pop bc @@ -1776,7 +1776,7 @@ Func_fdad6: ret PikaPicAnimCommand_object: - ld hl, wNPCMovementDirections2 + 1 + ld hl, wPikaPicAnimObjectDataBuffer ld de, 8 ld c, 4 .loop @@ -1790,9 +1790,9 @@ PikaPicAnimCommand_object: ret .found - ld a, [wNPCMovementDirections2] + ld a, [wPikaPicAnimObjectDataBufferSize] inc a - ld [wNPCMovementDirections2], a + ld [wPikaPicAnimObjectDataBufferSize], a ld [hli], a call GetPikaPicAnimByte ld [hli], a @@ -1813,27 +1813,27 @@ PikaPicAnimCommand_object: PikaPicAnimCommand_deleteobject: call GetPikaPicAnimByte ld b, a - ld hl, wNPCMovementDirections2 + 1 + ld hl, wPikaPicAnimObjectDataBuffer ld de, 8 ld c, 4 -.asm_fdb71 +.search ld a, [hl] cp b - jr z, .asm_fdb7b + jr z, .delete add hl, de dec c - jr nz, .asm_fdb71 + jr nz, .search scf ret -.asm_fdb7b +.delete xor a ld [hl], a ret Func_fdb7e: .asm_fdb7e - ld a, [$d459] + ld a, [wCurPikaPicAnimObject] cp $23 jr c, .asm_fdb87 ld a, $04 @@ -1846,7 +1846,7 @@ Func_fdb7e: ld a, [hli] ld h, [hl] ld l, a - ld a, [$d45a] + ld a, [wCurPikaPicAnimObject + 1] ld e, a ld d, 0 add hl, de @@ -1858,8 +1858,8 @@ Func_fdb7e: .asm_fdba1 xor a - ld [$d45a], a - ld [$d45b], a + ld [wCurPikaPicAnimObject + 1], a + ld [wCurPikaPicAnimObject + 2], a jr .asm_fdb7e .asm_fdbaa @@ -1869,16 +1869,16 @@ Func_fdb7e: ld a, [hl] and a jr z, .asm_fdbc8 - ld a, [$d45b] + ld a, [wCurPikaPicAnimObject + 2] inc a - ld [$d45b], a + ld [wCurPikaPicAnimObject + 2], a cp [hl] jr nz, .asm_fdbc8 xor a - ld [$d45b], a - ld a, [$d45a] + ld [wCurPikaPicAnimObject + 2], a + ld a, [wCurPikaPicAnimObject + 1] inc a - ld [$d45a], a + ld [wCurPikaPicAnimObject + 1], a .asm_fdbc8 ret @@ -2167,7 +2167,7 @@ Func_fdd62: .asm_fdd7c push bc push hl - ld a, [$d456] + ld a, [wd456] ld c, a .asm_fdd82 ld a, [de] @@ -2190,14 +2190,14 @@ Func_fdd62: Func_fdd98: push bc - ld a, [$d458] + ld a, [wd458] ld b, a - ld a, [$d455] + ld a, [wPikaPicTextboxStartY] add b coord hl, 0, 0 ld bc, SCREEN_WIDTH call AddNTimes - ld a, [$d457] + ld a, [wd457] ld c, a ld a, [wPikaSpriteY] add c @@ -2460,7 +2460,7 @@ RunPikaPicAnimScript: call Func_fe066 ret c xor a - ld [$d44f], a + ld [wPikaPicAnimPointerSetupFinished], a .loop call GetPikaPicAnimByte ld e, a @@ -2472,17 +2472,17 @@ RunPikaPicAnimScript: ld h, [hl] ld l, a call JumpToAddress - ld a, [$d44f] + ld a, [wPikaPicAnimPointerSetupFinished] and a jr z, .loop ret Func_fe066: - ld a, [wPikaSpriteX] + ld a, [wPikaPicAnimDelay] and a ret z dec a - ld [wPikaSpriteX], a + ld [wPikaPicAnimDelay], a scf ret @@ -2525,12 +2525,12 @@ PikaPicAnimCommand_setdelay: PikaPicAnimCommand_waitbgmap: ld a, $ff - ld [$d44f], a + ld [wPikaPicAnimPointerSetupFinished], a ret PikaPicAnimCommand_writebyte: call GetPikaPicAnimByte - ld [wPikaSpriteX], a + ld [wPikaPicAnimDelay], a ret PikaPicAnimCommand_nop4: @@ -2581,17 +2581,17 @@ PikaPicAnimCommand_loadgfx: xor a ld [hTilesetType], a call GetPikaPicAnimByte - ld [$d450], a - ld a, [$d450] + ld [wPikaPicAnimCurGraphicID], a + ld a, [wPikaPicAnimCurGraphicID] call LoadPikaPicAnimGFXHeader ld a, c cp a, $ff - jr z, .asm_fe106 - call Func_fe114 + jr z, .compressed + call RequestPikaPicAnimGFX jr .asm_fe109 -.asm_fe106 - call Func_fe128 +.compressed + call DecompressRequestPikaPicAnimGFX .asm_fe109 pop af ld [hTilesetType], a @@ -2601,44 +2601,44 @@ PikaPicAnimCommand_loadgfx: ld [wUpdateSpritesEnabled], a ret -Func_fe114: ; fe114 +RequestPikaPicAnimGFX: ; fe114 push de - ld a, [$d450] + ld a, [wPikaPicAnimCurGraphicID] ld d, a ld e, c - call Func_fe17a + call CheckIfThereIsRoomForPikaPicAnimGFX pop de - jr c, .asm_fe127 - call Func_fe167 + jr c, .failed + call GetPikaPicVRAMAddressForNewGFX call CopyVideoDataAlternate and a -.asm_fe127 +.failed ret -Func_fe128: ; fe128 +DecompressRequestPikaPicAnimGFX: ; fe128 push de - ld a, [$d450] + ld a, [wPikaPicAnimCurGraphicID] ld d, a - ld e, $19 - call Func_fe17a + ld e, 5 * 5 + call CheckIfThereIsRoomForPikaPicAnimGFX pop de - jr c, .asm_fe15b + jr c, .failed ld a, b call UncompressSpriteFromDE - ld a, $00 + ld a, BANK(S_SPRITEBUFFER1) call SwitchSRAMBankAndLatchClockData ld hl, S_SPRITEBUFFER1 ld de, S_SPRITEBUFFER0 ld bc, SPRITEBUFFERSIZE * 2 call CopyData call PrepareRTCDataAndDisableSRAM - ld a, [$d450] - call Func_fe1af - call Func_fe167 + ld a, [wPikaPicAnimCurGraphicID] + call LookUpTileOffsetForCurrentPikaPicAnimGFX + call GetPikaPicVRAMAddressForNewGFX ld d, h ld e, l call InterlaceMergeSpriteBuffers -.asm_fe15b +.failed ret Func_fe15c: @@ -2648,7 +2648,7 @@ Func_fe15c: call FillMemory ret -Func_fe167: +GetPikaPicVRAMAddressForNewGFX: ld hl, vNPCSprites push bc ld b, a @@ -2663,30 +2663,30 @@ Func_fe167: pop bc ret -Func_fe17a: +CheckIfThereIsRoomForPikaPicAnimGFX: push bc push hl ld hl, wNPCMovementDirections + 1 ld c, 8 -.asm_fe181 +.loop ld a, [hl] and a - jr z, .asm_fe192 + jr z, .empty cp d - jr z, .asm_fe18f + jr z, .found inc hl inc hl dec c - jr nz, .asm_fe181 + jr nz, .loop scf - ret + ret ; execute hl, then bc -.asm_fe18f +.found inc hl ld a, [hl] - ret + ret ; execute hl, then bc -.asm_fe192 +.empty ld [hl], d inc hl ld a, [wNPCMovementDirections] @@ -2697,39 +2697,39 @@ Func_fe17a: ld [wNPCMovementDirections], a cp $80 jr z, .asm_fe1a7 - jr nc, .asm_fe1ab + jr nc, .failed .asm_fe1a7 ld a, [hl] and a - jr .asm_fe1ac + jr .pop_ret -.asm_fe1ab +.failed scf -.asm_fe1ac +.pop_ret pop hl pop bc ret -Func_fe1af: +LookUpTileOffsetForCurrentPikaPicAnimGFX: push bc push hl ld b, a ld hl, wNPCMovementDirections + 1 ld c, 8 -.asm_fe1b7 +.loop ld a, [hli] cp b - jr z, .asm_fe1c2 + jr z, .found inc hl dec c - jr nz, .asm_fe1b7 + jr nz, .loop scf - jr .asm_fe1c4 + jr .pop_ret -.asm_fe1c2 +.found ld a, [hl] and a -.asm_fe1c4 +.pop_ret pop hl pop bc ret @@ -2836,24 +2836,34 @@ Data_fe26b: pikapic_object $3, $b6, $5, $5 pikapic_waitbgmap pikapic_cry -Data_fe286: +.loop pikapic_waitbgmap - pikapic_jump Data_fe286 + pikapic_jump .loop Data_fe28a: - pikapic_setdelay $28 + pikapic_setdelay 40 pikapic_loadgfx $1 pikapic_loadgfx $2 pikapic_object $4, $80, $0, $0 pikapic_object $6, $99, $0, $0 pikapic_waitbgmap pikapic_cry PikachuCry3 -Data_fe2a0: +.loop pikapic_waitbgmap - pikapic_jump Data_fe2a0 + pikapic_jump .loop Data_fe2a4: - dr $fe2a4, $fe2be + pikapic_setdelay 44 + pikapic_loadgfx $3 + pikapic_loadgfx $4 + pikapic_object $4, $80, $0, $0 + pikapic_object $7, $99, $0, $0 + pikapic_waitbgmap + pikapic_cry +.loop + pikapic_waitbgmap + pikapic_jump .loop + Data_fe2be: dr $fe2be, $fe2d8 Data_fe2d8: @@ -2908,9 +2918,15 @@ Data_fe558: dr $fe558, $fe572 PikaPicAnimGFXHeaders: +pikapicanimgfx: MACRO +\2_id:: + db \1 + dba \2 + endm + dbbw $01, $39, $0000 - dbbw $ff, $39, $4000 - dbbw $05, $39, $40cc + pikapicanimgfx $ff, Pic_e4000 + pikapicanimgfx 5, GFX_e40cc dbbw $ff, $39, $411c dbbw $0a, $39, $41d2 dbbw $ff, $39, $4272 diff --git a/main.asm b/main.asm index c77d840f..06283594 100755 --- a/main.asm +++ b/main.asm @@ -879,8 +879,12 @@ SECTION "bank30",ROMX,BANK[$30] dr $c0000,$c4000 SECTION "bank39",ROMX,BANK[$39] - - dr $e4000,$e7ea3 +Pic_e4000: + dr $e4000,$e40cc +GFX_e40cc: + dr $e40cc,$e411c +Pic_e411c: + dr $e411c,$e7ea3 SECTION "bank3A",ROMX,BANK[$3A] diff --git a/wram.asm b/wram.asm index 53821388..da33168a 100755 --- a/wram.asm +++ b/wram.asm @@ -541,9 +541,23 @@ wAnimPalette:: ; cc79 wNPCMovementDirections2:: ; cc97 +wPikaPicAnimObjectDataBufferSize:: ; cc97 + wSwitchPartyMonTempBuffer:: ; cc97 ; temporary buffer when swapping party mon data - ds 10 + ds 1 + +wPikaPicAnimObjectDataBuffer:: ; cc98 +; 4 structs each of length 8 +; 0: index +; 1: object id (dw) +; 3: ? +; 4: ? +; 5: ? +; 6: ? +; 7: ? + + ds 9 wNumStepsToTake:: ; cca1 ; used in Pallet Town scripted movement @@ -2531,16 +2545,21 @@ wd44b:: ds 1 wd44c:: ds 1 wd44d:: ds 1 wPikaPicAnimPointer:: dw ; d44d -wd450:: ds 1 -wd451:: ds 1 -wPikaPicAnimTimer:: ds 1 ; d451 -wd453:: ds 1 -wPikaPicAnimVar:: +wPikaPicAnimPointerSetupFinished:: ds 1 ; d44f +wPikaPicAnimCurGraphicID:: ds 1 +wPikaPicAnimTimer:: ds 2 ; d451 +wPikaPicAnimDelay:: wPikaSpriteX:: ds 1 wPikaPicTextboxStartX:: wPikaSpriteY:: ds 1 ; d454 -wPikaPicTextboxStartY:: ds 1 - ds 25 +wPikaPicTextboxStartY:: ds 1 ; d455 +wd456:: ds 1 ; d456 +wd457:: ds 1 ; d457 +wd458:: ds 1 ; d458 +wCurPikaPicAnimObject:: ; d459 +wCurPikaPicAnimObjectIndex:: ds 1 +wCurPikaPicAnimObjectGraphicID:: dw + ds 19 wPikachuHappiness:: ds 1 ; d46f wPikachuMood:: ds 1 ; d470 -- cgit v1.2.3 From 016ce20442a54391f2da95e1a7843846c304bbb7 Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Wed, 25 May 2016 18:56:07 -0400 Subject: Fully disassemble pikachu pic animation scripts --- engine/pikachu_pic_animation.asm | 393 +++++++++++++++++++++++++++++++++------ 1 file changed, 331 insertions(+), 62 deletions(-) diff --git a/engine/pikachu_pic_animation.asm b/engine/pikachu_pic_animation.asm index 42b37735..68bddad6 100755 --- a/engine/pikachu_pic_animation.asm +++ b/engine/pikachu_pic_animation.asm @@ -2827,7 +2827,7 @@ Data_fe242: db 4, %11100100 db $ff -Data_fe26b: +Data_fe26b: ; fe26b (3f:626b) pikapic_loadgfx $1 pikapic_loadgfx $f pikapic_loadgfx $3e @@ -2836,11 +2836,11 @@ Data_fe26b: pikapic_object $3, $b6, $5, $5 pikapic_waitbgmap pikapic_cry -.loop +Data_fe286: ; fe286 (3f:6286) pikapic_waitbgmap - pikapic_jump .loop + pikapic_jump Data_fe286 -Data_fe28a: +Data_fe28a: ; fe28a (3f:628a) pikapic_setdelay 40 pikapic_loadgfx $1 pikapic_loadgfx $2 @@ -2848,11 +2848,11 @@ Data_fe28a: pikapic_object $6, $99, $0, $0 pikapic_waitbgmap pikapic_cry PikachuCry3 -.loop +Data_fe2a0: ; fe2a0 (3f:62a0) pikapic_waitbgmap - pikapic_jump .loop + pikapic_jump Data_fe2a0 -Data_fe2a4: +Data_fe2a4: ; fe2a4 (3f:62a4) pikapic_setdelay 44 pikapic_loadgfx $3 pikapic_loadgfx $4 @@ -2860,62 +2860,331 @@ Data_fe2a4: pikapic_object $7, $99, $0, $0 pikapic_waitbgmap pikapic_cry -.loop +Data_fe2ba: ; fe2ba (3f:62ba) + pikapic_waitbgmap + pikapic_jump Data_fe2ba + +Data_fe2be: ; fe2be (3f:62be) + pikapic_setdelay 80 + pikapic_loadgfx $5 + pikapic_loadgfx $6 + pikapic_object $4, $80, $0, $0 + pikapic_object $8, $99, $0, $0 + pikapic_waitbgmap + pikapic_cry +Data_fe2d4: ; fe2d4 (3f:62d4) + pikapic_waitbgmap + pikapic_jump Data_fe2d4 + +Data_fe2d8: ; fe2d8 (3f:62d8) + pikapic_setdelay 70 + pikapic_loadgfx $7 + pikapic_loadgfx $8 + pikapic_object $4, $80, $0, $0 + pikapic_object $9, $99, $0, $0 + pikapic_waitbgmap + pikapic_cry +Data_fe2ee: ; fe2ee (3f:62ee) + pikapic_waitbgmap + pikapic_jump Data_fe2ee + +Data_fe2f2: ; fe2f2 (3f:62f2) + pikapic_setdelay 32 + pikapic_loadgfx $9 + pikapic_loadgfx $a + pikapic_object $4, $80, $0, $0 + pikapic_object $a, $99, $0, $0 + pikapic_waitbgmap + pikapic_cry +Data_fe308: ; fe308 (3f:6308) + pikapic_waitbgmap + pikapic_jump Data_fe308 + +Data_fe30c: ; fe30c (3f:630c) + pikapic_setdelay 50 + pikapic_loadgfx $b + pikapic_loadgfx $c + pikapic_object $4, $80, $0, $0 + pikapic_object $b, $99, $0, $0 + pikapic_waitbgmap + pikapic_cry PikachuCry38 +Data_fe322: ; fe322 (3f:6322) + pikapic_waitbgmap + pikapic_jump Data_fe322 + +Data_fe326: ; fe326 (3f:6326) + pikapic_setdelay 58 + pikapic_loadgfx $d + pikapic_loadgfx $e + pikapic_object $4, $80, $0, $0 + pikapic_object $c, $99, $0, $0 + pikapic_waitbgmap + pikapic_cry +Data_fe33c: ; fe33c (3f:633c) + pikapic_waitbgmap + pikapic_jump Data_fe33c + +Data_fe340: ; fe340 (3f:6340) + pikapic_setdelay 44 + pikapic_loadgfx $f + pikapic_loadgfx $10 + pikapic_object $4, $80, $0, $0 + pikapic_object $d, $99, $0, $0 + pikapic_waitbgmap + pikapic_cry +Data_fe356: ; fe356 (3f:6356) + pikapic_waitbgmap + pikapic_jump Data_fe356 + +Data_fe35a: ; fe35a (3f:635a) + pikapic_setdelay 56 + pikapic_loadgfx $11 + pikapic_loadgfx $12 + pikapic_object $4, $80, $0, $0 + pikapic_object $e, $99, $0, $0 + pikapic_waitbgmap + pikapic_cry +Data_fe370: ; fe370 (3f:6370) + pikapic_waitbgmap + pikapic_jump Data_fe370 + +Data_fe374: ; fe374 (3f:6374) + pikapic_setdelay 56 + pikapic_loadgfx $13 + pikapic_loadgfx $14 + pikapic_loadgfx $15 + pikapic_object $4, $80, $0, $0 + pikapic_object $10, $99, $0, $0 + pikapic_waitbgmap + pikapic_cry +Data_fe38c: ; fe38c (3f:638c) + pikapic_waitbgmap + pikapic_jump Data_fe38c + +Data_fe390: ; fe390 (3f:6390) + pikapic_setdelay 100 + pikapic_loadgfx $16 + pikapic_loadgfx $17 + pikapic_object $4, $80, $0, $0 + pikapic_object $11, $99, $0, $0 + pikapic_waitbgmap + pikapic_cry +Data_fe3a6: ; fe3a6 (3f:63a6) + pikapic_waitbgmap + pikapic_jump Data_fe3a6 + +Data_fe3aa: ; fe3aa (3f:63aa) + pikapic_setdelay 50 + pikapic_loadgfx $18 + pikapic_loadgfx $19 + pikapic_object $4, $80, $0, $0 + pikapic_object $12, $99, $0, $0 + pikapic_waitbgmap + pikapic_cry PikachuCry25 +Data_fe3c0: ; fe3c0 (3f:63c0) + pikapic_waitbgmap + pikapic_jump Data_fe3c0 + +Data_fe3c4: ; fe3c4 (3f:63c4) + pikapic_setdelay 50 + pikapic_loadgfx $1a + pikapic_loadgfx $1b + pikapic_object $4, $80, $0, $0 + pikapic_object $13, $99, $0, $0 + pikapic_waitbgmap + pikapic_cry +Data_fe3da: ; fe3da (3f:63da) + pikapic_waitbgmap + pikapic_jump Data_fe3da + +Data_fe3de: ; fe3de (3f:63de) + pikapic_setdelay 40 + pikapic_loadgfx $1c + pikapic_loadgfx $1d + pikapic_object $4, $80, $0, $0 + pikapic_object $14, $99, $0, $0 + pikapic_waitbgmap + pikapic_cry +Data_fe3f4: ; fe3f4 (3f:63f4) + pikapic_waitbgmap + pikapic_jump Data_fe3f4 + +Data_fe3f8: ; fe3f8 (3f:63f8) + pikapic_setdelay 50 + pikapic_loadgfx $1e + pikapic_loadgfx $1f + pikapic_object $4, $80, $0, $0 + pikapic_object $15, $99, $0, $0 + pikapic_waitbgmap + pikapic_cry +Data_fe40e: ; fe40e (3f:640e) + pikapic_waitbgmap + pikapic_jump Data_fe40e + +Data_fe412: ; fe412 (3f:6412) + pikapic_setdelay 32 + pikapic_loadgfx $20 + pikapic_loadgfx $21 + pikapic_object $4, $80, $0, $0 + pikapic_object $16, $99, $0, $0 + pikapic_waitbgmap + pikapic_cry +Data_fe428: ; fe428 (3f:6428) + pikapic_waitbgmap + pikapic_jump Data_fe428 + +Data_fe42c: ; fe42c (3f:642c) + pikapic_setdelay 100 + pikapic_loadgfx $22 + pikapic_loadgfx $23 + pikapic_object $4, $80, $0, $0 + pikapic_object $17, $99, $0, $0 + pikapic_waitbgmap + pikapic_cry +Data_fe442: ; fe442 (3f:6442) + pikapic_waitbgmap + pikapic_jump Data_fe442 + +Data_fe446: ; fe446 (3f:6446) + pikapic_setdelay 32 + pikapic_loadgfx $24 + pikapic_loadgfx $25 + pikapic_object $5, $80, $0, $0 + pikapic_object $18, $99, $0, $0 + pikapic_waitbgmap + pikapic_cry PikachuCry18 +Data_fe45c: ; fe45c (3f:645c) + pikapic_waitbgmap + pikapic_jump Data_fe45c + +Data_fe460: ; fe460 (3f:6460) + pikapic_setdelay 44 + pikapic_loadgfx $26 + pikapic_loadgfx $27 + pikapic_object $4, $80, $0, $0 + pikapic_object $19, $99, $0, $0 + pikapic_waitbgmap + pikapic_cry +Data_fe476: ; fe476 (3f:6476) + pikapic_waitbgmap + pikapic_jump Data_fe476 + +Data_fe47a: ; fe47a (3f:647a) + pikapic_setdelay 50 + pikapic_loadgfx $28 + pikapic_loadgfx $29 + pikapic_object $4, $80, $0, $0 + pikapic_object $1a, $99, $0, $0 + pikapic_waitbgmap + pikapic_cry +Data_fe490: ; fe490 (3f:6490) + pikapic_waitbgmap + pikapic_jump Data_fe490 + +Data_fe494: ; fe494 (3f:6494) + pikapic_setdelay 40 + pikapic_loadgfx $2a + pikapic_loadgfx $2b + pikapic_loadgfx $2c + pikapic_loadgfx $2d + pikapic_loadgfx $2e + pikapic_object $4, $80, $0, $0 + pikapic_object $1b, $99, $0, $0 + pikapic_waitbgmap + pikapic_cry PikachuCry20 +Data_fe4b0: ; fe4b0 (3f:64b0) + pikapic_waitbgmap + pikapic_jump Data_fe4b0 + +Data_fe4b4: ; fe4b4 (3f:64b4) + pikapic_setdelay 40 + pikapic_loadgfx $2f + pikapic_loadgfx $30 + pikapic_object $5, $80, $0, $0 + pikapic_object $1c, $99, $0, $0 + pikapic_waitbgmap + pikapic_cry +Data_fe4ca: ; fe4ca (3f:64ca) + pikapic_waitbgmap + pikapic_jump Data_fe4ca + +Data_fe4ce: ; fe4ce (3f:64ce) + pikapic_setdelay 70 + pikapic_loadgfx $31 + pikapic_loadgfx $32 + pikapic_object $5, $80, $0, $0 + pikapic_object $1d, $99, $0, $0 + pikapic_waitbgmap + pikapic_cry +Data_fe4e4: ; fe4e4 (3f:64e4) + pikapic_waitbgmap + pikapic_jump Data_fe4e4 + +Data_fe4e8: ; fe4e8 (3f:64e8) + pikapic_setdelay 60 + pikapic_loadgfx $33 + pikapic_loadgfx $34 + pikapic_object $5, $80, $0, $0 + pikapic_object $1e, $99, $0, $0 + pikapic_waitbgmap + pikapic_cry +Data_fe4fe: ; fe4fe (3f:64fe) + pikapic_waitbgmap + pikapic_jump Data_fe4fe + +Data_fe502: ; fe502 (3f:6502) + pikapic_setdelay 50 + pikapic_loadgfx $35 + pikapic_loadgfx $36 + pikapic_loadgfx $37 + pikapic_object $4, $80, $0, $0 + pikapic_object $1f, $99, $0, $0 + pikapic_waitbgmap + pikapic_cry + pikapic_writebyte 13 + pikapic_waitbgmap + pikapic_thunderbolt + pikapic_ret + +Data_fe51f: ; fe51f (3f:651f) + pikapic_waitbgmap +Data_fe520: ; fe520 (3f:6520) + pikapic_setdelay 100 + pikapic_loadgfx $16 + pikapic_loadgfx $17 + pikapic_loadgfx $38 + pikapic_loadgfx $39 + pikapic_object $4, $80, $0, $0 + pikapic_object $20, $99, $0, $0 + pikapic_waitbgmap + pikapic_cry +Data_fe53a: ; fe53a (3f:653a) + pikapic_waitbgmap + pikapic_jump Data_fe53a + +Data_fe53e: ; fe53e (3f:653e) + pikapic_setdelay 30 + pikapic_loadgfx $3a + pikapic_loadgfx $3b + pikapic_object $4, $80, $0, $0 + pikapic_object $21, $99, $0, $0 + pikapic_waitbgmap + pikapic_cry +Data_fe554: ; fe554 (3f:6554) + pikapic_waitbgmap + pikapic_jump Data_fe554 + +Data_fe558: ; fe558 (3f:6558) + pikapic_setdelay 64 + pikapic_loadgfx $3c + pikapic_loadgfx $3d + pikapic_object $4, $80, $0, $0 + pikapic_object $22, $99, $0, $0 + pikapic_waitbgmap + pikapic_cry +Data_fe56e: ; fe56e (3f:656e) pikapic_waitbgmap - pikapic_jump .loop - -Data_fe2be: - dr $fe2be, $fe2d8 -Data_fe2d8: - dr $fe2d8, $fe2f2 -Data_fe2f2: - dr $fe2f2, $fe30c -Data_fe30c: - dr $fe30c, $fe326 -Data_fe326: - dr $fe326, $fe340 -Data_fe340: - dr $fe340, $fe35a -Data_fe35a: - dr $fe35a, $fe374 -Data_fe374: - dr $fe374, $fe390 -Data_fe390: - dr $fe390, $fe3aa -Data_fe3aa: - dr $fe3aa, $fe3c4 -Data_fe3c4: - dr $fe3c4, $fe3de -Data_fe3de: - dr $fe3de, $fe3f8 -Data_fe3f8: - dr $fe3f8, $fe412 -Data_fe412: - dr $fe412, $fe42c -Data_fe42c: - dr $fe42c, $fe446 -Data_fe446: - dr $fe446, $fe460 -Data_fe460: - dr $fe460, $fe47a -Data_fe47a: - dr $fe47a, $fe494 -Data_fe494: - dr $fe494, $fe4b4 -Data_fe4b4: - dr $fe4b4, $fe4ce -Data_fe4ce: - dr $fe4ce, $fe4e8 -Data_fe4e8: - dr $fe4e8, $fe502 -Data_fe502: - dr $fe502, $fe520 -Data_fe520: - dr $fe520, $fe53e -Data_fe53e: - dr $fe53e, $fe558 -Data_fe558: - dr $fe558, $fe572 + pikapic_jump Data_fe56e PikaPicAnimGFXHeaders: pikapicanimgfx: MACRO -- cgit v1.2.3 From 9b4b0f179048915bb013e95a2342c574b0a9a5bf Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Wed, 25 May 2016 19:08:54 -0400 Subject: Replace pcm arguments with pcm file labels --- constants/pikachu_emotion_constants.asm | 6 +- engine/bank3f.asm | 417 ++++++++++++++++++++++++++++++++ engine/pikachu_pic_animation.asm | 416 ------------------------------- 3 files changed, 422 insertions(+), 417 deletions(-) diff --git a/constants/pikachu_emotion_constants.asm b/constants/pikachu_emotion_constants.asm index bce84eb7..22c1d8ea 100644 --- a/constants/pikachu_emotion_constants.asm +++ b/constants/pikachu_emotion_constants.asm @@ -35,7 +35,11 @@ ENDM pikaemotion_pcm: MACRO db PIKAEMOTION_PLAYPCMSOUNDCLIP - db \1 +IF _NARG > 0 + dpikacry \1 +ELSE + db $ff +ENDC ENDM pikaemotion_emotebubble: MACRO diff --git a/engine/bank3f.asm b/engine/bank3f.asm index f6a9371e..75ebda71 100644 --- a/engine/bank3f.asm +++ b/engine/bank3f.asm @@ -1914,6 +1914,423 @@ Func_fcffb: ; fcffb (3f:4ffb) Func_fd001:: ; fd001 (3f:5001) ld a, e jr asm_fd00f + +Func_fd004:: ; fd004 (3f:5004) + call Func_fd05e + jr c, asm_fd00f + call GetPikaPicAnimationScriptIndex + call Func_fcffb +asm_fd00f: ; fd00f (3f:500f) + ld [wExpressionNumber], a + ld hl, PikachuEmotionTable + call DoStarterPikachuEmotions + ret + +PikachuEmotionTable: ; fd019 (3f:4019) + dw PikachuEmotion0_fd115 + dw PikachuEmotion1_fd141 + dw PikachuEmotion2_fd116 + dw PikachuEmotion3_fd160 + dw PikachuEmotion4_fd136 + dw PikachuEmotion5_fd14d + dw PikachuEmotion6_fd153 + dw PikachuEmotion7_fd128 + dw PikachuEmotion8_fd147 + dw PikachuEmotion9_fd166 + dw PikachuEmotion10_fd11e + dw PikachuEmotion11_fd173 + dw PikachuEmotion12_fd17a + dw PikachuEmotion13_fd180 + dw PikachuEmotion14_fd189 + dw PikachuEmotion15_fd191 + dw PikachuEmotion16_fd197 + dw PikachuEmotion17_fd19d + dw PikachuEmotion18_fd1a3 + dw PikachuEmotion19_fd1a9 + dw PikachuEmotion20_fd1b1 + dw PikachuEmotion21_fd1b9 + dw PikachuEmotion22_fd1c1 + dw PikachuEmotion23_fd1c7 + dw PikachuEmotion24_fd1cf + dw PikachuEmotion25_fd1d7 + dw PikachuEmotion26_fd1df + dw PikachuEmotion27_fd1eb + dw PikachuEmotion28_fd1f1 + dw PikachuEmotion29_fd1f7 + dw PikachuEmotion30_fd1fc + dw PikachuEmotion31_fd20a + dw PikachuEmotion32_fd213 + dw PikachuEmotion33_fd05d + +PikachuEmotion33_fd05d: ; fd05d (3f:505d) + db $ff + +Func_fd05e: ; fd05e (3f:505e) + ld a, [wCurMap] + cp POKEMON_FAN_CLUB + jr nz, .notFanClub + ld hl, wPreventBlackout + bit 7, [hl] + ld a, $1d + jr z, .asm_fd0c9 + call Func_154a + ld a, $1e + jr nz, .asm_fd0c9 + jr .asm_fd096 +.notFanClub + ld a, [wCurMap] + cp PEWTER_POKECENTER + jr nz, .notPewterPokecenter + call Func_154a + ld a, $1a + jr nz, .asm_fd0c9 + jr .asm_fd096 +.notPewterPokecenter + callab Func_f24ae + ld a, e + cp $ff + jr nz, .asm_fd0c9 + jr .asm_fd096 +.asm_fd096 + call IsPlayerPikachuAsleepInParty + ld a, $b + jr c, .asm_fd0c9 + callab Func_fce73 ; same bank + ld a, $1c + jr c, .asm_fd0c9 + ld a, [wCurMap] + cp POKEMONTOWER_1 + jr c, .notInLavenderTower + cp POKEMONTOWER_7 + 1 + ld a, $16 + jr c, .asm_fd0c9 +.notInLavenderTower + ld a, [wd49c] + and a + jr z, .asm_fd0c7 + dec a + ld c, a + ld b, $0 + ld hl, Pointer_fd0cb + add hl, bc + ld a, [hl] + jr .asm_fd0c9 +.asm_fd0c7 + and a + ret +.asm_fd0c9 + scf + ret + +Pointer_fd0cb: + db $12, $15, $17, $18, $19 + +IsPlayerPikachuAsleepInParty:: ; fd0d0 (3f:50d0) + xor a + ld [wWhichPokemon], a +.loop + ld a, [wWhichPokemon] + ld c, a + ld b, $0 + ld hl, wPartySpecies + add hl, bc + ld a, [hl] + cp $ff + jr z, .done + cp PIKACHU + jr nz, .curMonNotStarterPikachu + callab IsThisPartymonStarterPikachu + jr nc, .curMonNotStarterPikachu + ld a, [wWhichPokemon] + ld hl, wPartyMon1Status + ld bc, wPartyMon2 - wPartyMon1 + call AddNTimes + ld a, [hl] + and SLP + jr z, .done + jr .curMonSleepingPikachu +.curMonNotStarterPikachu + ld a, [wWhichPokemon] + cp PARTY_LENGTH - 1 + jr z, .done + inc a + ld [wWhichPokemon], a + jr .loop +.curMonSleepingPikachu + scf + ret +.done + and a + ret + +PikachuEmotion0_fd115: ; fd115 (3f:5115) + db $ff + +PikachuEmotion2_fd116: ; fd116 (3f:5116) + pikaemotion_dummy2 + pikaemotion_emotebubble SMILE_BUBBLE + pikaemotion_pcm PikachuCry35 + pikaemotion_5 $2 + db $ff + +PikachuEmotion10_fd11e: ; fd11e (3f:511e) + pikaemotion_dummy2 + pikaemotion_subcmd PIKAEMOTION_SUBCMD_LOADEXTRAPIKASPRITES + pikaemotion_emotebubble HEART_BUBBLE + pikaemotion_pcm PikachuCry5 + pikaemotion_5 $a + db $ff + +PikachuEmotion7_fd128: ; fd128 (3f:5128) + pikaemotion_dummy2 + pikaemotion_subcmd PIKAEMOTION_SUBCMD_LOADEXTRAPIKASPRITES + pikaemotion_4 Pointer_fd224 + pikaemotion_pcm PikachuCry1 + pikaemotion_4 Pointer_fd224 + pikaemotion_5 $7 + db $ff + +PikachuEmotion4_fd136: ; fd136 (3f:5136) + pikaemotion_dummy2 + pikaemotion_subcmd PIKAEMOTION_SUBCMD_LOADEXTRAPIKASPRITES + pikaemotion_4 Pointer_fd230 + pikaemotion_pcm PikachuCry29 + pikaemotion_5 $4 + db $ff + +PikachuEmotion1_fd141: ; fd141 (3f:5141) + pikaemotion_dummy2 + pikaemotion_pcm + pikaemotion_5 $1 + db $ff + +PikachuEmotion8_fd147: ; fd147 (3f:5147) + pikaemotion_dummy2 + pikaemotion_pcm PikachuCry39 + pikaemotion_5 $8 + db $ff + +PikachuEmotion5_fd14d: ; fd14d (3f:514d) + pikaemotion_dummy2 + pikaemotion_pcm PikachuCry31 + pikaemotion_5 $5 + db $ff + +PikachuEmotion6_fd153: ; fd153 (3f:5153) + pikaemotion_dummy2 + pikaemotion_subcmd PIKAEMOTION_SUBCMD_LOADEXTRAPIKASPRITES + pikaemotion_pcm + pikaemotion_4 Pointer_fd21e + pikaemotion_emotebubble SKULL_BUBBLE + pikaemotion_5 $6 + db $ff + +PikachuEmotion3_fd160: ; fd160 (3f:5160) + pikaemotion_dummy2 + pikaemotion_pcm PikachuCry40 + pikaemotion_5 $3 + db $ff + +PikachuEmotion9_fd166: ; fd166 (3f:5166) + pikaemotion_dummy2 + pikaemotion_subcmd PIKAEMOTION_SUBCMD_LOADEXTRAPIKASPRITES + pikaemotion_pcm PikachuCry6 + pikaemotion_4 Pointer_fd218 + pikaemotion_emotebubble SKULL_BUBBLE + pikaemotion_5 $9 + db $ff + +PikachuEmotion11_fd173: ; fd173 (3f:5173) + pikaemotion_emotebubble ZZZ_BUBBLE + pikaemotion_pcm PikachuCry37 + pikaemotion_5 $b + db $ff + +PikachuEmotion12_fd17a: ; fd17a (3f:517a) + pikaemotion_dummy2 + pikaemotion_pcm + pikaemotion_5 $c + db $ff + +PikachuEmotion13_fd180: ; fd180 (3f:5180) + pikaemotion_dummy2 + pikaemotion_subcmd PIKAEMOTION_SUBCMD_LOADEXTRAPIKASPRITES + pikaemotion_4 Pointer_fd21e + pikaemotion_5 $d + db $ff + +PikachuEmotion14_fd189: ; fd189 (3f:5189) + pikaemotion_dummy2 + pikaemotion_emotebubble BOLT_BUBBLE + pikaemotion_pcm PikachuCry10 + pikaemotion_5 $e + db $ff + +PikachuEmotion15_fd191: ; fd191 (3f:5191) + pikaemotion_dummy2 + pikaemotion_pcm PikachuCry34 + pikaemotion_5 $f + db $ff + +PikachuEmotion16_fd197: ; fd197 (3f:5197) + pikaemotion_dummy2 + pikaemotion_pcm PikachuCry33 + pikaemotion_5 $10 + db $ff + +PikachuEmotion17_fd19d: ; fd19d (3f:519d) + pikaemotion_dummy2 + pikaemotion_pcm PikachuCry13 + pikaemotion_5 $11 + db $ff + +PikachuEmotion18_fd1a3: ; fd1a3 (3f:51a3) + pikaemotion_dummy2 + pikaemotion_pcm + pikaemotion_5 $12 + db $ff + +PikachuEmotion19_fd1a9: ; fd1a9 (3f:51a9) + pikaemotion_dummy2 + pikaemotion_emotebubble HEART_BUBBLE + pikaemotion_pcm PikachuCry33 + pikaemotion_5 $13 + db $ff + +PikachuEmotion20_fd1b1: ; fd1b1 (3f:51b1) + pikaemotion_dummy2 + pikaemotion_emotebubble HEART_BUBBLE + pikaemotion_pcm PikachuCry5 + pikaemotion_5 $14 + db $ff + +PikachuEmotion21_fd1b9: ; fd1b9 (3f:51b9) + pikaemotion_dummy2 + pikaemotion_emotebubble FISH_BUBBLE + pikaemotion_pcm + pikaemotion_5 $15 + db $ff + +PikachuEmotion22_fd1c1: ; fd1c1 (3f:51c1) + pikaemotion_dummy2 + pikaemotion_pcm PikachuCry4 + pikaemotion_5 $16 + db $ff + +PikachuEmotion23_fd1c7: ; fd1c7 (3f:51c7) + pikaemotion_dummy2 + pikaemotion_pcm PikachuCry19 + pikaemotion_5 $17 + pikaemotion_subcmd PIKAEMOTION_SUBCMD_SHOWMAPVIEW + db $ff + +PikachuEmotion24_fd1cf: ; fd1cf (3f:51cf) + pikaemotion_dummy2 + pikaemotion_emotebubble EXCLAMATION_BUBBLE + pikaemotion_pcm + pikaemotion_5 $18 + db $ff + +PikachuEmotion25_fd1d7: ; fd1d7 (3f:51d7) + pikaemotion_dummy2 + pikaemotion_emotebubble BOLT_BUBBLE + pikaemotion_pcm PikachuCry35 + pikaemotion_5 $19 + db $ff + +PikachuEmotion26_fd1df: ; fd1df (3f:51df) + pikaemotion_dummy2 + pikaemotion_emotebubble ZZZ_BUBBLE + pikaemotion_pcm PikachuCry37 + pikaemotion_5 $1a + pikaemotion_subcmd PIKAEMOTION_SUBCMD_SHOWMAPVIEW + pikaemotion_subcmd PIKAEMOTION_SUBCMD_CHECKPEWTERCENTER + db $ff + +PikachuEmotion27_fd1eb: ; fd1eb (3f:51eb) + pikaemotion_dummy2 + pikaemotion_pcm PikachuCry9 + pikaemotion_5 $1b + db $ff + +PikachuEmotion28_fd1f1: ; fd1f1 (3f:51f1) + pikaemotion_dummy2 + pikaemotion_pcm PikachuCry15 + pikaemotion_5 $1c + db $ff + +PikachuEmotion29_fd1f7: ; fd1f7 (3f:51f7) + pikaemotion_pcm PikachuCry5 + pikaemotion_5 $a + db $ff + +PikachuEmotion30_fd1fc: ; fd1fc (3f:51fc) + pikaemotion_9 + pikaemotion_emotebubble HEART_BUBBLE + pikaemotion_pcm PikachuCry5 + pikaemotion_5 $14 + pikaemotion_subcmd PIKAEMOTION_SUBCMD_SHOWMAPVIEW + pikaemotion_subcmd PIKAEMOTION_SUBCMD_LOADFONT + pikaemotion_subcmd PIKAEMOTION_SUBCMD_CHECKLAVENDERTOWER + db $ff + +PikachuEmotion31_fd20a: ; fd20a (3f:520a) + pikaemotion_pcm PikachuCry19 + pikaemotion_5 $17 + pikaemotion_subcmd PIKAEMOTION_SUBCMD_SHOWMAPVIEW + pikaemotion_subcmd PIKAEMOTION_SUBCMD_CHECKBILLSHOUSE + db $ff + +PikachuEmotion32_fd213: ; fd213 (3f:5213) + pikaemotion_pcm PikachuCry26 + pikaemotion_5 $17 + db $ff + +Pointer_fd218: ; fd218 (3f:5218) + + db $00 + db $39, $01 + db $3e, $1e + db $3f + +Pointer_fd21e: ; fd21e (3f:521e) + db $00 + db $39, $00 + db $3e, $1e + db $3f + +Pointer_fd224: ; fd224 (3f:5224) + db $00 + db $3c, $07, $2f + db $3c, $07, $2f + db $3f + +Pointer_fd22c: ; fd22c (3f:522c) + db $3b, $1f, $03 + db $3f + +Pointer_fd230: ; fd230 (3f:5230) + db $00 + db $3c, $0f, $1f + db $3c, $0f, $1f + db $3f + +Pointer_fd238: ; fd238 (3f:5238) + db $00 + db $05, $07 + db $39, $00 + db $05, $07 + db $06, $07 + db $39, $00 + db $06, $07 + db $08, $07 + db $39, $00 + db $08, $07 + db $07, $07 + db $39, $00 + db $07, $07 + db $3f + INCLUDE "engine/pikachu_pic_animation.asm" diff --git a/engine/pikachu_pic_animation.asm b/engine/pikachu_pic_animation.asm index 68bddad6..954ac77e 100755 --- a/engine/pikachu_pic_animation.asm +++ b/engine/pikachu_pic_animation.asm @@ -1,419 +1,3 @@ -Func_fd004:: ; fd004 (3f:5004) - call Func_fd05e - jr c, asm_fd00f - call GetPikaPicAnimationScriptIndex - call Func_fcffb -asm_fd00f: ; fd00f (3f:500f) - ld [wExpressionNumber], a - ld hl, PikachuEmotionTable - call DoStarterPikachuEmotions - ret - -PikachuEmotionTable: ; fd019 (3f:4019) - dw PikachuEmotion0_fd115 - dw PikachuEmotion1_fd141 - dw PikachuEmotion2_fd116 - dw PikachuEmotion3_fd160 - dw PikachuEmotion4_fd136 - dw PikachuEmotion5_fd14d - dw PikachuEmotion6_fd153 - dw PikachuEmotion7_fd128 - dw PikachuEmotion8_fd147 - dw PikachuEmotion9_fd166 - dw PikachuEmotion10_fd11e - dw PikachuEmotion11_fd173 - dw PikachuEmotion12_fd17a - dw PikachuEmotion13_fd180 - dw PikachuEmotion14_fd189 - dw PikachuEmotion15_fd191 - dw PikachuEmotion16_fd197 - dw PikachuEmotion17_fd19d - dw PikachuEmotion18_fd1a3 - dw PikachuEmotion19_fd1a9 - dw PikachuEmotion20_fd1b1 - dw PikachuEmotion21_fd1b9 - dw PikachuEmotion22_fd1c1 - dw PikachuEmotion23_fd1c7 - dw PikachuEmotion24_fd1cf - dw PikachuEmotion25_fd1d7 - dw PikachuEmotion26_fd1df - dw PikachuEmotion27_fd1eb - dw PikachuEmotion28_fd1f1 - dw PikachuEmotion29_fd1f7 - dw PikachuEmotion30_fd1fc - dw PikachuEmotion31_fd20a - dw PikachuEmotion32_fd213 - dw PikachuEmotion33_fd05d - -PikachuEmotion33_fd05d: ; fd05d (3f:505d) - db $ff - -Func_fd05e: ; fd05e (3f:505e) - ld a, [wCurMap] - cp POKEMON_FAN_CLUB - jr nz, .notFanClub - ld hl, wPreventBlackout - bit 7, [hl] - ld a, $1d - jr z, .asm_fd0c9 - call Func_154a - ld a, $1e - jr nz, .asm_fd0c9 - jr .asm_fd096 -.notFanClub - ld a, [wCurMap] - cp PEWTER_POKECENTER - jr nz, .notPewterPokecenter - call Func_154a - ld a, $1a - jr nz, .asm_fd0c9 - jr .asm_fd096 -.notPewterPokecenter - callab Func_f24ae - ld a, e - cp $ff - jr nz, .asm_fd0c9 - jr .asm_fd096 -.asm_fd096 - call IsPlayerPikachuAsleepInParty - ld a, $b - jr c, .asm_fd0c9 - callab Func_fce73 ; same bank - ld a, $1c - jr c, .asm_fd0c9 - ld a, [wCurMap] - cp POKEMONTOWER_1 - jr c, .notInLavenderTower - cp POKEMONTOWER_7 + 1 - ld a, $16 - jr c, .asm_fd0c9 -.notInLavenderTower - ld a, [wd49c] - and a - jr z, .asm_fd0c7 - dec a - ld c, a - ld b, $0 - ld hl, Pointer_fd0cb - add hl, bc - ld a, [hl] - jr .asm_fd0c9 -.asm_fd0c7 - and a - ret -.asm_fd0c9 - scf - ret - -Pointer_fd0cb: - db $12, $15, $17, $18, $19 - -IsPlayerPikachuAsleepInParty:: ; fd0d0 (3f:50d0) - xor a - ld [wWhichPokemon], a -.loop - ld a, [wWhichPokemon] - ld c, a - ld b, $0 - ld hl, wPartySpecies - add hl, bc - ld a, [hl] - cp $ff - jr z, .done - cp PIKACHU - jr nz, .curMonNotStarterPikachu - callab IsThisPartymonStarterPikachu - jr nc, .curMonNotStarterPikachu - ld a, [wWhichPokemon] - ld hl, wPartyMon1Status - ld bc, wPartyMon2 - wPartyMon1 - call AddNTimes - ld a, [hl] - and SLP - jr z, .done - jr .curMonSleepingPikachu -.curMonNotStarterPikachu - ld a, [wWhichPokemon] - cp PARTY_LENGTH - 1 - jr z, .done - inc a - ld [wWhichPokemon], a - jr .loop -.curMonSleepingPikachu - scf - ret -.done - and a - ret - -PikachuEmotion0_fd115: ; fd115 (3f:5115) - db $ff - -PikachuEmotion2_fd116: ; fd116 (3f:5116) - pikaemotion_dummy2 - pikaemotion_emotebubble SMILE_BUBBLE - pikaemotion_pcm $22 - pikaemotion_5 $2 - db $ff - -PikachuEmotion10_fd11e: ; fd11e (3f:511e) - pikaemotion_dummy2 - pikaemotion_subcmd PIKAEMOTION_SUBCMD_LOADEXTRAPIKASPRITES - pikaemotion_emotebubble HEART_BUBBLE - pikaemotion_pcm $4 - pikaemotion_5 $a - db $ff - -PikachuEmotion7_fd128: ; fd128 (3f:5128) - pikaemotion_dummy2 - pikaemotion_subcmd PIKAEMOTION_SUBCMD_LOADEXTRAPIKASPRITES - pikaemotion_4 Pointer_fd224 - pikaemotion_pcm $0 - pikaemotion_4 Pointer_fd224 - pikaemotion_5 $7 - db $ff - -PikachuEmotion4_fd136: ; fd136 (3f:5136) - pikaemotion_dummy2 - pikaemotion_subcmd PIKAEMOTION_SUBCMD_LOADEXTRAPIKASPRITES - pikaemotion_4 Pointer_fd230 - pikaemotion_pcm $1c - pikaemotion_5 $4 - db $ff - -PikachuEmotion1_fd141: ; fd141 (3f:5141) - pikaemotion_dummy2 - pikaemotion_pcm $ff - pikaemotion_5 $1 - db $ff - -PikachuEmotion8_fd147: ; fd147 (3f:5147) - pikaemotion_dummy2 - pikaemotion_pcm $26 - pikaemotion_5 $8 - db $ff - -PikachuEmotion5_fd14d: ; fd14d (3f:514d) - pikaemotion_dummy2 - pikaemotion_pcm $1e - pikaemotion_5 $5 - db $ff - -PikachuEmotion6_fd153: ; fd153 (3f:5153) - pikaemotion_dummy2 - pikaemotion_subcmd PIKAEMOTION_SUBCMD_LOADEXTRAPIKASPRITES - pikaemotion_pcm $ff - pikaemotion_4 Pointer_fd21e - pikaemotion_emotebubble SKULL_BUBBLE - pikaemotion_5 $6 - db $ff - -PikachuEmotion3_fd160: ; fd160 (3f:5160) - pikaemotion_dummy2 - pikaemotion_pcm $27 - pikaemotion_5 $3 - db $ff - -PikachuEmotion9_fd166: ; fd166 (3f:5166) - pikaemotion_dummy2 - pikaemotion_subcmd PIKAEMOTION_SUBCMD_LOADEXTRAPIKASPRITES - pikaemotion_pcm $5 - pikaemotion_4 Pointer_fd218 - pikaemotion_emotebubble SKULL_BUBBLE - pikaemotion_5 $9 - db $ff - -PikachuEmotion11_fd173: ; fd173 (3f:5173) - pikaemotion_emotebubble ZZZ_BUBBLE - pikaemotion_pcm $24 - pikaemotion_5 $b - db $ff - -PikachuEmotion12_fd17a: ; fd17a (3f:517a) - pikaemotion_dummy2 - pikaemotion_pcm $ff - pikaemotion_5 $c - db $ff - -PikachuEmotion13_fd180: ; fd180 (3f:5180) - pikaemotion_dummy2 - pikaemotion_subcmd PIKAEMOTION_SUBCMD_LOADEXTRAPIKASPRITES - pikaemotion_4 Pointer_fd21e - pikaemotion_5 $d - db $ff - -PikachuEmotion14_fd189: ; fd189 (3f:5189) - pikaemotion_dummy2 - pikaemotion_emotebubble BOLT_BUBBLE - pikaemotion_pcm $9 - pikaemotion_5 $e - db $ff - -PikachuEmotion15_fd191: ; fd191 (3f:5191) - pikaemotion_dummy2 - pikaemotion_pcm $21 - pikaemotion_5 $f - db $ff - -PikachuEmotion16_fd197: ; fd197 (3f:5197) - pikaemotion_dummy2 - pikaemotion_pcm $20 - pikaemotion_5 $10 - db $ff - -PikachuEmotion17_fd19d: ; fd19d (3f:519d) - pikaemotion_dummy2 - pikaemotion_pcm $c - pikaemotion_5 $11 - db $ff - -PikachuEmotion18_fd1a3: ; fd1a3 (3f:51a3) - pikaemotion_dummy2 - pikaemotion_pcm $ff - pikaemotion_5 $12 - db $ff - -PikachuEmotion19_fd1a9: ; fd1a9 (3f:51a9) - pikaemotion_dummy2 - pikaemotion_emotebubble HEART_BUBBLE - pikaemotion_pcm $20 - pikaemotion_5 $13 - db $ff - -PikachuEmotion20_fd1b1: ; fd1b1 (3f:51b1) - pikaemotion_dummy2 - pikaemotion_emotebubble HEART_BUBBLE - pikaemotion_pcm $4 - pikaemotion_5 $14 - db $ff - -PikachuEmotion21_fd1b9: ; fd1b9 (3f:51b9) - pikaemotion_dummy2 - pikaemotion_emotebubble FISH_BUBBLE - pikaemotion_pcm $ff - pikaemotion_5 $15 - db $ff - -PikachuEmotion22_fd1c1: ; fd1c1 (3f:51c1) - pikaemotion_dummy2 - pikaemotion_pcm $3 - pikaemotion_5 $16 - db $ff - -PikachuEmotion23_fd1c7: ; fd1c7 (3f:51c7) - pikaemotion_dummy2 - pikaemotion_pcm $12 - pikaemotion_5 $17 - pikaemotion_subcmd PIKAEMOTION_SUBCMD_SHOWMAPVIEW - db $ff - -PikachuEmotion24_fd1cf: ; fd1cf (3f:51cf) - pikaemotion_dummy2 - pikaemotion_emotebubble EXCLAMATION_BUBBLE - pikaemotion_pcm $ff - pikaemotion_5 $18 - db $ff - -PikachuEmotion25_fd1d7: ; fd1d7 (3f:51d7) - pikaemotion_dummy2 - pikaemotion_emotebubble BOLT_BUBBLE - pikaemotion_pcm $22 - pikaemotion_5 $19 - db $ff - -PikachuEmotion26_fd1df: ; fd1df (3f:51df) - pikaemotion_dummy2 - pikaemotion_emotebubble ZZZ_BUBBLE - pikaemotion_pcm $24 - pikaemotion_5 $1a - pikaemotion_subcmd PIKAEMOTION_SUBCMD_SHOWMAPVIEW - pikaemotion_subcmd PIKAEMOTION_SUBCMD_CHECKPEWTERCENTER - db $ff - -PikachuEmotion27_fd1eb: ; fd1eb (3f:51eb) - pikaemotion_dummy2 - pikaemotion_pcm $8 - pikaemotion_5 $1b - db $ff - -PikachuEmotion28_fd1f1: ; fd1f1 (3f:51f1) - pikaemotion_dummy2 - pikaemotion_pcm $e - pikaemotion_5 $1c - db $ff - -PikachuEmotion29_fd1f7: ; fd1f7 (3f:51f7) - pikaemotion_pcm $4 - pikaemotion_5 $a - db $ff - -PikachuEmotion30_fd1fc: ; fd1fc (3f:51fc) - pikaemotion_9 - pikaemotion_emotebubble HEART_BUBBLE - pikaemotion_pcm $4 - pikaemotion_5 $14 - pikaemotion_subcmd PIKAEMOTION_SUBCMD_SHOWMAPVIEW - pikaemotion_subcmd PIKAEMOTION_SUBCMD_LOADFONT - pikaemotion_subcmd PIKAEMOTION_SUBCMD_CHECKLAVENDERTOWER - db $ff - -PikachuEmotion31_fd20a: ; fd20a (3f:520a) - pikaemotion_pcm $12 - pikaemotion_5 $17 - pikaemotion_subcmd PIKAEMOTION_SUBCMD_SHOWMAPVIEW - pikaemotion_subcmd PIKAEMOTION_SUBCMD_CHECKBILLSHOUSE - db $ff - -PikachuEmotion32_fd213: ; fd213 (3f:5213) - pikaemotion_pcm $19 - pikaemotion_5 $17 - db $ff - -Pointer_fd218: ; fd218 (3f:5218) - - db $00 - db $39, $01 - db $3e, $1e - db $3f - -Pointer_fd21e: ; fd21e (3f:521e) - db $00 - db $39, $00 - db $3e, $1e - db $3f - -Pointer_fd224: ; fd224 (3f:5224) - db $00 - db $3c, $07, $2f - db $3c, $07, $2f - db $3f - -Pointer_fd22c: ; fd22c (3f:522c) - db $3b, $1f, $03 - db $3f - -Pointer_fd230: ; fd230 (3f:5230) - db $00 - db $3c, $0f, $1f - db $3c, $0f, $1f - db $3f - -Pointer_fd238: ; fd238 (3f:5238) - db $00 - db $05, $07 - db $39, $00 - db $05, $07 - db $06, $07 - db $39, $00 - db $06, $07 - db $08, $07 - db $39, $00 - db $08, $07 - db $07, $07 - db $39, $00 - db $07, $07 - db $3f - Func_fd252: ; fd252 (3f:5252) ld a, $40 ld [h_0xFFFC], a -- cgit v1.2.3 From 76225997a6e18ccf9fbb5a2c710a546c7d8b098b Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Wed, 25 May 2016 19:18:16 -0400 Subject: Move stuff around and disassemble a random function --- engine/bank3c.asm | 5 +- engine/bank3f.asm | 610 +-------------------------------------- engine/pikachu_pic_animation.asm | 607 ++++++++++++++++++++++++++++++++++++++ main.asm | 13 +- 4 files changed, 623 insertions(+), 612 deletions(-) diff --git a/engine/bank3c.asm b/engine/bank3c.asm index 1ebbd65b..d61fd8ed 100644 --- a/engine/bank3c.asm +++ b/engine/bank3c.asm @@ -14,10 +14,11 @@ PlayPikachuSoundClip:: ; f0000 (3c:4000) ld c, $4 .loop dec c - jr z, .asm_f0019 + jr z, .done_delay call DelayFrame jr .loop -.asm_f0019 + +.done_delay di push bc push hl diff --git a/engine/bank3f.asm b/engine/bank3f.asm index 75ebda71..a077a24b 100644 --- a/engine/bank3f.asm +++ b/engine/bank3f.asm @@ -1648,7 +1648,7 @@ Func_fce73:: ; fce73 (3f:4e73) and a ret -Func_fceab:: ; fceab (3f:4eab) +IsSurfingPikachuInThePlayersParty:: ; fceab (3f:4eab) ld hl, wPartySpecies ld de, wPartyMon1Moves ld bc, wPartyMonOT @@ -1723,614 +1723,6 @@ Func_fceab:: ; fceab (3f:4eab) pop hl and a ret - -IsPlayerTalkingToPikachu:: ; fcf0c (3f:4f0c) - ld a, [wd436] - and a - ret z - ld a, [hSpriteIndexOrTextID] - cp $f - ret nz - call InitializePikachuTextID - xor a - ld [hSpriteIndexOrTextID], a - ld [wd436], a - ret - -InitializePikachuTextID: ; fcf20 (3f:4f20) - ld a, $d4 ; display - ld [hSpriteIndexOrTextID], a - xor a - ld [wPlayerMovingDirection], a - ld a, $1 - ld [wAutoTextBoxDrawingControl], a - call DisplayTextID - xor a - ld [wAutoTextBoxDrawingControl], a - ret - -DoStarterPikachuEmotions: ; fcf35 (3f:4f35) - ld e, a - ld d, $0 - add hl, de - add hl, de - ld e, [hl] - inc hl - ld d, [hl] -.loop - ld a, [de] - inc de - cp $ff - jr z, .done - ld c, a - ld b, $0 - ld hl, StarterPikachuEmotionsJumptable - add hl, bc - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - call JumpToAddress - jr .loop -.done - ret - -StarterPikachuEmotionsJumptable: ; fcf54 (3f:4f54) - dw StarterPikachuEmotionCommand_nop ; 0 - dw StarterPikachuEmotionCommand_text ; 1 - dw StarterPikachuEmotionCommand_pcm ; 2 - dw StarterPikachuEmotionCommand_emote ; 3 - dw StarterPikachuEmotionCommand_4 ; 4 - dw StarterPikachuEmotionCommand_5 ; 5 - dw StarterPikachuEmotionCommand_subcmd ; 6 - dw StarterPikachuEmotionCommand_delay ; 7 - dw StarterPikachuEmotionCommand_nop2 ; 8 - dw StarterPikachuEmotionCommand_9 ; 9 - dw StarterPikachuEmotionCommand_nop3 ; a - -StarterPikachuEmotionCommand_nop: ; fcf6a (3f:4f6a) -StarterPikachuEmotionCommand_nop3: ; fcf6a (3f:4f6a) - ret - -StarterPikachuEmotionCommand_text: ; fcf6b (3f:4f6b) - ld a, [de] - ld l, a - inc de - ld a, [de] - ld h, a - inc de - push de - call PrintText - pop de - ret - -StarterPikachuEmotionCommand_pcm: ; fcf77 (3f:4f77) - ld a, [de] - inc de - push de - ld e, a - nop - call PlayPikachuSoundClip_ - pop de - ret - -PlayPikachuSoundClip_: ; fcf81 (3f:4f81) - cp $ff - ret z - callab PlayPikachuSoundClip - ret - -StarterPikachuEmotionCommand_emote: ; fcf8d (3f:4f8d) - ld a, [wUpdateSpritesEnabled] - push af - ld a, $ff - ld [wUpdateSpritesEnabled], a - ld a, [de] - inc de - push de - call ShowPikachuEmoteBubble - pop de - pop af - ld [wUpdateSpritesEnabled], a - ret - -ShowPikachuEmoteBubble: ; fcfa2 (3f:4fa2) - ld [wWhichEmotionBubble], a - ld a, $f - ld [wEmotionBubbleSpriteIndex], a - predef EmotionBubble - ret - -StarterPikachuEmotionCommand_4: ; fcfb0 (3f:4fb0) - ld a, [de] - inc de - ld l, a - ld a, [de] - inc de - ld h, a - push de - ld b, $3f - call Func_fd2a1 - pop de - ret - -StarterPikachuEmotionCommand_delay: ; fcfbe (3f:4fbe) - ld a, [de] - inc de - push de - ld c, a - call DelayFrames - pop de - ret - -StarterPikachuEmotionCommand_subcmd: ; fcfc7 (3f:4fc7) - ld a, [de] - inc de - push de - ld e, a - ld d, $0 - ld hl, Jumptable_fcfda - add hl, de - add hl, de - ld a, [hli] - ld h, [hl] - ld l, a - call JumpToAddress - pop de - ret - -Jumptable_fcfda: - dw LoadPikachuSpriteIntoVRAM - dw LoadFontTilePatterns - dw Pikachu_LoadCurrentMapViewUpdateSpritesAndDelay3 - dw WaitForTextScrollButtonPress - dw PikachuPewterPokecenterCheck - dw PikachuFanClubCheck - dw PikachuBillsHouseCheck - -StarterPikachuEmotionCommand_nop2: ; fcfe8 (3f:4fe8) - ret - -StarterPikachuEmotionCommand_9: ; fcfe9 (3f:4fe9) - push de - call Func_fcff2 - call UpdateSprites - pop de - ret - -Func_fcff2: ; fcff2 (3f:4ff2) - ld a, [wSpriteStateData1 + $9] - xor $4 - ld [wSpriteStateData1 + $f9], a - ret - -Func_fcffb: ; fcffb (3f:4ffb) -; Inexplicably empty. - rept 5 - nop - endr - ret - -Func_fd001:: ; fd001 (3f:5001) - ld a, e - jr asm_fd00f - -Func_fd004:: ; fd004 (3f:5004) - call Func_fd05e - jr c, asm_fd00f - call GetPikaPicAnimationScriptIndex - call Func_fcffb -asm_fd00f: ; fd00f (3f:500f) - ld [wExpressionNumber], a - ld hl, PikachuEmotionTable - call DoStarterPikachuEmotions - ret - -PikachuEmotionTable: ; fd019 (3f:4019) - dw PikachuEmotion0_fd115 - dw PikachuEmotion1_fd141 - dw PikachuEmotion2_fd116 - dw PikachuEmotion3_fd160 - dw PikachuEmotion4_fd136 - dw PikachuEmotion5_fd14d - dw PikachuEmotion6_fd153 - dw PikachuEmotion7_fd128 - dw PikachuEmotion8_fd147 - dw PikachuEmotion9_fd166 - dw PikachuEmotion10_fd11e - dw PikachuEmotion11_fd173 - dw PikachuEmotion12_fd17a - dw PikachuEmotion13_fd180 - dw PikachuEmotion14_fd189 - dw PikachuEmotion15_fd191 - dw PikachuEmotion16_fd197 - dw PikachuEmotion17_fd19d - dw PikachuEmotion18_fd1a3 - dw PikachuEmotion19_fd1a9 - dw PikachuEmotion20_fd1b1 - dw PikachuEmotion21_fd1b9 - dw PikachuEmotion22_fd1c1 - dw PikachuEmotion23_fd1c7 - dw PikachuEmotion24_fd1cf - dw PikachuEmotion25_fd1d7 - dw PikachuEmotion26_fd1df - dw PikachuEmotion27_fd1eb - dw PikachuEmotion28_fd1f1 - dw PikachuEmotion29_fd1f7 - dw PikachuEmotion30_fd1fc - dw PikachuEmotion31_fd20a - dw PikachuEmotion32_fd213 - dw PikachuEmotion33_fd05d - -PikachuEmotion33_fd05d: ; fd05d (3f:505d) - db $ff - -Func_fd05e: ; fd05e (3f:505e) - ld a, [wCurMap] - cp POKEMON_FAN_CLUB - jr nz, .notFanClub - ld hl, wPreventBlackout - bit 7, [hl] - ld a, $1d - jr z, .asm_fd0c9 - call Func_154a - ld a, $1e - jr nz, .asm_fd0c9 - jr .asm_fd096 -.notFanClub - ld a, [wCurMap] - cp PEWTER_POKECENTER - jr nz, .notPewterPokecenter - call Func_154a - ld a, $1a - jr nz, .asm_fd0c9 - jr .asm_fd096 -.notPewterPokecenter - callab Func_f24ae - ld a, e - cp $ff - jr nz, .asm_fd0c9 - jr .asm_fd096 -.asm_fd096 - call IsPlayerPikachuAsleepInParty - ld a, $b - jr c, .asm_fd0c9 - callab Func_fce73 ; same bank - ld a, $1c - jr c, .asm_fd0c9 - ld a, [wCurMap] - cp POKEMONTOWER_1 - jr c, .notInLavenderTower - cp POKEMONTOWER_7 + 1 - ld a, $16 - jr c, .asm_fd0c9 -.notInLavenderTower - ld a, [wd49c] - and a - jr z, .asm_fd0c7 - dec a - ld c, a - ld b, $0 - ld hl, Pointer_fd0cb - add hl, bc - ld a, [hl] - jr .asm_fd0c9 -.asm_fd0c7 - and a - ret -.asm_fd0c9 - scf - ret - -Pointer_fd0cb: - db $12, $15, $17, $18, $19 - -IsPlayerPikachuAsleepInParty:: ; fd0d0 (3f:50d0) - xor a - ld [wWhichPokemon], a -.loop - ld a, [wWhichPokemon] - ld c, a - ld b, $0 - ld hl, wPartySpecies - add hl, bc - ld a, [hl] - cp $ff - jr z, .done - cp PIKACHU - jr nz, .curMonNotStarterPikachu - callab IsThisPartymonStarterPikachu - jr nc, .curMonNotStarterPikachu - ld a, [wWhichPokemon] - ld hl, wPartyMon1Status - ld bc, wPartyMon2 - wPartyMon1 - call AddNTimes - ld a, [hl] - and SLP - jr z, .done - jr .curMonSleepingPikachu -.curMonNotStarterPikachu - ld a, [wWhichPokemon] - cp PARTY_LENGTH - 1 - jr z, .done - inc a - ld [wWhichPokemon], a - jr .loop -.curMonSleepingPikachu - scf - ret -.done - and a - ret - -PikachuEmotion0_fd115: ; fd115 (3f:5115) - db $ff - -PikachuEmotion2_fd116: ; fd116 (3f:5116) - pikaemotion_dummy2 - pikaemotion_emotebubble SMILE_BUBBLE - pikaemotion_pcm PikachuCry35 - pikaemotion_5 $2 - db $ff - -PikachuEmotion10_fd11e: ; fd11e (3f:511e) - pikaemotion_dummy2 - pikaemotion_subcmd PIKAEMOTION_SUBCMD_LOADEXTRAPIKASPRITES - pikaemotion_emotebubble HEART_BUBBLE - pikaemotion_pcm PikachuCry5 - pikaemotion_5 $a - db $ff - -PikachuEmotion7_fd128: ; fd128 (3f:5128) - pikaemotion_dummy2 - pikaemotion_subcmd PIKAEMOTION_SUBCMD_LOADEXTRAPIKASPRITES - pikaemotion_4 Pointer_fd224 - pikaemotion_pcm PikachuCry1 - pikaemotion_4 Pointer_fd224 - pikaemotion_5 $7 - db $ff - -PikachuEmotion4_fd136: ; fd136 (3f:5136) - pikaemotion_dummy2 - pikaemotion_subcmd PIKAEMOTION_SUBCMD_LOADEXTRAPIKASPRITES - pikaemotion_4 Pointer_fd230 - pikaemotion_pcm PikachuCry29 - pikaemotion_5 $4 - db $ff - -PikachuEmotion1_fd141: ; fd141 (3f:5141) - pikaemotion_dummy2 - pikaemotion_pcm - pikaemotion_5 $1 - db $ff - -PikachuEmotion8_fd147: ; fd147 (3f:5147) - pikaemotion_dummy2 - pikaemotion_pcm PikachuCry39 - pikaemotion_5 $8 - db $ff - -PikachuEmotion5_fd14d: ; fd14d (3f:514d) - pikaemotion_dummy2 - pikaemotion_pcm PikachuCry31 - pikaemotion_5 $5 - db $ff - -PikachuEmotion6_fd153: ; fd153 (3f:5153) - pikaemotion_dummy2 - pikaemotion_subcmd PIKAEMOTION_SUBCMD_LOADEXTRAPIKASPRITES - pikaemotion_pcm - pikaemotion_4 Pointer_fd21e - pikaemotion_emotebubble SKULL_BUBBLE - pikaemotion_5 $6 - db $ff - -PikachuEmotion3_fd160: ; fd160 (3f:5160) - pikaemotion_dummy2 - pikaemotion_pcm PikachuCry40 - pikaemotion_5 $3 - db $ff - -PikachuEmotion9_fd166: ; fd166 (3f:5166) - pikaemotion_dummy2 - pikaemotion_subcmd PIKAEMOTION_SUBCMD_LOADEXTRAPIKASPRITES - pikaemotion_pcm PikachuCry6 - pikaemotion_4 Pointer_fd218 - pikaemotion_emotebubble SKULL_BUBBLE - pikaemotion_5 $9 - db $ff - -PikachuEmotion11_fd173: ; fd173 (3f:5173) - pikaemotion_emotebubble ZZZ_BUBBLE - pikaemotion_pcm PikachuCry37 - pikaemotion_5 $b - db $ff - -PikachuEmotion12_fd17a: ; fd17a (3f:517a) - pikaemotion_dummy2 - pikaemotion_pcm - pikaemotion_5 $c - db $ff - -PikachuEmotion13_fd180: ; fd180 (3f:5180) - pikaemotion_dummy2 - pikaemotion_subcmd PIKAEMOTION_SUBCMD_LOADEXTRAPIKASPRITES - pikaemotion_4 Pointer_fd21e - pikaemotion_5 $d - db $ff - -PikachuEmotion14_fd189: ; fd189 (3f:5189) - pikaemotion_dummy2 - pikaemotion_emotebubble BOLT_BUBBLE - pikaemotion_pcm PikachuCry10 - pikaemotion_5 $e - db $ff - -PikachuEmotion15_fd191: ; fd191 (3f:5191) - pikaemotion_dummy2 - pikaemotion_pcm PikachuCry34 - pikaemotion_5 $f - db $ff - -PikachuEmotion16_fd197: ; fd197 (3f:5197) - pikaemotion_dummy2 - pikaemotion_pcm PikachuCry33 - pikaemotion_5 $10 - db $ff - -PikachuEmotion17_fd19d: ; fd19d (3f:519d) - pikaemotion_dummy2 - pikaemotion_pcm PikachuCry13 - pikaemotion_5 $11 - db $ff - -PikachuEmotion18_fd1a3: ; fd1a3 (3f:51a3) - pikaemotion_dummy2 - pikaemotion_pcm - pikaemotion_5 $12 - db $ff - -PikachuEmotion19_fd1a9: ; fd1a9 (3f:51a9) - pikaemotion_dummy2 - pikaemotion_emotebubble HEART_BUBBLE - pikaemotion_pcm PikachuCry33 - pikaemotion_5 $13 - db $ff - -PikachuEmotion20_fd1b1: ; fd1b1 (3f:51b1) - pikaemotion_dummy2 - pikaemotion_emotebubble HEART_BUBBLE - pikaemotion_pcm PikachuCry5 - pikaemotion_5 $14 - db $ff - -PikachuEmotion21_fd1b9: ; fd1b9 (3f:51b9) - pikaemotion_dummy2 - pikaemotion_emotebubble FISH_BUBBLE - pikaemotion_pcm - pikaemotion_5 $15 - db $ff - -PikachuEmotion22_fd1c1: ; fd1c1 (3f:51c1) - pikaemotion_dummy2 - pikaemotion_pcm PikachuCry4 - pikaemotion_5 $16 - db $ff - -PikachuEmotion23_fd1c7: ; fd1c7 (3f:51c7) - pikaemotion_dummy2 - pikaemotion_pcm PikachuCry19 - pikaemotion_5 $17 - pikaemotion_subcmd PIKAEMOTION_SUBCMD_SHOWMAPVIEW - db $ff - -PikachuEmotion24_fd1cf: ; fd1cf (3f:51cf) - pikaemotion_dummy2 - pikaemotion_emotebubble EXCLAMATION_BUBBLE - pikaemotion_pcm - pikaemotion_5 $18 - db $ff - -PikachuEmotion25_fd1d7: ; fd1d7 (3f:51d7) - pikaemotion_dummy2 - pikaemotion_emotebubble BOLT_BUBBLE - pikaemotion_pcm PikachuCry35 - pikaemotion_5 $19 - db $ff - -PikachuEmotion26_fd1df: ; fd1df (3f:51df) - pikaemotion_dummy2 - pikaemotion_emotebubble ZZZ_BUBBLE - pikaemotion_pcm PikachuCry37 - pikaemotion_5 $1a - pikaemotion_subcmd PIKAEMOTION_SUBCMD_SHOWMAPVIEW - pikaemotion_subcmd PIKAEMOTION_SUBCMD_CHECKPEWTERCENTER - db $ff - -PikachuEmotion27_fd1eb: ; fd1eb (3f:51eb) - pikaemotion_dummy2 - pikaemotion_pcm PikachuCry9 - pikaemotion_5 $1b - db $ff - -PikachuEmotion28_fd1f1: ; fd1f1 (3f:51f1) - pikaemotion_dummy2 - pikaemotion_pcm PikachuCry15 - pikaemotion_5 $1c - db $ff - -PikachuEmotion29_fd1f7: ; fd1f7 (3f:51f7) - pikaemotion_pcm PikachuCry5 - pikaemotion_5 $a - db $ff - -PikachuEmotion30_fd1fc: ; fd1fc (3f:51fc) - pikaemotion_9 - pikaemotion_emotebubble HEART_BUBBLE - pikaemotion_pcm PikachuCry5 - pikaemotion_5 $14 - pikaemotion_subcmd PIKAEMOTION_SUBCMD_SHOWMAPVIEW - pikaemotion_subcmd PIKAEMOTION_SUBCMD_LOADFONT - pikaemotion_subcmd PIKAEMOTION_SUBCMD_CHECKLAVENDERTOWER - db $ff - -PikachuEmotion31_fd20a: ; fd20a (3f:520a) - pikaemotion_pcm PikachuCry19 - pikaemotion_5 $17 - pikaemotion_subcmd PIKAEMOTION_SUBCMD_SHOWMAPVIEW - pikaemotion_subcmd PIKAEMOTION_SUBCMD_CHECKBILLSHOUSE - db $ff - -PikachuEmotion32_fd213: ; fd213 (3f:5213) - pikaemotion_pcm PikachuCry26 - pikaemotion_5 $17 - db $ff - -Pointer_fd218: ; fd218 (3f:5218) - - db $00 - db $39, $01 - db $3e, $1e - db $3f - -Pointer_fd21e: ; fd21e (3f:521e) - db $00 - db $39, $00 - db $3e, $1e - db $3f - -Pointer_fd224: ; fd224 (3f:5224) - db $00 - db $3c, $07, $2f - db $3c, $07, $2f - db $3f - -Pointer_fd22c: ; fd22c (3f:522c) - db $3b, $1f, $03 - db $3f - -Pointer_fd230: ; fd230 (3f:5230) - db $00 - db $3c, $0f, $1f - db $3c, $0f, $1f - db $3f - -Pointer_fd238: ; fd238 (3f:5238) - db $00 - db $05, $07 - db $39, $00 - db $05, $07 - db $06, $07 - db $39, $00 - db $06, $07 - db $08, $07 - db $39, $00 - db $08, $07 - db $07, $07 - db $39, $00 - db $07, $07 - db $3f - INCLUDE "engine/pikachu_pic_animation.asm" diff --git a/engine/pikachu_pic_animation.asm b/engine/pikachu_pic_animation.asm index 954ac77e..e5099a04 100755 --- a/engine/pikachu_pic_animation.asm +++ b/engine/pikachu_pic_animation.asm @@ -1,3 +1,610 @@ +IsPlayerTalkingToPikachu:: ; fcf0c (3f:4f0c) + ld a, [wd436] + and a + ret z + ld a, [hSpriteIndexOrTextID] + cp $f + ret nz + call InitializePikachuTextID + xor a + ld [hSpriteIndexOrTextID], a + ld [wd436], a + ret + +InitializePikachuTextID: ; fcf20 (3f:4f20) + ld a, $d4 ; display + ld [hSpriteIndexOrTextID], a + xor a + ld [wPlayerMovingDirection], a + ld a, $1 + ld [wAutoTextBoxDrawingControl], a + call DisplayTextID + xor a + ld [wAutoTextBoxDrawingControl], a + ret + +DoStarterPikachuEmotions: ; fcf35 (3f:4f35) + ld e, a + ld d, $0 + add hl, de + add hl, de + ld e, [hl] + inc hl + ld d, [hl] +.loop + ld a, [de] + inc de + cp $ff + jr z, .done + ld c, a + ld b, $0 + ld hl, StarterPikachuEmotionsJumptable + add hl, bc + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + call JumpToAddress + jr .loop +.done + ret + +StarterPikachuEmotionsJumptable: ; fcf54 (3f:4f54) + dw StarterPikachuEmotionCommand_nop ; 0 + dw StarterPikachuEmotionCommand_text ; 1 + dw StarterPikachuEmotionCommand_pcm ; 2 + dw StarterPikachuEmotionCommand_emote ; 3 + dw StarterPikachuEmotionCommand_4 ; 4 + dw StarterPikachuEmotionCommand_5 ; 5 + dw StarterPikachuEmotionCommand_subcmd ; 6 + dw StarterPikachuEmotionCommand_delay ; 7 + dw StarterPikachuEmotionCommand_nop2 ; 8 + dw StarterPikachuEmotionCommand_9 ; 9 + dw StarterPikachuEmotionCommand_nop3 ; a + +StarterPikachuEmotionCommand_nop: ; fcf6a (3f:4f6a) +StarterPikachuEmotionCommand_nop3: ; fcf6a (3f:4f6a) + ret + +StarterPikachuEmotionCommand_text: ; fcf6b (3f:4f6b) + ld a, [de] + ld l, a + inc de + ld a, [de] + ld h, a + inc de + push de + call PrintText + pop de + ret + +StarterPikachuEmotionCommand_pcm: ; fcf77 (3f:4f77) + ld a, [de] + inc de + push de + ld e, a + nop + call PlayPikachuSoundClip_ + pop de + ret + +PlayPikachuSoundClip_: ; fcf81 (3f:4f81) + cp $ff + ret z + callab PlayPikachuSoundClip + ret + +StarterPikachuEmotionCommand_emote: ; fcf8d (3f:4f8d) + ld a, [wUpdateSpritesEnabled] + push af + ld a, $ff + ld [wUpdateSpritesEnabled], a + ld a, [de] + inc de + push de + call ShowPikachuEmoteBubble + pop de + pop af + ld [wUpdateSpritesEnabled], a + ret + +ShowPikachuEmoteBubble: ; fcfa2 (3f:4fa2) + ld [wWhichEmotionBubble], a + ld a, $f + ld [wEmotionBubbleSpriteIndex], a + predef EmotionBubble + ret + +StarterPikachuEmotionCommand_4: ; fcfb0 (3f:4fb0) + ld a, [de] + inc de + ld l, a + ld a, [de] + inc de + ld h, a + push de + ld b, $3f + call Func_fd2a1 + pop de + ret + +StarterPikachuEmotionCommand_delay: ; fcfbe (3f:4fbe) + ld a, [de] + inc de + push de + ld c, a + call DelayFrames + pop de + ret + +StarterPikachuEmotionCommand_subcmd: ; fcfc7 (3f:4fc7) + ld a, [de] + inc de + push de + ld e, a + ld d, $0 + ld hl, Jumptable_fcfda + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + call JumpToAddress + pop de + ret + +Jumptable_fcfda: + dw LoadPikachuSpriteIntoVRAM + dw LoadFontTilePatterns + dw Pikachu_LoadCurrentMapViewUpdateSpritesAndDelay3 + dw WaitForTextScrollButtonPress + dw PikachuPewterPokecenterCheck + dw PikachuFanClubCheck + dw PikachuBillsHouseCheck + +StarterPikachuEmotionCommand_nop2: ; fcfe8 (3f:4fe8) + ret + +StarterPikachuEmotionCommand_9: ; fcfe9 (3f:4fe9) + push de + call Func_fcff2 + call UpdateSprites + pop de + ret + +Func_fcff2: ; fcff2 (3f:4ff2) + ld a, [wSpriteStateData1 + $9] + xor $4 + ld [wSpriteStateData1 + $f9], a + ret + +Func_fcffb: ; fcffb (3f:4ffb) +; Inexplicably empty. + rept 5 + nop + endr + ret + +Func_fd001:: ; fd001 (3f:5001) + ld a, e + jr asm_fd00f + +Func_fd004:: ; fd004 (3f:5004) + call Func_fd05e + jr c, asm_fd00f + call GetPikaPicAnimationScriptIndex + call Func_fcffb +asm_fd00f: ; fd00f (3f:500f) + ld [wExpressionNumber], a + ld hl, PikachuEmotionTable + call DoStarterPikachuEmotions + ret + +PikachuEmotionTable: ; fd019 (3f:4019) + dw PikachuEmotion0_fd115 + dw PikachuEmotion1_fd141 + dw PikachuEmotion2_fd116 + dw PikachuEmotion3_fd160 + dw PikachuEmotion4_fd136 + dw PikachuEmotion5_fd14d + dw PikachuEmotion6_fd153 + dw PikachuEmotion7_fd128 + dw PikachuEmotion8_fd147 + dw PikachuEmotion9_fd166 + dw PikachuEmotion10_fd11e + dw PikachuEmotion11_fd173 + dw PikachuEmotion12_fd17a + dw PikachuEmotion13_fd180 + dw PikachuEmotion14_fd189 + dw PikachuEmotion15_fd191 + dw PikachuEmotion16_fd197 + dw PikachuEmotion17_fd19d + dw PikachuEmotion18_fd1a3 + dw PikachuEmotion19_fd1a9 + dw PikachuEmotion20_fd1b1 + dw PikachuEmotion21_fd1b9 + dw PikachuEmotion22_fd1c1 + dw PikachuEmotion23_fd1c7 + dw PikachuEmotion24_fd1cf + dw PikachuEmotion25_fd1d7 + dw PikachuEmotion26_fd1df + dw PikachuEmotion27_fd1eb + dw PikachuEmotion28_fd1f1 + dw PikachuEmotion29_fd1f7 + dw PikachuEmotion30_fd1fc + dw PikachuEmotion31_fd20a + dw PikachuEmotion32_fd213 + dw PikachuEmotion33_fd05d + +PikachuEmotion33_fd05d: ; fd05d (3f:505d) + db $ff + +Func_fd05e: ; fd05e (3f:505e) + ld a, [wCurMap] + cp POKEMON_FAN_CLUB + jr nz, .notFanClub + ld hl, wPreventBlackout + bit 7, [hl] + ld a, $1d + jr z, .asm_fd0c9 + call Func_154a + ld a, $1e + jr nz, .asm_fd0c9 + jr .asm_fd096 +.notFanClub + ld a, [wCurMap] + cp PEWTER_POKECENTER + jr nz, .notPewterPokecenter + call Func_154a + ld a, $1a + jr nz, .asm_fd0c9 + jr .asm_fd096 +.notPewterPokecenter + callab Func_f24ae + ld a, e + cp $ff + jr nz, .asm_fd0c9 + jr .asm_fd096 +.asm_fd096 + call IsPlayerPikachuAsleepInParty + ld a, $b + jr c, .asm_fd0c9 + callab Func_fce73 ; same bank + ld a, $1c + jr c, .asm_fd0c9 + ld a, [wCurMap] + cp POKEMONTOWER_1 + jr c, .notInLavenderTower + cp POKEMONTOWER_7 + 1 + ld a, $16 + jr c, .asm_fd0c9 +.notInLavenderTower + ld a, [wd49c] + and a + jr z, .asm_fd0c7 + dec a + ld c, a + ld b, $0 + ld hl, Pointer_fd0cb + add hl, bc + ld a, [hl] + jr .asm_fd0c9 +.asm_fd0c7 + and a + ret +.asm_fd0c9 + scf + ret + +Pointer_fd0cb: + db $12, $15, $17, $18, $19 + +IsPlayerPikachuAsleepInParty:: ; fd0d0 (3f:50d0) + xor a + ld [wWhichPokemon], a +.loop + ld a, [wWhichPokemon] + ld c, a + ld b, $0 + ld hl, wPartySpecies + add hl, bc + ld a, [hl] + cp $ff + jr z, .done + cp PIKACHU + jr nz, .curMonNotStarterPikachu + callab IsThisPartymonStarterPikachu + jr nc, .curMonNotStarterPikachu + ld a, [wWhichPokemon] + ld hl, wPartyMon1Status + ld bc, wPartyMon2 - wPartyMon1 + call AddNTimes + ld a, [hl] + and SLP + jr z, .done + jr .curMonSleepingPikachu +.curMonNotStarterPikachu + ld a, [wWhichPokemon] + cp PARTY_LENGTH - 1 + jr z, .done + inc a + ld [wWhichPokemon], a + jr .loop +.curMonSleepingPikachu + scf + ret +.done + and a + ret + +PikachuEmotion0_fd115: ; fd115 (3f:5115) + db $ff + +PikachuEmotion2_fd116: ; fd116 (3f:5116) + pikaemotion_dummy2 + pikaemotion_emotebubble SMILE_BUBBLE + pikaemotion_pcm PikachuCry35 + pikaemotion_5 $2 + db $ff + +PikachuEmotion10_fd11e: ; fd11e (3f:511e) + pikaemotion_dummy2 + pikaemotion_subcmd PIKAEMOTION_SUBCMD_LOADEXTRAPIKASPRITES + pikaemotion_emotebubble HEART_BUBBLE + pikaemotion_pcm PikachuCry5 + pikaemotion_5 $a + db $ff + +PikachuEmotion7_fd128: ; fd128 (3f:5128) + pikaemotion_dummy2 + pikaemotion_subcmd PIKAEMOTION_SUBCMD_LOADEXTRAPIKASPRITES + pikaemotion_4 Pointer_fd224 + pikaemotion_pcm PikachuCry1 + pikaemotion_4 Pointer_fd224 + pikaemotion_5 $7 + db $ff + +PikachuEmotion4_fd136: ; fd136 (3f:5136) + pikaemotion_dummy2 + pikaemotion_subcmd PIKAEMOTION_SUBCMD_LOADEXTRAPIKASPRITES + pikaemotion_4 Pointer_fd230 + pikaemotion_pcm PikachuCry29 + pikaemotion_5 $4 + db $ff + +PikachuEmotion1_fd141: ; fd141 (3f:5141) + pikaemotion_dummy2 + pikaemotion_pcm + pikaemotion_5 $1 + db $ff + +PikachuEmotion8_fd147: ; fd147 (3f:5147) + pikaemotion_dummy2 + pikaemotion_pcm PikachuCry39 + pikaemotion_5 $8 + db $ff + +PikachuEmotion5_fd14d: ; fd14d (3f:514d) + pikaemotion_dummy2 + pikaemotion_pcm PikachuCry31 + pikaemotion_5 $5 + db $ff + +PikachuEmotion6_fd153: ; fd153 (3f:5153) + pikaemotion_dummy2 + pikaemotion_subcmd PIKAEMOTION_SUBCMD_LOADEXTRAPIKASPRITES + pikaemotion_pcm + pikaemotion_4 Pointer_fd21e + pikaemotion_emotebubble SKULL_BUBBLE + pikaemotion_5 $6 + db $ff + +PikachuEmotion3_fd160: ; fd160 (3f:5160) + pikaemotion_dummy2 + pikaemotion_pcm PikachuCry40 + pikaemotion_5 $3 + db $ff + +PikachuEmotion9_fd166: ; fd166 (3f:5166) + pikaemotion_dummy2 + pikaemotion_subcmd PIKAEMOTION_SUBCMD_LOADEXTRAPIKASPRITES + pikaemotion_pcm PikachuCry6 + pikaemotion_4 Pointer_fd218 + pikaemotion_emotebubble SKULL_BUBBLE + pikaemotion_5 $9 + db $ff + +PikachuEmotion11_fd173: ; fd173 (3f:5173) + pikaemotion_emotebubble ZZZ_BUBBLE + pikaemotion_pcm PikachuCry37 + pikaemotion_5 $b + db $ff + +PikachuEmotion12_fd17a: ; fd17a (3f:517a) + pikaemotion_dummy2 + pikaemotion_pcm + pikaemotion_5 $c + db $ff + +PikachuEmotion13_fd180: ; fd180 (3f:5180) + pikaemotion_dummy2 + pikaemotion_subcmd PIKAEMOTION_SUBCMD_LOADEXTRAPIKASPRITES + pikaemotion_4 Pointer_fd21e + pikaemotion_5 $d + db $ff + +PikachuEmotion14_fd189: ; fd189 (3f:5189) + pikaemotion_dummy2 + pikaemotion_emotebubble BOLT_BUBBLE + pikaemotion_pcm PikachuCry10 + pikaemotion_5 $e + db $ff + +PikachuEmotion15_fd191: ; fd191 (3f:5191) + pikaemotion_dummy2 + pikaemotion_pcm PikachuCry34 + pikaemotion_5 $f + db $ff + +PikachuEmotion16_fd197: ; fd197 (3f:5197) + pikaemotion_dummy2 + pikaemotion_pcm PikachuCry33 + pikaemotion_5 $10 + db $ff + +PikachuEmotion17_fd19d: ; fd19d (3f:519d) + pikaemotion_dummy2 + pikaemotion_pcm PikachuCry13 + pikaemotion_5 $11 + db $ff + +PikachuEmotion18_fd1a3: ; fd1a3 (3f:51a3) + pikaemotion_dummy2 + pikaemotion_pcm + pikaemotion_5 $12 + db $ff + +PikachuEmotion19_fd1a9: ; fd1a9 (3f:51a9) + pikaemotion_dummy2 + pikaemotion_emotebubble HEART_BUBBLE + pikaemotion_pcm PikachuCry33 + pikaemotion_5 $13 + db $ff + +PikachuEmotion20_fd1b1: ; fd1b1 (3f:51b1) + pikaemotion_dummy2 + pikaemotion_emotebubble HEART_BUBBLE + pikaemotion_pcm PikachuCry5 + pikaemotion_5 $14 + db $ff + +PikachuEmotion21_fd1b9: ; fd1b9 (3f:51b9) + pikaemotion_dummy2 + pikaemotion_emotebubble FISH_BUBBLE + pikaemotion_pcm + pikaemotion_5 $15 + db $ff + +PikachuEmotion22_fd1c1: ; fd1c1 (3f:51c1) + pikaemotion_dummy2 + pikaemotion_pcm PikachuCry4 + pikaemotion_5 $16 + db $ff + +PikachuEmotion23_fd1c7: ; fd1c7 (3f:51c7) + pikaemotion_dummy2 + pikaemotion_pcm PikachuCry19 + pikaemotion_5 $17 + pikaemotion_subcmd PIKAEMOTION_SUBCMD_SHOWMAPVIEW + db $ff + +PikachuEmotion24_fd1cf: ; fd1cf (3f:51cf) + pikaemotion_dummy2 + pikaemotion_emotebubble EXCLAMATION_BUBBLE + pikaemotion_pcm + pikaemotion_5 $18 + db $ff + +PikachuEmotion25_fd1d7: ; fd1d7 (3f:51d7) + pikaemotion_dummy2 + pikaemotion_emotebubble BOLT_BUBBLE + pikaemotion_pcm PikachuCry35 + pikaemotion_5 $19 + db $ff + +PikachuEmotion26_fd1df: ; fd1df (3f:51df) + pikaemotion_dummy2 + pikaemotion_emotebubble ZZZ_BUBBLE + pikaemotion_pcm PikachuCry37 + pikaemotion_5 $1a + pikaemotion_subcmd PIKAEMOTION_SUBCMD_SHOWMAPVIEW + pikaemotion_subcmd PIKAEMOTION_SUBCMD_CHECKPEWTERCENTER + db $ff + +PikachuEmotion27_fd1eb: ; fd1eb (3f:51eb) + pikaemotion_dummy2 + pikaemotion_pcm PikachuCry9 + pikaemotion_5 $1b + db $ff + +PikachuEmotion28_fd1f1: ; fd1f1 (3f:51f1) + pikaemotion_dummy2 + pikaemotion_pcm PikachuCry15 + pikaemotion_5 $1c + db $ff + +PikachuEmotion29_fd1f7: ; fd1f7 (3f:51f7) + pikaemotion_pcm PikachuCry5 + pikaemotion_5 $a + db $ff + +PikachuEmotion30_fd1fc: ; fd1fc (3f:51fc) + pikaemotion_9 + pikaemotion_emotebubble HEART_BUBBLE + pikaemotion_pcm PikachuCry5 + pikaemotion_5 $14 + pikaemotion_subcmd PIKAEMOTION_SUBCMD_SHOWMAPVIEW + pikaemotion_subcmd PIKAEMOTION_SUBCMD_LOADFONT + pikaemotion_subcmd PIKAEMOTION_SUBCMD_CHECKLAVENDERTOWER + db $ff + +PikachuEmotion31_fd20a: ; fd20a (3f:520a) + pikaemotion_pcm PikachuCry19 + pikaemotion_5 $17 + pikaemotion_subcmd PIKAEMOTION_SUBCMD_SHOWMAPVIEW + pikaemotion_subcmd PIKAEMOTION_SUBCMD_CHECKBILLSHOUSE + db $ff + +PikachuEmotion32_fd213: ; fd213 (3f:5213) + pikaemotion_pcm PikachuCry26 + pikaemotion_5 $17 + db $ff + +Pointer_fd218: ; fd218 (3f:5218) + + db $00 + db $39, $01 + db $3e, $1e + db $3f + +Pointer_fd21e: ; fd21e (3f:521e) + db $00 + db $39, $00 + db $3e, $1e + db $3f + +Pointer_fd224: ; fd224 (3f:5224) + db $00 + db $3c, $07, $2f + db $3c, $07, $2f + db $3f + +Pointer_fd22c: ; fd22c (3f:522c) + db $3b, $1f, $03 + db $3f + +Pointer_fd230: ; fd230 (3f:5230) + db $00 + db $3c, $0f, $1f + db $3c, $0f, $1f + db $3f + +Pointer_fd238: ; fd238 (3f:5238) + db $00 + db $05, $07 + db $39, $00 + db $05, $07 + db $06, $07 + db $39, $00 + db $06, $07 + db $08, $07 + db $39, $00 + db $08, $07 + db $07, $07 + db $39, $00 + db $07, $07 + db $3f + Func_fd252: ; fd252 (3f:5252) ld a, $40 ld [h_0xFFFC], a diff --git a/main.asm b/main.asm index 06283594..5aea6d9b 100755 --- a/main.asm +++ b/main.asm @@ -948,7 +948,18 @@ INCLUDE "engine/bank3d.asm" SECTION "bank3E",ROMX,BANK[$3E] Func_f8000: ; f8000 - dr $f8000,$f982d + dr $f8000,$f8bcb + +Func_f8bcb: ; f8bcb + push de + callab IsSurfingPikachuInThePlayersParty + pop de + ret nc + callab PlayPikachuSoundClip + ret + +Func_f8bdf: ; f8bdf + dr $f8bdf,$f982d PlayIntroScene: ; f982d (3e:582d) dr $f982d,$fa35a -- cgit v1.2.3 From 8589bc7d9d4f39b5a9b3b4f050932f4afa0454b5 Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Wed, 25 May 2016 19:24:37 -0400 Subject: Trim bank 3E and disassemble another random function --- main.asm | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/main.asm b/main.asm index 5aea6d9b..ff4bdc30 100755 --- a/main.asm +++ b/main.asm @@ -965,7 +965,15 @@ PlayIntroScene: ; f982d (3e:582d) YellowIntroGraphics: INCBIN "gfx/yellow_intro.2bpp" - dr $fbb5a,$fc000 +Func_fbb5a: + ld hl, wTileMapBackup + ld bc, 10 * SCREEN_WIDTH + xor a + call FillMemory + ret + +Func_fbb65: + dr $fbb65,$fbd76 SECTION "bank3F",ROMX,BANK[$3F] -- cgit v1.2.3 From f19ef183bec397bf346c54c41e05f8cd8d8be27c Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Wed, 25 May 2016 21:34:29 -0400 Subject: All Pikachu emotion gfx have been labeled --- engine/bank3c.asm | 23 ++- engine/pikachu_pic_animation.asm | 316 +++++++++++++++++++-------------------- macros.asm | 8 +- main.asm | 121 ++++++++++++++- 4 files changed, 298 insertions(+), 170 deletions(-) diff --git a/engine/bank3c.asm b/engine/bank3c.asm index d61fd8ed..2d10b45c 100644 --- a/engine/bank3c.asm +++ b/engine/bank3c.asm @@ -321,7 +321,28 @@ Func_f0a82: ; f0a82 callab Func_fcba1 ret - dr $f0abf, $f220e +Pic_f0abf: ; f0abf (3c:4abf) + dr $f0abf, $f0b64 +GFX_f0b64: ; f0b64 (3c:4b64) + dr $f0b64, $f0cf4 +Pic_f0cf4: ; f0cf4 (3c:4cf4) + dr $f0cf4, $f0d82 +GFX_f0d82: ; f0d82 (3c:4d82) + dr $f0d82, $f0f12 + +Func_f0f12: + ld hl, NurseChanseyText + call PrintText + ld a, CHANSEY + call PlayCry + call WaitForSoundToFinish + ret + +NurseChanseyText: + TX_FAR _NurseChanseyText + db "@" + + dr $f0f26, $f220e INCLUDE "data/mapHeaders/beach_house.asm" INCLUDE "scripts/beach_house.asm" diff --git a/engine/pikachu_pic_animation.asm b/engine/pikachu_pic_animation.asm index e5099a04..d95eb538 100755 --- a/engine/pikachu_pic_animation.asm +++ b/engine/pikachu_pic_animation.asm @@ -2688,7 +2688,7 @@ Jumptable_fe071: dw PikaPicAnimCommand_nop7 ; 07, 0 params dw PikaPicAnimCommand_nop8 ; 08, 0 params dw PikaPicAnimCommand_jump ; 09, 1 dw param - dw PikaPicAnimCommand_setdelay ; 0a, 1 dw param + dw PikaPicAnimCommand_setduration ; 0a, 1 dw param dw PikaPicAnimCommand_cry ; 0b, 1 param dw PikaPicAnimCommand_thunderbolt ; 0c, 0 params dw PikaPicAnimCommand_waitbgmap ; 0d, 0 params (ret) @@ -2707,7 +2707,7 @@ PikaPicAnimCommand_ret: Func_fe09b: ret -PikaPicAnimCommand_setdelay: +PikaPicAnimCommand_setduration: call GetPikaPicAnimByte ld [wPikaPicAnimTimer], a call GetPikaPicAnimByte @@ -3019,9 +3019,9 @@ Data_fe242: db $ff Data_fe26b: ; fe26b (3f:626b) - pikapic_loadgfx $1 - pikapic_loadgfx $f - pikapic_loadgfx $3e + pikapic_loadgfx Pic_e4000 + pikapic_loadgfx Pic_e49d1 + pikapic_loadgfx PikachuSprite pikapic_object $1, $80, $0, $0 pikapic_object $2, $b2, $5, $5 pikapic_object $3, $b6, $5, $5 @@ -3032,9 +3032,9 @@ Data_fe286: ; fe286 (3f:6286) pikapic_jump Data_fe286 Data_fe28a: ; fe28a (3f:628a) - pikapic_setdelay 40 - pikapic_loadgfx $1 - pikapic_loadgfx $2 + pikapic_setduration 40 + pikapic_loadgfx Pic_e4000 + pikapic_loadgfx GFX_e40cc pikapic_object $4, $80, $0, $0 pikapic_object $6, $99, $0, $0 pikapic_waitbgmap @@ -3044,9 +3044,9 @@ Data_fe2a0: ; fe2a0 (3f:62a0) pikapic_jump Data_fe2a0 Data_fe2a4: ; fe2a4 (3f:62a4) - pikapic_setdelay 44 - pikapic_loadgfx $3 - pikapic_loadgfx $4 + pikapic_setduration 44 + pikapic_loadgfx Pic_e411c + pikapic_loadgfx GFX_e41d2 pikapic_object $4, $80, $0, $0 pikapic_object $7, $99, $0, $0 pikapic_waitbgmap @@ -3056,9 +3056,9 @@ Data_fe2ba: ; fe2ba (3f:62ba) pikapic_jump Data_fe2ba Data_fe2be: ; fe2be (3f:62be) - pikapic_setdelay 80 - pikapic_loadgfx $5 - pikapic_loadgfx $6 + pikapic_setduration 80 + pikapic_loadgfx Pic_e4272 + pikapic_loadgfx GFX_e4323 pikapic_object $4, $80, $0, $0 pikapic_object $8, $99, $0, $0 pikapic_waitbgmap @@ -3068,9 +3068,9 @@ Data_fe2d4: ; fe2d4 (3f:62d4) pikapic_jump Data_fe2d4 Data_fe2d8: ; fe2d8 (3f:62d8) - pikapic_setdelay 70 - pikapic_loadgfx $7 - pikapic_loadgfx $8 + pikapic_setduration 70 + pikapic_loadgfx Pic_e4383 + pikapic_loadgfx GFX_e444b pikapic_object $4, $80, $0, $0 pikapic_object $9, $99, $0, $0 pikapic_waitbgmap @@ -3080,9 +3080,9 @@ Data_fe2ee: ; fe2ee (3f:62ee) pikapic_jump Data_fe2ee Data_fe2f2: ; fe2f2 (3f:62f2) - pikapic_setdelay 32 - pikapic_loadgfx $9 - pikapic_loadgfx $a + pikapic_setduration 32 + pikapic_loadgfx Pic_e458b + pikapic_loadgfx GFX_e463b pikapic_object $4, $80, $0, $0 pikapic_object $a, $99, $0, $0 pikapic_waitbgmap @@ -3092,9 +3092,9 @@ Data_fe308: ; fe308 (3f:6308) pikapic_jump Data_fe308 Data_fe30c: ; fe30c (3f:630c) - pikapic_setdelay 50 - pikapic_loadgfx $b - pikapic_loadgfx $c + pikapic_setduration 50 + pikapic_loadgfx Pic_e467b + pikapic_loadgfx GFX_e472e pikapic_object $4, $80, $0, $0 pikapic_object $b, $99, $0, $0 pikapic_waitbgmap @@ -3104,9 +3104,9 @@ Data_fe322: ; fe322 (3f:6322) pikapic_jump Data_fe322 Data_fe326: ; fe326 (3f:6326) - pikapic_setdelay 58 - pikapic_loadgfx $d - pikapic_loadgfx $e + pikapic_setduration 58 + pikapic_loadgfx Pic_e476e + pikapic_loadgfx GFX_e4841 pikapic_object $4, $80, $0, $0 pikapic_object $c, $99, $0, $0 pikapic_waitbgmap @@ -3116,9 +3116,9 @@ Data_fe33c: ; fe33c (3f:633c) pikapic_jump Data_fe33c Data_fe340: ; fe340 (3f:6340) - pikapic_setdelay 44 - pikapic_loadgfx $f - pikapic_loadgfx $10 + pikapic_setduration 44 + pikapic_loadgfx Pic_e49d1 + pikapic_loadgfx GFX_e4a99 pikapic_object $4, $80, $0, $0 pikapic_object $d, $99, $0, $0 pikapic_waitbgmap @@ -3128,9 +3128,9 @@ Data_fe356: ; fe356 (3f:6356) pikapic_jump Data_fe356 Data_fe35a: ; fe35a (3f:635a) - pikapic_setdelay 56 - pikapic_loadgfx $11 - pikapic_loadgfx $12 + pikapic_setduration 56 + pikapic_loadgfx Pic_e4b39 + pikapic_loadgfx GFX_e4bde pikapic_object $4, $80, $0, $0 pikapic_object $e, $99, $0, $0 pikapic_waitbgmap @@ -3140,10 +3140,10 @@ Data_fe370: ; fe370 (3f:6370) pikapic_jump Data_fe370 Data_fe374: ; fe374 (3f:6374) - pikapic_setdelay 56 - pikapic_loadgfx $13 - pikapic_loadgfx $14 - pikapic_loadgfx $15 + pikapic_setduration 56 + pikapic_loadgfx Pic_e4c3e + pikapic_loadgfx GFX_e4ce0 + pikapic_loadgfx GFX_e4e70 pikapic_object $4, $80, $0, $0 pikapic_object $10, $99, $0, $0 pikapic_waitbgmap @@ -3153,9 +3153,9 @@ Data_fe38c: ; fe38c (3f:638c) pikapic_jump Data_fe38c Data_fe390: ; fe390 (3f:6390) - pikapic_setdelay 100 - pikapic_loadgfx $16 - pikapic_loadgfx $17 + pikapic_setduration 100 + pikapic_loadgfx Pic_e5000 + pikapic_loadgfx GFX_e50af pikapic_object $4, $80, $0, $0 pikapic_object $11, $99, $0, $0 pikapic_waitbgmap @@ -3165,9 +3165,9 @@ Data_fe3a6: ; fe3a6 (3f:63a6) pikapic_jump Data_fe3a6 Data_fe3aa: ; fe3aa (3f:63aa) - pikapic_setdelay 50 - pikapic_loadgfx $18 - pikapic_loadgfx $19 + pikapic_setduration 50 + pikapic_loadgfx Pic_e523f + pikapic_loadgfx GFX_e52fe pikapic_object $4, $80, $0, $0 pikapic_object $12, $99, $0, $0 pikapic_waitbgmap @@ -3177,9 +3177,9 @@ Data_fe3c0: ; fe3c0 (3f:63c0) pikapic_jump Data_fe3c0 Data_fe3c4: ; fe3c4 (3f:63c4) - pikapic_setdelay 50 - pikapic_loadgfx $1a - pikapic_loadgfx $1b + pikapic_setduration 50 + pikapic_loadgfx Pic_e548e + pikapic_loadgfx GFX_e5541 pikapic_object $4, $80, $0, $0 pikapic_object $13, $99, $0, $0 pikapic_waitbgmap @@ -3189,9 +3189,9 @@ Data_fe3da: ; fe3da (3f:63da) pikapic_jump Data_fe3da Data_fe3de: ; fe3de (3f:63de) - pikapic_setdelay 40 - pikapic_loadgfx $1c - pikapic_loadgfx $1d + pikapic_setduration 40 + pikapic_loadgfx Pic_e56d1 + pikapic_loadgfx GFX_e5794 pikapic_object $4, $80, $0, $0 pikapic_object $14, $99, $0, $0 pikapic_waitbgmap @@ -3201,9 +3201,9 @@ Data_fe3f4: ; fe3f4 (3f:63f4) pikapic_jump Data_fe3f4 Data_fe3f8: ; fe3f8 (3f:63f8) - pikapic_setdelay 50 - pikapic_loadgfx $1e - pikapic_loadgfx $1f + pikapic_setduration 50 + pikapic_loadgfx Pic_e5924 + pikapic_loadgfx GFX_e59ed pikapic_object $4, $80, $0, $0 pikapic_object $15, $99, $0, $0 pikapic_waitbgmap @@ -3213,9 +3213,9 @@ Data_fe40e: ; fe40e (3f:640e) pikapic_jump Data_fe40e Data_fe412: ; fe412 (3f:6412) - pikapic_setdelay 32 - pikapic_loadgfx $20 - pikapic_loadgfx $21 + pikapic_setduration 32 + pikapic_loadgfx Pic_e5b7d + pikapic_loadgfx GFX_e5c4d pikapic_object $4, $80, $0, $0 pikapic_object $16, $99, $0, $0 pikapic_waitbgmap @@ -3225,9 +3225,9 @@ Data_fe428: ; fe428 (3f:6428) pikapic_jump Data_fe428 Data_fe42c: ; fe42c (3f:642c) - pikapic_setdelay 100 - pikapic_loadgfx $22 - pikapic_loadgfx $23 + pikapic_setduration 100 + pikapic_loadgfx Pic_e5ddd + pikapic_loadgfx GFX_e5e90 pikapic_object $4, $80, $0, $0 pikapic_object $17, $99, $0, $0 pikapic_waitbgmap @@ -3237,9 +3237,9 @@ Data_fe442: ; fe442 (3f:6442) pikapic_jump Data_fe442 Data_fe446: ; fe446 (3f:6446) - pikapic_setdelay 32 - pikapic_loadgfx $24 - pikapic_loadgfx $25 + pikapic_setduration 32 + pikapic_loadgfx GFX_e6020 + pikapic_loadgfx GFX_e61b0 pikapic_object $5, $80, $0, $0 pikapic_object $18, $99, $0, $0 pikapic_waitbgmap @@ -3249,9 +3249,9 @@ Data_fe45c: ; fe45c (3f:645c) pikapic_jump Data_fe45c Data_fe460: ; fe460 (3f:6460) - pikapic_setdelay 44 - pikapic_loadgfx $26 - pikapic_loadgfx $27 + pikapic_setduration 44 + pikapic_loadgfx Pic_e6340 + pikapic_loadgfx GFX_e63f7 pikapic_object $4, $80, $0, $0 pikapic_object $19, $99, $0, $0 pikapic_waitbgmap @@ -3261,9 +3261,9 @@ Data_fe476: ; fe476 (3f:6476) pikapic_jump Data_fe476 Data_fe47a: ; fe47a (3f:647a) - pikapic_setdelay 50 - pikapic_loadgfx $28 - pikapic_loadgfx $29 + pikapic_setduration 50 + pikapic_loadgfx Pic_e6587 + pikapic_loadgfx GFX_e6646 pikapic_object $4, $80, $0, $0 pikapic_object $1a, $99, $0, $0 pikapic_waitbgmap @@ -3273,12 +3273,12 @@ Data_fe490: ; fe490 (3f:6490) pikapic_jump Data_fe490 Data_fe494: ; fe494 (3f:6494) - pikapic_setdelay 40 - pikapic_loadgfx $2a - pikapic_loadgfx $2b - pikapic_loadgfx $2c - pikapic_loadgfx $2d - pikapic_loadgfx $2e + pikapic_setduration 40 + pikapic_loadgfx Pic_e67d6 + pikapic_loadgfx GFX_e682f + pikapic_loadgfx GFX_e69bf + pikapic_loadgfx GFX_e6b4f + pikapic_loadgfx GFX_e6cdf pikapic_object $4, $80, $0, $0 pikapic_object $1b, $99, $0, $0 pikapic_waitbgmap @@ -3288,9 +3288,9 @@ Data_fe4b0: ; fe4b0 (3f:64b0) pikapic_jump Data_fe4b0 Data_fe4b4: ; fe4b4 (3f:64b4) - pikapic_setdelay 40 - pikapic_loadgfx $2f - pikapic_loadgfx $30 + pikapic_setduration 40 + pikapic_loadgfx GFX_e6e6f + pikapic_loadgfx GFX_e6fff pikapic_object $5, $80, $0, $0 pikapic_object $1c, $99, $0, $0 pikapic_waitbgmap @@ -3300,9 +3300,9 @@ Data_fe4ca: ; fe4ca (3f:64ca) pikapic_jump Data_fe4ca Data_fe4ce: ; fe4ce (3f:64ce) - pikapic_setdelay 70 - pikapic_loadgfx $31 - pikapic_loadgfx $32 + pikapic_setduration 70 + pikapic_loadgfx GFX_e718f + pikapic_loadgfx GFX_e731f pikapic_object $5, $80, $0, $0 pikapic_object $1d, $99, $0, $0 pikapic_waitbgmap @@ -3312,9 +3312,9 @@ Data_fe4e4: ; fe4e4 (3f:64e4) pikapic_jump Data_fe4e4 Data_fe4e8: ; fe4e8 (3f:64e8) - pikapic_setdelay 60 - pikapic_loadgfx $33 - pikapic_loadgfx $34 + pikapic_setduration 60 + pikapic_loadgfx GFX_e74af + pikapic_loadgfx GFX_e763f pikapic_object $5, $80, $0, $0 pikapic_object $1e, $99, $0, $0 pikapic_waitbgmap @@ -3324,10 +3324,10 @@ Data_fe4fe: ; fe4fe (3f:64fe) pikapic_jump Data_fe4fe Data_fe502: ; fe502 (3f:6502) - pikapic_setdelay 50 - pikapic_loadgfx $35 - pikapic_loadgfx $36 - pikapic_loadgfx $37 + pikapic_setduration 50 + pikapic_loadgfx Pic_e77cf + pikapic_loadgfx GFX_e7863 + pikapic_loadgfx GFX_e79f3 pikapic_object $4, $80, $0, $0 pikapic_object $1f, $99, $0, $0 pikapic_waitbgmap @@ -3340,11 +3340,11 @@ Data_fe502: ; fe502 (3f:6502) Data_fe51f: ; fe51f (3f:651f) pikapic_waitbgmap Data_fe520: ; fe520 (3f:6520) - pikapic_setdelay 100 - pikapic_loadgfx $16 - pikapic_loadgfx $17 - pikapic_loadgfx $38 - pikapic_loadgfx $39 + pikapic_setduration 100 + pikapic_loadgfx Pic_e5000 + pikapic_loadgfx GFX_e50af + pikapic_loadgfx GFX_e7b83 + pikapic_loadgfx GFX_e7d13 pikapic_object $4, $80, $0, $0 pikapic_object $20, $99, $0, $0 pikapic_waitbgmap @@ -3354,9 +3354,9 @@ Data_fe53a: ; fe53a (3f:653a) pikapic_jump Data_fe53a Data_fe53e: ; fe53e (3f:653e) - pikapic_setdelay 30 - pikapic_loadgfx $3a - pikapic_loadgfx $3b + pikapic_setduration 30 + pikapic_loadgfx Pic_f0abf + pikapic_loadgfx GFX_f0b64 pikapic_object $4, $80, $0, $0 pikapic_object $21, $99, $0, $0 pikapic_waitbgmap @@ -3366,9 +3366,9 @@ Data_fe554: ; fe554 (3f:6554) pikapic_jump Data_fe554 Data_fe558: ; fe558 (3f:6558) - pikapic_setdelay 64 - pikapic_loadgfx $3c - pikapic_loadgfx $3d + pikapic_setduration 64 + pikapic_loadgfx Pic_f0cf4 + pikapic_loadgfx GFX_f0d82 pikapic_object $4, $80, $0, $0 pikapic_object $22, $99, $0, $0 pikapic_waitbgmap @@ -3385,65 +3385,65 @@ pikapicanimgfx: MACRO endm dbbw $01, $39, $0000 - pikapicanimgfx $ff, Pic_e4000 - pikapicanimgfx 5, GFX_e40cc - dbbw $ff, $39, $411c - dbbw $0a, $39, $41d2 - dbbw $ff, $39, $4272 - dbbw $06, $39, $4323 - dbbw $ff, $39, $4383 - dbbw $14, $39, $444b - dbbw $ff, $39, $458b - dbbw $04, $39, $463b - dbbw $ff, $39, $467b - dbbw $04, $39, $472e - dbbw $ff, $39, $476e - dbbw $19, $39, $4841 - dbbw $ff, $39, $49d1 - dbbw $0a, $39, $4a99 - dbbw $ff, $39, $4b39 - dbbw $06, $39, $4bde - dbbw $ff, $39, $4c3e - dbbw $19, $39, $4ce0 - dbbw $19, $39, $4e70 - dbbw $ff, $39, $5000 - dbbw $19, $39, $50af - dbbw $ff, $39, $523f - dbbw $19, $39, $52fe - dbbw $ff, $39, $548e - dbbw $19, $39, $5541 - dbbw $ff, $39, $56d1 - dbbw $19, $39, $5794 - dbbw $ff, $39, $5924 - dbbw $19, $39, $59ed - dbbw $ff, $39, $5b7d - dbbw $19, $39, $5c4d - dbbw $ff, $39, $5ddd - dbbw $19, $39, $5e90 - dbbw $19, $39, $6020 - dbbw $19, $39, $61b0 - dbbw $ff, $39, $6340 - dbbw $19, $39, $63f7 - dbbw $ff, $39, $6587 - dbbw $19, $39, $6646 - dbbw $ff, $39, $67d6 - dbbw $19, $39, $682f - dbbw $19, $39, $69bf - dbbw $19, $39, $6b4f - dbbw $19, $39, $6cdf - dbbw $19, $39, $6e6f - dbbw $19, $39, $6fff - dbbw $19, $39, $718f - dbbw $19, $39, $731f - dbbw $19, $39, $74af - dbbw $19, $39, $763f - dbbw $ff, $39, $77cf - dbbw $19, $39, $7863 - dbbw $19, $39, $79f3 - dbbw $19, $39, $7b83 - dbbw $19, $39, $7d13 - dbbw $ff, $3c, $4abf - dbbw $19, $3c, $4b64 - dbbw $ff, $3c, $4cf4 - dbbw $19, $3c, $4d82 - dbbw $18, BANK(PikachuSprite), PikachuSprite + pikapicanimgfx -1, Pic_e4000 ; 01 + pikapicanimgfx 5, GFX_e40cc ; 02 + pikapicanimgfx -1, Pic_e411c ; 03 + pikapicanimgfx 10, GFX_e41d2 ; 04 + pikapicanimgfx -1, Pic_e4272 ; 05 + pikapicanimgfx 6, GFX_e4323 ; 06 + pikapicanimgfx -1, Pic_e4383 ; 07 + pikapicanimgfx 20, GFX_e444b ; 08 + pikapicanimgfx -1, Pic_e458b ; 09 + pikapicanimgfx 4, GFX_e463b ; 0a + pikapicanimgfx -1, Pic_e467b ; 0b + pikapicanimgfx 4, GFX_e472e ; 0c + pikapicanimgfx -1, Pic_e476e ; 0d + pikapicanimgfx 25, GFX_e4841 ; 0e + pikapicanimgfx -1, Pic_e49d1 ; 0f + pikapicanimgfx 10, GFX_e4a99 ; 00 + pikapicanimgfx -1, Pic_e4b39 ; 11 + pikapicanimgfx 6, GFX_e4bde ; 12 + pikapicanimgfx -1, Pic_e4c3e ; 13 + pikapicanimgfx 25, GFX_e4ce0 ; 14 + pikapicanimgfx 25, GFX_e4e70 ; 15 + pikapicanimgfx -1, Pic_e5000 ; 16 + pikapicanimgfx 25, GFX_e50af ; 17 + pikapicanimgfx -1, Pic_e523f ; 18 + pikapicanimgfx 25, GFX_e52fe ; 19 + pikapicanimgfx -1, Pic_e548e ; 1a + pikapicanimgfx 25, GFX_e5541 ; 1b + pikapicanimgfx -1, Pic_e56d1 ; 1c + pikapicanimgfx 25, GFX_e5794 ; 1d + pikapicanimgfx -1, Pic_e5924 ; 1e + pikapicanimgfx 25, GFX_e59ed ; 1f + pikapicanimgfx -1, Pic_e5b7d ; 20 + pikapicanimgfx 25, GFX_e5c4d ; 21 + pikapicanimgfx -1, Pic_e5ddd ; 22 + pikapicanimgfx 25, GFX_e5e90 ; 23 + pikapicanimgfx 25, GFX_e6020 ; 24 + pikapicanimgfx 25, GFX_e61b0 ; 25 + pikapicanimgfx -1, Pic_e6340 ; 26 + pikapicanimgfx 25, GFX_e63f7 ; 27 + pikapicanimgfx -1, Pic_e6587 ; 28 + pikapicanimgfx 25, GFX_e6646 ; 29 + pikapicanimgfx -1, Pic_e67d6 ; 2a + pikapicanimgfx 25, GFX_e682f ; 2b + pikapicanimgfx 25, GFX_e69bf ; 2c + pikapicanimgfx 25, GFX_e6b4f ; 2d + pikapicanimgfx 25, GFX_e6cdf ; 2e + pikapicanimgfx 25, GFX_e6e6f ; 2f + pikapicanimgfx 25, GFX_e6fff ; 30 + pikapicanimgfx 25, GFX_e718f ; 31 + pikapicanimgfx 25, GFX_e731f ; 32 + pikapicanimgfx 25, GFX_e74af ; 33 + pikapicanimgfx 25, GFX_e763f ; 34 + pikapicanimgfx -1, Pic_e77cf ; 35 + pikapicanimgfx 25, GFX_e7863 ; 36 + pikapicanimgfx 25, GFX_e79f3 ; 37 + pikapicanimgfx 25, GFX_e7b83 ; 38 + pikapicanimgfx 25, GFX_e7d13 ; 39 + pikapicanimgfx -1, Pic_f0abf ; 3a + pikapicanimgfx 25, GFX_f0b64 ; 3b + pikapicanimgfx -1, Pic_f0cf4 ; 3c + pikapicanimgfx 25, GFX_f0d82 ; 3d + pikapicanimgfx 24, PikachuSprite ; 3e diff --git a/macros.asm b/macros.asm index c59a77ed..7c2dd65e 100644 --- a/macros.asm +++ b/macros.asm @@ -823,7 +823,7 @@ pikapic_writebyte: macro enum pikapic_loadgfx_command pikapic_loadgfx: macro - db pikapic_loadgfx_command, \1 ; _id - PikaPicAnimGFXHeaders) / 4 + db pikapic_loadgfx_command, (\1_id - PikaPicAnimGFXHeaders) / 4 endm enum pikapic_object_command @@ -863,9 +863,9 @@ pikapic_jump: macro ; 9 dbw pikapic_jump_command, \1 endm - enum pikapic_setdelay_command -pikapic_setdelay: macro ; a - dbw pikapic_setdelay_command, \1 + enum pikapic_setduration_command +pikapic_setduration: macro ; a + dbw pikapic_setduration_command, \1 endm enum pikapic_cry_command diff --git a/main.asm b/main.asm index ff4bdc30..0c198eca 100755 --- a/main.asm +++ b/main.asm @@ -879,13 +879,120 @@ SECTION "bank30",ROMX,BANK[$30] dr $c0000,$c4000 SECTION "bank39",ROMX,BANK[$39] -Pic_e4000: - dr $e4000,$e40cc -GFX_e40cc: - dr $e40cc,$e411c -Pic_e411c: - dr $e411c,$e7ea3 - +Pic_e4000: ; e4000 + dr $e4000, $e40cc +GFX_e40cc: ; e40cc + dr $e40cc, $e411c +Pic_e411c: ; e411c + dr $e411c, $e41d2 +GFX_e41d2: ; e41d2 + dr $e41d2, $e4272 +Pic_e4272: ; e4272 + dr $e4272, $e4323 +GFX_e4323: ; e4323 + dr $e4323, $e4383 +Pic_e4383: ; e4383 + dr $e4383, $e444b +GFX_e444b: ; e444b + dr $e444b, $e458b +Pic_e458b: ; e458b + dr $e458b, $e463b +GFX_e463b: ; e463b + dr $e463b, $e467b +Pic_e467b: ; e467b + dr $e467b, $e472e +GFX_e472e: ; e472e + dr $e472e, $e476e +Pic_e476e: ; e476e + dr $e476e, $e4841 +GFX_e4841: ; e4841 + dr $e4841, $e49d1 +Pic_e49d1: ; e49d1 + dr $e49d1, $e4a99 +GFX_e4a99: ; e4a99 + dr $e4a99, $e4b39 +Pic_e4b39: ; e4b39 + dr $e4b39, $e4bde +GFX_e4bde: ; e4bde + dr $e4bde, $e4c3e +Pic_e4c3e: ; e4c3e + dr $e4c3e, $e4ce0 +GFX_e4ce0: ; e4ce0 + dr $e4ce0, $e4e70 +GFX_e4e70: ; e4e70 + dr $e4e70, $e5000 +Pic_e5000: ; e5000 + dr $e5000, $e50af +GFX_e50af: ; e50af + dr $e50af, $e523f +Pic_e523f: ; e523f + dr $e523f, $e52fe +GFX_e52fe: ; e52fe + dr $e52fe, $e548e +Pic_e548e: ; e548e + dr $e548e, $e5541 +GFX_e5541: ; e5541 + dr $e5541, $e56d1 +Pic_e56d1: ; e56d1 + dr $e56d1, $e5794 +GFX_e5794: ; e5794 + dr $e5794, $e5924 +Pic_e5924: ; e5924 + dr $e5924, $e59ed +GFX_e59ed: ; e59ed + dr $e59ed, $e5b7d +Pic_e5b7d: ; e5b7d + dr $e5b7d, $e5c4d +GFX_e5c4d: ; e5c4d + dr $e5c4d, $e5ddd +Pic_e5ddd: ; e5ddd + dr $e5ddd, $e5e90 +GFX_e5e90: ; e5e90 + dr $e5e90, $e6020 +GFX_e6020: ; e6020 + dr $e6020, $e61b0 +GFX_e61b0: ; e61b0 + dr $e61b0, $e6340 +Pic_e6340: ; e6340 + dr $e6340, $e63f7 +GFX_e63f7: ; e63f7 + dr $e63f7, $e6587 +Pic_e6587: ; e6587 + dr $e6587, $e6646 +GFX_e6646: ; e6646 + dr $e6646, $e67d6 +Pic_e67d6: ; e67d6 + dr $e67d6, $e682f +GFX_e682f: ; e682f + dr $e682f, $e69bf +GFX_e69bf: ; e69bf + dr $e69bf, $e6b4f +GFX_e6b4f: ; e6b4f + dr $e6b4f, $e6cdf +GFX_e6cdf: ; e6cdf + dr $e6cdf, $e6e6f +GFX_e6e6f: ; e6e6f + dr $e6e6f, $e6fff +GFX_e6fff: ; e6fff + dr $e6fff, $e718f +GFX_e718f: ; e718f + dr $e718f, $e731f +GFX_e731f: ; e731f + dr $e731f, $e74af +GFX_e74af: ; e74af + dr $e74af, $e763f +GFX_e763f: ; e763f + dr $e763f, $e77cf +Pic_e77cf: ; e77cf + dr $e77cf, $e7863 +GFX_e7863: ; e7863 + dr $e7863, $e79f3 +GFX_e79f3: ; e79f3 + dr $e79f3, $e7b83 +GFX_e7b83: ; e7b83 + dr $e7b83, $e7d13 +GFX_e7d13: ; e7d13 + dr $e7d13, $e7ea3 SECTION "bank3A",ROMX,BANK[$3A] INCLUDE "text/monster_names.asm" -- cgit v1.2.3 From aa2dcaedbc481ed6ee976b61709259ac9309ea8d Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Thu, 26 May 2016 07:35:25 -0400 Subject: Include Celadon's headers --- data/map_header_banks.asm | 2 +- data/map_header_pointers.asm | 2 +- main.asm | 27 +++++++++++++++++++-------- 3 files changed, 21 insertions(+), 10 deletions(-) diff --git a/data/map_header_banks.asm b/data/map_header_banks.asm index eeff1974..29357dd6 100644 --- a/data/map_header_banks.asm +++ b/data/map_header_banks.asm @@ -249,4 +249,4 @@ MapHeaderBanks:: ; fc3e4 (3f:43e4) ;db BANK(Lorelei_h) ;db BANK(Bruno_h) ;db BANK(Agatha_h) - ;db BANK(BeachHouse_h) \ No newline at end of file + ;db BANK(BeachHouse_h) diff --git a/data/map_header_pointers.asm b/data/map_header_pointers.asm index c7dd0c9f..8cabbd0d 100644 --- a/data/map_header_pointers.asm +++ b/data/map_header_pointers.asm @@ -249,4 +249,4 @@ MapHeaderPointers:: ; fc1f2 (3f:41f2) ;dw Lorelei_h ;dw Bruno_h ;dw Agatha_h ;247 - ;dw BeachHouse_h \ No newline at end of file + ;dw BeachHouse_h diff --git a/main.asm b/main.asm index 0c198eca..a9b7f053 100755 --- a/main.asm +++ b/main.asm @@ -232,11 +232,11 @@ INCLUDE "engine/menu/pc.asm" SECTION "bank06",ROMX,BANK[$06] - dr $18000,$18dee ; headers, objects, blocks -; INCLUDE "data/mapHeaders/celadoncity.asm" -; INCLUDE "data/mapObjects/celadoncity.asm" -; CeladonCityBlocks: INCBIN "maps/celadoncity.blk" +INCLUDE "data/mapHeaders/celadoncity.asm" +INCLUDE "data/mapObjects/celadoncity.asm" +CeladonCityBlocks: INCBIN "maps/celadoncity.blk" + dr $182a1,$18dee ; headers, objects, blocks ; INCLUDE "data/mapHeaders/pallettown.asm" ; INCLUDE "data/mapObjects/pallettown.asm" ; PalletTownBlocks: INCBIN "maps/pallettown.blk" @@ -261,7 +261,7 @@ SECTION "bank06",ROMX,BANK[$06] ; INCLUDE "data/mapObjects/fuchsiacity.asm" ; FuchsiaCityBlocks: INCBIN "maps/fuchsiacity.blk" - dr $18dee,$1a4ea ; map scripts + dr $18dee,$19a43 ; map scripts ; INCLUDE "scripts/pallettown.asm" ; INCLUDE "scripts/viridiancity.asm" @@ -269,6 +269,10 @@ SECTION "bank06",ROMX,BANK[$06] ; INCLUDE "scripts/ceruleancity.asm" ; INCLUDE "scripts/vermilioncity.asm" ; INCLUDE "scripts/celadoncity.asm" +CeladonCityScript: + dr $19a43,$19a5f +CeladonCityTextPointers: + dr $19a5f,$1a4ea ; INCLUDE "scripts/fuchsiacity.asm" INCLUDE "engine/overworld/npc_movement.asm" @@ -683,8 +687,12 @@ LoadSpinnerArrowTiles: ; 45077 (11:5077) INCLUDE "engine/overworld/dungeon_warps.asm" SECTION "bank12",ROMX,BANK[$12] - - dr $48000,$4a540 + dr $48000, $48051 +; INCLUDE "data/mapHeaders/route7.asm" +; INCLUDE "data/mapObjects/route7.asm" +Route7Blocks: ; 48051 +INCBIN "maps/route7.blk" + dr $480ab,$4a540 SECTION "bank13",ROMX,BANK[$13] @@ -771,7 +779,10 @@ INCLUDE "engine/overworld/trainers.asm" SECTION "bank16",ROMX,BANK[$16] - dr $58000,$58d99 + dr $58000,$58b84 +Route16Blocks: ; 58b84 +INCBIN "maps/route16.blk" + dr $58c38,$58d99 INCLUDE "engine/experience.asm" -- cgit v1.2.3 From 7229ccb81b8a53683d0158477fc3b8916416c35f Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Thu, 26 May 2016 10:17:33 -0400 Subject: Include route 7 and link club headers/data --- data/mapObjects/route7.asm | 4 ++-- main.asm | 32 ++++++++++++++++++++++++++------ scripts/route7.asm | 9 +++++---- 3 files changed, 33 insertions(+), 12 deletions(-) diff --git a/data/mapObjects/route7.asm b/data/mapObjects/route7.asm index 485a8694..b84fa190 100755 --- a/data/mapObjects/route7.asm +++ b/data/mapObjects/route7.asm @@ -3,9 +3,9 @@ Route7Object: ; 0x48022 (size=47) db $5 ; warps db $9, $12, $2, ROUTE_7_GATE - db $a, $12, $3, ROUTE_7_GATE + db $a, $12, $2, ROUTE_7_GATE db $9, $b, $0, ROUTE_7_GATE - db $a, $b, $1, ROUTE_7_GATE + db $a, $b, $0, ROUTE_7_GATE db $d, $5, $0, PATH_ENTRANCE_ROUTE_7 db $1 ; signs diff --git a/main.asm b/main.asm index a9b7f053..78769559 100755 --- a/main.asm +++ b/main.asm @@ -687,12 +687,15 @@ LoadSpinnerArrowTiles: ; 45077 (11:5077) INCLUDE "engine/overworld/dungeon_warps.asm" SECTION "bank12",ROMX,BANK[$12] - dr $48000, $48051 -; INCLUDE "data/mapHeaders/route7.asm" -; INCLUDE "data/mapObjects/route7.asm" +INCLUDE "data/mapHeaders/route7.asm" +INCLUDE "data/mapObjects/route7.asm" Route7Blocks: ; 48051 INCBIN "maps/route7.blk" - dr $480ab,$4a540 + dr $480ab,$480eb +INCLUDE "scripts/route7.asm" +; INCLUDE "data/mapHeaders/redshouse1f.asm" +; INCLUDE "data/mapObjects/redshouse1f.asm" + dr $480f6,$4a540 SECTION "bank13",ROMX,BANK[$13] @@ -746,12 +749,29 @@ AgathaPic: INCBIN "pic/trainer/agatha.pic" LancePic: INCBIN "pic/trainer/lance.pic" JessieJamesPic: INCBIN "pic/ytrainer/jessiejames.pic" - dr $4fe79,$4ff1a +; 4fe79 (13:7e79) + +INCLUDE "data/mapHeaders/tradecenter.asm" +INCLUDE "scripts/tradecenter.asm" +INCLUDE "data/mapObjects/tradecenter.asm" +TradeCenterBlocks: +INCBIN "maps/tradecenter.blk" + +; 4fee6 (13:7ee6) + +INCLUDE "data/mapHeaders/colosseum.asm" +INCLUDE "scripts/colosseum.asm" +INCLUDE "data/mapObjects/colosseum.asm" +ColosseumBlocks: +INCBIN "maps/colosseum.blk" SECTION "bank14",ROMX,BANK[$14] - dr $50000,$52060 + dr $50000,$50a98 +SaffronCityBlocks: +INCBIN "maps/saffroncity.blk" + dr $50c00,$52060 Mansion2Script_Switches: dr $52060,$522a3 Mansion3Script_Switches: diff --git a/scripts/route7.asm b/scripts/route7.asm index 484fc539..55183d16 100755 --- a/scripts/route7.asm +++ b/scripts/route7.asm @@ -1,9 +1,10 @@ -Route7Script: ; 48152 (12:4152) - jp EnableAutoTextBoxDrawing +Route7Script: ; 480eb (12:40eb) + call EnableAutoTextBoxDrawing + ret -Route7TextPointers: ; 48155 (12:4155) +Route7TextPointers: ; 480ef (12:40ef) dw Route7Text1 -Route7Text1: ; 48157 (12:4157) +Route7Text1: ; 480f1 (12:40f1) TX_FAR _Route7Text1 db "@" -- cgit v1.2.3 From d9d9354e11afbde77ae510920c498d4143f37013 Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Thu, 26 May 2016 10:48:36 -0400 Subject: Include Saffron City --- data/mapObjects/saffroncity.asm | 5 ++--- main.asm | 27 ++++++++++++++++++++++----- 2 files changed, 24 insertions(+), 8 deletions(-) diff --git a/data/mapObjects/saffroncity.asm b/data/mapObjects/saffroncity.asm index 69e76ee7..5980659b 100755 --- a/data/mapObjects/saffroncity.asm +++ b/data/mapObjects/saffroncity.asm @@ -1,4 +1,4 @@ -SaffronCityObject: ; 0x509dc (size=188) +SaffronCityObject: ; 0x509e2 (size=188) db $f ; border block db $8 ; warps @@ -23,7 +23,7 @@ SaffronCityObject: ; 0x509dc (size=188) db $1d, $1b, $18 ; SaffronCityText24 db $13, $1, $19 ; SaffronCityText25 - db $f ; objects + db $e ; objects object SPRITE_ROCKET, $7, $6, STAY, NONE, $1 ; person object SPRITE_ROCKET, $14, $8, WALK, $2, $2 ; person object SPRITE_ROCKET, $22, $4, STAY, NONE, $3 ; person @@ -38,7 +38,6 @@ SaffronCityObject: ; 0x509dc (size=188) object SPRITE_BIRD, $1f, $c, STAY, DOWN, $c ; person object SPRITE_ROCKER, $12, $8, STAY, UP, $d ; person object SPRITE_ROCKET, $12, $16, STAY, DOWN, $e ; person - object SPRITE_ROCKET, $13, $16, STAY, DOWN, $f ; person ; warp-to EVENT_DISP SAFFRON_CITY_WIDTH, $5, $7 ; COPYCATS_HOUSE_1F diff --git a/main.asm b/main.asm index 78769559..9b4fc74b 100755 --- a/main.asm +++ b/main.asm @@ -768,10 +768,18 @@ INCBIN "maps/colosseum.blk" SECTION "bank14",ROMX,BANK[$14] - dr $50000,$50a98 -SaffronCityBlocks: + dr $50000,$509aa + +INCLUDE "data/mapHeaders/saffroncity.asm" +INCLUDE "data/mapObjects/saffroncity.asm" +SaffronCityBlocks: ; 50a98 (14:4a98) INCBIN "maps/saffroncity.blk" - dr $50c00,$52060 +INCLUDE "scripts/saffroncity.asm" + + dr $50ca9,$517cc + +; victoryroad2 + dr $517cc,$52060 Mansion2Script_Switches: dr $52060,$522a3 Mansion3Script_Switches: @@ -786,7 +794,10 @@ INCLUDE "engine/hidden_object_functions14.asm" SECTION "bank15",ROMX,BANK[$15] - dr $54000,$5525f + dr $54000,$545da +Route5Blocks: ; 545da +INCBIN "maps/route5.blk" + dr $5468e,$5525f INCLUDE "engine/battle/experience.asm" @@ -799,7 +810,13 @@ INCLUDE "engine/overworld/trainers.asm" SECTION "bank16",ROMX,BANK[$16] - dr $58000,$58b84 + dr $58000,$58079 +Route6Blocks: ; 58079 +INCBIN "maps/route6.blk" + dr $5812d,$581c6 +Route8Blocks: ; 581c6 +INCBIN "maps/route8.blk" + dr $582d4,$58b84 Route16Blocks: ; 58b84 INCBIN "maps/route16.blk" dr $58c38,$58d99 -- cgit v1.2.3 From 054cb312c7a8f64b7b1d842aae774115a62509cd Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Thu, 26 May 2016 11:09:15 -0400 Subject: Include Route 5 --- data/mapHeaders/route5.asm | 2 +- data/mapObjects/route5.asm | 4 ++-- main.asm | 13 +++++++++---- scripts/route5.asm | 6 +++--- 4 files changed, 15 insertions(+), 10 deletions(-) diff --git a/data/mapHeaders/route5.asm b/data/mapHeaders/route5.asm index d35a8dab..1b8c3ee1 100755 --- a/data/mapHeaders/route5.asm +++ b/data/mapHeaders/route5.asm @@ -1,4 +1,4 @@ -Route5_h: ; 0x54581 to 0x545a3 (34 bytes) (id=16) +Route5_h: ; 0x54589 to 0x545ab (34 bytes) (id=16) db OVERWORLD ; tileset db ROUTE_5_HEIGHT, ROUTE_5_WIDTH ; dimensions (y, x) dw Route5Blocks, Route5TextPointers, Route5Script ; blocks, texts, scripts diff --git a/data/mapObjects/route5.asm b/data/mapObjects/route5.asm index d11f8417..7ace428a 100755 --- a/data/mapObjects/route5.asm +++ b/data/mapObjects/route5.asm @@ -1,8 +1,8 @@ -Route5Object: ; 0x545a3 (size=47) +Route5Object: ; 0x545ab (size=47) db $a ; border block db $5 ; warps - db $1d, $a, $3, ROUTE_5_GATE + db $1d, $a, $2, ROUTE_5_GATE db $1d, $9, $2, ROUTE_5_GATE db $21, $a, $0, ROUTE_5_GATE db $1b, $11, $0, PATH_ENTRANCE_ROUTE_5 diff --git a/main.asm b/main.asm index 9b4fc74b..3bbf792a 100755 --- a/main.asm +++ b/main.asm @@ -236,7 +236,7 @@ INCLUDE "data/mapHeaders/celadoncity.asm" INCLUDE "data/mapObjects/celadoncity.asm" CeladonCityBlocks: INCBIN "maps/celadoncity.blk" - dr $182a1,$18dee ; headers, objects, blocks + dr $182a1,$18836 ; headers, objects, blocks ; INCLUDE "data/mapHeaders/pallettown.asm" ; INCLUDE "data/mapObjects/pallettown.asm" ; PalletTownBlocks: INCBIN "maps/pallettown.blk" @@ -251,7 +251,8 @@ CeladonCityBlocks: INCBIN "maps/celadoncity.blk" ; INCLUDE "data/mapHeaders/ceruleancity.asm" ; INCLUDE "data/mapObjects/ceruleancity.asm" -; CeruleanCityBlocks: INCBIN "maps/ceruleancity.blk" +CeruleanCityBlocks: INCBIN "maps/ceruleancity.blk" ; 18836 + dr $1899e,$18dee ; headers, objects, blocks ; INCLUDE "data/mapHeaders/vermilioncity.asm" ; INCLUDE "data/mapObjects/vermilioncity.asm" @@ -794,14 +795,18 @@ INCLUDE "engine/hidden_object_functions14.asm" SECTION "bank15",ROMX,BANK[$15] - dr $54000,$545da + dr $54000,$54589 +INCLUDE "data/mapHeaders/route5.asm" +INCLUDE "data/mapObjects/route5.asm" Route5Blocks: ; 545da INCBIN "maps/route5.blk" dr $5468e,$5525f INCLUDE "engine/battle/experience.asm" - dr $554f7,$56714 + dr $554f7,$556c6 +INCLUDE "scripts/route5.asm" + dr $556d0,$56714 INCLUDE "engine/menu/diploma_1.asm" diff --git a/scripts/route5.asm b/scripts/route5.asm index 1fad3939..1f42bc4e 100755 --- a/scripts/route5.asm +++ b/scripts/route5.asm @@ -1,9 +1,9 @@ -Route5Script: ; 556b2 (15:56b2) +Route5Script: ; 556c6 (15:56c6) jp EnableAutoTextBoxDrawing -Route5TextPointers: ; 556b5 (15:56b5) +Route5TextPointers: ; 556c9 (15:56c9) dw Route5Text1 -Route5Text1: ; 556b7 (15:56b7) +Route5Text1: ; 556cb (15:56cb) TX_FAR _Route5Text1 db "@" -- cgit v1.2.3 From d3c9c0650289728d107c3cdade5956f0f4a2a02a Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Thu, 26 May 2016 11:20:12 -0400 Subject: Merge map ID and dimension constants into a single file --- constants.asm | 1 - constants/map_constants.asm | 505 +++++++++++----------- constants/map_dimensions.asm | 896 --------------------------------------- data/hide_show_data.asm | 2 +- data/mapObjects/ceruleancity.asm | 12 +- data/town_map_entries.asm | 2 +- 6 files changed, 263 insertions(+), 1155 deletions(-) delete mode 100755 constants/map_dimensions.asm diff --git a/constants.asm b/constants.asm index c5f4575e..ba2d76c6 100644 --- a/constants.asm +++ b/constants.asm @@ -21,7 +21,6 @@ INCLUDE "constants/palette_constants.asm" INCLUDE "constants/evolution_constants.asm" INCLUDE "constants/list_constants.asm" INCLUDE "constants/map_constants.asm" -INCLUDE "constants/map_dimensions.asm" INCLUDE "constants/connection_constants.asm" INCLUDE "constants/hide_show_constants.asm" INCLUDE "constants/credits_constants.asm" diff --git a/constants/map_constants.asm b/constants/map_constants.asm index 9ff23355..c2068dd9 100644 --- a/constants/map_constants.asm +++ b/constants/map_constants.asm @@ -1,251 +1,256 @@ -const_value = 0 +mapconst: MACRO + const \1 +\1_HEIGHT EQU \2 +\1_WIDTH EQU \3 +ENDM - const PALLET_TOWN ; $00 - const VIRIDIAN_CITY ; $01 - const PEWTER_CITY ; $02 - const CERULEAN_CITY ; $03 - const LAVENDER_TOWN ; $04 - const VERMILION_CITY ; $05 - const CELADON_CITY ; $06 - const FUCHSIA_CITY ; $07 - const CINNABAR_ISLAND ; $08 - const INDIGO_PLATEAU ; $09 - const SAFFRON_CITY ; $0A - const UNUSED_MAP_0B ; $0B - const ROUTE_1 ; $0C - const ROUTE_2 ; $0D - const ROUTE_3 ; $0E - const ROUTE_4 ; $0F - const ROUTE_5 ; $10 - const ROUTE_6 ; $11 - const ROUTE_7 ; $12 - const ROUTE_8 ; $13 - const ROUTE_9 ; $14 - const ROUTE_10 ; $15 - const ROUTE_11 ; $16 - const ROUTE_12 ; $17 - const ROUTE_13 ; $18 - const ROUTE_14 ; $19 - const ROUTE_15 ; $1A - const ROUTE_16 ; $1B - const ROUTE_17 ; $1C - const ROUTE_18 ; $1D - const ROUTE_19 ; $1E - const ROUTE_20 ; $1F - const ROUTE_21 ; $20 - const ROUTE_22 ; $21 - const ROUTE_23 ; $22 - const ROUTE_24 ; $23 - const ROUTE_25 ; $24 - const REDS_HOUSE_1F ; $25 - const REDS_HOUSE_2F ; $26 - const BLUES_HOUSE ; $27 - const OAKS_LAB ; $28 - const VIRIDIAN_POKECENTER ; $29 - const VIRIDIAN_MART ; $2A - const VIRIDIAN_SCHOOL ; $2B - const VIRIDIAN_HOUSE ; $2C - const VIRIDIAN_GYM ; $2D - const DIGLETTS_CAVE_EXIT ; $2E - const VIRIDIAN_FOREST_EXIT ; $2F - const ROUTE_2_HOUSE ; $30 - const ROUTE_2_GATE ; $31 - const VIRIDIAN_FOREST_ENTRANCE ; $32 - const VIRIDIAN_FOREST ; $33 - const MUSEUM_1F ; $34 - const MUSEUM_2F ; $35 - const PEWTER_GYM ; $36 - const PEWTER_HOUSE_1 ; $37 - const PEWTER_MART ; $38 - const PEWTER_HOUSE_2 ; $39 - const PEWTER_POKECENTER ; $3A - const MT_MOON_1 ; $3B - const MT_MOON_2 ; $3C - const MT_MOON_3 ; $3D - const TRASHED_HOUSE ; $3E - const CERULEAN_HOUSE ; $3F - const CERULEAN_POKECENTER ; $40 - const CERULEAN_GYM ; $41 - const BIKE_SHOP ; $42 - const CERULEAN_MART ; $43 - const MT_MOON_POKECENTER ; $44 - const TRASHED_HOUSE_COPY ; $45 - const ROUTE_5_GATE ; $46 - const PATH_ENTRANCE_ROUTE_5 ; $47 - const DAYCAREM ; $48 - const ROUTE_6_GATE ; $49 - const PATH_ENTRANCE_ROUTE_6 ; $4A - const PATH_ENTRANCE_ROUTE_6_COPY ; $4B - const ROUTE_7_GATE ; $4C - const PATH_ENTRANCE_ROUTE_7 ; $4D - const PATH_ENTRANCE_ROUTE_7_COPY ; $4E - const ROUTE_8_GATE ; $4F - const PATH_ENTRANCE_ROUTE_8 ; $50 - const ROCK_TUNNEL_POKECENTER ; $51 - const ROCK_TUNNEL_1 ; $52 - const POWER_PLANT ; $53 - const ROUTE_11_GATE_1F ; $54 - const DIGLETTS_CAVE_ENTRANCE ; $55 - const ROUTE_11_GATE_2F ; $56 - const ROUTE_12_GATE_1F ; $57 - const BILLS_HOUSE ; $58 - const VERMILION_POKECENTER ; $59 - const POKEMON_FAN_CLUB ; $5A - const VERMILION_MART ; $5B - const VERMILION_GYM ; $5C - const VERMILION_HOUSE_1 ; $5D - const VERMILION_DOCK ; $5E - const SS_ANNE_1 ; $5F - const SS_ANNE_2 ; $60 - const SS_ANNE_3 ; $61 - const SS_ANNE_4 ; $62 - const SS_ANNE_5 ; $63 - const SS_ANNE_6 ; $64 - const SS_ANNE_7 ; $65 - const SS_ANNE_8 ; $66 - const SS_ANNE_9 ; $67 - const SS_ANNE_10 ; $68 - const UNUSED_MAP_69 ; $69 - const UNUSED_MAP_6A ; $6A - const UNUSED_MAP_6B ; $6B - const VICTORY_ROAD_1 ; $6C - const UNUSED_MAP_6D ; $6D - const UNUSED_MAP_6E ; $6E - const UNUSED_MAP_6F ; $6F - const UNUSED_MAP_70 ; $70 - const LANCES_ROOM ; $71 - const UNUSED_MAP_72 ; $72 - const UNUSED_MAP_73 ; $73 - const UNUSED_MAP_74 ; $74 - const UNUSED_MAP_75 ; $75 - const HALL_OF_FAME ; $76 - const UNDERGROUND_PATH_NS ; $77 - const CHAMPIONS_ROOM ; $78 - const UNDERGROUND_PATH_WE ; $79 - const CELADON_MART_1 ; $7A - const CELADON_MART_2 ; $7B - const CELADON_MART_3 ; $7C - const CELADON_MART_4 ; $7D - const CELADON_MART_ROOF ; $7E - const CELADON_MART_ELEVATOR ; $7F - const CELADON_MANSION_1 ; $80 - const CELADON_MANSION_2 ; $81 - const CELADON_MANSION_3 ; $82 - const CELADON_MANSION_4 ; $83 - const CELADON_MANSION_5 ; $84 - const CELADON_POKECENTER ; $85 - const CELADON_GYM ; $86 - const GAME_CORNER ; $87 - const CELADON_MART_5 ; $88 - const CELADON_PRIZE_ROOM ; $89 - const CELADON_DINER ; $8A - const CELADON_HOUSE ; $8B - const CELADON_HOTEL ; $8C - const LAVENDER_POKECENTER ; $8D - const POKEMONTOWER_1 ; $8E - const POKEMONTOWER_2 ; $8F - const POKEMONTOWER_3 ; $90 - const POKEMONTOWER_4 ; $91 - const POKEMONTOWER_5 ; $92 - const POKEMONTOWER_6 ; $93 - const POKEMONTOWER_7 ; $94 - const LAVENDER_HOUSE_1 ; $95 - const LAVENDER_MART ; $96 - const LAVENDER_HOUSE_2 ; $97 - const FUCHSIA_MART ; $98 - const FUCHSIA_HOUSE_1 ; $99 - const FUCHSIA_POKECENTER ; $9A - const FUCHSIA_HOUSE_2 ; $9B - const SAFARI_ZONE_ENTRANCE ; $9C - const FUCHSIA_GYM ; $9D - const FUCHSIA_MEETING_ROOM ; $9E - const SEAFOAM_ISLANDS_2 ; $9F - const SEAFOAM_ISLANDS_3 ; $A0 - const SEAFOAM_ISLANDS_4 ; $A1 - const SEAFOAM_ISLANDS_5 ; $A2 - const VERMILION_HOUSE_2 ; $A3 - const FUCHSIA_HOUSE_3 ; $A4 - const MANSION_1 ; $A5 - const CINNABAR_GYM ; $A6 - const CINNABAR_LAB_1 ; $A7 - const CINNABAR_LAB_2 ; $A8 - const CINNABAR_LAB_3 ; $A9 - const CINNABAR_LAB_4 ; $AA - const CINNABAR_POKECENTER ; $AB - const CINNABAR_MART ; $AC - const CINNABAR_MART_COPY ; $AD - const INDIGO_PLATEAU_LOBBY ; $AE - const COPYCATS_HOUSE_1F ; $AF - const COPYCATS_HOUSE_2F ; $B0 - const FIGHTING_DOJO ; $B1 - const SAFFRON_GYM ; $B2 - const SAFFRON_HOUSE_1 ; $B3 - const SAFFRON_MART ; $B4 - const SILPH_CO_1F ; $B5 - const SAFFRON_POKECENTER ; $B6 - const SAFFRON_HOUSE_2 ; $B7 - const ROUTE_15_GATE_1F ; $B8 - const ROUTE_15_GATE_2F ; $B9 - const ROUTE_16_GATE_1F ; $BA - const ROUTE_16_GATE_2F ; $BB - const ROUTE_16_HOUSE ; $BC - const ROUTE_12_HOUSE ; $BD - const ROUTE_18_GATE_1F ; $BE - const ROUTE_18_GATE_2F ; $BF - const SEAFOAM_ISLANDS_1 ; $C0 - const ROUTE_22_GATE ; $C1 - const VICTORY_ROAD_2 ; $C2 - const ROUTE_12_GATE_2F ; $C3 - const VERMILION_HOUSE_3 ; $C4 - const DIGLETTS_CAVE ; $C5 - const VICTORY_ROAD_3 ; $C6 - const ROCKET_HIDEOUT_1 ; $C7 - const ROCKET_HIDEOUT_2 ; $C8 - const ROCKET_HIDEOUT_3 ; $C9 - const ROCKET_HIDEOUT_4 ; $CA - const ROCKET_HIDEOUT_ELEVATOR ; $CB - const UNUSED_MAP_CC ; $CC - const UNUSED_MAP_CD ; $CD - const UNUSED_MAP_CE ; $CE - const SILPH_CO_2F ; $CF - const SILPH_CO_3F ; $D0 - const SILPH_CO_4F ; $D1 - const SILPH_CO_5F ; $D2 - const SILPH_CO_6F ; $D3 - const SILPH_CO_7F ; $D4 - const SILPH_CO_8F ; $D5 - const MANSION_2 ; $D6 - const MANSION_3 ; $D7 - const MANSION_4 ; $D8 - const SAFARI_ZONE_EAST ; $D9 - const SAFARI_ZONE_NORTH ; $DA - const SAFARI_ZONE_WEST ; $DB - const SAFARI_ZONE_CENTER ; $DC - const SAFARI_ZONE_REST_HOUSE_1 ; $DD - const SAFARI_ZONE_SECRET_HOUSE ; $DE - const SAFARI_ZONE_REST_HOUSE_2 ; $DF - const SAFARI_ZONE_REST_HOUSE_3 ; $E0 - const SAFARI_ZONE_REST_HOUSE_4 ; $E1 - const UNKNOWN_DUNGEON_2 ; $E2 - const UNKNOWN_DUNGEON_3 ; $E3 - const UNKNOWN_DUNGEON_1 ; $E4 - const NAME_RATERS_HOUSE ; $E5 - const CERULEAN_HOUSE_3 ; $E6 - const UNUSED_MAP_E7 ; $E7 - const ROCK_TUNNEL_2 ; $E8 - const SILPH_CO_9F ; $E9 - const SILPH_CO_10F ; $EA - const SILPH_CO_11F ; $EB - const SILPH_CO_ELEVATOR ; $EC - const UNUSED_MAP_ED ; $ED - const UNUSED_MAP_EE ; $EE - const TRADE_CENTER ; $EF - const COLOSSEUM ; $F0 - const UNUSED_MAP_F1 ; $F1 - const UNUSED_MAP_F2 ; $F2 - const UNUSED_MAP_F3 ; $F3 - const UNUSED_MAP_F4 ; $F4 - const LORELEIS_ROOM ; $F5 - const BRUNOS_ROOM ; $F6 - const AGATHAS_ROOM ; $F7 - const BEACH_HOUSE ; $F8 + const_def + mapconst PALLET_TOWN, 9, 10 ; $00 + mapconst VIRIDIAN_CITY, 18, 20 ; $01 + mapconst PEWTER_CITY, 18, 20 ; $02 + mapconst CERULEAN_CITY, 18, 20 ; $03 + mapconst LAVENDER_TOWN, 9, 10 ; $04 + mapconst VERMILION_CITY, 18, 20 ; $05 + mapconst CELADON_CITY, 18, 25 ; $06 + mapconst FUCHSIA_CITY, 18, 20 ; $07 + mapconst CINNABAR_ISLAND, 9, 10 ; $08 + mapconst INDIGO_PLATEAU, 9, 10 ; $09 + mapconst SAFFRON_CITY, 18, 20 ; $0A + mapconst UNUSED_MAP_0B, 0, 0 ; $0B + mapconst ROUTE_1, 18, 10 ; $0C + mapconst ROUTE_2, 36, 10 ; $0D + mapconst ROUTE_3, 9, 35 ; $0E + mapconst ROUTE_4, 9, 45 ; $0F + mapconst ROUTE_5, 18, 10 ; $10 + mapconst ROUTE_6, 18, 10 ; $11 + mapconst ROUTE_7, 9, 10 ; $12 + mapconst ROUTE_8, 9, 30 ; $13 + mapconst ROUTE_9, 9, 30 ; $14 + mapconst ROUTE_10, 36, 10 ; $15 + mapconst ROUTE_11, 9, 30 ; $16 + mapconst ROUTE_12, 54, 10 ; $17 + mapconst ROUTE_13, 9, 30 ; $18 + mapconst ROUTE_14, 27, 10 ; $19 + mapconst ROUTE_15, 9, 30 ; $1A + mapconst ROUTE_16, 9, 20 ; $1B + mapconst ROUTE_17, 72, 10 ; $1C + mapconst ROUTE_18, 9, 25 ; $1D + mapconst ROUTE_19, 27, 10 ; $1E + mapconst ROUTE_20, 9, 50 ; $1F + mapconst ROUTE_21, 45, 10 ; $20 + mapconst ROUTE_22, 9, 20 ; $21 + mapconst ROUTE_23, 72, 10 ; $22 + mapconst ROUTE_24, 18, 10 ; $23 + mapconst ROUTE_25, 9, 30 ; $24 + mapconst REDS_HOUSE_1F, 4, 4 ; $25 + mapconst REDS_HOUSE_2F, 4, 4 ; $26 + mapconst BLUES_HOUSE, 4, 4 ; $27 + mapconst OAKS_LAB, 6, 5 ; $28 + mapconst VIRIDIAN_POKECENTER, 4, 7 ; $29 + mapconst VIRIDIAN_MART, 4, 4 ; $2A + mapconst VIRIDIAN_SCHOOL, 4, 4 ; $2B + mapconst VIRIDIAN_HOUSE, 4, 4 ; $2C + mapconst VIRIDIAN_GYM, 9, 10 ; $2D + mapconst DIGLETTS_CAVE_EXIT, 4, 4 ; $2E + mapconst VIRIDIAN_FOREST_EXIT, 4, 5 ; $2F + mapconst ROUTE_2_HOUSE, 4, 4 ; $30 + mapconst ROUTE_2_GATE, 4, 5 ; $31 + mapconst VIRIDIAN_FOREST_ENTRANCE, 4, 5 ; $32 + mapconst VIRIDIAN_FOREST, 24, 17 ; $33 + mapconst MUSEUM_1F, 4, 10 ; $34 + mapconst MUSEUM_2F, 4, 7 ; $35 + mapconst PEWTER_GYM, 7, 5 ; $36 + mapconst PEWTER_HOUSE_1, 4, 4 ; $37 + mapconst PEWTER_MART, 4, 4 ; $38 + mapconst PEWTER_HOUSE_2, 4, 4 ; $39 + mapconst PEWTER_POKECENTER, 4, 7 ; $3A + mapconst MT_MOON_1, 18, 20 ; $3B + mapconst MT_MOON_2, 14, 14 ; $3C + mapconst MT_MOON_3, 18, 20 ; $3D + mapconst TRASHED_HOUSE, 4, 4 ; $3E + mapconst CERULEAN_HOUSE_1, 4, 4 ; $3F + mapconst CERULEAN_POKECENTER, 4, 7 ; $40 + mapconst CERULEAN_GYM, 7, 5 ; $41 + mapconst BIKE_SHOP, 4, 4 ; $42 + mapconst CERULEAN_MART, 4, 4 ; $43 + mapconst MT_MOON_POKECENTER, 4, 7 ; $44 + mapconst TRASHED_HOUSE_COPY, 4, 4 ; $45 + mapconst ROUTE_5_GATE, 3, 4 ; $46 + mapconst PATH_ENTRANCE_ROUTE_5, 4, 4 ; $47 + mapconst DAYCAREM, 4, 4 ; $48 + mapconst ROUTE_6_GATE, 3, 4 ; $49 + mapconst PATH_ENTRANCE_ROUTE_6, 4, 4 ; $4A + mapconst PATH_ENTRANCE_ROUTE_6_COPY, 4, 4 ; $4B + mapconst ROUTE_7_GATE, 4, 3 ; $4C + mapconst PATH_ENTRANCE_ROUTE_7, 4, 4 ; $4D + mapconst PATH_ENTRANCE_ROUTE_7_COPY, 4, 4 ; $4E + mapconst ROUTE_8_GATE, 4, 3 ; $4F + mapconst PATH_ENTRANCE_ROUTE_8, 4, 4 ; $50 + mapconst ROCK_TUNNEL_POKECENTER, 4, 7 ; $51 + mapconst ROCK_TUNNEL_1, 18, 20 ; $52 + mapconst POWER_PLANT, 18, 20 ; $53 + mapconst ROUTE_11_GATE_1F, 5, 4 ; $54 + mapconst DIGLETTS_CAVE_ENTRANCE, 4, 4 ; $55 + mapconst ROUTE_11_GATE_2F, 4, 4 ; $56 + mapconst ROUTE_12_GATE_1F, 4, 5 ; $57 + mapconst BILLS_HOUSE, 4, 4 ; $58 + mapconst VERMILION_POKECENTER, 4, 7 ; $59 + mapconst POKEMON_FAN_CLUB, 4, 4 ; $5A + mapconst VERMILION_MART, 4, 4 ; $5B + mapconst VERMILION_GYM, 9, 5 ; $5C + mapconst VERMILION_HOUSE_1, 4, 4 ; $5D + mapconst VERMILION_DOCK, 6, 14 ; $5E + mapconst SS_ANNE_1, 9, 20 ; $5F + mapconst SS_ANNE_2, 9, 20 ; $60 + mapconst SS_ANNE_3, 3, 10 ; $61 + mapconst SS_ANNE_4, 4, 15 ; $62 + mapconst SS_ANNE_5, 7, 10 ; $63 + mapconst SS_ANNE_6, 8, 7 ; $64 + mapconst SS_ANNE_7, 4, 3 ; $65 + mapconst SS_ANNE_8, 8, 12 ; $66 + mapconst SS_ANNE_9, 8, 12 ; $67 + mapconst SS_ANNE_10, 8, 12 ; $68 + mapconst UNUSED_MAP_69, 0, 0 ; $69 + mapconst UNUSED_MAP_6A, 0, 0 ; $6A + mapconst UNUSED_MAP_6B, 0, 0 ; $6B + mapconst VICTORY_ROAD_1, 9, 10 ; $6C + mapconst UNUSED_MAP_6D, 0, 0 ; $6D + mapconst UNUSED_MAP_6E, 0, 0 ; $6E + mapconst UNUSED_MAP_6F, 0, 0 ; $6F + mapconst UNUSED_MAP_70, 0, 0 ; $70 + mapconst LANCES_ROOM, 13, 13 ; $71 + mapconst UNUSED_MAP_72, 0, 0 ; $72 + mapconst UNUSED_MAP_73, 0, 0 ; $73 + mapconst UNUSED_MAP_74, 0, 0 ; $74 + mapconst UNUSED_MAP_75, 0, 0 ; $75 + mapconst HALL_OF_FAME, 4, 5 ; $76 + mapconst UNDERGROUND_PATH_NS, 24, 4 ; $77 + mapconst CHAMPIONS_ROOM, 4, 4 ; $78 + mapconst UNDERGROUND_PATH_WE, 4, 25 ; $79 + mapconst CELADON_MART_1, 4, 10 ; $7A + mapconst CELADON_MART_2, 4, 10 ; $7B + mapconst CELADON_MART_3, 4, 10 ; $7C + mapconst CELADON_MART_4, 4, 10 ; $7D + mapconst CELADON_MART_ROOF, 4, 10 ; $7E + mapconst CELADON_MART_ELEVATOR, 2, 2 ; $7F + mapconst CELADON_MANSION_1, 6, 4 ; $80 + mapconst CELADON_MANSION_2, 6, 4 ; $81 + mapconst CELADON_MANSION_3, 6, 4 ; $82 + mapconst CELADON_MANSION_4, 6, 4 ; $83 + mapconst CELADON_MANSION_5, 4, 4 ; $84 + mapconst CELADON_POKECENTER, 4, 7 ; $85 + mapconst CELADON_GYM, 9, 5 ; $86 + mapconst GAME_CORNER, 9, 10 ; $87 + mapconst CELADON_MART_5, 4, 10 ; $88 + mapconst CELADON_PRIZE_ROOM, 4, 5 ; $89 + mapconst CELADON_DINER, 4, 5 ; $8A + mapconst CELADON_HOUSE, 4, 4 ; $8B + mapconst CELADON_HOTEL, 4, 7 ; $8C + mapconst LAVENDER_POKECENTER, 4, 7 ; $8D + mapconst POKEMONTOWER_1, 9, 10 ; $8E + mapconst POKEMONTOWER_2, 9, 10 ; $8F + mapconst POKEMONTOWER_3, 9, 10 ; $90 + mapconst POKEMONTOWER_4, 9, 10 ; $91 + mapconst POKEMONTOWER_5, 9, 10 ; $92 + mapconst POKEMONTOWER_6, 9, 10 ; $93 + mapconst POKEMONTOWER_7, 9, 10 ; $94 + mapconst LAVENDER_HOUSE_1, 4, 4 ; $95 + mapconst LAVENDER_MART, 4, 4 ; $96 + mapconst LAVENDER_HOUSE_2, 4, 4 ; $97 + mapconst FUCHSIA_MART, 4, 4 ; $98 + mapconst FUCHSIA_HOUSE_1, 4, 4 ; $99 + mapconst FUCHSIA_POKECENTER, 4, 7 ; $9A + mapconst FUCHSIA_HOUSE_2, 4, 5 ; $9B + mapconst SAFARI_ZONE_ENTRANCE, 3, 4 ; $9C + mapconst FUCHSIA_GYM, 9, 5 ; $9D + mapconst FUCHSIA_MEETING_ROOM, 4, 7 ; $9E + mapconst SEAFOAM_ISLANDS_2, 9, 15 ; $9F + mapconst SEAFOAM_ISLANDS_3, 9, 15 ; $A0 + mapconst SEAFOAM_ISLANDS_4, 9, 15 ; $A1 + mapconst SEAFOAM_ISLANDS_5, 9, 15 ; $A2 + mapconst VERMILION_HOUSE_2, 4, 4 ; $A3 + mapconst FUCHSIA_HOUSE_3, 4, 4 ; $A4 + mapconst MANSION_1, 14, 15 ; $A5 + mapconst CINNABAR_GYM, 9, 10 ; $A6 + mapconst CINNABAR_LAB_1, 4, 9 ; $A7 + mapconst CINNABAR_LAB_2, 4, 4 ; $A8 + mapconst CINNABAR_LAB_3, 4, 4 ; $A9 + mapconst CINNABAR_LAB_4, 4, 4 ; $AA + mapconst CINNABAR_POKECENTER, 4, 7 ; $AB + mapconst CINNABAR_MART, 4, 4 ; $AC + mapconst CINNABAR_MART_COPY, 4, 4 ; $AD + mapconst INDIGO_PLATEAU_LOBBY, 6, 8 ; $AE + mapconst COPYCATS_HOUSE_1F, 4, 4 ; $AF + mapconst COPYCATS_HOUSE_2F, 4, 4 ; $B0 + mapconst FIGHTING_DOJO, 6, 5 ; $B1 + mapconst SAFFRON_GYM, 9, 10 ; $B2 + mapconst SAFFRON_HOUSE_1, 4, 4 ; $B3 + mapconst SAFFRON_MART, 4, 4 ; $B4 + mapconst SILPH_CO_1F, 9, 15 ; $B5 + mapconst SAFFRON_POKECENTER, 4, 7 ; $B6 + mapconst SAFFRON_HOUSE_2, 4, 4 ; $B7 + mapconst ROUTE_15_GATE_1F, 5, 4 ; $B8 + mapconst ROUTE_15_GATE_2F, 4, 4 ; $B9 + mapconst ROUTE_16_GATE_1F, 7, 4 ; $BA + mapconst ROUTE_16_GATE_2F, 4, 4 ; $BB + mapconst ROUTE_16_HOUSE, 4, 4 ; $BC + mapconst ROUTE_12_HOUSE, 4, 4 ; $BD + mapconst ROUTE_18_GATE_1F, 5, 4 ; $BE + mapconst ROUTE_18_GATE_2F, 4, 4 ; $BF + mapconst SEAFOAM_ISLANDS_1, 9, 15 ; $C0 + mapconst ROUTE_22_GATE, 4, 5 ; $C1 + mapconst VICTORY_ROAD_2, 9, 15 ; $C2 + mapconst ROUTE_12_GATE_2F, 4, 4 ; $C3 + mapconst VERMILION_HOUSE_3, 4, 4 ; $C4 + mapconst DIGLETTS_CAVE, 18, 20 ; $C5 + mapconst VICTORY_ROAD_3, 9, 15 ; $C6 + mapconst ROCKET_HIDEOUT_1, 14, 15 ; $C7 + mapconst ROCKET_HIDEOUT_2, 14, 15 ; $C8 + mapconst ROCKET_HIDEOUT_3, 14, 15 ; $C9 + mapconst ROCKET_HIDEOUT_4, 12, 15 ; $CA + mapconst ROCKET_HIDEOUT_ELEVATOR, 4, 3 ; $CB + mapconst UNUSED_MAP_CC, 0, 0 ; $CC + mapconst UNUSED_MAP_CD, 0, 0 ; $CD + mapconst UNUSED_MAP_CE, 0, 0 ; $CE + mapconst SILPH_CO_2F, 9, 15 ; $CF + mapconst SILPH_CO_3F, 9, 15 ; $D0 + mapconst SILPH_CO_4F, 9, 15 ; $D1 + mapconst SILPH_CO_5F, 9, 15 ; $D2 + mapconst SILPH_CO_6F, 9, 13 ; $D3 + mapconst SILPH_CO_7F, 9, 13 ; $D4 + mapconst SILPH_CO_8F, 9, 13 ; $D5 + mapconst MANSION_2, 14, 15 ; $D6 + mapconst MANSION_3, 9, 15 ; $D7 + mapconst MANSION_4, 14, 15 ; $D8 + mapconst SAFARI_ZONE_EAST, 13, 15 ; $D9 + mapconst SAFARI_ZONE_NORTH, 18, 20 ; $DA + mapconst SAFARI_ZONE_WEST, 13, 15 ; $DB + mapconst SAFARI_ZONE_CENTER, 13, 15 ; $DC + mapconst SAFARI_ZONE_REST_HOUSE_1, 4, 4 ; $DD + mapconst SAFARI_ZONE_SECRET_HOUSE, 4, 4 ; $DE + mapconst SAFARI_ZONE_REST_HOUSE_2, 4, 4 ; $DF + mapconst SAFARI_ZONE_REST_HOUSE_3, 4, 4 ; $E0 + mapconst SAFARI_ZONE_REST_HOUSE_4, 4, 4 ; $E1 + mapconst UNKNOWN_DUNGEON_2, 9, 15 ; $E2 + mapconst UNKNOWN_DUNGEON_3, 9, 15 ; $E3 + mapconst UNKNOWN_DUNGEON_1, 9, 15 ; $E4 + mapconst NAME_RATERS_HOUSE, 4, 4 ; $E5 + mapconst CERULEAN_HOUSE_2, 4, 4 ; $E6 + mapconst UNUSED_MAP_E7, 0, 0 ; $E7 + mapconst ROCK_TUNNEL_2, 18, 20 ; $E8 + mapconst SILPH_CO_9F, 9, 13 ; $E9 + mapconst SILPH_CO_10F, 9, 8 ; $EA + mapconst SILPH_CO_11F, 9, 9 ; $EB + mapconst SILPH_CO_ELEVATOR, 2, 2 ; $EC + mapconst UNUSED_MAP_ED, 0, 0 ; $ED + mapconst UNUSED_MAP_EE, 0, 0 ; $EE + mapconst TRADE_CENTER, 4, 5 ; $EF + mapconst COLOSSEUM, 4, 5 ; $F0 + mapconst UNUSED_MAP_F1, 0, 0 ; $F1 + mapconst UNUSED_MAP_F2, 0, 0 ; $F2 + mapconst UNUSED_MAP_F3, 0, 0 ; $F3 + mapconst UNUSED_MAP_F4, 0, 0 ; $F4 + mapconst LORELEIS_ROOM, 6, 5 ; $F5 + mapconst BRUNOS_ROOM, 6, 5 ; $F6 + mapconst AGATHAS_ROOM, 6, 5 ; $F7 + mapconst BEACH_HOUSE, 4, 7 ; $F8 diff --git a/constants/map_dimensions.asm b/constants/map_dimensions.asm deleted file mode 100755 index 22fa3c6e..00000000 --- a/constants/map_dimensions.asm +++ /dev/null @@ -1,896 +0,0 @@ -; Map sizes (y, x) - -; PalletTown_h map_id=0 -PALLET_TOWN_HEIGHT EQU $09 -PALLET_TOWN_WIDTH EQU $0a - -; ViridianCity_h map_id=1 -VIRIDIAN_CITY_HEIGHT EQU $12 -VIRIDIAN_CITY_WIDTH EQU $14 - -; PewterCity_h map_id=2 -PEWTER_CITY_HEIGHT EQU $12 -PEWTER_CITY_WIDTH EQU $14 - -; CeruleanCity_h map_id=3 -CERULEAN_CITY_HEIGHT EQU $12 -CERULEAN_CITY_WIDTH EQU $14 - -; LavenderTown_h map_id=4 -LAVENDER_TOWN_HEIGHT EQU $09 -LAVENDER_TOWN_WIDTH EQU $0a - -; VermilionCity_h map_id=5 -VERMILION_CITY_HEIGHT EQU $12 -VERMILION_CITY_WIDTH EQU $14 - -; CeladonCity_h map_id=6 -CELADON_CITY_HEIGHT EQU $12 -CELADON_CITY_WIDTH EQU $19 - -; FuchsiaCity_h map_id=7 -FUCHSIA_CITY_HEIGHT EQU $12 -FUCHSIA_CITY_WIDTH EQU $14 - -; CinnabarIsland_h map_id=8 -CINNABAR_ISLAND_HEIGHT EQU $09 -CINNABAR_ISLAND_WIDTH EQU $0a - -; IndigoPlateau_h map_id=9 -INDIGO_PLATEAU_HEIGHT EQU $09 -INDIGO_PLATEAU_WIDTH EQU $0a - -; SaffronCity_h map_id=10 -SAFFRON_CITY_HEIGHT EQU $12 -SAFFRON_CITY_WIDTH EQU $14 - -; Route1_h map_id=12 -ROUTE_1_HEIGHT EQU $12 -ROUTE_1_WIDTH EQU $0a - -; Route2_h map_id=13 -ROUTE_2_HEIGHT EQU $24 -ROUTE_2_WIDTH EQU $0a - -; Route3_h map_id=14 -ROUTE_3_HEIGHT EQU $09 -ROUTE_3_WIDTH EQU $23 - -; Route4_h map_id=15 -ROUTE_4_HEIGHT EQU $09 -ROUTE_4_WIDTH EQU $2d - -; Route5_h map_id=16 -ROUTE_5_HEIGHT EQU $12 -ROUTE_5_WIDTH EQU $0a - -; Route6_h map_id=17 -ROUTE_6_HEIGHT EQU $12 -ROUTE_6_WIDTH EQU $0a - -; Route7_h map_id=18 -ROUTE_7_HEIGHT EQU $09 -ROUTE_7_WIDTH EQU $0a - -; Route8_h map_id=19 -ROUTE_8_HEIGHT EQU $09 -ROUTE_8_WIDTH EQU $1e - -; Route9_h map_id=20 -ROUTE_9_HEIGHT EQU $09 -ROUTE_9_WIDTH EQU $1e - -; Route10_h map_id=21 -ROUTE_10_HEIGHT EQU $24 -ROUTE_10_WIDTH EQU $0a - -; Route11_h map_id=22 -ROUTE_11_HEIGHT EQU $09 -ROUTE_11_WIDTH EQU $1e - -; Route12_h map_id=23 -ROUTE_12_HEIGHT EQU $36 -ROUTE_12_WIDTH EQU $0a - -; Route13_h map_id=24 -ROUTE_13_HEIGHT EQU $09 -ROUTE_13_WIDTH EQU $1e - -; Route14_h map_id=25 -ROUTE_14_HEIGHT EQU $1b -ROUTE_14_WIDTH EQU $0a - -; Route15_h map_id=26 -ROUTE_15_HEIGHT EQU $09 -ROUTE_15_WIDTH EQU $1e - -; Route16_h map_id=27 -ROUTE_16_HEIGHT EQU $09 -ROUTE_16_WIDTH EQU $14 - -; Route17_h map_id=28 -ROUTE_17_HEIGHT EQU $48 -ROUTE_17_WIDTH EQU $0a - -; Route18_h map_id=29 -ROUTE_18_HEIGHT EQU $09 -ROUTE_18_WIDTH EQU $19 - -; Route19_h map_id=30 -ROUTE_19_HEIGHT EQU $1b -ROUTE_19_WIDTH EQU $0a - -; Route20_h map_id=31 -ROUTE_20_HEIGHT EQU $09 -ROUTE_20_WIDTH EQU $32 - -; Route21_h map_id=32 -ROUTE_21_HEIGHT EQU $2d -ROUTE_21_WIDTH EQU $0a - -; Route22_h map_id=33 -ROUTE_22_HEIGHT EQU $09 -ROUTE_22_WIDTH EQU $14 - -; Route23_h map_id=34 -ROUTE_23_HEIGHT EQU $48 -ROUTE_23_WIDTH EQU $0a - -; Route24_h map_id=35 -ROUTE_24_HEIGHT EQU $12 -ROUTE_24_WIDTH EQU $0a - -; Route25_h map_id=36 -ROUTE_25_HEIGHT EQU $09 -ROUTE_25_WIDTH EQU $1e - -; RedsHouse1F_h map_id=37 -REDS_HOUSE_1F_HEIGHT EQU $04 -REDS_HOUSE_1F_WIDTH EQU $04 - -; RedsHouse2F_h map_id=38 -REDS_HOUSE_2F_HEIGHT EQU $04 -REDS_HOUSE_2F_WIDTH EQU $04 - -; BluesHouse_h map_id=39 -BLUES_HOUSE_HEIGHT EQU $04 -BLUES_HOUSE_WIDTH EQU $04 - -; OaksLab_h map_id=40 -OAKS_LAB_HEIGHT EQU $06 -OAKS_LAB_WIDTH EQU $05 - -; ViridianPokeCenter_h map_id=41 -VIRIDIAN_POKECENTER_HEIGHT EQU $04 -VIRIDIAN_POKECENTER_WIDTH EQU $07 - -; ViridianMart_h map_id=42 -VIRIDIAN_MART_HEIGHT EQU $04 -VIRIDIAN_MART_WIDTH EQU $04 - -; School_h map_id=43 -VIRIDIAN_SCHOOL_HEIGHT EQU $04 -VIRIDIAN_SCHOOL_WIDTH EQU $04 - -; ViridianHouse_h map_id=44 -VIRIDIAN_HOUSE_HEIGHT EQU $04 -VIRIDIAN_HOUSE_WIDTH EQU $04 - -; ViridianGym_h map_id=45 -VIRIDIAN_GYM_HEIGHT EQU $09 -VIRIDIAN_GYM_WIDTH EQU $0a - -; DiglettsCaveRoute2_h map_id=46 -DIGLETTS_CAVE_EXIT_HEIGHT EQU $04 -DIGLETTS_CAVE_EXIT_WIDTH EQU $04 - -; ViridianForestExit_h map_id=47 -VIRIDIAN_FOREST_EXIT_HEIGHT EQU $04 -VIRIDIAN_FOREST_EXIT_WIDTH EQU $05 - -; Route2House_h map_id=48 -ROUTE_2_HOUSE_HEIGHT EQU $04 -ROUTE_2_HOUSE_WIDTH EQU $04 - -; Route2Gate_h map_id=49 -ROUTE_2_GATE_HEIGHT EQU $04 -ROUTE_2_GATE_WIDTH EQU $05 - -; ViridianForestEntrance_h map_id=50 -VIRIDIAN_FOREST_ENTRANCE_HEIGHT EQU $04 -VIRIDIAN_FOREST_ENTRANCE_WIDTH EQU $05 - -; ViridianForest_h map_id=51 -VIRIDIAN_FOREST_HEIGHT EQU $18 -VIRIDIAN_FOREST_WIDTH EQU $11 - -; MuseumF1_h map_id=52 -MUSEUM_1F_HEIGHT EQU $04 -MUSEUM_1F_WIDTH EQU $0a - -; MuseumF2_h map_id=53 -MUSEUM_2F_HEIGHT EQU $04 -MUSEUM_2F_WIDTH EQU $07 - -; PewterGym_h map_id=54 -PEWTER_GYM_HEIGHT EQU $07 -PEWTER_GYM_WIDTH EQU $05 - -; PewterHouse1_h map_id=55 -PEWTER_HOUSE_1_HEIGHT EQU $04 -PEWTER_HOUSE_1_WIDTH EQU $04 - -; PewterMart_h map_id=56 -PEWTER_MART_HEIGHT EQU $04 -PEWTER_MART_WIDTH EQU $04 - -; PewterHouse2_h map_id=57 -PEWTER_HOUSE_2_HEIGHT EQU $04 -PEWTER_HOUSE_2_WIDTH EQU $04 - -; PewterPokecenter_h map_id=58 -PEWTER_POKECENTER_HEIGHT EQU $04 -PEWTER_POKECENTER_WIDTH EQU $07 - -; MtMoon1_h map_id=59 -MT_MOON_1_HEIGHT EQU $12 -MT_MOON_1_WIDTH EQU $14 - -; MtMoon2_h map_id=60 -MT_MOON_2_HEIGHT EQU $0e -MT_MOON_2_WIDTH EQU $0e - -; MtMoon3_h map_id=61 -MT_MOON_3_HEIGHT EQU $12 -MT_MOON_3_WIDTH EQU $14 - -; CeruleanHouseTrashed_h map_id=62 -TRASHED_HOUSE_HEIGHT EQU $04 -TRASHED_HOUSE_WIDTH EQU $04 - -; CeruleanHouse1_h map_id=63 -CERULEAN_HOUSE_1_HEIGHT EQU $04 -CERULEAN_HOUSE_1_WIDTH EQU $04 - -; CeruleanPokecenter_h map_id=64 -CERULEAN_POKECENTER_HEIGHT EQU $04 -CERULEAN_POKECENTER_WIDTH EQU $07 - -; CeruleanGym_h map_id=65 -CERULEAN_GYM_HEIGHT EQU $07 -CERULEAN_GYM_WIDTH EQU $05 - -; BikeShop_h map_id=66 -BIKE_SHOP_HEIGHT EQU $04 -BIKE_SHOP_WIDTH EQU $04 - -; CeruleanMart_h map_id=67 -CERULEAN_MART_HEIGHT EQU $04 -CERULEAN_MART_WIDTH EQU $04 - -; MtMoonPokecenter_h map_id=68 -MT_MOON_POKECENTER_HEIGHT EQU $04 -MT_MOON_POKECENTER_WIDTH EQU $07 - -; Route5Gate_h map_id=70 -ROUTE_5_GATE_HEIGHT EQU $03 -ROUTE_5_GATE_WIDTH EQU $04 - -; UndergroundTunnelEntranceRoute5_h map_id=71 -PATH_ENTRANCE_ROUTE_5_HEIGHT EQU $04 -PATH_ENTRANCE_ROUTE_5_WIDTH EQU $04 - -; DayCareM_h map_id=72 -DAYCAREM_HEIGHT EQU $04 -DAYCAREM_WIDTH EQU $04 - -; Route6Gate_h map_id=73 -ROUTE_6_GATE_HEIGHT EQU $03 -ROUTE_6_GATE_WIDTH EQU $04 - -; UndergroundTunnelEntranceRoute6_h map_id=74 -PATH_ENTRANCE_ROUTE_6_HEIGHT EQU $04 -PATH_ENTRANCE_ROUTE_6_WIDTH EQU $04 - -; Route7Gate_h map_id=76 -ROUTE_7_GATE_HEIGHT EQU $04 -ROUTE_7_GATE_WIDTH EQU $03 - -; UndergroundPathEntranceRoute7_h map_id=77 -PATH_ENTRANCE_ROUTE_7_HEIGHT EQU $04 -PATH_ENTRANCE_ROUTE_7_WIDTH EQU $04 - -; UndergroundPathEntranceRoute7Copy_h map_id=78 -PATH_ENTRANCE_ROUTE_7_COPY_HEIGHT EQU $04 -PATH_ENTRANCE_ROUTE_7_COPY_WIDTH EQU $04 - -; Route8Gate_h map_id=79 -ROUTE_8_GATE_HEIGHT EQU $04 -ROUTE_8_GATE_WIDTH EQU $03 - -; UndergroundPathEntranceRoute8_h map_id=80 -PATH_ENTRANCE_ROUTE_8_HEIGHT EQU $04 -PATH_ENTRANCE_ROUTE_8_WIDTH EQU $04 - -; RockTunnelPokecenter_h map_id=81 -ROCK_TUNNEL_POKECENTER_HEIGHT EQU $04 -ROCK_TUNNEL_POKECENTER_WIDTH EQU $07 - -; RockTunnel1_h map_id=82 -ROCK_TUNNEL_1_HEIGHT EQU $12 -ROCK_TUNNEL_1_WIDTH EQU $14 - -; PowerPlant_h map_id=83 -POWER_PLANT_HEIGHT EQU $12 -POWER_PLANT_WIDTH EQU $14 - -; Route11Gate_h map_id=84 -ROUTE_11_GATE_1F_HEIGHT EQU $05 -ROUTE_11_GATE_1F_WIDTH EQU $04 - -; DiglettsCaveEntranceRoute11_h map_id=85 -DIGLETTS_CAVE_ENTRANCE_HEIGHT EQU $04 -DIGLETTS_CAVE_ENTRANCE_WIDTH EQU $04 - -; Route11GateUpstairs_h map_id=86 -ROUTE_11_GATE_2F_HEIGHT EQU $04 -ROUTE_11_GATE_2F_WIDTH EQU $04 - -; Route12Gate_h map_id=87 -ROUTE_12_GATE_1F_HEIGHT EQU $04 -ROUTE_12_GATE_1F_WIDTH EQU $05 - -; BillsHouse_h map_id=88 -BILLS_HOUSE_HEIGHT EQU $04 -BILLS_HOUSE_WIDTH EQU $04 - -; VermilionPokecenter_h map_id=89 -VERMILION_POKECENTER_HEIGHT EQU $04 -VERMILION_POKECENTER_WIDTH EQU $07 - -; FanClub_h map_id=90 -POKEMON_FAN_CLUB_HEIGHT EQU $04 -POKEMON_FAN_CLUB_WIDTH EQU $04 - -; VermilionMart_h map_id=91 -VERMILION_MART_HEIGHT EQU $04 -VERMILION_MART_WIDTH EQU $04 - -; VermilionGym_h map_id=92 -VERMILION_GYM_HEIGHT EQU $09 -VERMILION_GYM_WIDTH EQU $05 - -; VermilionHouse1_h map_id=93 -VERMILION_HOUSE_1_HEIGHT EQU $04 -VERMILION_HOUSE_1_WIDTH EQU $04 - -; VermilionDock_h map_id=94 -VERMILION_DOCK_HEIGHT EQU $06 -VERMILION_DOCK_WIDTH EQU $0e - -; SSAnne1_h map_id=95 -SS_ANNE_1_HEIGHT EQU $09 -SS_ANNE_1_WIDTH EQU $14 - -; SSAnne2_h map_id=96 -SS_ANNE_2_HEIGHT EQU $09 -SS_ANNE_2_WIDTH EQU $14 - -; SSAnne3_h map_id=97 -SS_ANNE_3_HEIGHT EQU $03 -SS_ANNE_3_WIDTH EQU $0a - -; SSAnne4_h map_id=98 -SS_ANNE_4_HEIGHT EQU $04 -SS_ANNE_4_WIDTH EQU $0f - -; SSAnne5_h map_id=99 -SS_ANNE_5_HEIGHT EQU $07 -SS_ANNE_5_WIDTH EQU $0a - -; SSAnne6_h map_id=100 -SS_ANNE_6_HEIGHT EQU $08 -SS_ANNE_6_WIDTH EQU $07 - -; SSAnne7_h map_id=101 -SS_ANNE_7_HEIGHT EQU $04 -SS_ANNE_7_WIDTH EQU $03 - -; SSAnne8_h map_id=102 -SS_ANNE_8_HEIGHT EQU $08 -SS_ANNE_8_WIDTH EQU $0c - -; SSAnne9_h map_id=103 -SS_ANNE_9_HEIGHT EQU $08 -SS_ANNE_9_WIDTH EQU $0c - -; SSAnne10_h map_id=104 -SS_ANNE_10_HEIGHT EQU $08 -SS_ANNE_10_WIDTH EQU $0c - -; VictoryRoad1_h map_id=108 -VICTORY_ROAD_1_HEIGHT EQU $09 -VICTORY_ROAD_1_WIDTH EQU $0a - -; Lance_h map_id=113 -LANCES_ROOM_HEIGHT EQU $0d -LANCES_ROOM_WIDTH EQU $0d - -; HallofFameRoom_h map_id=118 -HALL_OF_FAME_HEIGHT EQU $04 -HALL_OF_FAME_WIDTH EQU $05 - -; UndergroundPathNS_h map_id=119 -UNDERGROUND_PATH_NS_HEIGHT EQU $18 -UNDERGROUND_PATH_NS_WIDTH EQU $04 - -; Gary_h map_id=120 -CHAMPIONS_ROOM_HEIGHT EQU $04 -CHAMPIONS_ROOM_WIDTH EQU $04 - -; UndergroundPathWE_h map_id=121 -UNDERGROUND_PATH_WE_HEIGHT EQU $04 -UNDERGROUND_PATH_WE_WIDTH EQU $19 - -; CeladonMart1_h map_id=122 -CELADON_MART_1_HEIGHT EQU $04 -CELADON_MART_1_WIDTH EQU $0a - -; CeladonMart2_h map_id=123 -CELADON_MART_2_HEIGHT EQU $04 -CELADON_MART_2_WIDTH EQU $0a - -; CeladonMart3_h map_id=124 -CELADON_MART_3_HEIGHT EQU $04 -CELADON_MART_3_WIDTH EQU $0a - -; CeladonMart4_h map_id=125 -CELADON_MART_4_HEIGHT EQU $04 -CELADON_MART_4_WIDTH EQU $0a - -; CeladonMartRoof_h map_id=126 -CELADON_MART_ROOF_HEIGHT EQU $04 -CELADON_MART_ROOF_WIDTH EQU $0a - -; CeladonMartElevator_h map_id=127 -CELADON_MART_ELEVATOR_HEIGHT EQU $02 -CELADON_MART_ELEVATOR_WIDTH EQU $02 - -; CeladonMansion1_h map_id=128 -CELADON_MANSION_1_HEIGHT EQU $06 -CELADON_MANSION_1_WIDTH EQU $04 - -; CeladonMansion2_h map_id=129 -CELADON_MANSION_2_HEIGHT EQU $06 -CELADON_MANSION_2_WIDTH EQU $04 - -; CeladonMansion3_h map_id=130 -CELADON_MANSION_3_HEIGHT EQU $06 -CELADON_MANSION_3_WIDTH EQU $04 - -; CeladonMansion4_h map_id=131 -CELADON_MANSION_4_HEIGHT EQU $06 -CELADON_MANSION_4_WIDTH EQU $04 - -; CeladonMansion5_h map_id=132 -CELADON_MANSION_5_HEIGHT EQU $04 -CELADON_MANSION_5_WIDTH EQU $04 - -; CeladonPokecenter_h map_id=133 -CELADON_POKECENTER_HEIGHT EQU $04 -CELADON_POKECENTER_WIDTH EQU $07 - -; CeladonGym_h map_id=134 -CELADON_GYM_HEIGHT EQU $09 -CELADON_GYM_WIDTH EQU $05 - -; CeladonGameCorner_h map_id=135 -GAME_CORNER_HEIGHT EQU $09 -GAME_CORNER_WIDTH EQU $0a - -; CeladonMart5_h map_id=136 -CELADON_MART_5_HEIGHT EQU $04 -CELADON_MART_5_WIDTH EQU $0a - -; CeladonPrizeRoom_h map_id=137 -CELADON_PRIZE_ROOM_HEIGHT EQU $04 -CELADON_PRIZE_ROOM_WIDTH EQU $05 - -; CeladonDiner_h map_id=138 -CELADON_DINER_HEIGHT EQU $04 -CELADON_DINER_WIDTH EQU $05 - -; CeladonHouse_h map_id=139 -CELADON_HOUSE_HEIGHT EQU $04 -CELADON_HOUSE_WIDTH EQU $04 - -; CeladonHotel_h map_id=140 -CELADON_HOTEL_HEIGHT EQU $04 -CELADON_HOTEL_WIDTH EQU $07 - -; LavenderPokecenter_h map_id=141 -LAVENDER_POKECENTER_HEIGHT EQU $04 -LAVENDER_POKECENTER_WIDTH EQU $07 - -; PokemonTower1_h map_id=142 -POKEMONTOWER_1_HEIGHT EQU $09 -POKEMONTOWER_1_WIDTH EQU $0a - -; PokemonTower2_h map_id=143 -POKEMONTOWER_2_HEIGHT EQU $09 -POKEMONTOWER_2_WIDTH EQU $0a - -; PokemonTower3_h map_id=144 -POKEMONTOWER_3_HEIGHT EQU $09 -POKEMONTOWER_3_WIDTH EQU $0a - -; PokemonTower4_h map_id=145 -POKEMONTOWER_4_HEIGHT EQU $09 -POKEMONTOWER_4_WIDTH EQU $0a - -; PokemonTower5_h map_id=146 -POKEMONTOWER_5_HEIGHT EQU $09 -POKEMONTOWER_5_WIDTH EQU $0a - -; PokemonTower6_h map_id=147 -POKEMONTOWER_6_HEIGHT EQU $09 -POKEMONTOWER_6_WIDTH EQU $0a - -; PokemonTower7_h map_id=148 -POKEMONTOWER_7_HEIGHT EQU $09 -POKEMONTOWER_7_WIDTH EQU $0a - -; LavenderHouse1_h map_id=149 -LAVENDER_HOUSE_1_HEIGHT EQU $04 -LAVENDER_HOUSE_1_WIDTH EQU $04 - -; LavenderMart_h map_id=150 -LAVENDER_MART_HEIGHT EQU $04 -LAVENDER_MART_WIDTH EQU $04 - -; LavenderHouse2_h map_id=151 -LAVENDER_HOUSE_2_HEIGHT EQU $04 -LAVENDER_HOUSE_2_WIDTH EQU $04 - -; FuchsiaMart_h map_id=152 -FUCHSIA_MART_HEIGHT EQU $04 -FUCHSIA_MART_WIDTH EQU $04 - -; FuchsiaHouse1_h map_id=153 -FUCHSIA_HOUSE_1_HEIGHT EQU $04 -FUCHSIA_HOUSE_1_WIDTH EQU $04 - -; FuchsiaPokecenter_h map_id=154 -FUCHSIA_POKECENTER_HEIGHT EQU $04 -FUCHSIA_POKECENTER_WIDTH EQU $07 - -; FuchsiaHouse2_h map_id=155 -FUCHSIA_HOUSE_2_HEIGHT EQU $04 -FUCHSIA_HOUSE_2_WIDTH EQU $05 - -; SafariZoneEntrance_h map_id=156 -SAFARI_ZONE_ENTRANCE_HEIGHT EQU $03 -SAFARI_ZONE_ENTRANCE_WIDTH EQU $04 - -; FuchsiaGym_h map_id=157 -FUCHSIA_GYM_HEIGHT EQU $09 -FUCHSIA_GYM_WIDTH EQU $05 - -; FuchsiaMeetingRoom_h map_id=158 -FUCHSIA_MEETING_ROOM_HEIGHT EQU $04 -FUCHSIA_MEETING_ROOM_WIDTH EQU $07 - -; SeafoamIslands2_h map_id=159 -SEAFOAM_ISLANDS_2_HEIGHT EQU $09 -SEAFOAM_ISLANDS_2_WIDTH EQU $0f - -; SeafoamIslands3_h map_id=160 -SEAFOAM_ISLANDS_3_HEIGHT EQU $09 -SEAFOAM_ISLANDS_3_WIDTH EQU $0f - -; SeafoamIslands4_h map_id=161 -SEAFOAM_ISLANDS_4_HEIGHT EQU $09 -SEAFOAM_ISLANDS_4_WIDTH EQU $0f - -; SeafoamIslands5_h map_id=162 -SEAFOAM_ISLANDS_5_HEIGHT EQU $09 -SEAFOAM_ISLANDS_5_WIDTH EQU $0f - -; VermilionHouse2_h map_id=163 -VERMILION_HOUSE_2_HEIGHT EQU $04 -VERMILION_HOUSE_2_WIDTH EQU $04 - -; FuchsiaHouse3_h map_id=164 -FUCHSIA_HOUSE_3_HEIGHT EQU $04 -FUCHSIA_HOUSE_3_WIDTH EQU $04 - -; Mansion1_h map_id=165 -MANSION_1_HEIGHT EQU $0e -MANSION_1_WIDTH EQU $0f - -; CinnabarGym_h map_id=166 -CINNABAR_GYM_HEIGHT EQU $09 -CINNABAR_GYM_WIDTH EQU $0a - -; Lab1_h map_id=167 -CINNABAR_LAB_1_HEIGHT EQU $04 -CINNABAR_LAB_1_WIDTH EQU $09 - -; Lab2_h map_id=168 -CINNABAR_LAB_2_HEIGHT EQU $04 -CINNABAR_LAB_2_WIDTH EQU $04 - -; Lab3_h map_id=169 -CINNABAR_LAB_3_HEIGHT EQU $04 -CINNABAR_LAB_3_WIDTH EQU $04 - -; Lab4_h map_id=170 -CINNABAR_LAB_4_HEIGHT EQU $04 -CINNABAR_LAB_4_WIDTH EQU $04 - -; CinnabarPokecenter_h map_id=171 -CINNABAR_POKECENTER_HEIGHT EQU $04 -CINNABAR_POKECENTER_WIDTH EQU $07 - -; CinnabarMart_h map_id=172 -CINNABAR_MART_HEIGHT EQU $04 -CINNABAR_MART_WIDTH EQU $04 - -; IndigoPlateauLobby_h map_id=174 -INDIGO_PLATEAU_LOBBY_HEIGHT EQU $06 -INDIGO_PLATEAU_LOBBY_WIDTH EQU $08 - -; CopycatsHouse1F_h map_id=175 -COPYCATS_HOUSE_1F_HEIGHT EQU $04 -COPYCATS_HOUSE_1F_WIDTH EQU $04 - -; CopycatsHouse2F_h map_id=176 -COPYCATS_HOUSE_2F_HEIGHT EQU $04 -COPYCATS_HOUSE_2F_WIDTH EQU $04 - -; FightingDojo_h map_id=177 -FIGHTING_DOJO_HEIGHT EQU $06 -FIGHTING_DOJO_WIDTH EQU $05 - -; SaffronGym_h map_id=178 -SAFFRON_GYM_HEIGHT EQU $09 -SAFFRON_GYM_WIDTH EQU $0a - -; SaffronHouse1_h map_id=179 -SAFFRON_HOUSE_1_HEIGHT EQU $04 -SAFFRON_HOUSE_1_WIDTH EQU $04 - -; SaffronMart_h map_id=180 -SAFFRON_MART_HEIGHT EQU $04 -SAFFRON_MART_WIDTH EQU $04 - -; SilphCo1_h map_id=181 -SILPH_CO_1F_HEIGHT EQU $09 -SILPH_CO_1F_WIDTH EQU $0f - -; SaffronPokecenter_h map_id=182 -SAFFRON_POKECENTER_HEIGHT EQU $04 -SAFFRON_POKECENTER_WIDTH EQU $07 - -; SaffronHouse2_h map_id=183 -SAFFRON_HOUSE_2_HEIGHT EQU $04 -SAFFRON_HOUSE_2_WIDTH EQU $04 - -; Route15Gate1F_h map_id=184 -ROUTE_15_GATE_1F_HEIGHT EQU $05 -ROUTE_15_GATE_1F_WIDTH EQU $04 - -; Route15GateUpstairs_h map_id=185 -ROUTE_15_GATE_2F_HEIGHT EQU $04 -ROUTE_15_GATE_2F_WIDTH EQU $04 - -; Route16GateMap_h map_id=186 -ROUTE_16_GATE_1F_HEIGHT EQU $07 -ROUTE_16_GATE_1F_WIDTH EQU $04 - -; Route16GateUpstairs_h map_id=187 -ROUTE_16_GATE_2F_HEIGHT EQU $04 -ROUTE_16_GATE_2F_WIDTH EQU $04 - -; Route16House_h map_id=188 -ROUTE_16_HOUSE_HEIGHT EQU $04 -ROUTE_16_HOUSE_WIDTH EQU $04 - -; Route12House_h map_id=189 -ROUTE_12_HOUSE_HEIGHT EQU $04 -ROUTE_12_HOUSE_WIDTH EQU $04 - -; Route18Gate_h map_id=190 -ROUTE_18_GATE_1F_HEIGHT EQU $05 -ROUTE_18_GATE_1F_WIDTH EQU $04 - -; Route18GateHeader_h map_id=191 -ROUTE_18_GATE_2F_HEIGHT EQU $04 -ROUTE_18_GATE_2F_WIDTH EQU $04 - -; SeafoamIslands1_h map_id=192 -SEAFOAM_ISLANDS_1_HEIGHT EQU $09 -SEAFOAM_ISLANDS_1_WIDTH EQU $0f - -; Route22Gate_h map_id=193 -ROUTE_22_GATE_HEIGHT EQU $04 -ROUTE_22_GATE_WIDTH EQU $05 - -; VictoryRoad2_h map_id=194 -VICTORY_ROAD_2_HEIGHT EQU $09 -VICTORY_ROAD_2_WIDTH EQU $0f - -; Route12GateUpstairs_h map_id=195 -ROUTE_12_GATE_2F_HEIGHT EQU $04 -ROUTE_12_GATE_2F_WIDTH EQU $04 - -; VermilionHouse3_h map_id=196 -VERMILION_HOUSE_3_HEIGHT EQU $04 -VERMILION_HOUSE_3_WIDTH EQU $04 - -; DiglettsCave_h map_id=197 -DIGLETTS_CAVE_HEIGHT EQU $12 -DIGLETTS_CAVE_WIDTH EQU $14 - -; VictoryRoad3_h map_id=198 -VICTORY_ROAD_3_HEIGHT EQU $09 -VICTORY_ROAD_3_WIDTH EQU $0f - -; RocketHideout1_h map_id=199 -ROCKET_HIDEOUT_1_HEIGHT EQU $0e -ROCKET_HIDEOUT_1_WIDTH EQU $0f - -; RocketHideout2_h map_id=200 -ROCKET_HIDEOUT_2_HEIGHT EQU $0e -ROCKET_HIDEOUT_2_WIDTH EQU $0f - -; RocketHideout3_h map_id=201 -ROCKET_HIDEOUT_3_HEIGHT EQU $0e -ROCKET_HIDEOUT_3_WIDTH EQU $0f - -; RocketHideout4_h map_id=202 -ROCKET_HIDEOUT_4_HEIGHT EQU $0c -ROCKET_HIDEOUT_4_WIDTH EQU $0f - -; RocketHideoutElevator_h map_id=203 -ROCKET_HIDEOUT_ELEVATOR_HEIGHT EQU $04 -ROCKET_HIDEOUT_ELEVATOR_WIDTH EQU $03 - -; SilphCo2_h map_id=207 -SILPH_CO_2F_HEIGHT EQU $09 -SILPH_CO_2F_WIDTH EQU $0f - -; SilphCo3_h map_id=208 -SILPH_CO_3F_HEIGHT EQU $09 -SILPH_CO_3F_WIDTH EQU $0f - -; SilphCo4_h map_id=209 -SILPH_CO_4F_HEIGHT EQU $09 -SILPH_CO_4F_WIDTH EQU $0f - -; SilphCo5_h map_id=210 -SILPH_CO_5F_HEIGHT EQU $09 -SILPH_CO_5F_WIDTH EQU $0f - -; SilphCo6_h map_id=211 -SILPH_CO_6F_HEIGHT EQU $09 -SILPH_CO_6F_WIDTH EQU $0d - -; SilphCo7_h map_id=212 -SILPH_CO_7F_HEIGHT EQU $09 -SILPH_CO_7F_WIDTH EQU $0d - -; SilphCo8_h map_id=213 -SILPH_CO_8F_HEIGHT EQU $09 -SILPH_CO_8F_WIDTH EQU $0d - -; Mansion2_h map_id=214 -MANSION_2_HEIGHT EQU $0e -MANSION_2_WIDTH EQU $0f - -; Mansion3_h map_id=215 -MANSION_3_HEIGHT EQU $09 -MANSION_3_WIDTH EQU $0f - -; Mansion4_h map_id=216 -MANSION_4_HEIGHT EQU $0e -MANSION_4_WIDTH EQU $0f - -; SafariZoneEast_h map_id=217 -SAFARI_ZONE_EAST_HEIGHT EQU $0d -SAFARI_ZONE_EAST_WIDTH EQU $0f - -; SafariZoneNorth_h map_id=218 -SAFARI_ZONE_NORTH_HEIGHT EQU $12 -SAFARI_ZONE_NORTH_WIDTH EQU $14 - -; SafariZoneWest_h map_id=219 -SAFARI_ZONE_WEST_HEIGHT EQU $0d -SAFARI_ZONE_WEST_WIDTH EQU $0f - -; SafariZoneCenter_h map_id=220 -SAFARI_ZONE_CENTER_HEIGHT EQU $0d -SAFARI_ZONE_CENTER_WIDTH EQU $0f - -; SafariZoneRestHouse1_h map_id=221 -SAFARI_ZONE_REST_HOUSE_1_HEIGHT EQU $04 -SAFARI_ZONE_REST_HOUSE_1_WIDTH EQU $04 - -; SafariZoneSecretHouse_h map_id=222 -SAFARI_ZONE_SECRET_HOUSE_HEIGHT EQU $04 -SAFARI_ZONE_SECRET_HOUSE_WIDTH EQU $04 - -; SafariZoneRestHouse2_h map_id=223 -SAFARI_ZONE_REST_HOUSE_2_HEIGHT EQU $04 -SAFARI_ZONE_REST_HOUSE_2_WIDTH EQU $04 - -; SafariZoneRestHouse3_h map_id=224 -SAFARI_ZONE_REST_HOUSE_3_HEIGHT EQU $04 -SAFARI_ZONE_REST_HOUSE_3_WIDTH EQU $04 - -; SafariZoneRestHouse4_h map_id=225 -SAFARI_ZONE_REST_HOUSE_4_HEIGHT EQU $04 -SAFARI_ZONE_REST_HOUSE_4_WIDTH EQU $04 - -; UnknownDungeon2_h map_id=226 -UNKNOWN_DUNGEON_2_HEIGHT EQU $09 -UNKNOWN_DUNGEON_2_WIDTH EQU $0f - -; UnknownDungeon3_h map_id=227 -UNKNOWN_DUNGEON_3_HEIGHT EQU $09 -UNKNOWN_DUNGEON_3_WIDTH EQU $0f - -; UnknownDungeon1_h map_id=228 -UNKNOWN_DUNGEON_1_HEIGHT EQU $09 -UNKNOWN_DUNGEON_1_WIDTH EQU $0f - -; NameRater_h map_id=229 -NAME_RATERS_HOUSE_HEIGHT EQU $04 -NAME_RATERS_HOUSE_WIDTH EQU $04 - -; CeruleanHouse2_h map_id=230 -CERULEAN_HOUSE_2_HEIGHT EQU $04 -CERULEAN_HOUSE_2_WIDTH EQU $04 - -; RockTunnel2_h map_id=232 -ROCK_TUNNEL_2_HEIGHT EQU $12 -ROCK_TUNNEL_2_WIDTH EQU $14 - -; SilphCo9_h map_id=233 -SILPH_CO_9F_HEIGHT EQU $09 -SILPH_CO_9F_WIDTH EQU $0d - -; SilphCo10_h map_id=234 -SILPH_CO_10F_HEIGHT EQU $09 -SILPH_CO_10F_WIDTH EQU $08 - -; SilphCo11_h map_id=235 -SILPH_CO_11F_HEIGHT EQU $09 -SILPH_CO_11F_WIDTH EQU $09 - -; SilphCoElevator_h map_id=236 -SILPH_CO_ELEVATOR_HEIGHT EQU $02 -SILPH_CO_ELEVATOR_WIDTH EQU $02 - -; TradeCenter_h map_id=239 -TRADE_CENTER_HEIGHT EQU $04 -TRADE_CENTER_WIDTH EQU $05 - -; Colosseum_h map_id=240 -COLOSSEUM_HEIGHT EQU $04 -COLOSSEUM_WIDTH EQU $05 - -; Lorelei_h map_id=245 -LORELEIS_ROOM_HEIGHT EQU $06 -LORELEIS_ROOM_WIDTH EQU $05 - -; Bruno_h map_id=246 -BRUNOS_ROOM_HEIGHT EQU $06 -BRUNOS_ROOM_WIDTH EQU $05 - -; Agatha_h map_id=247 -AGATHAS_ROOM_HEIGHT EQU $06 -AGATHAS_ROOM_WIDTH EQU $05 - -BEACH_HOUSE_HEIGHT EQU 4 -BEACH_HOUSE_WIDTH EQU 7 diff --git a/data/hide_show_data.asm b/data/hide_show_data.asm index 4e3fe2c2..71a76e47 100755 --- a/data/hide_show_data.asm +++ b/data/hide_show_data.asm @@ -343,7 +343,7 @@ MapHS2D: ; c925 (3:4925) MapHS34: ; c92b (3:492b) db MUSEUM_1F,$05,Show MapHS3F: ; c92e (3:492e) ; bulbasaur adoption house - db CERULEAN_HOUSE,$02,Show + db CERULEAN_HOUSE_1,$02,Show MapHSE4: ; c931 (3:4931) db UNKNOWN_DUNGEON_1,$01,Show db UNKNOWN_DUNGEON_1,$02,Show diff --git a/data/mapObjects/ceruleancity.asm b/data/mapObjects/ceruleancity.asm index 8c429695..248a8e83 100755 --- a/data/mapObjects/ceruleancity.asm +++ b/data/mapObjects/ceruleancity.asm @@ -3,15 +3,15 @@ CeruleanCityObject: ; 0x18786 (size=170) db $a ; warps db $b, $1b, $0, TRASHED_HOUSE - db $f, $d, $0, CERULEAN_HOUSE + db $f, $d, $0, CERULEAN_HOUSE_1 db $11, $13, $0, CERULEAN_POKECENTER db $13, $1e, $0, CERULEAN_GYM db $19, $d, $0, BIKE_SHOP db $19, $19, $0, CERULEAN_MART db $b, $4, $0, UNKNOWN_DUNGEON_1 db $9, $1b, $2, TRASHED_HOUSE - db $b, $9, $1, CERULEAN_HOUSE_3 - db $9, $9, $0, CERULEAN_HOUSE_3 + db $b, $9, $1, CERULEAN_HOUSE_2 + db $9, $9, $0, CERULEAN_HOUSE_2 db $6 ; signs db $13, $17, $c ; CeruleanCityText12 @@ -36,12 +36,12 @@ CeruleanCityObject: ; 0x18786 (size=170) ; warp-to EVENT_DISP CERULEAN_CITY_WIDTH, $b, $1b ; TRASHED_HOUSE - EVENT_DISP CERULEAN_CITY_WIDTH, $f, $d ; CERULEAN_HOUSE + EVENT_DISP CERULEAN_CITY_WIDTH, $f, $d ; CERULEAN_HOUSE_1 EVENT_DISP CERULEAN_CITY_WIDTH, $11, $13 ; CERULEAN_POKECENTER EVENT_DISP CERULEAN_CITY_WIDTH, $13, $1e ; CERULEAN_GYM EVENT_DISP CERULEAN_CITY_WIDTH, $19, $d ; BIKE_SHOP EVENT_DISP CERULEAN_CITY_WIDTH, $19, $19 ; CERULEAN_MART EVENT_DISP CERULEAN_CITY_WIDTH, $b, $4 ; UNKNOWN_DUNGEON_1 EVENT_DISP CERULEAN_CITY_WIDTH, $9, $1b ; TRASHED_HOUSE - EVENT_DISP CERULEAN_CITY_WIDTH, $b, $9 ; CERULEAN_HOUSE_3 - EVENT_DISP CERULEAN_CITY_WIDTH, $9, $9 ; CERULEAN_HOUSE_3 + EVENT_DISP CERULEAN_CITY_WIDTH, $b, $9 ; CERULEAN_HOUSE_2 + EVENT_DISP CERULEAN_CITY_WIDTH, $9, $9 ; CERULEAN_HOUSE_2 diff --git a/data/town_map_entries.asm b/data/town_map_entries.asm index bb0f31ff..865f14d8 100755 --- a/data/town_map_entries.asm +++ b/data/town_map_entries.asm @@ -94,7 +94,7 @@ InternalMapEntries: ; 7140b (1c:540b) IMAP SAFARI_ZONE_REST_HOUSE_4, $8,$C,SafariZoneName IMAP UNKNOWN_DUNGEON_1, $9,$1,CeruleanCaveName IMAP NAME_RATERS_HOUSE, $E,$5,LavenderTownName - IMAP CERULEAN_HOUSE_3, $A,$2,CeruleanCityName + IMAP CERULEAN_HOUSE_2, $A,$2,CeruleanCityName IMAP ROCK_TUNNEL_2, $E,$3,RockTunnelName IMAP SILPH_CO_ELEVATOR, $A,$5,SilphCoName IMAP AGATHAS_ROOM, $0,$2,PokemonLeagueName -- cgit v1.2.3 From c1b46c9bca3039140f052f75af9993ac8b67d64f Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Thu, 26 May 2016 11:34:43 -0400 Subject: No more dr in map header pointer files --- data/map_header_banks.asm | 499 +++++++++++++++++++++---------------------- data/map_header_pointers.asm | 499 +++++++++++++++++++++---------------------- 2 files changed, 498 insertions(+), 500 deletions(-) diff --git a/data/map_header_banks.asm b/data/map_header_banks.asm index 29357dd6..cf97aebb 100644 --- a/data/map_header_banks.asm +++ b/data/map_header_banks.asm @@ -1,252 +1,251 @@ ; see also MapHeaderPointers MapHeaderBanks:: ; fc3e4 (3f:43e4) - dr $fc3e4,$fc4dd - ;db BANK(PalletTown_h) ;PALLET_TOWN - ;db BANK(ViridianCity_h) ; VIRIDIAN_CITY - ;db BANK(PewterCity_h) ; PEWTER_CITY - ;db BANK(CeruleanCity_h) ; CERULEAN_CITY - ;db BANK(LavenderTown_h) ; LAVENDER_TOWN - ;db BANK(VermilionCity_h) ; VERMILION_CITY - ;db BANK(CeladonCity_h) ; CELADON_CITY - ;db BANK(FuchsiaCity_h) ; FUCHSIA_CITY - ;db BANK(CinnabarIsland_h) ; CINNABAR_ISLAND - ;db BANK(IndigoPlateau_h) ; INDIGO_PLATEAU - ;db BANK(SaffronCity_h) ; SAFFRON_CITY - ;db $1 ; unused - ;db BANK(Route1_h) ; ROUTE_1 - ;db BANK(Route2_h) ; ROUTE_2 - ;db BANK(Route3_h) ; ROUTE_3 - ;db BANK(Route4_h) ; ROUTE_4 - ;db BANK(Route5_h) ; ROUTE_5 - ;db BANK(Route6_h) ; ROUTE_6 - ;db BANK(Route7_h) ; ROUTE_7 - ;db BANK(Route8_h) ; ROUTE_8 - ;db BANK(Route9_h) ; ROUTE_9 - ;db BANK(Route10_h) ; ROUTE_10 - ;db BANK(Route11_h) ; ROUTE_11 - ;db BANK(Route12_h) ; ROUTE_12 - ;db BANK(Route13_h) ; ROUTE_13 - ;db BANK(Route14_h) ; ROUTE_14 - ;db BANK(Route15_h) ; ROUTE_15 - ;db BANK(Route16_h) ; ROUTE_16 - ;db BANK(Route17_h) ; ROUTE_17 - ;db BANK(Route18_h) ; ROUTE_18 - ;db BANK(Route19_h) ; ROUTE_19 - ;db BANK(Route20_h) ; ROUTE_20 - ;db BANK(Route21_h) ; ROUTE_21 - ;db BANK(Route22_h) ; ROUTE_22 - ;db BANK(Route23_h) ; ROUTE_23 - ;db BANK(Route24_h) ; ROUTE_24 - ;db BANK(Route25_h) ; ROUTE_25 - ;db BANK(RedsHouse1F_h) - ;db BANK(RedsHouse2F_h) - ;db BANK(BluesHouse_h) - ;db BANK(OaksLab_h) - ;db BANK(ViridianPokecenter_h) - ;db BANK(ViridianMart_h) - ;db BANK(School_h) - ;db BANK(ViridianHouse_h) - ;db BANK(ViridianGym_h) - ;db BANK(DiglettsCaveRoute2_h) - ;db BANK(ViridianForestExit_h) - ;db BANK(Route2House_h) - ;db BANK(Route2Gate_h) - ;db BANK(ViridianForestEntrance_h) - ;db BANK(ViridianForest_h) - ;db BANK(Museum1F_h) - ;db BANK(Museum2F_h) - ;db BANK(PewterGym_h) - ;db BANK(PewterHouse1_h) - ;db BANK(PewterMart_h) - ;db BANK(PewterHouse2_h) - ;db BANK(PewterPokecenter_h) - ;db BANK(MtMoon1_h) - ;db BANK(MtMoon2_h) - ;db BANK(MtMoon3_h) - ;db BANK(CeruleanHouseTrashed_h) - ;db BANK(CeruleanHouse1_h) - ;db BANK(CeruleanPokecenter_h) - ;db BANK(CeruleanGym_h) - ;db BANK(BikeShop_h) - ;db BANK(CeruleanMart_h) - ;db BANK(MtMoonPokecenter_h) - ;db BANK(CeruleanHouseTrashed_h) - ;db BANK(Route5Gate_h) - ;db BANK(UndergroundPathEntranceRoute5_h) - ;db BANK(DayCareM_h) - ;db BANK(Route6Gate_h) - ;db BANK(UndergroundPathEntranceRoute6_h) - ;db BANK(UndergroundPathEntranceRoute6_h) ;FREEZE - ;db BANK(Route7Gate_h) - ;db BANK(UndergroundPathEntranceRoute7_h) - ;db BANK(UndergroundPathEntranceRoute7Copy_h) ;FREEZE - ;db BANK(Route8Gate_h) - ;db BANK(UndergroundPathEntranceRoute8_h) - ;db BANK(RockTunnelPokecenter_h) - ;db BANK(RockTunnel1_h) - ;db BANK(PowerPlant_h) - ;db BANK(Route11Gate_h) - ;db BANK(DiglettsCaveEntranceRoute11_h) - ;db BANK(Route11GateUpstairs_h) - ;db BANK(Route12Gate_h) - ;db BANK(BillsHouse_h) - ;db BANK(VermilionPokecenter_h) - ;db BANK(FanClub_h) - ;db BANK(VermilionMart_h) - ;db BANK(VermilionGym_h) - ;db BANK(VermilionHouse1_h) - ;db BANK(VermilionDock_h) - ;db BANK(SSAnne1_h) - ;db BANK(SSAnne2_h) - ;db BANK(SSAnne3_h) - ;db BANK(SSAnne4_h) - ;db BANK(SSAnne5_h) - ;db BANK(SSAnne6_h) - ;db BANK(SSAnne7_h) - ;db BANK(SSAnne8_h) - ;db BANK(SSAnne9_h) - ;db BANK(SSAnne10_h) - ;db $1D ;unused - ;db $1D ;unused - ;db $1D ;unused - ;db BANK(VictoryRoad1_h) - ;db $1D ;unused - ;db $1D ;unused - ;db $1D ;unused - ;db $1D ;unused - ;db BANK(Lance_h) - ;db $1D ;unused - ;db $1D ;unused - ;db $1D ;unused - ;db $1D ;unused - ;db BANK(HallofFameRoom_h) - ;db BANK(UndergroundPathNS_h) - ;db BANK(Gary_h) - ;db BANK(UndergroundPathWE_h) - ;db BANK(CeladonMart1_h) - ;db BANK(CeladonMart2_h) - ;db BANK(CeladonMart3_h) - ;db BANK(CeladonMart4_h) - ;db BANK(CeladonMartRoof_h) - ;db BANK(CeladonMartElevator_h) - ;db BANK(CeladonMansion1_h) - ;db BANK(CeladonMansion2_h) - ;db BANK(CeladonMansion3_h) - ;db BANK(CeladonMansion4_h) - ;db BANK(CeladonMansion5_h) - ;db BANK(CeladonPokecenter_h) - ;db BANK(CeladonGym_h) - ;db BANK(CeladonGameCorner_h) - ;db BANK(CeladonMart5_h) - ;db BANK(CeladonPrizeRoom_h) - ;db BANK(CeladonDiner_h) - ;db BANK(CeladonHouse_h) - ;db BANK(CeladonHotel_h) - ;db BANK(LavenderPokecenter_h) - ;db BANK(PokemonTower1_h) - ;db BANK(PokemonTower2_h) - ;db BANK(PokemonTower3_h) - ;db BANK(PokemonTower4_h) - ;db BANK(PokemonTower5_h) - ;db BANK(PokemonTower6_h) - ;db BANK(PokemonTower7_h) - ;db BANK(LavenderHouse1_h) - ;db BANK(LavenderMart_h) - ;db BANK(LavenderHouse2_h) - ;db BANK(FuchsiaMart_h) - ;db BANK(FuchsiaHouse1_h) - ;db BANK(FuchsiaPokecenter_h) - ;db BANK(FuchsiaHouse2_h) - ;db BANK(SafariZoneEntrance_h) - ;db BANK(FuchsiaGym_h) - ;db BANK(FuchsiaMeetingRoom_h) - ;db BANK(SeafoamIslands2_h) - ;db BANK(SeafoamIslands3_h) - ;db BANK(SeafoamIslands4_h) - ;db BANK(SeafoamIslands5_h) - ;db BANK(VermilionHouse2_h) - ;db BANK(FuchsiaHouse3_h) - ;db BANK(Mansion1_h) - ;db BANK(CinnabarGym_h) - ;db BANK(Lab1_h) - ;db BANK(Lab2_h) - ;db BANK(Lab3_h) - ;db BANK(Lab4_h) - ;db BANK(CinnabarPokecenter_h) - ;db BANK(CinnabarMart_h) - ;db BANK(CinnabarMart_h) - ;db BANK(IndigoPlateauLobby_h) - ;db BANK(CopycatsHouse1F_h) - ;db BANK(CopycatsHouse2F_h) - ;db BANK(FightingDojo_h) - ;db BANK(SaffronGym_h) - ;db BANK(SaffronHouse1_h) - ;db BANK(SaffronMart_h) - ;db BANK(SilphCo1_h) - ;db BANK(SaffronPokecenter_h) - ;db BANK(SaffronHouse2_h) - ;db BANK(Route15Gate_h) - ;db BANK(Route15GateUpstairs_h) - ;db BANK(Route16Gate_h) - ;db BANK(Route16GateUpstairs_h) - ;db BANK(Route16House_h) - ;db BANK(Route12House_h) - ;db BANK(Route18Gate_h) - ;db BANK(Route18GateUpstairs_h) - ;db BANK(SeafoamIslands1_h) - ;db BANK(Route22Gate_h) - ;db BANK(VictoryRoad2_h) - ;db BANK(Route12GateUpstairs_h) - ;db BANK(VermilionHouse3_h) - ;db BANK(DiglettsCave_h) - ;db BANK(VictoryRoad3_h) - ;db BANK(RocketHideout1_h) - ;db BANK(RocketHideout2_h) - ;db BANK(RocketHideout3_h) - ;db BANK(RocketHideout4_h) - ;db BANK(RocketHideoutElevator_h) - ;db $01 - ;db $01 - ;db $01 - ;db BANK(SilphCo2_h) - ;db BANK(SilphCo3_h) - ;db BANK(SilphCo4_h) - ;db BANK(SilphCo5_h) - ;db BANK(SilphCo6_h) - ;db BANK(SilphCo7_h) - ;db BANK(SilphCo8_h) - ;db BANK(Mansion2_h) - ;db BANK(Mansion3_h) - ;db BANK(Mansion4_h) - ;db BANK(SafariZoneEast_h) - ;db BANK(SafariZoneNorth_h) - ;db BANK(SafariZoneWest_h) - ;db BANK(SafariZoneCenter_h) - ;db BANK(SafariZoneRestHouse1_h) - ;db BANK(SafariZoneSecretHouse_h) - ;db BANK(SafariZoneRestHouse2_h) - ;db BANK(SafariZoneRestHouse3_h) - ;db BANK(SafariZoneRestHouse4_h) - ;db BANK(UnknownDungeon2_h) - ;db BANK(UnknownDungeon3_h) - ;db BANK(UnknownDungeon1_h) - ;db BANK(NameRater_h) - ;db BANK(CeruleanHouse2_h) - ;db $01 - ;db BANK(RockTunnel2_h) - ;db BANK(SilphCo9_h) - ;db BANK(SilphCo10_h) - ;db BANK(SilphCo11_h) - ;db BANK(SilphCoElevator_h) - ;db $11 - ;db $11 - ;db BANK(BattleCenterM_h) - ;db BANK(TradeCenterM_h) - ;db $11 - ;db $11 - ;db $11 - ;db $11 - ;db BANK(Lorelei_h) - ;db BANK(Bruno_h) - ;db BANK(Agatha_h) - ;db BANK(BeachHouse_h) + db $06 ; db BANK(PalletTown_h) ;PALLET_TOWN + db $06 ; db BANK(ViridianCity_h) ; VIRIDIAN_CITY + db $06 ; db BANK(PewterCity_h) ; PEWTER_CITY + db $06 ; db BANK(CeruleanCity_h) ; CERULEAN_CITY + db $11 ; db BANK(LavenderTown_h) ; LAVENDER_TOWN + db $06 ; db BANK(VermilionCity_h) ; VERMILION_CITY + db BANK(CeladonCity_h) ; CELADON_CITY + db $06 ; db BANK(FuchsiaCity_h) ; FUCHSIA_CITY + db $07 ; db BANK(CinnabarIsland_h) ; CINNABAR_ISLAND + db $14 ; db BANK(IndigoPlateau_h) ; INDIGO_PLATEAU + db BANK(SaffronCity_h) ; SAFFRON_CITY + db $01 ; db $1 ; unused + db $07 ; db BANK(Route1_h) ; ROUTE_1 + db $15 ; db BANK(Route2_h) ; ROUTE_2 + db $15 ; db BANK(Route3_h) ; ROUTE_3 + db $15 ; db BANK(Route4_h) ; ROUTE_4 + db BANK(Route5_h) ; ROUTE_5 + db $16 ; db BANK(Route6_h) ; ROUTE_6 + db BANK(Route7_h) ; ROUTE_7 + db $16 ; db BANK(Route8_h) ; ROUTE_8 + db $15 ; db BANK(Route9_h) ; ROUTE_9 + db $16 ; db BANK(Route10_h) ; ROUTE_10 + db $16 ; db BANK(Route11_h) ; ROUTE_11 + db $16 ; db BANK(Route12_h) ; ROUTE_12 + db $15 ; db BANK(Route13_h) ; ROUTE_13 + db $15 ; db BANK(Route14_h) ; ROUTE_14 + db $16 ; db BANK(Route15_h) ; ROUTE_15 + db $16 ; db BANK(Route16_h) ; ROUTE_16 + db $15 ; db BANK(Route17_h) ; ROUTE_17 + db $16 ; db BANK(Route18_h) ; ROUTE_18 + db $15 ; db BANK(Route19_h) ; ROUTE_19 + db $14 ; db BANK(Route20_h) ; ROUTE_20 + db $15 ; db BANK(Route21_h) ; ROUTE_21 + db $14 ; db BANK(Route22_h) ; ROUTE_22 + db $14 ; db BANK(Route23_h) ; ROUTE_23 + db $14 ; db BANK(Route24_h) ; ROUTE_24 + db $14 ; db BANK(Route25_h) ; ROUTE_25 + db $12 ; db BANK(RedsHouse1F_h) + db $17 ; db BANK(RedsHouse2F_h) + db $06 ; db BANK(BluesHouse_h) + db $07 ; db BANK(OaksLab_h) + db $11 ; db BANK(ViridianPokecenter_h) + db $07 ; db BANK(ViridianMart_h) + db $07 ; db BANK(School_h) + db $07 ; db BANK(ViridianHouse_h) + db $1d ; db BANK(ViridianGym_h) + db $07 ; db BANK(DiglettsCaveRoute2_h) + db $17 ; db BANK(ViridianForestExit_h) + db $07 ; db BANK(Route2House_h) + db $17 ; db BANK(Route2Gate_h) + db $17 ; db BANK(ViridianForestEntrance_h) + db $18 ; db BANK(ViridianForest_h) + db $17 ; db BANK(Museum1F_h) + db $17 ; db BANK(Museum2F_h) + db $17 ; db BANK(PewterGym_h) + db $07 ; db BANK(PewterHouse1_h) + db $1d ; db BANK(PewterMart_h) + db $07 ; db BANK(PewterHouse2_h) + db $17 ; db BANK(PewterPokecenter_h) + db $12 ; db BANK(MtMoon1_h) + db $14 ; db BANK(MtMoon2_h) + db $12 ; db BANK(MtMoon3_h) + db $07 ; db BANK(CeruleanHouseTrashed_h) + db $07 ; db BANK(CeruleanHouse1_h) + db $17 ; db BANK(CeruleanPokecenter_h) + db $17 ; db BANK(CeruleanGym_h) + db $07 ; db BANK(BikeShop_h) + db $17 ; db BANK(CeruleanMart_h) + db $12 ; db BANK(MtMoonPokecenter_h) + db $07 ; db BANK(CeruleanHouseTrashed_h) + db $07 ; db BANK(Route5Gate_h) + db $17 ; db BANK(UndergroundPathEntranceRoute5_h) + db $15 ; db BANK(DayCareM_h) + db $07 ; db BANK(Route6Gate_h) + db $17 ; db BANK(UndergroundPathEntranceRoute6_h) + db $17 ; db BANK(UndergroundPathEntranceRoute6_h) ;FREEZE + db $07 ; db BANK(Route7Gate_h) + db $17 ; db BANK(UndergroundPathEntranceRoute7_h) + db $17 ; db BANK(UndergroundPathEntranceRoute7Copy_h) ;FREEZE + db $07 ; db BANK(Route8Gate_h) + db $07 ; db BANK(UndergroundPathEntranceRoute8_h) + db $12 ; db BANK(RockTunnelPokecenter_h) + db $11 ; db BANK(RockTunnel1_h) + db $07 ; db BANK(PowerPlant_h) + db $12 ; db BANK(Route11Gate_h) + db $07 ; db BANK(DiglettsCaveEntranceRoute11_h) + db $12 ; db BANK(Route11GateUpstairs_h) + db $12 ; db BANK(Route12Gate_h) + db $07 ; db BANK(BillsHouse_h) + db $17 ; db BANK(VermilionPokecenter_h) + db $16 ; db BANK(FanClub_h) + db $17 ; db BANK(VermilionMart_h) + db $17 ; db BANK(VermilionGym_h) + db $07 ; db BANK(VermilionHouse1_h) + db $07 ; db BANK(VermilionDock_h) + db $18 ; db BANK(SSAnne1_h) + db $18 ; db BANK(SSAnne2_h) + db $11 ; db BANK(SSAnne3_h) + db $18 ; db BANK(SSAnne4_h) + db $18 ; db BANK(SSAnne5_h) + db $18 ; db BANK(SSAnne6_h) + db $18 ; db BANK(SSAnne7_h) + db $18 ; db BANK(SSAnne8_h) + db $18 ; db BANK(SSAnne9_h) + db $18 ; db BANK(SSAnne10_h) + db $1d ; db $1D ;unused + db $1d ; db $1D ;unused + db $1d ; db $1D ;unused + db $17 ; db BANK(VictoryRoad1_h) + db $1d ; db $1D ;unused + db $1d ; db $1D ;unused + db $1d ; db $1D ;unused + db $1d ; db $1D ;unused + db $16 ; db BANK(Lance_h) + db $1d ; db $1D ;unused + db $1d ; db $1D ;unused + db $1d ; db $1D ;unused + db $1d ; db $1D ;unused + db $16 ; db BANK(HallofFameRoom_h) + db $18 ; db BANK(UndergroundPathNS_h) + db $1d ; db BANK(Gary_h) + db $18 ; db BANK(UndergroundPathWE_h) + db $11 ; db BANK(CeladonMart1_h) + db $15 ; db BANK(CeladonMart2_h) + db $12 ; db BANK(CeladonMart3_h) + db $12 ; db BANK(CeladonMart4_h) + db $12 ; db BANK(CeladonMartRoof_h) + db $12 ; db BANK(CeladonMartElevator_h) + db $12 ; db BANK(CeladonMansion1_h) + db $12 ; db BANK(CeladonMansion2_h) + db $12 ; db BANK(CeladonMansion3_h) + db $12 ; db BANK(CeladonMansion4_h) + db $07 ; db BANK(CeladonMansion5_h) + db $12 ; db BANK(CeladonPokecenter_h) + db $12 ; db BANK(CeladonGym_h) + db $12 ; db BANK(CeladonGameCorner_h) + db $12 ; db BANK(CeladonMart5_h) + db $12 ; db BANK(CeladonPrizeRoom_h) + db $12 ; db BANK(CeladonDiner_h) + db $12 ; db BANK(CeladonHouse_h) + db $12 ; db BANK(CeladonHotel_h) + db $17 ; db BANK(LavenderPokecenter_h) + db $18 ; db BANK(PokemonTower1_h) + db $18 ; db BANK(PokemonTower2_h) + db $18 ; db BANK(PokemonTower3_h) + db $18 ; db BANK(PokemonTower4_h) + db $18 ; db BANK(PokemonTower5_h) + db $18 ; db BANK(PokemonTower6_h) + db $18 ; db BANK(PokemonTower7_h) + db $07 ; db BANK(LavenderHouse1_h) + db $17 ; db BANK(LavenderMart_h) + db $07 ; db BANK(LavenderHouse2_h) + db $07 ; db BANK(FuchsiaMart_h) + db $1d ; db BANK(FuchsiaHouse1_h) + db $1d ; db BANK(FuchsiaPokecenter_h) + db $1d ; db BANK(FuchsiaHouse2_h) + db $1d ; db BANK(SafariZoneEntrance_h) + db $1d ; db BANK(FuchsiaGym_h) + db $1d ; db BANK(FuchsiaMeetingRoom_h) + db $11 ; db BANK(SeafoamIslands2_h) + db $11 ; db BANK(SeafoamIslands3_h) + db $11 ; db BANK(SeafoamIslands4_h) + db $11 ; db BANK(SeafoamIslands5_h) + db $15 ; db BANK(VermilionHouse2_h) + db $15 ; db BANK(FuchsiaHouse3_h) + db $11 ; db BANK(Mansion1_h) + db $1d ; db BANK(CinnabarGym_h) + db $1d ; db BANK(Lab1_h) + db $1d ; db BANK(Lab2_h) + db $1d ; db BANK(Lab3_h) + db $1d ; db BANK(Lab4_h) + db $1d ; db BANK(CinnabarPokecenter_h) + db $1d ; db BANK(CinnabarMart_h) + db $1d ; db BANK(CinnabarMart_h) + db $06 ; db BANK(IndigoPlateauLobby_h) + db $1d ; db BANK(CopycatsHouse1F_h) + db $17 ; db BANK(CopycatsHouse2F_h) + db $17 ; db BANK(FightingDojo_h) + db $17 ; db BANK(SaffronGym_h) + db $07 ; db BANK(SaffronHouse1_h) + db $17 ; db BANK(SaffronMart_h) + db $17 ; db BANK(SilphCo1_h) + db $17 ; db BANK(SaffronPokecenter_h) + db $07 ; db BANK(SaffronHouse2_h) + db $12 ; db BANK(Route15Gate_h) + db $12 ; db BANK(Route15GateUpstairs_h) + db $12 ; db BANK(Route16Gate_h) + db $12 ; db BANK(Route16GateUpstairs_h) + db $07 ; db BANK(Route16House_h) + db $15 ; db BANK(Route12House_h) + db $12 ; db BANK(Route18Gate_h) + db $12 ; db BANK(Route18GateUpstairs_h) + db $11 ; db BANK(SeafoamIslands1_h) + db $07 ; db BANK(Route22Gate_h) + db $14 ; db BANK(VictoryRoad2_h) + db $12 ; db BANK(Route12GateUpstairs_h) + db $06 ; db BANK(VermilionHouse3_h) + db $18 ; db BANK(DiglettsCave_h) + db $11 ; db BANK(VictoryRoad3_h) + db $11 ; db BANK(RocketHideout1_h) + db $11 ; db BANK(RocketHideout2_h) + db $11 ; db BANK(RocketHideout3_h) + db $11 ; db BANK(RocketHideout4_h) + db $11 ; db BANK(RocketHideoutElevator_h) + db $01 ; db $01 + db $01 ; db $01 + db $01 ; db $01 + db $16 ; db BANK(SilphCo2_h) + db $16 ; db BANK(SilphCo3_h) + db $06 ; db BANK(SilphCo4_h) + db $06 ; db BANK(SilphCo5_h) + db $06 ; db BANK(SilphCo6_h) + db $14 ; db BANK(SilphCo7_h) + db $15 ; db BANK(SilphCo8_h) + db $14 ; db BANK(Mansion2_h) + db $14 ; db BANK(Mansion3_h) + db $14 ; db BANK(Mansion4_h) + db $11 ; db BANK(SafariZoneEast_h) + db $11 ; db BANK(SafariZoneNorth_h) + db $12 ; db BANK(SafariZoneWest_h) + db $11 ; db BANK(SafariZoneCenter_h) + db $11 ; db BANK(SafariZoneRestHouse1_h) + db $12 ; db BANK(SafariZoneSecretHouse_h) + db $11 ; db BANK(SafariZoneRestHouse2_h) + db $11 ; db BANK(SafariZoneRestHouse3_h) + db $11 ; db BANK(SafariZoneRestHouse4_h) + db $11 ; db BANK(UnknownDungeon2_h) + db $11 ; db BANK(UnknownDungeon3_h) + db $1d ; db BANK(UnknownDungeon1_h) + db $07 ; db BANK(NameRater_h) + db $1d ; db BANK(CeruleanHouse2_h) + db $01 ; db $01 + db $11 ; db BANK(RockTunnel2_h) + db $17 ; db BANK(SilphCo9_h) + db $16 ; db BANK(SilphCo10_h) + db $18 ; db BANK(SilphCo11_h) + db $11 ; db BANK(SilphCoElevator_h) + db $11 ; db $11 + db $11 ; db $11 + db BANK(TradeCenter_h) + db BANK(Colosseum_h) + db $11 ; db $11 + db $11 ; db $11 + db $11 ; db $11 + db $11 ; db $11 + db $1d ; db BANK(Lorelei_h) + db $1d ; db BANK(Bruno_h) + db $1d ; db BANK(Agatha_h) + db BANK(BeachHouse_h) diff --git a/data/map_header_pointers.asm b/data/map_header_pointers.asm index 8cabbd0d..d63e7cb7 100644 --- a/data/map_header_pointers.asm +++ b/data/map_header_pointers.asm @@ -1,252 +1,251 @@ ; see also MapHeaderBanks MapHeaderPointers:: ; fc1f2 (3f:41f2) - dr $fc1f2,$fc3e4 - ;dw PalletTown_h - ;dw ViridianCity_h - ;dw PewterCity_h - ;dw CeruleanCity_h - ;dw LavenderTown_h - ;dw VermilionCity_h - ;dw CeladonCity_h - ;dw FuchsiaCity_h - ;dw CinnabarIsland_h - ;dw IndigoPlateau_h - ;dw SaffronCity_h - ;dw SaffronCity_h - ;dw Route1_h - ;dw Route2_h - ;dw Route3_h - ;dw Route4_h - ;dw Route5_h - ;dw Route6_h - ;dw Route7_h - ;dw Route8_h - ;dw Route9_h - ;dw Route10_h - ;dw Route11_h - ;dw Route12_h - ;dw Route13_h - ;dw Route14_h - ;dw Route15_h - ;dw Route16_h - ;dw Route17_h - ;dw Route18_h - ;dw Route19_h - ;dw Route20_h - ;dw Route21_h - ;dw Route22_h - ;dw Route23_h - ;dw Route24_h - ;dw Route25_h - ;dw RedsHouse1F_h - ;dw RedsHouse2F_h - ;dw BluesHouse_h - ;dw OaksLab_h ;id=40 - ;dw ViridianPokecenter_h - ;dw ViridianMart_h - ;dw School_h - ;dw ViridianHouse_h - ;dw ViridianGym_h - ;dw DiglettsCaveRoute2_h - ;dw ViridianForestExit_h - ;dw Route2House_h - ;dw Route2Gate_h - ;dw ViridianForestEntrance_h ;id=50 - ;dw ViridianForest_h - ;dw Museum1F_h - ;dw Museum2F_h - ;dw PewterGym_h - ;dw PewterHouse1_h - ;dw PewterMart_h - ;dw PewterHouse2_h - ;dw PewterPokecenter_h - ;dw MtMoon1_h - ;dw MtMoon2_h ;id=60 - ;dw MtMoon3_h - ;dw CeruleanHouseTrashed_h - ;dw CeruleanHouse1_h - ;dw CeruleanPokecenter_h - ;dw CeruleanGym_h - ;dw BikeShop_h - ;dw CeruleanMart_h - ;dw MtMoonPokecenter_h - ;dw CeruleanHouseTrashed_h ; copy - ;dw Route5Gate_h - ;dw UndergroundPathEntranceRoute5_h - ;dw DayCareM_h - ;dw Route6Gate_h - ;dw UndergroundPathEntranceRoute6_h - ;dw UndergroundPathEntranceRoute6_h ; unused - ;dw Route7Gate_h - ;dw UndergroundPathEntranceRoute7_h - ;dw UndergroundPathEntranceRoute7Copy_h - ;dw Route8Gate_h - ;dw UndergroundPathEntranceRoute8_h ;id=80 - ;dw RockTunnelPokecenter_h - ;dw RockTunnel1_h - ;dw PowerPlant_h - ;dw Route11Gate_h - ;dw DiglettsCaveEntranceRoute11_h - ;dw Route11GateUpstairs_h - ;dw Route12Gate_h - ;dw BillsHouse_h - ;dw VermilionPokecenter_h - ;dw FanClub_h ;id=90 - ;dw VermilionMart_h - ;dw VermilionGym_h - ;dw VermilionHouse1_h - ;dw VermilionDock_h - ;dw SSAnne1_h - ;dw SSAnne2_h - ;dw SSAnne3_h - ;dw SSAnne4_h - ;dw SSAnne5_h - ;dw SSAnne6_h ;id=100 - ;dw SSAnne7_h - ;dw SSAnne8_h - ;dw SSAnne9_h - ;dw SSAnne10_h - ;dw Lance_h ; unused - ;dw Lance_h ; unused - ;dw Lance_h ; unused - ;dw VictoryRoad1_h - ;dw Lance_h ; unused - ;dw Lance_h ; unused ;id=110 - ;dw Lance_h ; unused - ;dw Lance_h ; unused - ;dw Lance_h - ;dw Lance_h ; unused - ;dw Lance_h ; unused - ;dw Lance_h ; unused - ;dw Lance_h ; unused - ;dw HallofFameRoom_h - ;dw UndergroundPathNS_h - ;dw Gary_h ;id=120 - ;dw UndergroundPathWE_h - ;dw CeladonMart1_h - ;dw CeladonMart2_h - ;dw CeladonMart3_h - ;dw CeladonMart4_h - ;dw CeladonMartRoof_h - ;dw CeladonMartElevator_h - ;dw CeladonMansion1_h - ;dw CeladonMansion2_h - ;dw CeladonMansion3_h ;id=130 - ;dw CeladonMansion4_h - ;dw CeladonMansion5_h - ;dw CeladonPokecenter_h - ;dw CeladonGym_h - ;dw CeladonGameCorner_h - ;dw CeladonMart5_h - ;dw CeladonPrizeRoom_h - ;dw CeladonDiner_h - ;dw CeladonHouse_h - ;dw CeladonHotel_h ;id=140 - ;dw LavenderPokecenter_h - ;dw PokemonTower1_h - ;dw PokemonTower2_h - ;dw PokemonTower3_h - ;dw PokemonTower4_h - ;dw PokemonTower5_h - ;dw PokemonTower6_h - ;dw PokemonTower7_h - ;dw LavenderHouse1_h - ;dw LavenderMart_h ;id=150 - ;dw LavenderHouse2_h - ;dw FuchsiaMart_h - ;dw FuchsiaHouse1_h - ;dw FuchsiaPokecenter_h - ;dw FuchsiaHouse2_h - ;dw SafariZoneEntrance_h - ;dw FuchsiaGym_h - ;dw FuchsiaMeetingRoom_h - ;dw SeafoamIslands2_h - ;dw SeafoamIslands3_h ;id=160 - ;dw SeafoamIslands4_h - ;dw SeafoamIslands5_h - ;dw VermilionHouse2_h - ;dw FuchsiaHouse3_h - ;dw Mansion1_h - ;dw CinnabarGym_h - ;dw Lab1_h - ;dw Lab2_h - ;dw Lab3_h - ;dw Lab4_h ;id=170 - ;dw CinnabarPokecenter_h - ;dw CinnabarMart_h - ;dw CinnabarMart_h ; unused - ;dw IndigoPlateauLobby_h - ;dw CopycatsHouse1F_h - ;dw CopycatsHouse2F_h - ;dw FightingDojo_h - ;dw SaffronGym_h - ;dw SaffronHouse1_h - ;dw SaffronMart_h ;id=180 - ;dw SilphCo1_h - ;dw SaffronPokecenter_h - ;dw SaffronHouse2_h - ;dw Route15Gate_h - ;dw Route15GateUpstairs_h - ;dw Route16Gate_h - ;dw Route16GateUpstairs_h - ;dw Route16House_h - ;dw Route12House_h - ;dw Route18Gate_h ;id=190 - ;dw Route18GateUpstairs_h - ;dw SeafoamIslands1_h - ;dw Route22Gate_h - ;dw VictoryRoad2_h - ;dw Route12GateUpstairs_h - ;dw VermilionHouse3_h - ;dw DiglettsCave_h - ;dw VictoryRoad3_h - ;dw RocketHideout1_h - ;dw RocketHideout2_h ;200 - ;dw RocketHideout3_h - ;dw RocketHideout4_h - ;dw RocketHideoutElevator_h - ;dw RocketHideoutElevator_h ; unused - ;dw RocketHideoutElevator_h ; unused - ;dw RocketHideoutElevator_h ; unused - ;dw SilphCo2_h - ;dw SilphCo3_h - ;dw SilphCo4_h - ;dw SilphCo5_h ;210 - ;dw SilphCo6_h - ;dw SilphCo7_h - ;dw SilphCo8_h - ;dw Mansion2_h - ;dw Mansion3_h - ;dw Mansion4_h - ;dw SafariZoneEast_h - ;dw SafariZoneNorth_h - ;dw SafariZoneWest_h - ;dw SafariZoneCenter_h ;220 - ;dw SafariZoneRestHouse1_h - ;dw SafariZoneSecretHouse_h - ;dw SafariZoneRestHouse2_h - ;dw SafariZoneRestHouse3_h - ;dw SafariZoneRestHouse4_h - ;dw UnknownDungeon2_h - ;dw UnknownDungeon3_h - ;dw UnknownDungeon1_h - ;dw NameRater_h - ;dw CeruleanHouse2_h - ;dw Route16Gate_h ; unused - ;dw RockTunnel2_h - ;dw SilphCo9_h - ;dw SilphCo10_h - ;dw SilphCo11_h - ;dw SilphCoElevator_h - ;dw SilphCo2_h ; unused - ;dw SilphCo2_h ; unused - ;dw BattleCenterM_h - ;dw TradeCenterM_h - ;dw SilphCo2_h ; unused - ;dw SilphCo2_h ; unused - ;dw SilphCo2_h ; unused - ;dw SilphCo2_h ; unused - ;dw Lorelei_h - ;dw Bruno_h - ;dw Agatha_h ;247 - ;dw BeachHouse_h + dw $42a1 ; dw PalletTown_h + dw $4357 ; dw ViridianCity_h + dw $455a ; dw PewterCity_h + dw $4754 ; dw CeruleanCity_h + dw $4000 ; dw LavenderTown_h + dw $499e ; dw VermilionCity_h + dw CeladonCity_h + dw $4bb3 ; dw FuchsiaCity_h + dw $4000 ; dw CinnabarIsland_h + dw $4924 ; dw IndigoPlateau_h + dw SaffronCity_h + dw SaffronCity_h + dw $40c3 ; dw Route1_h + dw $4000 ; dw Route2_h + dw $41ee ; dw Route3_h + dw $4398 ; dw Route4_h + dw Route5_h + dw $4000 ; dw Route6_h + dw Route7_h + dw $412d ; dw Route8_h + dw $468e ; dw Route9_h + dw $42d4 ; dw Route10_h + dw $44be ; dw Route11_h + dw $466d ; dw Route12_h + dw $4814 ; dw Route13_h + dw $49a1 ; dw Route14_h + dw $492c ; dw Route15_h + dw $4ada ; dw Route16_h + dw $4b28 ; dw Route17_h + dw $4c38 ; dw Route18_h + dw $4e80 ; dw Route19_h + dw $40f1 ; dw Route20_h + dw $500f ; dw Route21_h + dw $4000 ; dw Route22_h + dw $433f ; dw Route23_h + dw $4682 ; dw Route24_h + dw $47a1 ; dw Route25_h + dw $40f6 ; dw RedsHouse1F_h + dw $40a4 ; dw RedsHouse2F_h + dw $5c2f ; dw BluesHouse_h + dw $4386 ; dw OaksLab_h ;id=40 + dw $4251 ; dw ViridianPokecenter_h + dw $4c6e ; dw ViridianMart_h + dw $4d6d ; dw School_h + dw $4dc6 ; dw ViridianHouse_h + dw $40d4 ; dw ViridianGym_h + dw $57ae ; dw DiglettsCaveRoute2_h + dw $5485 ; dw ViridianForestExit_h + dw $57eb ; dw Route2House_h + dw $54d2 ; dw Route2Gate_h + dw $555a ; dw ViridianForestEntrance_h ;id=50 + dw $50ed ; dw ViridianForest_h + dw $40e3 ; dw Museum1F_h + dw $41b4 ; dw Museum2F_h + dw $4257 ; dw PewterGym_h + dw $4e30 ; dw PewterHouse1_h + dw $44de ; dw PewterMart_h + dw $4e86 ; dw PewterHouse2_h + dw $446e ; dw PewterPokecenter_h + dw $5953 ; dw MtMoon1_h + dw $5a78 ; dw MtMoon2_h ;id=60 + dw $5c7e ; dw MtMoon3_h + dw $4ec3 ; dw CeruleanHouseTrashed_h + dw $4f34 ; dw CeruleanHouse1_h + dw $44f5 ; dw CeruleanPokecenter_h + dw $4577 ; dw CeruleanGym_h + dw $5038 ; dw BikeShop_h + dw $4757 ; dw CeruleanMart_h + dw $52a9 ; dw MtMoonPokecenter_h + dw $4ec3 ; dw CeruleanHouseTrashed_h ; copy + dw $5831 ; dw Route5Gate_h + dw $55a8 ; dw UndergroundPathEntranceRoute5_h + dw $6233 ; dw DayCareM_h + dw $593b ; dw Route6Gate_h + dw $55ee ; dw UndergroundPathEntranceRoute6_h + dw $55ee ; dw UndergroundPathEntranceRoute6_h ; unused + dw $59fe ; dw Route7Gate_h + dw $562b ; dw UndergroundPathEntranceRoute7_h + dw $5668 ; dw UndergroundPathEntranceRoute7Copy_h + dw $5ac5 ; dw Route8Gate_h + dw $5b87 ; dw UndergroundPathEntranceRoute8_h ;id=80 + dw $5330 ; dw RockTunnelPokecenter_h + dw $4571 ; dw RockTunnel1_h + dw $5bc4 ; dw PowerPlant_h + dw $5396 ; dw Route11Gate_h + dw $5eb8 ; dw DiglettsCaveEntranceRoute11_h + dw $53de ; dw Route11GateUpstairs_h + dw $548f ; dw Route12Gate_h + dw $606e ; dw BillsHouse_h + dw $4865 ; dw VermilionPokecenter_h + dw $5a00 ; dw FanClub_h ;id=90 + dw $48cb ; dw VermilionMart_h + dw $4910 ; dw VermilionGym_h + dw $53f8 ; dw VermilionHouse1_h + dw $544e ; dw VermilionDock_h + dw $52a4 ; dw SSAnne1_h + dw $53de ; dw SSAnne2_h + dw $49bf ; dw SSAnne3_h + dw $5650 ; dw SSAnne4_h + dw $56d0 ; dw SSAnne5_h + dw $57d5 ; dw SSAnne6_h ;id=100 + dw $58b7 ; dw SSAnne7_h + dw $5993 ; dw SSAnne8_h + dw $5b68 ; dw SSAnne9_h + dw $5d60 ; dw SSAnne10_h + dw $623d ; dw Lance_h ; unused + dw $623d ; dw Lance_h ; unused + dw $623d ; dw Lance_h ; unused + dw $5909 ; dw VictoryRoad1_h + dw $623d ; dw Lance_h ; unused + dw $623d ; dw Lance_h ; unused ;id=110 + dw $623d ; dw Lance_h ; unused + dw $623d ; dw Lance_h ; unused + dw $623d ; dw Lance_h + dw $623d ; dw Lance_h ; unused + dw $623d ; dw Lance_h ; unused + dw $623d ; dw Lance_h ; unused + dw $623d ; dw Lance_h ; unused + dw $642d ; dw HallofFameRoom_h + dw $5f31 ; dw UndergroundPathNS_h + dw $57a0 ; dw Gary_h ;id=120 + dw $5f55 ; dw UndergroundPathWE_h + dw $42b7 ; dw CeladonMart1_h + dw $60d9 ; dw CeladonMart2_h + dw $4157 ; dw CeladonMart3_h + dw $4251 ; dw CeladonMart4_h + dw $42d0 ; dw CeladonMartRoof_h + dw $44ff ; dw CeladonMartElevator_h + dw $4593 ; dw CeladonMansion1_h + dw $465a ; dw CeladonMansion2_h + dw $46b0 ; dw CeladonMansion3_h ;id=130 + dw $4861 ; dw CeladonMansion4_h + dw $5636 ; dw CeladonMansion5_h + dw $48af ; dw CeladonPokecenter_h + dw $4915 ; dw CeladonGym_h + dw $4bc8 ; dw CeladonGameCorner_h + dw $507f ; dw CeladonMart5_h + dw $5107 ; dw CeladonPrizeRoom_h + dw $5168 ; dw CeladonDiner_h + dw $51e8 ; dw CeladonHouse_h + dw $5243 ; dw CeladonHotel_h ;id=140 + dw $479c ; dw LavenderPokecenter_h + dw $4420 ; dw PokemonTower1_h + dw $44e7 ; dw PokemonTower2_h + dw $46af ; dw PokemonTower3_h + dw $47d9 ; dw PokemonTower4_h + dw $4915 ; dw PokemonTower5_h + dw $4ad2 ; dw PokemonTower6_h + dw $4ce8 ; dw PokemonTower7_h + dw $51a4 ; dw LavenderHouse1_h + dw $4802 ; dw LavenderMart_h ;id=150 + dw $52aa ; dw LavenderHouse2_h + dw $5685 ; dw FuchsiaMart_h + dw $4851 ; dw FuchsiaHouse1_h + dw $489c ; dw FuchsiaPokecenter_h + dw $4902 ; dw FuchsiaHouse2_h + dw $4a1a ; dw SafariZoneEntrance_h + dw $4bd9 ; dw FuchsiaGym_h + dw $4e7f ; dw FuchsiaMeetingRoom_h + dw $6578 ; dw SeafoamIslands2_h + dw $66b4 ; dw SeafoamIslands3_h ;id=160 + dw $67f0 ; dw SeafoamIslands4_h + dw $69fc ; dw SeafoamIslands5_h + dw $6054 ; dw VermilionHouse2_h + dw $6160 ; dw FuchsiaHouse3_h + dw $4344 ; dw Mansion1_h + dw $4ee6 ; dw CinnabarGym_h + dw $53fb ; dw Lab1_h + dw $5490 ; dw Lab2_h + dw $54f6 ; dw Lab3_h + dw $55a0 ; dw Lab4_h ;id=170 + dw $569b ; dw CinnabarPokecenter_h + dw $5701 ; dw CinnabarMart_h + dw $5701 ; dw CinnabarMart_h ; unused + dw $5d45 ; dw IndigoPlateauLobby_h + dw $5746 ; dw CopycatsHouse1F_h + dw $4b5b ; dw CopycatsHouse2F_h + dw $4c47 ; dw FightingDojo_h + dw $4ef7 ; dw SaffronGym_h + dw $56db ; dw SaffronHouse1_h + dw $52f3 ; dw SaffronMart_h ;id=180 + dw $5338 ; dw SilphCo1_h + dw $541f ; dw SaffronPokecenter_h + dw $573a ; dw SaffronHouse2_h + dw $558d ; dw Route15Gate_h + dw $55d5 ; dw Route15GateUpstairs_h + dw $5649 ; dw Route16Gate_h + dw $5796 ; dw Route16GateUpstairs_h + dw $5ef6 ; dw Route16House_h + dw $64a5 ; dw Route12House_h + dw $5801 ; dw Route18Gate_h ;id=190 + dw $5900 ; dw Route18GateUpstairs_h + dw $487e ; dw SeafoamIslands1_h + dw $5f81 ; dw Route22Gate_h + dw $57cc ; dw VictoryRoad2_h + dw $54eb ; dw Route12GateUpstairs_h + dw $5d05 ; dw VermilionHouse3_h + dw $5f79 ; dw DiglettsCave_h + dw $4a0d ; dw VictoryRoad3_h + dw $4c5e ; dw RocketHideout1_h + dw $4ebb ; dw RocketHideout2_h ;200 + dw $52b9 ; dw RocketHideout3_h + dw $54f1 ; dw RocketHideout4_h + dw $5958 ; dw RocketHideoutElevator_h + dw $5958 ; dw RocketHideoutElevator_h ; unused + dw $5958 ; dw RocketHideoutElevator_h ; unused + dw $5958 ; dw RocketHideoutElevator_h ; unused + dw $5c80 ; dw SilphCo2_h + dw $5eea ; dw SilphCo3_h + dw $5e09 ; dw SilphCo4_h + dw $6035 ; dw SilphCo5_h ;210 + dw $62a7 ; dw SilphCo6_h + dw $5b97 ; dw SilphCo7_h + dw $652a ; dw SilphCo8_h + dw $5ff5 ; dw Mansion2_h + dw $620b ; dw Mansion3_h + dw $63d6 ; dw Mansion4_h + dw $5ab3 ; dw SafariZoneEast_h + dw $5bf3 ; dw SafariZoneNorth_h + dw $635a ; dw SafariZoneWest_h + dw $5dfa ; dw SafariZoneCenter_h ;220 + dw $5f35 ; dw SafariZoneRestHouse1_h + dw $64bc ; dw SafariZoneSecretHouse_h + dw $5f72 ; dw SafariZoneRestHouse2_h + dw $5fbd ; dw SafariZoneRestHouse3_h + dw $6008 ; dw SafariZoneRestHouse4_h + dw $6053 ; dw UnknownDungeon2_h + dw $6141 ; dw UnknownDungeon3_h + dw $453d ; dw UnknownDungeon1_h + dw $530e ; dw NameRater_h + dw $4643 ; dw CeruleanHouse2_h + dw $5649 ; dw Route16Gate_h ; unused + dw $624e ; dw RockTunnel2_h + dw $56ba ; dw SilphCo9_h + dw $60c8 ; dw SilphCo10_h + dw $6105 ; dw SilphCo11_h + dw $5a08 ; dw SilphCoElevator_h + dw $5c80 ; dw SilphCo2_h ; unused + dw $5c80 ; dw SilphCo2_h ; unused + dw TradeCenter_h + dw Colosseum_h + dw $5c80 ; dw SilphCo2_h ; unused + dw $5c80 ; dw SilphCo2_h ; unused + dw $5c80 ; dw SilphCo2_h ; unused + dw $5c80 ; dw SilphCo2_h ; unused + dw $59ef ; dw Lorelei_h + dw $5b4a ; dw Bruno_h + dw $5ca1 ; dw Agatha_h ;247 + dw $620e ; dw BeachHouse_h -- cgit v1.2.3 From 8abddd138c6aac54b3e1eb5c16d24fe6ce4b9c29 Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Thu, 26 May 2016 11:51:19 -0400 Subject: Include Cerulean City --- data/mapObjects/ceruleancity.asm | 8 ++++---- main.asm | 27 ++++++++++++++++++++------- maps/route4.blk | 2 +- 3 files changed, 25 insertions(+), 12 deletions(-) diff --git a/data/mapObjects/ceruleancity.asm b/data/mapObjects/ceruleancity.asm index 248a8e83..ff0f2c66 100755 --- a/data/mapObjects/ceruleancity.asm +++ b/data/mapObjects/ceruleancity.asm @@ -1,5 +1,5 @@ CeruleanCityObject: ; 0x18786 (size=170) - db $f ; border block + db $a ; border block db $a ; warps db $b, $1b, $0, TRASHED_HOUSE @@ -27,12 +27,12 @@ CeruleanCityObject: ; 0x18786 (size=170) object SPRITE_BLACK_HAIR_BOY_1, $1f, $14, STAY, DOWN, $3 ; person object SPRITE_BLACK_HAIR_BOY_2, $f, $12, WALK, $1, $4 ; person object SPRITE_BLACK_HAIR_BOY_2, $9, $15, WALK, $2, $5 ; person - object SPRITE_GUARD, $1c, $c, STAY, DOWN, $6 ; person + object SPRITE_OFFICER_JENNY, $1c, $c, STAY, DOWN, $6 ; person object SPRITE_LASS, $1d, $1a, STAY, LEFT, $7 ; person - object SPRITE_SLOWBRO, $1c, $1a, STAY, DOWN, $8 ; person + object SPRITE_BALL, $1c, $1a, STAY, DOWN, $8 ; person object SPRITE_LASS, $9, $1b, WALK, $2, $9 ; person object SPRITE_BLACK_HAIR_BOY_2, $4, $c, STAY, DOWN, $a ; person - object SPRITE_GUARD, $1b, $c, STAY, DOWN, $b ; person + object SPRITE_OFFICER_JENNY, $1b, $c, STAY, DOWN, $b ; person ; warp-to EVENT_DISP CERULEAN_CITY_WIDTH, $b, $1b ; TRASHED_HOUSE diff --git a/main.asm b/main.asm index 3bbf792a..4ee65629 100755 --- a/main.asm +++ b/main.asm @@ -236,7 +236,7 @@ INCLUDE "data/mapHeaders/celadoncity.asm" INCLUDE "data/mapObjects/celadoncity.asm" CeladonCityBlocks: INCBIN "maps/celadoncity.blk" - dr $182a1,$18836 ; headers, objects, blocks + dr $182a1,$18754 ; headers, objects, blocks ; INCLUDE "data/mapHeaders/pallettown.asm" ; INCLUDE "data/mapObjects/pallettown.asm" ; PalletTownBlocks: INCBIN "maps/pallettown.blk" @@ -249,8 +249,8 @@ CeladonCityBlocks: INCBIN "maps/celadoncity.blk" ; INCLUDE "data/mapObjects/pewtercity.asm" ; PewterCityBlocks: INCBIN "maps/pewtercity.blk" -; INCLUDE "data/mapHeaders/ceruleancity.asm" -; INCLUDE "data/mapObjects/ceruleancity.asm" +INCLUDE "data/mapHeaders/ceruleancity.asm" +INCLUDE "data/mapObjects/ceruleancity.asm" CeruleanCityBlocks: INCBIN "maps/ceruleancity.blk" ; 18836 dr $1899e,$18dee ; headers, objects, blocks @@ -262,12 +262,17 @@ CeruleanCityBlocks: INCBIN "maps/ceruleancity.blk" ; 18836 ; INCLUDE "data/mapObjects/fuchsiacity.asm" ; FuchsiaCityBlocks: INCBIN "maps/fuchsiacity.blk" - dr $18dee,$19a43 ; map scripts + dr $18dee,$1953d ; map scripts ; INCLUDE "scripts/pallettown.asm" ; INCLUDE "scripts/viridiancity.asm" ; INCLUDE "scripts/pewtercity.asm" ; INCLUDE "scripts/ceruleancity.asm" +CeruleanCityScript: + dr $1953d,$196cd ; map scripts + +CeruleanCityTextPointers: + dr $196cd,$19a43 ; map scripts ; INCLUDE "scripts/vermilioncity.asm" ; INCLUDE "scripts/celadoncity.asm" CeladonCityScript: @@ -769,7 +774,10 @@ INCBIN "maps/colosseum.blk" SECTION "bank14",ROMX,BANK[$14] - dr $50000,$509aa + dr $50000,$506ed +Route24Blocks: ; 506ed (14:46ed) +INCBIN "maps/route24.blk" + dr $507a1,$509aa INCLUDE "data/mapHeaders/saffroncity.asm" INCLUDE "data/mapObjects/saffroncity.asm" @@ -795,12 +803,17 @@ INCLUDE "engine/hidden_object_functions14.asm" SECTION "bank15",ROMX,BANK[$15] - dr $54000,$54589 + dr $54000,$543f4 +Route4Blocks: ; 543f4 +INCBIN "maps/route4.blk" INCLUDE "data/mapHeaders/route5.asm" INCLUDE "data/mapObjects/route5.asm" Route5Blocks: ; 545da INCBIN "maps/route5.blk" - dr $5468e,$5525f + dr $5468e,$54706 +Route9Blocks: ; 54706 +INCBIN "maps/route9.blk" + dr $54814,$5525f INCLUDE "engine/battle/experience.asm" diff --git a/maps/route4.blk b/maps/route4.blk index cb6a6a74..11fefc62 100644 --- a/maps/route4.blk +++ b/maps/route4.blk @@ -61,4 +61,4 @@ N -,,)>??,,,,,,,,,,,?????????????????????;tt \ No newline at end of file +,,)>??,,,,,,,,,,,?????????????????????;tt \ No newline at end of file -- cgit v1.2.3 From 18c4d8603a09c475ceb6dbd6cafefcac4b3928c5 Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Thu, 26 May 2016 13:10:04 -0400 Subject: Include Route 4 --- main.asm | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/main.asm b/main.asm index 4ee65629..ded64e8a 100755 --- a/main.asm +++ b/main.asm @@ -803,7 +803,11 @@ INCLUDE "engine/hidden_object_functions14.asm" SECTION "bank15",ROMX,BANK[$15] - dr $54000,$543f4 + dr $54000,$5425d +Route3Blocks: ; 5425d +INCBIN "maps/route3.blk" +INCLUDE "data/mapHeaders/route4.asm" +INCLUDE "data/mapObjects/route4.asm" Route4Blocks: ; 543f4 INCBIN "maps/route4.blk" INCLUDE "data/mapHeaders/route5.asm" @@ -817,7 +821,8 @@ INCBIN "maps/route9.blk" INCLUDE "engine/battle/experience.asm" - dr $554f7,$556c6 + dr $554f7,$5566c +INCLUDE "scripts/route4.asm" INCLUDE "scripts/route5.asm" dr $556d0,$56714 -- cgit v1.2.3 From 02cee47ad6300933244b13037050df25aec761c3 Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Thu, 26 May 2016 13:12:18 -0400 Subject: Include Route 3 --- main.asm | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/main.asm b/main.asm index ded64e8a..1fbfd873 100755 --- a/main.asm +++ b/main.asm @@ -236,7 +236,7 @@ INCLUDE "data/mapHeaders/celadoncity.asm" INCLUDE "data/mapObjects/celadoncity.asm" CeladonCityBlocks: INCBIN "maps/celadoncity.blk" - dr $182a1,$18754 ; headers, objects, blocks + dr $182a1,$185ec ; headers, objects, blocks ; INCLUDE "data/mapHeaders/pallettown.asm" ; INCLUDE "data/mapObjects/pallettown.asm" ; PalletTownBlocks: INCBIN "maps/pallettown.blk" @@ -247,7 +247,7 @@ CeladonCityBlocks: INCBIN "maps/celadoncity.blk" ; INCLUDE "data/mapHeaders/pewtercity.asm" ; INCLUDE "data/mapObjects/pewtercity.asm" -; PewterCityBlocks: INCBIN "maps/pewtercity.blk" +PewterCityBlocks: INCBIN "maps/pewtercity.blk" INCLUDE "data/mapHeaders/ceruleancity.asm" INCLUDE "data/mapObjects/ceruleancity.asm" @@ -803,7 +803,9 @@ INCLUDE "engine/hidden_object_functions14.asm" SECTION "bank15",ROMX,BANK[$15] - dr $54000,$5425d + dr $54000,$541ee +INCLUDE "data/mapHeaders/route3.asm" +INCLUDE "data/mapObjects/route3.asm" Route3Blocks: ; 5425d INCBIN "maps/route3.blk" INCLUDE "data/mapHeaders/route4.asm" @@ -821,7 +823,8 @@ INCBIN "maps/route9.blk" INCLUDE "engine/battle/experience.asm" - dr $554f7,$5566c + dr $554f7,$5550c +INCLUDE "scripts/route3.asm" INCLUDE "scripts/route4.asm" INCLUDE "scripts/route5.asm" dr $556d0,$56714 -- cgit v1.2.3 From 3239ab648c05e39aa84e9d0572ed34dbb63c7054 Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Thu, 26 May 2016 13:28:30 -0400 Subject: Add Pewter City and fix scripts --- constants/hide_show_constants.asm | 457 +++++++++++++++++++------------------- main.asm | 20 +- scripts/pewtercity.asm | 22 +- 3 files changed, 254 insertions(+), 245 deletions(-) diff --git a/constants/hide_show_constants.asm b/constants/hide_show_constants.asm index 1a44b1e7..02ebc54e 100755 --- a/constants/hide_show_constants.asm +++ b/constants/hide_show_constants.asm @@ -6,231 +6,232 @@ const_value = 0 - const HS_PALLET_TOWN_OAK ; 00 - const HS_LYING_OLD_MAN ; 01 - const HS_OLD_MAN ; 02 - const HS_MUSEUM_GUY ; 03 - const HS_GYM_GUY ; 04 - const HS_CERULEAN_RIVAL ; 05 - const HS_CERULEAN_ROCKET ; 06 - const HS_CERULEAN_GUARD_1 ; 07 - const HS_UNKNOWN_DUNGEON_GUY ; 08 - const HS_CERULEAN_GUARD_2 ; 09 - const HS_SAFFRON_CITY_1 ; 0A - const HS_SAFFRON_CITY_2 ; 0B - const HS_SAFFRON_CITY_3 ; 0C - const HS_SAFFRON_CITY_4 ; 0D - const HS_SAFFRON_CITY_5 ; 0E - const HS_SAFFRON_CITY_6 ; 0F - const HS_SAFFRON_CITY_7 ; 10 - const HS_SAFFRON_CITY_8 ; 11 - const HS_SAFFRON_CITY_9 ; 12 - const HS_SAFFRON_CITY_A ; 13 - const HS_SAFFRON_CITY_B ; 14 - const HS_SAFFRON_CITY_C ; 15 - const HS_SAFFRON_CITY_D ; 16 - const HS_SAFFRON_CITY_E ; 17 - const HS_SAFFRON_CITY_F ; 18 - const HS_ROUTE_2_ITEM_1 ; 19 X - const HS_ROUTE_2_ITEM_2 ; 1A X - const HS_ROUTE_4_ITEM ; 1B X - const HS_ROUTE_9_ITEM ; 1C X - const HS_ROUTE_12_SNORLAX ; 1D - const HS_ROUTE_12_ITEM_1 ; 1E X - const HS_ROUTE_12_ITEM_2 ; 1F X - const HS_ROUTE_15_ITEM ; 20 X - const HS_ROUTE_16_SNORLAX ; 21 - const HS_ROUTE_22_RIVAL_1 ; 22 - const HS_ROUTE_22_RIVAL_2 ; 23 - const HS_NUGGET_BRIDGE_GUY ; 24 - const HS_ROUTE_24_ITEM ; 25 X - const HS_ROUTE_25_ITEM ; 26 X - const HS_DAISY_SITTING ; 27 - const HS_DAISY_WALKING ; 28 - const HS_TOWN_MAP ; 29 - const HS_OAKS_LAB_RIVAL ; 2A - const HS_STARTER_BALL_1 ; 2B - const HS_STARTER_BALL_2 ; 2C - const HS_STARTER_BALL_3 ; 2D - const HS_OAKS_LAB_OAK_1 ; 2E - const HS_POKEDEX_1 ; 2F - const HS_POKEDEX_2 ; 30 - const HS_OAKS_LAB_OAK_2 ; 31 - const HS_VIRIDIAN_GYM_GIOVANNI ; 32 - const HS_VIRIDIAN_GYM_ITEM ; 33 X - const HS_OLD_AMBER ; 34 - const HS_UNKNOWN_DUNGEON_1_ITEM_1 ; 35 X - const HS_UNKNOWN_DUNGEON_1_ITEM_2 ; 36 X - const HS_UNKNOWN_DUNGEON_1_ITEM_3 ; 37 X - const HS_POKEMONTOWER_2_RIVAL ; 38 - const HS_POKEMONTOWER_3_ITEM ; 39 X - const HS_POKEMONTOWER_4_ITEM_1 ; 3A X - const HS_POKEMONTOWER_4_ITEM_2 ; 3B X - const HS_POKEMONTOWER_4_ITEM_3 ; 3C X - const HS_POKEMONTOWER_5_ITEM ; 3D X - const HS_POKEMONTOWER_6_ITEM_1 ; 3E X - const HS_POKEMONTOWER_6_ITEM_2 ; 3F X - const HS_POKEMONTOWER_7_ROCKET_1 ; 40 X - const HS_POKEMONTOWER_7_ROCKET_2 ; 41 X - const HS_POKEMONTOWER_7_ROCKET_3 ; 42 X - const HS_POKEMONTOWER_7_MR_FUJI ; 43 - const HS_LAVENDER_HOUSE_1_MR_FUJI ; 44 - const HS_CELADON_MANSION_5_GIFT ; 45 - const HS_GAME_CORNER_ROCKET ; 46 - const HS_FUCHSIA_HOUSE_2_ITEM ; 47 X - const HS_MANSION_1_ITEM_1 ; 48 X - const HS_MANSION_1_ITEM_2 ; 49 X - const HS_FIGHTING_DOJO_GIFT_1 ; 4A - const HS_FIGHTING_DOJO_GIFT_2 ; 4B - const HS_SILPH_CO_1F_RECEPTIONIST ; 4C - const HS_VOLTORB_1 ; 4D X - const HS_VOLTORB_2 ; 4E X - const HS_VOLTORB_3 ; 4F X - const HS_ELECTRODE_1 ; 50 X - const HS_VOLTORB_4 ; 51 X - const HS_VOLTORB_5 ; 52 X - const HS_ELECTRODE_2 ; 53 X - const HS_VOLTORB_6 ; 54 X - const HS_ZAPDOS ; 55 X - const HS_POWER_PLANT_ITEM_1 ; 56 X - const HS_POWER_PLANT_ITEM_2 ; 57 X - const HS_POWER_PLANT_ITEM_3 ; 58 X - const HS_POWER_PLANT_ITEM_4 ; 59 X - const HS_POWER_PLANT_ITEM_5 ; 5A X - const HS_MOLTRES ; 5B X - const HS_VICTORY_ROAD_2_ITEM_1 ; 5C X - const HS_VICTORY_ROAD_2_ITEM_2 ; 5D X - const HS_VICTORY_ROAD_2_ITEM_3 ; 5E X - const HS_VICTORY_ROAD_2_ITEM_4 ; 5F X - const HS_VICTORY_ROAD_2_BOULDER ; 60 - const HS_BILL_POKEMON ; 61 - const HS_BILL_1 ; 62 - const HS_BILL_2 ; 63 - const HS_VIRIDIAN_FOREST_ITEM_1 ; 64 X - const HS_VIRIDIAN_FOREST_ITEM_2 ; 65 X - const HS_VIRIDIAN_FOREST_ITEM_3 ; 66 X - const HS_MT_MOON_1_ITEM_1 ; 67 X - const HS_MT_MOON_1_ITEM_2 ; 68 X - const HS_MT_MOON_1_ITEM_3 ; 69 X - const HS_MT_MOON_1_ITEM_4 ; 6A X - const HS_MT_MOON_1_ITEM_5 ; 6B X - const HS_MT_MOON_1_ITEM_6 ; 6C X - const HS_MT_MOON_3_FOSSIL_1 ; 6D - const HS_MT_MOON_3_FOSSIL_2 ; 6E - const HS_MT_MOON_3_ITEM_1 ; 6F X - const HS_MT_MOON_3_ITEM_2 ; 70 X - const HS_SS_ANNE_2_RIVAL ; 71 - const HS_SS_ANNE_8_ITEM ; 72 X - const HS_SS_ANNE_9_ITEM_1 ; 73 X - const HS_SS_ANNE_9_ITEM_2 ; 74 X - const HS_SS_ANNE_10_ITEM_1 ; 75 X - const HS_SS_ANNE_10_ITEM_2 ; 76 X - const HS_SS_ANNE_10_ITEM_3 ; 77 X - const HS_VICTORY_ROAD_3_ITEM_1 ; 78 X - const HS_VICTORY_ROAD_3_ITEM_2 ; 79 X - const HS_VICTORY_ROAD_3_BOULDER ; 7A - const HS_ROCKET_HIDEOUT_1_ITEM_1 ; 7B X - const HS_ROCKET_HIDEOUT_1_ITEM_2 ; 7C X - const HS_ROCKET_HIDEOUT_2_ITEM_1 ; 7D X - const HS_ROCKET_HIDEOUT_2_ITEM_2 ; 7E X - const HS_ROCKET_HIDEOUT_2_ITEM_3 ; 7F X - const HS_ROCKET_HIDEOUT_2_ITEM_4 ; 80 X - const HS_ROCKET_HIDEOUT_3_ITEM_1 ; 81 X - const HS_ROCKET_HIDEOUT_3_ITEM_2 ; 82 X - const HS_ROCKET_HIDEOUT_4_GIOVANNI ; 83 - const HS_ROCKET_HIDEOUT_4_ITEM_1 ; 84 X - const HS_ROCKET_HIDEOUT_4_ITEM_2 ; 85 X - const HS_ROCKET_HIDEOUT_4_ITEM_3 ; 86 X - const HS_ROCKET_HIDEOUT_4_ITEM_4 ; 87 - const HS_ROCKET_HIDEOUT_4_ITEM_5 ; 88 - const HS_SILPH_CO_2F_1 ; 89 XXX never (de)activated? - const HS_SILPH_CO_2F_2 ; 8A - const HS_SILPH_CO_2F_3 ; 8B - const HS_SILPH_CO_2F_4 ; 8C - const HS_SILPH_CO_2F_5 ; 8D - const HS_SILPH_CO_3F_1 ; 8E - const HS_SILPH_CO_3F_2 ; 8F - const HS_SILPH_CO_3F_ITEM ; 90 X - const HS_SILPH_CO_4F_1 ; 91 - const HS_SILPH_CO_4F_2 ; 92 - const HS_SILPH_CO_4F_3 ; 93 - const HS_SILPH_CO_4F_ITEM_1 ; 94 X - const HS_SILPH_CO_4F_ITEM_2 ; 95 X - const HS_SILPH_CO_4F_ITEM_3 ; 96 X - const HS_SILPH_CO_5F_1 ; 97 - const HS_SILPH_CO_5F_2 ; 98 - const HS_SILPH_CO_5F_3 ; 99 - const HS_SILPH_CO_5F_4 ; 9A - const HS_SILPH_CO_5F_ITEM_1 ; 9B X - const HS_SILPH_CO_5F_ITEM_2 ; 9C X - const HS_SILPH_CO_5F_ITEM_3 ; 9D X - const HS_SILPH_CO_6F_1 ; 9E - const HS_SILPH_CO_6F_2 ; 9F - const HS_SILPH_CO_6F_3 ; A0 - const HS_SILPH_CO_6F_ITEM_1 ; A1 X - const HS_SILPH_CO_6F_ITEM_2 ; A2 X - const HS_SILPH_CO_7F_1 ; A3 - const HS_SILPH_CO_7F_2 ; A4 - const HS_SILPH_CO_7F_3 ; A5 - const HS_SILPH_CO_7F_4 ; A6 - const HS_SILPH_CO_7F_RIVAL ; A7 - const HS_SILPH_CO_7F_ITEM_1 ; A8 X - const HS_SILPH_CO_7F_ITEM_2 ; A9 X - const HS_SILPH_CO_7F_8 ; AA XXX sprite doesn't exist - const HS_SILPH_CO_8F_1 ; AB - const HS_SILPH_CO_8F_2 ; AC - const HS_SILPH_CO_8F_3 ; AD - const HS_SILPH_CO_9F_1 ; AE - const HS_SILPH_CO_9F_2 ; AF - const HS_SILPH_CO_9F_3 ; B0 - const HS_SILPH_CO_10F_1 ; B1 - const HS_SILPH_CO_10F_2 ; B2 - const HS_SILPH_CO_10F_3 ; B3 XXX never (de)activated? - const HS_SILPH_CO_10F_ITEM_1 ; B4 X - const HS_SILPH_CO_10F_ITEM_2 ; B5 X - const HS_SILPH_CO_10F_ITEM_3 ; B6 X - const HS_SILPH_CO_11F_1 ; B7 - const HS_SILPH_CO_11F_2 ; B8 - const HS_SILPH_CO_11F_3 ; B9 - const HS_MAP_F4_1 ; BA XXX sprite doesn't exist - const HS_MANSION_2_ITEM ; BB X - const HS_MANSION_3_ITEM_1 ; BC X - const HS_MANSION_3_ITEM_2 ; BD X - const HS_MANSION_4_ITEM_1 ; BE X - const HS_MANSION_4_ITEM_2 ; BF X - const HS_MANSION_4_ITEM_3 ; C0 X - const HS_MANSION_4_ITEM_4 ; C1 X - const HS_MANSION_4_ITEM_5 ; C2 X - const HS_SAFARI_ZONE_EAST_ITEM_1 ; C3 X - const HS_SAFARI_ZONE_EAST_ITEM_2 ; C4 X - const HS_SAFARI_ZONE_EAST_ITEM_3 ; C5 X - const HS_SAFARI_ZONE_EAST_ITEM_4 ; C6 X - const HS_SAFARI_ZONE_NORTH_ITEM_1 ; C7 X - const HS_SAFARI_ZONE_NORTH_ITEM_2 ; C8 X - const HS_SAFARI_ZONE_WEST_ITEM_1 ; C9 X - const HS_SAFARI_ZONE_WEST_ITEM_2 ; CA X - const HS_SAFARI_ZONE_WEST_ITEM_3 ; CB X - const HS_SAFARI_ZONE_WEST_ITEM_4 ; CC X - const HS_SAFARI_ZONE_CENTER_ITEM ; CD X - const HS_UNKNOWN_DUNGEON_2_ITEM_1 ; CE X - const HS_UNKNOWN_DUNGEON_2_ITEM_2 ; CF X - const HS_UNKNOWN_DUNGEON_2_ITEM_3 ; D0 X - const HS_MEWTWO ; D1 X - const HS_UNKNOWN_DUNGEON_3_ITEM_1 ; D2 X - const HS_UNKNOWN_DUNGEON_3_ITEM_2 ; D3 X - const HS_VICTORY_ROAD_1_ITEM_1 ; D4 X - const HS_VICTORY_ROAD_1_ITEM_2 ; D5 X - const HS_CHAMPIONS_ROOM_OAK ; D6 - const HS_SEAFOAM_ISLANDS_1_BOULDER_1 ; D7 - const HS_SEAFOAM_ISLANDS_1_BOULDER_2 ; D8 - const HS_SEAFOAM_ISLANDS_2_BOULDER_1 ; D9 - const HS_SEAFOAM_ISLANDS_2_BOULDER_2 ; DA - const HS_SEAFOAM_ISLANDS_3_BOULDER_1 ; DB - const HS_SEAFOAM_ISLANDS_3_BOULDER_2 ; DC - const HS_SEAFOAM_ISLANDS_4_BOULDER_1 ; DD - const HS_SEAFOAM_ISLANDS_4_BOULDER_2 ; DE - const HS_SEAFOAM_ISLANDS_4_BOULDER_3 ; DF - const HS_SEAFOAM_ISLANDS_4_BOULDER_4 ; E0 - const HS_SEAFOAM_ISLANDS_5_BOULDER_1 ; E1 - const HS_SEAFOAM_ISLANDS_5_BOULDER_2 ; E2 - const HS_ARTICUNO ; E3 X + const HS_PIKACHU ; 00 + const HS_PALLET_TOWN_OAK ; 01 + const HS_LYING_OLD_MAN ; 02 + const HS_OLD_MAN ; 03 + const HS_MUSEUM_GUY ; 04 + const HS_GYM_GUY ; 05 + const HS_CERULEAN_RIVAL ; 06 + const HS_CERULEAN_ROCKET ; 07 + const HS_CERULEAN_GUARD_1 ; 08 + const HS_UNKNOWN_DUNGEON_GUY ; 09 + const HS_CERULEAN_GUARD_2 ; 0A + const HS_SAFFRON_CITY_1 ; 0B + const HS_SAFFRON_CITY_2 ; 0C + const HS_SAFFRON_CITY_3 ; 0D + const HS_SAFFRON_CITY_4 ; 0E + const HS_SAFFRON_CITY_5 ; 0F + const HS_SAFFRON_CITY_6 ; 10 + const HS_SAFFRON_CITY_7 ; 11 + const HS_SAFFRON_CITY_8 ; 12 + const HS_SAFFRON_CITY_9 ; 13 + const HS_SAFFRON_CITY_A ; 14 + const HS_SAFFRON_CITY_B ; 15 + const HS_SAFFRON_CITY_C ; 16 + const HS_SAFFRON_CITY_D ; 17 + const HS_SAFFRON_CITY_E ; 18 + const HS_SAFFRON_CITY_F ; 19 X + const HS_ROUTE_2_ITEM_1 ; 1A X + const HS_ROUTE_2_ITEM_2 ; 1B X + const HS_ROUTE_4_ITEM ; 1C X + const HS_ROUTE_9_ITEM ; 1D + const HS_ROUTE_12_SNORLAX ; 1E X + const HS_ROUTE_12_ITEM_1 ; 1F X + const HS_ROUTE_12_ITEM_2 ; 20 X + const HS_ROUTE_15_ITEM ; 21 + const HS_ROUTE_16_SNORLAX ; 22 + const HS_ROUTE_22_RIVAL_1 ; 23 + const HS_ROUTE_22_RIVAL_2 ; 24 + const HS_NUGGET_BRIDGE_GUY ; 25 X + const HS_ROUTE_24_ITEM ; 26 X + const HS_ROUTE_25_ITEM ; 27 + const HS_DAISY_SITTING ; 28 + const HS_DAISY_WALKING ; 29 + const HS_TOWN_MAP ; 2A + const HS_OAKS_LAB_RIVAL ; 2B + const HS_STARTER_BALL_1 ; 2C + const HS_STARTER_BALL_2 ; 2D + const HS_STARTER_BALL_3 ; 2E + const HS_OAKS_LAB_OAK_1 ; 2F + const HS_POKEDEX_1 ; 30 + const HS_POKEDEX_2 ; 31 + const HS_OAKS_LAB_OAK_2 ; 32 + const HS_VIRIDIAN_GYM_GIOVANNI ; 33 X + const HS_VIRIDIAN_GYM_ITEM ; 34 + const HS_OLD_AMBER ; 35 X + const HS_UNKNOWN_DUNGEON_1_ITEM_1 ; 36 X + const HS_UNKNOWN_DUNGEON_1_ITEM_2 ; 37 X + const HS_UNKNOWN_DUNGEON_1_ITEM_3 ; 38 + const HS_POKEMONTOWER_2_RIVAL ; 39 X + const HS_POKEMONTOWER_3_ITEM ; 3A X + const HS_POKEMONTOWER_4_ITEM_1 ; 3B X + const HS_POKEMONTOWER_4_ITEM_2 ; 3C X + const HS_POKEMONTOWER_4_ITEM_3 ; 3D X + const HS_POKEMONTOWER_5_ITEM ; 3E X + const HS_POKEMONTOWER_6_ITEM_1 ; 3F X + const HS_POKEMONTOWER_6_ITEM_2 ; 40 X + const HS_POKEMONTOWER_7_ROCKET_1 ; 41 X + const HS_POKEMONTOWER_7_ROCKET_2 ; 42 X + const HS_POKEMONTOWER_7_ROCKET_3 ; 43 + const HS_POKEMONTOWER_7_MR_FUJI ; 44 + const HS_LAVENDER_HOUSE_1_MR_FUJI ; 45 + const HS_CELADON_MANSION_5_GIFT ; 46 + const HS_GAME_CORNER_ROCKET ; 47 X + const HS_FUCHSIA_HOUSE_2_ITEM ; 48 X + const HS_MANSION_1_ITEM_1 ; 49 X + const HS_MANSION_1_ITEM_2 ; 4A + const HS_FIGHTING_DOJO_GIFT_1 ; 4B + const HS_FIGHTING_DOJO_GIFT_2 ; 4C + const HS_SILPH_CO_1F_RECEPTIONIST ; 4D X + const HS_VOLTORB_1 ; 4E X + const HS_VOLTORB_2 ; 4F X + const HS_VOLTORB_3 ; 50 X + const HS_ELECTRODE_1 ; 51 X + const HS_VOLTORB_4 ; 52 X + const HS_VOLTORB_5 ; 53 X + const HS_ELECTRODE_2 ; 54 X + const HS_VOLTORB_6 ; 55 X + const HS_ZAPDOS ; 56 X + const HS_POWER_PLANT_ITEM_1 ; 57 X + const HS_POWER_PLANT_ITEM_2 ; 58 X + const HS_POWER_PLANT_ITEM_3 ; 59 X + const HS_POWER_PLANT_ITEM_4 ; 5A X + const HS_POWER_PLANT_ITEM_5 ; 5B X + const HS_MOLTRES ; 5C X + const HS_VICTORY_ROAD_2_ITEM_1 ; 5D X + const HS_VICTORY_ROAD_2_ITEM_2 ; 5E X + const HS_VICTORY_ROAD_2_ITEM_3 ; 5F X + const HS_VICTORY_ROAD_2_ITEM_4 ; 60 + const HS_VICTORY_ROAD_2_BOULDER ; 61 + const HS_BILL_POKEMON ; 62 + const HS_BILL_1 ; 63 + const HS_BILL_2 ; 64 X + const HS_VIRIDIAN_FOREST_ITEM_1 ; 65 X + const HS_VIRIDIAN_FOREST_ITEM_2 ; 66 X + const HS_VIRIDIAN_FOREST_ITEM_3 ; 67 X + const HS_MT_MOON_1_ITEM_1 ; 68 X + const HS_MT_MOON_1_ITEM_2 ; 69 X + const HS_MT_MOON_1_ITEM_3 ; 6A X + const HS_MT_MOON_1_ITEM_4 ; 6B X + const HS_MT_MOON_1_ITEM_5 ; 6C X + const HS_MT_MOON_1_ITEM_6 ; 6D + const HS_MT_MOON_3_FOSSIL_1 ; 6E + const HS_MT_MOON_3_FOSSIL_2 ; 6F X + const HS_MT_MOON_3_ITEM_1 ; 70 X + const HS_MT_MOON_3_ITEM_2 ; 71 + const HS_SS_ANNE_2_RIVAL ; 72 X + const HS_SS_ANNE_8_ITEM ; 73 X + const HS_SS_ANNE_9_ITEM_1 ; 74 X + const HS_SS_ANNE_9_ITEM_2 ; 75 X + const HS_SS_ANNE_10_ITEM_1 ; 76 X + const HS_SS_ANNE_10_ITEM_2 ; 77 X + const HS_SS_ANNE_10_ITEM_3 ; 78 X + const HS_VICTORY_ROAD_3_ITEM_1 ; 79 X + const HS_VICTORY_ROAD_3_ITEM_2 ; 7A + const HS_VICTORY_ROAD_3_BOULDER ; 7B X + const HS_ROCKET_HIDEOUT_1_ITEM_1 ; 7C X + const HS_ROCKET_HIDEOUT_1_ITEM_2 ; 7D X + const HS_ROCKET_HIDEOUT_2_ITEM_1 ; 7E X + const HS_ROCKET_HIDEOUT_2_ITEM_2 ; 7F X + const HS_ROCKET_HIDEOUT_2_ITEM_3 ; 80 X + const HS_ROCKET_HIDEOUT_2_ITEM_4 ; 81 X + const HS_ROCKET_HIDEOUT_3_ITEM_1 ; 82 X + const HS_ROCKET_HIDEOUT_3_ITEM_2 ; 83 + const HS_ROCKET_HIDEOUT_4_GIOVANNI ; 84 X + const HS_ROCKET_HIDEOUT_4_ITEM_1 ; 85 X + const HS_ROCKET_HIDEOUT_4_ITEM_2 ; 86 X + const HS_ROCKET_HIDEOUT_4_ITEM_3 ; 87 + const HS_ROCKET_HIDEOUT_4_ITEM_4 ; 88 + const HS_ROCKET_HIDEOUT_4_ITEM_5 ; 89 XXX never (de)activated? + const HS_SILPH_CO_2F_1 ; 8A + const HS_SILPH_CO_2F_2 ; 8B + const HS_SILPH_CO_2F_3 ; 8C + const HS_SILPH_CO_2F_4 ; 8D + const HS_SILPH_CO_2F_5 ; 8E + const HS_SILPH_CO_3F_1 ; 8F + const HS_SILPH_CO_3F_2 ; 90 X + const HS_SILPH_CO_3F_ITEM ; 91 + const HS_SILPH_CO_4F_1 ; 92 + const HS_SILPH_CO_4F_2 ; 93 + const HS_SILPH_CO_4F_3 ; 94 X + const HS_SILPH_CO_4F_ITEM_1 ; 95 X + const HS_SILPH_CO_4F_ITEM_2 ; 96 X + const HS_SILPH_CO_4F_ITEM_3 ; 97 + const HS_SILPH_CO_5F_1 ; 98 + const HS_SILPH_CO_5F_2 ; 99 + const HS_SILPH_CO_5F_3 ; 9A + const HS_SILPH_CO_5F_4 ; 9B X + const HS_SILPH_CO_5F_ITEM_1 ; 9C X + const HS_SILPH_CO_5F_ITEM_2 ; 9D X + const HS_SILPH_CO_5F_ITEM_3 ; 9E + const HS_SILPH_CO_6F_1 ; 9F + const HS_SILPH_CO_6F_2 ; A0 + const HS_SILPH_CO_6F_3 ; A1 X + const HS_SILPH_CO_6F_ITEM_1 ; A2 X + const HS_SILPH_CO_6F_ITEM_2 ; A3 + const HS_SILPH_CO_7F_1 ; A4 + const HS_SILPH_CO_7F_2 ; A5 + const HS_SILPH_CO_7F_3 ; A6 + const HS_SILPH_CO_7F_4 ; A7 + const HS_SILPH_CO_7F_RIVAL ; A8 X + const HS_SILPH_CO_7F_ITEM_1 ; A9 X + const HS_SILPH_CO_7F_ITEM_2 ; AA XXX sprite doesn't exist + const HS_SILPH_CO_7F_8 ; AB + const HS_SILPH_CO_8F_1 ; AC + const HS_SILPH_CO_8F_2 ; AD + const HS_SILPH_CO_8F_3 ; AE + const HS_SILPH_CO_9F_1 ; AF + const HS_SILPH_CO_9F_2 ; B0 + const HS_SILPH_CO_9F_3 ; B1 + const HS_SILPH_CO_10F_1 ; B2 + const HS_SILPH_CO_10F_2 ; B3 XXX never (de)activated? + const HS_SILPH_CO_10F_3 ; B4 X + const HS_SILPH_CO_10F_ITEM_1 ; B5 X + const HS_SILPH_CO_10F_ITEM_2 ; B6 X + const HS_SILPH_CO_10F_ITEM_3 ; B7 + const HS_SILPH_CO_11F_1 ; B8 + const HS_SILPH_CO_11F_2 ; B9 + const HS_SILPH_CO_11F_3 ; BA XXX sprite doesn't exist + const HS_MAP_F4_1 ; BB X + const HS_MANSION_2_ITEM ; BC X + const HS_MANSION_3_ITEM_1 ; BD X + const HS_MANSION_3_ITEM_2 ; BE X + const HS_MANSION_4_ITEM_1 ; BF X + const HS_MANSION_4_ITEM_2 ; C0 X + const HS_MANSION_4_ITEM_3 ; C1 X + const HS_MANSION_4_ITEM_4 ; C2 X + const HS_MANSION_4_ITEM_5 ; C3 X + const HS_SAFARI_ZONE_EAST_ITEM_1 ; C4 X + const HS_SAFARI_ZONE_EAST_ITEM_2 ; C5 X + const HS_SAFARI_ZONE_EAST_ITEM_3 ; C6 X + const HS_SAFARI_ZONE_EAST_ITEM_4 ; C7 X + const HS_SAFARI_ZONE_NORTH_ITEM_1 ; C8 X + const HS_SAFARI_ZONE_NORTH_ITEM_2 ; C9 X + const HS_SAFARI_ZONE_WEST_ITEM_1 ; CA X + const HS_SAFARI_ZONE_WEST_ITEM_2 ; CB X + const HS_SAFARI_ZONE_WEST_ITEM_3 ; CC X + const HS_SAFARI_ZONE_WEST_ITEM_4 ; CD X + const HS_SAFARI_ZONE_CENTER_ITEM ; CE X + const HS_UNKNOWN_DUNGEON_2_ITEM_1 ; CF X + const HS_UNKNOWN_DUNGEON_2_ITEM_2 ; D0 X + const HS_UNKNOWN_DUNGEON_2_ITEM_3 ; D1 X + const HS_MEWTWO ; D2 X + const HS_UNKNOWN_DUNGEON_3_ITEM_1 ; D3 X + const HS_UNKNOWN_DUNGEON_3_ITEM_2 ; D4 X + const HS_VICTORY_ROAD_1_ITEM_1 ; D5 X + const HS_VICTORY_ROAD_1_ITEM_2 ; D6 + const HS_CHAMPIONS_ROOM_OAK ; D7 + const HS_SEAFOAM_ISLANDS_1_BOULDER_1 ; D8 + const HS_SEAFOAM_ISLANDS_1_BOULDER_2 ; D9 + const HS_SEAFOAM_ISLANDS_2_BOULDER_1 ; DA + const HS_SEAFOAM_ISLANDS_2_BOULDER_2 ; DB + const HS_SEAFOAM_ISLANDS_3_BOULDER_1 ; DC + const HS_SEAFOAM_ISLANDS_3_BOULDER_2 ; DD + const HS_SEAFOAM_ISLANDS_4_BOULDER_1 ; DE + const HS_SEAFOAM_ISLANDS_4_BOULDER_2 ; DF + const HS_SEAFOAM_ISLANDS_4_BOULDER_3 ; E0 + const HS_SEAFOAM_ISLANDS_4_BOULDER_4 ; E1 + const HS_SEAFOAM_ISLANDS_5_BOULDER_1 ; E2 + const HS_SEAFOAM_ISLANDS_5_BOULDER_2 ; E3 X + const HS_ARTICUNO ; EF diff --git a/main.asm b/main.asm index 1fbfd873..68229c0d 100755 --- a/main.asm +++ b/main.asm @@ -236,7 +236,7 @@ INCLUDE "data/mapHeaders/celadoncity.asm" INCLUDE "data/mapObjects/celadoncity.asm" CeladonCityBlocks: INCBIN "maps/celadoncity.blk" - dr $182a1,$185ec ; headers, objects, blocks + dr $182a1,$1855a ; headers, objects, blocks ; INCLUDE "data/mapHeaders/pallettown.asm" ; INCLUDE "data/mapObjects/pallettown.asm" ; PalletTownBlocks: INCBIN "maps/pallettown.blk" @@ -245,8 +245,8 @@ CeladonCityBlocks: INCBIN "maps/celadoncity.blk" ; INCLUDE "data/mapObjects/viridiancity.asm" ; ViridianCityBlocks: INCBIN "maps/viridiancity.blk" -; INCLUDE "data/mapHeaders/pewtercity.asm" -; INCLUDE "data/mapObjects/pewtercity.asm" +INCLUDE "data/mapHeaders/pewtercity.asm" +INCLUDE "data/mapObjects/pewtercity.asm" PewterCityBlocks: INCBIN "maps/pewtercity.blk" INCLUDE "data/mapHeaders/ceruleancity.asm" @@ -262,11 +262,11 @@ CeruleanCityBlocks: INCBIN "maps/ceruleancity.blk" ; 18836 ; INCLUDE "data/mapObjects/fuchsiacity.asm" ; FuchsiaCityBlocks: INCBIN "maps/fuchsiacity.blk" - dr $18dee,$1953d ; map scripts + dr $18dee,$192f5 ; map scripts ; INCLUDE "scripts/pallettown.asm" ; INCLUDE "scripts/viridiancity.asm" -; INCLUDE "scripts/pewtercity.asm" +INCLUDE "scripts/pewtercity.asm" ; INCLUDE "scripts/ceruleancity.asm" CeruleanCityScript: dr $1953d,$196cd ; map scripts @@ -803,19 +803,27 @@ INCLUDE "engine/hidden_object_functions14.asm" SECTION "bank15",ROMX,BANK[$15] - dr $54000,$541ee + dr $54000,$54086 +; INCLUDE "data/mapHeaders/route2.asm" +; INCLUDE "data/mapObjects/route2.asm" +Route2Blocks: ; 54086 +INCBIN "maps/route2.blk" + INCLUDE "data/mapHeaders/route3.asm" INCLUDE "data/mapObjects/route3.asm" Route3Blocks: ; 5425d INCBIN "maps/route3.blk" + INCLUDE "data/mapHeaders/route4.asm" INCLUDE "data/mapObjects/route4.asm" Route4Blocks: ; 543f4 INCBIN "maps/route4.blk" + INCLUDE "data/mapHeaders/route5.asm" INCLUDE "data/mapObjects/route5.asm" Route5Blocks: ; 545da INCBIN "maps/route5.blk" + dr $5468e,$54706 Route9Blocks: ; 54706 INCBIN "maps/route9.blk" diff --git a/scripts/pewtercity.asm b/scripts/pewtercity.asm index 66589d52..1e9a922a 100755 --- a/scripts/pewtercity.asm +++ b/scripts/pewtercity.asm @@ -1,10 +1,13 @@ -PewterCityScript: ; 19237 (6:5237) +PewterCityScript: ; 192f5 (6:52f5) call EnableAutoTextBoxDrawing + ld hl, wPreventBlackout + res 7, [hl] ld hl, PewterCityScriptPointers ld a, [W_PEWTERCITYCURSCRIPT] - jp CallFunctionInTable + call JumpTable + ret -PewterCityScriptPointers: ; 19243 (6:5243) +PewterCityScriptPointers: ; 19307 (6:5307) dw PewterCityScript0 dw PewterCityScript1 dw PewterCityScript2 @@ -13,7 +16,7 @@ PewterCityScriptPointers: ; 19243 (6:5243) dw PewterCityScript5 dw PewterCityScript6 -PewterCityScript0: ; 19251 (6:5251) +PewterCityScript0: ; 19315 (6:5315) xor a ld [W_MUSEUM1FCURSCRIPT], a ResetEvent EVENT_BOUGHT_MUSEUM_TICKET @@ -26,7 +29,7 @@ PewterCityScript_1925e: ; 1925e (6:525e) ld hl, CoordsData_19277 call ArePlayerCoordsInArray ret nc - ld a, $f0 + ld a, $fc ld [wJoyIgnore], a ld a, $5 ld [hSpriteIndexOrTextID], a @@ -48,9 +51,9 @@ PewterCityScript1: ; 19280 (6:5280) ld a, SPRITE_FACING_UP ld [hSpriteFacingDirection], a call SetSpriteFacingDirectionAndDelay - ld a, ($3 << 4) | SPRITE_FACING_UP + ld a, SPRITE_FACING_UP ld [hSpriteImageIndex], a - call SetSpriteImageIndexAfterSettingFacingDirection + call SpriteFunc_34a1 call PlayDefaultMusic ld hl, wFlags_0xcd60 set 4, [hl] @@ -115,10 +118,7 @@ PewterCityScript4: ; 19305 (6:5305) ld [H_SPRITEINDEX], a ld a, SPRITE_FACING_LEFT ld [hSpriteFacingDirection], a - call SetSpriteFacingDirectionAndDelay - ld a, ($1 << 4) | SPRITE_FACING_LEFT - ld [hSpriteImageIndex], a - call SetSpriteImageIndexAfterSettingFacingDirection + call SpriteFunc_34a1 call PlayDefaultMusic ld hl, wFlags_0xcd60 set 4, [hl] -- cgit v1.2.3 From bcf3fe249e1ea815573563a047a5580d2666922a Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Thu, 26 May 2016 15:02:53 -0400 Subject: Include and fix Cerulean scripts --- main.asm | 11 ++++------- scripts/ceruleancity.asm | 27 ++++----------------------- 2 files changed, 8 insertions(+), 30 deletions(-) diff --git a/main.asm b/main.asm index 68229c0d..330ac0af 100755 --- a/main.asm +++ b/main.asm @@ -267,12 +267,9 @@ CeruleanCityBlocks: INCBIN "maps/ceruleancity.blk" ; 18836 ; INCLUDE "scripts/pallettown.asm" ; INCLUDE "scripts/viridiancity.asm" INCLUDE "scripts/pewtercity.asm" -; INCLUDE "scripts/ceruleancity.asm" -CeruleanCityScript: - dr $1953d,$196cd ; map scripts +INCLUDE "scripts/ceruleancity.asm" -CeruleanCityTextPointers: - dr $196cd,$19a43 ; map scripts + dr $19841,$19a43 ; vermilion scripts ; INCLUDE "scripts/vermilioncity.asm" ; INCLUDE "scripts/celadoncity.asm" CeladonCityScript: @@ -928,8 +925,8 @@ SECTION "bank1D",ROMX,BANK[$1D] dr $74000,$7405c INCLUDE "engine/items/itemfinder.asm" - - dr $740af,$74726 +INCLUDE "scripts/ceruleancity2.asm" + dr $740d4,$74726 VendingMachineMenu: ; 74726 (1d:4726) dr $74726,$75dfe PKMNLeaguePC: ; 75dfe (1d:5dfe) diff --git a/scripts/ceruleancity.asm b/scripts/ceruleancity.asm index 55254adc..59b0e525 100755 --- a/scripts/ceruleancity.asm +++ b/scripts/ceruleancity.asm @@ -2,7 +2,7 @@ CeruleanCityScript: ; 19480 (6:5480) call EnableAutoTextBoxDrawing ld hl, CeruleanCityScriptPointers ld a, [W_CERULEANCITYCURSCRIPT] - jp CallFunctionInTable + jp JumpTable CeruleanCityScript_1948c: ; 1948c (6:548c) xor a @@ -64,9 +64,7 @@ CeruleanCityScript0: ; 194c8 (6:54c8) ld a, [wWalkBikeSurfState] and a jr z, .asm_19512 - ld a, $ff - ld [wNewSoundID], a - call PlaySound + call StopAllMusic .asm_19512 ld c, BANK(Music_MeetRival) ld a, MUSIC_MEET_RIVAL @@ -136,23 +134,8 @@ CeruleanCityScript1: ; 19567 (6:5567) call SaveEndBattleTextPointers ld a, OPP_SONY1 ld [wCurOpponent], a - - ; select which team to use during the encounter - ld a, [W_RIVALSTARTER] - cp STARTER2 - jr nz, .NotSquirtle - ld a, $7 - jr .done -.NotSquirtle - cp STARTER3 - jr nz, .Charmander - ld a, $8 - jr .done -.Charmander - ld a, $9 -.done + ld a, 3 ld [wTrainerNo], a - xor a ld [hJoyHeld], a call CeruleanCityScript_1955d @@ -171,9 +154,7 @@ CeruleanCityScript2: ; 195b1 (6:55b1) ld a, $1 ld [hSpriteIndexOrTextID], a call DisplayTextID - ld a, $ff - ld [wNewSoundID], a - call PlaySound + call StopAllMusic callba Music_RivalAlternateStart ld a, $1 ld [H_SPRITEINDEX], a -- cgit v1.2.3 From 25cadbde5bcbdc39ee294bb419fb0e30de3b1411 Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Thu, 26 May 2016 15:25:28 -0400 Subject: Route 2 --- data/mapObjects/route2.asm | 7 +++++-- main.asm | 12 +++++------- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/data/mapObjects/route2.asm b/data/mapObjects/route2.asm index 0e6784b2..9731f450 100755 --- a/data/mapObjects/route2.asm +++ b/data/mapObjects/route2.asm @@ -1,13 +1,14 @@ Route2Object: ; 0x54022 (size=72) db $f ; border block - db $6 ; warps + db $7 ; warps db $9, $c, $0, DIGLETTS_CAVE_EXIT db $b, $3, $1, VIRIDIAN_FOREST_EXIT db $13, $f, $0, ROUTE_2_HOUSE db $23, $10, $1, ROUTE_2_GATE db $27, $f, $2, ROUTE_2_GATE db $2b, $3, $2, VIRIDIAN_FOREST_ENTRANCE + db $23, $11, $1, ROUTE_2_GATE db $2 ; signs db $41, $5, $3 ; Route2Text3 @@ -24,10 +25,12 @@ Route2Object: ; 0x54022 (size=72) EVENT_DISP ROUTE_2_WIDTH, $23, $10 ; ROUTE_2_GATE EVENT_DISP ROUTE_2_WIDTH, $27, $f ; ROUTE_2_GATE EVENT_DISP ROUTE_2_WIDTH, $2b, $3 ; VIRIDIAN_FOREST_ENTRANCE + EVENT_DISP ROUTE_2_WIDTH, $23, $11 ; ROUTE_2_GATE ; unused EVENT_DISP $4, $7, $2 - db $12, $c7, $9, $7 + dw $c712 + db $9, $7 EVENT_DISP $4, $7, $2 EVENT_DISP $4, $7, $2 EVENT_DISP $4, $7, $2 diff --git a/main.asm b/main.asm index 330ac0af..276f8e98 100755 --- a/main.asm +++ b/main.asm @@ -236,14 +236,14 @@ INCLUDE "data/mapHeaders/celadoncity.asm" INCLUDE "data/mapObjects/celadoncity.asm" CeladonCityBlocks: INCBIN "maps/celadoncity.blk" - dr $182a1,$1855a ; headers, objects, blocks + dr $182a1,$183f2 ; headers, objects, blocks ; INCLUDE "data/mapHeaders/pallettown.asm" ; INCLUDE "data/mapObjects/pallettown.asm" ; PalletTownBlocks: INCBIN "maps/pallettown.blk" ; INCLUDE "data/mapHeaders/viridiancity.asm" ; INCLUDE "data/mapObjects/viridiancity.asm" -; ViridianCityBlocks: INCBIN "maps/viridiancity.blk" +ViridianCityBlocks: INCBIN "maps/viridiancity.blk" INCLUDE "data/mapHeaders/pewtercity.asm" INCLUDE "data/mapObjects/pewtercity.asm" @@ -799,10 +799,8 @@ INCLUDE "engine/menu/prize_menu.asm" INCLUDE "engine/hidden_object_functions14.asm" SECTION "bank15",ROMX,BANK[$15] - - dr $54000,$54086 -; INCLUDE "data/mapHeaders/route2.asm" -; INCLUDE "data/mapObjects/route2.asm" +INCLUDE "data/mapHeaders/route2.asm" +INCLUDE "data/mapObjects/route2.asm" Route2Blocks: ; 54086 INCBIN "maps/route2.blk" @@ -828,7 +826,7 @@ INCBIN "maps/route9.blk" INCLUDE "engine/battle/experience.asm" - dr $554f7,$5550c +INCLUDE "scripts/route2.asm" INCLUDE "scripts/route3.asm" INCLUDE "scripts/route4.asm" INCLUDE "scripts/route5.asm" -- cgit v1.2.3 From b53be53ba38ccae62b450e48b2501bea43000ddd Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Thu, 26 May 2016 15:46:46 -0400 Subject: Phase 1 of viridian city script disassembly --- data/mapObjects/viridiancity.asm | 15 +- main.asm | 20 ++- scripts/viridiancity.asm | 361 +++++---------------------------------- 3 files changed, 61 insertions(+), 335 deletions(-) diff --git a/data/mapObjects/viridiancity.asm b/data/mapObjects/viridiancity.asm index a2d2815f..79b177f4 100755 --- a/data/mapObjects/viridiancity.asm +++ b/data/mapObjects/viridiancity.asm @@ -9,14 +9,14 @@ ViridianCityObject: ; 0x18384 (size=104) db $7, $20, $0, VIRIDIAN_GYM db $6 ; signs - db $11, $11, $8 ; ViridianCityText8 - db $1, $13, $9 ; ViridianCityText9 - db $1d, $15, $a ; ViridianCityText10 - db $13, $1e, $b ; MartSignText - db $19, $18, $c ; PokeCenterSignText - db $7, $1b, $d ; ViridianCityText13 + db $11, $11, $9 ; ViridianCityText8 + db $1, $13, $a ; ViridianCityText9 + db $1d, $15, $b ; ViridianCityText10 + db $13, $1e, $c ; MartSignText + db $19, $18, $d ; PokeCenterSignText + db $7, $1b, $e ; ViridianCityText13 - db $7 ; objects + db $8 ; objects object SPRITE_BUG_CATCHER, $d, $14, WALK, $0, $1 ; person object SPRITE_GAMBLER, $1e, $8, STAY, NONE, $2 ; person object SPRITE_BUG_CATCHER, $1e, $19, WALK, $0, $3 ; person @@ -24,6 +24,7 @@ ViridianCityObject: ; 0x18384 (size=104) object SPRITE_LYING_OLD_MAN, $12, $9, STAY, NONE, $5 ; person object SPRITE_FISHER2, $6, $17, STAY, DOWN, $6 ; person object SPRITE_GAMBLER, $11, $5, WALK, $2, $7 ; person + object SPRITE_GAMBLER, $12, $9, STAY, NONE, $8 ; warp-to EVENT_DISP VIRIDIAN_CITY_WIDTH, $19, $17 ; VIRIDIAN_POKECENTER diff --git a/main.asm b/main.asm index 276f8e98..d23487f7 100755 --- a/main.asm +++ b/main.asm @@ -236,13 +236,13 @@ INCLUDE "data/mapHeaders/celadoncity.asm" INCLUDE "data/mapObjects/celadoncity.asm" CeladonCityBlocks: INCBIN "maps/celadoncity.blk" - dr $182a1,$183f2 ; headers, objects, blocks + dr $182a1,$18357 ; headers, objects, blocks ; INCLUDE "data/mapHeaders/pallettown.asm" ; INCLUDE "data/mapObjects/pallettown.asm" ; PalletTownBlocks: INCBIN "maps/pallettown.blk" -; INCLUDE "data/mapHeaders/viridiancity.asm" -; INCLUDE "data/mapObjects/viridiancity.asm" +INCLUDE "data/mapHeaders/viridiancity.asm" +INCLUDE "data/mapObjects/viridiancity.asm" ViridianCityBlocks: INCBIN "maps/viridiancity.blk" INCLUDE "data/mapHeaders/pewtercity.asm" @@ -262,10 +262,10 @@ CeruleanCityBlocks: INCBIN "maps/ceruleancity.blk" ; 18836 ; INCLUDE "data/mapObjects/fuchsiacity.asm" ; FuchsiaCityBlocks: INCBIN "maps/fuchsiacity.blk" - dr $18dee,$192f5 ; map scripts + dr $18dee,$1902a ; map scripts ; INCLUDE "scripts/pallettown.asm" -; INCLUDE "scripts/viridiancity.asm" +INCLUDE "scripts/viridiancity.asm" INCLUDE "scripts/pewtercity.asm" INCLUDE "scripts/ceruleancity.asm" @@ -284,7 +284,10 @@ INCLUDE "engine/overworld/ledges.asm" SECTION "bank07",ROMX,BANK[$07] - dr $1c000,$1c21e ; headers, objects, blocks + dr $1c000,$1c0fc ; headers, objects, blocks +Route1Blocks: ; 1c0fc +INCBIN "maps/route1.blk" + dr $1c1b0,$1c21e ; headers, objects, blocks INCLUDE "engine/clear_save.asm" INCLUDE "engine/predefs7.asm" @@ -771,7 +774,10 @@ INCBIN "maps/colosseum.blk" SECTION "bank14",ROMX,BANK[$14] - dr $50000,$506ed + dr $50000,$5003d +Route22Blocks: +INCBIN "maps/route22.blk" + dr $500f1,$506ed Route24Blocks: ; 506ed (14:46ed) INCBIN "maps/route24.blk" dr $507a1,$509aa diff --git a/scripts/viridiancity.asm b/scripts/viridiancity.asm index ece2c4a1..54aaa03e 100755 --- a/scripts/viridiancity.asm +++ b/scripts/viridiancity.asm @@ -1,326 +1,45 @@ -ViridianCityScript: ; 18ff1 (6:4ff1) +ViridianCityScript: ; 1902a (6:502a) call EnableAutoTextBoxDrawing ld hl, ViridianCityScriptPointers ld a, [W_VIRIDIANCITYCURSCRIPT] - jp CallFunctionInTable - -ViridianCityScriptPointers: ; 18ffd (6:4ffd) - dw ViridianCityScript0 - dw ViridianCityScript1 - dw ViridianCityScript2 - dw ViridianCityScript3 - -ViridianCityScript0: ; 19005 (6:5005) - call ViridianCityScript_1900b - jp ViridianCityScript_1903d - -ViridianCityScript_1900b: ; 1900b (6:500b) - CheckEvent EVENT_VIRIDIAN_GYM_OPEN - ret nz - ld a, [wObtainedBadges] - cp %01111111 - jr nz, .asm_1901e - SetEvent EVENT_VIRIDIAN_GYM_OPEN - ret -.asm_1901e - ld a, [wYCoord] - cp $8 - ret nz - ld a, [wXCoord] - cp $20 - ret nz - ld a, $e - ld [hSpriteIndexOrTextID], a - call DisplayTextID - xor a - ld [hJoyHeld], a - call ViridianCityScript_190cf - ld a, $3 - ld [W_VIRIDIANCITYCURSCRIPT], a - ret - -ViridianCityScript_1903d: ; 1903d (6:503d) - CheckEvent EVENT_GOT_POKEDEX - ret nz - ld a, [wYCoord] - cp $9 - ret nz - ld a, [wXCoord] - cp $13 - ret nz - ld a, $5 - ld [hSpriteIndexOrTextID], a - call DisplayTextID - xor a - ld [hJoyHeld], a - call ViridianCityScript_190cf - ld a, $3 - ld [W_VIRIDIANCITYCURSCRIPT], a - ret - -ViridianCityScript1: ; 19062 (6:5062) - ld a, [wSpriteStateData1 + $34] - ld [$ffeb], a - ld a, [wSpriteStateData1 + $36] - ld [$ffec], a - ld a, [wSpriteStateData2 + $34] - ld [$ffed], a - ld a, [wSpriteStateData2 + $35] - ld [$ffee], a - xor a - ld [wListScrollOffset], a - - ; set up battle for Old Man - ld a, $1 - ld [wBattleType], a - ld a, 5 - ld [wCurEnemyLVL], a - ld a, WEEDLE - ld [wCurOpponent], a - ld a, $2 - ld [W_VIRIDIANCITYCURSCRIPT], a - ret - -ViridianCityScript2: ; 1908f (6:508f) - ld a, [$ffeb] - ld [wSpriteStateData1 + $34], a - ld a, [$ffec] - ld [wSpriteStateData1 + $36], a - ld a, [$ffed] - ld [wSpriteStateData2 + $34], a - ld a, [$ffee] - ld [wSpriteStateData2 + $35], a - call UpdateSprites - call Delay3 - xor a - ld [wJoyIgnore], a - ld a, $f - ld [hSpriteIndexOrTextID], a - call DisplayTextID - xor a - ld [wBattleType], a - ld [wJoyIgnore], a - ld a, $0 - ld [W_VIRIDIANCITYCURSCRIPT], a + call JumpTable ret -ViridianCityScript3: ; 190c1 (6:50c1) - ld a, [wSimulatedJoypadStatesIndex] - and a - ret nz - call Delay3 - ld a, 0 - ld [W_VIRIDIANCITYCURSCRIPT], a - ret - -ViridianCityScript_190cf: ; 190cf (6:50cf) - call StartSimulatingJoypadStates - ld a, $1 - ld [wSimulatedJoypadStatesIndex], a - ld a, D_DOWN - ld [wSimulatedJoypadStatesEnd], a - xor a - ld [wSpriteStateData1 + 9], a - ld [wJoyIgnore], a - ret - -ViridianCityTextPointers: ; 190e4 (6:50e4) - dw ViridianCityText1 - dw ViridianCityText2 - dw ViridianCityText3 - dw ViridianCityText4 - dw ViridianCityText5 - dw ViridianCityText6 - dw ViridianCityText7 - dw ViridianCityText8 - dw ViridianCityText9 - dw ViridianCityText10 - dw MartSignText - dw PokeCenterSignText - dw ViridianCityText13 - dw ViridianCityText14 - dw ViridianCityText15 - -ViridianCityText1: ; 19102 (6:5102) - TX_FAR _ViridianCityText1 - db "@" - -ViridianCityText2: ; 19107 (6:5107) - TX_ASM - ld a, [wObtainedBadges] - cp %01111111 - ld hl, ViridianCityText_19127 - jr z, .asm_ae9fe - CheckEvent EVENT_BEAT_VIRIDIAN_GYM_GIOVANNI - jr nz, .asm_ae9fe - ld hl, ViridianCityText_19122 -.asm_ae9fe - call PrintText - jp TextScriptEnd - -ViridianCityText_19122: ; 19122 (6:5122) - TX_FAR _ViridianCityText_19122 - db "@" - -ViridianCityText_19127: ; 19127 (6:5127) - TX_FAR _ViridianCityText_19127 - db "@" - -ViridianCityText3: ; 1912c (6:512c) - TX_ASM - ld hl, ViridianCityText_1914d - call PrintText - call YesNoChoice - ld a, [wCurrentMenuItem] - and a - jr nz, .asm_6dfea - ld hl, ViridianCityText_19157 - call PrintText - jr .asm_d611f -.asm_6dfea - ld hl, ViridianCityText_19152 - call PrintText -.asm_d611f - jp TextScriptEnd - -ViridianCityText_1914d: ; 1914d (6:514d) - TX_FAR _ViridianCityText_1914d - db "@" - -ViridianCityText_19152: ; 19152 (6:5152) - TX_FAR _ViridianCityText_19152 - db "@" - -ViridianCityText_19157: ; 19157 (6:5157) - TX_FAR _ViridianCityText_19157 - db "@" - -ViridianCityText4: ; 1915c (6:515c) - TX_ASM - CheckEvent EVENT_GOT_POKEDEX - jr nz, .asm_83894 - ld hl, ViridianCityText_19175 - call PrintText - jr .asm_700a6 -.asm_83894 - ld hl, ViridianCityText_1917a - call PrintText -.asm_700a6 - jp TextScriptEnd - -ViridianCityText_19175: ; 19175 (6:5175) - TX_FAR _ViridianCityText_19175 - db "@" - -ViridianCityText_1917a: ; 1917a (6:517a) - TX_FAR _ViridianCityText_1917a - db "@" - -ViridianCityText5: ; 1917f (6:517f) - TX_ASM - ld hl, ViridianCityText_19191 - call PrintText - call ViridianCityScript_190cf - ld a, $3 - ld [W_VIRIDIANCITYCURSCRIPT], a - jp TextScriptEnd - -ViridianCityText_19191: ; 19191 (6:5191) - TX_FAR _ViridianCityText_19191 - db "@" - -ViridianCityText6: ; 19196 (6:5196) - TX_ASM - CheckEvent EVENT_GOT_TM42 - jr nz, .asm_4e5a0 - ld hl, ViridianCityText_191ca - call PrintText - lb bc, TM_42, 1 - call GiveItem - jr nc, .BagFull - ld hl, ReceivedTM42Text - call PrintText - SetEvent EVENT_GOT_TM42 - jr .asm_3c73c -.BagFull - ld hl, TM42NoRoomText - call PrintText - jr .asm_3c73c -.asm_4e5a0 - ld hl, TM42Explanation - call PrintText -.asm_3c73c - jp TextScriptEnd - -ViridianCityText_191ca: ; 191ca (6:51ca) - TX_FAR _ViridianCityText_191ca - db "@" - -ReceivedTM42Text: ; 191cf (6:51cf) - TX_FAR _ReceivedTM42Text - db $10, "@" - -TM42Explanation: ; 191d5 (6:51d5) - TX_FAR _TM42Explanation - db "@" - -TM42NoRoomText: ; 191da (6:51da) - TX_FAR _TM42NoRoomText - db "@" - -ViridianCityText7: ; 191df (6:51df) - TX_ASM - ld hl, ViridianCityText_1920a - call PrintText - ld c, 2 - call DelayFrames - call YesNoChoice - ld a, [wCurrentMenuItem] - and a - jr z, .asm_42f68 - ld hl, ViridianCityText_1920f - call PrintText - ld a, $1 - ld [W_VIRIDIANCITYCURSCRIPT], a - jr .asm_2413a -.asm_42f68 - ld hl, ViridianCityText_19214 - call PrintText -.asm_2413a - jp TextScriptEnd - -ViridianCityText_1920a: ; 1920a (6:520a) - TX_FAR _ViridianCityText_1920a - db "@" - -ViridianCityText_1920f: ; 1920f (6:520f) - TX_FAR _ViridianCityText_1920f - db "@" - -ViridianCityText_19214: ; 19214 (6:5214) - TX_FAR _ViridianCityText_19214 - db "@" - -ViridianCityText15: ; 19219 (6:5219) - TX_FAR _ViridianCityText_19219 - db "@" - -ViridianCityText8: ; 1921e (6:521e) - TX_FAR _ViridianCityText8 - db "@" - -ViridianCityText9: ; 19223 (6:5223) - TX_FAR _ViridianCityText9 - db "@" - -ViridianCityText10: ; 19228 (6:5228) - TX_FAR _ViridianCityText10 - db "@" - -ViridianCityText13: ; 1922d (6:522d) - TX_FAR _ViridianCityText13 - db "@" - -ViridianCityText14: ; 19232 (6:5232) - TX_FAR _ViridianCityText14 - db "@" +ViridianCityScriptPointers: ; 19037 (6:5037) + dw ViridianCityScript0 ; 1904d + dw ViridianCityScript1 ; 19054 + dw ViridianCityScript2 ; 19057 + dw ViridianCityScript3 ; 190ca + dw ViridianCityScript4 ; 19104 + dw ViridianCityScript5 ; 1913f + dw ViridianCityScript6 ; 1909d + dw ViridianCityScript7 ; 19191 + dw ViridianCityScript8 ; 191a7 + dw ViridianCityScript9 ; 191cf + dw ViridianCityScript10 ; 191f9 + +ViridianCityScript0: + dr $1904d,$19054 +ViridianCityScript1: ; 19054 + dr $19054,$19057 +ViridianCityScript2: ; 19057 + dr $19057,$1909d +ViridianCityScript6: ; 1909d + dr $1909d,$190ca +ViridianCityScript3: ; 190ca + dr $190ca,$19104 +ViridianCityScript4: ; 19104 + dr $19104,$1913f +ViridianCityScript5: ; 1913f + dr $1913f,$19191 +ViridianCityScript7: ; 19191 + dr $19191,$191a7 +ViridianCityScript8: ; 191a7 + dr $191a7,$191cf +ViridianCityScript9: ; 191cf + dr $191cf,$191f9 +ViridianCityScript10: ; 191f9 + dr $191f9,$19213 + +ViridianCityTextPointers: + dr $19213,$192f5 -- cgit v1.2.3 From fdfc393da39c0978c8472a58e48c2adabae4b508 Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Thu, 26 May 2016 16:44:47 -0400 Subject: Disassemble Yellow Viridian scripts --- engine/bank3c.asm | 4 +- scripts/viridiancity.asm | 236 ++++++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 228 insertions(+), 12 deletions(-) diff --git a/engine/bank3c.asm b/engine/bank3c.asm index 2d10b45c..6345424f 100644 --- a/engine/bank3c.asm +++ b/engine/bank3c.asm @@ -342,7 +342,9 @@ NurseChanseyText: TX_FAR _NurseChanseyText db "@" - dr $f0f26, $f220e + dr $f0f26, $f1a01 +Func_f1a01: + dr $f1a01, $f220e INCLUDE "data/mapHeaders/beach_house.asm" INCLUDE "scripts/beach_house.asm" diff --git a/scripts/viridiancity.asm b/scripts/viridiancity.asm index 54aaa03e..dd4931e9 100755 --- a/scripts/viridiancity.asm +++ b/scripts/viridiancity.asm @@ -19,27 +19,241 @@ ViridianCityScriptPointers: ; 19037 (6:5037) dw ViridianCityScript10 ; 191f9 ViridianCityScript0: - dr $1904d,$19054 + call ViridianCityScript_1905b + call ViridianCityScript_190ab + ret + ViridianCityScript1: ; 19054 - dr $19054,$19057 + call ViridianCityScript_19162 ViridianCityScript2: ; 19057 - dr $19057,$1909d + call ViridianCityScript_1905b + ret + +ViridianCityScript_1905b: + CheckEvent EVENT_VIRIDIAN_GYM_OPEN + ret nz + ld a, [wObtainedBadges] + cp $7f ; all but Earthbadge + jr nz, .asm_1906e + SetEvent EVENT_VIRIDIAN_GYM_OPEN + ret + +.asm_1906e + ld a, [wYCoord] + cp 8 + ret nz + ld a, [wXCoord] + cp 32 + ret nz + ld a, $f + ld [hSpriteIndexOrTextID], a + call DisplayTextID + call StartSimulatingJoypadStates + ld a, $1 + ld [wSimulatedJoypadStatesIndex], a + ld a, $80 + ld [wSimulatedJoypadStatesEnd], a + xor a + ld [wSpriteStateData1 + 9], a + ld [wJoyIgnore], a + ld [hJoyHeld], a + ld a, $6 + ld [W_VIRIDIANCITYCURSCRIPT], a + ret + ViridianCityScript6: ; 1909d - dr $1909d,$190ca + ld a, [wSimulatedJoypadStatesIndex] + and a + ret nz + call Delay3 + ld a, $2 + ld [W_VIRIDIANCITYCURSCRIPT], a + ret + +ViridianCityScript_190ab: + ld a, [wYCoord] + cp 9 + ret nz + ld a, [wXCoord] + cp 19 + ret nz + ld a, $5 + ld [hSpriteIndexOrTextID], a + call DisplayTextID + xor a + ld [hJoyHeld], a + call ViridianCityScript_1914d + ld a, $5 + ld [W_VIRIDIANCITYCURSCRIPT], a + ret + ViridianCityScript3: ; 190ca - dr $190ca,$19104 + call ViridianCityScript_190ef + call ViridianCityScript_190db + ResetEvent EVENT_02F + ld a, $4 + ld [W_VIRIDIANCITYCURSCRIPT], a + ret + +ViridianCityScript_190db: + xor a + ld [wListScrollOffset], a + ld a, OLD_MAN_BATTLE + ld [wBattleType], a + ld a, 5 + ld [wCurEnemyLVL], a + ld a, RATTATA + ld [wCurOpponent], a + ret + +ViridianCityScript_190ef: + ld a, [wSpriteStateData1 + 3 * $10 + 4] + ld [$ffeb], a + ld a, [wSpriteStateData1 + 3 * $10 + 6] + ld [$ffec], a + ld a, [wSpriteStateData2 + 3 * $10 + 4] + ld [$ffed], a + ld a, [wSpriteStateData2 + 3 * $10 + 5] + ld [$ffee], a + ret + ViridianCityScript4: ; 19104 - dr $19104,$1913f + call ViridianCityScript_1912a + call UpdateSprites + call Delay3 + SetEvent EVENT_02E + xor a + ld [wJoyIgnore], a + ld a, $10 + ld [hSpriteIndexOrTextID], a + call DisplayTextID + xor a + ld [wBattleType], a + ld [wJoyIgnore], a + ld a, $2 + ld [W_VIRIDIANCITYCURSCRIPT], a + ret + +ViridianCityScript_1912a: + ld a, [$ffeb] + ld [wSpriteStateData1 + 3 * $10 + 4], a + ld a, [$ffec] + ld [wSpriteStateData1 + 3 * $10 + 6], a + ld a, [$ffed] + ld [wSpriteStateData2 + 3 * $10 + 4], a + ld a, [$ffee] + ld [wSpriteStateData2 + 3 * $10 + 5], a + ret + ViridianCityScript5: ; 1913f - dr $1913f,$19191 + ld a, [wSimulatedJoypadStatesIndex] + and a + ret nz + call Delay3 + ld a, $0 + ld [W_VIRIDIANCITYCURSCRIPT], a + ret + +ViridianCityScript_1914d: + call StartSimulatingJoypadStates + ld a, $1 + ld [wSimulatedJoypadStatesIndex], a + ld a, $80 + ld [wSimulatedJoypadStatesEnd], a + xor a + ld [wSpriteStateData1 + 9], a + ld [wJoyIgnore], a + ret + +ViridianCityScript_19162: + CheckEvent EVENT_02D + ret nz + ld a, [wYCoord] + cp 9 + ret nz + ld a, [wXCoord] + cp 19 + ret nz + ld a, $8 + ld [hSpriteIndexOrTextID], a + ld a, SPRITE_FACING_RIGHT + ld [hSpriteFacingDirection], a + call SetSpriteFacingDirectionAndDelay + ld a, $8 + ld [wSpriteStateData1 + 9], a + ld a, $8 + ld [hSpriteIndexOrTextID], a + call DisplayTextID + ld a, D_UP | D_DOWN | D_LEFT | D_RIGHT | START | SELECT + ld [wJoyIgnore], a + ret + ViridianCityScript7: ; 19191 - dr $19191,$191a7 + call ViridianCityScript_190ef + call ViridianCityScript_190db + SetEvent EVENT_02F + ld a, D_UP | D_DOWN | D_LEFT | D_RIGHT | START | SELECT + ld [wJoyIgnore], a + ld a, $8 + ld [W_VIRIDIANCITYCURSCRIPT], a + ret + ViridianCityScript8: ; 191a7 - dr $191a7,$191cf + call ViridianCityScript_1912a + call UpdateSprites + call Delay3 + SetEvent EVENT_02D + ld a, D_UP | D_DOWN | D_LEFT | D_RIGHT | START | SELECT + ld [wJoyIgnore], a + ld a, $8 + ld [hSpriteIndexOrTextID], a + call DisplayTextID + xor a + ld [wBattleType], a + dec a + ld [wJoyIgnore], a + ld a, $9 + ld [W_VIRIDIANCITYCURSCRIPT], a + ret + ViridianCityScript9: ; 191cf - dr $191cf,$191f9 + ld de, ViridianCityOldManMovementData2 + ld a, [wXCoord] + cp 19 + jr z, .asm_191e4 + callab Func_f1a01 + ld de, ViridianCityOldManMovementData1 +.asm_191e4 + ld a, $8 + ld [hSpriteIndexOrTextID], a + call MoveSprite + ld a, $a + ld [W_VIRIDIANCITYCURSCRIPT], a + ret + +ViridianCityOldManMovementData1: + db NPC_MOVEMENT_RIGHT +ViridianCityOldManMovementData2: + db NPC_MOVEMENT_DOWN + db NPC_MOVEMENT_DOWN + db NPC_MOVEMENT_DOWN + db NPC_MOVEMENT_DOWN + db NPC_MOVEMENT_DOWN + db NPC_MOVEMENT_DOWN + db $ff + ViridianCityScript10: ; 191f9 - dr $191f9,$19213 + ld a, [wd730] + bit 0, a + ret nz + ld a, $3 + ld [wMissableObjectIndex], a + predef HideObject + xor a + ld [wJoyIgnore], a + ld a, $2 + ld [W_VIRIDIANCITYCURSCRIPT], a + ret ViridianCityTextPointers: dr $19213,$192f5 -- cgit v1.2.3 From ce639816996d908de0a197b62c08d3a63846a512 Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Thu, 26 May 2016 18:24:54 -0400 Subject: Final phase 3 of Viridian City script disassembly --- engine/bank3c.asm | 11 ++- engine/bank3f.asm | 17 ++-- macros.asm | 2 + scripts/viridiancity.asm | 111 +++++++++++++++++++++- scripts/viridiancity2.asm | 218 ++++++++++++++++++++++++++++++++++++++++++++ text/maps/viridian_city.asm | 2 +- 6 files changed, 345 insertions(+), 16 deletions(-) create mode 100755 scripts/viridiancity2.asm diff --git a/engine/bank3c.asm b/engine/bank3c.asm index 6345424f..e8121bb1 100644 --- a/engine/bank3c.asm +++ b/engine/bank3c.asm @@ -302,7 +302,7 @@ Func_f0a82: ; f0a82 ret nz push hl push bc - callab Func_fcb4d + callab Func_fcb4d ; get Pikachu's position with respect to you? pop bc pop hl ld a, b @@ -317,7 +317,7 @@ Func_f0a82: ; f0a82 pop af ld [wUpdateSpritesEnabled], a pop hl - call Func_159b + call Func_159b ; homecall Func_fd2a1 - pikachu movement script? callab Func_fcba1 ret @@ -342,9 +342,10 @@ NurseChanseyText: TX_FAR _NurseChanseyText db "@" - dr $f0f26, $f1a01 -Func_f1a01: - dr $f1a01, $f220e + dr $f0f26, $f18bb + +INCLUDE "scripts/viridiancity2.asm" + dr $f1a0f, $f220e INCLUDE "data/mapHeaders/beach_house.asm" INCLUDE "scripts/beach_house.asm" diff --git a/engine/bank3f.asm b/engine/bank3f.asm index a077a24b..8f01097e 100644 --- a/engine/bank3f.asm +++ b/engine/bank3f.asm @@ -1051,32 +1051,35 @@ Func_fcb52: ; fcb52 (3f:4b52) ld a, [wYCoord] add $4 ld e, a - ld hl, $104 + ld hl, wSpriteStateData2 - wSpriteStateData1 + 4 add hl, bc ld a, [hl] cp e jr z, Func_fcb71 jr nc, .asm_fcb6e - ld a, $4 + ld a, SPRITE_FACING_UP ret + .asm_fcb6e - ld a, $0 + ld a, SPRITE_FACING_DOWN ret Func_fcb71: ; fcb71 (3f:4b71) - ld hl, $105 + ld hl, wSpriteStateData2 - wSpriteStateData1 + 5 add hl, bc ld a, [hl] cp d jr z, .asm_fcb81 jr nc, .asm_fcb7e - ld a, $8 + ld a, SPRITE_FACING_LEFT ret + .asm_fcb7e - ld a, $c + ld a, SPRITE_FACING_RIGHT ret + .asm_fcb81 - ld a, $ff + ld a, $ff ; standing ret Func_fcb84: ; fcb84 (3f:4b84) diff --git a/macros.asm b/macros.asm index 7c2dd65e..ed59b848 100644 --- a/macros.asm +++ b/macros.asm @@ -312,6 +312,8 @@ TX_ASM: MACRO ENDM TX_SFX_ITEM EQUS "db $0b" +TX_SFX_CONGRATS EQUS "db $10" +TX_SFX_KEY_ITEM EQUS "db $11" ; Predef macro. add_predef: MACRO diff --git a/scripts/viridiancity.asm b/scripts/viridiancity.asm index dd4931e9..c20285bc 100755 --- a/scripts/viridiancity.asm +++ b/scripts/viridiancity.asm @@ -51,7 +51,7 @@ ViridianCityScript_1905b: call StartSimulatingJoypadStates ld a, $1 ld [wSimulatedJoypadStatesIndex], a - ld a, $80 + ld a, D_DOWN ld [wSimulatedJoypadStatesEnd], a xor a ld [wSpriteStateData1 + 9], a @@ -158,7 +158,7 @@ ViridianCityScript_1914d: call StartSimulatingJoypadStates ld a, $1 ld [wSimulatedJoypadStatesIndex], a - ld a, $80 + ld a, D_DOWN ld [wSimulatedJoypadStatesEnd], a xor a ld [wSpriteStateData1 + 9], a @@ -256,4 +256,109 @@ ViridianCityScript10: ; 191f9 ret ViridianCityTextPointers: - dr $19213,$192f5 + dw ViridianCityText_0 ; 19233 + dw ViridianCityText_1 ; 1923f + dw ViridianCityText_2 ; 1924b + dw ViridianCityText_3 ; 19257 + dw ViridianCityText_4 ; 19263 + dw ViridianCityText_5 ; 1926f + dw ViridianCityText_6 ; 1927b + dw ViridianCityText_7 ; 1928c + dw ViridianCityText_8 ; 192b9 + dw ViridianCityText_9 ; 192c5 + dw ViridianCityText_10 ; 192d1 + dw MartSignText ; 23e5 + dw PokeCenterSignText ; 23ea + dw ViridianCityText_11 ; 192dd + dw ViridianCityText_12 ; 192e9 + dw ViridianCityText_13 ; 19287 + +ViridianCityText_0: + TX_ASM + callba Func_f18bb + jp TextScriptEnd + +ViridianCityText_1: + TX_ASM + callba Func_f18c7 + jp TextScriptEnd + +ViridianCityText_2: + TX_ASM + callba Func_f18e9 + jp TextScriptEnd + +ViridianCityText_3: + TX_ASM + callba Func_f1911 + jp TextScriptEnd + +ViridianCityText_4: + TX_ASM + callba Func_f192c + jp TextScriptEnd + +ViridianCityText_5: + TX_ASM + callba Func_f194a + jp TextScriptEnd + +ViridianCityText_6: + TX_ASM + callba Func_f198e + jp TextScriptEnd + +ViridianCityText_13: + TX_FAR _ViridianCityText_19219 + db "@" + +ViridianCityText_7: + TX_ASM + CheckEvent EVENT_02D + jr nz, .asm_192a6 + ld hl, ViridianCityText_192af + call PrintText + ld c, 2 + call DelayFrames + ld a, $7 + ld [W_VIRIDIANCITYCURSCRIPT], a + jr .asm_192ac + +.asm_192a6 + ld hl, ViridianCityText_192b4 + call PrintText +.asm_192ac + jp TextScriptEnd + +ViridianCityText_192af: + TX_FAR _ViridianCityText_1920a + db "@" + +ViridianCityText_192b4: + TX_FAR _OldManTextAfterBattle + db "@" + +ViridianCityText_8: + TX_ASM + callba Func_f19c5 + jp TextScriptEnd + +ViridianCityText_9: + TX_ASM + callba Func_f19d1 + jp TextScriptEnd + +ViridianCityText_10: + TX_ASM + callba Func_f19dd + jp TextScriptEnd + +ViridianCityText_11: + TX_ASM + callba Func_f19e9 + jp TextScriptEnd + +ViridianCityText_12: + TX_ASM + callba Func_f19f5 + jp TextScriptEnd diff --git a/scripts/viridiancity2.asm b/scripts/viridiancity2.asm new file mode 100755 index 00000000..80ae3924 --- /dev/null +++ b/scripts/viridiancity2.asm @@ -0,0 +1,218 @@ +Func_f18bb: + ld hl, ViridianCityText_f18c2 + call PrintText + ret + +ViridianCityText_f18c2: + TX_FAR _ViridianCityText1 + db "@" + +Func_f18c7: + ld hl, ViridianCityText_f18e4 + ld a, [wObtainedBadges] + cp $7f ; all but EARTHBADGE + jr z, .asm_f18db + CheckEvent EVENT_BEAT_VIRIDIAN_GYM_GIOVANNI + jr nz, .asm_f18db + ld hl, ViridianCityText_f18df +.asm_f18db + call PrintText + ret + +ViridianCityText_f18df: + TX_FAR _ViridianCityText_19122 + db "@" + +ViridianCityText_f18e4: + TX_FAR _ViridianCityText_19127 + db "@" + +Func_f18e9: + ld hl, ViridianCityText_f1902 + call PrintText + call YesNoChoice + ld a, [wCurrentMenuItem] + and a + ld hl, ViridianCityText_f1907 + jr nz, .asm_f18fe + ld hl, ViridianCityText_f190c +.asm_f18fe + call PrintText + ret + +ViridianCityText_f1902: + TX_FAR _ViridianCityText_1914d + db "@" + +ViridianCityText_f1907: + TX_FAR _ViridianCityText_19152 + db "@" + +ViridianCityText_f190c: + TX_FAR _ViridianCityText_19157 + db "@" + +Func_f1911: + ld hl, ViridianCityText_f1927 + CheckEvent EVENT_GOT_POKEDEX + jr nz, .asm_f191e + ld hl, ViridianCityText_f1922 +.asm_f191e + call PrintText + ret + +ViridianCityText_f1922: + TX_FAR _ViridianCityText_19175 + db "@" + +ViridianCityText_f1927: + TX_FAR _ViridianCityText_1917a + db "@" + +Func_f192c: + ld hl, ViridianCityText_f1945 + call PrintText + call StartSimulatingJoypadStates + ld a, $1 + ld [wSimulatedJoypadStatesIndex], a + ld a, D_DOWN + ld [wSimulatedJoypadStatesEnd], a + ld a, $5 + ld [W_VIRIDIANCITYCURSCRIPT], a + ret + +ViridianCityText_f1945: + TX_FAR _ViridianCityText_19191 + db "@" + +Func_f194a: + CheckEvent EVENT_GOT_TM42 + jr nz, .asm_f1972 + ld hl, ViridianCityText_f1979 + call PrintText + lb bc, TM_42, 1 + call GiveItem + jr nc, .asm_f196b + ld hl, ViridianCityText_f197e + call PrintText + SetEvent EVENT_GOT_TM42 + ret + +.asm_f196b + ld hl, ViridianCityText_f1989 + call PrintText + ret + +.asm_f1972 + ld hl, ViridianCityText_f1984 + call PrintText + ret + +ViridianCityText_f1979: + TX_FAR _ViridianCityText_191ca + db "@" + +ViridianCityText_f197e: + TX_FAR _ReceivedTM42Text + TX_SFX_CONGRATS + db "@" + +ViridianCityText_f1984: + TX_FAR _TM42Explanation + db "@" + +ViridianCityText_f1989: + TX_FAR _TM42NoRoomText + db "@" + +Func_f198e: + ld hl, ViridianCityText_f19b6 + call PrintText + ld c, 2 + call DelayFrames + call YesNoChoice + ld a, [wCurrentMenuItem] + and a + jr nz, .asm_f19af + ld hl, ViridianCityText_f19bb + call PrintText + ld a, $3 + ld [W_VIRIDIANCITYCURSCRIPT], a + jr .asm_f19b5 + +.asm_f19af + ld hl, ViridianCityText_f19c0 + call PrintText +.asm_f19b5 + ret + +ViridianCityText_f19b6: + TX_FAR _OldManAgainText1 + db "@" + +ViridianCityText_f19bb: + TX_FAR _OldManAgainText2 + db "@" + +ViridianCityText_f19c0: + TX_FAR _OldManAgainText3 + db "@" + +Func_f19c5: + ld hl, ViridianCityText_f19cc + call PrintText + ret + +ViridianCityText_f19cc: + TX_FAR _ViridianCityText8 + db "@" + +Func_f19d1: + ld hl, ViridianCityText_f19d8 + call PrintText + ret + +ViridianCityText_f19d8: + TX_FAR _ViridianCityText9 + db "@" + +Func_f19dd: + ld hl, ViridianCityText_f19e4 + call PrintText + ret + +ViridianCityText_f19e4: + TX_FAR _ViridianCityText10 + db "@" + +Func_f19e9: + ld hl, ViridianCityText_f19f0 + call PrintText + ret + +ViridianCityText_f19f0: + TX_FAR _ViridianCityText13 + db "@" + +Func_f19f5: + ld hl, ViridianCityText_f19fc + call PrintText + ret + +ViridianCityText_f19fc: + TX_FAR _ViridianCityText14 + db "@" + + +Func_f1a01: + ld hl, Data_f1a0a + ld b, SPRITE_FACING_RIGHT + call Func_f0a82 + ret + +Data_f1a0a: + db $00 + db $1d + db $1f + db $38 + db $3f diff --git a/text/maps/viridian_city.asm b/text/maps/viridian_city.asm index 4459acb8..a9a2184e 100644 --- a/text/maps/viridian_city.asm +++ b/text/maps/viridian_city.asm @@ -1,4 +1,4 @@ -_ViridianCityText_19219:: +_ViridianCityText_19219:: ; 2d:4478 text "First, you need" line "to weaken the" cont "target #MON." -- cgit v1.2.3 From 8916d80ef45c6411040a311b11174f83ce845313 Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Thu, 26 May 2016 18:57:48 -0400 Subject: Disassemble Route 1 --- engine/bank3c.asm | 6 +++++- main.asm | 18 +++++++++++++----- scripts/route1.asm | 46 +++++++++------------------------------------ scripts/route1_2.asm | 53 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 80 insertions(+), 43 deletions(-) create mode 100755 scripts/route1_2.asm diff --git a/engine/bank3c.asm b/engine/bank3c.asm index e8121bb1..efb0c25f 100644 --- a/engine/bank3c.asm +++ b/engine/bank3c.asm @@ -345,7 +345,11 @@ NurseChanseyText: dr $f0f26, $f18bb INCLUDE "scripts/viridiancity2.asm" - dr $f1a0f, $f220e + dr $f1a0f, $f1ad2 + +INCLUDE "scripts/route1_2.asm" + + dr $f1b27, $f220e INCLUDE "data/mapHeaders/beach_house.asm" INCLUDE "scripts/beach_house.asm" diff --git a/main.asm b/main.asm index d23487f7..e78f650d 100755 --- a/main.asm +++ b/main.asm @@ -236,10 +236,10 @@ INCLUDE "data/mapHeaders/celadoncity.asm" INCLUDE "data/mapObjects/celadoncity.asm" CeladonCityBlocks: INCBIN "maps/celadoncity.blk" - dr $182a1,$18357 ; headers, objects, blocks + dr $182a1,$182fd ; headers, objects, blocks ; INCLUDE "data/mapHeaders/pallettown.asm" ; INCLUDE "data/mapObjects/pallettown.asm" -; PalletTownBlocks: INCBIN "maps/pallettown.blk" +PalletTownBlocks: INCBIN "maps/pallettown.blk" INCLUDE "data/mapHeaders/viridiancity.asm" INCLUDE "data/mapObjects/viridiancity.asm" @@ -283,8 +283,14 @@ INCLUDE "engine/overworld/doors.asm" INCLUDE "engine/overworld/ledges.asm" SECTION "bank07",ROMX,BANK[$07] - - dr $1c000,$1c0fc ; headers, objects, blocks +; INCLUDE "data/mapHeaders/cinnabarisland.asm" +; INCLUDE "data/mapObjects/cinnabarisland.asm" + dr $1c000,$1c069 ; headers, objects, blocks +CinnabarIslandBlocks: +INCBIN "maps/cinnabarisland.blk" + +INCLUDE "data/mapHeaders/route1.asm" +INCLUDE "data/mapObjects/route1.asm" Route1Blocks: ; 1c0fc INCBIN "maps/route1.blk" dr $1c1b0,$1c21e ; headers, objects, blocks @@ -292,7 +298,9 @@ INCBIN "maps/route1.blk" INCLUDE "engine/clear_save.asm" INCLUDE "engine/predefs7.asm" - dr $1c2c2,$1e2ae ; map scripts + dr $1c2c2,$1c358 ; map scripts +INCLUDE "scripts/route1.asm" + dr $1c386,$1e2ae ; map scripts INCLUDE "engine/menu/oaks_pc.asm" diff --git a/scripts/route1.asm b/scripts/route1.asm index 926ffd20..8c7cc0e9 100755 --- a/scripts/route1.asm +++ b/scripts/route1.asm @@ -1,5 +1,6 @@ Route1Script: ; 1caaf (7:4aaf) - jp EnableAutoTextBoxDrawing + call EnableAutoTextBoxDrawing + ret Route1TextPointers: ; 1cab2 (7:4ab2) dw Route1Text1 @@ -8,44 +9,15 @@ Route1TextPointers: ; 1cab2 (7:4ab2) Route1Text1: ; 1cab8 (7:4ab8) TX_ASM - CheckAndSetEvent EVENT_GOT_POTION_SAMPLE - jr nz, .asm_1cada - ld hl, Route1ViridianMartSampleText - call PrintText - lb bc, POTION, 1 - call GiveItem - jr nc, .BagFull - ld hl, Route1Text_1cae8 - jr .asm_1cadd -.BagFull - ld hl, Route1Text_1caf3 - jr .asm_1cadd -.asm_1cada - ld hl, Route1Text_1caee -.asm_1cadd - call PrintText + callba Func_f1ad2 jp TextScriptEnd -Route1ViridianMartSampleText: ; 1cae3 (7:4ae3) - TX_FAR _Route1ViridianMartSampleText - db "@" - -Route1Text_1cae8: ; 1cae8 (7:4ae8) - TX_FAR _Route1Text_1cae8 - db $0b,"@" - -Route1Text_1caee: ; 1caee (7:4aee) - TX_FAR _Route1Text_1caee - db "@" - -Route1Text_1caf3: ; 1caf3 (7:4af3) - TX_FAR _Route1Text_1caf3 - db "@" - Route1Text2: ; 1caf8 (7:4af8) - TX_FAR _Route1Text2 - db "@" + TX_ASM + callba Func_f1b0f + jp TextScriptEnd Route1Text3: ; 1cafd (7:4afd) - TX_FAR _Route1Text3 - db "@" + TX_ASM + callba Func_f1b1b + jp TextScriptEnd diff --git a/scripts/route1_2.asm b/scripts/route1_2.asm new file mode 100755 index 00000000..35ffb137 --- /dev/null +++ b/scripts/route1_2.asm @@ -0,0 +1,53 @@ +Func_f1ad2: + CheckAndSetEvent EVENT_GOT_POTION_SAMPLE + jr nz, .asm_1cada + ld hl, Route1ViridianMartSampleText + call PrintText + lb bc, POTION, 1 + call GiveItem + jr nc, .BagFull + ld hl, Route1Text_f1aff + jr .asm_1cadd +.BagFull + ld hl, Route1Text_f1b0a + jr .asm_1cadd +.asm_1cada + ld hl, Route1Text_f1b05 +.asm_1cadd + call PrintText + ret + +Route1ViridianMartSampleText: ; 1cae3 (7:4ae3) + TX_FAR _Route1ViridianMartSampleText + db "@" + +Route1Text_f1aff: ; 1cae8 (7:4ae8) + TX_FAR _Route1Text_1cae8 + TX_SFX_ITEM + db "@" + +Route1Text_f1b05: ; 1caee (7:4aee) + TX_FAR _Route1Text_1caee + db "@" + +Route1Text_f1b0a: ; 1caf3 (7:4af3) + TX_FAR _Route1Text_1caf3 + db "@" + +Func_f1b0f: ; 1caf8 (7:4af8) + ld hl, Route1Text_f1b16 + call PrintText + ret + +Route1Text_f1b16: + TX_FAR _Route1Text2 + db "@" + +Func_f1b1b: ; 1cafd (7:4afd) + ld hl, Route1Text_f1b22 + call PrintText + ret + +Route1Text_f1b22: + TX_FAR _Route1Text3 + db "@" -- cgit v1.2.3 From c1be6f73744896d8230c9665ee0850bb90a030fb Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Thu, 26 May 2016 21:12:12 -0400 Subject: Hey, I found a thing! --- engine/bank3c.asm | 3 +- scripts/vermilioncity2.asm | 68 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 69 insertions(+), 2 deletions(-) create mode 100755 scripts/vermilioncity2.asm diff --git a/engine/bank3c.asm b/engine/bank3c.asm index efb0c25f..7cb6ae5d 100644 --- a/engine/bank3c.asm +++ b/engine/bank3c.asm @@ -345,8 +345,7 @@ NurseChanseyText: dr $f0f26, $f18bb INCLUDE "scripts/viridiancity2.asm" - dr $f1a0f, $f1ad2 - +INCLUDE "scripts/vermilioncity2.asm" INCLUDE "scripts/route1_2.asm" dr $f1b27, $f220e diff --git a/scripts/vermilioncity2.asm b/scripts/vermilioncity2.asm new file mode 100755 index 00000000..4a068f88 --- /dev/null +++ b/scripts/vermilioncity2.asm @@ -0,0 +1,68 @@ +Func_f1a0f: + CheckEvent EVENT_147 + jr nz, .asm_f1a69 + ld a, [wBeatGymFlags] + bit 2, a ; THUNDERBADGE + jr nz, .asm_f1a24 + ld hl, OfficerJennyText1 + call PrintText + ret + +.asm_f1a24 + ld hl, OfficerJennyText2 + call PrintText + call YesNoChoice + ld a, [wCurrentMenuItem] + and a + jr nz, .asm_f1a62 + ld a, SQUIRTLE + ld [wd11e], a + ld [wcf91], a + call GetMonName + ld a, $1 + ld [wDoNotWaitForButtonPressAfterDisplayingText], a + lb bc, SQUIRTLE, 10 + call GivePokemon + ret nc + ld a, [wAddedToParty] + and a + call z, WaitForTextScrollButtonPress + ld a, $1 + ld [wDoNotWaitForButtonPressAfterDisplayingText], a + ld hl, OfficerJennyText3 + call PrintText + SetEvent EVENT_147 + ret + +.asm_f1a62 + ld hl, OfficerJennyText4 + call PrintText + ret + +.asm_f1a69 + ld hl, OfficerJennyText5 + call PrintText + ret + +OfficerJennyText1: + TX_FAR _OfficerJennyText1 + db "@" + +OfficerJennyText2: + TX_FAR _OfficerJennyText2 + db "@" + +OfficerJennyText3: + TX_FAR _OfficerJennyText3 + db $d + db "@" + +OfficerJennyText4: + TX_FAR _OfficerJennyText4 + db "@" + +OfficerJennyText5: + TX_FAR _OfficerJennyText5 + db "@" + + dr $f1a8a,$f1ad2 -- cgit v1.2.3 From edafbab453e53564e1826fb6b73bbc72e7f9edd3 Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Thu, 26 May 2016 22:02:52 -0400 Subject: Disassemble Pallet Town --- constants/hide_show_constants.asm | 4 +- data/mapObjects/pallettown.asm | 2 +- main.asm | 16 ++- scripts/pallettown.asm | 286 +++++++++++++++++++++++++------------- 4 files changed, 199 insertions(+), 109 deletions(-) diff --git a/constants/hide_show_constants.asm b/constants/hide_show_constants.asm index 02ebc54e..9d009f5e 100755 --- a/constants/hide_show_constants.asm +++ b/constants/hide_show_constants.asm @@ -6,8 +6,8 @@ const_value = 0 - const HS_PIKACHU ; 00 - const HS_PALLET_TOWN_OAK ; 01 + const HS_PALLET_TOWN_OAK ; 00 + const HS_PIKACHU ; 01 const HS_LYING_OLD_MAN ; 02 const HS_OLD_MAN ; 03 const HS_MUSEUM_GUY ; 04 diff --git a/data/mapObjects/pallettown.asm b/data/mapObjects/pallettown.asm index 4832246f..0d45fea3 100755 --- a/data/mapObjects/pallettown.asm +++ b/data/mapObjects/pallettown.asm @@ -13,7 +13,7 @@ PalletTownObject: ; 0x182c3 (size=58) db $5, $b, $7 ; PalletTownText7 db $3 ; objects - object SPRITE_OAK, $8, $5, STAY, NONE, $1 ; person + object SPRITE_OAK, $a, $4, STAY, NONE, $1 ; person object SPRITE_GIRL, $3, $8, WALK, $0, $2 ; person object SPRITE_FISHER2, $b, $e, WALK, $0, $3 ; person diff --git a/main.asm b/main.asm index e78f650d..c53ba358 100755 --- a/main.asm +++ b/main.asm @@ -236,9 +236,8 @@ INCLUDE "data/mapHeaders/celadoncity.asm" INCLUDE "data/mapObjects/celadoncity.asm" CeladonCityBlocks: INCBIN "maps/celadoncity.blk" - dr $182a1,$182fd ; headers, objects, blocks -; INCLUDE "data/mapHeaders/pallettown.asm" -; INCLUDE "data/mapObjects/pallettown.asm" +INCLUDE "data/mapHeaders/pallettown.asm" +INCLUDE "data/mapObjects/pallettown.asm" PalletTownBlocks: INCBIN "maps/pallettown.blk" INCLUDE "data/mapHeaders/viridiancity.asm" @@ -252,7 +251,7 @@ PewterCityBlocks: INCBIN "maps/pewtercity.blk" INCLUDE "data/mapHeaders/ceruleancity.asm" INCLUDE "data/mapObjects/ceruleancity.asm" CeruleanCityBlocks: INCBIN "maps/ceruleancity.blk" ; 18836 - dr $1899e,$18dee ; headers, objects, blocks + dr $1899e,$18dfa ; headers, objects, blocks ; INCLUDE "data/mapHeaders/vermilioncity.asm" ; INCLUDE "data/mapObjects/vermilioncity.asm" @@ -262,9 +261,9 @@ CeruleanCityBlocks: INCBIN "maps/ceruleancity.blk" ; 18836 ; INCLUDE "data/mapObjects/fuchsiacity.asm" ; FuchsiaCityBlocks: INCBIN "maps/fuchsiacity.blk" - dr $18dee,$1902a ; map scripts + ; dr $18dee,$1902a ; map scripts -; INCLUDE "scripts/pallettown.asm" +INCLUDE "scripts/pallettown.asm" INCLUDE "scripts/viridiancity.asm" INCLUDE "scripts/pewtercity.asm" INCLUDE "scripts/ceruleancity.asm" @@ -836,7 +835,10 @@ INCBIN "maps/route5.blk" dr $5468e,$54706 Route9Blocks: ; 54706 INCBIN "maps/route9.blk" - dr $54814,$5525f + dr $54814,$5507d +Route21Blocks: ; 5507d +INCBIN "maps/route21.blk" + dr $5523f,$5525f INCLUDE "engine/battle/experience.asm" diff --git a/scripts/pallettown.asm b/scripts/pallettown.asm index 106d8ec0..131ecaea 100755 --- a/scripts/pallettown.asm +++ b/scripts/pallettown.asm @@ -1,11 +1,11 @@ PalletTownScript: ; 18e5b (6:4e5b) CheckEvent EVENT_GOT_POKEBALLS_FROM_OAK - jr z,.next + jr z, .next SetEvent EVENT_PALLET_AFTER_GETTING_POKEBALLS .next call EnableAutoTextBoxDrawing - ld hl,PalletTownScriptPointers - ld a,[W_PALLETTOWNCURSCRIPT] + ld hl, PalletTownScriptPointers + ld a, [W_PALLETTOWNCURSCRIPT] jp CallFunctionInTable PalletTownScriptPointers: ; 18e73 (6:4e73) @@ -16,136 +16,208 @@ PalletTownScriptPointers: ; 18e73 (6:4e73) dw PalletTownScript4 dw PalletTownScript5 dw PalletTownScript6 + dw PalletTownScript7 + dw PalletTownScript8 + dw PalletTownScript9 PalletTownScript0: ; 18e81 (6:4e81) CheckEvent EVENT_FOLLOWED_OAK_INTO_LAB ret nz - ld a,[wYCoord] - cp 1 ; is player near north exit? + ld a, [wYCoord] + cp 0 ; is player at north exit? ret nz + ResetEvent EVENT_005 + ld a, [wXCoord] + cp 10 + jr z, .asm_18e40 + SetEventReuseHL EVENT_005 +.asm_18e40 xor a - ld [hJoyHeld],a - ld a,PLAYER_DIR_DOWN - ld [wPlayerMovingDirection],a - ld a,$FF - call PlaySound ; stop music + ld [hJoyHeld], a + ld a, $ff + ld [wJoyIgnore], a + ld a, PLAYER_DIR_UP + ld [wPlayerMovingDirection], a + call StopAllMusic ld a, BANK(Music_MeetProfOak) - ld c,a + ld c, a ld a, MUSIC_MEET_PROF_OAK ; “oak appears” music call PlayMusic - ld a,$FC - ld [wJoyIgnore],a SetEvent EVENT_OAK_APPEARED_IN_PALLET ; trigger the next script - ld a,1 - ld [W_PALLETTOWNCURSCRIPT],a + ld a, 1 + ld [W_PALLETTOWNCURSCRIPT], a ret PalletTownScript1: ; 18eb2 (6:4eb2) + ld a, $FF ^ (A_BUTTON | B_BUTTON) + ld [wJoyIgnore], a xor a - ld [wcf0d],a - ld a,1 - ld [hSpriteIndexOrTextID],a + ld [wcf0d], a + ld a, 1 + ld [hSpriteIndexOrTextID], a call DisplayTextID - ld a,$FF - ld [wJoyIgnore],a - ld a,HS_PALLET_TOWN_OAK - ld [wMissableObjectIndex],a + ld a, $FF + ld [wJoyIgnore], a + ld hl, wSpriteStateData2 + 1 * $10 + 4 + ld a, $8 + ld [hli], a + ld a, $e + ld [hl], a + ld a, HS_PALLET_TOWN_OAK + ld [wMissableObjectIndex], a predef ShowObject ; trigger the next script - ld a,2 - ld [W_PALLETTOWNCURSCRIPT],a + ld a, $2 + ld [wSpriteStateData1 + 1 * $10 + 1], a + ld a, SPRITE_FACING_UP + ld [wSpriteStateData1 + 1 * $10 + 9], a + ld a, 2 + ld [W_PALLETTOWNCURSCRIPT], a ret PalletTownScript2: ; 18ed2 (6:4ed2) - ld a,1 - ld [H_SPRITEINDEX],a - ld a,SPRITE_FACING_UP - ld [hSpriteFacingDirection],a - call SetSpriteFacingDirectionAndDelay call Delay3 - ld a,1 - ld [wYCoord],a - ld a,1 - ld [hNPCPlayerRelativePosPerspective],a - ld a,1 + ld a, 0 + ld [wYCoord], a + ld a, 1 + ld [hNPCPlayerRelativePosPerspective], a + ld a, 1 swap a - ld [hNPCSpriteOffset],a + ld [hNPCSpriteOffset], a predef CalcPositionOfPlayerRelativeToNPC - ld hl,hNPCPlayerYDistance + ld hl, hNPCPlayerYDistance dec [hl] predef FindPathToPlayer ; load Oak’s movement into wNPCMovementDirections2 - ld de,wNPCMovementDirections2 - ld a,1 ; oak - ld [H_SPRITEINDEX],a + ld de, wNPCMovementDirections2 + ld a, 1 ; oak + ld [H_SPRITEINDEX], a call MoveSprite - ld a,$FF - ld [wJoyIgnore],a ; trigger the next script - ld a,3 - ld [W_PALLETTOWNCURSCRIPT],a + ld a, 3 + ld [W_PALLETTOWNCURSCRIPT], a ret PalletTownScript3: ; 18f12 (6:4f12) - ld a,[wd730] - bit 0,a + ld a, [wd730] + bit 0, a ret nz - xor a ; ld a, SPRITE_FACING_DOWN - ld [wSpriteStateData1 + 9],a - ld a,1 - ld [wcf0d],a - ld a,$FC - ld [wJoyIgnore],a - ld a,1 - ld [hSpriteIndexOrTextID],a + ld a, $FF ^ (A_BUTTON | B_BUTTON) + ld [wJoyIgnore], a + ld a, 1 + ld [wcf0d], a + ld a, $2 + ld [wSpriteStateData1 + 1 * $10 + 1], a + ld a, SPRITE_FACING_UP + ld [wSpriteStateData1 + 1 * $10 + 9], a + ld a, 1 + ld [hSpriteIndexOrTextID], a call DisplayTextID -; set up movement script that causes the player to follow Oak to his lab - ld a,$FF - ld [wJoyIgnore],a - ld a,1 - ld [wSpriteIndex],a - xor a - ld [wNPCMovementScriptFunctionNum],a - ld a,1 - ld [wNPCMovementScriptPointerTableNum],a - ld a,[H_LOADEDROMBANK] - ld [wNPCMovementScriptBank],a - + ; oak faces the horizontally adjacent patch of grass to face pikachu + ld a, $FF + ld [wJoyIgnore], a + ld a, $2 + ld [wSpriteStateData1 + 1 * $10 + 1], a + CheckEvent EVENT_005 + ld a, SPRITE_FACING_RIGHT + jr z, .asm_18f01 + ld a, SPRITE_FACING_LEFT +.asm_18f01 + ld [wSpriteStateData1 + 1 * $10 + 9], a + ; trigger the next script - ld a,4 - ld [W_PALLETTOWNCURSCRIPT],a + ld a, 4 + ld [W_PALLETTOWNCURSCRIPT], a ret PalletTownScript4: ; 18f4b (6:4f4b) - ld a,[wNPCMovementScriptPointerTableNum] - and a ; is the movement script over? - ret nz + ; start the pikachu battle + ld a, $FF ^ (A_BUTTON | B_BUTTON) + ld [wJoyIgnore], a + xor a + ld [wListScrollOffset], a + ld a, STARTER_PIKACHU_BATTLE + ld [wBattleType], a + ld a, PIKACHU + ld [wCurOpponent], a + ld a, 5 + ld [wCurEnemyLVL], a ; trigger the next script - ld a,5 - ld [W_PALLETTOWNCURSCRIPT],a + ld a, 5 + ld [W_PALLETTOWNCURSCRIPT], a ret PalletTownScript5: ; 18f56 (6:4f56) + ld a, $2 + ld [wcf0d], a + ld a, $1 + ld [hSpriteIndexOrTextID], a + call DisplayTextID + ld a, $2 + ld [wSpriteStateData1 + 1 * $10 + 1], a + ld a, SPRITE_FACING_UP + ld [wSpriteStateData1 + 1 * $10 + 9], a + ld a, $8 + ld [hSpriteIndexOrTextID], a + call DisplayTextID + ld a, $ff + ld [wJoyIgnore], a + + ; trigger the next script + ld a, 6 + ld [W_PALLETTOWNCURSCRIPT], a + ret + +PalletTownScript6: ; 18f87 (6:4f87) + xor a + ld [wSpriteStateData1 + 9], a + ld a, $1 + ld [wSpriteIndex], a + xor a + ld [wNPCMovementScriptFunctionNum], a + ld a, $1 + ld [wNPCMovementScriptPointerTableNum], a + ld a, [H_LOADEDROMBANK] + ld [wNPCMovementScriptBank], a + + ; trigger the next script + ld a, 7 + ld [W_PALLETTOWNCURSCRIPT], a + ret + +PalletTownScript7: + ld a, [wNPCMovementScriptPointerTableNum] + and a + ret nz + + ; trigger the next script + ld a, 8 + ld [W_PALLETTOWNCURSCRIPT], a + ret + +PalletTownScript8: CheckEvent EVENT_DAISY_WALKING - jr nz,.next - CheckBothEventsSet EVENT_GOT_TOWN_MAP, EVENT_ENTERED_BLUES_HOUSE, 1 - jr nz,.next + jr nz, .asm_18f9e + and $3 ; (EVENT_GOT_TOWN_MAP | EVENT_ENTERED_BLUES_HOUSE) + cp $3 + jr nz, .asm_18f9e SetEvent EVENT_DAISY_WALKING - ld a,HS_DAISY_SITTING - ld [wMissableObjectIndex],a + ld a, HS_DAISY_SITTING + ld [wMissableObjectIndex], a predef HideObject - ld a,HS_DAISY_WALKING - ld [wMissableObjectIndex],a + ld a, HS_DAISY_WALKING + ld [wMissableObjectIndex], a predef_jump ShowObject -.next + +.asm_18f9e CheckEvent EVENT_GOT_POKEBALLS_FROM_OAK ret z SetEvent EVENT_PALLET_AFTER_GETTING_POKEBALLS_2 -PalletTownScript6: ; 18f87 (6:4f87) +PalletTownScript9: ret PalletTownTextPointers: ; 18f88 (6:4f88) @@ -156,18 +228,25 @@ PalletTownTextPointers: ; 18f88 (6:4f88) dw PalletTownText5 dw PalletTownText6 dw PalletTownText7 + dw PalletTownText8 PalletTownText1: ; 18f96 (6:4f96) TX_ASM - ld a,[wcf0d] + ld a, [wcf0d] and a - jr nz,.next - ld a,1 - ld [wDoNotWaitForButtonPressAfterDisplayingText],a - ld hl,OakAppearsText + jr nz, .next + ld a, 1 + ld [wDoNotWaitForButtonPressAfterDisplayingText], a + ld hl, OakAppearsText jr .done .next - ld hl,OakWalksUpText + dec a + jr nz, .asm_18fd3 + ld hl, OakWalksUpText + jr .done + +.asm_18fd3 + ld hl, PalletTownText_19002 .done call PrintText jp TextScriptEnd @@ -175,40 +254,49 @@ PalletTownText1: ; 18f96 (6:4f96) OakAppearsText: ; 18fb0 (6:4fb0) TX_FAR _OakAppearsText TX_ASM - ld c,10 + ld c, 10 call DelayFrames - xor a - ld [wEmotionBubbleSpriteIndex],a ; player's sprite - ld [wWhichEmotionBubble],a ; EXCLAMATION_BUBBLE + ld a, PLAYER_DIR_DOWN + ld [wPlayerMovingDirection], a + ld a, 0 + ld [wEmotionBubbleSpriteIndex], a ; player's sprite + ld a, 0 + ld [wWhichEmotionBubble], a ; EXCLAMATION_BUBBLE predef EmotionBubble - ld a,PLAYER_DIR_DOWN - ld [wPlayerMovingDirection],a jp TextScriptEnd OakWalksUpText: ; 18fce (6:4fce) TX_FAR _OakWalksUpText db "@" -PalletTownText2: ; 0x18fd3 girl +PalletTownText_19002: + TX_FAR _OakWhewText + db "@" + +PalletTownText8: ; 0x18fd3 girl + TX_FAR _OakGrassText + db "@" + +PalletTownText2: ; 0x18fd8 fat man TX_FAR _PalletTownText2 db "@" -PalletTownText3: ; 0x18fd8 fat man +PalletTownText3: ; 0x18fdd sign by lab TX_FAR _PalletTownText3 db "@" -PalletTownText4: ; 0x18fdd sign by lab +PalletTownText4: ; 0x18fe2 sign by fence TX_FAR _PalletTownText4 db "@" -PalletTownText5: ; 0x18fe2 sign by fence +PalletTownText5: ; 0x18fe7 sign by Red’s house TX_FAR _PalletTownText5 db "@" -PalletTownText6: ; 0x18fe7 sign by Red’s house +PalletTownText6: ; 0x18fec sign by Blue’s house TX_FAR _PalletTownText6 db "@" -PalletTownText7: ; 0x18fec sign by Blue’s house +PalletTownText7: TX_FAR _PalletTownText7 db "@" -- cgit v1.2.3 From a10ddc9c3f94b02ddab6d03fe0121a0e4413b877 Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Thu, 26 May 2016 23:11:23 -0400 Subject: Uncomment map header pointers for disassembled maps --- data/map_header_banks.asm | 18 +++++++++--------- data/map_header_pointers.asm | 16 ++++++++-------- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/data/map_header_banks.asm b/data/map_header_banks.asm index cf97aebb..207dc937 100644 --- a/data/map_header_banks.asm +++ b/data/map_header_banks.asm @@ -1,9 +1,9 @@ ; see also MapHeaderPointers MapHeaderBanks:: ; fc3e4 (3f:43e4) - db $06 ; db BANK(PalletTown_h) ;PALLET_TOWN - db $06 ; db BANK(ViridianCity_h) ; VIRIDIAN_CITY - db $06 ; db BANK(PewterCity_h) ; PEWTER_CITY - db $06 ; db BANK(CeruleanCity_h) ; CERULEAN_CITY + db BANK(PalletTown_h) ;PALLET_TOWN + db BANK(ViridianCity_h) ; VIRIDIAN_CITY + db BANK(PewterCity_h) ; PEWTER_CITY + db BANK(CeruleanCity_h) ; CERULEAN_CITY db $11 ; db BANK(LavenderTown_h) ; LAVENDER_TOWN db $06 ; db BANK(VermilionCity_h) ; VERMILION_CITY db BANK(CeladonCity_h) ; CELADON_CITY @@ -11,11 +11,11 @@ MapHeaderBanks:: ; fc3e4 (3f:43e4) db $07 ; db BANK(CinnabarIsland_h) ; CINNABAR_ISLAND db $14 ; db BANK(IndigoPlateau_h) ; INDIGO_PLATEAU db BANK(SaffronCity_h) ; SAFFRON_CITY - db $01 ; db $1 ; unused - db $07 ; db BANK(Route1_h) ; ROUTE_1 - db $15 ; db BANK(Route2_h) ; ROUTE_2 - db $15 ; db BANK(Route3_h) ; ROUTE_3 - db $15 ; db BANK(Route4_h) ; ROUTE_4 + db $01 ; unused + db BANK(Route1_h) ; ROUTE_1 + db BANK(Route2_h) ; ROUTE_2 + db BANK(Route3_h) ; ROUTE_3 + db BANK(Route4_h) ; ROUTE_4 db BANK(Route5_h) ; ROUTE_5 db $16 ; db BANK(Route6_h) ; ROUTE_6 db BANK(Route7_h) ; ROUTE_7 diff --git a/data/map_header_pointers.asm b/data/map_header_pointers.asm index d63e7cb7..adbe374b 100644 --- a/data/map_header_pointers.asm +++ b/data/map_header_pointers.asm @@ -1,9 +1,9 @@ ; see also MapHeaderBanks MapHeaderPointers:: ; fc1f2 (3f:41f2) - dw $42a1 ; dw PalletTown_h - dw $4357 ; dw ViridianCity_h - dw $455a ; dw PewterCity_h - dw $4754 ; dw CeruleanCity_h + dw PalletTown_h + dw ViridianCity_h + dw PewterCity_h + dw CeruleanCity_h dw $4000 ; dw LavenderTown_h dw $499e ; dw VermilionCity_h dw CeladonCity_h @@ -12,10 +12,10 @@ MapHeaderPointers:: ; fc1f2 (3f:41f2) dw $4924 ; dw IndigoPlateau_h dw SaffronCity_h dw SaffronCity_h - dw $40c3 ; dw Route1_h - dw $4000 ; dw Route2_h - dw $41ee ; dw Route3_h - dw $4398 ; dw Route4_h + dw Route1_h + dw Route2_h + dw Route3_h + dw Route4_h dw Route5_h dw $4000 ; dw Route6_h dw Route7_h -- cgit v1.2.3 From 1f4f4b99a83406f3078ad639d2c81da32468d463 Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Fri, 27 May 2016 08:20:56 -0400 Subject: Update Celadon scripts --- data/map_header_banks.asm | 42 +++++++++++++++++++++--------------------- engine/bank3c.asm | 1 + main.asm | 9 +++------ scripts/celadoncity.asm | 16 +++++++++++++--- scripts/vermilioncity2.asm | 2 +- wram.asm | 4 +++- 6 files changed, 42 insertions(+), 32 deletions(-) diff --git a/data/map_header_banks.asm b/data/map_header_banks.asm index 207dc937..7e730780 100644 --- a/data/map_header_banks.asm +++ b/data/map_header_banks.asm @@ -105,19 +105,19 @@ MapHeaderBanks:: ; fc3e4 (3f:43e4) db $18 ; db BANK(SSAnne8_h) db $18 ; db BANK(SSAnne9_h) db $18 ; db BANK(SSAnne10_h) - db $1d ; db $1D ;unused - db $1d ; db $1D ;unused - db $1d ; db $1D ;unused + db $1d ; unused + db $1d ; unused + db $1d ; unused db $17 ; db BANK(VictoryRoad1_h) - db $1d ; db $1D ;unused - db $1d ; db $1D ;unused - db $1d ; db $1D ;unused - db $1d ; db $1D ;unused + db $1d ; unused + db $1d ; unused + db $1d ; unused + db $1d ; unused db $16 ; db BANK(Lance_h) - db $1d ; db $1D ;unused - db $1d ; db $1D ;unused - db $1d ; db $1D ;unused - db $1d ; db $1D ;unused + db $1d ; unused + db $1d ; unused + db $1d ; unused + db $1d ; unused db $16 ; db BANK(HallofFameRoom_h) db $18 ; db BANK(UndergroundPathNS_h) db $1d ; db BANK(Gary_h) @@ -204,9 +204,9 @@ MapHeaderBanks:: ; fc3e4 (3f:43e4) db $11 ; db BANK(RocketHideout3_h) db $11 ; db BANK(RocketHideout4_h) db $11 ; db BANK(RocketHideoutElevator_h) - db $01 ; db $01 - db $01 ; db $01 - db $01 ; db $01 + db $01 ; unused + db $01 ; unused + db $01 ; unused db $16 ; db BANK(SilphCo2_h) db $16 ; db BANK(SilphCo3_h) db $06 ; db BANK(SilphCo4_h) @@ -231,20 +231,20 @@ MapHeaderBanks:: ; fc3e4 (3f:43e4) db $1d ; db BANK(UnknownDungeon1_h) db $07 ; db BANK(NameRater_h) db $1d ; db BANK(CeruleanHouse2_h) - db $01 ; db $01 + db $01 ; unused db $11 ; db BANK(RockTunnel2_h) db $17 ; db BANK(SilphCo9_h) db $16 ; db BANK(SilphCo10_h) db $18 ; db BANK(SilphCo11_h) db $11 ; db BANK(SilphCoElevator_h) - db $11 ; db $11 - db $11 ; db $11 + db $11 ; unused + db $11 ; unused db BANK(TradeCenter_h) db BANK(Colosseum_h) - db $11 ; db $11 - db $11 ; db $11 - db $11 ; db $11 - db $11 ; db $11 + db $11 ; unused + db $11 ; unused + db $11 ; unused + db $11 ; unused db $1d ; db BANK(Lorelei_h) db $1d ; db BANK(Bruno_h) db $1d ; db BANK(Agatha_h) diff --git a/engine/bank3c.asm b/engine/bank3c.asm index 7cb6ae5d..35be938e 100644 --- a/engine/bank3c.asm +++ b/engine/bank3c.asm @@ -346,6 +346,7 @@ NurseChanseyText: INCLUDE "scripts/viridiancity2.asm" INCLUDE "scripts/vermilioncity2.asm" +INCLUDE "scripts/celadoncity2.asm" INCLUDE "scripts/route1_2.asm" dr $f1b27, $f220e diff --git a/main.asm b/main.asm index c53ba358..4503d4d7 100755 --- a/main.asm +++ b/main.asm @@ -261,7 +261,6 @@ CeruleanCityBlocks: INCBIN "maps/ceruleancity.blk" ; 18836 ; INCLUDE "data/mapObjects/fuchsiacity.asm" ; FuchsiaCityBlocks: INCBIN "maps/fuchsiacity.blk" - ; dr $18dee,$1902a ; map scripts INCLUDE "scripts/pallettown.asm" INCLUDE "scripts/viridiancity.asm" @@ -270,11 +269,9 @@ INCLUDE "scripts/ceruleancity.asm" dr $19841,$19a43 ; vermilion scripts ; INCLUDE "scripts/vermilioncity.asm" -; INCLUDE "scripts/celadoncity.asm" -CeladonCityScript: - dr $19a43,$19a5f -CeladonCityTextPointers: - dr $19a5f,$1a4ea +INCLUDE "scripts/celadoncity.asm" + + dr $19b2b,$1a4ea ; INCLUDE "scripts/fuchsiacity.asm" INCLUDE "engine/overworld/npc_movement.asm" diff --git a/scripts/celadoncity.asm b/scripts/celadoncity.asm index cfc8f197..233b38bd 100755 --- a/scripts/celadoncity.asm +++ b/scripts/celadoncity.asm @@ -1,5 +1,14 @@ -CeladonCityScript: ; 19956 (6:5956) +CeladonCityScript: ; 19a43 (6:5a43) call EnableAutoTextBoxDrawing + ld hl, CeladonCityScriptPointers + ld a, [W_CELADONCITYCURSCRIPT] + call JumpTable + ret + +CeladonCityScriptPointers: + dw CeladonCityScript1 + +CeladonCityScript1: ResetEvents EVENT_1B8, EVENT_1BF ResetEvent EVENT_67F ret @@ -99,8 +108,9 @@ CeladonCityText9: ; 199fe (6:59fe) db "@" CeladonCityText10: ; 19a03 (6:5a03) - TX_FAR _CeladonCityText10 - db "@" + TX_ASM + callba Func_f1ac6 + jp TextScriptEnd CeladonCityText11: ; 19a08 (6:5a08) TX_FAR _CeladonCityText11 diff --git a/scripts/vermilioncity2.asm b/scripts/vermilioncity2.asm index 4a068f88..7eee7b1f 100755 --- a/scripts/vermilioncity2.asm +++ b/scripts/vermilioncity2.asm @@ -65,4 +65,4 @@ OfficerJennyText5: TX_FAR _OfficerJennyText5 db "@" - dr $f1a8a,$f1ad2 + dr $f1a8a,$f1ac6 diff --git a/wram.asm b/wram.asm index da33168a..346b8389 100755 --- a/wram.asm +++ b/wram.asm @@ -2852,7 +2852,9 @@ W_MANSION4CURSCRIPT:: ; d63e W_VICTORYROAD2CURSCRIPT:: ; d63f ds 1 W_VICTORYROAD3CURSCRIPT:: ; d640 - ds 2 + ds 1 +W_CELADONCITYCURSCRIPT:: + ds 1 W_FIGHTINGDOJOCURSCRIPT:: ; d642 ds 1 W_SILPHCO2CURSCRIPT:: ; d643 -- cgit v1.2.3 From e44ad103a332fc07403fbc346266a35de9914132 Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Fri, 27 May 2016 08:25:31 -0400 Subject: Name Yellow-specific event flags in Pallet and Vermilion --- constants/event_constants.asm | 4 ++-- scripts/pallettown.asm | 6 +++--- scripts/vermilioncity2.asm | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/constants/event_constants.asm b/constants/event_constants.asm index f284c967..491f8664 100644 --- a/constants/event_constants.asm +++ b/constants/event_constants.asm @@ -5,7 +5,7 @@ const_value = 0 const EVENT_002 ; 002, (D747, bit 2) const EVENT_HALL_OF_FAME_DEX_RATING ; 003, (D747, bit 3) const EVENT_004 ; 004, (D747, bit 4) - const EVENT_005 ; 005, (D747, bit 5) + const EVENT_PLAYER_AT_RIGHT_EXIT_TO_PALLET_TOWN ; 005, (D747, bit 5) const EVENT_PALLET_AFTER_GETTING_POKEBALLS ; 006, (D747, bit 6) const EVENT_007 ; 007, (D747, bit 7) const EVENT_008 ; 008, (D748, bit 0) @@ -327,7 +327,7 @@ const_value = 0 const EVENT_144 ; 144, (D76F, bit 4) const EVENT_145 ; 145, (D76F, bit 5) const EVENT_146 ; 146, (D76F, bit 6) - const EVENT_147 ; 147, (D76F, bit 7) + const EVENT_GOT_SQUIRTLE_FROM_OFFICER_JENNY ; 147, (D76F, bit 7) const EVENT_148 ; 148, (D770, bit 0) const EVENT_149 ; 149, (D770, bit 1) const EVENT_14A ; 14A, (D770, bit 2) diff --git a/scripts/pallettown.asm b/scripts/pallettown.asm index 131ecaea..147cbdb6 100755 --- a/scripts/pallettown.asm +++ b/scripts/pallettown.asm @@ -26,11 +26,11 @@ PalletTownScript0: ; 18e81 (6:4e81) ld a, [wYCoord] cp 0 ; is player at north exit? ret nz - ResetEvent EVENT_005 + ResetEvent EVENT_PLAYER_AT_RIGHT_EXIT_TO_PALLET_TOWN ld a, [wXCoord] cp 10 jr z, .asm_18e40 - SetEventReuseHL EVENT_005 + SetEventReuseHL EVENT_PLAYER_AT_RIGHT_EXIT_TO_PALLET_TOWN .asm_18e40 xor a ld [hJoyHeld], a @@ -121,7 +121,7 @@ PalletTownScript3: ; 18f12 (6:4f12) ld [wJoyIgnore], a ld a, $2 ld [wSpriteStateData1 + 1 * $10 + 1], a - CheckEvent EVENT_005 + CheckEvent EVENT_PLAYER_AT_RIGHT_EXIT_TO_PALLET_TOWN ld a, SPRITE_FACING_RIGHT jr z, .asm_18f01 ld a, SPRITE_FACING_LEFT diff --git a/scripts/vermilioncity2.asm b/scripts/vermilioncity2.asm index 7eee7b1f..4be44db0 100755 --- a/scripts/vermilioncity2.asm +++ b/scripts/vermilioncity2.asm @@ -1,5 +1,5 @@ Func_f1a0f: - CheckEvent EVENT_147 + CheckEvent EVENT_GOT_SQUIRTLE_FROM_OFFICER_JENNY jr nz, .asm_f1a69 ld a, [wBeatGymFlags] bit 2, a ; THUNDERBADGE @@ -31,7 +31,7 @@ Func_f1a0f: ld [wDoNotWaitForButtonPressAfterDisplayingText], a ld hl, OfficerJennyText3 call PrintText - SetEvent EVENT_147 + SetEvent EVENT_GOT_SQUIRTLE_FROM_OFFICER_JENNY ret .asm_f1a62 -- cgit v1.2.3 From 40f0dba6c17116c61ce4935663bf1a79485edee9 Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Fri, 27 May 2016 09:22:38 -0400 Subject: Route 24 scripts --- constants/event_constants.asm | 2 +- data/mapObjects/route24.asm | 3 +- home/text.asm | 440 +++++++++++++++++++++--------------------- macros.asm | 4 + main.asm | 19 +- scripts/route24.asm | 64 +++++- text/maps/route_24.asm | 28 +++ text/maps/route_25.asm | 28 --- 8 files changed, 333 insertions(+), 255 deletions(-) diff --git a/constants/event_constants.asm b/constants/event_constants.asm index 491f8664..b0c67e4b 100644 --- a/constants/event_constants.asm +++ b/constants/event_constants.asm @@ -5,7 +5,7 @@ const_value = 0 const EVENT_002 ; 002, (D747, bit 2) const EVENT_HALL_OF_FAME_DEX_RATING ; 003, (D747, bit 3) const EVENT_004 ; 004, (D747, bit 4) - const EVENT_PLAYER_AT_RIGHT_EXIT_TO_PALLET_TOWN ; 005, (D747, bit 5) + const EVENT_PLAYER_AT_RIGHT_EXIT_TO_PALLET_TOWN ; 005, (D747, bit 5) const EVENT_PALLET_AFTER_GETTING_POKEBALLS ; 006, (D747, bit 6) const EVENT_007 ; 007, (D747, bit 7) const EVENT_008 ; 008, (D748, bit 0) diff --git a/data/mapObjects/route24.asm b/data/mapObjects/route24.asm index f8173c9d..115f08d3 100755 --- a/data/mapObjects/route24.asm +++ b/data/mapObjects/route24.asm @@ -5,7 +5,7 @@ Route24Object: ; 0x506a4 (size=67) db $0 ; signs - db $8 ; objects + db $9 ; objects object SPRITE_BLACK_HAIR_BOY_1, $b, $f, STAY, LEFT, $1, OPP_ROCKET, $6 object SPRITE_BLACK_HAIR_BOY_1, $5, $14, STAY, UP, $2, OPP_JR_TRAINER_M, $2 object SPRITE_BLACK_HAIR_BOY_1, $b, $13, STAY, LEFT, $3, OPP_JR_TRAINER_M, $3 @@ -14,3 +14,4 @@ Route24Object: ; 0x506a4 (size=67) object SPRITE_LASS, $a, $1c, STAY, RIGHT, $6, OPP_LASS, $8 object SPRITE_BUG_CATCHER, $b, $1f, STAY, LEFT, $7, OPP_BUG_CATCHER, $9 object SPRITE_BALL, $a, $5, STAY, NONE, $8, TM_45 + object SPRITE_BLACK_HAIR_BOY_1, $6, $5, STAY, DOWN, $9 diff --git a/home/text.asm b/home/text.asm index da20a833..437a5c79 100644 --- a/home/text.asm +++ b/home/text.asm @@ -18,7 +18,7 @@ TextBoxBorder:: ; 16f0 (0:16f0) .next push hl ld a, "│" - ld [hli],a + ld [hli], a ld a, " " call NPlaceChar ld [hl], "│" @@ -49,32 +49,32 @@ NPlaceChar:: ; 171d (0:171d) PlaceString:: ; 1723 (0:1723) push hl PlaceNextChar:: ; 1724 (0:1724) - ld a,[de] + ld a, [de] cp "@" - jr nz,Char4ETest - ld b,h - ld c,l + jr nz, Char4ETest + ld b, h + ld c, l pop hl ret Char4ETest:: ; 172d (0:172d) cp $4E - jr nz,.next - ld bc,$0028 - ld a,[hFlags_0xFFFA] - bit 2,a - jr z,.next2 - ld bc,SCREEN_WIDTH + jr nz, .next + ld bc, $0028 + ld a, [hFlags_0xFFFA] + bit 2, a + jr z, .next2 + ld bc, SCREEN_WIDTH .next2 pop hl - add hl,bc + add hl, bc push hl jp PlaceNextChar_inc ; 17b6 .next cp $4F - jr nz,.next3 + jr nz, .next3 pop hl coord hl, 1, 16 push hl @@ -82,56 +82,56 @@ Char4ETest:: ; 172d (0:172d) .next3 ; Check against a dictionary and a - jp z,Char00 + jp z, Char00 cp $4C - jp z,Char4C + jp z, Char4C cp $4B - jp z,Char4B + jp z, Char4B cp $51 - jp z,Char51 + jp z, Char51 cp $49 - jp z,Char49 + jp z, Char49 cp $52 - jp z,Char52 + jp z, Char52 cp $53 - jp z,Char53 + jp z, Char53 cp $54 - jp z,Char54 + jp z, Char54 cp $5B - jp z,Char5B + jp z, Char5B cp $5E - jp z,Char5E + jp z, Char5E cp $5C - jp z,Char5C + jp z, Char5C cp $5D - jp z,Char5D + jp z, Char5D cp $55 - jp z,Char55 + jp z, Char55 cp $56 - jp z,Char56 + jp z, Char56 cp $57 - jp z,Char57 + jp z, Char57 cp $58 - jp z,Char58 + jp z, Char58 cp $4A - jp z,Char4A + jp z, Char4A cp $5F - jp z,Char5F + jp z, Char5F cp $59 - jp z,Char59 + jp z, Char59 cp $5A - jp z,Char5A - ld [hli],a + jp z, Char5A + ld [hli], a call PrintLetterDelay PlaceNextChar_inc:: ; 17b6 (0:17b6) inc de jp PlaceNextChar Char00:: ; 17ba (0:17ba) - ld b,h - ld c,l + ld b, h + ld c, l pop hl - ld de,Char00Text + ld de, Char00Text dec de ret @@ -141,47 +141,47 @@ Char00Text:: ; 17c2 (0:17c2) ; “%d ERROR.” Char52:: ; 17c7 (0:17c7) ; player’s name push de - ld de,wPlayerName + ld de, wPlayerName jr FinishDTE Char53:: ; 17cd (0:17cd) ; rival’s name push de - ld de,wRivalName + ld de, wRivalName jr FinishDTE Char5D:: ; 17d3 (0:17d3) ; TRAINER push de - ld de,Char5DText + ld de, Char5DText jr FinishDTE Char5C:: ; 17d9 (0:17d9) ; TM push de - ld de,Char5CText + ld de, Char5CText jr FinishDTE Char5B:: ; 17df (0:17df) ; PC push de - ld de,Char5BText + ld de, Char5BText jr FinishDTE Char5E:: ; 17e5 (0:17e5) ; ROCKET push de - ld de,Char5EText + ld de, Char5EText jr FinishDTE Char54:: ; 17eb (0:17eb) ; POKé push de - ld de,Char54Text + ld de, Char54Text jr FinishDTE Char56:: ; 17f1 (0:17f1) ; …… push de - ld de,Char56Text + ld de, Char56Text jr FinishDTE Char4A:: ; 17f7 (0:17f7) ; PKMN push de - ld de,Char4AText + ld de, Char4AText jr FinishDTE Char59:: ; 17fb (0:17fb) @@ -190,7 +190,7 @@ Char59:: ; 17fb (0:17fb) ; or ; player active monster’s name ; (like Char5A but flipped) - ld a,[H_WHOSETURN] + ld a, [H_WHOSETURN] xor 1 jr MonsterNameCharsCommon @@ -199,26 +199,26 @@ Char5A:: ; 1803 (0:1803) ; player active monster’s name ; or ; enemy active monster’s name, prefixed with “Enemy ” - ld a,[H_WHOSETURN] + ld a, [H_WHOSETURN] MonsterNameCharsCommon:: ; 1a37 (0:1a37) push de and a - jr nz,.Enemy - ld de,wBattleMonNick ; player active monster name + jr nz, .Enemy + ld de, wBattleMonNick ; player active monster name jr FinishDTE .Enemy ; print “Enemy ” - ld de,Char5AText + ld de, Char5AText call PlaceString - ld h,b - ld l,c - ld de,wEnemyMonNick ; enemy active monster name + ld h, b + ld l, c + ld de, wEnemyMonNick ; enemy active monster name FinishDTE:: ; 1819 (0:1819) call PlaceString - ld h,b - ld l,c + ld h, b + ld l, c pop de inc de jp PlaceNextChar @@ -238,16 +238,16 @@ Char56Text:: ; 183d (0:183d) Char5AText:: ; 1840 (0:1840) db "Enemy @" Char4AText:: ; 1847 (0:1847) - db $E1,$E2,"@" ; PKMN + db $E1, $E2, "@" ; PKMN Char55:: ; 184a (0:184a) push de - ld b,h - ld c,l - ld hl,Char55Text + ld b, h + ld c, l + ld hl, Char55Text call TextCommandProcessor ; 1919 - ld h,b - ld l,c + ld h, b + ld l, c pop de inc de jp PlaceNextChar @@ -259,15 +259,15 @@ Char55Text:: ; 185a (0:185a) Char5F:: ; 185f (0:185f) ; ends a Pokédex entry - ld [hl],"." + ld [hl], "." pop hl ret Char58:: ; 1863 (0:1863) - ld a,[wLinkState] + ld a, [wLinkState] cp LINK_STATE_BATTLING - jp z,Next1870 - ld a,$EE + jp z, Next1870 + ld a, $EE Coorda 18, 16 Next1870:: ; 1870 (0:1870) call ProtectedDelay3 ; 1913 @@ -276,7 +276,7 @@ Next1870:: ; 1870 (0:1870) Coorda 18, 16 Char57:: ; 1aad (0:1aad) pop hl - ld de,Char58Text + ld de, Char58Text dec de ret @@ -285,36 +285,36 @@ Char58Text:: ; 1881 (0:1881) Char51:: ; 1882 (0:1882) push de - ld a,$EE + ld a, $EE Coorda 18, 16 call ProtectedDelay3 call ManualTextScroll coord hl, 1, 13 lb bc, 4, 18 call ClearScreenArea - ld c,20 + ld c, 20 call DelayFrames pop de coord hl, 1, 14 jp PlaceNextChar_inc Char49:: ; 18a3 (0:18a3) - ld a,[hFlags_0xFFFA] - bit 3,a - jr z,.Char49 - ld a,$4e + ld a, [hFlags_0xFFFA] + bit 3, a + jr z, .Char49 + ld a, $4e jp Char4ETest .Char49 push de - ld a,$EE + ld a, $EE Coorda 18, 16 call ProtectedDelay3 call ManualTextScroll coord hl, 1, 10 lb bc, 7, 18 call ClearScreenArea - ld c,20 + ld c, 20 call DelayFrames pop de pop hl @@ -323,7 +323,7 @@ Char49:: ; 18a3 (0:18a3) jp PlaceNextChar_inc Char4B:: ; 18d1 (0:18d1) - ld a,$EE + ld a, $EE Coorda 18, 16 call ProtectedDelay3 push de @@ -345,25 +345,25 @@ Next18F1:: ; 18f1 (0:18f1) coord de, 0, 13 ld b, 60 .next - ld a,[hli] - ld [de],a + ld a, [hli] + ld [de], a inc de dec b - jr nz,.next + jr nz, .next coord hl, 1, 16 ld a, " " - ld b,SCREEN_WIDTH - 2 + ld b, SCREEN_WIDTH - 2 .next2 - ld [hli],a + ld [hli], a dec b - jr nz,.next2 + jr nz, .next2 ; wait five frames - ld b,5 + ld b, 5 .WaitFrame call DelayFrame dec b - jr nz,.WaitFrame + jr nz, .WaitFrame ret @@ -374,42 +374,42 @@ ProtectedDelay3:: ; 1913 (0:1913) ret TextCommandProcessor:: ; 1919 (0:1919) - ld a,[wLetterPrintingDelayFlags] + ld a, [wLetterPrintingDelayFlags] push af - set 1,a - ld e,a - ld a,[$fff9] + set 1, a + ld e, a + ld a, [$fff9] xor e - ld [wLetterPrintingDelayFlags],a - ld a,c - ld [wUnusedCC3A],a - ld a,b - ld [wUnusedCC3B],a + ld [wLetterPrintingDelayFlags], a + ld a, c + ld [wUnusedCC3A], a + ld a, b + ld [wUnusedCC3B], a NextTextCommand:: ; 192e (0:192e) - ld a,[hli] + ld a, [hli] cp a, "@" ; terminator - jr nz,.doTextCommand + jr nz, .doTextCommand pop af - ld [wLetterPrintingDelayFlags],a + ld [wLetterPrintingDelayFlags], a ret .doTextCommand push hl - cp a,$17 - jp z,TextCommand17 - cp a,$0e - jp nc,TextCommand0B ; if a != 0x17 and a >= 0xE, go to command 0xB + cp a, $17 + jp z, TextCommand17 + cp a, $0e + jp nc, TextCommand0B ; if a != 0x17 and a >= 0xE, go to command 0xB ; if a < 0xE, use a jump table - ld hl,TextCommandJumpTable + ld hl, TextCommandJumpTable push bc add a - ld b,$00 - ld c,a - add hl,bc + ld b, $00 + ld c, a + add hl, bc pop bc - ld a,[hli] - ld h,[hl] - ld l,a + ld a, [hli] + ld h, [hl] + ld l, a jp [hl] ; draw box @@ -419,17 +419,17 @@ NextTextCommand:: ; 192e (0:192e) ; CC = width TextCommand04:: ; 1951 (0:1951) pop hl - ld a,[hli] - ld e,a - ld a,[hli] - ld d,a - ld a,[hli] - ld b,a - ld a,[hli] - ld c,a + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + ld a, [hli] + ld b, a + ld a, [hli] + ld c, a push hl - ld h,d - ld l,e + ld h, d + ld l, e call TextBoxBorder pop hl jr NextTextCommand @@ -438,13 +438,13 @@ TextCommand04:: ; 1951 (0:1951) ; 00{string} TextCommand00:: ; 1963 (0:1963) pop hl - ld d,h - ld e,l - ld h,b - ld l,c + ld d, h + ld e, l + ld h, b + ld l, c call PlaceString - ld h,d - ld l,e + ld h, d + ld l, e inc hl jr NextTextCommand @@ -453,13 +453,13 @@ TextCommand00:: ; 1963 (0:1963) ; AAAA = address of string TextCommand01:: ; 1970 (0:1970) pop hl - ld a,[hli] - ld e,a - ld a,[hli] - ld d,a + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a push hl - ld h,b - ld l,c + ld h, b + ld l, c call PlaceString pop hl jr NextTextCommand @@ -472,18 +472,18 @@ TextCommand01:: ; 1970 (0:1970) ; bits 5-7 = unknown flags TextCommand02:: ; 197e (0:197e) pop hl - ld a,[hli] - ld e,a - ld a,[hli] - ld d,a - ld a,[hli] + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + ld a, [hli] push hl - ld h,b - ld l,c - ld c,a + ld h, b + ld l, c + ld c, a call PrintBCDNumber - ld b,h - ld c,l + ld b, h + ld c, l pop hl jr NextTextCommand @@ -492,12 +492,12 @@ TextCommand02:: ; 197e (0:197e) ; AAAA = new destination address TextCommand03:: ; 1990 (0:1990) pop hl - ld a,[hli] - ld [wUnusedCC3A],a - ld c,a - ld a,[hli] - ld [wUnusedCC3B],a - ld b,a + ld a, [hli] + ld [wUnusedCC3A], a + ld c, a + ld a, [hli] + ld [wUnusedCC3B], a + ld b, a jp NextTextCommand ; repoint destination to second line of dialogue text box @@ -512,15 +512,15 @@ TextCommand05:: ; 199e (0:199e) ; 06 ; (no arguments) TextCommand06:: ; 19a5 (0:19a5) - ld a,[wLinkState] - cp a,LINK_STATE_BATTLING - jp z,TextCommand0D - ld a,$ee ; down arrow + ld a, [wLinkState] + cp a, LINK_STATE_BATTLING + jp z, TextCommand0D + ld a, $ee ; down arrow Coorda 18, 16 ; place down arrow in lower right corner of dialogue text box push bc call ManualTextScroll ; blink arrow and wait for A or B to be pressed pop bc - ld a," " + ld a, " " Coorda 18, 16 ; overwrite down arrow with blank space pop hl jp NextTextCommand @@ -529,7 +529,7 @@ TextCommand06:: ; 19a5 (0:19a5) ; 07 ; (no arguments) TextCommand07:: ; 19c0 (0:19c0) - ld a," " + ld a, " " Coorda 18, 16 ; place blank space in lower right corner of dialogue text box call Next18F1 ; scroll up text call Next18F1 @@ -541,7 +541,7 @@ TextCommand07:: ; 19c0 (0:19c0) ; 08{code} TextCommand08:: ; 19d2 (0:19d2) pop hl - ld de,NextTextCommand + ld de, NextTextCommand push de ; return address jp [hl] @@ -553,25 +553,25 @@ TextCommand08:: ; 19d2 (0:19d2) ; bits 4-7 = how long the number is in bytes TextCommand09:: ; 19d8 (0:19d8) pop hl - ld a,[hli] - ld e,a - ld a,[hli] - ld d,a - ld a,[hli] + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + ld a, [hli] push hl - ld h,b - ld l,c - ld b,a - and a,$0f - ld c,a - ld a,b - and a,$f0 + ld h, b + ld l, c + ld b, a + and a, $0f + ld c, a + ld a, b + and a, $f0 swap a - set BIT_LEFT_ALIGN,a - ld b,a + set BIT_LEFT_ALIGN, a + ld b, a call PrintNumber - ld b,h - ld c,l + ld b, h + ld c, l pop hl jp NextTextCommand @@ -581,10 +581,10 @@ TextCommand09:: ; 19d8 (0:19d8) TextCommand0A:: ; 19f6 (0:19f6) push bc call Joypad - ld a,[hJoyHeld] - and a,A_BUTTON | B_BUTTON - jr nz,.skipDelay - ld c,30 + ld a, [hJoyHeld] + and a, A_BUTTON | B_BUTTON + jr nz, .skipDelay + ld c, 30 call DelayFrames .skipDelay pop bc @@ -598,24 +598,24 @@ TextCommand0B:: ; 1a0a (0:1a0a) pop hl push bc dec hl - ld a,[hli] - ld b,a ; b = command number that got us here + ld a, [hli] + ld b, a ; b = command number that got us here push hl - ld hl,TextCommandSounds + ld hl, TextCommandSounds .loop - ld a,[hli] + ld a, [hli] cp b - jr z,.matchFound + jr z, .matchFound inc hl jr .loop .matchFound - cp a,$14 - jr z,.pokemonCry - cp a,$15 - jr z,.pokemonCry - cp a,$16 - jr z,.pokemonCry - ld a,[hl] + cp a, $14 + jr z, .pokemonCry + cp a, $15 + jr z, .pokemonCry + cp a, $16 + jr z, .pokemonCry + ld a, [hl] call PlaySound call WaitForSoundToFinish pop hl @@ -623,7 +623,7 @@ TextCommand0B:: ; 1a0a (0:1a0a) jp NextTextCommand .pokemonCry push de - ld a,[hl] + ld a, [hl] call PlayCry pop de pop hl @@ -632,43 +632,43 @@ TextCommand0B:: ; 1a0a (0:1a0a) ; format: text command ID, sound ID or cry ID TextCommandSounds:: ; 1a3d (0:1a3d) - db $0B,$86 ; (SFX_02_3a - SFX_Headers_02) / 3 - db $12,$9A ; (SFX_08_46 - SFX_Headers_08) / 3 - db $0E,$91 ; (SFX_02_41 - SFX_Headers_02) / 3 - db $0F,$86 ; (SFX_02_3a - SFX_Headers_02) / 3 - db $10,$89 ; (SFX_02_3b - SFX_Headers_02) / 3 - db $11,$94 ; (SFX_02_42 - SFX_Headers_02) / 3 - db $13,$98 ; (SFX_08_45 - SFX_Headers_08) / 3 - db $14,PIKACHU ; used in OakSpeech - db $15,PIDGEOT ; used in SaffronCityText12 - db $16,DEWGONG ; unused? + db $0B, SFX_GET_ITEM_1 + db $12, SFX_TURN_OFF_PC + db $0E, SFX_POKEDEX_RATING + db $0F, SFX_GET_ITEM_1 + db $10, SFX_GET_ITEM_2 + db $11, SFX_GET_KEY_ITEM + db $13, SFX_TRADE_MACHINE + db $14, PIKACHU ; used in OakSpeech + db $15, PIDGEOT ; used in SaffronCityText12 + db $16, DEWGONG ; unused? ; draw ellipses ; 0CAA ; AA = number of ellipses to draw TextCommand0C:: ; 1a51 (0:1a51) pop hl - ld a,[hli] - ld d,a + ld a, [hli] + ld d, a push hl - ld h,b - ld l,c + ld h, b + ld l, c .loop - ld a,$75 ; ellipsis - ld [hli],a + ld a, $75 ; ellipsis + ld [hli], a push de call Joypad pop de - ld a,[hJoyHeld] ; joypad state - and a,A_BUTTON | B_BUTTON - jr nz,.skipDelay ; if so, skip the delay - ld c,10 + ld a, [hJoyHeld] ; joypad state + and a, A_BUTTON | B_BUTTON + jr nz, .skipDelay ; if so, skip the delay + ld c, 10 call DelayFrames .skipDelay dec d - jr nz,.loop - ld b,h - ld c,l + jr nz, .loop + ld b, h + ld c, l pop hl jp NextTextCommand @@ -688,23 +688,23 @@ TextCommand0D:: ; 1a73 (0:1a73) ; BB = bank TextCommand17:: ; 1a7c (0:1a7c) pop hl - ld a,[H_LOADEDROMBANK] + ld a, [H_LOADEDROMBANK] push af - ld a,[hli] - ld e,a - ld a,[hli] - ld d,a - ld a,[hli] - ld [H_LOADEDROMBANK],a - ld [MBC1RomBank],a + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + ld a, [hli] + ld [H_LOADEDROMBANK], a + ld [MBC1RomBank], a push hl - ld l,e - ld h,d + ld l, e + ld h, d call TextCommandProcessor pop hl pop af - ld [H_LOADEDROMBANK],a - ld [MBC1RomBank],a + ld [H_LOADEDROMBANK], a + ld [MBC1RomBank], a jp NextTextCommand TextCommandJumpTable:: ; 1a9a (0:1a9a) diff --git a/macros.asm b/macros.asm index ed59b848..8d7a37c8 100644 --- a/macros.asm +++ b/macros.asm @@ -311,6 +311,10 @@ TX_ASM: MACRO db $08 ENDM +TX_BUTTON_SOUND: MACRO + db $06 + ENDM + TX_SFX_ITEM EQUS "db $0b" TX_SFX_CONGRATS EQUS "db $10" TX_SFX_KEY_ITEM EQUS "db $11" diff --git a/main.asm b/main.asm index 4503d4d7..a7e4908e 100755 --- a/main.asm +++ b/main.asm @@ -781,10 +781,21 @@ SECTION "bank14",ROMX,BANK[$14] dr $50000,$5003d Route22Blocks: INCBIN "maps/route22.blk" - dr $500f1,$506ed + dr $500f1,$50682 + +INCLUDE "data/mapHeaders/route24.asm" +INCLUDE "data/mapObjects/route24.asm" Route24Blocks: ; 506ed (14:46ed) INCBIN "maps/route24.blk" - dr $507a1,$509aa + +; INCLUDE "data/mapHeaders/route25.asm" +; INCLUDE "data/mapObjects/route25.asm" + dr $507a1,$50816 +Route25Blocks: ; 50816 (14:4816) +INCBIN "maps/route25.blk" + + + dr $50924,$509aa INCLUDE "data/mapHeaders/saffroncity.asm" INCLUDE "data/mapObjects/saffroncity.asm" @@ -792,7 +803,9 @@ SaffronCityBlocks: ; 50a98 (14:4a98) INCBIN "maps/saffroncity.blk" INCLUDE "scripts/saffroncity.asm" - dr $50ca9,$517cc + dr $50ca9,$51366 +INCLUDE "scripts/route24.asm" + dr $515f3,$517cc ; victoryroad2 dr $517cc,$52060 diff --git a/scripts/route24.asm b/scripts/route24.asm index 61df4377..15fe78b8 100755 --- a/scripts/route24.asm +++ b/scripts/route24.asm @@ -1,4 +1,4 @@ -Route24Script: ; 513ad (14:53ad) +Route24Script: ; 51366 (14:5366) call EnableAutoTextBoxDrawing ld hl, Route24TrainerHeaders ld de, Route24ScriptPointers @@ -84,6 +84,7 @@ Route24TextPointers: ; 5144b (14:544b) dw Route24Text6 dw Route24Text7 dw PickUpItemText + dw Route24Text8 Route24TrainerHeaders: ; 5145b (14:545b) Route24TrainerHeader0: ; 5145b (14:545b) @@ -191,7 +192,9 @@ Route24Text_51510: ; 51510 (14:5510) Route24Text_5151a: ; 5151a (14:551a) TX_FAR _Route24Text_5151a - db $0B, $6, "@" + TX_SFX_KEY_ITEM + TX_BUTTON_SOUND + db "@" Route24Text_51521: ; 51521 (14:5521) TX_FAR _Route24Text_51521 @@ -316,3 +319,60 @@ Route24EndBattleText6: ; 515c1 (14:55c1) Route24AfterBattleText6: ; 515c6 (14:55c6) TX_FAR _Route24AfterBattleText6 db "@" + +Route24Text8: + TX_ASM + CheckEvent EVENT_54F + jr nz, .asm_515d5 + ld hl, Route24Text_515de + call PrintText + call YesNoChoice + ld a, [wCurrentMenuItem] + and a + jr nz, .asm_515d0 + ld a, CHARMANDER + ld [wd11e], a + ld [wcf91], a + call GetMonName + ld a, $1 + ld [wDoNotWaitForButtonPressAfterDisplayingText], a + lb bc, CHARMANDER, 10 + call GivePokemon + jp nc, TextScriptEnd + ld a, [wAddedToParty] + and a + call z, WaitForTextScrollButtonPress + ld a, $1 + ld [wDoNotWaitForButtonPressAfterDisplayingText], a + ld hl, Route24Text_515e3 + call PrintText + SetEvent EVENT_54F + jp TextScriptEnd + +.asm_515d0 + ld hl, Route24Text_515e9 + jr .asm_515d8 + +.asm_515d5 + ld hl, Route24Text_515ee +.asm_515d8 + call PrintText + jp TextScriptEnd + +Route24Text_515de: + TX_FAR _Route24DamianText1 + db "@" + +Route24Text_515e3: + TX_FAR _Route24DamianText2 + db $d + db "@" + +Route24Text_515e9: + TX_FAR _Route24DamianText3 + db "@" + +Route24Text_515ee: + TX_FAR _Route24DamianText4 + db "@" + diff --git a/text/maps/route_24.asm b/text/maps/route_24.asm index 7a073916..26cb4044 100644 --- a/text/maps/route_24.asm +++ b/text/maps/route_24.asm @@ -154,3 +154,31 @@ _Route24AfterBattleText6:: line "have no regrets!" done +_Route24DamianText1:: + text "I'm not good at" + line "raising #MON." + + para "I should release" + line "my CHARMANDER" + cont "because I haven't" + cont "raised it well..." + + para "If you promise me" + line "you'll care for" + cont "it, it's yours." + done + +_Route24DamianText2:: + text "Take good care of" + line "my CHARMANDER!@@" + +_Route24DamianText3:: + text "Oh... I'd better" + line "release it then." + done + +_Route24DamianText4:: + text "How's CHARMANDER" + line "doing?" + done + diff --git a/text/maps/route_25.asm b/text/maps/route_25.asm index 0d0d8b5b..f9f0c8ff 100644 --- a/text/maps/route_25.asm +++ b/text/maps/route_25.asm @@ -1,31 +1,3 @@ -_Route25DamianText1:: - text "I'm not good at" - line "raising #MON." - - para "I should release" - line "my CHARMANDER" - cont "because I haven't" - cont "raised it well..." - - para "If you promise me" - line "you'll care for" - cont "it, it's yours." - done - -_Route25DamianText2:: - text "Take good care of" - line "my CHARMANDER!@@" - -_Route25DamianText3:: - text "Oh... I'd better" - line "release it then." - done - -_Route25DamianText4:: - text "How's CHARMANDER" - line "doing?" - done - _Route25BattleText1:: text "Local trainers" line "come here to" -- cgit v1.2.3 From 4878c118567df8a97e2a796c1c755f2311d955a7 Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Fri, 27 May 2016 09:38:27 -0400 Subject: Route 25 scripts --- charmap.asm | 1 + constants/hide_show_constants.asm | 264 +++++++++++++++++++------------------- data/map_header_banks.asm | 4 +- data/map_header_pointers.asm | 4 +- main.asm | 9 +- scripts/route25.asm | 23 +++- text/maps/route_24.asm | 5 +- 7 files changed, 161 insertions(+), 149 deletions(-) diff --git a/charmap.asm b/charmap.asm index c794549f..1932b39e 100644 --- a/charmap.asm +++ b/charmap.asm @@ -149,6 +149,7 @@ charmap "ー", $E3 charmap "", $4a ; PkMn charmap "@", $50 +charmap "", $52 charmap "#", $54 ;charmap "POKé", $54 charmap "′", $71 diff --git a/constants/hide_show_constants.asm b/constants/hide_show_constants.asm index 9d009f5e..9877fba7 100755 --- a/constants/hide_show_constants.asm +++ b/constants/hide_show_constants.asm @@ -104,134 +104,136 @@ const_value = 0 const HS_VICTORY_ROAD_2_ITEM_3 ; 5F X const HS_VICTORY_ROAD_2_ITEM_4 ; 60 const HS_VICTORY_ROAD_2_BOULDER ; 61 - const HS_BILL_POKEMON ; 62 - const HS_BILL_1 ; 63 - const HS_BILL_2 ; 64 X - const HS_VIRIDIAN_FOREST_ITEM_1 ; 65 X - const HS_VIRIDIAN_FOREST_ITEM_2 ; 66 X - const HS_VIRIDIAN_FOREST_ITEM_3 ; 67 X - const HS_MT_MOON_1_ITEM_1 ; 68 X - const HS_MT_MOON_1_ITEM_2 ; 69 X - const HS_MT_MOON_1_ITEM_3 ; 6A X - const HS_MT_MOON_1_ITEM_4 ; 6B X - const HS_MT_MOON_1_ITEM_5 ; 6C X - const HS_MT_MOON_1_ITEM_6 ; 6D - const HS_MT_MOON_3_FOSSIL_1 ; 6E - const HS_MT_MOON_3_FOSSIL_2 ; 6F X - const HS_MT_MOON_3_ITEM_1 ; 70 X - const HS_MT_MOON_3_ITEM_2 ; 71 - const HS_SS_ANNE_2_RIVAL ; 72 X - const HS_SS_ANNE_8_ITEM ; 73 X - const HS_SS_ANNE_9_ITEM_1 ; 74 X - const HS_SS_ANNE_9_ITEM_2 ; 75 X - const HS_SS_ANNE_10_ITEM_1 ; 76 X - const HS_SS_ANNE_10_ITEM_2 ; 77 X - const HS_SS_ANNE_10_ITEM_3 ; 78 X - const HS_VICTORY_ROAD_3_ITEM_1 ; 79 X - const HS_VICTORY_ROAD_3_ITEM_2 ; 7A - const HS_VICTORY_ROAD_3_BOULDER ; 7B X - const HS_ROCKET_HIDEOUT_1_ITEM_1 ; 7C X - const HS_ROCKET_HIDEOUT_1_ITEM_2 ; 7D X - const HS_ROCKET_HIDEOUT_2_ITEM_1 ; 7E X - const HS_ROCKET_HIDEOUT_2_ITEM_2 ; 7F X - const HS_ROCKET_HIDEOUT_2_ITEM_3 ; 80 X - const HS_ROCKET_HIDEOUT_2_ITEM_4 ; 81 X - const HS_ROCKET_HIDEOUT_3_ITEM_1 ; 82 X - const HS_ROCKET_HIDEOUT_3_ITEM_2 ; 83 - const HS_ROCKET_HIDEOUT_4_GIOVANNI ; 84 X - const HS_ROCKET_HIDEOUT_4_ITEM_1 ; 85 X - const HS_ROCKET_HIDEOUT_4_ITEM_2 ; 86 X - const HS_ROCKET_HIDEOUT_4_ITEM_3 ; 87 - const HS_ROCKET_HIDEOUT_4_ITEM_4 ; 88 - const HS_ROCKET_HIDEOUT_4_ITEM_5 ; 89 XXX never (de)activated? - const HS_SILPH_CO_2F_1 ; 8A - const HS_SILPH_CO_2F_2 ; 8B - const HS_SILPH_CO_2F_3 ; 8C - const HS_SILPH_CO_2F_4 ; 8D - const HS_SILPH_CO_2F_5 ; 8E - const HS_SILPH_CO_3F_1 ; 8F - const HS_SILPH_CO_3F_2 ; 90 X - const HS_SILPH_CO_3F_ITEM ; 91 - const HS_SILPH_CO_4F_1 ; 92 - const HS_SILPH_CO_4F_2 ; 93 - const HS_SILPH_CO_4F_3 ; 94 X - const HS_SILPH_CO_4F_ITEM_1 ; 95 X - const HS_SILPH_CO_4F_ITEM_2 ; 96 X - const HS_SILPH_CO_4F_ITEM_3 ; 97 - const HS_SILPH_CO_5F_1 ; 98 - const HS_SILPH_CO_5F_2 ; 99 - const HS_SILPH_CO_5F_3 ; 9A - const HS_SILPH_CO_5F_4 ; 9B X - const HS_SILPH_CO_5F_ITEM_1 ; 9C X - const HS_SILPH_CO_5F_ITEM_2 ; 9D X - const HS_SILPH_CO_5F_ITEM_3 ; 9E - const HS_SILPH_CO_6F_1 ; 9F - const HS_SILPH_CO_6F_2 ; A0 - const HS_SILPH_CO_6F_3 ; A1 X - const HS_SILPH_CO_6F_ITEM_1 ; A2 X - const HS_SILPH_CO_6F_ITEM_2 ; A3 - const HS_SILPH_CO_7F_1 ; A4 - const HS_SILPH_CO_7F_2 ; A5 - const HS_SILPH_CO_7F_3 ; A6 - const HS_SILPH_CO_7F_4 ; A7 - const HS_SILPH_CO_7F_RIVAL ; A8 X - const HS_SILPH_CO_7F_ITEM_1 ; A9 X - const HS_SILPH_CO_7F_ITEM_2 ; AA XXX sprite doesn't exist - const HS_SILPH_CO_7F_8 ; AB - const HS_SILPH_CO_8F_1 ; AC - const HS_SILPH_CO_8F_2 ; AD - const HS_SILPH_CO_8F_3 ; AE - const HS_SILPH_CO_9F_1 ; AF - const HS_SILPH_CO_9F_2 ; B0 - const HS_SILPH_CO_9F_3 ; B1 - const HS_SILPH_CO_10F_1 ; B2 - const HS_SILPH_CO_10F_2 ; B3 XXX never (de)activated? - const HS_SILPH_CO_10F_3 ; B4 X - const HS_SILPH_CO_10F_ITEM_1 ; B5 X - const HS_SILPH_CO_10F_ITEM_2 ; B6 X - const HS_SILPH_CO_10F_ITEM_3 ; B7 - const HS_SILPH_CO_11F_1 ; B8 - const HS_SILPH_CO_11F_2 ; B9 - const HS_SILPH_CO_11F_3 ; BA XXX sprite doesn't exist - const HS_MAP_F4_1 ; BB X - const HS_MANSION_2_ITEM ; BC X - const HS_MANSION_3_ITEM_1 ; BD X - const HS_MANSION_3_ITEM_2 ; BE X - const HS_MANSION_4_ITEM_1 ; BF X - const HS_MANSION_4_ITEM_2 ; C0 X - const HS_MANSION_4_ITEM_3 ; C1 X - const HS_MANSION_4_ITEM_4 ; C2 X - const HS_MANSION_4_ITEM_5 ; C3 X - const HS_SAFARI_ZONE_EAST_ITEM_1 ; C4 X - const HS_SAFARI_ZONE_EAST_ITEM_2 ; C5 X - const HS_SAFARI_ZONE_EAST_ITEM_3 ; C6 X - const HS_SAFARI_ZONE_EAST_ITEM_4 ; C7 X - const HS_SAFARI_ZONE_NORTH_ITEM_1 ; C8 X - const HS_SAFARI_ZONE_NORTH_ITEM_2 ; C9 X - const HS_SAFARI_ZONE_WEST_ITEM_1 ; CA X - const HS_SAFARI_ZONE_WEST_ITEM_2 ; CB X - const HS_SAFARI_ZONE_WEST_ITEM_3 ; CC X - const HS_SAFARI_ZONE_WEST_ITEM_4 ; CD X - const HS_SAFARI_ZONE_CENTER_ITEM ; CE X - const HS_UNKNOWN_DUNGEON_2_ITEM_1 ; CF X - const HS_UNKNOWN_DUNGEON_2_ITEM_2 ; D0 X - const HS_UNKNOWN_DUNGEON_2_ITEM_3 ; D1 X - const HS_MEWTWO ; D2 X - const HS_UNKNOWN_DUNGEON_3_ITEM_1 ; D3 X - const HS_UNKNOWN_DUNGEON_3_ITEM_2 ; D4 X - const HS_VICTORY_ROAD_1_ITEM_1 ; D5 X - const HS_VICTORY_ROAD_1_ITEM_2 ; D6 - const HS_CHAMPIONS_ROOM_OAK ; D7 - const HS_SEAFOAM_ISLANDS_1_BOULDER_1 ; D8 - const HS_SEAFOAM_ISLANDS_1_BOULDER_2 ; D9 - const HS_SEAFOAM_ISLANDS_2_BOULDER_1 ; DA - const HS_SEAFOAM_ISLANDS_2_BOULDER_2 ; DB - const HS_SEAFOAM_ISLANDS_3_BOULDER_1 ; DC - const HS_SEAFOAM_ISLANDS_3_BOULDER_2 ; DD - const HS_SEAFOAM_ISLANDS_4_BOULDER_1 ; DE - const HS_SEAFOAM_ISLANDS_4_BOULDER_2 ; DF - const HS_SEAFOAM_ISLANDS_4_BOULDER_3 ; E0 - const HS_SEAFOAM_ISLANDS_4_BOULDER_4 ; E1 - const HS_SEAFOAM_ISLANDS_5_BOULDER_1 ; E2 - const HS_SEAFOAM_ISLANDS_5_BOULDER_2 ; E3 X - const HS_ARTICUNO ; EF + +const_value SET $61 ; something above was deleted, idk what yet + const HS_BILL_POKEMON ; 61 + const HS_BILL_1 ; 62 + const HS_BILL_2 ; 63 + const HS_VIRIDIAN_FOREST_ITEM_1 ; 64 X + const HS_VIRIDIAN_FOREST_ITEM_2 ; 65 X + const HS_VIRIDIAN_FOREST_ITEM_3 ; 66 X + const HS_MT_MOON_1_ITEM_1 ; 67 X + const HS_MT_MOON_1_ITEM_2 ; 68 X + const HS_MT_MOON_1_ITEM_3 ; 69 X + const HS_MT_MOON_1_ITEM_4 ; 6A X + const HS_MT_MOON_1_ITEM_5 ; 6B X + const HS_MT_MOON_1_ITEM_6 ; 6C X + const HS_MT_MOON_3_FOSSIL_1 ; 6D + const HS_MT_MOON_3_FOSSIL_2 ; 6E + const HS_MT_MOON_3_ITEM_1 ; 6F X + const HS_MT_MOON_3_ITEM_2 ; 70 X + const HS_SS_ANNE_2_RIVAL ; 71 + const HS_SS_ANNE_8_ITEM ; 72 X + const HS_SS_ANNE_9_ITEM_1 ; 73 X + const HS_SS_ANNE_9_ITEM_2 ; 74 X + const HS_SS_ANNE_10_ITEM_1 ; 75 X + const HS_SS_ANNE_10_ITEM_2 ; 76 X + const HS_SS_ANNE_10_ITEM_3 ; 77 X + const HS_VICTORY_ROAD_3_ITEM_1 ; 78 X + const HS_VICTORY_ROAD_3_ITEM_2 ; 79 X + const HS_VICTORY_ROAD_3_BOULDER ; 7A + const HS_ROCKET_HIDEOUT_1_ITEM_1 ; 7B X + const HS_ROCKET_HIDEOUT_1_ITEM_2 ; 7C X + const HS_ROCKET_HIDEOUT_2_ITEM_1 ; 7D X + const HS_ROCKET_HIDEOUT_2_ITEM_2 ; 7E X + const HS_ROCKET_HIDEOUT_2_ITEM_3 ; 7F X + const HS_ROCKET_HIDEOUT_2_ITEM_4 ; 80 X + const HS_ROCKET_HIDEOUT_3_ITEM_1 ; 81 X + const HS_ROCKET_HIDEOUT_3_ITEM_2 ; 82 X + const HS_ROCKET_HIDEOUT_4_GIOVANNI ; 83 + const HS_ROCKET_HIDEOUT_4_ITEM_1 ; 84 X + const HS_ROCKET_HIDEOUT_4_ITEM_2 ; 85 X + const HS_ROCKET_HIDEOUT_4_ITEM_3 ; 86 X + const HS_ROCKET_HIDEOUT_4_ITEM_4 ; 87 + const HS_ROCKET_HIDEOUT_4_ITEM_5 ; 88 + const HS_SILPH_CO_2F_1 ; 89 XXX never (de)activated? + const HS_SILPH_CO_2F_2 ; 8A + const HS_SILPH_CO_2F_3 ; 8B + const HS_SILPH_CO_2F_4 ; 8C + const HS_SILPH_CO_2F_5 ; 8D + const HS_SILPH_CO_3F_1 ; 8E + const HS_SILPH_CO_3F_2 ; 8F + const HS_SILPH_CO_3F_ITEM ; 90 X + const HS_SILPH_CO_4F_1 ; 91 + const HS_SILPH_CO_4F_2 ; 92 + const HS_SILPH_CO_4F_3 ; 93 + const HS_SILPH_CO_4F_ITEM_1 ; 94 X + const HS_SILPH_CO_4F_ITEM_2 ; 95 X + const HS_SILPH_CO_4F_ITEM_3 ; 96 X + const HS_SILPH_CO_5F_1 ; 97 + const HS_SILPH_CO_5F_2 ; 98 + const HS_SILPH_CO_5F_3 ; 99 + const HS_SILPH_CO_5F_4 ; 9A + const HS_SILPH_CO_5F_ITEM_1 ; 9B X + const HS_SILPH_CO_5F_ITEM_2 ; 9C X + const HS_SILPH_CO_5F_ITEM_3 ; 9D X + const HS_SILPH_CO_6F_1 ; 9E + const HS_SILPH_CO_6F_2 ; 9F + const HS_SILPH_CO_6F_3 ; A0 + const HS_SILPH_CO_6F_ITEM_1 ; A1 X + const HS_SILPH_CO_6F_ITEM_2 ; A2 X + const HS_SILPH_CO_7F_1 ; A3 + const HS_SILPH_CO_7F_2 ; A4 + const HS_SILPH_CO_7F_3 ; A5 + const HS_SILPH_CO_7F_4 ; A6 + const HS_SILPH_CO_7F_RIVAL ; A7 + const HS_SILPH_CO_7F_ITEM_1 ; A8 X + const HS_SILPH_CO_7F_ITEM_2 ; A9 X + const HS_SILPH_CO_7F_8 ; AA XXX sprite doesn't exist + const HS_SILPH_CO_8F_1 ; AB + const HS_SILPH_CO_8F_2 ; AC + const HS_SILPH_CO_8F_3 ; AD + const HS_SILPH_CO_9F_1 ; AE + const HS_SILPH_CO_9F_2 ; AF + const HS_SILPH_CO_9F_3 ; B0 + const HS_SILPH_CO_10F_1 ; B1 + const HS_SILPH_CO_10F_2 ; B2 + const HS_SILPH_CO_10F_3 ; B3 XXX never (de)activated? + const HS_SILPH_CO_10F_ITEM_1 ; B4 X + const HS_SILPH_CO_10F_ITEM_2 ; B5 X + const HS_SILPH_CO_10F_ITEM_3 ; B6 X + const HS_SILPH_CO_11F_1 ; B7 + const HS_SILPH_CO_11F_2 ; B8 + const HS_SILPH_CO_11F_3 ; B9 + const HS_MAP_F4_1 ; BA XXX sprite doesn't exist + const HS_MANSION_2_ITEM ; BB X + const HS_MANSION_3_ITEM_1 ; BC X + const HS_MANSION_3_ITEM_2 ; BD X + const HS_MANSION_4_ITEM_1 ; BE X + const HS_MANSION_4_ITEM_2 ; BF X + const HS_MANSION_4_ITEM_3 ; C0 X + const HS_MANSION_4_ITEM_4 ; C1 X + const HS_MANSION_4_ITEM_5 ; C2 X + const HS_SAFARI_ZONE_EAST_ITEM_1 ; C3 X + const HS_SAFARI_ZONE_EAST_ITEM_2 ; C4 X + const HS_SAFARI_ZONE_EAST_ITEM_3 ; C5 X + const HS_SAFARI_ZONE_EAST_ITEM_4 ; C6 X + const HS_SAFARI_ZONE_NORTH_ITEM_1 ; C7 X + const HS_SAFARI_ZONE_NORTH_ITEM_2 ; C8 X + const HS_SAFARI_ZONE_WEST_ITEM_1 ; C9 X + const HS_SAFARI_ZONE_WEST_ITEM_2 ; CA X + const HS_SAFARI_ZONE_WEST_ITEM_3 ; CB X + const HS_SAFARI_ZONE_WEST_ITEM_4 ; CC X + const HS_SAFARI_ZONE_CENTER_ITEM ; CD X + const HS_UNKNOWN_DUNGEON_2_ITEM_1 ; CE X + const HS_UNKNOWN_DUNGEON_2_ITEM_2 ; CF X + const HS_UNKNOWN_DUNGEON_2_ITEM_3 ; D0 X + const HS_MEWTWO ; D1 X + const HS_UNKNOWN_DUNGEON_3_ITEM_1 ; D2 X + const HS_UNKNOWN_DUNGEON_3_ITEM_2 ; D3 X + const HS_VICTORY_ROAD_1_ITEM_1 ; D4 X + const HS_VICTORY_ROAD_1_ITEM_2 ; D5 X + const HS_CHAMPIONS_ROOM_OAK ; D6 + const HS_SEAFOAM_ISLANDS_1_BOULDER_1 ; D7 + const HS_SEAFOAM_ISLANDS_1_BOULDER_2 ; D8 + const HS_SEAFOAM_ISLANDS_2_BOULDER_1 ; D9 + const HS_SEAFOAM_ISLANDS_2_BOULDER_2 ; DA + const HS_SEAFOAM_ISLANDS_3_BOULDER_1 ; DB + const HS_SEAFOAM_ISLANDS_3_BOULDER_2 ; DC + const HS_SEAFOAM_ISLANDS_4_BOULDER_1 ; DD + const HS_SEAFOAM_ISLANDS_4_BOULDER_2 ; DE + const HS_SEAFOAM_ISLANDS_4_BOULDER_3 ; DF + const HS_SEAFOAM_ISLANDS_4_BOULDER_4 ; E0 + const HS_SEAFOAM_ISLANDS_5_BOULDER_1 ; E1 + const HS_SEAFOAM_ISLANDS_5_BOULDER_2 ; E2 + const HS_ARTICUNO ; E3 X diff --git a/data/map_header_banks.asm b/data/map_header_banks.asm index 7e730780..2fff5f22 100644 --- a/data/map_header_banks.asm +++ b/data/map_header_banks.asm @@ -35,8 +35,8 @@ MapHeaderBanks:: ; fc3e4 (3f:43e4) db $15 ; db BANK(Route21_h) ; ROUTE_21 db $14 ; db BANK(Route22_h) ; ROUTE_22 db $14 ; db BANK(Route23_h) ; ROUTE_23 - db $14 ; db BANK(Route24_h) ; ROUTE_24 - db $14 ; db BANK(Route25_h) ; ROUTE_25 + db BANK(Route24_h) ; ROUTE_24 + db BANK(Route25_h) ; ROUTE_25 db $12 ; db BANK(RedsHouse1F_h) db $17 ; db BANK(RedsHouse2F_h) db $06 ; db BANK(BluesHouse_h) diff --git a/data/map_header_pointers.asm b/data/map_header_pointers.asm index adbe374b..6721a8a5 100644 --- a/data/map_header_pointers.asm +++ b/data/map_header_pointers.asm @@ -35,8 +35,8 @@ MapHeaderPointers:: ; fc1f2 (3f:41f2) dw $500f ; dw Route21_h dw $4000 ; dw Route22_h dw $433f ; dw Route23_h - dw $4682 ; dw Route24_h - dw $47a1 ; dw Route25_h + dw Route24_h + dw Route25_h dw $40f6 ; dw RedsHouse1F_h dw $40a4 ; dw RedsHouse2F_h dw $5c2f ; dw BluesHouse_h diff --git a/main.asm b/main.asm index a7e4908e..cfcfa6c0 100755 --- a/main.asm +++ b/main.asm @@ -788,13 +788,12 @@ INCLUDE "data/mapObjects/route24.asm" Route24Blocks: ; 506ed (14:46ed) INCBIN "maps/route24.blk" -; INCLUDE "data/mapHeaders/route25.asm" -; INCLUDE "data/mapObjects/route25.asm" - dr $507a1,$50816 +INCLUDE "data/mapHeaders/route25.asm" +INCLUDE "data/mapObjects/route25.asm" Route25Blocks: ; 50816 (14:4816) INCBIN "maps/route25.blk" - +; victoryroad2 dr $50924,$509aa INCLUDE "data/mapHeaders/saffroncity.asm" @@ -805,7 +804,7 @@ INCLUDE "scripts/saffroncity.asm" dr $50ca9,$51366 INCLUDE "scripts/route24.asm" - dr $515f3,$517cc +INCLUDE "scripts/route25.asm" ; victoryroad2 dr $517cc,$52060 diff --git a/scripts/route25.asm b/scripts/route25.asm index 49580ba6..20dcc890 100755 --- a/scripts/route25.asm +++ b/scripts/route25.asm @@ -1,14 +1,21 @@ Route25Script: ; 515cb (14:55cb) - call Route25Script_515e1 call EnableAutoTextBoxDrawing ld hl, Route25TrainerHeaders ld de, Route25ScriptPointers ld a, [W_ROUTE25CURSCRIPT] call ExecuteCurMapScriptInTable ld [W_ROUTE25CURSCRIPT], a + call Route25Script_515e1 ret Route25Script_515e1: ; 515e1 (14:55e1) + ld hl, wPreventBlackout + res 2, [hl] + res 3, [hl] + res 4, [hl] + res 7, [hl] + xor a + ld [W_BILLSHOUSECURSCRIPT], a ld hl, wd126 bit 6, [hl] res 6, [hl] @@ -16,14 +23,16 @@ Route25Script_515e1: ; 515e1 (14:55e1) CheckEventHL EVENT_LEFT_BILLS_HOUSE_AFTER_HELPING ret nz CheckEventReuseHL EVENT_MET_BILL_2 - jr nz, .asm_515ff + jr nz, .asm_51638 ResetEventReuseHL EVENT_BILL_SAID_USE_CELL_SEPARATOR ld a, HS_BILL_POKEMON ld [wMissableObjectIndex], a - predef_jump ShowObject -.asm_515ff + predef ShowObject + jr .asm_5165c + +.asm_51638 CheckEventAfterBranchReuseHL EVENT_GOT_SS_TICKET, EVENT_MET_BILL_2 - ret z + jr z, .asm_5165c SetEventReuseHL EVENT_LEFT_BILLS_HOUSE_AFTER_HELPING ld a, HS_NUGGET_BRIDGE_GUY ld [wMissableObjectIndex], a @@ -33,7 +42,9 @@ Route25Script_515e1: ; 515e1 (14:55e1) predef HideObject ld a, HS_BILL_2 ld [wMissableObjectIndex], a - predef_jump ShowObject + predef ShowObject +.asm_5165c + ret Route25ScriptPointers: ; 51622 (14:5622) dw CheckFightingMapTrainers diff --git a/text/maps/route_24.asm b/text/maps/route_24.asm index 26cb4044..475a2602 100644 --- a/text/maps/route_24.asm +++ b/text/maps/route_24.asm @@ -4,13 +4,13 @@ _Route24Text_51510:: cont "contest trainers!@@" _Route24Text_51515:: - db $0 + text "" para "You just earned a" line "fabulous prize!" prompt _Route24Text_5151a:: - text $52, " received" + text " received" line "a @" TX_RAM wcf4b text "!@@" @@ -181,4 +181,3 @@ _Route24DamianText4:: text "How's CHARMANDER" line "doing?" done - -- cgit v1.2.3 From 7a649c27baca781e4cc3e8e70bc41b66530dd5b5 Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Fri, 27 May 2016 10:08:04 -0400 Subject: Route 22 --- constants/trainer_constants.asm | 2 +- data/map_header_banks.asm | 2 +- data/map_header_pointers.asm | 2 +- engine/bank3c.asm | 4 +- main.asm | 11 +++- scripts/route22.asm | 133 +++++++++++++--------------------------- 6 files changed, 54 insertions(+), 100 deletions(-) diff --git a/constants/trainer_constants.asm b/constants/trainer_constants.asm index a710b5fa..fde4d42a 100755 --- a/constants/trainer_constants.asm +++ b/constants/trainer_constants.asm @@ -41,7 +41,7 @@ const_value = 1 trainer_const BRUNO ; $21 trainer_const BROCK ; $22 trainer_const MISTY ; $23 - trainer_const LT_SURGE ; $24 + trainer_const LT_SURGE ; $24 trainer_const ERIKA ; $25 trainer_const KOGA ; $26 trainer_const BLAINE ; $27 diff --git a/data/map_header_banks.asm b/data/map_header_banks.asm index 2fff5f22..1f3e4967 100644 --- a/data/map_header_banks.asm +++ b/data/map_header_banks.asm @@ -33,7 +33,7 @@ MapHeaderBanks:: ; fc3e4 (3f:43e4) db $15 ; db BANK(Route19_h) ; ROUTE_19 db $14 ; db BANK(Route20_h) ; ROUTE_20 db $15 ; db BANK(Route21_h) ; ROUTE_21 - db $14 ; db BANK(Route22_h) ; ROUTE_22 + db BANK(Route22_h) ; ROUTE_22 db $14 ; db BANK(Route23_h) ; ROUTE_23 db BANK(Route24_h) ; ROUTE_24 db BANK(Route25_h) ; ROUTE_25 diff --git a/data/map_header_pointers.asm b/data/map_header_pointers.asm index 6721a8a5..e93c3def 100644 --- a/data/map_header_pointers.asm +++ b/data/map_header_pointers.asm @@ -33,7 +33,7 @@ MapHeaderPointers:: ; fc1f2 (3f:41f2) dw $4e80 ; dw Route19_h dw $40f1 ; dw Route20_h dw $500f ; dw Route21_h - dw $4000 ; dw Route22_h + dw Route22_h dw $433f ; dw Route23_h dw Route24_h dw Route25_h diff --git a/engine/bank3c.asm b/engine/bank3c.asm index 35be938e..61096d27 100644 --- a/engine/bank3c.asm +++ b/engine/bank3c.asm @@ -348,8 +348,8 @@ INCLUDE "scripts/viridiancity2.asm" INCLUDE "scripts/vermilioncity2.asm" INCLUDE "scripts/celadoncity2.asm" INCLUDE "scripts/route1_2.asm" - - dr $f1b27, $f220e +INCLUDE "scripts/route22_2.asm" + dr $f1b73, $f220e INCLUDE "data/mapHeaders/beach_house.asm" INCLUDE "scripts/beach_house.asm" diff --git a/main.asm b/main.asm index cfcfa6c0..803dc68c 100755 --- a/main.asm +++ b/main.asm @@ -778,10 +778,13 @@ INCBIN "maps/colosseum.blk" SECTION "bank14",ROMX,BANK[$14] - dr $50000,$5003d +INCLUDE "data/mapHeaders/route22.asm" +INCLUDE "data/mapObjects/route22.asm" Route22Blocks: INCBIN "maps/route22.blk" - dr $500f1,$50682 + dr $500f1,$503b2 +Route23Blocks: +INCBIN "maps/route23.blk" INCLUDE "data/mapHeaders/route24.asm" INCLUDE "data/mapObjects/route24.asm" @@ -802,7 +805,9 @@ SaffronCityBlocks: ; 50a98 (14:4a98) INCBIN "maps/saffroncity.blk" INCLUDE "scripts/saffroncity.asm" - dr $50ca9,$51366 + dr $50ca9,$50eb2 +INCLUDE "scripts/route22.asm" + dr $51193,$51366 INCLUDE "scripts/route24.asm" INCLUDE "scripts/route25.asm" diff --git a/scripts/route22.asm b/scripts/route22.asm index 5c3d2b21..a7c61903 100755 --- a/scripts/route22.asm +++ b/scripts/route22.asm @@ -22,16 +22,17 @@ Route22Script7: ; 50ed5 (14:4ed5) ret Route22Script_50ed6: ; 50ed6 (14:4ed6) + ld a, OPP_SONY1 + ld [wCurOpponent], a + ld a, $2 + ld [wTrainerNo], a + ret + +Route22Script_50ee1: + ld a, OPP_SONY2 + ld [wCurOpponent], a ld a, [W_RIVALSTARTER] - ld b, a -.asm_50eda - ld a, [hli] - cp b - jr z, .asm_50ee1 - inc hl - jr .asm_50eda -.asm_50ee1 - ld a, [hl] + add 7 ld [wTrainerNo], a ret @@ -88,9 +89,7 @@ Route22Script0: ; 50f00 (14:4f00) ld a, [wWalkBikeSurfState] and a jr z, .asm_50f4e - ld a, $ff - ld [wNewSoundID], a - call PlaySound + call StopAllMusic .asm_50f4e ld c, BANK(Music_MeetRival) ld a, MUSIC_MEET_RIVAL @@ -131,24 +130,29 @@ Route22Script1: ; 50f62 (14:4f62) ld hl, Route22RivalDefeatedText1 ld de, Route22Text_511bc call SaveEndBattleTextPointers - ld a, OPP_SONY1 - ld [wCurOpponent], a - ld hl, StarterMons_50faf call Route22Script_50ed6 ld a, $2 ld [W_ROUTE22CURSCRIPT], a ret -StarterMons_50faf: ; 50faf (14:4faf) -; starter the rival picked, rival trainer number - db STARTER2,$04 - db STARTER3,$05 - db STARTER1,$06 +Route22RivalDefeatedText1: ; 511b7 (14:51b7) + TX_FAR _Route22RivalDefeatedText1 + db "@" + +Route22Text_511bc: ; 511bc (14:51bc) + TX_FAR _Route22Text_511bc + db "@" Route22Script2: ; 50fb5 (14:4fb5) ld a, [wIsInBattle] cp $ff jp z, Route22Script_50ece + ld a, [W_RIVALSTARTER] + cp 2 + jr nz, .asm_50fc9 + ld a, $1 + ld [W_RIVALSTARTER], a +.asm_50fc9 ld a, [wSpriteStateData1 + 9] and a ; cp SPRITE_FACING_DOWN jr nz, .notDown @@ -167,9 +171,7 @@ Route22Script2: ; 50fb5 (14:4fb5) ld a, $1 ld [hSpriteIndexOrTextID], a call DisplayTextID - ld a, $ff - ld [wNewSoundID], a - call PlaySound + call StopAllMusic callba Music_RivalAlternateStart ld a, [wcf0d] cp $1 @@ -241,13 +243,9 @@ Route22Script_5104e: ; 5104e (14:504e) ld a, [wWalkBikeSurfState] and a jr z, .skipYVisibilityTesta - ld a, $ff - ld [wNewSoundID], a - call PlaySound + call StopAllMusic .skipYVisibilityTesta - ld a, $ff - ld [wNewSoundID], a - call PlaySound + call StopAllMusic callba Music_RivalAlternateTempo ld a, $2 ld [H_SPRITEINDEX], a @@ -287,18 +285,18 @@ Route22Script4: ; 51087 (14:5087) ld hl, Route22RivalDefeatedText2 ld de, Route22Text_511d0 call SaveEndBattleTextPointers - ld a, OPP_SONY2 - ld [wCurOpponent], a - ld hl, StarterMons_510d9 - call Route22Script_50ed6 + call Route22Script_50ee1 ld a, $5 ld [W_ROUTE22CURSCRIPT], a ret -StarterMons_510d9: ; 510d9 (14:50d9) - db STARTER2,$0a - db STARTER3,$0b - db STARTER1,$0c +Route22RivalDefeatedText2: ; 511cb (14:51cb) + TX_FAR _Route22RivalDefeatedText2 + db "@" + +Route22Text_511d0: ; 511d0 (14:51d0) + TX_FAR _Route22Text_511d0 + db "@" Route22Script5: ; 510df (14:50df) ld a, [wIsInBattle] @@ -326,9 +324,7 @@ Route22Script5: ; 510df (14:50df) ld a, $2 ld [hSpriteIndexOrTextID], a call DisplayTextID - ld a, $ff - ld [wNewSoundID], a - call PlaySound + call StopAllMusic callba Music_RivalAlternateStartAndTempo ld a, [wcf0d] cp $1 @@ -384,62 +380,15 @@ Route22TextPointers: ; 51175 (14:5175) Route22Text1: ; 5117b (14:517b) TX_ASM - CheckEvent EVENT_BEAT_ROUTE22_RIVAL_1ST_BATTLE - jr z, .asm_5118b - ld hl, Route22RivalAfterBattleText1 - call PrintText - jr .asm_51191 -.asm_5118b - ld hl, Route22RivalBeforeBattleText1 - call PrintText -.asm_51191 + callba Func_f1b27 jp TextScriptEnd Route22Text2: ; 51194 (14:5194) TX_ASM - CheckEvent EVENT_BEAT_ROUTE22_RIVAL_2ND_BATTLE - jr z, .asm_511a4 - ld hl, Route22RivalAfterBattleText2 - call PrintText - jr .asm_511aa -.asm_511a4 - ld hl, Route22RivalBeforeBattleText2 - call PrintText -.asm_511aa + callba Func_f1b47 jp TextScriptEnd -Route22RivalBeforeBattleText1: ; 511ad (14:51ad) - TX_FAR _Route22RivalBeforeBattleText1 - db "@" - -Route22RivalAfterBattleText1: ; 511b2 (14:51b2) - TX_FAR _Route22RivalAfterBattleText1 - db "@" - -Route22RivalDefeatedText1: ; 511b7 (14:51b7) - TX_FAR _Route22RivalDefeatedText1 - db "@" - -Route22Text_511bc: ; 511bc (14:51bc) - TX_FAR _Route22Text_511bc - db "@" - -Route22RivalBeforeBattleText2: ; 511c1 (14:51c1) - TX_FAR _Route22RivalBeforeBattleText2 - db "@" - -Route22RivalAfterBattleText2: ; 511c6 (14:51c6) - TX_FAR _Route22RivalAfterBattleText2 - db "@" - -Route22RivalDefeatedText2: ; 511cb (14:51cb) - TX_FAR _Route22RivalDefeatedText2 - db "@" - -Route22Text_511d0: ; 511d0 (14:51d0) - TX_FAR _Route22Text_511d0 - db "@" - Route22FrontGateText: ; 511d5 (14:51d5) - TX_FAR _Route22FrontGateText - db "@" + TX_ASM + callba Func_f1b67 + jp TextScriptEnd -- cgit v1.2.3 From 33c2637c16b1af0611d297b7ee9aa79fb5407eaa Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Fri, 27 May 2016 10:28:02 -0400 Subject: Route 23 --- constants/hide_show_constants.asm | 276 +++++++++++++++++----------------- data/map_header_banks.asm | 2 +- data/map_header_pointers.asm | 2 +- engine/overworld/missable_objects.asm | 2 +- main.asm | 13 +- scripts/route23.asm | 2 +- 6 files changed, 152 insertions(+), 145 deletions(-) diff --git a/constants/hide_show_constants.asm b/constants/hide_show_constants.asm index 9877fba7..db37b9d9 100755 --- a/constants/hide_show_constants.asm +++ b/constants/hide_show_constants.asm @@ -74,38 +74,38 @@ const_value = 0 const HS_POKEMONTOWER_7_ROCKET_1 ; 41 X const HS_POKEMONTOWER_7_ROCKET_2 ; 42 X const HS_POKEMONTOWER_7_ROCKET_3 ; 43 - const HS_POKEMONTOWER_7_MR_FUJI ; 44 - const HS_LAVENDER_HOUSE_1_MR_FUJI ; 45 - const HS_CELADON_MANSION_5_GIFT ; 46 - const HS_GAME_CORNER_ROCKET ; 47 X - const HS_FUCHSIA_HOUSE_2_ITEM ; 48 X - const HS_MANSION_1_ITEM_1 ; 49 X - const HS_MANSION_1_ITEM_2 ; 4A - const HS_FIGHTING_DOJO_GIFT_1 ; 4B - const HS_FIGHTING_DOJO_GIFT_2 ; 4C - const HS_SILPH_CO_1F_RECEPTIONIST ; 4D X - const HS_VOLTORB_1 ; 4E X - const HS_VOLTORB_2 ; 4F X - const HS_VOLTORB_3 ; 50 X - const HS_ELECTRODE_1 ; 51 X - const HS_VOLTORB_4 ; 52 X - const HS_VOLTORB_5 ; 53 X - const HS_ELECTRODE_2 ; 54 X - const HS_VOLTORB_6 ; 55 X - const HS_ZAPDOS ; 56 X - const HS_POWER_PLANT_ITEM_1 ; 57 X - const HS_POWER_PLANT_ITEM_2 ; 58 X - const HS_POWER_PLANT_ITEM_3 ; 59 X - const HS_POWER_PLANT_ITEM_4 ; 5A X - const HS_POWER_PLANT_ITEM_5 ; 5B X - const HS_MOLTRES ; 5C X - const HS_VICTORY_ROAD_2_ITEM_1 ; 5D X - const HS_VICTORY_ROAD_2_ITEM_2 ; 5E X - const HS_VICTORY_ROAD_2_ITEM_3 ; 5F X - const HS_VICTORY_ROAD_2_ITEM_4 ; 60 - const HS_VICTORY_ROAD_2_BOULDER ; 61 -const_value SET $61 ; something above was deleted, idk what yet +const_value SET $43 ; something above was deleted, idk what yet + const HS_POKEMONTOWER_7_MR_FUJI ; 43 + const HS_LAVENDER_HOUSE_1_MR_FUJI ; 44 + const HS_CELADON_MANSION_5_GIFT ; 45 + const HS_GAME_CORNER_ROCKET ; 46 + const HS_FUCHSIA_HOUSE_2_ITEM ; 47 X + const HS_MANSION_1_ITEM_1 ; 48 X + const HS_MANSION_1_ITEM_2 ; 49 X + const HS_FIGHTING_DOJO_GIFT_1 ; 4A + const HS_FIGHTING_DOJO_GIFT_2 ; 4B + const HS_SILPH_CO_1F_RECEPTIONIST ; 4C + const HS_VOLTORB_1 ; 4D X + const HS_VOLTORB_2 ; 4E X + const HS_VOLTORB_3 ; 4F X + const HS_ELECTRODE_1 ; 50 X + const HS_VOLTORB_4 ; 51 X + const HS_VOLTORB_5 ; 52 X + const HS_ELECTRODE_2 ; 53 X + const HS_VOLTORB_6 ; 54 X + const HS_ZAPDOS ; 55 X + const HS_POWER_PLANT_ITEM_1 ; 56 X + const HS_POWER_PLANT_ITEM_2 ; 57 X + const HS_POWER_PLANT_ITEM_3 ; 58 X + const HS_POWER_PLANT_ITEM_4 ; 59 X + const HS_POWER_PLANT_ITEM_5 ; 5A X + const HS_MOLTRES ; 5B X + const HS_VICTORY_ROAD_2_ITEM_1 ; 5C X + const HS_VICTORY_ROAD_2_ITEM_2 ; 5D X + const HS_VICTORY_ROAD_2_ITEM_3 ; 5E X + const HS_VICTORY_ROAD_2_ITEM_4 ; 5F X + const HS_VICTORY_ROAD_2_BOULDER ; 60 const HS_BILL_POKEMON ; 61 const HS_BILL_1 ; 62 const HS_BILL_2 ; 63 @@ -131,109 +131,111 @@ const_value SET $61 ; something above was deleted, idk what yet const HS_SS_ANNE_10_ITEM_3 ; 77 X const HS_VICTORY_ROAD_3_ITEM_1 ; 78 X const HS_VICTORY_ROAD_3_ITEM_2 ; 79 X - const HS_VICTORY_ROAD_3_BOULDER ; 7A - const HS_ROCKET_HIDEOUT_1_ITEM_1 ; 7B X - const HS_ROCKET_HIDEOUT_1_ITEM_2 ; 7C X - const HS_ROCKET_HIDEOUT_2_ITEM_1 ; 7D X - const HS_ROCKET_HIDEOUT_2_ITEM_2 ; 7E X - const HS_ROCKET_HIDEOUT_2_ITEM_3 ; 7F X - const HS_ROCKET_HIDEOUT_2_ITEM_4 ; 80 X - const HS_ROCKET_HIDEOUT_3_ITEM_1 ; 81 X - const HS_ROCKET_HIDEOUT_3_ITEM_2 ; 82 X - const HS_ROCKET_HIDEOUT_4_GIOVANNI ; 83 - const HS_ROCKET_HIDEOUT_4_ITEM_1 ; 84 X - const HS_ROCKET_HIDEOUT_4_ITEM_2 ; 85 X - const HS_ROCKET_HIDEOUT_4_ITEM_3 ; 86 X - const HS_ROCKET_HIDEOUT_4_ITEM_4 ; 87 - const HS_ROCKET_HIDEOUT_4_ITEM_5 ; 88 - const HS_SILPH_CO_2F_1 ; 89 XXX never (de)activated? - const HS_SILPH_CO_2F_2 ; 8A - const HS_SILPH_CO_2F_3 ; 8B - const HS_SILPH_CO_2F_4 ; 8C - const HS_SILPH_CO_2F_5 ; 8D - const HS_SILPH_CO_3F_1 ; 8E - const HS_SILPH_CO_3F_2 ; 8F - const HS_SILPH_CO_3F_ITEM ; 90 X - const HS_SILPH_CO_4F_1 ; 91 - const HS_SILPH_CO_4F_2 ; 92 - const HS_SILPH_CO_4F_3 ; 93 - const HS_SILPH_CO_4F_ITEM_1 ; 94 X - const HS_SILPH_CO_4F_ITEM_2 ; 95 X - const HS_SILPH_CO_4F_ITEM_3 ; 96 X - const HS_SILPH_CO_5F_1 ; 97 - const HS_SILPH_CO_5F_2 ; 98 - const HS_SILPH_CO_5F_3 ; 99 - const HS_SILPH_CO_5F_4 ; 9A - const HS_SILPH_CO_5F_ITEM_1 ; 9B X - const HS_SILPH_CO_5F_ITEM_2 ; 9C X - const HS_SILPH_CO_5F_ITEM_3 ; 9D X - const HS_SILPH_CO_6F_1 ; 9E - const HS_SILPH_CO_6F_2 ; 9F - const HS_SILPH_CO_6F_3 ; A0 - const HS_SILPH_CO_6F_ITEM_1 ; A1 X - const HS_SILPH_CO_6F_ITEM_2 ; A2 X - const HS_SILPH_CO_7F_1 ; A3 - const HS_SILPH_CO_7F_2 ; A4 - const HS_SILPH_CO_7F_3 ; A5 - const HS_SILPH_CO_7F_4 ; A6 - const HS_SILPH_CO_7F_RIVAL ; A7 - const HS_SILPH_CO_7F_ITEM_1 ; A8 X - const HS_SILPH_CO_7F_ITEM_2 ; A9 X - const HS_SILPH_CO_7F_8 ; AA XXX sprite doesn't exist - const HS_SILPH_CO_8F_1 ; AB - const HS_SILPH_CO_8F_2 ; AC - const HS_SILPH_CO_8F_3 ; AD - const HS_SILPH_CO_9F_1 ; AE - const HS_SILPH_CO_9F_2 ; AF - const HS_SILPH_CO_9F_3 ; B0 - const HS_SILPH_CO_10F_1 ; B1 - const HS_SILPH_CO_10F_2 ; B2 - const HS_SILPH_CO_10F_3 ; B3 XXX never (de)activated? - const HS_SILPH_CO_10F_ITEM_1 ; B4 X - const HS_SILPH_CO_10F_ITEM_2 ; B5 X - const HS_SILPH_CO_10F_ITEM_3 ; B6 X - const HS_SILPH_CO_11F_1 ; B7 - const HS_SILPH_CO_11F_2 ; B8 - const HS_SILPH_CO_11F_3 ; B9 - const HS_MAP_F4_1 ; BA XXX sprite doesn't exist - const HS_MANSION_2_ITEM ; BB X - const HS_MANSION_3_ITEM_1 ; BC X - const HS_MANSION_3_ITEM_2 ; BD X - const HS_MANSION_4_ITEM_1 ; BE X - const HS_MANSION_4_ITEM_2 ; BF X - const HS_MANSION_4_ITEM_3 ; C0 X - const HS_MANSION_4_ITEM_4 ; C1 X - const HS_MANSION_4_ITEM_5 ; C2 X - const HS_SAFARI_ZONE_EAST_ITEM_1 ; C3 X - const HS_SAFARI_ZONE_EAST_ITEM_2 ; C4 X - const HS_SAFARI_ZONE_EAST_ITEM_3 ; C5 X - const HS_SAFARI_ZONE_EAST_ITEM_4 ; C6 X - const HS_SAFARI_ZONE_NORTH_ITEM_1 ; C7 X - const HS_SAFARI_ZONE_NORTH_ITEM_2 ; C8 X - const HS_SAFARI_ZONE_WEST_ITEM_1 ; C9 X - const HS_SAFARI_ZONE_WEST_ITEM_2 ; CA X - const HS_SAFARI_ZONE_WEST_ITEM_3 ; CB X - const HS_SAFARI_ZONE_WEST_ITEM_4 ; CC X - const HS_SAFARI_ZONE_CENTER_ITEM ; CD X - const HS_UNKNOWN_DUNGEON_2_ITEM_1 ; CE X - const HS_UNKNOWN_DUNGEON_2_ITEM_2 ; CF X - const HS_UNKNOWN_DUNGEON_2_ITEM_3 ; D0 X - const HS_MEWTWO ; D1 X - const HS_UNKNOWN_DUNGEON_3_ITEM_1 ; D2 X - const HS_UNKNOWN_DUNGEON_3_ITEM_2 ; D3 X - const HS_VICTORY_ROAD_1_ITEM_1 ; D4 X - const HS_VICTORY_ROAD_1_ITEM_2 ; D5 X - const HS_CHAMPIONS_ROOM_OAK ; D6 - const HS_SEAFOAM_ISLANDS_1_BOULDER_1 ; D7 - const HS_SEAFOAM_ISLANDS_1_BOULDER_2 ; D8 - const HS_SEAFOAM_ISLANDS_2_BOULDER_1 ; D9 - const HS_SEAFOAM_ISLANDS_2_BOULDER_2 ; DA - const HS_SEAFOAM_ISLANDS_3_BOULDER_1 ; DB - const HS_SEAFOAM_ISLANDS_3_BOULDER_2 ; DC - const HS_SEAFOAM_ISLANDS_4_BOULDER_1 ; DD - const HS_SEAFOAM_ISLANDS_4_BOULDER_2 ; DE - const HS_SEAFOAM_ISLANDS_4_BOULDER_3 ; DF - const HS_SEAFOAM_ISLANDS_4_BOULDER_4 ; E0 - const HS_SEAFOAM_ISLANDS_5_BOULDER_1 ; E1 - const HS_SEAFOAM_ISLANDS_5_BOULDER_2 ; E2 - const HS_ARTICUNO ; E3 X + +const_value SET $7c ; idk anymore lol + const HS_VICTORY_ROAD_3_BOULDER ; 7C X + const HS_ROCKET_HIDEOUT_1_ITEM_1 ; 7D X + const HS_ROCKET_HIDEOUT_1_ITEM_2 ; 7E X + const HS_ROCKET_HIDEOUT_2_ITEM_1 ; 7F X + const HS_ROCKET_HIDEOUT_2_ITEM_2 ; 80 X + const HS_ROCKET_HIDEOUT_2_ITEM_3 ; 81 X + const HS_ROCKET_HIDEOUT_2_ITEM_4 ; 82 X + const HS_ROCKET_HIDEOUT_3_ITEM_1 ; 83 + const HS_ROCKET_HIDEOUT_3_ITEM_2 ; 84 X + const HS_ROCKET_HIDEOUT_4_GIOVANNI ; 85 X + const HS_ROCKET_HIDEOUT_4_ITEM_1 ; 86 X + const HS_ROCKET_HIDEOUT_4_ITEM_2 ; 87 + const HS_ROCKET_HIDEOUT_4_ITEM_3 ; 88 + const HS_ROCKET_HIDEOUT_4_ITEM_4 ; 89 XXX never (de)activated? + const HS_ROCKET_HIDEOUT_4_ITEM_5 ; 8A + const HS_SILPH_CO_2F_1 ; 8B + const HS_SILPH_CO_2F_2 ; 8C + const HS_SILPH_CO_2F_3 ; 8D + const HS_SILPH_CO_2F_4 ; 8E + const HS_SILPH_CO_2F_5 ; 8F + const HS_SILPH_CO_3F_1 ; 90 X + const HS_SILPH_CO_3F_2 ; 91 + const HS_SILPH_CO_3F_ITEM ; 92 + const HS_SILPH_CO_4F_1 ; 93 + const HS_SILPH_CO_4F_2 ; 94 X + const HS_SILPH_CO_4F_3 ; 95 X + const HS_SILPH_CO_4F_ITEM_1 ; 96 X + const HS_SILPH_CO_4F_ITEM_2 ; 97 + const HS_SILPH_CO_4F_ITEM_3 ; 98 + const HS_SILPH_CO_5F_1 ; 99 + const HS_SILPH_CO_5F_2 ; 9A + const HS_SILPH_CO_5F_3 ; 9B X + const HS_SILPH_CO_5F_4 ; 9C X + const HS_SILPH_CO_5F_ITEM_1 ; 9D X + const HS_SILPH_CO_5F_ITEM_2 ; 9E + const HS_SILPH_CO_5F_ITEM_3 ; 9F + const HS_SILPH_CO_6F_1 ; A0 + const HS_SILPH_CO_6F_2 ; A1 X + const HS_SILPH_CO_6F_3 ; A2 X + const HS_SILPH_CO_6F_ITEM_1 ; A3 + const HS_SILPH_CO_6F_ITEM_2 ; A4 + const HS_SILPH_CO_7F_1 ; A5 + const HS_SILPH_CO_7F_2 ; A6 + const HS_SILPH_CO_7F_3 ; A7 + const HS_SILPH_CO_7F_4 ; A8 X + const HS_SILPH_CO_7F_RIVAL ; A9 X + const HS_SILPH_CO_7F_ITEM_1 ; AA XXX sprite doesn't exist + const HS_SILPH_CO_7F_ITEM_2 ; AB + const HS_SILPH_CO_7F_8 ; AC + const HS_SILPH_CO_8F_1 ; AD + const HS_SILPH_CO_8F_2 ; AE + const HS_SILPH_CO_8F_3 ; AF + const HS_SILPH_CO_9F_1 ; B0 + const HS_SILPH_CO_9F_2 ; B1 + const HS_SILPH_CO_9F_3 ; B2 + const HS_SILPH_CO_10F_1 ; B3 XXX never (de)activated? + const HS_SILPH_CO_10F_2 ; B4 X + const HS_SILPH_CO_10F_3 ; B5 X + const HS_SILPH_CO_10F_ITEM_1 ; B6 X + const HS_SILPH_CO_10F_ITEM_2 ; B7 + const HS_SILPH_CO_10F_ITEM_3 ; B8 + const HS_SILPH_CO_11F_1 ; B9 + const HS_SILPH_CO_11F_2 ; BA XXX sprite doesn't exist + const HS_SILPH_CO_11F_3 ; BB X + const HS_MAP_F4_1 ; BC X + const HS_MANSION_2_ITEM ; BD X + const HS_MANSION_3_ITEM_1 ; BE X + const HS_MANSION_3_ITEM_2 ; BF X + const HS_MANSION_4_ITEM_1 ; C0 X + const HS_MANSION_4_ITEM_2 ; C1 X + const HS_MANSION_4_ITEM_3 ; C2 X + const HS_MANSION_4_ITEM_4 ; C3 X + const HS_MANSION_4_ITEM_5 ; C4 X + const HS_SAFARI_ZONE_EAST_ITEM_1 ; C5 X + const HS_SAFARI_ZONE_EAST_ITEM_2 ; C6 X + const HS_SAFARI_ZONE_EAST_ITEM_3 ; C7 X + const HS_SAFARI_ZONE_EAST_ITEM_4 ; C8 X + const HS_SAFARI_ZONE_NORTH_ITEM_1 ; C9 X + const HS_SAFARI_ZONE_NORTH_ITEM_2 ; CA X + const HS_SAFARI_ZONE_WEST_ITEM_1 ; CB X + const HS_SAFARI_ZONE_WEST_ITEM_2 ; CC X + const HS_SAFARI_ZONE_WEST_ITEM_3 ; CD X + const HS_SAFARI_ZONE_WEST_ITEM_4 ; CE X + const HS_SAFARI_ZONE_CENTER_ITEM ; CF X + const HS_UNKNOWN_DUNGEON_2_ITEM_1 ; D0 X + const HS_UNKNOWN_DUNGEON_2_ITEM_2 ; D1 X + const HS_UNKNOWN_DUNGEON_2_ITEM_3 ; D2 X + const HS_MEWTWO ; D3 X + const HS_UNKNOWN_DUNGEON_3_ITEM_1 ; D4 X + const HS_UNKNOWN_DUNGEON_3_ITEM_2 ; D5 X + const HS_VICTORY_ROAD_1_ITEM_1 ; D6 + const HS_VICTORY_ROAD_1_ITEM_2 ; D7 + const HS_CHAMPIONS_ROOM_OAK ; D8 + const HS_SEAFOAM_ISLANDS_1_BOULDER_1 ; D9 + const HS_SEAFOAM_ISLANDS_1_BOULDER_2 ; DA + const HS_SEAFOAM_ISLANDS_2_BOULDER_1 ; DB + const HS_SEAFOAM_ISLANDS_2_BOULDER_2 ; DC + const HS_SEAFOAM_ISLANDS_3_BOULDER_1 ; DD + const HS_SEAFOAM_ISLANDS_3_BOULDER_2 ; DE + const HS_SEAFOAM_ISLANDS_4_BOULDER_1 ; DF + const HS_SEAFOAM_ISLANDS_4_BOULDER_2 ; E0 + const HS_SEAFOAM_ISLANDS_4_BOULDER_3 ; E1 + const HS_SEAFOAM_ISLANDS_4_BOULDER_4 ; E2 + const HS_SEAFOAM_ISLANDS_5_BOULDER_1 ; E3 X + const HS_SEAFOAM_ISLANDS_5_BOULDER_2 ; E4 + const HS_ARTICUNO ; E5 diff --git a/data/map_header_banks.asm b/data/map_header_banks.asm index 1f3e4967..e181c2a3 100644 --- a/data/map_header_banks.asm +++ b/data/map_header_banks.asm @@ -34,7 +34,7 @@ MapHeaderBanks:: ; fc3e4 (3f:43e4) db $14 ; db BANK(Route20_h) ; ROUTE_20 db $15 ; db BANK(Route21_h) ; ROUTE_21 db BANK(Route22_h) ; ROUTE_22 - db $14 ; db BANK(Route23_h) ; ROUTE_23 + db BANK(Route23_h) ; ROUTE_23 db BANK(Route24_h) ; ROUTE_24 db BANK(Route25_h) ; ROUTE_25 db $12 ; db BANK(RedsHouse1F_h) diff --git a/data/map_header_pointers.asm b/data/map_header_pointers.asm index e93c3def..9909b09f 100644 --- a/data/map_header_pointers.asm +++ b/data/map_header_pointers.asm @@ -34,7 +34,7 @@ MapHeaderPointers:: ; fc1f2 (3f:41f2) dw $40f1 ; dw Route20_h dw $500f ; dw Route21_h dw Route22_h - dw $433f ; dw Route23_h + dw Route23_h dw Route24_h dw Route25_h dw $40f6 ; dw RedsHouse1F_h diff --git a/engine/overworld/missable_objects.asm b/engine/overworld/missable_objects.asm index f18a0823..65305d30 100644 --- a/engine/overworld/missable_objects.asm +++ b/engine/overworld/missable_objects.asm @@ -209,4 +209,4 @@ MissableObjectFlagAction: ; f062 (3:7062) pop de pop hl ld c, a - ret \ No newline at end of file + ret diff --git a/main.asm b/main.asm index 803dc68c..c0001587 100755 --- a/main.asm +++ b/main.asm @@ -782,7 +782,10 @@ INCLUDE "data/mapHeaders/route22.asm" INCLUDE "data/mapObjects/route22.asm" Route22Blocks: INCBIN "maps/route22.blk" - dr $500f1,$503b2 + dr $500f1,$5033f + +INCLUDE "data/mapHeaders/route23.asm" +INCLUDE "data/mapObjects/route23.asm" Route23Blocks: INCBIN "maps/route23.blk" @@ -796,8 +799,10 @@ INCLUDE "data/mapObjects/route25.asm" Route25Blocks: ; 50816 (14:4816) INCBIN "maps/route25.blk" -; victoryroad2 - dr $50924,$509aa +; indigoplateau + dr $50924,$50950 +IndigoPlateauBlocks: ; 50950 (14:4950) +INCBIN "maps/indigoplateau.blk" INCLUDE "data/mapHeaders/saffroncity.asm" INCLUDE "data/mapObjects/saffroncity.asm" @@ -807,7 +812,7 @@ INCLUDE "scripts/saffroncity.asm" dr $50ca9,$50eb2 INCLUDE "scripts/route22.asm" - dr $51193,$51366 +INCLUDE "scripts/route23.asm" INCLUDE "scripts/route24.asm" INCLUDE "scripts/route25.asm" diff --git a/scripts/route23.asm b/scripts/route23.asm index 6fc0eef1..f324963b 100755 --- a/scripts/route23.asm +++ b/scripts/route23.asm @@ -3,7 +3,7 @@ Route23Script: ; 511da (14:51da) call EnableAutoTextBoxDrawing ld hl, Route23ScriptPointers ld a, [W_ROUTE23CURSCRIPT] - jp CallFunctionInTable + jp JumpTable Route23Script_511e9: ; 511e9 (14:51e9) ld hl, wd126 -- cgit v1.2.3 From 2a0e32ee4e0cd1d432ecb8da822e6b798d6a13c2 Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Fri, 27 May 2016 10:37:49 -0400 Subject: Indigo Plateau (outside) --- data/map_header_banks.asm | 2 +- data/map_header_pointers.asm | 2 +- main.asm | 5 +++-- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/data/map_header_banks.asm b/data/map_header_banks.asm index e181c2a3..a8e9e179 100644 --- a/data/map_header_banks.asm +++ b/data/map_header_banks.asm @@ -9,7 +9,7 @@ MapHeaderBanks:: ; fc3e4 (3f:43e4) db BANK(CeladonCity_h) ; CELADON_CITY db $06 ; db BANK(FuchsiaCity_h) ; FUCHSIA_CITY db $07 ; db BANK(CinnabarIsland_h) ; CINNABAR_ISLAND - db $14 ; db BANK(IndigoPlateau_h) ; INDIGO_PLATEAU + db BANK(IndigoPlateau_h) ; INDIGO_PLATEAU db BANK(SaffronCity_h) ; SAFFRON_CITY db $01 ; unused db BANK(Route1_h) ; ROUTE_1 diff --git a/data/map_header_pointers.asm b/data/map_header_pointers.asm index 9909b09f..0658d880 100644 --- a/data/map_header_pointers.asm +++ b/data/map_header_pointers.asm @@ -9,7 +9,7 @@ MapHeaderPointers:: ; fc1f2 (3f:41f2) dw CeladonCity_h dw $4bb3 ; dw FuchsiaCity_h dw $4000 ; dw CinnabarIsland_h - dw $4924 ; dw IndigoPlateau_h + dw IndigoPlateau_h dw SaffronCity_h dw SaffronCity_h dw Route1_h diff --git a/main.asm b/main.asm index c0001587..824f91d9 100755 --- a/main.asm +++ b/main.asm @@ -800,7 +800,9 @@ Route25Blocks: ; 50816 (14:4816) INCBIN "maps/route25.blk" ; indigoplateau - dr $50924,$50950 +INCLUDE "data/mapHeaders/indigoplateau.asm" +INCLUDE "scripts/indigoplateau.asm" +INCLUDE "data/mapObjects/indigoplateau.asm" IndigoPlateauBlocks: ; 50950 (14:4950) INCBIN "maps/indigoplateau.blk" @@ -809,7 +811,6 @@ INCLUDE "data/mapObjects/saffroncity.asm" SaffronCityBlocks: ; 50a98 (14:4a98) INCBIN "maps/saffroncity.blk" INCLUDE "scripts/saffroncity.asm" - dr $50ca9,$50eb2 INCLUDE "scripts/route22.asm" INCLUDE "scripts/route23.asm" -- cgit v1.2.3 From 2b96f4165f01fb41cb8c302a8da9d9a3131ab92e Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Fri, 27 May 2016 12:32:34 -0400 Subject: Vermilion City scripts --- data/mapObjects/vermilioncity.asm | 19 +++++----- data/map_header_banks.asm | 2 +- data/map_header_pointers.asm | 2 +- home.asm | 7 ++-- main.asm | 17 ++++----- scripts/billshouse.asm | 2 +- scripts/blueshouse.asm | 2 +- scripts/celadongamecorner.asm | 2 +- scripts/cinnabargym.asm | 2 +- scripts/cinnabarisland.asm | 2 +- scripts/gary.asm | 2 +- scripts/halloffameroom.asm | 2 +- scripts/museum1f.asm | 2 +- scripts/oakslab.asm | 2 +- scripts/pallettown.asm | 2 +- scripts/pokemontower2.asm | 2 +- scripts/redshouse2f.asm | 2 +- scripts/route16gate.asm | 2 +- scripts/route18gate.asm | 2 +- scripts/route22.asm | 2 +- scripts/route22gate.asm | 2 +- scripts/route5gate.asm | 2 +- scripts/route6gate.asm | 2 +- scripts/route7gate.asm | 2 +- scripts/route8gate.asm | 2 +- scripts/safarizoneentrance.asm | 2 +- scripts/seafoamislands4.asm | 2 +- scripts/seafoamislands5.asm | 2 +- scripts/ssanne2.asm | 2 +- scripts/vermilioncity.asm | 75 +++++++++++++++++++++++++++------------ scripts/vermilioncity2.asm | 45 ++++++++++++++++++++++- scripts/viridianmart.asm | 2 +- text/maps/vermilion_city.asm | 18 +++++----- 33 files changed, 154 insertions(+), 81 deletions(-) diff --git a/data/mapObjects/vermilioncity.asm b/data/mapObjects/vermilioncity.asm index c5602be1..3bfbc947 100755 --- a/data/mapObjects/vermilioncity.asm +++ b/data/mapObjects/vermilioncity.asm @@ -13,21 +13,22 @@ VermilionCityObject: ; 0x189ba (size=133) db $3, $7, $0, VERMILION_HOUSE_2 db $7 ; signs - db $3, $1b, $7 ; VermilionCityText7 - db $d, $25, $8 ; VermilionCityText8 - db $d, $18, $9 ; MartSignText - db $3, $c, $a ; PokeCenterSignText - db $d, $7, $b ; VermilionCityText11 - db $13, $7, $c ; VermilionCityText12 - db $f, $1d, $d ; VermilionCityText13 + db $3, $1b, $8 ; VermilionCityText7 + db $d, $25, $9 ; VermilionCityText8 + db $d, $18, $a ; MartSignText + db $3, $c, $b ; PokeCenterSignText + db $d, $7, $c ; VermilionCityText11 + db $13, $7, $d ; VermilionCityText12 + db $f, $1d, $e ; VermilionCityText13 - db $6 ; objects - object SPRITE_FOULARD_WOMAN, $13, $7, WALK, $2, $1 ; person + db $7 ; objects + object SPRITE_LASS, $13, $7, WALK, $2, $1 ; person object SPRITE_GAMBLER, $e, $6, STAY, NONE, $2 ; person object SPRITE_SAILOR, $13, $1e, STAY, UP, $3 ; person object SPRITE_GAMBLER, $1e, $7, STAY, NONE, $4 ; person object SPRITE_SLOWBRO, $1d, $9, WALK, $1, $5 ; person object SPRITE_SAILOR, $19, $1b, WALK, $2, $6 ; person + object SPRITE_OFFICER_JENNY, $13, $f, STAY, NONE, $7 ; person ; warp-to EVENT_DISP VERMILION_CITY_WIDTH, $3, $b ; VERMILION_POKECENTER diff --git a/data/map_header_banks.asm b/data/map_header_banks.asm index a8e9e179..2ad544fb 100644 --- a/data/map_header_banks.asm +++ b/data/map_header_banks.asm @@ -5,7 +5,7 @@ MapHeaderBanks:: ; fc3e4 (3f:43e4) db BANK(PewterCity_h) ; PEWTER_CITY db BANK(CeruleanCity_h) ; CERULEAN_CITY db $11 ; db BANK(LavenderTown_h) ; LAVENDER_TOWN - db $06 ; db BANK(VermilionCity_h) ; VERMILION_CITY + db BANK(VermilionCity_h) ; VERMILION_CITY db BANK(CeladonCity_h) ; CELADON_CITY db $06 ; db BANK(FuchsiaCity_h) ; FUCHSIA_CITY db $07 ; db BANK(CinnabarIsland_h) ; CINNABAR_ISLAND diff --git a/data/map_header_pointers.asm b/data/map_header_pointers.asm index 0658d880..bd644214 100644 --- a/data/map_header_pointers.asm +++ b/data/map_header_pointers.asm @@ -5,7 +5,7 @@ MapHeaderPointers:: ; fc1f2 (3f:41f2) dw PewterCity_h dw CeruleanCity_h dw $4000 ; dw LavenderTown_h - dw $499e ; dw VermilionCity_h + dw VermilionCity_h dw CeladonCity_h dw $4bb3 ; dw FuchsiaCity_h dw $4000 ; dw CinnabarIsland_h diff --git a/home.asm b/home.asm index 55f474b7..fd2e1b26 100644 --- a/home.asm +++ b/home.asm @@ -2441,7 +2441,7 @@ RunNPCMovementScript:: ; 30ae (0:30ae) ld a, [wNPCMovementScriptBank] call BankswitchCommon ld a, [wNPCMovementScriptFunctionNum] - call CallFunctionInTable + call JumpTable pop af call BankswitchCommon ret @@ -2484,7 +2484,7 @@ ExecuteCurMapScriptInTable:: ; 30fc (0:30fc) .useProvidedIndex pop hl ld [W_CURMAPSCRIPT], a - call CallFunctionInTable + call JumpTable ld a, [W_CURMAPSCRIPT] ret @@ -4690,8 +4690,7 @@ endm ret -CallFunctionInTable:: ; 3d93 (0:3d93) -JumpTable:: +JumpTable:: ; 3d93 (0:3d93) ; Call function a in jumptable hl. ; de is not preserved. push hl diff --git a/main.asm b/main.asm index 824f91d9..e04d9103 100755 --- a/main.asm +++ b/main.asm @@ -251,12 +251,12 @@ PewterCityBlocks: INCBIN "maps/pewtercity.blk" INCLUDE "data/mapHeaders/ceruleancity.asm" INCLUDE "data/mapObjects/ceruleancity.asm" CeruleanCityBlocks: INCBIN "maps/ceruleancity.blk" ; 18836 - dr $1899e,$18dfa ; headers, objects, blocks -; INCLUDE "data/mapHeaders/vermilioncity.asm" -; INCLUDE "data/mapObjects/vermilioncity.asm" -; VermilionCityBlocks: INCBIN "maps/vermilioncity.blk" +INCLUDE "data/mapHeaders/vermilioncity.asm" +INCLUDE "data/mapObjects/vermilioncity.asm" +VermilionCityBlocks: INCBIN "maps/vermilioncity.blk" + dr $18bb3,$18dfa ; headers, objects, blocks ; INCLUDE "data/mapHeaders/fuchsiacity.asm" ; INCLUDE "data/mapObjects/fuchsiacity.asm" ; FuchsiaCityBlocks: INCBIN "maps/fuchsiacity.blk" @@ -266,9 +266,7 @@ INCLUDE "scripts/pallettown.asm" INCLUDE "scripts/viridiancity.asm" INCLUDE "scripts/pewtercity.asm" INCLUDE "scripts/ceruleancity.asm" - - dr $19841,$19a43 ; vermilion scripts -; INCLUDE "scripts/vermilioncity.asm" +INCLUDE "scripts/vermilioncity.asm" INCLUDE "scripts/celadoncity.asm" dr $19b2b,$1a4ea @@ -881,7 +879,10 @@ INCBIN "maps/route6.blk" dr $5812d,$581c6 Route8Blocks: ; 581c6 INCBIN "maps/route8.blk" - dr $582d4,$58b84 + dr $582d4,$5855f +Route11Blocks: ; 5854f +INCBIN "maps/route11.blk" + dr $5866d,$58b84 Route16Blocks: ; 58b84 INCBIN "maps/route16.blk" dr $58c38,$58d99 diff --git a/scripts/billshouse.asm b/scripts/billshouse.asm index 56f2204f..4f01021e 100755 --- a/scripts/billshouse.asm +++ b/scripts/billshouse.asm @@ -2,7 +2,7 @@ BillsHouseScript: ; 1e76a (7:676a) call EnableAutoTextBoxDrawing ld a, [W_BILLSHOUSECURSCRIPT] ld hl, BillsHouseScriptPointers - jp CallFunctionInTable + jp JumpTable BillsHouseScriptPointers: ; 1e776 (7:6776) dw BillsHouseScript0 diff --git a/scripts/blueshouse.asm b/scripts/blueshouse.asm index 6aa2eaec..4a23df9e 100755 --- a/scripts/blueshouse.asm +++ b/scripts/blueshouse.asm @@ -2,7 +2,7 @@ BluesHouseScript: ; 19b3b (6:5b3b) call EnableAutoTextBoxDrawing ld hl,BluesHouseScriptPointers ld a,[W_BLUESHOUSECURSCRIPT] - jp CallFunctionInTable + jp JumpTable BluesHouseScriptPointers: ; 19b47 (6:5b47) dw BluesHouseScript0 diff --git a/scripts/celadongamecorner.asm b/scripts/celadongamecorner.asm index c3872bab..5fc9cf97 100755 --- a/scripts/celadongamecorner.asm +++ b/scripts/celadongamecorner.asm @@ -4,7 +4,7 @@ CeladonGameCornerScript: ; 48bbd (12:4bbd) call EnableAutoTextBoxDrawing ld hl, CeladonGameCornerScriptPointers ld a, [W_CELADONGAMECORNERCURSCRIPT] - jp CallFunctionInTable + jp JumpTable CeladonGameCornerScript_48bcf: ; 48bcf (12:4bcf) ld hl, wd126 diff --git a/scripts/cinnabargym.asm b/scripts/cinnabargym.asm index 649609b3..c5d462b3 100755 --- a/scripts/cinnabargym.asm +++ b/scripts/cinnabargym.asm @@ -3,7 +3,7 @@ CinnabarGymScript: ; 7574a (1d:574a) call EnableAutoTextBoxDrawing ld hl, CinnabarGymScriptPointers ld a, [W_CINNABARGYMCURSCRIPT] - jp CallFunctionInTable + jp JumpTable CinnabarGymScript_75759: ; 75759 (1d:5759) ld hl, wd126 diff --git a/scripts/cinnabarisland.asm b/scripts/cinnabarisland.asm index 48ded740..3a2e9a2b 100755 --- a/scripts/cinnabarisland.asm +++ b/scripts/cinnabarisland.asm @@ -6,7 +6,7 @@ CinnabarIslandScript: ; 1ca19 (7:4a19) ResetEvent EVENT_LAB_STILL_REVIVING_FOSSIL ld hl, CinnabarIslandScriptPointers ld a, [W_CINNABARISLANDCURSCRIPT] - jp CallFunctionInTable + jp JumpTable CinnabarIslandScriptPointers: ; 1ca34 (7:4a34) dw CinnabarIslandScript0 diff --git a/scripts/gary.asm b/scripts/gary.asm index 685e18fe..64734c58 100755 --- a/scripts/gary.asm +++ b/scripts/gary.asm @@ -2,7 +2,7 @@ GaryScript: ; 75f1d (1d:5f1d) call EnableAutoTextBoxDrawing ld hl, GaryScriptPointers ld a, [W_GARYCURSCRIPT] - jp CallFunctionInTable + jp JumpTable GaryScript_75f29: ; 75f29 (1d:5f29) xor a diff --git a/scripts/halloffameroom.asm b/scripts/halloffameroom.asm index 466ce77d..0f975673 100755 --- a/scripts/halloffameroom.asm +++ b/scripts/halloffameroom.asm @@ -2,7 +2,7 @@ HallofFameRoomScript: ; 5a49e (16:649e) call EnableAutoTextBoxDrawing ld hl, HallofFameRoomScriptPointers ld a, [W_HALLOFFAMEROOMCURSCRIPT] - jp CallFunctionInTable + jp JumpTable HallofFameRoomScript_5a4aa: ; 5a4aa (16:64aa) xor a diff --git a/scripts/museum1f.asm b/scripts/museum1f.asm index 75dc1ce8..ae5a2b42 100755 --- a/scripts/museum1f.asm +++ b/scripts/museum1f.asm @@ -5,7 +5,7 @@ Museum1FScript: ; 5c0f7 (17:40f7) ld [wDoNotWaitForButtonPressAfterDisplayingText], a ld hl, Museum1FScriptPointers ld a, [W_MUSEUM1FCURSCRIPT] - jp CallFunctionInTable + jp JumpTable Museum1FScriptPointers: ; 5c109 (17:4109) dw Museum1FScript0 diff --git a/scripts/oakslab.asm b/scripts/oakslab.asm index aff39cbc..2970fa2a 100755 --- a/scripts/oakslab.asm +++ b/scripts/oakslab.asm @@ -7,7 +7,7 @@ OaksLabScript: ; 1cb0e (7:4b0e) ld [wDoNotWaitForButtonPressAfterDisplayingText], a ld hl, OaksLabScriptPointers ld a, [W_OAKSLABCURSCRIPT] - jp CallFunctionInTable + jp JumpTable OaksLabScriptPointers: ; 1cb28 (7:4b28) dw OaksLabScript0 diff --git a/scripts/pallettown.asm b/scripts/pallettown.asm index 147cbdb6..73f50e3e 100755 --- a/scripts/pallettown.asm +++ b/scripts/pallettown.asm @@ -6,7 +6,7 @@ PalletTownScript: ; 18e5b (6:4e5b) call EnableAutoTextBoxDrawing ld hl, PalletTownScriptPointers ld a, [W_PALLETTOWNCURSCRIPT] - jp CallFunctionInTable + jp JumpTable PalletTownScriptPointers: ; 18e73 (6:4e73) dw PalletTownScript0 diff --git a/scripts/pokemontower2.asm b/scripts/pokemontower2.asm index d498f88e..7aebf81b 100755 --- a/scripts/pokemontower2.asm +++ b/scripts/pokemontower2.asm @@ -2,7 +2,7 @@ PokemonTower2Script: ; 604f2 (18:44f2) call EnableAutoTextBoxDrawing ld hl, PokemonTower2ScriptPointers ld a, [W_POKEMONTOWER2CURSCRIPT] - jp CallFunctionInTable + jp JumpTable PokemonTower2Script_604fe: ; 604fe (18:44fe) xor a diff --git a/scripts/redshouse2f.asm b/scripts/redshouse2f.asm index 2335e6d1..565d09e3 100755 --- a/scripts/redshouse2f.asm +++ b/scripts/redshouse2f.asm @@ -2,7 +2,7 @@ RedsHouse2FScript: ; 5c0b0 (17:40b0) call EnableAutoTextBoxDrawing ld hl,RedsHouse2FScriptPointers ld a,[W_REDSHOUSE2CURSCRIPT] - jp CallFunctionInTable + jp JumpTable RedsHouse2FScriptPointers: ; 5c0bc (17:40bc) dw RedsHouse2FScript0 diff --git a/scripts/route16gate.asm b/scripts/route16gate.asm index 801e577e..197b12b2 100755 --- a/scripts/route16gate.asm +++ b/scripts/route16gate.asm @@ -4,7 +4,7 @@ Route16GateScript: ; 496be (12:56be) call EnableAutoTextBoxDrawing ld a, [W_ROUTE16GATECURSCRIPT] ld hl, Route16GateScriptPointers - jp CallFunctionInTable + jp JumpTable Route16GateScriptPointers: ; 496cf (12:56cf) dw Route16GateScript0 diff --git a/scripts/route18gate.asm b/scripts/route18gate.asm index 060a6bbf..33f67e97 100755 --- a/scripts/route18gate.asm +++ b/scripts/route18gate.asm @@ -4,7 +4,7 @@ Route18GateScript: ; 49876 (12:5876) call EnableAutoTextBoxDrawing ld a, [W_ROUTE18GATECURSCRIPT] ld hl, Route18GateScriptPointers - jp CallFunctionInTable + jp JumpTable Route18GateScriptPointers: ; 49887 (12:5887) dw Route18GateScript0 diff --git a/scripts/route22.asm b/scripts/route22.asm index a7c61903..5ea8178f 100755 --- a/scripts/route22.asm +++ b/scripts/route22.asm @@ -2,7 +2,7 @@ Route22Script: ; 50eb2 (14:4eb2) call EnableAutoTextBoxDrawing ld hl, Route22ScriptPointers ld a, [W_ROUTE22CURSCRIPT] - jp CallFunctionInTable + jp JumpTable Route22ScriptPointers: ; 50ebe (14:4ebe) dw Route22Script0 diff --git a/scripts/route22gate.asm b/scripts/route22gate.asm index f0b5b92d..5fdd70c8 100755 --- a/scripts/route22gate.asm +++ b/scripts/route22gate.asm @@ -2,7 +2,7 @@ Route22GateScript: ; 1e683 (7:6683) call EnableAutoTextBoxDrawing ld hl, Route22GateScriptPointers ld a, [W_ROUTE22GATECURSCRIPT] - call CallFunctionInTable + call JumpTable ld a, [wYCoord] cp $4 ld a, ROUTE_23 diff --git a/scripts/route5gate.asm b/scripts/route5gate.asm index 35f3a020..6442fd83 100755 --- a/scripts/route5gate.asm +++ b/scripts/route5gate.asm @@ -2,7 +2,7 @@ Route5GateScript: ; 1df33 (7:5f33) call EnableAutoTextBoxDrawing ld a, [W_ROUTE5GATECURSCRIPT] ld hl, Route5GateScriptPointers - jp CallFunctionInTable + jp JumpTable Route5GateScriptPointers: ; 1df3f (7:5f3f) dw Route5GateScript0 diff --git a/scripts/route6gate.asm b/scripts/route6gate.asm index a4b6149c..dd179e28 100755 --- a/scripts/route6gate.asm +++ b/scripts/route6gate.asm @@ -2,7 +2,7 @@ Route6GateScript: ; 1e03d (7:603d) call EnableAutoTextBoxDrawing ld hl, Route6GateScriptPointers ld a, [W_ROUTE6GATECURSCRIPT] - call CallFunctionInTable + call JumpTable ret Route6GateScriptPointers: ; 1e04a (7:604a) diff --git a/scripts/route7gate.asm b/scripts/route7gate.asm index b55f813c..7f87b78c 100755 --- a/scripts/route7gate.asm +++ b/scripts/route7gate.asm @@ -2,7 +2,7 @@ Route7GateScript: ; 1e100 (7:6100) call EnableAutoTextBoxDrawing ld a, [W_ROUTE7GATECURSCRIPT] ld hl, Route7GateScriptPointers - call CallFunctionInTable + call JumpTable ret Route7GateScriptPointers: ; 1e10d (7:610d) diff --git a/scripts/route8gate.asm b/scripts/route8gate.asm index 96bfa875..fe2e3c3c 100755 --- a/scripts/route8gate.asm +++ b/scripts/route8gate.asm @@ -2,7 +2,7 @@ Route8GateScript: ; 1e1c7 (7:61c7) call EnableAutoTextBoxDrawing ld hl, Route8GateScriptPointers ld a, [W_ROUTE8GATECURSCRIPT] - jp CallFunctionInTable + jp JumpTable Route8GateScriptPointers: ; 1e1d3 (7:61d3) dw Route8GateScript0 diff --git a/scripts/safarizoneentrance.asm b/scripts/safarizoneentrance.asm index 2f8ff34b..a0a0ffda 100755 --- a/scripts/safarizoneentrance.asm +++ b/scripts/safarizoneentrance.asm @@ -2,7 +2,7 @@ SafariZoneEntranceScript: ; 751cd (1d:51cd) call EnableAutoTextBoxDrawing ld hl, SafariZoneEntranceScriptPointers ld a, [wSafariZoneEntranceCurScript] - jp CallFunctionInTable + jp JumpTable SafariZoneEntranceScriptPointers: ; 751d9 (1d:51d9) dw .SafariZoneEntranceScript0 diff --git a/scripts/seafoamislands4.asm b/scripts/seafoamislands4.asm index e3234b0a..56ccd2e3 100755 --- a/scripts/seafoamislands4.asm +++ b/scripts/seafoamislands4.asm @@ -42,7 +42,7 @@ SeafoamIslands4Script: ; 4658d (11:658d) .asm_465ed ld hl, SeafoamIslands4ScriptPointers ld a, [wSeafoamIslands4CurScript] - jp CallFunctionInTable + jp JumpTable Seafoam4HolesCoords: ; 465f6 (11:65f6) db $10,$03 diff --git a/scripts/seafoamislands5.asm b/scripts/seafoamislands5.asm index 98c27666..f8b7aed7 100755 --- a/scripts/seafoamislands5.asm +++ b/scripts/seafoamislands5.asm @@ -2,7 +2,7 @@ SeafoamIslands5Script: ; 46799 (11:6799) call EnableAutoTextBoxDrawing ld a, [wSeafoamIslands5CurScript] ld hl, SeafoamIslands5ScriptPointers - jp CallFunctionInTable + jp JumpTable SeafoamIslands5Script_467a5: ; 467a5 (11:67a5) xor a diff --git a/scripts/ssanne2.asm b/scripts/ssanne2.asm index eea27ec9..7bdafe2c 100755 --- a/scripts/ssanne2.asm +++ b/scripts/ssanne2.asm @@ -2,7 +2,7 @@ SSAnne2Script: ; 6139f (18:539f) call EnableAutoTextBoxDrawing ld hl, SSAnne2ScriptPointers ld a, [W_SSANNE2CURSCRIPT] - jp CallFunctionInTable + jp JumpTable SSAnne2Script_613ab: ; 613ab (18:53ab) xor a diff --git a/scripts/vermilioncity.asm b/scripts/vermilioncity.asm index 67e3cddd..a8fc8ce7 100755 --- a/scripts/vermilioncity.asm +++ b/scripts/vermilioncity.asm @@ -1,5 +1,7 @@ VermilionCityScript: ; 197a1 (6:57a1) call EnableAutoTextBoxDrawing + ld hl, wPreventBlackout + res 7, [hl] ld hl, wd126 bit 6, [hl] res 6, [hl] @@ -11,11 +13,24 @@ VermilionCityScript: ; 197a1 (6:57a1) call nz, VermilionCityScript_197c0 ld hl, VermilionCityScriptPointers ld a, [W_VERMILIONCITYCURSCRIPT] - jp CallFunctionInTable + call JumpTable + call VermilionCityScript_19869 + ret + +VermilionCityScript_19869: + CheckEventHL EVENT_152 + ret nz + CheckEventReuseHL EVENT_GOT_BIKE_VOUCHER + ret z + SetEventReuseHL EVENT_152 + ret VermilionCityScript_197c0: ; 197c0 (6:57c0) call Random - ld a, [$ffd4] + ld a, [hRandomAdd] + ld b, a + ld a, [hRandomSub] + adc b and $e ld [wFirstLockTrashCanIndex], a ret @@ -40,10 +55,10 @@ VermilionCityScriptPointers: ; 197dc (6:57dc) VermilionCityScript0: ; 197e6 (6:57e6) ld a, [wSpriteStateData1 + 9] and a ; cp SPRITE_FACING_DOWN - ret nz + jr nz, .asm_198de ld hl, CoordsData_19823 call ArePlayerCoordsInArray - ret nc + jr nc, .asm_198de xor a ld [hJoyHeld], a ld [wcf0d], a @@ -67,6 +82,9 @@ VermilionCityScript0: ; 197e6 (6:57e6) ld [W_VERMILIONCITYCURSCRIPT], a ret +.asm_198de + ret + CoordsData_19823: ; 19823 (6:5823) db $1e,$12 db $ff @@ -122,11 +140,12 @@ VermilionCityTextPointers: ; 1986f (6:586f) dw VermilionCityText6 dw VermilionCityText7 dw VermilionCityText8 + dw VermilionCityText9 dw MartSignText dw PokeCenterSignText - dw VermilionCityText11 dw VermilionCityText12 dw VermilionCityText13 + dw VermilionCityText14 VermilionCityText1: ; 19889 (6:5889) TX_FAR _VermilionCityText1 @@ -225,33 +244,43 @@ VermilionCityText5: ; 19922 (6:5922) ld a, MACHOP call PlayCry call WaitForSoundToFinish - ld hl, VermilionCityText14 + ld hl, VermilionCityText15 ret -VermilionCityText14: ; 19933 (6:5933) - TX_FAR _VermilionCityText14 +VermilionCityText15: ; 19933 (6:5933) + TX_FAR _VermilionCityText15 db "@" VermilionCityText6: ; 19938 (6:5938) TX_FAR _VermilionCityText6 db "@" -VermilionCityText7: ; 1993d (6:593d) - TX_FAR _VermilionCityText7 - db "@" +VermilionCityText8: ; 1993d (6:593d) + TX_ASM + callba Func_f1a8a + jp TextScriptEnd -VermilionCityText8: ; 19942 (6:5942) - TX_FAR _VermilionCityText8 - db "@" +VermilionCityText9: ; 19942 (6:5942) + TX_ASM + callba Func_f1a96 + jp TextScriptEnd -VermilionCityText11: ; 19947 (6:5947) - TX_FAR _VermilionCityText11 - db "@" +VermilionCityText12: + TX_ASM + callba Func_f1aa2 + jp TextScriptEnd -VermilionCityText12: ; 1994c (6:594c) - TX_FAR _VermilionCityText12 - db "@" +VermilionCityText13: ; 19947 (6:5947) + TX_ASM + callba Func_f1aae + jp TextScriptEnd -VermilionCityText13: ; 19951 (6:5951) - TX_FAR _VermilionCityText13 - db "@" +VermilionCityText14: ; 1994c (6:594c) + TX_ASM + callba Func_f1aba + jp TextScriptEnd + +VermilionCityText7: ; 19951 (6:5951) + TX_ASM + callba Func_f1a0f + jp TextScriptEnd diff --git a/scripts/vermilioncity2.asm b/scripts/vermilioncity2.asm index 4be44db0..eb7ea37a 100755 --- a/scripts/vermilioncity2.asm +++ b/scripts/vermilioncity2.asm @@ -65,4 +65,47 @@ OfficerJennyText5: TX_FAR _OfficerJennyText5 db "@" - dr $f1a8a,$f1ac6 +Func_f1a8a: + ld hl, VermilionCityText_f1a91 + call PrintText + ret + +VermilionCityText_f1a91: + TX_FAR _VermilionCityText8 + db "@" + +Func_f1a96: + ld hl, VermilionCityText_f1a9d + call PrintText + ret + +VermilionCityText_f1a9d: + TX_FAR _VermilionCityText9 + db "@" + +Func_f1aa2: + ld hl, VermilionCityText_f1aa9 + call PrintText + ret + +VermilionCityText_f1aa9: + TX_FAR _VermilionCityText12 + db "@" + +Func_f1aae: + ld hl, VermilionCityText_f1ab5 + call PrintText + ret + +VermilionCityText_f1ab5: + TX_FAR _VermilionCityText13 + db "@" + +Func_f1aba: + ld hl, VermilionCityText_f1ac1 + call PrintText + ret + +VermilionCityText_f1ac1: + TX_FAR _VermilionCityText14 + db "@" diff --git a/scripts/viridianmart.asm b/scripts/viridianmart.asm index 4f4b2875..8d974abc 100755 --- a/scripts/viridianmart.asm +++ b/scripts/viridianmart.asm @@ -3,7 +3,7 @@ ViridianMartScript: ; 1d46e (7:546e) call EnableAutoTextBoxDrawing ld hl, ViridianMartScriptPointers ld a, [W_VIRIDIANMARKETCURSCRIPT] - jp CallFunctionInTable + jp JumpTable ViridianMartScript_1d47d: ; 1d47d (7:547d) CheckEvent EVENT_OAK_GOT_PARCEL diff --git a/text/maps/vermilion_city.asm b/text/maps/vermilion_city.asm index 603b218a..f5e0adba 100644 --- a/text/maps/vermilion_city.asm +++ b/text/maps/vermilion_city.asm @@ -35,7 +35,7 @@ _SSAnneWelcomeText9:: prompt _SSAnneFlashedTicketText:: - text $52, " flashed" + text " flashed" line "the S.S.TICKET!" para "Great! Welcome to" @@ -43,7 +43,7 @@ _SSAnneFlashedTicketText:: done _SSAnneNoTicketText:: - text $52, " doesn't" + text " doesn't" line "have the needed" cont "S.S.TICKET." @@ -70,8 +70,8 @@ _VermilionCityText5:: text "MACHOP: Guoh!" line "Gogogoh!@@" -_VermilionCityText14:: - db $0 +_VermilionCityText15:: + text "" para "A MACHOP is" line "stomping the land" cont "flat." @@ -127,13 +127,13 @@ _OfficerJennyText5:: line "doing?" done -_VermilionCityText7:: +_VermilionCityText8:: text "VERMILION CITY" line "The Port of" cont "Exquisite Sunsets" done -_VermilionCityText8:: +_VermilionCityText9:: text "NOTICE!" para "ROUTE 12 may be" @@ -147,13 +147,13 @@ _VermilionCityText8:: para "VERMILION POLICE" done -_VermilionCityText11:: +_VermilionCityText12:: text "#MON FAN CLUB" line "All #MON fans" cont "welcome!" done -_VermilionCityText12:: +_VermilionCityText13:: text "VERMILION CITY" line "#MON GYM" cont "LEADER: LT.SURGE" @@ -162,7 +162,7 @@ _VermilionCityText12:: line "American!" done -_VermilionCityText13:: +_VermilionCityText14:: text "VERMILION HARBOR" done -- cgit v1.2.3 From 35ab6056cae9e69b557dffac762ef68c55c8d286 Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Fri, 27 May 2016 12:46:48 -0400 Subject: Route 6 scripts --- data/mapObjects/route6.asm | 4 ++-- data/map_header_banks.asm | 2 +- data/map_header_pointers.asm | 2 +- main.asm | 6 ++++-- scripts/route6.asm | 6 +++++- 5 files changed, 13 insertions(+), 7 deletions(-) diff --git a/data/mapObjects/route6.asm b/data/mapObjects/route6.asm index 19ac2a8a..c854c91f 100755 --- a/data/mapObjects/route6.asm +++ b/data/mapObjects/route6.asm @@ -11,8 +11,8 @@ Route6Object: ; 0x58022 (size=87) db $f, $13, $7 ; Route6Text7 db $6 ; objects - object SPRITE_BLACK_HAIR_BOY_1, $a, $15, STAY, RIGHT, $1, OPP_JR_TRAINER_M, $4 - object SPRITE_LASS, $b, $15, STAY, LEFT, $2, OPP_JR_TRAINER_F, $2 + object SPRITE_BLACK_HAIR_BOY_1, $a, $15, STAY, RIGHT, $1, OPP_JR_TRAINER_M, $a + object SPRITE_LASS, $b, $15, STAY, LEFT, $2, OPP_JR_TRAINER_F, $19 object SPRITE_BUG_CATCHER, $0, $f, STAY, RIGHT, $3, OPP_BUG_CATCHER, $a object SPRITE_BLACK_HAIR_BOY_1, $b, $1f, STAY, LEFT, $4, OPP_JR_TRAINER_M, $5 object SPRITE_LASS, $b, $1e, STAY, LEFT, $5, OPP_JR_TRAINER_F, $3 diff --git a/data/map_header_banks.asm b/data/map_header_banks.asm index 2ad544fb..1dd37cd6 100644 --- a/data/map_header_banks.asm +++ b/data/map_header_banks.asm @@ -17,7 +17,7 @@ MapHeaderBanks:: ; fc3e4 (3f:43e4) db BANK(Route3_h) ; ROUTE_3 db BANK(Route4_h) ; ROUTE_4 db BANK(Route5_h) ; ROUTE_5 - db $16 ; db BANK(Route6_h) ; ROUTE_6 + db BANK(Route6_h) ; ROUTE_6 db BANK(Route7_h) ; ROUTE_7 db $16 ; db BANK(Route8_h) ; ROUTE_8 db $15 ; db BANK(Route9_h) ; ROUTE_9 diff --git a/data/map_header_pointers.asm b/data/map_header_pointers.asm index bd644214..7aed33ae 100644 --- a/data/map_header_pointers.asm +++ b/data/map_header_pointers.asm @@ -17,7 +17,7 @@ MapHeaderPointers:: ; fc1f2 (3f:41f2) dw Route3_h dw Route4_h dw Route5_h - dw $4000 ; dw Route6_h + dw Route6_h dw Route7_h dw $412d ; dw Route8_h dw $468e ; dw Route9_h diff --git a/main.asm b/main.asm index e04d9103..cb5b2c45 100755 --- a/main.asm +++ b/main.asm @@ -873,7 +873,8 @@ INCLUDE "engine/overworld/trainers.asm" SECTION "bank16",ROMX,BANK[$16] - dr $58000,$58079 +INCLUDE "data/mapHeaders/route6.asm" +INCLUDE "data/mapObjects/route6.asm" Route6Blocks: ; 58079 INCBIN "maps/route6.blk" dr $5812d,$581c6 @@ -893,7 +894,8 @@ INCLUDE "engine/status_ailments.asm" INCLUDE "engine/overworld/oaks_aide.asm" - dr $58f47,$5a53a +INCLUDE "scripts/route6.asm" + dr $59052,$5a53a INCLUDE "engine/overworld/saffron_guards.asm" diff --git a/scripts/route6.asm b/scripts/route6.asm index e748fed1..8ef32a42 100755 --- a/scripts/route6.asm +++ b/scripts/route6.asm @@ -36,7 +36,7 @@ Route6TrainerHeader1: ; 590e3 (16:50e3) db ($0 << 4) ; trainer's view range dwEventFlagAddress EVENT_BEAT_ROUTE_6_TRAINER_1 dw Route6BattleText2 ; TextBeforeBattle - dw Route6AfterBattleText1 ; TextAfterBattle + dw Route6AfterBattleText2 ; TextAfterBattle dw Route6EndBattleText2 ; TextEndBattle dw Route6EndBattleText2 ; TextEndBattle @@ -110,6 +110,10 @@ Route6EndBattleText2: ; 59148 (16:5148) TX_FAR _Route6EndBattleText2 db "@" +Route6AfterBattleText2: + TX_FAR _Route6AfterBattleText2 + db "@" + Route6Text3: ; 5914d (16:514d) TX_ASM ld hl, Route6TrainerHeader2 -- cgit v1.2.3 From f508b9263752d7c5a53999811f51d1cc0b2b1ed4 Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Fri, 27 May 2016 12:47:43 -0400 Subject: How did I forget to set tracking on these? --- scripts/celadoncity2.asm | 8 ++++++++ scripts/route22_2.asm | 50 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 58 insertions(+) create mode 100755 scripts/celadoncity2.asm create mode 100755 scripts/route22_2.asm diff --git a/scripts/celadoncity2.asm b/scripts/celadoncity2.asm new file mode 100755 index 00000000..12f7b366 --- /dev/null +++ b/scripts/celadoncity2.asm @@ -0,0 +1,8 @@ +Func_f1ac6: + ld hl, Text_f1acd + call PrintText + ret + +Text_f1acd: + TX_FAR _CeladonCityText10 + db "@" diff --git a/scripts/route22_2.asm b/scripts/route22_2.asm new file mode 100755 index 00000000..89ecdcf3 --- /dev/null +++ b/scripts/route22_2.asm @@ -0,0 +1,50 @@ +Func_f1b27: + CheckEvent EVENT_BEAT_ROUTE22_RIVAL_1ST_BATTLE + jr z, .asm_5118b + ld hl, Route22RivalAfterBattleText1 + call PrintText + jr .asm_51191 + +.asm_5118b + ld hl, Route22RivalBeforeBattleText1 + call PrintText +.asm_51191 + ret + +Route22RivalBeforeBattleText1: ; 511ad (14:51ad) + TX_FAR _Route22RivalBeforeBattleText1 + db "@" + +Route22RivalAfterBattleText1: ; 511b2 (14:51b2) + TX_FAR _Route22RivalAfterBattleText1 + db "@" + +Func_f1b47: + CheckEvent EVENT_BEAT_ROUTE22_RIVAL_2ND_BATTLE + jr z, .asm_511a4 + ld hl, Route22RivalAfterBattleText2 + call PrintText + jr .asm_511aa + +.asm_511a4 + ld hl, Route22RivalBeforeBattleText2 + call PrintText +.asm_511aa + ret + +Route22RivalBeforeBattleText2: ; 511c1 (14:51c1) + TX_FAR _Route22RivalBeforeBattleText2 + db "@" + +Route22RivalAfterBattleText2: ; 511c6 (14:51c6) + TX_FAR _Route22RivalAfterBattleText2 + db "@" + +Func_f1b67: + ld hl, Route22FrontGateText_3c + call PrintText + ret + +Route22FrontGateText_3c: + TX_FAR _Route22FrontGateText + db "@" -- cgit v1.2.3 From 1524d902bf223115fac0f9f528826049817d28c7 Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Fri, 27 May 2016 15:55:56 -0400 Subject: Credits. Can I add my own name? Kappa --- constants/credits_constants.asm | 2 + data/credit_mons.asm | 4 + data/credits_order.asm | 69 ++++---- engine/HoF_room_pc.asm | 333 ++++++++++++++++++++++----------------- engine/bank3c.asm | 3 +- text/credits_text.asm | 338 ++++++++++++++++++++++++---------------- 6 files changed, 439 insertions(+), 310 deletions(-) diff --git a/constants/credits_constants.asm b/constants/credits_constants.asm index f5715072..99af7992 100644 --- a/constants/credits_constants.asm +++ b/constants/credits_constants.asm @@ -64,4 +64,6 @@ const_value = 0 const CRED_FUKUI ; $3D const CRED_CLUB ; $3E const CRED_PAAD ; $3F + const CRED_40 + diff --git a/data/credit_mons.asm b/data/credit_mons.asm index 6a8bb416..c271db68 100755 --- a/data/credit_mons.asm +++ b/data/credit_mons.asm @@ -14,3 +14,7 @@ CreditsMons: ; 74131 (1d:4131) db VILEPLUME db NIDOKING db PARASECT + +rept 9 + db GENGAR +endr diff --git a/data/credits_order.asm b/data/credits_order.asm index 5a71a26a..4d940602 100755 --- a/data/credits_order.asm +++ b/data/credits_order.asm @@ -2,38 +2,37 @@ CreditsOrder: ; 74243 (1d:4243) ; subsequent credits elements will be displayed on separate lines. ; $FF, $FE, $FD, $FC, $FB, and $FA are commands that are used ; to go to the next set of credits texts. - db CRED_MON, CRED_VERSION, $FF - db CRED_DIRECTOR, CRED_TAJIRI, $FF - db CRED_PROGRAMMERS, CRED_TA_OOTA, CRED_MORIMOTO, $FD - db CRED_PROGRAMMERS, CRED_WATANABE, CRED_MASUDE, CRED_TAMADA, $FE - db CRED_CHAR_DESIGN, CRED_SUGIMORI, CRED_NISHIDA, $FF - db CRED_MUSIC, CRED_MASUDE, $FD - db CRED_SOUND_EFFECTS, CRED_MASUDE, $FE - db CRED_GAME_DESIGN, CRED_TAJIRI, $FF - db CRED_MONSTER_DESIGN, CRED_SUGIMORI, CRED_NISHIDA, CRED_FUZIWARA, $FD - db CRED_MONSTER_DESIGN, CRED_MORIMOTO, CRED_SA_OOTA, CRED_YOSHIKAWA, $FE - db CRED_GAME_SCENE, CRED_TAJIRI, $FD - db CRED_GAME_SCENE, CRED_TANIGUCHI, CRED_NONOMURA, CRED_ZINNAI, $FE - db CRED_PARAM, CRED_NISINO, CRED_TA_NAKAMURA, $FF - db CRED_MAP, CRED_TAJIRI, CRED_NISINO, $FD - db CRED_MAP, CRED_MATSUSIMA, CRED_NONOMURA, CRED_TANIGUCHI, $FE - db CRED_TEST, CRED_KAKEI, CRED_TSUCHIYA, $FD - db CRED_TEST, CRED_TA_NAKAMURA, CRED_YUDA, $FE - db CRED_SPECIAL, CRED_HISHIDA, CRED_SAKAI, $FD - db CRED_SPECIAL, CRED_YAMAGUCHI, CRED_YAMAMOTO, $FC - db CRED_SPECIAL, CRED_TOMISAWA, CRED_KAWAMOTO, CRED_TO_OOTA, $FE - db CRED_PRODUCERS, CRED_MIYAMOTO, $FD - db CRED_PRODUCERS, CRED_KAWAGUCHI, $FC - db CRED_PRODUCERS, CRED_ISHIHARA, $FE - db CRED_US_STAFF, $FD - db CRED_US_COORD, CRED_TILDEN, $FD - db CRED_US_COORD, CRED_KAWAKAMI, CRED_HI_NAKAMURA, $FC - db CRED_US_COORD, CRED_GIESE, CRED_OSBORNE, $FC - db CRED_TRANS, CRED_OGASAWARA, $FD - db CRED_PROGRAMMERS, CRED_MURAKAWA, CRED_FUKUI, $FD - db CRED_SPECIAL, CRED_IWATA, $FD - db CRED_SPECIAL, CRED_HARADA, $FC - db CRED_TEST, CRED_PAAD, CRED_CLUB, $FD - db CRED_PRODUCER, CRED_IZUSHI, $FD - db CRED_EXECUTIVE, CRED_YAMAUCHI, $FF - db $FB, $FF, $FA + db $1c, $00, $ff + db $1d, $01, $ff + db $1e, $02, $03, $04, $fd + db $1e, $05, $2b, $fe + db $1f, $07, $08, $ff + db $20, $05, $fd + db $21, $05, $04, $fe + db $22, $01, $06, $ff + db $23, $07, $08, $2f, $ff + db $24, $01, $fd + db $24, $30, $fe + db $25, $06, $ff + db $26, $01, $06, $31, $ff + db $27, $32, $31, $fd + db $27, $33, $34, $fe + db $28, $3d, $ff + db $3f, $3e, $ff + db $29, $36, $fd + db $29, $0a, $fc + db $29, $0b, $fe + db $40, $fd + db $41, $42, $fd + db $41, $43, $44, $fc + db $41, $45, $46, $fc + db $47, $48, $fd + db $1e, $4c, $4d, $fd + db $1f, $51, $fd + db $28, $52, $4b, $fd + db $28, $53, $54, $55, $fc + db $27, $4f, $4e, $fd + db $2a, $0c, $ff + db $fb + db $ff + db $fa diff --git a/engine/HoF_room_pc.asm b/engine/HoF_room_pc.asm index e00fc57d..51575a9d 100755 --- a/engine/HoF_room_pc.asm +++ b/engine/HoF_room_pc.asm @@ -1,173 +1,214 @@ -HallOfFamePC: ; 7405c (1d:405c) - callba AnimateHallOfFame +HallOfFamePC: + callab FallingStarEnd call ClearScreen ld c, 100 call DelayFrames + call DisableLCD - ld hl, vFont - ld bc, $800 / 2 - call ZeroMemory - ld hl, vChars2 + $600 - ld bc, $200 / 2 - call ZeroMemory - ld hl, vChars2 + $7e0 - ld bc, $10 - ld a, $ff - call FillMemory + ld a, $a7 + ld [rWX], a + xor a + ld [rSCX], a + ld [rSCY], a + ld [hSCX], a + ld [hSCY], a + ld [hWY], a + ld [rWY], a + call CreditsLoadFont coord hl, 0, 0 call FillFourRowsWithBlack coord hl, 0, 14 call FillFourRowsWithBlack - ld a, $c0 + ld a, %11000000 ld [rBGP], a + call UpdateGBCPal_BGP call EnableLCD - ld a, $ff - call PlaySoundWaitForCurrent + call StopAllMusic + ld hl, vBGMap1 + call CreditsCopyTileMapToVRAM + ld hl, vBGMap0 + call CreditsCopyTileMapToVRAM ld c, BANK(Music_Credits) ld a, MUSIC_CREDITS call PlayMusic ld c, 128 call DelayFrames xor a - ld [wUnusedCD3D], a ; not read + ld [wHoFMonSpecies], a ld [wNumCreditsMonsDisplayed], a jp Credits -FadeInCreditsText: ; 740ba (1d:40ba) +FadeInCreditsText: + ld a, $1 + ld [H_AUTOBGTRANSFERENABLED], a ld hl, HoFGBPalettes ld b, 4 -.asm_740bf +.asm_f0f91 ld a, [hli] ld [rBGP], a + call UpdateGBCPal_BGP ld c, 5 call DelayFrames dec b - jr nz, .asm_740bf + jr nz, .asm_f0f91 ret -DisplayCreditsMon: ; 740cb (1d:40cb) - xor a - ld [H_AUTOBGTRANSFERENABLED],a - call SaveScreenTilesToBuffer1 - call FillMiddleOfScreenWithWhite +HoFGBPalettes: + db %11000000 + db %11010000 + db %11100000 + db %11110000 - ; display the next monster from CreditsMons - ld hl,wNumCreditsMonsDisplayed - ld c,[hl] ; how many monsters have we displayed so far? - inc [hl] - ld b,0 - ld hl,CreditsMons - add hl,bc ; go that far in the list of monsters and get the next one - ld a,[hl] - ld [wcf91],a - ld [wd0b5],a - coord hl, 8, 6 - call GetMonHeader - call LoadFrontSpriteByMonIndex - ld hl,vBGMap0 + $c +DisplayCreditsMon: + ld hl, vBGMap1 call CreditsCopyTileMapToVRAM xor a - ld [H_AUTOBGTRANSFERENABLED],a - call LoadScreenTilesFromBuffer1 - ld hl,vBGMap0 + ld [H_AUTOBGTRANSFERENABLED], a + ld hl, rLCDC + set 3, [hl] + call SaveScreenTilesToBuffer2 + call FillMiddleOfScreenWithWhite + call GetNextCreditsMon + ld hl, vBGMap0 + 12 call CreditsCopyTileMapToVRAM - ld a,$A7 - ld [rWX],a - ld hl,vBGMap1 + xor a + ld [H_AUTOBGTRANSFERENABLED], a + call LoadScreenTilesFromBuffer2DisableBGTransfer + ld hl, vBGMap0 call CreditsCopyTileMapToVRAM - call FillMiddleOfScreenWithWhite - ld a,%11111100 ; make the mon a black silhouette - ld [rBGP],a - -; scroll the mon left by one tile 7 times - ld bc,7 -.scrollLoop1 + ld a, %11111100 + ld [rBGP], a + call UpdateGBCPal_BGP + ld hl, rLCDC + res 3, [hl] + ld a, 1 + ld [H_AUTOBGTRANSFERENABLED], a + ld b, 0 + ld c, 10 call ScrollCreditsMonLeft - dec c - jr nz,.scrollLoop1 - -; scroll the mon left by one tile 20 times -; This time, we have to move the window left too in order to hide the text that -; is wrapping around to the right side of the screen. - ld c,20 -.scrollLoop2 + call FillLeftHalfOfScreenWithWhite + ld c, 10 call ScrollCreditsMonLeft - ld a,[rWX] - sub 8 - ld [rWX],a - dec c - jr nz,.scrollLoop2 - + call FillRightHalfOfScreenWithWhite + ld c, 8 + call ScrollCreditsMonLeft + ld a, %11000000 + ld [rBGP], a + call UpdateGBCPal_BGP xor a - ld [hWY],a - ld a,%11000000 - ld [rBGP],a + ld [hSCX], a ret -INCLUDE "data/credit_mons.asm" - -ScrollCreditsMonLeft: ; 74140 (1d:4140) - ld h, b - ld l, $20 - call ScrollCreditsMonLeft_SetSCX - ld h, $0 - ld l, $70 - call ScrollCreditsMonLeft_SetSCX +ScrollCreditsMonLeft: +.asm_f0fff ld a, b - add $8 + ld [hSCX], a + add 8 ld b, a + call DelayFrame + dec c + jr nz, .asm_f0fff ret -ScrollCreditsMonLeft_SetSCX: ; 74152 (1d:4152) - ld a, [rLY] - cp l - jr nz, ScrollCreditsMonLeft_SetSCX - ld a, h - ld [rSCX], a -.loop - ld a, [rLY] - cp h - jr z, .loop +GetNextCreditsMon: + ld hl, wNumCreditsMonsDisplayed + ld c, [hl] + inc [hl] + ld b, 0 + ld hl, CreditsMons + add hl, bc + ld a, [hl] + ld [wcf91], a + ld [wd0b5], a + coord hl, 8, 6 + call GetMonHeader + call LoadFrontSpriteByMonIndex ret -HoFGBPalettes: ; 74160 (1d:4160) - db %11000000 - db %11010000 - db %11100000 - db %11110000 +INCLUDE "data/credit_mons.asm" -CreditsCopyTileMapToVRAM: ; 74164 (1d:4164) +CreditsCopyTileMapToVRAM: ld a, l - ld [H_AUTOBGTRANSFERDEST], a + ld [$ffbc], a ld a, h - ld [H_AUTOBGTRANSFERDEST + 1], a - ld a, 1 + ld [$ffbd], a + ld a, $1 ld [H_AUTOBGTRANSFERENABLED], a jp Delay3 -ZeroMemory: ; 74171 (1d:4171) -; zero bc bytes at hl +CreditsLoadFont: + call LoadFontTilePatterns + ld hl, vChars1 + ld bc, $40 * $10 + call ZeroMemory + + call LoadTextBoxTilePatterns + ld hl, vChars2 + $60 * $10 + ld bc, $10 * $10 + call ZeroMemory + + ld hl, vChars2 + $7e * $10 + ld bc, $1 * $10 + ld a, $ff + call FillMemory + ret + +ZeroMemory: +.asm_f1071 ld [hl], 0 inc hl inc hl dec bc ld a, b or c - jr nz, ZeroMemory + jr nz, .asm_f1071 ret -FillFourRowsWithBlack: ; 7417b (1d:417b) - ld bc, SCREEN_WIDTH * 4 +FillFourRowsWithBlack: + ld bc, 4 * SCREEN_WIDTH ld a, $7e jp FillMemory -FillMiddleOfScreenWithWhite: ; 74183 (1d:4183) +FillMiddleOfScreenWithWhite: coord hl, 0, 4 - ld bc, SCREEN_WIDTH * 10 + ld bc, 10 * SCREEN_WIDTH ld a, " " jp FillMemory -Credits: ; 7418e (1d:418e) +FillLeftHalfOfScreenWithWhite: + coord hl, 0, 4 + push bc + call FillHalfOfScreenWithWhite + pop bc + ret + +FillRightHalfOfScreenWithWhite: + coord hl, 10, 4 + push bc + call FillHalfOfScreenWithWhite + pop bc + ret + +FillHalfOfScreenWithWhite: + ld b, 10 + ld c, 10 + ld a, " " +.asm_f10a6 + push bc + push hl +.asm_f10a8 + ld [hli], a + dec c + jr nz, .asm_f10a8 + pop hl + ld bc, SCREEN_WIDTH + add hl, bc + pop bc + dec b + jr nz, .asm_f10a6 + ret + +Credits: ; Roll credits ld de, CreditsOrder push de .nextCreditsScreen @@ -192,58 +233,48 @@ Credits: ; 7418e (1d:418e) jr z, .showCopyrightText cp $fa jr z, .showTheEnd - push hl - push hl - ld hl, CreditsTextPointers - add a - ld c, a - ld b, 0 - add hl, bc - ld e, [hl] - inc hl - ld d, [hl] - ld a, [de] - inc de - ld c, a - ld b, $ff - pop hl - add hl, bc - call PlaceString - pop hl - ld bc, SCREEN_WIDTH * 2 - add hl, bc + call PlaceCreditsText pop de jr .nextCreditsCommand + +.showCopyrightText + callba LoadCopyrightTiles + pop de + jr .nextCreditsCommand + + .fadeInTextAndShowMon call FadeInCreditsText - ld c, 90 + ld c, 102 jr .next1 + .showTextAndShowMon - ld c, 110 + ld c, 122 .next1 call DelayFrames call DisplayCreditsMon jr .nextCreditsScreen + .fadeInText call FadeInCreditsText - ld c, 120 + ld c, 132 jr .next2 + .showText - ld c, 140 + ld c, 152 .next2 call DelayFrames jr .nextCreditsScreen -.showCopyrightText - push de - callba LoadCopyrightTiles - pop de - pop de - jr .nextCreditsCommand + .showTheEnd - ld c, 16 + call ShowTheEndGFX + pop de + ret + +ShowTheEndGFX: + ld c, 24 call DelayFrames call FillMiddleOfScreenWithWhite - pop de ld de, TheEndGfx ld hl, vChars2 + $600 lb bc, BANK(TheEndGfx), (TheEndGfxEnd - TheEndGfx) / $10 @@ -258,8 +289,31 @@ Credits: ; 7418e (1d:418e) TheEndTextString: ; 74229 (1d:4229) ; "T H E E N D" - db $60," ",$62," ",$64," ",$64," ",$66," ",$68,"@" - db $61," ",$63," ",$65," ",$65," ",$67," ",$69,"@" + db $60, " ", $62, " ", $64, " ", $64, " ", $66, " ", $68, "@" + db $61, " ", $63, " ", $65, " ", $65, " ", $67, " ", $69, "@" + +PlaceCreditsText: + push hl + push hl + ld hl, CreditsTextPointers + ld c, a + ld b, 0 + add hl, bc + add hl, bc + ld e, [hl] + inc hl + ld d, [hl] + pop hl + ld a, [de] + inc de + ld c, a + ld b, $ff + add hl, bc + call PlaceString + pop hl + ld bc, SCREEN_WIDTH * 2 + add hl, bc + ret INCLUDE "data/credits_order.asm" @@ -268,3 +322,4 @@ INCLUDE "text/credits_text.asm" TheEndGfx: ; 7473e (1d:473e) (7473f on blue) INCBIN "gfx/theend.interleave.2bpp" TheEndGfxEnd: + diff --git a/engine/bank3c.asm b/engine/bank3c.asm index 61096d27..6174dc0b 100644 --- a/engine/bank3c.asm +++ b/engine/bank3c.asm @@ -342,8 +342,7 @@ NurseChanseyText: TX_FAR _NurseChanseyText db "@" - dr $f0f26, $f18bb - +INCLUDE "engine/HoF_room_pc.asm" INCLUDE "scripts/viridiancity2.asm" INCLUDE "scripts/vermilioncity2.asm" INCLUDE "scripts/celadoncity2.asm" diff --git a/text/credits_text.asm b/text/credits_text.asm index 02614c6a..c1ec13ba 100755 --- a/text/credits_text.asm +++ b/text/credits_text.asm @@ -1,194 +1,264 @@ CreditsTextPointers: ; 742c3 (1d:42c3) - dw CredVersion - dw CredTajiri - dw CredTaOota - dw CredMorimoto - dw CredWatanabe - dw CredMasuda - dw CredNisino - dw CredSugimori - dw CredNishida - dw CredMiyamoto - dw CredKawaguchi - dw CredIshihara - dw CredYamauchi - dw CredZinnai - dw CredHishida - dw CredSakai - dw CredYamaguchi - dw CredYamamoto - dw CredTaniguchi - dw CredNonomura - dw CredFuziwara - dw CredMatsusima - dw CredTomisawa - dw CredKawamoto - dw CredKakei - dw CredTsuchiya - dw CredTaNakamura - dw CredYuda - dw CredMon - dw CredDirector - dw CredProgrammers - dw CredCharDesign - dw CredMusic - dw CredSoundEffects - dw CredGameDesign - dw CredMonsterDesign - dw CredGameScene - dw CredParam - dw CredMap - dw CredTest - dw CredSpecial - dw CredProducers - dw CredProducer - dw CredExecutive - dw CredTamada - dw CredSaOota - dw CredYoshikawa - dw CredToOota - dw CredUSStaff - dw CredUSCoord - dw CredTilden - dw CredKawakami - dw CredHiNakamura - dw CredGiese - dw CredOsborne - dw CredTrans - dw CredOgasawara - dw CredIwata - dw CredIzushi - dw CredHarada - dw CredMurakawa - dw CredFukui - dw CredClub - dw CredPAAD + dw CreditsText_f128f + dw CreditsText_f12a9 + dw CreditsText_f12b9 + dw CreditsText_f12c8 + dw CreditsText_f12da + dw CreditsText_f12ec + dw CreditsText_f12fc + dw CreditsText_f130b + dw CreditsText_f1319 + dw CreditsText_f1329 + dw CreditsText_f133b + dw CreditsText_f134e + dw CreditsText_f1362 + dw CreditsText_f1374 + dw CreditsText_f1385 + dw CreditsText_f1396 + dw CreditsText_f13a6 + dw CreditsText_f13b8 + dw CreditsText_f13cb + dw CreditsText_f13df + dw CreditsText_f13f2 + dw CreditsText_f1405 + dw CreditsText_f1416 + dw CreditsText_f1428 + dw CreditsText_f143a + dw CreditsText_f144a + dw CreditsText_f145b + dw CreditsText_f146b + dw CreditsText_f147b + dw CreditsText_f1481 + dw CreditsText_f148b + dw CreditsText_f1498 + dw CreditsText_f14aa + dw CreditsText_f14b1 + dw CreditsText_f14c0 + dw CreditsText_f14cd + dw CreditsText_f14dd + dw CreditsText_f14ec + dw CreditsText_f14ff + dw CreditsText_f150b + dw CreditsText_f151c + dw CreditsText_f1537 + dw CreditsText_f1541 + dw CreditsText_f1555 + dw CreditsText_f1565 + dw CreditsText_f1573 + dw CreditsText_f1583 + dw CreditsText_f15b7 + dw CreditsText_f1593 + dw CreditsText_f15a8 + dw CreditsText_f15c9 + dw CreditsText_f15da + dw CreditsText_f15ed + dw CreditsText_f1603 + dw CreditsText_f1619 + dw CreditsText_f162a + dw CreditsText_f1639 + dw CreditsText_f164a + dw CreditsText_f165c + dw CreditsText_f1670 + dw CreditsText_f167d + dw CreditsText_f168b + dw CreditsText_f16a2 + dw CreditsText_f16af + dw CreditsText_f16c8 + dw CreditsText_f16da + dw CreditsText_f16eb + dw CreditsText_f16f8 + dw CreditsText_f1708 + dw CreditsText_f1717 + dw CreditsText_f1727 + dw CreditsText_f1735 + dw CreditsText_f1747 + dw CreditsText_f1756 + dw CreditsText_f1764 + dw CreditsText_f1775 + dw CreditsText_f1786 + dw CreditsText_f1797 + dw CreditsText_f17a4 + dw CreditsText_f17ba + dw CreditsText_f152c + dw CreditsText_f17c8 + dw CreditsText_f17db + dw CreditsText_f17e8 + dw CreditsText_f17fa + dw CreditsText_f180b -CredVersion: ; 74343 (1d:4343) ; this 1 byte difference makes all bank addresses offset by 1 in the blue version - db -8, "RED VERSION STAFF@" -CredTajiri: ; 74356 (1d:4356) +CreditsText_f128f: + db -6, "YELLOW VERSION" + next " STAFF@" +CreditsText_f12a9: db -6, "SATOSHI TAJIRI@" -CredTaOota: ; 74366 (1d:4366) +CreditsText_f12b9: db -6, "TAKENORI OOTA@" -CredMorimoto: ; 74375 (1d:4375) +CreditsText_f12c8: db -7, "SHIGEKI MORIMOTO@" -CredWatanabe: ; 74387 (1d:4387) +CreditsText_f12da: db -7, "TETSUYA WATANABE@" -CredMasuda: ; 74399 (1d:4399) +CreditsText_f12ec: db -6, "JUNICHI MASUDA@" -CredNisino: ; 743a9 (1d:43a9) - db -5, "KOHJI NISINO@" -CredSugimori: ; 743b7 (1d:43b7) +CreditsText_f12fc: + db -5, "KOHJI NISHINO@" +CreditsText_f130b: db -5, "KEN SUGIMORI@" -CredNishida: ; 743c5 (1d:43c5) +CreditsText_f1319: db -6, "ATSUKO NISHIDA@" -CredMiyamoto: ; 743d5 (1d:43d5) +CreditsText_f1329: db -7, "SHIGERU MIYAMOTO@" -CredKawaguchi: ; 743e7 (1d:43e7) +CreditsText_f133b: db -8, "TAKASHI KAWAGUCHI@" -CredIshihara: ; 743fa (1d:43fa) +CreditsText_f134e: db -8, "TSUNEKAZU ISHIHARA@" -CredYamauchi: ; 7440e (1d:440e) +CreditsText_f1362: db -7, "HIROSHI YAMAUCHI@" -CredZinnai: ; 74420 (1d:4420) +CreditsText_f1374: db -7, "HIROYUKI ZINNAI@" -CredHishida: ; 74431 (1d:4431) +CreditsText_f1385: db -7, "TATSUYA HISHIDA@" -CredSakai: ; 74442 (1d:4442) +CreditsText_f1396: db -6, "YASUHIRO SAKAI@" -CredYamaguchi: ; 74452 (1d:4452) +CreditsText_f13a6: db -7, "WATARU YAMAGUCHI@" -CredYamamoto: ; 74464 (1d:4464) +CreditsText_f13b8: db -8, "KAZUYUKI YAMAMOTO@" -CredTaniguchi: ; 74477 (1d:4477) +CreditsText_f13cb: db -8, "RYOHSUKE TANIGUCHI@" -CredNonomura: ; 7448b (1d:448b) +CreditsText_f13df: db -8, "FUMIHIRO NONOMURA@" -CredFuziwara: ; 7449e (1d:449e) +CreditsText_f13f2: db -7, "MOTOFUMI FUZIWARA@" -CredMatsusima: ; 744b1 (1d:44b1) +CreditsText_f1405: db -7, "KENJI MATSUSIMA@" -CredTomisawa: ; 744c2 (1d:44c2) +CreditsText_f1416: db -7, "AKIHITO TOMISAWA@" -CredKawamoto: ; 744d4 (1d:44d4) +CreditsText_f1428: db -7, "HIROSHI KAWAMOTO@" -CredKakei: ; 744e6 (1d:44e6) +CreditsText_f143a: db -6, "AKIYOSHI KAKEI@" -CredTsuchiya: ; 744f6 (1d:44f6) +CreditsText_f144a: db -7, "KAZUKI TSUCHIYA@" -CredTaNakamura: ; 74507 (1d:4507) +CreditsText_f145b: db -6, "TAKEO NAKAMURA@" -CredYuda: ; 74517 (1d:4517) +CreditsText_f146b: db -6, "MASAMITSU YUDA@" -CredMon: ; 74527 (1d:4527) +CreditsText_f147b: db -3, "#MON@" -CredDirector: ; 7452d (1d:452d) +CreditsText_f1481: db -3, "DIRECTOR@" -CredProgrammers: ; 74537 (1d:4537) +CreditsText_f148b: db -5, "PROGRAMMERS@" -CredCharDesign: ; 74544 (1d:4544) +CreditsText_f1498: db -7, "CHARACTER DESIGN@" -CredMusic: ; 74556 (1d:4556) +CreditsText_f14aa: db -2, "MUSIC@" -CredSoundEffects: ; 7455d (1d:455d) +CreditsText_f14b1: db -6, "SOUND EFFECTS@" -CredGameDesign: ; 7456c (1d:456c) +CreditsText_f14c0: db -5, "GAME DESIGN@" -CredMonsterDesign: ; 74579 (1d:4579) +CreditsText_f14cd: db -6, "MONSTER DESIGN@" -CredGameScene: ; 74589 (1d:4589) +CreditsText_f14dd: db -6, "GAME SCENARIO@" -CredParam: ; 74598 (1d:4598) - db -8, "PARAMETRIC DESIGN@" -CredMap: ; 745ab (1d:45ab) +CreditsText_f14ec: + db -7, "PARAMETRIC DESIGN@" +CreditsText_f14ff: db -4, "MAP DESIGN@" -CredTest: ; 745b7 (1d:45b7) - db -7, "PRODUCT TESTING@" -CredSpecial: ; 745c8 (1d:45c8) +CreditsText_f150b: + db -6, "PRODUCT TESTING@" +CreditsText_f151c: db -6, "SPECIAL THANKS@" -CredProducers: ; 745d8 (1d:45d8) +CreditsText_f152c: db -4, "PRODUCERS@" -CredProducer: ; 745e3 (1d:45e3) - db -4, "PRODUCER@" -CredExecutive: ; 745ed (1d:45ed) +CreditsText_f1537: + db -3, "PRODUCER@" +CreditsText_f1541: db -8, "EXECUTIVE PRODUCER@" -CredTamada: ; 74601 (1d:4601) +CreditsText_f1555: db -6, "SOUSUKE TAMADA@" -CredSaOota: ; 74611 (1d:4611) +CreditsText_f1565: db -5, "SATOSHI OOTA@" -CredYoshikawa: ; 7461f (1d:461f) +CreditsText_f1573: db -6, "RENA YOSHIKAWA@" -CredToOota: ; 7462f (1d:462f) +CreditsText_f1583: db -6, "TOMOMICHI OOTA@" -CredUSStaff: ; 7463f (1d:463f) +CreditsText_f1593: + db -8, "TOSHINOBU MATSUMIYA@" +CreditsText_f15a8: + db -5, "NOBUHIRO SEYA@" +CreditsText_f15b7: + db -7, "HIRONOBU YOSHIDA@" +CreditsText_f15c9: + db -6, "KAZUHITO SEKINE@" +CreditsText_f15da: + db -7, "KAZUSHI SHIMAMURA@" +CreditsText_f15ed: + db -9, "TERUYUKI SHIMOYAMADA@" +CreditsText_f1603: + db -9, "NCL SUPER MARIO CLUB@" +CreditsText_f1619: + db -7, "TAKEHIRO IZUSHI@" +CreditsText_f162a: + db -5, "FUZIKO NOMURA@" +CreditsText_f1639: + db -6, "TAKAHIRO HARADA@" +CreditsText_f164a: + db -7, "HITOSHI YAMAGAMI@" +CreditsText_f165c: + db -8, "KENTAROU NISHIMURA@" +CreditsText_f1670: + db -5, "NAOKO SAEKI@" +CreditsText_f167d: + db -5, "TAKAYA FUZII@" +CreditsText_f168b: + db -4, "SHOGAKUKAN" + next "PRODUCTION@" +CreditsText_f16a2: + db -5, "IKUE OOTANI@" +CreditsText_f16af: + db -6, "PIKACHU VOICE@" + + db -3, "××××××××@" +CreditsText_f16c8: db -7, "US VERSION STAFF@" -CredUSCoord: ; 74651 (1d:4651) +CreditsText_f16da: db -7, "US COORDINATION@" -CredTilden: ; 74662 (1d:4662) +CreditsText_f16eb: db -5, "GAIL TILDEN@" -CredKawakami: ; 7466f (1d:466f) +CreditsText_f16f8: db -6, "NAOKO KAWAKAMI@" -CredHiNakamura: ; 7467f (1d:467f) +CreditsText_f1708: db -6, "HIRO NAKAMURA@" -CredGiese: ; 7468e (1d:468e) - db -6, "WILLIAM GIESE@" -CredOsborne: ; 7469d (1d:469d) +CreditsText_f1717: + db -6, "RANDY SHOEMAKE@" +CreditsText_f1727: db -5, "SARA OSBORNE@" -CredTrans: ; 746ab (1d:46ab) +CreditsText_f1735: db -7, "TEXT TRANSLATION@" -CredOgasawara: ; 746bd (1d:46bd) +CreditsText_f1747: db -6, "NOB OGASAWARA@" -CredIwata: ; 746cc (1d:46cc) +CreditsText_f1756: db -5, "SATORU IWATA@" -CredIzushi: ; 746da (1d:46da) +CreditsText_f1764: db -7, "TAKEHIRO IZUSHI@" -CredHarada: ; 746eb (1d:46eb) +CreditsText_f1775: db -7, "TAKAHIRO HARADA@" -CredMurakawa: ; 746fc (1d:46fc) +CreditsText_f1786: db -7, "TERUKI MURAKAWA@" -CredFukui: ; 7470d (1d:470d) +CreditsText_f1797: db -5, "KOHTA FUKUI@" -CredClub: ; 7471a (1d:471a) +CreditsText_f17a4: db -9, "NCL SUPER MARIO CLUB@" -CredPAAD: ; 74730 (1d:4730) +CreditsText_f17ba: db -5, "PAAD TESTING@" +CreditsText_f17c8: + db -8, "TAKEHIKO HOSOKAWA@" +CreditsText_f17db: + db -5, "KENJI OKUBO@" +CreditsText_f17e8: + db -7, "KIMIKO NAKAMICHI@" +CreditsText_f17fa: + db -6, "KAMON YOSHIMURA@" +CreditsText_f180b: + db -6, "SAKAE YAMAZAKI@" -- cgit v1.2.3 From 886ae03c1c2c7fb12ba5b430fb8f05e1c4342d05 Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Fri, 27 May 2016 17:34:09 -0400 Subject: Redo credits constants --- constants/credits_constants.asm | 162 +++++++++++-------- data/credits_order.asm | 68 ++++---- text/credits_text.asm | 344 ++++++++++++++++++++-------------------- 3 files changed, 300 insertions(+), 274 deletions(-) diff --git a/constants/credits_constants.asm b/constants/credits_constants.asm index 99af7992..013ceceb 100644 --- a/constants/credits_constants.asm +++ b/constants/credits_constants.asm @@ -1,69 +1,95 @@ -const_value = 0 - - const CRED_VERSION ; $00 - const CRED_TAJIRI ; $01 - const CRED_TA_OOTA ; $02 - const CRED_MORIMOTO ; $03 - const CRED_WATANABE ; $04 - const CRED_MASUDE ; $05 - const CRED_NISINO ; $06 - const CRED_SUGIMORI ; $07 - const CRED_NISHIDA ; $08 - const CRED_MIYAMOTO ; $09 - const CRED_KAWAGUCHI ; $0A - const CRED_ISHIHARA ; $0B - const CRED_YAMAUCHI ; $0C - const CRED_ZINNAI ; $0D - const CRED_HISHIDA ; $0E - const CRED_SAKAI ; $0F - const CRED_YAMAGUCHI ; $10 - const CRED_YAMAMOTO ; $11 - const CRED_TANIGUCHI ; $12 - const CRED_NONOMURA ; $13 - const CRED_FUZIWARA ; $14 - const CRED_MATSUSIMA ; $15 - const CRED_TOMISAWA ; $16 - const CRED_KAWAMOTO ; $17 - const CRED_KAKEI ; $18 - const CRED_TSUCHIYA ; $19 - const CRED_TA_NAKAMURA ; $1A - const CRED_YUDA ; $1B - const CRED_MON ; $1C - const CRED_DIRECTOR ; $1D - const CRED_PROGRAMMERS ; $1E - const CRED_CHAR_DESIGN ; $1F - const CRED_MUSIC ; $20 - const CRED_SOUND_EFFECTS ; $21 - const CRED_GAME_DESIGN ; $22 - const CRED_MONSTER_DESIGN ; $23 - const CRED_GAME_SCENE ; $24 - const CRED_PARAM ; $25 - const CRED_MAP ; $26 - const CRED_TEST ; $27 - const CRED_SPECIAL ; $28 - const CRED_PRODUCERS ; $29 - const CRED_PRODUCER ; $2A - const CRED_EXECUTIVE ; $2B - const CRED_TAMADA ; $2C - const CRED_SA_OOTA ; $2D - const CRED_YOSHIKAWA ; $2E - const CRED_TO_OOTA ; $2F - const CRED_US_STAFF ; $30 - const CRED_US_COORD ; $31 - const CRED_TILDEN ; $32 - const CRED_KAWAKAMI ; $33 - const CRED_HI_NAKAMURA ; $34 - const CRED_GIESE ; $35 - const CRED_OSBORNE ; $36 - const CRED_TRANS ; $37 - const CRED_OGASAWARA ; $38 - const CRED_IWATA ; $39 - const CRED_IZUSHI ; $3A - const CRED_HARADA ; $3B - const CRED_MURAKAWA ; $3C - const CRED_FUKUI ; $3D - const CRED_CLUB ; $3E - const CRED_PAAD ; $3F - const CRED_40 - + const_def + const CRED_VERSION ; 00 + const CRED_TAJIRI ; 01 + const CRED_OOTA ; 02 + const CRED_MORIMOTO ; 03 + const CRED_WATANABE ; 04 + const CRED_MASUDA ; 05 + const CRED_NISHINO ; 06 + const CRED_SUGIMORI ; 07 + const CRED_NISHIDA ; 08 + const CRED_MIYAMOTO ; 09 + const CRED_KAWAGUCHI ; 0a + const CRED_ISHIHARA ; 0b + const CRED_YAMAUCHI ; 0c + const CRED_ZINNAI ; 0d + const CRED_HISHIDA ; 0e + const CRED_SAKAI ; 0f + const CRED_YAMAGUCHI ; 10 + const CRED_YAMAMOTO ; 11 + const CRED_TANIGUCHI ; 12 + const CRED_NONOMURA ; 13 + const CRED_FUZIWARA ; 14 + const CRED_MATSUSIMA ; 15 + const CRED_TOMISAWA ; 16 + const CRED_KAWAMOTO ; 17 + const CRED_KAKEI ; 18 + const CRED_TSUCHIYA ; 19 + const CRED_NAKAMURA ; 1a + const CRED_YUDA ; 1b + const CRED_POKEMON ; 1c + const CRED_DIRECTOR ; 1d + const CRED_PROGRAMMERS ; 1e + const CRED_CHARACTER_DESIGN ; 1f + const CRED_MUSIC ; 20 + const CRED_SOUND_EFFECTS ; 21 + const CRED_GAME_DESIGN ; 22 + const CRED_MONSTER_DESIGN ; 23 + const CRED_GAME_SCENARIO ; 24 + const CRED_PARAMETRIC_DESIGN ; 25 + const CRED_MAP_DESIGN ; 26 + const CRED_TESTING ; 27 + const CRED_SPECIAL_THANKS ; 28 + const CRED_PRODUCER ; 29 + const CRED_EXECUTIVE_PRODUCER ; 2a + const CRED_TAMADA ; 2b + const CRED_OOTA2 ; 2c + const CRED_YOSHIKAWA ; 2d + const CRED_OOTA23 ; 2e + const CRED_YOSHIDA ; 2f + const CRED_MATSUMITA ; 30 + const CRED_SEYA ; 31 + const CRED_SEKINE ; 32 + const CRED_SHIMAMURA ; 33 + const CRED_SHIMOYAMADA ; 34 + const CRED_SUPER_MARIO_CLUB ; 35 + const CRED_IZUSHI ; 36 + const CRED_NOMURA ; 37 + const CRED_HARADA ; 38 + const CRED_YAMAGAMI ; 39 + const CRED_NISHIMURA ; 3a + const CRED_SAEKI ; 3b + const CRED_FUZII ; 3c + const CRED_SHOGAKUKAN ; 3d + const CRED_OOTANI ; 3e + const CRED_PIKACHU_VOICE ; 3f + const CRED_U_S_STAFF ; 40 + const CRED_U_S_COORD ; 41 + const CRED_TILDEN ; 42 + const CRED_KAWAKAMI ; 43 + const CRED_NAKAMURA2 ; 44 + const CRED_SHOEMAKE ; 45 + const CRED_OSBORNE ; 46 + const CRED_TRANSLATION ; 47 + const CRED_OGASAWARA ; 48 + const CRED_IWATA ; 49 + const CRED_IZUSHI2 ; 4a + const CRED_HARADA2 ; 4b + const CRED_MURAKAWA ; 4c + const CRED_FUKUI ; 4d + const CRED_SUPER_MARIO_CLUB2 ; 4e + const CRED_PAAD ; 4f + const CRED_PRODUCERS ; 50 + const CRED_HOSOKAWA ; 51 + const CRED_OKUBO ; 52 + const CRED_NAKAMICHI ; 53 + const CRED_YOSHIMURA ; 54 + const CRED_YAMAZAKI ; 55 +const_value SET $fa + const CRED_THE_END + const CRED_COPYRIGHT + const CRED_TEXT + const CRED_TEXT_FADE + const CRED_TEXT_MON + const CRED_TEXT_FADE_MON diff --git a/data/credits_order.asm b/data/credits_order.asm index 4d940602..e84a2a09 100755 --- a/data/credits_order.asm +++ b/data/credits_order.asm @@ -2,37 +2,37 @@ CreditsOrder: ; 74243 (1d:4243) ; subsequent credits elements will be displayed on separate lines. ; $FF, $FE, $FD, $FC, $FB, and $FA are commands that are used ; to go to the next set of credits texts. - db $1c, $00, $ff - db $1d, $01, $ff - db $1e, $02, $03, $04, $fd - db $1e, $05, $2b, $fe - db $1f, $07, $08, $ff - db $20, $05, $fd - db $21, $05, $04, $fe - db $22, $01, $06, $ff - db $23, $07, $08, $2f, $ff - db $24, $01, $fd - db $24, $30, $fe - db $25, $06, $ff - db $26, $01, $06, $31, $ff - db $27, $32, $31, $fd - db $27, $33, $34, $fe - db $28, $3d, $ff - db $3f, $3e, $ff - db $29, $36, $fd - db $29, $0a, $fc - db $29, $0b, $fe - db $40, $fd - db $41, $42, $fd - db $41, $43, $44, $fc - db $41, $45, $46, $fc - db $47, $48, $fd - db $1e, $4c, $4d, $fd - db $1f, $51, $fd - db $28, $52, $4b, $fd - db $28, $53, $54, $55, $fc - db $27, $4f, $4e, $fd - db $2a, $0c, $ff - db $fb - db $ff - db $fa + db CRED_POKEMON, CRED_VERSION, CRED_TEXT_FADE_MON + db CRED_DIRECTOR, CRED_TAJIRI, CRED_TEXT_FADE_MON + db CRED_PROGRAMMERS, CRED_OOTA, CRED_MORIMOTO, CRED_WATANABE, CRED_TEXT_FADE + db CRED_PROGRAMMERS, CRED_MASUDA, CRED_TAMADA, CRED_TEXT_MON + db CRED_CHARACTER_DESIGN, CRED_SUGIMORI, CRED_NISHIDA, CRED_TEXT_FADE_MON + db CRED_MUSIC, CRED_MASUDA, CRED_TEXT_FADE + db CRED_SOUND_EFFECTS, CRED_MASUDA, CRED_WATANABE, CRED_TEXT_MON + db CRED_GAME_DESIGN, CRED_TAJIRI, CRED_NISHINO, CRED_TEXT_FADE_MON + db CRED_MONSTER_DESIGN, CRED_SUGIMORI, CRED_NISHIDA, CRED_YOSHIDA, CRED_TEXT_FADE_MON + db CRED_GAME_SCENARIO, CRED_TAJIRI, CRED_TEXT_FADE + db CRED_GAME_SCENARIO, CRED_MATSUMITA, CRED_TEXT_MON + db CRED_PARAMETRIC_DESIGN, CRED_NISHINO, CRED_TEXT_FADE_MON + db CRED_MAP_DESIGN, CRED_TAJIRI, CRED_NISHINO, CRED_SEYA, CRED_TEXT_FADE_MON + db CRED_TESTING, CRED_SEKINE, CRED_SEYA, CRED_TEXT_FADE + db CRED_TESTING, CRED_SHIMAMURA, CRED_SHIMOYAMADA, CRED_TEXT_MON + db CRED_SPECIAL_THANKS, CRED_SHOGAKUKAN, CRED_TEXT_FADE_MON + db CRED_PIKACHU_VOICE, CRED_OOTANI, CRED_TEXT_FADE_MON + db CRED_PRODUCER, CRED_IZUSHI, CRED_TEXT_FADE + db CRED_PRODUCER, CRED_KAWAGUCHI, CRED_TEXT + db CRED_PRODUCER, CRED_ISHIHARA, CRED_TEXT_MON + db CRED_U_S_STAFF, CRED_TEXT_FADE + db CRED_U_S_COORD, CRED_TILDEN, CRED_TEXT_FADE + db CRED_U_S_COORD, CRED_KAWAKAMI, CRED_NAKAMURA2, CRED_TEXT + db CRED_U_S_COORD, CRED_SHOEMAKE, CRED_OSBORNE, CRED_TEXT + db CRED_TRANSLATION, CRED_OGASAWARA, CRED_TEXT_FADE + db CRED_PROGRAMMERS, CRED_MURAKAWA, CRED_FUKUI, CRED_TEXT_FADE + db CRED_CHARACTER_DESIGN, CRED_HOSOKAWA, CRED_TEXT_FADE + db CRED_SPECIAL_THANKS, CRED_OKUBO, CRED_HARADA2, CRED_TEXT_FADE + db CRED_SPECIAL_THANKS, CRED_NAKAMICHI, CRED_YOSHIMURA, CRED_YAMAZAKI, CRED_TEXT + db CRED_TESTING, CRED_PAAD, CRED_SUPER_MARIO_CLUB2, CRED_TEXT_FADE + db CRED_EXECUTIVE_PRODUCER, CRED_YAMAUCHI, CRED_TEXT_FADE_MON + db CRED_COPYRIGHT + db CRED_TEXT_FADE_MON + db CRED_THE_END diff --git a/text/credits_text.asm b/text/credits_text.asm index c1ec13ba..54b52c97 100755 --- a/text/credits_text.asm +++ b/text/credits_text.asm @@ -1,264 +1,264 @@ CreditsTextPointers: ; 742c3 (1d:42c3) - dw CreditsText_f128f - dw CreditsText_f12a9 - dw CreditsText_f12b9 - dw CreditsText_f12c8 - dw CreditsText_f12da - dw CreditsText_f12ec - dw CreditsText_f12fc - dw CreditsText_f130b - dw CreditsText_f1319 - dw CreditsText_f1329 - dw CreditsText_f133b - dw CreditsText_f134e - dw CreditsText_f1362 - dw CreditsText_f1374 - dw CreditsText_f1385 - dw CreditsText_f1396 - dw CreditsText_f13a6 - dw CreditsText_f13b8 - dw CreditsText_f13cb - dw CreditsText_f13df - dw CreditsText_f13f2 - dw CreditsText_f1405 - dw CreditsText_f1416 - dw CreditsText_f1428 - dw CreditsText_f143a - dw CreditsText_f144a - dw CreditsText_f145b - dw CreditsText_f146b - dw CreditsText_f147b - dw CreditsText_f1481 - dw CreditsText_f148b - dw CreditsText_f1498 - dw CreditsText_f14aa - dw CreditsText_f14b1 - dw CreditsText_f14c0 - dw CreditsText_f14cd - dw CreditsText_f14dd - dw CreditsText_f14ec - dw CreditsText_f14ff - dw CreditsText_f150b - dw CreditsText_f151c - dw CreditsText_f1537 - dw CreditsText_f1541 - dw CreditsText_f1555 - dw CreditsText_f1565 - dw CreditsText_f1573 - dw CreditsText_f1583 - dw CreditsText_f15b7 - dw CreditsText_f1593 - dw CreditsText_f15a8 - dw CreditsText_f15c9 - dw CreditsText_f15da - dw CreditsText_f15ed - dw CreditsText_f1603 - dw CreditsText_f1619 - dw CreditsText_f162a - dw CreditsText_f1639 - dw CreditsText_f164a - dw CreditsText_f165c - dw CreditsText_f1670 - dw CreditsText_f167d - dw CreditsText_f168b - dw CreditsText_f16a2 - dw CreditsText_f16af - dw CreditsText_f16c8 - dw CreditsText_f16da - dw CreditsText_f16eb - dw CreditsText_f16f8 - dw CreditsText_f1708 - dw CreditsText_f1717 - dw CreditsText_f1727 - dw CreditsText_f1735 - dw CreditsText_f1747 - dw CreditsText_f1756 - dw CreditsText_f1764 - dw CreditsText_f1775 - dw CreditsText_f1786 - dw CreditsText_f1797 - dw CreditsText_f17a4 - dw CreditsText_f17ba - dw CreditsText_f152c - dw CreditsText_f17c8 - dw CreditsText_f17db - dw CreditsText_f17e8 - dw CreditsText_f17fa - dw CreditsText_f180b + dw CreditsText_Version + dw CreditsText_Tajiri + dw CreditsText_Oota + dw CreditsText_Morimoto + dw CreditsText_Watanabe + dw CreditsText_Masuda + dw CreditsText_Nishino + dw CreditsText_Sugimori + dw CreditsText_Nishida + dw CreditsText_Miyamoto + dw CreditsText_Kawaguchi + dw CreditsText_Ishihara + dw CreditsText_Yamauchi + dw CreditsText_Zinnai + dw CreditsText_Hishida + dw CreditsText_Sakai + dw CreditsText_Yamaguchi + dw CreditsText_Yamamoto + dw CreditsText_Taniguchi + dw CreditsText_Nonomura + dw CreditsText_Fuziwara + dw CreditsText_Matsusima + dw CreditsText_Tomisawa + dw CreditsText_Kawamoto + dw CreditsText_Kakei + dw CreditsText_Tsuchiya + dw CreditsText_Nakamura + dw CreditsText_Yuda + dw CreditsText_Pokemon + dw CreditsText_Director + dw CreditsText_Programmers + dw CreditsText_CharacterDesign + dw CreditsText_Music + dw CreditsText_SoundEffects + dw CreditsText_GameDesign + dw CreditsText_MonsterDesign + dw CreditsText_GameScenario + dw CreditsText_ParametricDesign + dw CreditsText_MapDesign + dw CreditsText_Testing + dw CreditsText_SpecialThanks + dw CreditsText_Producer + dw CreditsText_ExecutiveProducer + dw CreditsText_Tamada + dw CreditsText_Oota2 + dw CreditsText_Yoshikawa + dw CreditsText_Oota23 + dw CreditsText_Yoshida + dw CreditsText_Matsumita + dw CreditsText_Seya + dw CreditsText_Sekine + dw CreditsText_Shimamura + dw CreditsText_Shimoyamada + dw CreditsText_SuperMarioClub + dw CreditsText_Izushi + dw CreditsText_Nomura + dw CreditsText_Harada + dw CreditsText_Yamagami + dw CreditsText_Nishimura + dw CreditsText_Saeki + dw CreditsText_Fuzii + dw CreditsText_Shogakukan + dw CreditsText_Ootani + dw CreditsText_PikachuVoice + dw CreditsText_USStaff + dw CreditsText_USCoord + dw CreditsText_Tilden + dw CreditsText_Kawakami + dw CreditsText_Nakamura2 + dw CreditsText_Shoemake + dw CreditsText_Osborne + dw CreditsText_Translation + dw CreditsText_Ogasawara + dw CreditsText_Iwata + dw CreditsText_Izushi2 + dw CreditsText_Harada2 + dw CreditsText_Murakawa + dw CreditsText_Fukui + dw CreditsText_SuperMarioClub2 + dw CreditsText_Paad + dw CreditsText_Producers + dw CreditsText_Hosokawa + dw CreditsText_Okubo + dw CreditsText_Nakamichi + dw CreditsText_Yoshimura + dw CreditsText_Yamazaki -CreditsText_f128f: +CreditsText_Version: db -6, "YELLOW VERSION" next " STAFF@" -CreditsText_f12a9: +CreditsText_Tajiri: db -6, "SATOSHI TAJIRI@" -CreditsText_f12b9: +CreditsText_Oota: db -6, "TAKENORI OOTA@" -CreditsText_f12c8: +CreditsText_Morimoto: db -7, "SHIGEKI MORIMOTO@" -CreditsText_f12da: +CreditsText_Watanabe: db -7, "TETSUYA WATANABE@" -CreditsText_f12ec: +CreditsText_Masuda: db -6, "JUNICHI MASUDA@" -CreditsText_f12fc: +CreditsText_Nishino: db -5, "KOHJI NISHINO@" -CreditsText_f130b: +CreditsText_Sugimori: db -5, "KEN SUGIMORI@" -CreditsText_f1319: +CreditsText_Nishida: db -6, "ATSUKO NISHIDA@" -CreditsText_f1329: +CreditsText_Miyamoto: db -7, "SHIGERU MIYAMOTO@" -CreditsText_f133b: +CreditsText_Kawaguchi: db -8, "TAKASHI KAWAGUCHI@" -CreditsText_f134e: +CreditsText_Ishihara: db -8, "TSUNEKAZU ISHIHARA@" -CreditsText_f1362: +CreditsText_Yamauchi: db -7, "HIROSHI YAMAUCHI@" -CreditsText_f1374: +CreditsText_Zinnai: db -7, "HIROYUKI ZINNAI@" -CreditsText_f1385: +CreditsText_Hishida: db -7, "TATSUYA HISHIDA@" -CreditsText_f1396: +CreditsText_Sakai: db -6, "YASUHIRO SAKAI@" -CreditsText_f13a6: +CreditsText_Yamaguchi: db -7, "WATARU YAMAGUCHI@" -CreditsText_f13b8: +CreditsText_Yamamoto: db -8, "KAZUYUKI YAMAMOTO@" -CreditsText_f13cb: +CreditsText_Taniguchi: db -8, "RYOHSUKE TANIGUCHI@" -CreditsText_f13df: +CreditsText_Nonomura: db -8, "FUMIHIRO NONOMURA@" -CreditsText_f13f2: +CreditsText_Fuziwara: db -7, "MOTOFUMI FUZIWARA@" -CreditsText_f1405: +CreditsText_Matsusima: db -7, "KENJI MATSUSIMA@" -CreditsText_f1416: +CreditsText_Tomisawa: db -7, "AKIHITO TOMISAWA@" -CreditsText_f1428: +CreditsText_Kawamoto: db -7, "HIROSHI KAWAMOTO@" -CreditsText_f143a: +CreditsText_Kakei: db -6, "AKIYOSHI KAKEI@" -CreditsText_f144a: +CreditsText_Tsuchiya: db -7, "KAZUKI TSUCHIYA@" -CreditsText_f145b: +CreditsText_Nakamura: db -6, "TAKEO NAKAMURA@" -CreditsText_f146b: +CreditsText_Yuda: db -6, "MASAMITSU YUDA@" -CreditsText_f147b: +CreditsText_Pokemon: db -3, "#MON@" -CreditsText_f1481: +CreditsText_Director: db -3, "DIRECTOR@" -CreditsText_f148b: +CreditsText_Programmers: db -5, "PROGRAMMERS@" -CreditsText_f1498: +CreditsText_CharacterDesign: db -7, "CHARACTER DESIGN@" -CreditsText_f14aa: +CreditsText_Music: db -2, "MUSIC@" -CreditsText_f14b1: +CreditsText_SoundEffects: db -6, "SOUND EFFECTS@" -CreditsText_f14c0: +CreditsText_GameDesign: db -5, "GAME DESIGN@" -CreditsText_f14cd: +CreditsText_MonsterDesign: db -6, "MONSTER DESIGN@" -CreditsText_f14dd: +CreditsText_GameScenario: db -6, "GAME SCENARIO@" -CreditsText_f14ec: +CreditsText_ParametricDesign: db -7, "PARAMETRIC DESIGN@" -CreditsText_f14ff: +CreditsText_MapDesign: db -4, "MAP DESIGN@" -CreditsText_f150b: +CreditsText_Testing: db -6, "PRODUCT TESTING@" -CreditsText_f151c: +CreditsText_SpecialThanks: db -6, "SPECIAL THANKS@" -CreditsText_f152c: +CreditsText_Producers: db -4, "PRODUCERS@" -CreditsText_f1537: +CreditsText_Producer: db -3, "PRODUCER@" -CreditsText_f1541: +CreditsText_ExecutiveProducer: db -8, "EXECUTIVE PRODUCER@" -CreditsText_f1555: +CreditsText_Tamada: db -6, "SOUSUKE TAMADA@" -CreditsText_f1565: +CreditsText_Oota2: db -5, "SATOSHI OOTA@" -CreditsText_f1573: +CreditsText_Yoshikawa: db -6, "RENA YOSHIKAWA@" -CreditsText_f1583: +CreditsText_Oota23: db -6, "TOMOMICHI OOTA@" -CreditsText_f1593: +CreditsText_Matsumita: db -8, "TOSHINOBU MATSUMIYA@" -CreditsText_f15a8: +CreditsText_Seya: db -5, "NOBUHIRO SEYA@" -CreditsText_f15b7: +CreditsText_Yoshida: db -7, "HIRONOBU YOSHIDA@" -CreditsText_f15c9: +CreditsText_Sekine: db -6, "KAZUHITO SEKINE@" -CreditsText_f15da: +CreditsText_Shimamura: db -7, "KAZUSHI SHIMAMURA@" -CreditsText_f15ed: +CreditsText_Shimoyamada: db -9, "TERUYUKI SHIMOYAMADA@" -CreditsText_f1603: +CreditsText_SuperMarioClub: db -9, "NCL SUPER MARIO CLUB@" -CreditsText_f1619: +CreditsText_Izushi: db -7, "TAKEHIRO IZUSHI@" -CreditsText_f162a: +CreditsText_Nomura: db -5, "FUZIKO NOMURA@" -CreditsText_f1639: +CreditsText_Harada: db -6, "TAKAHIRO HARADA@" -CreditsText_f164a: +CreditsText_Yamagami: db -7, "HITOSHI YAMAGAMI@" -CreditsText_f165c: +CreditsText_Nishimura: db -8, "KENTAROU NISHIMURA@" -CreditsText_f1670: +CreditsText_Saeki: db -5, "NAOKO SAEKI@" -CreditsText_f167d: +CreditsText_Fuzii: db -5, "TAKAYA FUZII@" -CreditsText_f168b: +CreditsText_Shogakukan: db -4, "SHOGAKUKAN" next "PRODUCTION@" -CreditsText_f16a2: +CreditsText_Ootani: db -5, "IKUE OOTANI@" -CreditsText_f16af: +CreditsText_PikachuVoice: db -6, "PIKACHU VOICE@" db -3, "××××××××@" -CreditsText_f16c8: +CreditsText_USStaff: db -7, "US VERSION STAFF@" -CreditsText_f16da: +CreditsText_USCoord: db -7, "US COORDINATION@" -CreditsText_f16eb: +CreditsText_Tilden: db -5, "GAIL TILDEN@" -CreditsText_f16f8: +CreditsText_Kawakami: db -6, "NAOKO KAWAKAMI@" -CreditsText_f1708: +CreditsText_Nakamura2: db -6, "HIRO NAKAMURA@" -CreditsText_f1717: +CreditsText_Shoemake: db -6, "RANDY SHOEMAKE@" -CreditsText_f1727: +CreditsText_Osborne: db -5, "SARA OSBORNE@" -CreditsText_f1735: +CreditsText_Translation: db -7, "TEXT TRANSLATION@" -CreditsText_f1747: +CreditsText_Ogasawara: db -6, "NOB OGASAWARA@" -CreditsText_f1756: +CreditsText_Iwata: db -5, "SATORU IWATA@" -CreditsText_f1764: +CreditsText_Izushi2: db -7, "TAKEHIRO IZUSHI@" -CreditsText_f1775: +CreditsText_Harada2: db -7, "TAKAHIRO HARADA@" -CreditsText_f1786: +CreditsText_Murakawa: db -7, "TERUKI MURAKAWA@" -CreditsText_f1797: +CreditsText_Fukui: db -5, "KOHTA FUKUI@" -CreditsText_f17a4: +CreditsText_SuperMarioClub2: db -9, "NCL SUPER MARIO CLUB@" -CreditsText_f17ba: +CreditsText_Paad: db -5, "PAAD TESTING@" -CreditsText_f17c8: +CreditsText_Hosokawa: db -8, "TAKEHIKO HOSOKAWA@" -CreditsText_f17db: +CreditsText_Okubo: db -5, "KENJI OKUBO@" -CreditsText_f17e8: +CreditsText_Nakamichi: db -7, "KIMIKO NAKAMICHI@" -CreditsText_f17fa: +CreditsText_Yoshimura: db -6, "KAMON YOSHIMURA@" -CreditsText_f180b: +CreditsText_Yamazaki: db -6, "SAKAE YAMAZAKI@" -- cgit v1.2.3 From 0eed04e6a66df8bef77956e7d7977851ca3a1e7a Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Fri, 27 May 2016 17:58:43 -0400 Subject: Route 21 and Cinnabar Island --- data/map_header_banks.asm | 4 ++-- data/map_header_pointers.asm | 4 ++-- main.asm | 23 ++++++++++++++++------- 3 files changed, 20 insertions(+), 11 deletions(-) diff --git a/data/map_header_banks.asm b/data/map_header_banks.asm index 1dd37cd6..e75d32b5 100644 --- a/data/map_header_banks.asm +++ b/data/map_header_banks.asm @@ -8,7 +8,7 @@ MapHeaderBanks:: ; fc3e4 (3f:43e4) db BANK(VermilionCity_h) ; VERMILION_CITY db BANK(CeladonCity_h) ; CELADON_CITY db $06 ; db BANK(FuchsiaCity_h) ; FUCHSIA_CITY - db $07 ; db BANK(CinnabarIsland_h) ; CINNABAR_ISLAND + db BANK(CinnabarIsland_h) ; CINNABAR_ISLAND db BANK(IndigoPlateau_h) ; INDIGO_PLATEAU db BANK(SaffronCity_h) ; SAFFRON_CITY db $01 ; unused @@ -32,7 +32,7 @@ MapHeaderBanks:: ; fc3e4 (3f:43e4) db $16 ; db BANK(Route18_h) ; ROUTE_18 db $15 ; db BANK(Route19_h) ; ROUTE_19 db $14 ; db BANK(Route20_h) ; ROUTE_20 - db $15 ; db BANK(Route21_h) ; ROUTE_21 + db BANK(Route21_h) ; ROUTE_21 db BANK(Route22_h) ; ROUTE_22 db BANK(Route23_h) ; ROUTE_23 db BANK(Route24_h) ; ROUTE_24 diff --git a/data/map_header_pointers.asm b/data/map_header_pointers.asm index 7aed33ae..0de20020 100644 --- a/data/map_header_pointers.asm +++ b/data/map_header_pointers.asm @@ -8,7 +8,7 @@ MapHeaderPointers:: ; fc1f2 (3f:41f2) dw VermilionCity_h dw CeladonCity_h dw $4bb3 ; dw FuchsiaCity_h - dw $4000 ; dw CinnabarIsland_h + dw CinnabarIsland_h dw IndigoPlateau_h dw SaffronCity_h dw SaffronCity_h @@ -32,7 +32,7 @@ MapHeaderPointers:: ; fc1f2 (3f:41f2) dw $4c38 ; dw Route18_h dw $4e80 ; dw Route19_h dw $40f1 ; dw Route20_h - dw $500f ; dw Route21_h + dw Route21_h dw Route22_h dw Route23_h dw Route24_h diff --git a/main.asm b/main.asm index cb5b2c45..5c85df92 100755 --- a/main.asm +++ b/main.asm @@ -277,9 +277,8 @@ INCLUDE "engine/overworld/doors.asm" INCLUDE "engine/overworld/ledges.asm" SECTION "bank07",ROMX,BANK[$07] -; INCLUDE "data/mapHeaders/cinnabarisland.asm" -; INCLUDE "data/mapObjects/cinnabarisland.asm" - dr $1c000,$1c069 ; headers, objects, blocks +INCLUDE "data/mapHeaders/cinnabarisland.asm" +INCLUDE "data/mapObjects/cinnabarisland.asm" CinnabarIslandBlocks: INCBIN "maps/cinnabarisland.blk" @@ -292,7 +291,8 @@ INCBIN "maps/route1.blk" INCLUDE "engine/clear_save.asm" INCLUDE "engine/predefs7.asm" - dr $1c2c2,$1c358 ; map scripts +INCLUDE "scripts/cinnabarisland.asm" + ; dr $1c2c2,$1c358 ; map scripts INCLUDE "scripts/route1.asm" dr $1c386,$1e2ae ; map scripts @@ -780,7 +780,11 @@ INCLUDE "data/mapHeaders/route22.asm" INCLUDE "data/mapObjects/route22.asm" Route22Blocks: INCBIN "maps/route22.blk" - dr $500f1,$5033f +; INCLUDE "data/mapHeaders/route20.asm" +; INCLUDE "data/mapObjects/route20.asm" + dr $500f1,$5017d +Route20Blocks: +INCBIN "maps/route20.blk" INCLUDE "data/mapHeaders/route23.asm" INCLUDE "data/mapObjects/route23.asm" @@ -809,6 +813,7 @@ INCLUDE "data/mapObjects/saffroncity.asm" SaffronCityBlocks: ; 50a98 (14:4a98) INCBIN "maps/saffroncity.blk" INCLUDE "scripts/saffroncity.asm" +; INCLUDE "scripts/route20.asm" dr $50ca9,$50eb2 INCLUDE "scripts/route22.asm" INCLUDE "scripts/route23.asm" @@ -853,7 +858,9 @@ INCBIN "maps/route5.blk" dr $5468e,$54706 Route9Blocks: ; 54706 INCBIN "maps/route9.blk" - dr $54814,$5507d + dr $54814,$5500f +INCLUDE "data/mapHeaders/route21.asm" +INCLUDE "data/mapObjects/route21.asm" Route21Blocks: ; 5507d INCBIN "maps/route21.blk" dr $5523f,$5525f @@ -864,7 +871,9 @@ INCLUDE "scripts/route2.asm" INCLUDE "scripts/route3.asm" INCLUDE "scripts/route4.asm" INCLUDE "scripts/route5.asm" - dr $556d0,$56714 + dr $556d0,$55edb +INCLUDE "scripts/route21.asm" + dr $56054,$56714 INCLUDE "engine/menu/diploma_1.asm" -- cgit v1.2.3 From d9e7b91cb3a77891901974f65104dca2fc286ab7 Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Fri, 27 May 2016 18:13:32 -0400 Subject: Route 20 scripts and route 19 blocks --- constants/hide_show_constants.asm | 2 ++ data/map_header_banks.asm | 2 +- data/map_header_pointers.asm | 2 +- main.asm | 12 ++++++------ maps/route19.blk | 2 +- 5 files changed, 11 insertions(+), 9 deletions(-) diff --git a/constants/hide_show_constants.asm b/constants/hide_show_constants.asm index db37b9d9..fc8ab90f 100755 --- a/constants/hide_show_constants.asm +++ b/constants/hide_show_constants.asm @@ -226,6 +226,8 @@ const_value SET $7c ; idk anymore lol const HS_VICTORY_ROAD_1_ITEM_1 ; D6 const HS_VICTORY_ROAD_1_ITEM_2 ; D7 const HS_CHAMPIONS_ROOM_OAK ; D8 + +const_value SET $df const HS_SEAFOAM_ISLANDS_1_BOULDER_1 ; D9 const HS_SEAFOAM_ISLANDS_1_BOULDER_2 ; DA const HS_SEAFOAM_ISLANDS_2_BOULDER_1 ; DB diff --git a/data/map_header_banks.asm b/data/map_header_banks.asm index e75d32b5..a9de3dff 100644 --- a/data/map_header_banks.asm +++ b/data/map_header_banks.asm @@ -31,7 +31,7 @@ MapHeaderBanks:: ; fc3e4 (3f:43e4) db $15 ; db BANK(Route17_h) ; ROUTE_17 db $16 ; db BANK(Route18_h) ; ROUTE_18 db $15 ; db BANK(Route19_h) ; ROUTE_19 - db $14 ; db BANK(Route20_h) ; ROUTE_20 + db BANK(Route20_h) ; ROUTE_20 db BANK(Route21_h) ; ROUTE_21 db BANK(Route22_h) ; ROUTE_22 db BANK(Route23_h) ; ROUTE_23 diff --git a/data/map_header_pointers.asm b/data/map_header_pointers.asm index 0de20020..d6672bbe 100644 --- a/data/map_header_pointers.asm +++ b/data/map_header_pointers.asm @@ -31,7 +31,7 @@ MapHeaderPointers:: ; fc1f2 (3f:41f2) dw $4b28 ; dw Route17_h dw $4c38 ; dw Route18_h dw $4e80 ; dw Route19_h - dw $40f1 ; dw Route20_h + dw Route20_h dw Route21_h dw Route22_h dw Route23_h diff --git a/main.asm b/main.asm index 5c85df92..b988997b 100755 --- a/main.asm +++ b/main.asm @@ -780,9 +780,8 @@ INCLUDE "data/mapHeaders/route22.asm" INCLUDE "data/mapObjects/route22.asm" Route22Blocks: INCBIN "maps/route22.blk" -; INCLUDE "data/mapHeaders/route20.asm" -; INCLUDE "data/mapObjects/route20.asm" - dr $500f1,$5017d +INCLUDE "data/mapHeaders/route20.asm" +INCLUDE "data/mapObjects/route20.asm" Route20Blocks: INCBIN "maps/route20.blk" @@ -813,8 +812,7 @@ INCLUDE "data/mapObjects/saffroncity.asm" SaffronCityBlocks: ; 50a98 (14:4a98) INCBIN "maps/saffroncity.blk" INCLUDE "scripts/saffroncity.asm" -; INCLUDE "scripts/route20.asm" - dr $50ca9,$50eb2 +INCLUDE "scripts/route20.asm" INCLUDE "scripts/route22.asm" INCLUDE "scripts/route23.asm" INCLUDE "scripts/route24.asm" @@ -858,7 +856,9 @@ INCBIN "maps/route5.blk" dr $5468e,$54706 Route9Blocks: ; 54706 INCBIN "maps/route9.blk" - dr $54814,$5500f + dr $54814,$54f01 +Route19Blocks: +INCBIN "maps/route19.blk" INCLUDE "data/mapHeaders/route21.asm" INCLUDE "data/mapObjects/route21.asm" Route21Blocks: ; 5507d diff --git a/maps/route19.blk b/maps/route19.blk index 0bd469e7..3fc58494 100644 --- a/maps/route19.blk +++ b/maps/route19.blk @@ -1 +1 @@ -(,)(,)(,)$W%$W%CCC11111CCk1111kkCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCkkkkkkkkk \ No newline at end of file +(,)(,)(,)$W%$W%CCC11111CCC111CCk1111kkCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCkkkkkkkkk \ No newline at end of file -- cgit v1.2.3 From 7caa8c4be0a77083a445a1b1d2ace4031f5cb4f0 Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Fri, 27 May 2016 18:33:42 -0400 Subject: Route 19 --- data/mapObjects/route19.asm | 17 ++++++++++------- data/map_header_banks.asm | 2 +- data/map_header_pointers.asm | 2 +- main.asm | 11 +++++++---- scripts/route19.asm | 30 +++++++++++------------------- 5 files changed, 30 insertions(+), 32 deletions(-) diff --git a/data/mapObjects/route19.asm b/data/mapObjects/route19.asm index 7377e1e6..ec2b8774 100755 --- a/data/mapObjects/route19.asm +++ b/data/mapObjects/route19.asm @@ -9,13 +9,16 @@ Route19Object: ; 0x54e9a (size=87) db $a ; objects - object SPRITE_BLACK_HAIR_BOY_1, $9, $7, STAY, RIGHT, 1, OPP_SWIMMER, 2 - object SPRITE_BLACK_HAIR_BOY_1, $c, $9, STAY, LEFT, 2, OPP_SWIMMER, 3 - object SPRITE_SWIMMER, $9, $d, STAY, DOWN, $6, OPP_SWIMMER, $7 - object SPRITE_SWIMMER, $8, $2b, STAY, LEFT, $7, OPP_BEAUTY, $c - object SPRITE_SWIMMER, $b, $2b, STAY, RIGHT, $8, OPP_BEAUTY, $d - object SPRITE_SWIMMER, $9, $2a, STAY, UP, $9, OPP_SWIMMER, $8 - object SPRITE_SWIMMER, $a, $2c, STAY, DOWN, $a, OPP_BEAUTY, $e + object SPRITE_BLACK_HAIR_BOY_1, $09, $07, STAY, RIGHT, $1, OPP_SWIMMER, $2 + object SPRITE_BLACK_HAIR_BOY_1, $0c, $09, STAY, LEFT, $2, OPP_SWIMMER, $3 + object SPRITE_SWIMMER, $0d, $19, STAY, LEFT, $3, OPP_SWIMMER, $4 + object SPRITE_SWIMMER, $04, $1b, STAY, RIGHT, $4, OPP_SWIMMER, $5 + object SPRITE_SWIMMER, $10, $1f, STAY, UP, $5, OPP_SWIMMER, $6 + object SPRITE_SWIMMER, $09, $0d, STAY, DOWN, $6, OPP_SWIMMER, $7 + object SPRITE_SWIMMER, $08, $2b, STAY, LEFT, $7, OPP_BEAUTY, $c + object SPRITE_SWIMMER, $0b, $2b, STAY, RIGHT, $8, OPP_BEAUTY, $d + object SPRITE_SWIMMER, $09, $2a, STAY, UP, $9, OPP_SWIMMER, $8 + object SPRITE_SWIMMER, $0a, $2c, STAY, DOWN, $a, OPP_BEAUTY, $e ; warp-to EVENT_DISP ROUTE_19_WIDTH, $9, $5 ; BEACH_HOUSE diff --git a/data/map_header_banks.asm b/data/map_header_banks.asm index a9de3dff..22b939d6 100644 --- a/data/map_header_banks.asm +++ b/data/map_header_banks.asm @@ -30,7 +30,7 @@ MapHeaderBanks:: ; fc3e4 (3f:43e4) db $16 ; db BANK(Route16_h) ; ROUTE_16 db $15 ; db BANK(Route17_h) ; ROUTE_17 db $16 ; db BANK(Route18_h) ; ROUTE_18 - db $15 ; db BANK(Route19_h) ; ROUTE_19 + db BANK(Route19_h) ; ROUTE_19 db BANK(Route20_h) ; ROUTE_20 db BANK(Route21_h) ; ROUTE_21 db BANK(Route22_h) ; ROUTE_22 diff --git a/data/map_header_pointers.asm b/data/map_header_pointers.asm index d6672bbe..7ac1d910 100644 --- a/data/map_header_pointers.asm +++ b/data/map_header_pointers.asm @@ -30,7 +30,7 @@ MapHeaderPointers:: ; fc1f2 (3f:41f2) dw $4ada ; dw Route16_h dw $4b28 ; dw Route17_h dw $4c38 ; dw Route18_h - dw $4e80 ; dw Route19_h + dw Route19_h dw Route20_h dw Route21_h dw Route22_h diff --git a/main.asm b/main.asm index b988997b..8eaf7c9a 100755 --- a/main.asm +++ b/main.asm @@ -256,10 +256,10 @@ INCLUDE "data/mapHeaders/vermilioncity.asm" INCLUDE "data/mapObjects/vermilioncity.asm" VermilionCityBlocks: INCBIN "maps/vermilioncity.blk" - dr $18bb3,$18dfa ; headers, objects, blocks + dr $18bb3,$18c92 ; headers, objects, blocks ; INCLUDE "data/mapHeaders/fuchsiacity.asm" ; INCLUDE "data/mapObjects/fuchsiacity.asm" -; FuchsiaCityBlocks: INCBIN "maps/fuchsiacity.blk" +FuchsiaCityBlocks: INCBIN "maps/fuchsiacity.blk" INCLUDE "scripts/pallettown.asm" @@ -856,7 +856,9 @@ INCBIN "maps/route5.blk" dr $5468e,$54706 Route9Blocks: ; 54706 INCBIN "maps/route9.blk" - dr $54814,$54f01 + dr $54814,$54e80 +INCLUDE "data/mapHeaders/route19.asm" +INCLUDE "data/mapObjects/route19.asm" Route19Blocks: INCBIN "maps/route19.blk" INCLUDE "data/mapHeaders/route21.asm" @@ -871,7 +873,8 @@ INCLUDE "scripts/route2.asm" INCLUDE "scripts/route3.asm" INCLUDE "scripts/route4.asm" INCLUDE "scripts/route5.asm" - dr $556d0,$55edb + dr $556d0,$55d58 +INCLUDE "scripts/route19.asm" INCLUDE "scripts/route21.asm" dr $56054,$56714 diff --git a/scripts/route19.asm b/scripts/route19.asm index 4a60e40f..9ed6080b 100755 --- a/scripts/route19.asm +++ b/scripts/route19.asm @@ -37,7 +37,7 @@ Route19TrainerHeader0: ; 55d73 (15:5d73) Route19TrainerHeader1: ; 55d7f (15:5d7f) dbEventFlagBit EVENT_BEAT_ROUTE_19_TRAINER_1 - db ($3 << 4) ; trainer's view range + db ($4 << 4) ; trainer's view range dwEventFlagAddress EVENT_BEAT_ROUTE_19_TRAINER_1 dw Route19BattleText2 ; TextBeforeBattle dw Route19AfterBattleText2 ; TextAfterBattle @@ -121,60 +121,52 @@ Route19TrainerHeader9: ; 55ddf (15:5ddf) Route19Text1: ; 55dec (15:5dec) TX_ASM ld hl, Route19TrainerHeader0 - call TalkToTrainer - jp TextScriptEnd + jr Route19_TalkToTrainer Route19Text2: ; 55df6 (15:5df6) TX_ASM ld hl, Route19TrainerHeader1 - call TalkToTrainer - jp TextScriptEnd + jr Route19_TalkToTrainer Route19Text3: ; 55e00 (15:5e00) TX_ASM ld hl, Route19TrainerHeader2 - call TalkToTrainer - jp TextScriptEnd + jr Route19_TalkToTrainer Route19Text4: ; 55e0a (15:5e0a) TX_ASM ld hl, Route19TrainerHeader3 - call TalkToTrainer - jp TextScriptEnd + jr Route19_TalkToTrainer Route19Text5: ; 55e14 (15:5e14) TX_ASM ld hl, Route19TrainerHeader4 - call TalkToTrainer - jp TextScriptEnd + jr Route19_TalkToTrainer Route19Text6: ; 55e1e (15:5e1e) TX_ASM ld hl, Route19TrainerHeader5 - call TalkToTrainer - jp TextScriptEnd + jr Route19_TalkToTrainer Route19Text7: ; 55e28 (15:5e28) TX_ASM ld hl, Route19TrainerHeader6 - call TalkToTrainer - jp TextScriptEnd + jr Route19_TalkToTrainer Route19Text8: ; 55e32 (15:5e32) TX_ASM ld hl, Route19TrainerHeader7 - call TalkToTrainer - jp TextScriptEnd + jr Route19_TalkToTrainer Route19Text9: ; 55e3c (15:5e3c) TX_ASM ld hl, Route19TrainerHeader8 - call TalkToTrainer - jp TextScriptEnd + jr Route19_TalkToTrainer Route19Text10: ; 55e46 (15:5e46) TX_ASM ld hl, Route19TrainerHeader9 +Route19_TalkToTrainer: call TalkToTrainer jp TextScriptEnd -- cgit v1.2.3 From f23133ddcc6cb4ec5f974139cd8193b27d146733 Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Fri, 27 May 2016 18:57:15 -0400 Subject: Fuchsia City --- constants/event_constants.asm | 4 ++-- data/mapObjects/fuchsiacity.asm | 2 +- data/map_header_banks.asm | 2 +- data/map_header_pointers.asm | 2 +- main.asm | 21 ++++++++++++--------- 5 files changed, 17 insertions(+), 14 deletions(-) diff --git a/constants/event_constants.asm b/constants/event_constants.asm index b0c67e4b..7fc3b509 100644 --- a/constants/event_constants.asm +++ b/constants/event_constants.asm @@ -1400,13 +1400,13 @@ const_value = 0 const EVENT_BEAT_MT_MOON_1_TRAINER_5 ; 575, (D7F5, bit 5) const EVENT_BEAT_MT_MOON_1_TRAINER_6 ; 576, (D7F5, bit 6) const EVENT_BEAT_MT_MOON_1_TRAINER_7 ; 577, (D7F5, bit 7) - const EVENT_578 ; 578, (D7F6, bit 0) + const EVENT_GOT_DOME_FOSSIL ; 578, (D7F6, bit 0) const EVENT_BEAT_MT_MOON_EXIT_SUPER_NERD ; 579, (D7F6, bit 1) const EVENT_BEAT_MT_MOON_3_TRAINER_0 ; 57A, (D7F6, bit 2) const EVENT_BEAT_MT_MOON_3_TRAINER_2 ; 57B, (D7F6, bit 3) const EVENT_BEAT_MT_MOON_3_TRAINER_3 ; 57C, (D7F6, bit 4) const EVENT_BEAT_MT_MOON_3_TRAINER_4 ; 57D, (D7F6, bit 5) - const EVENT_GOT_DOME_FOSSIL ; 57E, (D7F6, bit 6) + const EVENT_57E ; 57E, (D7F6, bit 6) const EVENT_GOT_HELIX_FOSSIL ; 57F, (D7F6, bit 7) const EVENT_580 ; 580, (D7F7, bit 0) const EVENT_581 ; 581, (D7F7, bit 1) diff --git a/data/mapObjects/fuchsiacity.asm b/data/mapObjects/fuchsiacity.asm index 85f801d9..c64760c0 100755 --- a/data/mapObjects/fuchsiacity.asm +++ b/data/mapObjects/fuchsiacity.asm @@ -33,7 +33,7 @@ FuchsiaCityObject: ; 0x18bd4 (size=178) object SPRITE_GAMBLER, $1c, $11, WALK, $2, $2 ; person object SPRITE_FISHER2, $1e, $e, STAY, DOWN, $3 ; person object SPRITE_BUG_CATCHER, $18, $8, STAY, UP, $4 ; person - object SPRITE_CLEFAIRY, $1f, $5, WALK, $0, $5 ; person + object SPRITE_CHANSEY, $1f, $5, STAY, DOWN, $5 ; person object SPRITE_BALL, $19, $6, STAY, NONE, $6 ; person object SPRITE_SLOWBRO, $c, $6, WALK, $2, $7 ; person object SPRITE_SLOWBRO, $1e, $c, WALK, $2, $8 ; person diff --git a/data/map_header_banks.asm b/data/map_header_banks.asm index 22b939d6..cf1ca6cc 100644 --- a/data/map_header_banks.asm +++ b/data/map_header_banks.asm @@ -7,7 +7,7 @@ MapHeaderBanks:: ; fc3e4 (3f:43e4) db $11 ; db BANK(LavenderTown_h) ; LAVENDER_TOWN db BANK(VermilionCity_h) ; VERMILION_CITY db BANK(CeladonCity_h) ; CELADON_CITY - db $06 ; db BANK(FuchsiaCity_h) ; FUCHSIA_CITY + db BANK(FuchsiaCity_h) ; FUCHSIA_CITY db BANK(CinnabarIsland_h) ; CINNABAR_ISLAND db BANK(IndigoPlateau_h) ; INDIGO_PLATEAU db BANK(SaffronCity_h) ; SAFFRON_CITY diff --git a/data/map_header_pointers.asm b/data/map_header_pointers.asm index 7ac1d910..adec78bc 100644 --- a/data/map_header_pointers.asm +++ b/data/map_header_pointers.asm @@ -7,7 +7,7 @@ MapHeaderPointers:: ; fc1f2 (3f:41f2) dw $4000 ; dw LavenderTown_h dw VermilionCity_h dw CeladonCity_h - dw $4bb3 ; dw FuchsiaCity_h + dw FuchsiaCity_h dw CinnabarIsland_h dw IndigoPlateau_h dw SaffronCity_h diff --git a/main.asm b/main.asm index 8eaf7c9a..d5da1a30 100755 --- a/main.asm +++ b/main.asm @@ -255,10 +255,8 @@ CeruleanCityBlocks: INCBIN "maps/ceruleancity.blk" ; 18836 INCLUDE "data/mapHeaders/vermilioncity.asm" INCLUDE "data/mapObjects/vermilioncity.asm" VermilionCityBlocks: INCBIN "maps/vermilioncity.blk" - - dr $18bb3,$18c92 ; headers, objects, blocks -; INCLUDE "data/mapHeaders/fuchsiacity.asm" -; INCLUDE "data/mapObjects/fuchsiacity.asm" +INCLUDE "data/mapHeaders/fuchsiacity.asm" +INCLUDE "data/mapObjects/fuchsiacity.asm" FuchsiaCityBlocks: INCBIN "maps/fuchsiacity.blk" @@ -268,9 +266,8 @@ INCLUDE "scripts/pewtercity.asm" INCLUDE "scripts/ceruleancity.asm" INCLUDE "scripts/vermilioncity.asm" INCLUDE "scripts/celadoncity.asm" - - dr $19b2b,$1a4ea -; INCLUDE "scripts/fuchsiacity.asm" +INCLUDE "scripts/fuchsiacity.asm" + dr $19c2f,$1a4ea INCLUDE "engine/overworld/npc_movement.asm" INCLUDE "engine/overworld/doors.asm" @@ -895,10 +892,16 @@ INCBIN "maps/route8.blk" dr $582d4,$5855f Route11Blocks: ; 5854f INCBIN "maps/route11.blk" - dr $5866d,$58b84 + dr $5866d,$589cc +Route15Blocks: +INCBIN "maps/route15.blk" + dr $58ada,$58b84 Route16Blocks: ; 58b84 INCBIN "maps/route16.blk" - dr $58c38,$58d99 + dr $58c38,$58c9c +Route18Blocks: +INCBIN "maps/route18.blk" + dr $58d7d,$58d99 INCLUDE "engine/experience.asm" -- cgit v1.2.3 From f0125912eaf67644a7c32c18a0ba6940469ee1bb Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Fri, 27 May 2016 19:11:47 -0400 Subject: Route 18 scripts --- data/mapObjects/route18.asm | 4 ++-- data/map_header_banks.asm | 2 +- data/map_header_pointers.asm | 2 +- main.asm | 14 +++++++++++--- scripts/route18.asm | 1 + 5 files changed, 16 insertions(+), 7 deletions(-) diff --git a/data/mapObjects/route18.asm b/data/mapObjects/route18.asm index 88547941..40b50b08 100755 --- a/data/mapObjects/route18.asm +++ b/data/mapObjects/route18.asm @@ -3,9 +3,9 @@ Route18Object: ; 0x58c5a (size=66) db $4 ; warps db $8, $21, $0, ROUTE_18_GATE_1F - db $9, $21, $1, ROUTE_18_GATE_1F + db $9, $21, $0, ROUTE_18_GATE_1F db $8, $28, $2, ROUTE_18_GATE_1F - db $9, $28, $3, ROUTE_18_GATE_1F + db $9, $28, $2, ROUTE_18_GATE_1F db $2 ; signs db $7, $2b, $4 ; Route18Text4 diff --git a/data/map_header_banks.asm b/data/map_header_banks.asm index cf1ca6cc..214f2466 100644 --- a/data/map_header_banks.asm +++ b/data/map_header_banks.asm @@ -29,7 +29,7 @@ MapHeaderBanks:: ; fc3e4 (3f:43e4) db $16 ; db BANK(Route15_h) ; ROUTE_15 db $16 ; db BANK(Route16_h) ; ROUTE_16 db $15 ; db BANK(Route17_h) ; ROUTE_17 - db $16 ; db BANK(Route18_h) ; ROUTE_18 + db BANK(Route18_h) ; ROUTE_18 db BANK(Route19_h) ; ROUTE_19 db BANK(Route20_h) ; ROUTE_20 db BANK(Route21_h) ; ROUTE_21 diff --git a/data/map_header_pointers.asm b/data/map_header_pointers.asm index adec78bc..8418f195 100644 --- a/data/map_header_pointers.asm +++ b/data/map_header_pointers.asm @@ -29,7 +29,7 @@ MapHeaderPointers:: ; fc1f2 (3f:41f2) dw $492c ; dw Route15_h dw $4ada ; dw Route16_h dw $4b28 ; dw Route17_h - dw $4c38 ; dw Route18_h + dw Route18_h dw Route19_h dw Route20_h dw Route21_h diff --git a/main.asm b/main.asm index d5da1a30..2a6fac02 100755 --- a/main.asm +++ b/main.asm @@ -853,7 +853,11 @@ INCBIN "maps/route5.blk" dr $5468e,$54706 Route9Blocks: ; 54706 INCBIN "maps/route9.blk" - dr $54814,$54e80 + + dr $54814,$54bb0 +Route17Blocks: +INCBIN "maps/route17.blk" + INCLUDE "data/mapHeaders/route19.asm" INCLUDE "data/mapObjects/route19.asm" Route19Blocks: @@ -898,7 +902,9 @@ INCBIN "maps/route15.blk" dr $58ada,$58b84 Route16Blocks: ; 58b84 INCBIN "maps/route16.blk" - dr $58c38,$58c9c + +INCLUDE "data/mapHeaders/route18.asm" +INCLUDE "data/mapObjects/route18.asm" Route18Blocks: INCBIN "maps/route18.blk" dr $58d7d,$58d99 @@ -910,7 +916,9 @@ INCLUDE "engine/status_ailments.asm" INCLUDE "engine/overworld/oaks_aide.asm" INCLUDE "scripts/route6.asm" - dr $59052,$5a53a + dr $59052,$59963 +INCLUDE "scripts/route18.asm" + dr $59a00,$5a53a INCLUDE "engine/overworld/saffron_guards.asm" diff --git a/scripts/route18.asm b/scripts/route18.asm index 9a077faf..9544b1ec 100755 --- a/scripts/route18.asm +++ b/scripts/route18.asm @@ -110,3 +110,4 @@ Route18Text4: ; 59b5a (16:5b5a) Route18Text5: ; 59b5f (16:5b5f) TX_FAR _Route18Text5 db "@" +; 59b64 -- cgit v1.2.3 From 78c0b78c55efb97739b060801aea89bf1ac3adc0 Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Fri, 27 May 2016 19:15:16 -0400 Subject: Route 17... that was easy --- data/map_header_banks.asm | 2 +- data/map_header_pointers.asm | 2 +- main.asm | 8 ++++++-- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/data/map_header_banks.asm b/data/map_header_banks.asm index 214f2466..1e99ee16 100644 --- a/data/map_header_banks.asm +++ b/data/map_header_banks.asm @@ -28,7 +28,7 @@ MapHeaderBanks:: ; fc3e4 (3f:43e4) db $15 ; db BANK(Route14_h) ; ROUTE_14 db $16 ; db BANK(Route15_h) ; ROUTE_15 db $16 ; db BANK(Route16_h) ; ROUTE_16 - db $15 ; db BANK(Route17_h) ; ROUTE_17 + db BANK(Route17_h) ; ROUTE_17 db BANK(Route18_h) ; ROUTE_18 db BANK(Route19_h) ; ROUTE_19 db BANK(Route20_h) ; ROUTE_20 diff --git a/data/map_header_pointers.asm b/data/map_header_pointers.asm index 8418f195..18a0e9c7 100644 --- a/data/map_header_pointers.asm +++ b/data/map_header_pointers.asm @@ -28,7 +28,7 @@ MapHeaderPointers:: ; fc1f2 (3f:41f2) dw $49a1 ; dw Route14_h dw $492c ; dw Route15_h dw $4ada ; dw Route16_h - dw $4b28 ; dw Route17_h + dw Route17_h dw Route18_h dw Route19_h dw Route20_h diff --git a/main.asm b/main.asm index 2a6fac02..0779c8cd 100755 --- a/main.asm +++ b/main.asm @@ -854,7 +854,10 @@ INCBIN "maps/route5.blk" Route9Blocks: ; 54706 INCBIN "maps/route9.blk" - dr $54814,$54bb0 + dr $54814,$54b28 + +INCLUDE "data/mapHeaders/route17.asm" +INCLUDE "data/mapObjects/route17.asm" Route17Blocks: INCBIN "maps/route17.blk" @@ -874,7 +877,8 @@ INCLUDE "scripts/route2.asm" INCLUDE "scripts/route3.asm" INCLUDE "scripts/route4.asm" INCLUDE "scripts/route5.asm" - dr $556d0,$55d58 + dr $556d0,$55b8e +INCLUDE "scripts/route17.asm" INCLUDE "scripts/route19.asm" INCLUDE "scripts/route21.asm" dr $56054,$56714 -- cgit v1.2.3 From d4a0fe908ffae83fd0be6f820df0780f727f2e4b Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Fri, 27 May 2016 19:18:01 -0400 Subject: Route 16 --- data/mapObjects/route16.asm | 8 ++++---- data/map_header_banks.asm | 2 +- data/map_header_pointers.asm | 2 +- main.asm | 7 +++++-- 4 files changed, 11 insertions(+), 8 deletions(-) diff --git a/data/mapObjects/route16.asm b/data/mapObjects/route16.asm index 600dbbf1..529b59bf 100755 --- a/data/mapObjects/route16.asm +++ b/data/mapObjects/route16.asm @@ -3,13 +3,13 @@ Route16Object: ; 0x58afc (size=136) db $9 ; warps db $a, $11, $0, ROUTE_16_GATE_1F - db $b, $11, $1, ROUTE_16_GATE_1F + db $b, $11, $0, ROUTE_16_GATE_1F db $a, $18, $2, ROUTE_16_GATE_1F - db $b, $18, $3, ROUTE_16_GATE_1F + db $b, $18, $2, ROUTE_16_GATE_1F db $4, $11, $4, ROUTE_16_GATE_1F - db $5, $11, $5, ROUTE_16_GATE_1F + db $5, $11, $4, ROUTE_16_GATE_1F db $4, $18, $6, ROUTE_16_GATE_1F - db $5, $18, $7, ROUTE_16_GATE_1F + db $5, $18, $6, ROUTE_16_GATE_1F db $5, $7, $0, ROUTE_16_HOUSE db $2 ; signs diff --git a/data/map_header_banks.asm b/data/map_header_banks.asm index 1e99ee16..b47d5d8c 100644 --- a/data/map_header_banks.asm +++ b/data/map_header_banks.asm @@ -27,7 +27,7 @@ MapHeaderBanks:: ; fc3e4 (3f:43e4) db $15 ; db BANK(Route13_h) ; ROUTE_13 db $15 ; db BANK(Route14_h) ; ROUTE_14 db $16 ; db BANK(Route15_h) ; ROUTE_15 - db $16 ; db BANK(Route16_h) ; ROUTE_16 + db BANK(Route16_h) ; ROUTE_16 db BANK(Route17_h) ; ROUTE_17 db BANK(Route18_h) ; ROUTE_18 db BANK(Route19_h) ; ROUTE_19 diff --git a/data/map_header_pointers.asm b/data/map_header_pointers.asm index 18a0e9c7..413616d9 100644 --- a/data/map_header_pointers.asm +++ b/data/map_header_pointers.asm @@ -27,7 +27,7 @@ MapHeaderPointers:: ; fc1f2 (3f:41f2) dw $4814 ; dw Route13_h dw $49a1 ; dw Route14_h dw $492c ; dw Route15_h - dw $4ada ; dw Route16_h + dw Route16_h dw Route17_h dw Route18_h dw Route19_h diff --git a/main.asm b/main.asm index 0779c8cd..df796ab0 100755 --- a/main.asm +++ b/main.asm @@ -903,7 +903,9 @@ INCBIN "maps/route11.blk" dr $5866d,$589cc Route15Blocks: INCBIN "maps/route15.blk" - dr $58ada,$58b84 + +INCLUDE "data/mapHeaders/route16.asm" +INCLUDE "data/mapObjects/route16.asm" Route16Blocks: ; 58b84 INCBIN "maps/route16.blk" @@ -920,7 +922,8 @@ INCLUDE "engine/status_ailments.asm" INCLUDE "engine/overworld/oaks_aide.asm" INCLUDE "scripts/route6.asm" - dr $59052,$59963 + dr $59052,$597cf +INCLUDE "scripts/route16.asm" INCLUDE "scripts/route18.asm" dr $59a00,$5a53a -- cgit v1.2.3 From 02fc3889b255aece1c02a673f7239a03e7a2396f Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Fri, 27 May 2016 19:29:01 -0400 Subject: Route 15 --- data/mapObjects/route15.asm | 4 ++-- data/map_header_banks.asm | 2 +- data/map_header_pointers.asm | 2 +- main.asm | 12 +++++++++--- 4 files changed, 13 insertions(+), 7 deletions(-) diff --git a/data/mapObjects/route15.asm b/data/mapObjects/route15.asm index e0d19e5c..bd6283b0 100755 --- a/data/mapObjects/route15.asm +++ b/data/mapObjects/route15.asm @@ -3,9 +3,9 @@ Route15Object: ; 0x5894e (size=126) db $4 ; warps db $8, $7, $0, ROUTE_15_GATE_1F - db $9, $7, $1, ROUTE_15_GATE_1F + db $9, $7, $0, ROUTE_15_GATE_1F db $8, $e, $2, ROUTE_15_GATE_1F - db $9, $e, $3, ROUTE_15_GATE_1F + db $9, $e, $2, ROUTE_15_GATE_1F db $1 ; signs db $9, $27, $c ; Route15Text12 diff --git a/data/map_header_banks.asm b/data/map_header_banks.asm index b47d5d8c..69852516 100644 --- a/data/map_header_banks.asm +++ b/data/map_header_banks.asm @@ -26,7 +26,7 @@ MapHeaderBanks:: ; fc3e4 (3f:43e4) db $16 ; db BANK(Route12_h) ; ROUTE_12 db $15 ; db BANK(Route13_h) ; ROUTE_13 db $15 ; db BANK(Route14_h) ; ROUTE_14 - db $16 ; db BANK(Route15_h) ; ROUTE_15 + db BANK(Route15_h) ; ROUTE_15 db BANK(Route16_h) ; ROUTE_16 db BANK(Route17_h) ; ROUTE_17 db BANK(Route18_h) ; ROUTE_18 diff --git a/data/map_header_pointers.asm b/data/map_header_pointers.asm index 413616d9..ff68b4fb 100644 --- a/data/map_header_pointers.asm +++ b/data/map_header_pointers.asm @@ -26,7 +26,7 @@ MapHeaderPointers:: ; fc1f2 (3f:41f2) dw $466d ; dw Route12_h dw $4814 ; dw Route13_h dw $49a1 ; dw Route14_h - dw $492c ; dw Route15_h + dw Route15_h dw Route16_h dw Route17_h dw Route18_h diff --git a/main.asm b/main.asm index df796ab0..a4d8ec02 100755 --- a/main.asm +++ b/main.asm @@ -854,7 +854,9 @@ INCBIN "maps/route5.blk" Route9Blocks: ; 54706 INCBIN "maps/route9.blk" - dr $54814,$54b28 + dr $54814,$54a1a +Route14Blocks: +INCBIN "maps/route14.blk" INCLUDE "data/mapHeaders/route17.asm" INCLUDE "data/mapObjects/route17.asm" @@ -900,7 +902,10 @@ INCBIN "maps/route8.blk" dr $582d4,$5855f Route11Blocks: ; 5854f INCBIN "maps/route11.blk" - dr $5866d,$589cc + dr $5866d,$5892c + +INCLUDE "data/mapHeaders/route15.asm" +INCLUDE "data/mapObjects/route15.asm" Route15Blocks: INCBIN "maps/route15.blk" @@ -922,7 +927,8 @@ INCLUDE "engine/status_ailments.asm" INCLUDE "engine/overworld/oaks_aide.asm" INCLUDE "scripts/route6.asm" - dr $59052,$597cf + dr $59052,$5964a +INCLUDE "scripts/route15.asm" INCLUDE "scripts/route16.asm" INCLUDE "scripts/route18.asm" dr $59a00,$5a53a -- cgit v1.2.3 From 0c6ecb4054043b8c807065363f3d5d288d03db5d Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Fri, 27 May 2016 19:32:45 -0400 Subject: Route 14 --- data/map_header_banks.asm | 2 +- data/map_header_pointers.asm | 2 +- main.asm | 10 ++++++++-- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/data/map_header_banks.asm b/data/map_header_banks.asm index 69852516..fa275804 100644 --- a/data/map_header_banks.asm +++ b/data/map_header_banks.asm @@ -25,7 +25,7 @@ MapHeaderBanks:: ; fc3e4 (3f:43e4) db $16 ; db BANK(Route11_h) ; ROUTE_11 db $16 ; db BANK(Route12_h) ; ROUTE_12 db $15 ; db BANK(Route13_h) ; ROUTE_13 - db $15 ; db BANK(Route14_h) ; ROUTE_14 + db BANK(Route14_h) ; ROUTE_14 db BANK(Route15_h) ; ROUTE_15 db BANK(Route16_h) ; ROUTE_16 db BANK(Route17_h) ; ROUTE_17 diff --git a/data/map_header_pointers.asm b/data/map_header_pointers.asm index ff68b4fb..0d36b121 100644 --- a/data/map_header_pointers.asm +++ b/data/map_header_pointers.asm @@ -25,7 +25,7 @@ MapHeaderPointers:: ; fc1f2 (3f:41f2) dw $44be ; dw Route11_h dw $466d ; dw Route12_h dw $4814 ; dw Route13_h - dw $49a1 ; dw Route14_h + dw Route14_h dw Route15_h dw Route16_h dw Route17_h diff --git a/main.asm b/main.asm index a4d8ec02..37a4dd21 100755 --- a/main.asm +++ b/main.asm @@ -854,7 +854,12 @@ INCBIN "maps/route5.blk" Route9Blocks: ; 54706 INCBIN "maps/route9.blk" - dr $54814,$54a1a + dr $54814,$54893 +Route13Blocks: +INCBIN "maps/route13.blk" + +INCLUDE "data/mapHeaders/route14.asm" +INCLUDE "data/mapObjects/route14.asm" Route14Blocks: INCBIN "maps/route14.blk" @@ -879,7 +884,8 @@ INCLUDE "scripts/route2.asm" INCLUDE "scripts/route3.asm" INCLUDE "scripts/route4.asm" INCLUDE "scripts/route5.asm" - dr $556d0,$55b8e + dr $556d0,$559e7 +INCLUDE "scripts/route14.asm" INCLUDE "scripts/route17.asm" INCLUDE "scripts/route19.asm" INCLUDE "scripts/route21.asm" -- cgit v1.2.3 From b580c4c90f243df34042803260161459a1bf4e6e Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Fri, 27 May 2016 19:36:09 -0400 Subject: Route 12 --- data/map_header_banks.asm | 2 +- data/map_header_pointers.asm | 2 +- main.asm | 13 ++++++++++--- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/data/map_header_banks.asm b/data/map_header_banks.asm index fa275804..b4e65ab5 100644 --- a/data/map_header_banks.asm +++ b/data/map_header_banks.asm @@ -24,7 +24,7 @@ MapHeaderBanks:: ; fc3e4 (3f:43e4) db $16 ; db BANK(Route10_h) ; ROUTE_10 db $16 ; db BANK(Route11_h) ; ROUTE_11 db $16 ; db BANK(Route12_h) ; ROUTE_12 - db $15 ; db BANK(Route13_h) ; ROUTE_13 + db BANK(Route13_h) ; ROUTE_13 db BANK(Route14_h) ; ROUTE_14 db BANK(Route15_h) ; ROUTE_15 db BANK(Route16_h) ; ROUTE_16 diff --git a/data/map_header_pointers.asm b/data/map_header_pointers.asm index 0d36b121..be5c8127 100644 --- a/data/map_header_pointers.asm +++ b/data/map_header_pointers.asm @@ -24,7 +24,7 @@ MapHeaderPointers:: ; fc1f2 (3f:41f2) dw $42d4 ; dw Route10_h dw $44be ; dw Route11_h dw $466d ; dw Route12_h - dw $4814 ; dw Route13_h + dw Route13_h dw Route14_h dw Route15_h dw Route16_h diff --git a/main.asm b/main.asm index 37a4dd21..f227a168 100755 --- a/main.asm +++ b/main.asm @@ -854,7 +854,8 @@ INCBIN "maps/route5.blk" Route9Blocks: ; 54706 INCBIN "maps/route9.blk" - dr $54814,$54893 +INCLUDE "data/mapHeaders/route13.asm" +INCLUDE "data/mapObjects/route13.asm" Route13Blocks: INCBIN "maps/route13.blk" @@ -884,7 +885,8 @@ INCLUDE "scripts/route2.asm" INCLUDE "scripts/route3.asm" INCLUDE "scripts/route4.asm" INCLUDE "scripts/route5.asm" - dr $556d0,$559e7 + dr $556d0,$55832 +INCLUDE "scripts/route13.asm" INCLUDE "scripts/route14.asm" INCLUDE "scripts/route17.asm" INCLUDE "scripts/route19.asm" @@ -902,13 +904,18 @@ INCLUDE "data/mapHeaders/route6.asm" INCLUDE "data/mapObjects/route6.asm" Route6Blocks: ; 58079 INCBIN "maps/route6.blk" + dr $5812d,$581c6 Route8Blocks: ; 581c6 INCBIN "maps/route8.blk" + dr $582d4,$5855f Route11Blocks: ; 5854f INCBIN "maps/route11.blk" - dr $5866d,$5892c + + dr $5866d,$58710 +Route12Blocks: +INCBIN "maps/route12.blk" INCLUDE "data/mapHeaders/route15.asm" INCLUDE "data/mapObjects/route15.asm" -- cgit v1.2.3 From 807323ed1cc2231d3df93edfaab22dde5de191ea Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Fri, 27 May 2016 19:39:40 -0400 Subject: Route 12 --- data/mapObjects/route12.asm | 2 +- data/map_header_banks.asm | 2 +- data/map_header_pointers.asm | 2 +- main.asm | 11 ++++++++--- 4 files changed, 11 insertions(+), 6 deletions(-) diff --git a/data/mapObjects/route12.asm b/data/mapObjects/route12.asm index 8ed43ff4..783fd49b 100755 --- a/data/mapObjects/route12.asm +++ b/data/mapObjects/route12.asm @@ -3,7 +3,7 @@ Route12Object: ; 0x5869a (size=118) db $4 ; warps db $f, $a, $0, ROUTE_12_GATE_1F - db $f, $b, $1, ROUTE_12_GATE_1F + db $f, $b, $0, ROUTE_12_GATE_1F db $15, $a, $2, ROUTE_12_GATE_1F db $4d, $b, $0, ROUTE_12_HOUSE diff --git a/data/map_header_banks.asm b/data/map_header_banks.asm index b4e65ab5..429cc87d 100644 --- a/data/map_header_banks.asm +++ b/data/map_header_banks.asm @@ -23,7 +23,7 @@ MapHeaderBanks:: ; fc3e4 (3f:43e4) db $15 ; db BANK(Route9_h) ; ROUTE_9 db $16 ; db BANK(Route10_h) ; ROUTE_10 db $16 ; db BANK(Route11_h) ; ROUTE_11 - db $16 ; db BANK(Route12_h) ; ROUTE_12 + db BANK(Route12_h) ; ROUTE_12 db BANK(Route13_h) ; ROUTE_13 db BANK(Route14_h) ; ROUTE_14 db BANK(Route15_h) ; ROUTE_15 diff --git a/data/map_header_pointers.asm b/data/map_header_pointers.asm index be5c8127..9334f585 100644 --- a/data/map_header_pointers.asm +++ b/data/map_header_pointers.asm @@ -23,7 +23,7 @@ MapHeaderPointers:: ; fc1f2 (3f:41f2) dw $468e ; dw Route9_h dw $42d4 ; dw Route10_h dw $44be ; dw Route11_h - dw $466d ; dw Route12_h + dw Route12_h dw Route13_h dw Route14_h dw Route15_h diff --git a/main.asm b/main.asm index f227a168..29151bc4 100755 --- a/main.asm +++ b/main.asm @@ -679,7 +679,10 @@ INCLUDE "engine/menu/options.asm" SECTION "bank11",ROMX,BANK[$11] - dr $44000,$44169 + dr $44000,$44085 +LavenderTownBlocks: +INCBIN "maps/lavendertown.blk" + dr $440df,$44169 INCLUDE "engine/pokedex_rating.asm" @@ -913,7 +916,8 @@ INCBIN "maps/route8.blk" Route11Blocks: ; 5854f INCBIN "maps/route11.blk" - dr $5866d,$58710 +INCLUDE "data/mapHeaders/route12.asm" +INCLUDE "data/mapObjects/route12.asm" Route12Blocks: INCBIN "maps/route12.blk" @@ -940,7 +944,8 @@ INCLUDE "engine/status_ailments.asm" INCLUDE "engine/overworld/oaks_aide.asm" INCLUDE "scripts/route6.asm" - dr $59052,$5964a + dr $59052,$5948f +INCLUDE "scripts/route12.asm" INCLUDE "scripts/route15.asm" INCLUDE "scripts/route16.asm" INCLUDE "scripts/route18.asm" -- cgit v1.2.3 From 8de636993d6d26f2b8a9557a55ce1a96fc29e01b Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Fri, 27 May 2016 19:43:06 -0400 Subject: Route 11 --- data/mapObjects/route11.asm | 4 ++-- data/map_header_banks.asm | 2 +- data/map_header_pointers.asm | 2 +- main.asm | 10 +++++++--- 4 files changed, 11 insertions(+), 7 deletions(-) diff --git a/data/mapObjects/route11.asm b/data/mapObjects/route11.asm index 4e196b20..d0c9af20 100755 --- a/data/mapObjects/route11.asm +++ b/data/mapObjects/route11.asm @@ -3,9 +3,9 @@ Route11Object: ; 0x584e0 (size=127) db $5 ; warps db $8, $31, $0, ROUTE_11_GATE_1F - db $9, $31, $1, ROUTE_11_GATE_1F + db $9, $31, $0, ROUTE_11_GATE_1F db $8, $3a, $2, ROUTE_11_GATE_1F - db $9, $3a, $3, ROUTE_11_GATE_1F + db $9, $3a, $2, ROUTE_11_GATE_1F db $5, $4, $0, DIGLETTS_CAVE_ENTRANCE db $1 ; signs diff --git a/data/map_header_banks.asm b/data/map_header_banks.asm index 429cc87d..63802c23 100644 --- a/data/map_header_banks.asm +++ b/data/map_header_banks.asm @@ -22,7 +22,7 @@ MapHeaderBanks:: ; fc3e4 (3f:43e4) db $16 ; db BANK(Route8_h) ; ROUTE_8 db $15 ; db BANK(Route9_h) ; ROUTE_9 db $16 ; db BANK(Route10_h) ; ROUTE_10 - db $16 ; db BANK(Route11_h) ; ROUTE_11 + db BANK(Route11_h) ; ROUTE_11 db BANK(Route12_h) ; ROUTE_12 db BANK(Route13_h) ; ROUTE_13 db BANK(Route14_h) ; ROUTE_14 diff --git a/data/map_header_pointers.asm b/data/map_header_pointers.asm index 9334f585..ad526ba8 100644 --- a/data/map_header_pointers.asm +++ b/data/map_header_pointers.asm @@ -22,7 +22,7 @@ MapHeaderPointers:: ; fc1f2 (3f:41f2) dw $412d ; dw Route8_h dw $468e ; dw Route9_h dw $42d4 ; dw Route10_h - dw $44be ; dw Route11_h + dw Route11_h dw Route12_h dw Route13_h dw Route14_h diff --git a/main.asm b/main.asm index 29151bc4..5ababcd8 100755 --- a/main.asm +++ b/main.asm @@ -912,8 +912,11 @@ INCBIN "maps/route6.blk" Route8Blocks: ; 581c6 INCBIN "maps/route8.blk" - dr $582d4,$5855f -Route11Blocks: ; 5854f + dr $582d4,$584be + +INCLUDE "data/mapHeaders/route11.asm" +INCLUDE "data/mapObjects/route11.asm" +Route11Blocks: ; 5855f INCBIN "maps/route11.blk" INCLUDE "data/mapHeaders/route12.asm" @@ -944,7 +947,8 @@ INCLUDE "engine/status_ailments.asm" INCLUDE "engine/overworld/oaks_aide.asm" INCLUDE "scripts/route6.asm" - dr $59052,$5948f + dr $59052,$592e8 +INCLUDE "scripts/route11.asm" INCLUDE "scripts/route12.asm" INCLUDE "scripts/route15.asm" INCLUDE "scripts/route16.asm" -- cgit v1.2.3 From 117c154f56d932ef5fefdce7ed50ad081c5a4f6a Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Fri, 27 May 2016 19:46:10 -0400 Subject: Lavender Town; all city overworld maps done --- data/map_header_banks.asm | 2 +- data/map_header_pointers.asm | 2 +- main.asm | 12 +++++++++--- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/data/map_header_banks.asm b/data/map_header_banks.asm index 63802c23..9b66f8c9 100644 --- a/data/map_header_banks.asm +++ b/data/map_header_banks.asm @@ -4,7 +4,7 @@ MapHeaderBanks:: ; fc3e4 (3f:43e4) db BANK(ViridianCity_h) ; VIRIDIAN_CITY db BANK(PewterCity_h) ; PEWTER_CITY db BANK(CeruleanCity_h) ; CERULEAN_CITY - db $11 ; db BANK(LavenderTown_h) ; LAVENDER_TOWN + db BANK(LavenderTown_h) ; LAVENDER_TOWN db BANK(VermilionCity_h) ; VERMILION_CITY db BANK(CeladonCity_h) ; CELADON_CITY db BANK(FuchsiaCity_h) ; FUCHSIA_CITY diff --git a/data/map_header_pointers.asm b/data/map_header_pointers.asm index ad526ba8..03aa24f9 100644 --- a/data/map_header_pointers.asm +++ b/data/map_header_pointers.asm @@ -4,7 +4,7 @@ MapHeaderPointers:: ; fc1f2 (3f:41f2) dw ViridianCity_h dw PewterCity_h dw CeruleanCity_h - dw $4000 ; dw LavenderTown_h + dw LavenderTown_h dw VermilionCity_h dw CeladonCity_h dw FuchsiaCity_h diff --git a/main.asm b/main.asm index 5ababcd8..cfd855ca 100755 --- a/main.asm +++ b/main.asm @@ -679,10 +679,14 @@ INCLUDE "engine/menu/options.asm" SECTION "bank11",ROMX,BANK[$11] - dr $44000,$44085 +INCLUDE "data/mapHeaders/lavendertown.asm" +INCLUDE "data/mapObjects/lavendertown.asm" LavenderTownBlocks: INCBIN "maps/lavendertown.blk" - dr $440df,$44169 + dr $440df,$4410b + +INCLUDE "scripts/lavendertown.asm" + ; dr $440df,$44169 INCLUDE "engine/pokedex_rating.asm" @@ -912,7 +916,9 @@ INCBIN "maps/route6.blk" Route8Blocks: ; 581c6 INCBIN "maps/route8.blk" - dr $582d4,$584be + dr $582d4,$58356 +Route10Blocks: +INCBIN "maps/route10.blk" INCLUDE "data/mapHeaders/route11.asm" INCLUDE "data/mapObjects/route11.asm" -- cgit v1.2.3 From a202626b6e1daad2c0d6974cd9663f20e5526e40 Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Fri, 27 May 2016 19:48:27 -0400 Subject: Route 10 --- data/map_header_banks.asm | 2 +- data/map_header_pointers.asm | 2 +- main.asm | 6 ++++-- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/data/map_header_banks.asm b/data/map_header_banks.asm index 9b66f8c9..338bd71c 100644 --- a/data/map_header_banks.asm +++ b/data/map_header_banks.asm @@ -21,7 +21,7 @@ MapHeaderBanks:: ; fc3e4 (3f:43e4) db BANK(Route7_h) ; ROUTE_7 db $16 ; db BANK(Route8_h) ; ROUTE_8 db $15 ; db BANK(Route9_h) ; ROUTE_9 - db $16 ; db BANK(Route10_h) ; ROUTE_10 + db BANK(Route10_h) ; ROUTE_10 db BANK(Route11_h) ; ROUTE_11 db BANK(Route12_h) ; ROUTE_12 db BANK(Route13_h) ; ROUTE_13 diff --git a/data/map_header_pointers.asm b/data/map_header_pointers.asm index 03aa24f9..5359721f 100644 --- a/data/map_header_pointers.asm +++ b/data/map_header_pointers.asm @@ -21,7 +21,7 @@ MapHeaderPointers:: ; fc1f2 (3f:41f2) dw Route7_h dw $412d ; dw Route8_h dw $468e ; dw Route9_h - dw $42d4 ; dw Route10_h + dw Route10_h dw Route11_h dw Route12_h dw Route13_h diff --git a/main.asm b/main.asm index cfd855ca..916f978d 100755 --- a/main.asm +++ b/main.asm @@ -916,7 +916,8 @@ INCBIN "maps/route6.blk" Route8Blocks: ; 581c6 INCBIN "maps/route8.blk" - dr $582d4,$58356 +INCLUDE "data/mapHeaders/route10.asm" +INCLUDE "data/mapObjects/route10.asm" Route10Blocks: INCBIN "maps/route10.blk" @@ -953,7 +954,8 @@ INCLUDE "engine/status_ailments.asm" INCLUDE "engine/overworld/oaks_aide.asm" INCLUDE "scripts/route6.asm" - dr $59052,$592e8 + dr $59052,$591d2 +INCLUDE "scripts/route10.asm" INCLUDE "scripts/route11.asm" INCLUDE "scripts/route12.asm" INCLUDE "scripts/route15.asm" -- cgit v1.2.3 From dc8677aa1c1ef9ef8cc3fb217641ae6619a3dae6 Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Fri, 27 May 2016 19:59:12 -0400 Subject: Route 9 incl. AJ fight --- data/mapObjects/route9.asm | 2 +- data/map_header_banks.asm | 2 +- data/map_header_pointers.asm | 2 +- main.asm | 5 +++-- scripts/route9.asm | 24 ++++++++++++------------ 5 files changed, 18 insertions(+), 17 deletions(-) diff --git a/data/mapObjects/route9.asm b/data/mapObjects/route9.asm index 79d0d5ed..6a759608 100755 --- a/data/mapObjects/route9.asm +++ b/data/mapObjects/route9.asm @@ -8,7 +8,7 @@ Route9Object: ; 0x546a8 (size=86) db $a ; objects object SPRITE_LASS, $d, $a, STAY, LEFT, $1, OPP_JR_TRAINER_F, $5 - object SPRITE_BLACK_HAIR_BOY_1, $18, $7, STAY, LEFT, $2, OPP_JR_TRAINER_M, $7 + object SPRITE_BLACK_HAIR_BOY_1, $18, $7, STAY, LEFT, $2, OPP_YOUNGSTER, $e object SPRITE_BLACK_HAIR_BOY_1, $1f, $7, STAY, RIGHT, $3, OPP_JR_TRAINER_M, $8 object SPRITE_LASS, $30, $8, STAY, RIGHT, $4, OPP_JR_TRAINER_F, $6 object SPRITE_HIKER, $10, $f, STAY, LEFT, $5, OPP_HIKER, $b diff --git a/data/map_header_banks.asm b/data/map_header_banks.asm index 338bd71c..3268cdf8 100644 --- a/data/map_header_banks.asm +++ b/data/map_header_banks.asm @@ -20,7 +20,7 @@ MapHeaderBanks:: ; fc3e4 (3f:43e4) db BANK(Route6_h) ; ROUTE_6 db BANK(Route7_h) ; ROUTE_7 db $16 ; db BANK(Route8_h) ; ROUTE_8 - db $15 ; db BANK(Route9_h) ; ROUTE_9 + db BANK(Route9_h) ; ROUTE_9 db BANK(Route10_h) ; ROUTE_10 db BANK(Route11_h) ; ROUTE_11 db BANK(Route12_h) ; ROUTE_12 diff --git a/data/map_header_pointers.asm b/data/map_header_pointers.asm index 5359721f..70fa7aa0 100644 --- a/data/map_header_pointers.asm +++ b/data/map_header_pointers.asm @@ -20,7 +20,7 @@ MapHeaderPointers:: ; fc1f2 (3f:41f2) dw Route6_h dw Route7_h dw $412d ; dw Route8_h - dw $468e ; dw Route9_h + dw Route9_h dw Route10_h dw Route11_h dw Route12_h diff --git a/main.asm b/main.asm index 916f978d..46696cec 100755 --- a/main.asm +++ b/main.asm @@ -857,7 +857,8 @@ INCLUDE "data/mapObjects/route5.asm" Route5Blocks: ; 545da INCBIN "maps/route5.blk" - dr $5468e,$54706 +INCLUDE "data/mapHeaders/route9.asm" +INCLUDE "data/mapObjects/route9.asm" Route9Blocks: ; 54706 INCBIN "maps/route9.blk" @@ -892,7 +893,7 @@ INCLUDE "scripts/route2.asm" INCLUDE "scripts/route3.asm" INCLUDE "scripts/route4.asm" INCLUDE "scripts/route5.asm" - dr $556d0,$55832 +INCLUDE "scripts/route9.asm" INCLUDE "scripts/route13.asm" INCLUDE "scripts/route14.asm" INCLUDE "scripts/route17.asm" diff --git a/scripts/route9.asm b/scripts/route9.asm index 9d26ee96..5de98173 100755 --- a/scripts/route9.asm +++ b/scripts/route9.asm @@ -14,7 +14,7 @@ Route9ScriptPointers: ; 556cf (15:56cf) Route9TextPointers: ; 556d5 (15:56d5) dw Route9Text1 - dw Route9Text2 + dw Route9TextAJ dw Route9Text3 dw Route9Text4 dw Route9Text5 @@ -39,10 +39,10 @@ Route9TrainerHeader2: ; 556f7 (15:56f7) dbEventFlagBit EVENT_BEAT_ROUTE_9_TRAINER_2 db ($2 << 4) ; trainer's view range dwEventFlagAddress EVENT_BEAT_ROUTE_9_TRAINER_2 - dw Route9BattleText2 ; TextBeforeBattle - dw Route9AfterBattleText2 ; TextAfterBattle - dw Route9EndBattleText2 ; TextEndBattle - dw Route9EndBattleText2 ; TextEndBattle + dw Route9BattleTextAJ ; TextBeforeBattle + dw Route9AfterBattleTextAJ ; TextAfterBattle + dw Route9EndBattleTextAJ ; TextEndBattle + dw Route9EndBattleTextAJ ; TextEndBattle Route9TrainerHeader3: ; 55703 (15:5703) dbEventFlagBit EVENT_BEAT_ROUTE_9_TRAINER_3 @@ -114,7 +114,7 @@ Route9Text1: ; 55758 (15:5758) ld hl, Route9TrainerHeader0 jr Route9TalkToTrainer -Route9Text2: ; 5575e (15:575e) +Route9TextAJ: ; 5575e (15:575e) TX_ASM ld hl, Route9TrainerHeader2 jr Route9TalkToTrainer @@ -168,16 +168,16 @@ Route9AfterBattleText1: ; 5579c (15:579c) TX_FAR _Route9AfterBattleText1 db "@" -Route9BattleText2: ; 557a1 (15:57a1) - TX_FAR _Route9BattleText2 +Route9BattleTextAJ: ; 557a1 (15:57a1) + TX_FAR _Route9BattleTextAJ db "@" -Route9EndBattleText2: ; 557a6 (15:57a6) - TX_FAR _Route9EndBattleText2 +Route9EndBattleTextAJ: ; 557a6 (15:57a6) + TX_FAR _Route9EndBattleTextAJ db "@" -Route9AfterBattleText2: ; 557ab (15:57ab) - TX_FAR _Route9AfterBattleText2 +Route9AfterBattleTextAJ: ; 557ab (15:57ab) + TX_FAR _Route9AfterBattleTextAJ db "@" Route9BattleText3: ; 557b0 (15:57b0) -- cgit v1.2.3 From 38d57913867d66d30bca12070d2cbc2bc5fc25ba Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Fri, 27 May 2016 20:01:27 -0400 Subject: Route 8; all outdoor maps completed --- data/mapObjects/route8.asm | 4 ++-- data/map_header_banks.asm | 2 +- data/map_header_pointers.asm | 2 +- main.asm | 5 +++-- 4 files changed, 7 insertions(+), 6 deletions(-) diff --git a/data/mapObjects/route8.asm b/data/mapObjects/route8.asm index 5863129b..38bcca5e 100755 --- a/data/mapObjects/route8.asm +++ b/data/mapObjects/route8.asm @@ -3,9 +3,9 @@ Route8Object: ; 0x5814f (size=119) db $5 ; warps db $9, $1, $0, ROUTE_8_GATE - db $a, $1, $1, ROUTE_8_GATE + db $a, $1, $0, ROUTE_8_GATE db $9, $8, $2, ROUTE_8_GATE - db $a, $8, $3, ROUTE_8_GATE + db $a, $8, $2, ROUTE_8_GATE db $3, $d, $0, PATH_ENTRANCE_ROUTE_8 db $1 ; signs diff --git a/data/map_header_banks.asm b/data/map_header_banks.asm index 3268cdf8..060ebdc8 100644 --- a/data/map_header_banks.asm +++ b/data/map_header_banks.asm @@ -19,7 +19,7 @@ MapHeaderBanks:: ; fc3e4 (3f:43e4) db BANK(Route5_h) ; ROUTE_5 db BANK(Route6_h) ; ROUTE_6 db BANK(Route7_h) ; ROUTE_7 - db $16 ; db BANK(Route8_h) ; ROUTE_8 + db BANK(Route8_h) ; ROUTE_8 db BANK(Route9_h) ; ROUTE_9 db BANK(Route10_h) ; ROUTE_10 db BANK(Route11_h) ; ROUTE_11 diff --git a/data/map_header_pointers.asm b/data/map_header_pointers.asm index 70fa7aa0..704e7c2d 100644 --- a/data/map_header_pointers.asm +++ b/data/map_header_pointers.asm @@ -19,7 +19,7 @@ MapHeaderPointers:: ; fc1f2 (3f:41f2) dw Route5_h dw Route6_h dw Route7_h - dw $412d ; dw Route8_h + dw Route8_h dw Route9_h dw Route10_h dw Route11_h diff --git a/main.asm b/main.asm index 46696cec..f4e6d582 100755 --- a/main.asm +++ b/main.asm @@ -913,7 +913,8 @@ INCLUDE "data/mapObjects/route6.asm" Route6Blocks: ; 58079 INCBIN "maps/route6.blk" - dr $5812d,$581c6 +INCLUDE "data/mapHeaders/route8.asm" +INCLUDE "data/mapObjects/route8.asm" Route8Blocks: ; 581c6 INCBIN "maps/route8.blk" @@ -955,7 +956,7 @@ INCLUDE "engine/status_ailments.asm" INCLUDE "engine/overworld/oaks_aide.asm" INCLUDE "scripts/route6.asm" - dr $59052,$591d2 +INCLUDE "scripts/route8.asm" INCLUDE "scripts/route10.asm" INCLUDE "scripts/route11.asm" INCLUDE "scripts/route12.asm" -- cgit v1.2.3 From e51658fed09fa1247fb1d61c76f7f0441bf9f388 Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Fri, 27 May 2016 22:27:35 -0400 Subject: Red's House 1F --- engine/bank3c.asm | 3 ++- main.asm | 12 +++++++--- scripts/redshouse1f.asm | 60 ++++-------------------------------------------- scripts/redshouse1f2.asm | 58 ++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 73 insertions(+), 60 deletions(-) create mode 100755 scripts/redshouse1f2.asm diff --git a/engine/bank3c.asm b/engine/bank3c.asm index 6174dc0b..54649b0b 100644 --- a/engine/bank3c.asm +++ b/engine/bank3c.asm @@ -348,7 +348,8 @@ INCLUDE "scripts/vermilioncity2.asm" INCLUDE "scripts/celadoncity2.asm" INCLUDE "scripts/route1_2.asm" INCLUDE "scripts/route22_2.asm" - dr $f1b73, $f220e +INCLUDE "scripts/redshouse1f2.asm" + dr $f1be0, $f220e INCLUDE "data/mapHeaders/beach_house.asm" INCLUDE "scripts/beach_house.asm" diff --git a/main.asm b/main.asm index f4e6d582..bd9d8322 100755 --- a/main.asm +++ b/main.asm @@ -705,9 +705,13 @@ Route7Blocks: ; 48051 INCBIN "maps/route7.blk" dr $480ab,$480eb INCLUDE "scripts/route7.asm" -; INCLUDE "data/mapHeaders/redshouse1f.asm" -; INCLUDE "data/mapObjects/redshouse1f.asm" - dr $480f6,$4a540 + +INCLUDE "data/mapHeaders/redshouse1f.asm" +INCLUDE "scripts/redshouse1f.asm" +INCLUDE "data/mapObjects/redshouse1f.asm" +RedsHouse1FBlocks: +INCBIN "maps/redshouse1f.blk" + dr $48157,$4a540 SECTION "bank13",ROMX,BANK[$13] @@ -899,6 +903,8 @@ INCLUDE "scripts/route14.asm" INCLUDE "scripts/route17.asm" INCLUDE "scripts/route19.asm" INCLUDE "scripts/route21.asm" + +; vermilion house 2 dr $56054,$56714 INCLUDE "engine/menu/diploma_1.asm" diff --git a/scripts/redshouse1f.asm b/scripts/redshouse1f.asm index f9c7193f..602e8ecf 100755 --- a/scripts/redshouse1f.asm +++ b/scripts/redshouse1f.asm @@ -1,5 +1,6 @@ RedsHouse1FScript: ; 48168 (12:4168) - jp EnableAutoTextBoxDrawing + call EnableAutoTextBoxDrawing + ret RedsHouse1FTextPointers: ; 4816b (12:416b) dw RedsHouse1FText1 @@ -7,63 +8,10 @@ RedsHouse1FTextPointers: ; 4816b (12:416b) RedsHouse1FText1: ; 4816f (12:416f) Mom TX_ASM - ld a, [wd72e] - bit 3, a - jr nz, .heal ; if player has received a Pokémon from Oak, heal team - ld hl, MomWakeUpText - call PrintText - jr .done -.heal - call MomHealPokemon -.done + callab Func_f1b73 jp TextScriptEnd -MomWakeUpText: ; 48185 (12:4185) - TX_FAR _MomWakeUpText - db "@" - -MomHealPokemon: ; 4818a (12:418a) - ld hl, MomHealText1 - call PrintText - call GBFadeOutToWhite - call ReloadMapData - predef HealParty - ld a, MUSIC_PKMN_HEALED - ld [wNewSoundID], a - call PlaySound -.next - ld a, [wChannelSoundIDs] - cp MUSIC_PKMN_HEALED - jr z, .next - ld a, [wMapMusicSoundID] - ld [wNewSoundID], a - call PlaySound - call GBFadeInFromWhite - ld hl, MomHealText2 - jp PrintText - -MomHealText1: ; 481bc (12:41bc) - TX_FAR _MomHealText1 - db "@" -MomHealText2: ; 481c1 (12:41c1) - TX_FAR _MomHealText2 - db "@" - RedsHouse1FText2: ; 0x481c6 TV TX_ASM - ld a,[wSpriteStateData1 + 9] - cp SPRITE_FACING_UP - ld hl,TVWrongSideText - jr nz,.notUp - ld hl,StandByMeText -.notUp - call PrintText + callab Func_f1bc4 jp TextScriptEnd - -StandByMeText: ; 481da (12:41da) - TX_FAR _StandByMeText - db "@" - -TVWrongSideText: ; 481df (12:41df) - TX_FAR _TVWrongSideText - db "@" diff --git a/scripts/redshouse1f2.asm b/scripts/redshouse1f2.asm new file mode 100755 index 00000000..0ddd22d6 --- /dev/null +++ b/scripts/redshouse1f2.asm @@ -0,0 +1,58 @@ +Func_f1b73: + ld a, [wd72e] + bit 3, a + jp nz, MomHealPokemon ; if player has received a Pokémon from Oak, heal team + ld hl, MomWakeUpText + call PrintText + ret + +MomWakeUpText: ; 48185 (12:4185) + TX_FAR _MomWakeUpText + db "@" + +MomHealPokemon: ; 4818a (12:418a) + ld hl, MomHealText1 + call PrintText + call GBFadeOutToWhite + call ReloadMapData + predef HealParty + ld a, MUSIC_PKMN_HEALED + ld [wNewSoundID], a + call PlaySound +.loop + ld a, [wChannelSoundIDs] + cp MUSIC_PKMN_HEALED + jr z, .loop + ld a, [wMapMusicSoundID] + ld [wNewSoundID], a + call PlaySound + call GBFadeInFromWhite + ld hl, MomHealText2 + call PrintText + ret + +MomHealText1: ; 481bc (12:41bc) + TX_FAR _MomHealText1 + db "@" +MomHealText2: ; 481c1 (12:41c1) + TX_FAR _MomHealText2 + db "@" + +Func_f1bc4: + ld hl, TVWrongSideText + ld a, [wSpriteStateData1 + 9] + cp SPRITE_FACING_UP + jp nz, .notUp + ld hl, StandByMeText +.notUp + call PrintText + ret + +StandByMeText: ; 481da (12:41da) + TX_FAR _StandByMeText + db "@" + +TVWrongSideText: ; 481df (12:41df) + TX_FAR _TVWrongSideText + db "@" + -- cgit v1.2.3 From d04de35b9229a1891ceb03e13605f3438f5a7de0 Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Fri, 27 May 2016 22:45:40 -0400 Subject: Red's House 2F --- main.asm | 9 ++++++++- scripts/redshouse2f.asm | 23 +++++++++++------------ 2 files changed, 19 insertions(+), 13 deletions(-) diff --git a/main.asm b/main.asm index bd9d8322..8a5d2bae 100755 --- a/main.asm +++ b/main.asm @@ -976,7 +976,14 @@ INCLUDE "engine/overworld/saffron_guards.asm" SECTION "bank17",ROMX,BANK[$17] - dr $5c000,$5da70 + dr $5c000,$5c010 +RedsHouse2FBlocks: +INCBIN "maps/redshouse2f.blk" + dr $5c020,$5c0a4 +INCLUDE "data/mapHeaders/redshouse2f.asm" +INCLUDE "scripts/redshouse2f.asm" +INCLUDE "data/mapObjects/redshouse2f.asm" + dr $5c0d4,$5da70 INCLUDE "engine/evolution.asm" diff --git a/scripts/redshouse2f.asm b/scripts/redshouse2f.asm index 565d09e3..3a0421a6 100755 --- a/scripts/redshouse2f.asm +++ b/scripts/redshouse2f.asm @@ -1,23 +1,22 @@ RedsHouse2FScript: ; 5c0b0 (17:40b0) call EnableAutoTextBoxDrawing - ld hl,RedsHouse2FScriptPointers - ld a,[W_REDSHOUSE2CURSCRIPT] - jp JumpTable + ld hl, RedsHouse2FScriptPointers + ld a, 0 + call JumpTable + ret RedsHouse2FScriptPointers: ; 5c0bc (17:40bc) dw RedsHouse2FScript0 dw RedsHouse2FScript1 + dw RedsHouse2FScript2 + dw RedsHouse2FScript3 + dw RedsHouse2FScript4 -RedsHouse2FScript0: ; 5c0c0 (17:40c0) - xor a - ld [hJoyHeld],a - ld a,PLAYER_DIR_UP - ld [wPlayerMovingDirection],a - ld a,1 - ld [W_REDSHOUSE2CURSCRIPT],a - ret - +RedsHouse2FScript0: ; 5c0ce (17:40ce) RedsHouse2FScript1: ; 5c0ce (17:40ce) +RedsHouse2FScript2: ; 5c0ce (17:40ce) +RedsHouse2FScript3: ; 5c0ce (17:40ce) +RedsHouse2FScript4: ; 5c0ce (17:40ce) ret RedsHouse2FTextPointers: ; 5c0cf (17:40cf) -- cgit v1.2.3 From 9835d77c286b51adbe9cd1606f7a6f06d0ebaf2d Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Fri, 27 May 2016 23:08:50 -0400 Subject: Blue's House --- constants/hide_show_constants.asm | 2 +- data/mapObjects/blueshouse.asm | 6 +++--- data/map_header_banks.asm | 6 +++--- data/map_header_pointers.asm | 6 +++--- main.asm | 8 +++++++- scripts/blueshouse.asm | 33 ++++++++++++++++----------------- 6 files changed, 33 insertions(+), 28 deletions(-) diff --git a/constants/hide_show_constants.asm b/constants/hide_show_constants.asm index fc8ab90f..77820f75 100755 --- a/constants/hide_show_constants.asm +++ b/constants/hide_show_constants.asm @@ -75,7 +75,7 @@ const_value = 0 const HS_POKEMONTOWER_7_ROCKET_2 ; 42 X const HS_POKEMONTOWER_7_ROCKET_3 ; 43 -const_value SET $43 ; something above was deleted, idk what yet +const_value SET $43 ; replace the tower rockets with jessie/james const HS_POKEMONTOWER_7_MR_FUJI ; 43 const HS_LAVENDER_HOUSE_1_MR_FUJI ; 44 const HS_CELADON_MANSION_5_GIFT ; 45 diff --git a/data/mapObjects/blueshouse.asm b/data/mapObjects/blueshouse.asm index 43ba02e4..3dfce6e1 100755 --- a/data/mapObjects/blueshouse.asm +++ b/data/mapObjects/blueshouse.asm @@ -8,9 +8,9 @@ BluesHouseObject: ; 19bce (6:5bce) db $0 ; signs db $3 ; objects - object SPRITE_DAISY, $2, $3, STAY, RIGHT, $1 ; Daisy, sitting by map - object SPRITE_DAISY, $6, $4, WALK, $1, $2, $0 ; Daisy, walking around - object SPRITE_BOOK_MAP_DEX, $3, $3, STAY, NONE, $3, $0 ; map on table + object SPRITE_DAISY, $2, $3, STAY, RIGHT, $81, $0 ; Daisy, sitting by map + object SPRITE_DAISY, $6, $4, WALK, $1, $82, $0 ; Daisy, walking around + object SPRITE_BOOK_MAP_DEX, $3, $3, STAY, NONE, $83, $0 ; map on table ; warp-to EVENT_DISP BLUES_HOUSE_WIDTH, $7, $2 diff --git a/data/map_header_banks.asm b/data/map_header_banks.asm index 060ebdc8..94393e3e 100644 --- a/data/map_header_banks.asm +++ b/data/map_header_banks.asm @@ -37,9 +37,9 @@ MapHeaderBanks:: ; fc3e4 (3f:43e4) db BANK(Route23_h) ; ROUTE_23 db BANK(Route24_h) ; ROUTE_24 db BANK(Route25_h) ; ROUTE_25 - db $12 ; db BANK(RedsHouse1F_h) - db $17 ; db BANK(RedsHouse2F_h) - db $06 ; db BANK(BluesHouse_h) + db BANK(RedsHouse1F_h) + db BANK(RedsHouse2F_h) + db BANK(BluesHouse_h) db $07 ; db BANK(OaksLab_h) db $11 ; db BANK(ViridianPokecenter_h) db $07 ; db BANK(ViridianMart_h) diff --git a/data/map_header_pointers.asm b/data/map_header_pointers.asm index 704e7c2d..eed956bf 100644 --- a/data/map_header_pointers.asm +++ b/data/map_header_pointers.asm @@ -37,9 +37,9 @@ MapHeaderPointers:: ; fc1f2 (3f:41f2) dw Route23_h dw Route24_h dw Route25_h - dw $40f6 ; dw RedsHouse1F_h - dw $40a4 ; dw RedsHouse2F_h - dw $5c2f ; dw BluesHouse_h + dw RedsHouse1F_h + dw RedsHouse2F_h + dw BluesHouse_h dw $4386 ; dw OaksLab_h ;id=40 dw $4251 ; dw ViridianPokecenter_h dw $4c6e ; dw ViridianMart_h diff --git a/main.asm b/main.asm index 8a5d2bae..60a25157 100755 --- a/main.asm +++ b/main.asm @@ -267,7 +267,13 @@ INCLUDE "scripts/ceruleancity.asm" INCLUDE "scripts/vermilioncity.asm" INCLUDE "scripts/celadoncity.asm" INCLUDE "scripts/fuchsiacity.asm" - dr $19c2f,$1a4ea + +INCLUDE "data/mapHeaders/blueshouse.asm" +INCLUDE "scripts/blueshouse.asm" +INCLUDE "data/mapObjects/blueshouse.asm" +BluesHouseBlocks: +INCBIN "maps/blueshouse.blk" + dr $19d05,$1a4ea INCLUDE "engine/overworld/npc_movement.asm" INCLUDE "engine/overworld/doors.asm" diff --git a/scripts/blueshouse.asm b/scripts/blueshouse.asm index 4a23df9e..959fb23e 100755 --- a/scripts/blueshouse.asm +++ b/scripts/blueshouse.asm @@ -1,8 +1,9 @@ BluesHouseScript: ; 19b3b (6:5b3b) call EnableAutoTextBoxDrawing - ld hl,BluesHouseScriptPointers - ld a,[W_BLUESHOUSECURSCRIPT] - jp JumpTable + ld hl, BluesHouseScriptPointers + xor a + call JumpTable + ret BluesHouseScriptPointers: ; 19b47 (6:5b47) dw BluesHouseScript0 @@ -12,10 +13,8 @@ BluesHouseScript0: ; 19b4b (6:5b4b) SetEvent EVENT_ENTERED_BLUES_HOUSE ; trigger the next script - ld a,1 - ld [W_BLUESHOUSECURSCRIPT],a - ret - + ld a, 1 + ld [W_BLUESHOUSECURSCRIPT], a BluesHouseScript1: ; 19b56 (6:5b56) ret @@ -27,31 +26,31 @@ BluesHouseTextPointers: ; 19b57 (6:5b57) BluesHouseText1: ; 19b5d (6:5b5d) TX_ASM CheckEvent EVENT_GOT_TOWN_MAP - jr nz,.GotMap + jr nz, .GotMap CheckEvent EVENT_GOT_POKEDEX - jr nz,.GiveMap - ld hl,DaisyInitialText + jr nz, .GiveMap + ld hl, DaisyInitialText call PrintText jr .done .GiveMap - ld hl,DaisyOfferMapText + ld hl, DaisyOfferMapText call PrintText lb bc, TOWN_MAP, 1 call GiveItem jr nc, .BagFull - ld a,HS_TOWN_MAP - ld [wMissableObjectIndex],a + ld a, HS_TOWN_MAP + ld [wMissableObjectIndex], a predef HideObject ; hide table map object - ld hl,GotMapText + ld hl, GotMapText call PrintText SetEvent EVENT_GOT_TOWN_MAP jr .done .GotMap - ld hl,DaisyUseMapText + ld hl, DaisyUseMapText call PrintText jr .done .BagFull - ld hl,DaisyBagFullText + ld hl, DaisyBagFullText call PrintText .done jp TextScriptEnd @@ -66,7 +65,7 @@ DaisyOfferMapText: ; 19baf (6:5baf) GotMapText: ; 19bb4 (6:5bb4) TX_FAR _GotMapText - db $11,"@" + db $11, "@" DaisyBagFullText: ; 19bba (6:5bba) TX_FAR _DaisyBagFullText -- cgit v1.2.3 From dcd1ecc18f40a8bd2c8e8bcc903153070518fd70 Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Sat, 28 May 2016 09:28:59 -0400 Subject: Oak's Lab Rewrite part 1 --- constants/hide_show_constants.asm | 44 +- data/mapObjects/oakslab.asm | 22 +- main.asm | 13 +- scripts/oakslab.asm | 1116 ++++--------------------------------- 4 files changed, 142 insertions(+), 1053 deletions(-) diff --git a/constants/hide_show_constants.asm b/constants/hide_show_constants.asm index 77820f75..1e7a4347 100755 --- a/constants/hide_show_constants.asm +++ b/constants/hide_show_constants.asm @@ -53,27 +53,29 @@ const_value = 0 const HS_STARTER_BALL_1 ; 2C const HS_STARTER_BALL_2 ; 2D const HS_STARTER_BALL_3 ; 2E - const HS_OAKS_LAB_OAK_1 ; 2F - const HS_POKEDEX_1 ; 30 - const HS_POKEDEX_2 ; 31 - const HS_OAKS_LAB_OAK_2 ; 32 - const HS_VIRIDIAN_GYM_GIOVANNI ; 33 X - const HS_VIRIDIAN_GYM_ITEM ; 34 - const HS_OLD_AMBER ; 35 X - const HS_UNKNOWN_DUNGEON_1_ITEM_1 ; 36 X - const HS_UNKNOWN_DUNGEON_1_ITEM_2 ; 37 X - const HS_UNKNOWN_DUNGEON_1_ITEM_3 ; 38 - const HS_POKEMONTOWER_2_RIVAL ; 39 X - const HS_POKEMONTOWER_3_ITEM ; 3A X - const HS_POKEMONTOWER_4_ITEM_1 ; 3B X - const HS_POKEMONTOWER_4_ITEM_2 ; 3C X - const HS_POKEMONTOWER_4_ITEM_3 ; 3D X - const HS_POKEMONTOWER_5_ITEM ; 3E X - const HS_POKEMONTOWER_6_ITEM_1 ; 3F X - const HS_POKEMONTOWER_6_ITEM_2 ; 40 X - const HS_POKEMONTOWER_7_ROCKET_1 ; 41 X - const HS_POKEMONTOWER_7_ROCKET_2 ; 42 X - const HS_POKEMONTOWER_7_ROCKET_3 ; 43 + +const_value SET $2D + const HS_OAKS_LAB_OAK_1 ; 2D + const HS_POKEDEX_1 ; 2E + const HS_POKEDEX_2 ; 2F + const HS_OAKS_LAB_OAK_2 ; 30 + const HS_VIRIDIAN_GYM_GIOVANNI ; 31 + const HS_VIRIDIAN_GYM_ITEM ; 32 + const HS_OLD_AMBER ; 33 X + const HS_UNKNOWN_DUNGEON_1_ITEM_1 ; 34 + const HS_UNKNOWN_DUNGEON_1_ITEM_2 ; 35 X + const HS_UNKNOWN_DUNGEON_1_ITEM_3 ; 36 X + const HS_POKEMONTOWER_2_RIVAL ; 37 X + const HS_POKEMONTOWER_3_ITEM ; 38 + const HS_POKEMONTOWER_4_ITEM_1 ; 39 X + const HS_POKEMONTOWER_4_ITEM_2 ; 3A X + const HS_POKEMONTOWER_4_ITEM_3 ; 3B X + const HS_POKEMONTOWER_5_ITEM ; 3C X + const HS_POKEMONTOWER_6_ITEM_1 ; 3D X + const HS_POKEMONTOWER_6_ITEM_2 ; 3E X + const HS_POKEMONTOWER_7_ROCKET_1 ; 3F X + const HS_POKEMONTOWER_7_ROCKET_2 ; 40 X + const HS_POKEMONTOWER_7_ROCKET_3 ; 41 X const_value SET $43 ; replace the tower rockets with jessie/james const HS_POKEMONTOWER_7_MR_FUJI ; 43 diff --git a/data/mapObjects/oakslab.asm b/data/mapObjects/oakslab.asm index 53d6b85b..779b458f 100755 --- a/data/mapObjects/oakslab.asm +++ b/data/mapObjects/oakslab.asm @@ -7,18 +7,16 @@ OaksLabObject: ; 0x1d40a (size=88) db $0 ; signs - db $b ; objects - object SPRITE_BLUE, $4, $3, STAY, NONE, $1, OPP_SONY1, $1 - object SPRITE_BALL, $6, $3, STAY, NONE, $2 ; person - object SPRITE_BALL, $7, $3, STAY, NONE, $3 ; person - object SPRITE_BALL, $8, $3, STAY, NONE, $4 ; person - object SPRITE_OAK, $5, $2, STAY, DOWN, $5 ; person - object SPRITE_BOOK_MAP_DEX, $2, $1, STAY, NONE, $6 ; person - object SPRITE_BOOK_MAP_DEX, $3, $1, STAY, NONE, $7 ; person - object SPRITE_OAK, $5, $a, STAY, UP, $8 ; person - object SPRITE_GIRL, $1, $9, WALK, $1, $9 ; person - object SPRITE_OAK_AIDE, $2, $a, STAY, NONE, $a ; person - object SPRITE_OAK_AIDE, $8, $a, STAY, NONE, $b ; person + db $9 ; objects + object SPRITE_BLUE, $4, $3, STAY, NONE, $41, OPP_SONY1, $1 + object SPRITE_BALL, $7, $3, STAY, NONE, $2 ; person + object SPRITE_OAK, $5, $2, STAY, DOWN, $3 ; person + object SPRITE_BOOK_MAP_DEX, $2, $1, STAY, NONE, $4 ; person + object SPRITE_BOOK_MAP_DEX, $3, $1, STAY, NONE, $5 ; person + object SPRITE_OAK, $5, $a, STAY, UP, $6 ; person + object SPRITE_GIRL, $1, $9, WALK, $1, $7 ; person + object SPRITE_OAK_AIDE, $2, $a, STAY, NONE, $8 ; person + object SPRITE_OAK_AIDE, $8, $a, STAY, NONE, $9 ; person ; warp-to EVENT_DISP OAKS_LAB_WIDTH, $b, $4 diff --git a/main.asm b/main.asm index 60a25157..d80a7939 100755 --- a/main.asm +++ b/main.asm @@ -289,15 +289,22 @@ INCLUDE "data/mapHeaders/route1.asm" INCLUDE "data/mapObjects/route1.asm" Route1Blocks: ; 1c0fc INCBIN "maps/route1.blk" - dr $1c1b0,$1c21e ; headers, objects, blocks + dr $1c1b0,$1c1c0 ; headers, objects, blocks +OaksLabBlocks: +INCBIN "maps/oakslab.blk" + dr $1c1de,$1c21e ; headers, objects, blocks INCLUDE "engine/clear_save.asm" INCLUDE "engine/predefs7.asm" INCLUDE "scripts/cinnabarisland.asm" - ; dr $1c2c2,$1c358 ; map scripts INCLUDE "scripts/route1.asm" - dr $1c386,$1e2ae ; map scripts + +INCLUDE "data/mapHeaders/oakslab.asm" +INCLUDE "scripts/oakslab.asm" +INCLUDE "data/mapObjects/oakslab.asm" + + dr $1cc6e,$1e2ae ; map scripts INCLUDE "engine/menu/oaks_pc.asm" diff --git a/scripts/oakslab.asm b/scripts/oakslab.asm index 2970fa2a..81d78359 100755 --- a/scripts/oakslab.asm +++ b/scripts/oakslab.asm @@ -7,7 +7,8 @@ OaksLabScript: ; 1cb0e (7:4b0e) ld [wDoNotWaitForButtonPressAfterDisplayingText], a ld hl, OaksLabScriptPointers ld a, [W_OAKSLABCURSCRIPT] - jp JumpTable + call JumpTable + ret OaksLabScriptPointers: ; 1cb28 (7:4b28) dw OaksLabScript0 @@ -29,6 +30,10 @@ OaksLabScriptPointers: ; 1cb28 (7:4b28) dw OaksLabScript16 dw OaksLabScript17 dw OaksLabScript18 + dw OaksLabScript19 + dw OaksLabScript20 + dw OaksLabScript21 + dw OaksLabScript22 OaksLabScript0: ; 1cb4e (7:4b4e) CheckEvent EVENT_OAK_APPEARED_IN_PALLET @@ -47,7 +52,7 @@ OaksLabScript0: ; 1cb4e (7:4b4e) ret OaksLabScript1: ; 1cb6e (7:4b6e) - ld a, $8 + ld a, $6 ld [H_SPRITEINDEX], a ld de, OakEntryMovement call MoveSprite @@ -90,7 +95,7 @@ OaksLabScript3: ; 1cba2 (7:4ba2) xor a ld [hSpriteFacingDirection], a call SetSpriteFacingDirectionAndDelay - ld a, $5 + ld a, $3 ld [H_SPRITEINDEX], a xor a ld [hSpriteFacingDirection], a @@ -104,7 +109,7 @@ PlayerEntryMovementRLE: ; 1cbcf (7:4bcf) db D_UP,$8 db $ff -OaksLabScript4: ; 1cbd2 (7:4bd2) +OaksLabScript4: ; 1cbd2 (7:445f) ld a, [wSimulatedJoypadStatesIndex] and a ret nz @@ -115,7 +120,6 @@ OaksLabScript4: ; 1cbd2 (7:4bd2) ld a, SPRITE_FACING_UP ld [hSpriteFacingDirection], a call SetSpriteFacingDirectionAndDelay - call UpdateSprites ld hl, wFlags_D733 res 1, [hl] call PlayDefaultMusic @@ -125,24 +129,29 @@ OaksLabScript4: ; 1cbd2 (7:4bd2) ret OaksLabScript5: ; 1cbfd (7:4bfd) + ld hl, wd74b + set 1, [hl] ld a, $fc ld [wJoyIgnore], a - ld a, $11 + ld a, $d ld [hSpriteIndexOrTextID], a call DisplayTextID call Delay3 - ld a, $12 + ld a, $e ld [hSpriteIndexOrTextID], a call DisplayTextID call Delay3 - ld a, $13 + ld a, $2 + ld [wSpriteStateData1 + 1 * $10 + 1], a + ld a, SPRITE_FACING_UP + ld [wSpriteStateData1 + 1 * $10 + 9], a + ld a, $f ld [hSpriteIndexOrTextID], a call DisplayTextID call Delay3 - ld a, $14 + ld a, $10 ld [hSpriteIndexOrTextID], a call DisplayTextID - SetEvent EVENT_OAK_ASKED_TO_CHOOSE_MON xor a ld [wJoyIgnore], a @@ -154,7 +163,7 @@ OaksLabScript6: ; 1cc36 (7:4c36) ld a, [wYCoord] cp $6 ret nz - ld a, $5 + ld a, $3 ld [H_SPRITEINDEX], a xor a ; SPRITE_FACING_DOWN ld [hSpriteFacingDirection], a @@ -165,7 +174,7 @@ OaksLabScript6: ; 1cc36 (7:4c36) ld [hSpriteFacingDirection], a call SetSpriteFacingDirectionAndDelay call UpdateSprites - ld a, $c + ld a, $a ld [hSpriteIndexOrTextID], a call DisplayTextID ld a, $1 @@ -191,1048 +200,121 @@ OaksLabScript7: ; 1cc72 (7:4c72) ret OaksLabScript8: ; 1cc80 (7:4c80) - ld a, [W_PLAYERSTARTER] - cp STARTER1 - jr z, .Charmander - cp STARTER2 - jr z, .Squirtle - jr .Bulbasaur -.Charmander - ld de, .MiddleBallMovement1 - ld a, [wYCoord] - cp $4 ; is the player standing below the table? - jr z, .asm_1ccf3 - ld de, .MiddleBallMovement2 - jr .asm_1ccf3 - -.MiddleBallMovement1 - db NPC_MOVEMENT_DOWN - db NPC_MOVEMENT_DOWN - db NPC_MOVEMENT_RIGHT - db NPC_MOVEMENT_RIGHT - db NPC_MOVEMENT_RIGHT - db NPC_MOVEMENT_UP - db $FF - -.MiddleBallMovement2 - db NPC_MOVEMENT_DOWN - db NPC_MOVEMENT_RIGHT - db NPC_MOVEMENT_RIGHT - db NPC_MOVEMENT_RIGHT - db $FF - -.Squirtle - ld de, .RightBallMovement1 - ld a, [wYCoord] - cp $4 ; is the player standing below the table? - jr z, .asm_1ccf3 - ld de, .RightBallMovement2 - jr .asm_1ccf3 - -.RightBallMovement1 - db NPC_MOVEMENT_DOWN - db NPC_MOVEMENT_DOWN - db NPC_MOVEMENT_RIGHT - db NPC_MOVEMENT_RIGHT - db NPC_MOVEMENT_RIGHT - db NPC_MOVEMENT_RIGHT - db NPC_MOVEMENT_UP - db $FF - -.RightBallMovement2 - db NPC_MOVEMENT_DOWN - db NPC_MOVEMENT_RIGHT - db NPC_MOVEMENT_RIGHT - db NPC_MOVEMENT_RIGHT - db NPC_MOVEMENT_RIGHT - db $FF - -.Bulbasaur - ld de, .LeftBallMovement1 - ld a, [wXCoord] - cp $9 ; is the player standing to the right of the table? - jr nz, .asm_1ccf3 - push hl ld a, $1 - ld [H_SPRITEINDEX], a - ld a, $4 - ld [H_SPRITEDATAOFFSET], a - call GetPointerWithinSpriteStateData1 - push hl - ld [hl], $4c - inc hl - inc hl - ld [hl], $0 - pop hl - inc h - ld [hl], $8 - inc hl - ld [hl], $9 - ld de, .LeftBallMovement2 ; the rival is not currently onscreen, so account for that - pop hl - jr .asm_1ccf3 - -.LeftBallMovement1 - db NPC_MOVEMENT_DOWN - db NPC_MOVEMENT_RIGHT ; not yet terminated! -.LeftBallMovement2 - db NPC_MOVEMENT_RIGHT - db $FF - -.asm_1ccf3 - ld a, $1 - ld [H_SPRITEINDEX], a + ld [hSpriteIndexOrTextID], a + ld de, .SonyPushesPlayerAwayFromEeveeBall call MoveSprite - ld a, $9 ld [W_OAKSLABCURSCRIPT], a ret +.SonyPushesPlayerAwayFromEeveeBall + db $00 + db $07 + db $07 + db $07 + db $FF + OaksLabScript9: ; 1cd00 (7:4d00) ld a, [wd730] bit 0, a - ret nz - ld a, $fc - ld [wJoyIgnore], a - ld a, $1 - ld [H_SPRITEINDEX], a - ld a, SPRITE_FACING_UP - ld [hSpriteFacingDirection], a - call SetSpriteFacingDirectionAndDelay - ld a, $d - ld [hSpriteIndexOrTextID], a - call DisplayTextID - ld a, [wRivalStarterBallSpriteIndex] - cp $2 - jr nz, .asm_1cd28 + jr nz, .asm_1c564 ld a, HS_STARTER_BALL_1 - jr .asm_1cd32 -.asm_1cd28 - cp $3 - jr nz, .asm_1cd30 - ld a, HS_STARTER_BALL_2 - jr .asm_1cd32 -.asm_1cd30 - ld a, HS_STARTER_BALL_3 -.asm_1cd32 ld [wMissableObjectIndex], a predef HideObject - call Delay3 - ld a, [wRivalStarterTemp] - ld [W_RIVALSTARTER], a - ld [wcf91], a - ld [wd11e], a - call GetMonName ld a, $1 ld [H_SPRITEINDEX], a ld a, SPRITE_FACING_UP ld [hSpriteFacingDirection], a call SetSpriteFacingDirectionAndDelay - ld a, $e + ld a, 1 + ld [W_RIVALSTARTER], a + ld a, EEVEE + ld [wd11e], a + call GetMonName + ld a, $FF ^ (A_BUTTON | B_BUTTON) + ld [wJoyIgnore], a + ld a, $11 ld [hSpriteIndexOrTextID], a call DisplayTextID - SetEvent EVENT_GOT_STARTER - xor a - ld [wJoyIgnore], a ld a, $a ld [W_OAKSLABCURSCRIPT], a ret -OaksLabScript10: ; 1cd6d (7:4d6d) +.asm_1c564 ld a, [wYCoord] - cp $6 + cp $4 ret nz - ld a, $1 - ld [H_SPRITEINDEX], a - xor a ; SPRITE_FACING_DOWN - ld [hSpriteFacingDirection], a - call SetSpriteFacingDirectionAndDelay - ld a, PLAYER_DIR_UP - ld [wPlayerMovingDirection], a - ld c, BANK(Music_MeetRival) - ld a, MUSIC_MEET_RIVAL - call PlayMusic - ld a, $f - ld [hSpriteIndexOrTextID], a - call DisplayTextID - ld a, $1 - ld [hNPCPlayerRelativePosPerspective], a - ld a, $1 - swap a - ld [hNPCSpriteOffset], a - predef CalcPositionOfPlayerRelativeToNPC - ld a, [hNPCPlayerYDistance] - dec a - ld [hNPCPlayerYDistance], a - predef FindPathToPlayer - ld de, wNPCMovementDirections2 - ld a, $1 - ld [H_SPRITEINDEX], a - call MoveSprite - - ld a, $b - ld [W_OAKSLABCURSCRIPT], a - ret - -OaksLabScript11: ; 1cdb9 (7:4db9) - ld a, [wd730] - bit 0, a + ld a, [wNPCNumScriptedSteps] + cp 1 ret nz - - ; define which team rival uses, and fight it - ld a, OPP_SONY1 - ld [wCurOpponent], a - ld a, [W_RIVALSTARTER] - cp STARTER2 - jr nz, .NotSquirtle - ld a, $1 - jr .done -.NotSquirtle - cp STARTER3 - jr nz, .Charmander - ld a, $2 - jr .done -.Charmander - ld a, $3 -.done - ld [wTrainerNo], a - ld a, $1 - ld [wSpriteIndex], a - call GetSpritePosition1 - ld hl, OaksLabText_1d3be - ld de, OaksLabText_1d3c3 - call SaveEndBattleTextPointers - ld hl, wd72d - set 6, [hl] - set 7, [hl] - xor a - ld [wJoyIgnore], a - ld a, PLAYER_DIR_UP - ld [wPlayerMovingDirection], a - ld a, $c - ld [W_OAKSLABCURSCRIPT], a - ret - -OaksLabScript12: ; 1ce03 (7:4e03) - ld a, $f0 - ld [wJoyIgnore], a - ld a, PLAYER_DIR_UP + ld a, PLAYER_DIR_LEFT ld [wPlayerMovingDirection], a - call UpdateSprites - ld a, $1 - ld [wSpriteIndex], a - call SetSpritePosition1 - ld a, $1 - ld [H_SPRITEINDEX], a - xor a ; SPRITE_FACING_DOWN - ld [hSpriteFacingDirection], a - call SetSpriteFacingDirectionAndDelay - predef HealParty - SetEvent EVENT_BATTLED_RIVAL_IN_OAKS_LAB - - ld a, $d - ld [W_OAKSLABCURSCRIPT], a - ret - -OaksLabScript13: ; 1ce32 (7:4e32) - ld c, 20 - call DelayFrames - ld a, $10 - ld [hSpriteIndexOrTextID], a - call DisplayTextID - callba Music_RivalAlternateStart - ld a, $1 - ld [H_SPRITEINDEX], a - ld de, .RivalExitMovement - call MoveSprite - ld a, [wXCoord] - cp $4 - ; move left or right depending on where the player is standing - jr nz, .moveLeft - ld a, NPC_MOVEMENT_RIGHT - jr .next -.moveLeft - ld a, NPC_MOVEMENT_LEFT -.next - ld [wNPCMovementDirections], a - - ld a, $e - ld [W_OAKSLABCURSCRIPT], a + ld a, $2 + ld [wSimulatedJoypadStatesIndex], a + ld a, D_RIGHT + ld [wSimulatedJoypadStatesEnd], a + ld [wSimulatedJoypadStatesEnd + 1], a + call StartSimulatingJoypadStates ret -.RivalExitMovement - db $E0 ; change sprite facing direction - db NPC_MOVEMENT_DOWN - db NPC_MOVEMENT_DOWN - db NPC_MOVEMENT_DOWN - db NPC_MOVEMENT_DOWN - db NPC_MOVEMENT_DOWN - db $FF - -OaksLabScript14: ; 1ce6d (7:4e6d) - ld a, [wd730] - bit 0, a - jr nz, .asm_1ce8c - ld a, HS_OAKS_LAB_RIVAL - ld [wMissableObjectIndex], a - predef HideObject - xor a - ld [wJoyIgnore], a - call PlayDefaultMusic ; reset to map music - ld a, $12 - ld [W_OAKSLABCURSCRIPT], a - jr .done -; make the player keep facing the rival as he walks away -.asm_1ce8c - ld a, [wNPCNumScriptedSteps] - cp $5 - jr nz, .asm_1cea8 - ld a, [wXCoord] - cp $4 - jr nz, .asm_1cea1 - ld a, SPRITE_FACING_RIGHT - ld [wSpriteStateData1 + 9], a - jr .done -.asm_1cea1 - ld a, SPRITE_FACING_LEFT - ld [wSpriteStateData1 + 9], a - jr .done -.asm_1cea8 +OaksLabScript10: ; 1cd6d (7:4d6d) + ld a, [wYCoord] cp $4 - ret nz - xor a ; ld a, SPRITE_FACING_DOWN - ld [wSpriteStateData1 + 9], a -.done - ret - -OaksLabScript15: ; 1ceb0 (7:4eb0) - xor a - ld [hJoyHeld], a - call EnableAutoTextBoxDrawing - ld a, $ff - ld [wNewSoundID], a - call PlaySound - callba Music_RivalAlternateStart - ld a, $15 - ld [hSpriteIndexOrTextID], a - call DisplayTextID - call OaksLabScript_1d02b - ld a, HS_OAKS_LAB_RIVAL - ld [wMissableObjectIndex], a - predef ShowObject - ld a, [wNPCMovementDirections2Index] - ld [wSavedNPCMovementDirections2Index], a - ld b, 0 - ld c, a - ld hl, wNPCMovementDirections2 - ld a, NPC_MOVEMENT_UP - call FillMemory - ld [hl], $ff - ld a, $1 - ld [H_SPRITEINDEX], a - ld de, wNPCMovementDirections2 - call MoveSprite - - ld a, $10 - ld [W_OAKSLABCURSCRIPT], a - ret - -OaksLabScript_1cefd: ; 1cefd (7:4efd) - ld a, $1 - ld [H_SPRITEINDEX], a - ld a, SPRITE_FACING_UP - ld [hSpriteFacingDirection], a - call SetSpriteFacingDirectionAndDelay - ld a, $8 - ld [H_SPRITEINDEX], a - xor a ; SPRITE_FACING_DOWN - ld [hSpriteFacingDirection], a - jp SetSpriteFacingDirectionAndDelay - -OaksLabScript16: ; 1cf12 (7:4f12) - ld a, [wd730] - bit 0, a - ret nz - call EnableAutoTextBoxDrawing - call PlayDefaultMusic - ld a, $fc - ld [wJoyIgnore], a - call OaksLabScript_1cefd - ld a, $16 - ld [hSpriteIndexOrTextID], a - call DisplayTextID - call DelayFrame - call OaksLabScript_1cefd - ld a, $17 - ld [hSpriteIndexOrTextID], a - call DisplayTextID - call DelayFrame - call OaksLabScript_1cefd - ld a, $18 - ld [hSpriteIndexOrTextID], a - call DisplayTextID - call DelayFrame - ld a, $19 - ld [hSpriteIndexOrTextID], a - call DisplayTextID - call Delay3 - ld a, HS_POKEDEX_1 - ld [wMissableObjectIndex], a - predef HideObject - ld a, HS_POKEDEX_2 - ld [wMissableObjectIndex], a - predef HideObject - call OaksLabScript_1cefd - ld a, $1a - ld [hSpriteIndexOrTextID], a - call DisplayTextID + jr z, .asm_1c599 ld a, $1 - ld [H_SPRITEINDEX], a - ld a, SPRITE_FACING_RIGHT - ld [hSpriteFacingDirection], a - call SetSpriteFacingDirectionAndDelay - call Delay3 - ld a, $1b - ld [hSpriteIndexOrTextID], a - call DisplayTextID - SetEvent EVENT_GOT_POKEDEX - SetEvent EVENT_OAK_GOT_PARCEL - ld a, HS_LYING_OLD_MAN - ld [wMissableObjectIndex], a - predef HideObject - ld a, HS_OLD_MAN - ld [wMissableObjectIndex], a - predef ShowObject - ld a, [wSavedNPCMovementDirections2Index] - ld b, 0 - ld c, a - ld hl, wNPCMovementDirections2 - xor a ; NPC_MOVEMENT_DOWN - call FillMemory - ld [hl], $ff - ld a, $ff - ld [wNewSoundID], a - call PlaySound - callba Music_RivalAlternateStart - ld a, $1 - ld [H_SPRITEINDEX], a - ld de, wNPCMovementDirections2 - call MoveSprite - - ld a, $11 - ld [W_OAKSLABCURSCRIPT], a - ret - -OaksLabScript17: ; 1cfd4 (7:4fd4) - ld a, [wd730] - bit 0, a - ret nz - call PlayDefaultMusic - ld a, HS_OAKS_LAB_RIVAL - ld [wMissableObjectIndex], a - predef HideObject - SetEvent EVENT_1ST_ROUTE22_RIVAL_BATTLE - ResetEventReuseHL EVENT_2ND_ROUTE22_RIVAL_BATTLE - SetEventReuseHL EVENT_ROUTE22_RIVAL_WANTS_BATTLE - ld a, HS_ROUTE_22_RIVAL_1 - ld [wMissableObjectIndex], a - predef ShowObject - ld a, $5 - ld [W_PALLETTOWNCURSCRIPT], a - xor a - ld [wJoyIgnore], a + ld [wSimulatedJoypadStatesIndex], a + ld a, D_LEFT + ld [wSimulatedJoypadStatesEnd], a + jr .asm_1c5a6 - ld a, $12 +.asm_1c599 + ld hl, wSimulatedJoypadStatesEnd + ld de, OaksLabRLE_PlayerWalksToOak + call DecodeRLEList + dec a + ld [wSimulatedJoypadStatesIndex], a +.asm_1c5a6 + call StartSimulatingJoypadStates + ld a, $b ld [W_OAKSLABCURSCRIPT], a ret -OaksLabScript18: ; 1d009 (7:5009) - ret - -OaksLabScript_RemoveParcel: ; 1d00a (7:500a) - ld hl, wBagItems - ld bc, $0000 -.loop - ld a, [hli] - cp $ff - ret z - cp OAKS_PARCEL - jr z, .foundParcel - inc hl - inc c - jr .loop -.foundParcel - ld hl, wNumBagItems - ld a, c - ld [wWhichPokemon], a - ld a, $1 - ld [wItemQuantity], a - jp RemoveItemFromInventory +OaksLabRLE_PlayerWalksToOak: + db D_UP, 2 + db D_LEFT, 3 + db D_DOWN, 1 + db D_LEFT, 1 + db $FF -OaksLabScript_1d02b: ; 1d02b (7:502b) - ld a, $7c - ld [$ffeb], a - ld a, $8 - ld [$ffee], a - ld a, [wYCoord] - cp $3 - jr nz, .asm_1d045 - ld a, $4 - ld [wNPCMovementDirections2Index], a - ld a, $30 - ld b, $b - jr .asm_1d068 -.asm_1d045 - cp $1 - jr nz, .asm_1d054 - ld a, $2 - ld [wNPCMovementDirections2Index], a - ld a, $30 - ld b, $9 - jr .asm_1d068 -.asm_1d054 - ld a, $3 - ld [wNPCMovementDirections2Index], a - ld b, $a - ld a, [wXCoord] - cp $4 - jr nz, .asm_1d066 - ld a, $40 - jr .asm_1d068 -.asm_1d066 - ld a, $20 -.asm_1d068 - ld [$ffec], a - ld a, b - ld [$ffed], a - ld a, $1 - ld [wSpriteIndex], a - call SetSpritePosition1 - ret -OaksLabScript_1d076: ; 1d076 (7:5076) - ld hl, OaksLabTextPointers + $36 ; starts at OaksLabText28 - ld a, l - ld [wMapTextPtr], a - ld a, h - ld [wMapTextPtr+1], a - ret +OaksLabScript11: + dr $1c5b8,$1c5ce +OaksLabScript12: + dr $1c5ce,$1c61a +OaksLabScript13: + dr $1c61a,$1c651 +OaksLabScript14: + dr $1c651,$1c692 +OaksLabScript15: + dr $1c692,$1c6ce +OaksLabScript16: + dr $1c6ce,$1c70b +OaksLabScript17: + dr $1c70b,$1c72d +OaksLabScript18: + dr $1c72d,$1c73e +OaksLabScript19: + dr $1c73e,$1c7a4 +OaksLabScript20: + dr $1c7a4,$1c866 +OaksLabScript21: + dr $1c866,$1c896 +OaksLabScript22: + dr $1c896,$1c904 +OaksLabScript_1d076: + dr $1c904,$1c910 OaksLabTextPointers: ; 1d082 (7:5082) - dw OaksLabText1 - dw OaksLabText2 - dw OaksLabText3 - dw OaksLabText4 - dw OaksLabText5 - dw OaksLabText6 - dw OaksLabText7 - dw OaksLabText8 - dw OaksLabText9 - dw OaksLabText10 - dw OaksLabText11 - dw OaksLabText12 - dw OaksLabText13 - dw OaksLabText14 - dw OaksLabText15 - dw OaksLabText16 - dw OaksLabText17 - dw OaksLabText18 - dw OaksLabText19 - dw OaksLabText20 - dw OaksLabText21 - dw OaksLabText22 - dw OaksLabText23 - dw OaksLabText24 - dw OaksLabText25 - dw OaksLabText26 - dw OaksLabText27 - dw OaksLabText28 - dw OaksLabText29 - dw OaksLabText30 - dw OaksLabText31 - dw OaksLabText32 - dw OaksLabText33 - dw OaksLabText34 - dw OaksLabText35 - dw OaksLabText36 - dw OaksLabText37 - dw OaksLabText38 - -OaksLabText28: ; 1d0ce (7:50ce) -OaksLabText1: ; 1d0ce (7:50ce) - TX_ASM - CheckEvent EVENT_FOLLOWED_OAK_INTO_LAB_2 - jr nz, .asm_1d0de - ld hl, OaksLabGaryText1 - call PrintText - jr .asm_1d0f0 -.asm_1d0de - bit 2, a - jr nz, .asm_1d0ea - ld hl, OaksLabText40 - call PrintText - jr .asm_1d0f0 -.asm_1d0ea - ld hl, OaksLabText41 - call PrintText -.asm_1d0f0 - jp TextScriptEnd - -OaksLabGaryText1: ; 1d0f3 (7:50f3) - TX_FAR _OaksLabGaryText1 - db "@" - -OaksLabText40: ; 1d0f8 (7:50f8) - TX_FAR _OaksLabText40 - db "@" - -OaksLabText41: ; 1d0fd (7:50fd) - TX_FAR _OaksLabText41 - db "@" - -OaksLabText29: ; 1d102 (7:5102) -OaksLabText2: ; 1d102 (7:5102) - TX_ASM - ld a, STARTER2 - ld [wRivalStarterTemp], a - ld a, $3 - ld [wRivalStarterBallSpriteIndex], a - ld a, STARTER1 - ld b, $2 - jr OaksLabScript_1d133 - -OaksLabText30: ; 1d113 (7:5113) -OaksLabText3: ; 1d113 (7:5113) - TX_ASM - ld a, STARTER3 - ld [wRivalStarterTemp], a - ld a, $4 - ld [wRivalStarterBallSpriteIndex], a - ld a, STARTER2 - ld b, $3 - jr OaksLabScript_1d133 - -OaksLabText31: ; 1d124 (7:5124) -OaksLabText4: ; 1d124 (7:5124) - TX_ASM - ld a, STARTER1 - ld [wRivalStarterTemp], a - ld a, $2 - ld [wRivalStarterBallSpriteIndex], a - ld a, STARTER3 - ld b, $4 - -OaksLabScript_1d133: ; 1d133 (7:5133) - ld [wcf91], a - ld [wd11e], a - ld a, b - ld [wSpriteIndex], a - CheckEvent EVENT_GOT_STARTER - jp nz, OaksLabScript_1d22d - CheckEventReuseA EVENT_OAK_ASKED_TO_CHOOSE_MON - jr nz, OaksLabScript_1d157 - ld hl, OaksLabText39 - call PrintText - jp TextScriptEnd - -OaksLabText39: ; 1d152 (7:5152) - TX_FAR _OaksLabText39 - db "@" - -OaksLabScript_1d157: ; 1d157 (7:5157) - ld a, $5 - ld [H_SPRITEINDEX], a - ld a, $9 - ld [H_SPRITEDATAOFFSET], a - call GetPointerWithinSpriteStateData1 - ld [hl], SPRITE_FACING_DOWN - ld a, $1 - ld [H_SPRITEINDEX], a - ld a, $9 - ld [H_SPRITEDATAOFFSET], a - call GetPointerWithinSpriteStateData1 - ld [hl], SPRITE_FACING_RIGHT - ld hl, wd730 - set 6, [hl] - predef StarterDex - ld hl, wd730 - res 6, [hl] - call ReloadMapData - ld c, 10 - call DelayFrames - ld a, [wSpriteIndex] - cp $2 - jr z, OaksLabLookAtCharmander - cp $3 - jr z, OaksLabLookAtSquirtle - jr OaksLabLookAtBulbasaur - -OaksLabLookAtCharmander: ; 1d195 (7:5195) - ld hl, OaksLabCharmanderText - jr OaksLabMonChoiceMenu -OaksLabCharmanderText: ; 1d19a (7:519a) - TX_FAR _OaksLabCharmanderText - db "@" - -OaksLabLookAtSquirtle: ; 1d19f (7:519f) - ld hl, OaksLabSquirtleText - jr OaksLabMonChoiceMenu -OaksLabSquirtleText: ; 1d1a4 (7:51a4) - TX_FAR _OaksLabSquirtleText - db "@" - -OaksLabLookAtBulbasaur: ; 1d1a9 (7:51a9) - ld hl, OaksLabBulbasaurText - jr OaksLabMonChoiceMenu -OaksLabBulbasaurText: ; 1d1ae (7:51ae) - TX_FAR _OaksLabBulbasaurText - db "@" - -OaksLabMonChoiceMenu: ; 1d1b3 (7:51b3) - call PrintText - ld a, $1 - ld [wDoNotWaitForButtonPressAfterDisplayingText], a - call YesNoChoice ; yes/no menu - ld a, [wCurrentMenuItem] - and a - jr nz, OaksLabMonChoiceEnd - ld a, [wcf91] - ld [W_PLAYERSTARTER], a - ld [wd11e], a - call GetMonName - ld a, [wSpriteIndex] - cp $2 - jr nz, .asm_1d1db - ld a, HS_STARTER_BALL_1 - jr .asm_1d1e5 -.asm_1d1db - cp $3 - jr nz, .asm_1d1e3 - ld a, HS_STARTER_BALL_2 - jr .asm_1d1e5 -.asm_1d1e3 - ld a, HS_STARTER_BALL_3 -.asm_1d1e5 - ld [wMissableObjectIndex], a - predef HideObject - ld a, $1 - ld [wDoNotWaitForButtonPressAfterDisplayingText], a - ld hl, OaksLabMonEnergeticText - call PrintText - ld hl, OaksLabReceivedMonText - call PrintText - xor a ; PLAYER_PARTY_DATA - ld [wMonDataLocation], a - ld a, 5 - ld [wCurEnemyLVL], a - ld a, [wcf91] - ld [wd11e], a - call AddPartyMon - ld hl, wd72e - set 3, [hl] - ld a, $fc - ld [wJoyIgnore], a - ld a, $8 - ld [W_OAKSLABCURSCRIPT], a -OaksLabMonChoiceEnd: ; 1d21f (7:521f) - jp TextScriptEnd - -OaksLabMonEnergeticText: ; 1d222 (7:5222) - TX_FAR _OaksLabMonEnergeticText - db "@" - -OaksLabReceivedMonText: ; 1d227 (7:5227) - TX_FAR _OaksLabReceivedMonText - db $11, "@" - -OaksLabScript_1d22d: ; 1d22d (7:522d) - ld a, $5 - ld [H_SPRITEINDEX], a - ld a, $9 - ld [H_SPRITEDATAOFFSET], a - call GetPointerWithinSpriteStateData1 - ld [hl], $0 - ld hl, OaksLabLastMonText - call PrintText - jp TextScriptEnd - -OaksLabLastMonText: ; 1d243 (7:5243) - TX_FAR _OaksLabLastMonText - db "@" - -OaksLabText32: ; 1d248 (7:5248) -OaksLabText5: ; 1d248 (7:5248) - TX_ASM - CheckEvent EVENT_PALLET_AFTER_GETTING_POKEBALLS - jr nz, .asm_1d266 - ld hl, wPokedexOwned - ld b, wPokedexOwnedEnd - wPokedexOwned - call CountSetBits - ld a, [wNumSetBits] - cp 2 - jr c, .asm_1d279 - CheckEvent EVENT_GOT_POKEDEX - jr z, .asm_1d279 -.asm_1d266 - ld hl, OaksLabText_1d31d - call PrintText - ld a, $1 - ld [wDoNotWaitForButtonPressAfterDisplayingText], a - predef DisplayDexRating - jp .asm_1d2ed -.asm_1d279 - ld b,POKE_BALL - call IsItemInBag - jr nz, .asm_1d2e7 - CheckEvent EVENT_BEAT_ROUTE22_RIVAL_1ST_BATTLE - jr nz, .asm_1d2d0 - CheckEvent EVENT_GOT_POKEDEX - jr nz, .asm_1d2c8 - CheckEventReuseA EVENT_BATTLED_RIVAL_IN_OAKS_LAB - jr nz, .asm_1d2a9 - ld a, [wd72e] - bit 3, a - jr nz, .asm_1d2a1 - ld hl, OaksLabText_1d2f0 - call PrintText - jr .asm_1d2ed -.asm_1d2a1 - ld hl, OaksLabText_1d2f5 - call PrintText - jr .asm_1d2ed -.asm_1d2a9 - ld b, OAKS_PARCEL - call IsItemInBag - jr nz, .asm_1d2b8 - ld hl, OaksLabText_1d2fa - call PrintText - jr .asm_1d2ed -.asm_1d2b8 - ld hl, OaksLabDeliverParcelText - call PrintText - call OaksLabScript_RemoveParcel - ld a, $f - ld [W_OAKSLABCURSCRIPT], a - jr .asm_1d2ed -.asm_1d2c8 - ld hl, OaksLabAroundWorldText - call PrintText - jr .asm_1d2ed -.asm_1d2d0 - CheckAndSetEvent EVENT_GOT_POKEBALLS_FROM_OAK - jr nz, .asm_1d2e7 - lb bc, POKE_BALL, 5 - call GiveItem - ld hl, OaksLabGivePokeballsText - call PrintText - jr .asm_1d2ed -.asm_1d2e7 - ld hl, OaksLabPleaseVisitText - call PrintText -.asm_1d2ed - jp TextScriptEnd - -OaksLabText_1d2f0: ; 1d2f0 (7:52f0) - TX_FAR _OaksLabText_1d2f0 - db "@" - -OaksLabText_1d2f5: ; 1d2f5 (7:52f5) - TX_FAR _OaksLabText_1d2f5 - db "@" - -OaksLabText_1d2fa: ; 1d2fa (7:52fa) - TX_FAR _OaksLabText_1d2fa - db "@" - -OaksLabDeliverParcelText: ; 1d2ff (7:52ff) - TX_FAR _OaksLabDeliverParcelText1 - db $11 - TX_FAR _OaksLabDeliverParcelText2 - db "@" - -OaksLabAroundWorldText: ; 1d309 (7:5309) - TX_FAR _OaksLabAroundWorldText - db "@" - -OaksLabGivePokeballsText: ; 1d30e (7:530e) - TX_FAR _OaksLabGivePokeballsText1 - db $11 - TX_FAR _OaksLabGivePokeballsText2 - db "@" - -OaksLabPleaseVisitText: ; 1d318 (7:5318) - TX_FAR _OaksLabPleaseVisitText - db "@" - -OaksLabText_1d31d: ; 1d31d (7:531d) - TX_FAR _OaksLabText_1d31d - db "@" - -OaksLabText34: ; 1d322 (7:5322) -OaksLabText33: ; 1d322 (7:5322) -OaksLabText7: ; 1d322 (7:5322) -OaksLabText6: ; 1d322 (7:5322) - TX_ASM - ld hl, OaksLabText_1d32c - call PrintText - jp TextScriptEnd - -OaksLabText_1d32c: ; 1d32c (7:532c) - TX_FAR _OaksLabText_1d32c - db "@" - -OaksLabText35: ; 1d331 (7:5331) -OaksLabText8: ; 1d331 (7:5331) - TX_FAR _OaksLabText8 - db "@" - -OaksLabText36: ; 1d336 (7:5336) -OaksLabText9: ; 1d336 (7:5336) - TX_ASM - ld hl, OaksLabText_1d340 - call PrintText - jp TextScriptEnd - -OaksLabText_1d340: ; 1d340 (7:5340) - TX_FAR _OaksLabText_1d340 - db "@" - -OaksLabText17: ; 1d345 (7:5345) - TX_ASM - ld hl, OaksLabRivalWaitingText - call PrintText - jp TextScriptEnd - -OaksLabRivalWaitingText: ; 1d34f (7:534f) - TX_FAR _OaksLabRivalWaitingText - db "@" - -OaksLabText18: ; 1d354 (7:5354) - TX_ASM - ld hl, OaksLabChooseMonText - call PrintText - jp TextScriptEnd - -OaksLabChooseMonText: ; 1d35e (7:535e) - TX_FAR _OaksLabChooseMonText - db "@" - -OaksLabText19: ; 1d363 (7:5363) - TX_ASM - ld hl, OaksLabRivalInterjectionText - call PrintText - jp TextScriptEnd - -OaksLabRivalInterjectionText: ; 1d36d (7:536d) - TX_FAR _OaksLabRivalInterjectionText - db "@" - -OaksLabText20: ; 1d372 (7:5372) - TX_ASM - ld hl, OaksLabBePatientText - call PrintText - jp TextScriptEnd - -OaksLabBePatientText: ; 1d37c (7:537c) - TX_FAR _OaksLabBePatientText - db "@" - -OaksLabText12: ; 1d381 (7:5381) - TX_ASM - ld hl, OaksLabLeavingText - call PrintText - jp TextScriptEnd - -OaksLabLeavingText: ; 1d38b (7:538b) - TX_FAR _OaksLabLeavingText - db "@" - -OaksLabText13: ; 1d390 (7:5390) - TX_ASM - ld hl, OaksLabRivalPickingMonText - call PrintText - jp TextScriptEnd - -OaksLabRivalPickingMonText: ; 1d39a (7:539a) - TX_FAR _OaksLabRivalPickingMonText - db "@" - -OaksLabText14: ; 1d39f (7:539f) - TX_ASM - ld hl, OaksLabRivalReceivedMonText - call PrintText - jp TextScriptEnd - -OaksLabRivalReceivedMonText: ; 1d3a9 (7:53a9) - TX_FAR _OaksLabRivalReceivedMonText - db $11, "@" - -OaksLabText15: ; 1d3af (7:53af) - TX_ASM - ld hl, OaksLabRivalChallengeText - call PrintText - jp TextScriptEnd - -OaksLabRivalChallengeText: ; 1d3b9 (7:53b9) - TX_FAR _OaksLabRivalChallengeText - db "@" - -OaksLabText_1d3be: ; 1d3be (7:53be) - TX_FAR _OaksLabText_1d3be - db "@" - -OaksLabText_1d3c3: ; 1d3c3 (7:53c3) - TX_FAR _OaksLabText_1d3c3 - db "@" - -OaksLabText16: ; 1d3c8 (7:53c8) - TX_ASM - ld hl, OaksLabRivalToughenUpText - call PrintText - jp TextScriptEnd - -OaksLabRivalToughenUpText: ; 1d3d2 (7:53d2) - TX_FAR _OaksLabRivalToughenUpText - db "@" - -OaksLabText21: ; 1d3d7 (7:53d7) - TX_FAR _OaksLabText21 - db "@" - -OaksLabText22: ; 1d3dc (7:53dc) - TX_FAR _OaksLabText22 - db "@" - -OaksLabText23: ; 1d3e1 (7:53e1) - TX_FAR _OaksLabText23 - db "@" - -OaksLabText24: ; 1d3e6 (7:53e6) - TX_FAR _OaksLabText24 - db "@" - -OaksLabText25: ; 1d3eb (7:53eb) - TX_FAR _OaksLabText25 - db $11, "@" - -OaksLabText26: ; 1d3f1 (7:53f1) - TX_FAR _OaksLabText26 - db "@" - -OaksLabText27: ; 1d3f6 (7:53f6) - TX_FAR _OaksLabText27 - db "@" - -OaksLabText38: ; 1d3fb (7:53fb) -OaksLabText37: ; 1d3fb (7:53fb) -OaksLabText11: ; 1d3fb (7:53fb) -OaksLabText10: ; 1d3fb (7:53fb) - TX_ASM - ld hl, OaksLabText_1d405 - call PrintText - jp TextScriptEnd - -OaksLabText_1d405: ; 1d405 (7:5405) - TX_FAR _OaksLabText_1d405 - db "@" + dr $1c910,$1cc22 -- cgit v1.2.3 From 034b268aad8c52ae29d239c20895289067bdc29b Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Sat, 28 May 2016 12:07:11 -0400 Subject: Oak's Lab Rewrite part 2 --- scripts/oakslab.asm | 189 ++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 182 insertions(+), 7 deletions(-) diff --git a/scripts/oakslab.asm b/scripts/oakslab.asm index 81d78359..20b5e3b9 100755 --- a/scripts/oakslab.asm +++ b/scripts/oakslab.asm @@ -290,17 +290,186 @@ OaksLabRLE_PlayerWalksToOak: OaksLabScript11: - dr $1c5b8,$1c5ce + ld a, [wSimulatedJoypadStatesIndex] + and a + ret nz + ld a, $12 + ld [hSpriteIndexOrTextID], a + call DisplayTextID + xor a + ld [wJoyIgnore], a + + ld a, $c + ld [W_OAKSLABCURSCRIPT], a + ret + OaksLabScript12: - dr $1c5ce,$1c61a + ld a, [wYCoord] + cp $6 + ret nz + ld a, PLAYER_DIR_UP + ld [wPlayerMovingDirection], a + ld a, $1 + ld [hSpriteIndexOrTextID], a + xor a + ld [hSpriteFacingDirection], a + call SetSpriteFacingDirectionAndDelay + ld c, BANK(Music_MeetRival) + ld a, MUSIC_MEET_RIVAL + call PlayMusic + ld a, $b + ld [hSpriteIndexOrTextID], a + call DisplayTextID + ld a, $1 + ld [hNPCPlayerRelativePosPerspective], a + ld a, $1 + swap a + ld [hNPCPlayerYDistance], a + predef CalcPositionOfPlayerRelativeToNPC + ld a, [hNPCPlayerYDistance] + dec a + ld [hNPCPlayerYDistance], a + predef FindPathToPlayer + ld de, wNPCMovementDirections2 + ld a, $1 + ld [hSpriteIndexOrTextID], a + call MoveSprite + ld a, $d + ld [W_OAKSLABCURSCRIPT], a + ret + OaksLabScript13: - dr $1c61a,$1c651 + ld a, [wd730] + bit 0, a + ret nz + ld a, $1 + ld [wSpriteIndex], a + call GetSpritePosition1 + ld a, OPP_SONY1 + ld [wCurOpponent], a + ld a, $1 + ld [wTrainerNo], a + ld hl, OaksLabRivalDefeatedText + ld de, OaksLabRivalBeatYouText + call SaveEndBattleTextPointers + ld hl, wd72d + set 6, [hl] + set 7, [hl] + xor a + ld [wJoyIgnore], a + ld a, PLAYER_DIR_UP + ld [wPlayerMovingDirection], a + ld a, $e + ld [W_OAKSLABCURSCRIPT], a + ret + OaksLabScript14: - dr $1c651,$1c692 + ld a, $ff + ld [wJoyIgnore], a + + ; If you beat your rival here, his Eevee will evolve into + ; Jolteon if you beat him on Route 22, or Flareon if you + ; skip or lose that battle. + ; Otherwise, it will evolve into Vaporeon. + ld a, [wBattleResult] + and a + ld b, $3 + jr nz, .asm_1c660 + ld b, $2 +.asm_1c660 + ld a, b + ld [W_RIVALSTARTER], a + + ld a, $ff ^ (A_BUTTON | B_BUTTON) + ld [wJoyIgnore], a + ld a, PLAYER_DIR_UP + ld [wPlayerMovingDirection], a + call UpdateSprites + ld a, $1 + ld [wSpriteIndex], a + call SetSpritePosition1 + ld a, $2 + ld [wSpriteStateData1 + 1 * $10 + 1], a + xor a + ld [wSpriteStateData1 + 1 * $10 + 9], a + predef HealParty + ld hl, wd74b + set 3, [hl] + ld a, $f + ld [W_OAKSLABCURSCRIPT], a + ret + OaksLabScript15: - dr $1c692,$1c6ce + ld c, 20 + call DelayFrames + ld a, $c + ld [hSpriteIndexOrTextID], a + call DisplayTextID + callba Music_RivalAlternateStart + ld a, $1 + ld [hSpriteIndexOrTextID], a + ld de, .OaksLabMovement_RivalWalksOut1 + call MoveSprite + ld a, [wXCoord] + cp $4 + jr nz, .asm_1c6bb + ld a, NPC_MOVEMENT_RIGHT + jr .asm_1c6bd + +.asm_1c6bb + ld a, NPC_MOVEMENT_LEFT +.asm_1c6bd + ld [wNPCMovementDirections], a + ld a, $10 + ld [W_OAKSLABCURSCRIPT], a + ret + +.OaksLabMovement_RivalWalksOut1 + db $e0 + db $00 + db $04 + db $04 + db $04 + db $04 + db $04 + db $ff + OaksLabScript16: - dr $1c6ce,$1c70b + ld a, [wd730] + bit 0, a + jr nz, .asm_1c6ed + ld a, $ff ^ (A_BUTTON | B_BUTTON) + ld [wJoyIgnore], a + ld a, HS_OAKS_LAB_RIVAL + ld [wMissableObjectIndex], a + predef HideObject + call PlayDefaultMusic + ld a, $11 + ld [W_OAKSLABCURSCRIPT], a + ret + +.asm_1c6ed + ld a, [wNPCNumScriptedSteps] + cp 5 + jr nz, .asm_1c703 + ld a, [wXCoord] + cp 4 + jr nz, .asm_1c6ff + ld a, SPRITE_FACING_RIGHT + jr .asm_1c707 + +.asm_1c6ff + ld a, SPRITE_FACING_LEFT + jr .asm_1c707 + +.asm_1c703 + cp 4 + ret nz + xor a +.asm_1c707 + ld [wSpriteStateData1 + 9], a + ret + OaksLabScript17: dr $1c70b,$1c72d OaksLabScript18: @@ -317,4 +486,10 @@ OaksLabScript_1d076: dr $1c904,$1c910 OaksLabTextPointers: ; 1d082 (7:5082) - dr $1c910,$1cc22 + dr $1c910,$1cbae + +OaksLabRivalDefeatedText: + dr $1cbae,$1cbb3 + +OaksLabRivalBeatYouText: + dr $1cbb3,$1cc22 -- cgit v1.2.3 From 49c31daedc972c2f61fcfb38021c80807ada917f Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Sat, 28 May 2016 14:00:44 -0400 Subject: Oak's Lab Rewrite part 3 --- constants/hide_show_constants.asm | 4 +- constants/predef_constants.asm | 6 +- engine/bank3c.asm | 1 + scripts/oakslab.asm | 242 ++++++++++++++++++++++++++++++++++++-- 4 files changed, 240 insertions(+), 13 deletions(-) diff --git a/constants/hide_show_constants.asm b/constants/hide_show_constants.asm index 1e7a4347..5a6347d5 100755 --- a/constants/hide_show_constants.asm +++ b/constants/hide_show_constants.asm @@ -7,8 +7,8 @@ const_value = 0 const HS_PALLET_TOWN_OAK ; 00 - const HS_PIKACHU ; 01 - const HS_LYING_OLD_MAN ; 02 + const HS_LYING_OLD_MAN ; 01 + const HS_PERSON_02 ; 02 const HS_OLD_MAN ; 03 const HS_MUSEUM_GUY ; 04 const HS_GYM_GUY ; 05 diff --git a/constants/predef_constants.asm b/constants/predef_constants.asm index d1e81a72..76ff24a9 100644 --- a/constants/predef_constants.asm +++ b/constants/predef_constants.asm @@ -16,15 +16,15 @@ const_value = 0 predef_const DivideBCDPredef3 predef_const DivideBCDPredef4 predef_const InitPlayerData - predef_const FlagActionPredef - predef_const HideObject + predef_const FlagActionPredef ; 10 + predef_const HideObject ; 11 predef_const IsObjectHidden predef_const ApplyOutOfBattlePoisonDamage predef_const AnyPartyAlive predef_const ShowObject predef_const ShowObject2 predef_const ReplaceTileBlock - predef_const InitPlayerData2 + predef_const InitPlayerData2 ; 18 predef_const LoadTilesetHeader predef_const LearnMoveFromLevelUp predef_const LearnMove diff --git a/engine/bank3c.asm b/engine/bank3c.asm index 54649b0b..c3726c5e 100644 --- a/engine/bank3c.asm +++ b/engine/bank3c.asm @@ -349,6 +349,7 @@ INCLUDE "scripts/celadoncity2.asm" INCLUDE "scripts/route1_2.asm" INCLUDE "scripts/route22_2.asm" INCLUDE "scripts/redshouse1f2.asm" +Func_f1be0: dr $f1be0, $f220e INCLUDE "data/mapHeaders/beach_house.asm" diff --git a/scripts/oakslab.asm b/scripts/oakslab.asm index 20b5e3b9..95ee4f25 100755 --- a/scripts/oakslab.asm +++ b/scripts/oakslab.asm @@ -471,22 +471,248 @@ OaksLabScript16: ret OaksLabScript17: - dr $1c70b,$1c72d +; Pikachu comes out + ld a, SPRITE_FACING_UP + ld [wSpriteStateData1 + 9], a + ld a, $2 + ld [wd431], a + callba Func_fc4fa + call Func_1525 + ld a, $1a + ld [hSpriteIndexOrTextID], a + call DisplayTextID + ld a, $12 + ld [W_OAKSLABCURSCRIPT], a + ret + OaksLabScript18: - dr $1c72d,$1c73e + ld a, $1b + ld [hSpriteIndexOrTextID], a + call DisplayTextID + xor a + ld [wJoyIgnore], a + ld a, $16 + ld [W_OAKSLABCURSCRIPT], a + ret + OaksLabScript19: - dr $1c73e,$1c7a4 + xor a + ld [hJoyHeld], a + call EnableAutoTextBoxDrawing + call StopAllMusic + callba Music_RivalAlternateStart + ld a, $13 + ld [hSpriteIndexOrTextID], a + call DisplayTextID + callab Func_f1be0 + call OaksLabScript_1c8b9 + ld a, HS_OAKS_LAB_RIVAL + ld [wMissableObjectIndex], a + predef ShowObject + ld a, [wNPCMovementDirections2Index] + ld [wSavedNPCMovementDirections2Index], a + ld b, 0 + ld c, a + ld hl, wNPCMovementDirections2 + ld a, NPC_MOVEMENT_UP + call FillMemory + ld [hl], $ff + ld a, $1 + ld [hSpriteIndexOrTextID], a + ld de, wNPCMovementDirections2 + call MoveSprite + ld a, $14 + ld [W_OAKSLABCURSCRIPT], a + ret + +OaksLabScript_1c78e: + ld a, $1 + ld [hSpriteIndexOrTextID], a + ld a, SPRITE_FACING_UP + ld [hSpriteFacingDirection], a + call SetSpriteFacingDirectionAndDelay + ld a, $6 + ld [hSpriteIndexOrTextID], a + xor a + ld [hSpriteFacingDirection], a + call SetSpriteFacingDirectionAndDelay + ret + OaksLabScript20: - dr $1c7a4,$1c866 + ld a, [wd730] + bit 0, a + ret nz + call EnableAutoTextBoxDrawing + call PlayDefaultMusic + ld a, $ff ^ (A_BUTTON | B_BUTTON) + ld [wJoyIgnore], a + call OaksLabScript_1c78e + ld a, $14 + ld [hSpriteIndexOrTextID], a + call DisplayTextID + call DelayFrame + call OaksLabScript_1c78e + ld a, $15 + ld [hSpriteIndexOrTextID], a + call DisplayTextID + call DelayFrame + call OaksLabScript_1c78e + ld a, $16 + ld [hSpriteIndexOrTextID], a + call DisplayTextID + call DelayFrame + ld a, $17 + ld [hSpriteIndexOrTextID], a + call DisplayTextID + call Delay3 + ld a, HS_POKEDEX_1 + ld [wMissableObjectIndex], a + predef HideObject + ld a, HS_POKEDEX_2 + ld [wMissableObjectIndex], a + predef HideObject + call OaksLabScript_1c78e + ld a, $18 + ld [hSpriteIndexOrTextID], a + call DisplayTextID + ld a, $1 + ld [hSpriteIndexOrTextID], a + ld a, SPRITE_FACING_RIGHT + ld [hSpriteFacingDirection], a + call SetSpriteFacingDirectionAndDelay + call Delay3 + ld a, $19 + ld [hSpriteIndexOrTextID], a + call DisplayTextID + SetEvent EVENT_GOT_POKEDEX + ld a, $1 + ld [W_VIRIDIANCITYCURSCRIPT], a + SetEvent EVENT_OAK_GOT_PARCEL + ld a, HS_LYING_OLD_MAN + ld [wMissableObjectIndex], a + predef HideObject + ld a, HS_OLD_MAN + ld [wMissableObjectIndex], a + predef ShowObject + ld a, [wSavedNPCMovementDirections2Index] + ld b, 0 + ld c, a + ld hl, wNPCMovementDirections2 + xor a + call FillMemory + ld [hl], $ff + call StopAllMusic + callba Music_RivalAlternateStart + ld a, $1 + ld [hSpriteIndexOrTextID], a + ld de, wNPCMovementDirections2 + call MoveSprite + ld a, $15 + ld [W_OAKSLABCURSCRIPT], a + ret + OaksLabScript21: - dr $1c866,$1c896 + ld a, [wd730] + bit 0, a + ret nz + call PlayDefaultMusic + ld a, HS_OAKS_LAB_RIVAL + ld [wMissableObjectIndex], a + predef HideObject + SetEvent EVENT_1ST_ROUTE22_RIVAL_BATTLE + ResetEventReuseHL EVENT_2ND_ROUTE22_RIVAL_BATTLE + SetEventReuseHL EVENT_ROUTE22_RIVAL_WANTS_BATTLE + ld a, HS_ROUTE_22_RIVAL_1 + ld [wMissableObjectIndex], a + predef ShowObject + xor a + ld [wJoyIgnore], a + ld a, $16 + ld [W_OAKSLABCURSCRIPT], a + ret + OaksLabScript22: - dr $1c896,$1c904 + ret + +OaksLabScript_1c897: + ld hl, wBagItems + ld bc, 0 +.asm_1c89d + ld a, [hli] + cp $ff + ret z + cp OAKS_PARCEL + jr z, .asm_1c8a9 + inc hl + inc c + jr .asm_1c89d + +.asm_1c8a9 + ld hl, wNumBagItems + ld a, c + ld [wWhichPokemon], a + ld a, 1 + ld [wItemQuantity], a + call RemoveItemFromInventory + ret + +OaksLabScript_1c8b9: + ld a, $7c + ld [$ffeb], a + ld a, $8 + ld [$ffee], a + ld a, [wYCoord] + cp 3 + jr nz, .asm_1c8d3 + ld a, $4 + ld [wNPCMovementDirections2Index], a + ld a, $30 + ld b, $b + jr .asm_1c8f6 + +.asm_1c8d3 + cp $1 + jr nz, .asm_1c8e2 + ld a, $2 + ld [wNPCMovementDirections2Index], a + ld a, $30 + ld b, $9 + jr .asm_1c8f6 + +.asm_1c8e2 + ld a, $3 + ld [wNPCMovementDirections2Index], a + ld b, $a + ld a, [wXCoord] + cp $4 + jr nz, .asm_1c8f4 + ld a, $40 + jr .asm_1c8f6 + +.asm_1c8f4 + ld a, $20 +.asm_1c8f6 + ld [$ffec], a + ld a, b + ld [$ffed], a + ld a, $1 + ld [wSpriteIndex], a + call SetSpritePosition1 + ret + OaksLabScript_1d076: - dr $1c904,$1c910 + ld hl, OaksLabText_1c946 + ld a, l + ld [wMapTextPtr], a + ld a, h + ld [wMapTextPtr + 1], a + ret OaksLabTextPointers: ; 1d082 (7:5082) - dr $1c910,$1cbae + dr $1c910,$1c946 + +OaksLabText_1c946: + dr $1c946,$1cbae OaksLabRivalDefeatedText: dr $1cbae,$1cbb3 -- cgit v1.2.3 From e698f02b768bea5d18a33e4a94330c2dd458e9f1 Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Sat, 28 May 2016 15:56:04 -0400 Subject: Oaks Lab rewrite part 4 --- charmap.asm | 1 + scripts/oakslab.asm | 387 ++++++++++++++++++++++++++++++++++++++++++++++++- text/maps/oaks_lab.asm | 80 +++++----- 3 files changed, 422 insertions(+), 46 deletions(-) diff --git a/charmap.asm b/charmap.asm index 1932b39e..e4368d40 100644 --- a/charmap.asm +++ b/charmap.asm @@ -150,6 +150,7 @@ charmap "ー", $E3 charmap "", $4a ; PkMn charmap "@", $50 charmap "", $52 +charmap "", $53 charmap "#", $54 ;charmap "POKé", $54 charmap "′", $71 diff --git a/scripts/oakslab.asm b/scripts/oakslab.asm index 95ee4f25..f441605c 100755 --- a/scripts/oakslab.asm +++ b/scripts/oakslab.asm @@ -288,7 +288,6 @@ OaksLabRLE_PlayerWalksToOak: db D_LEFT, 1 db $FF - OaksLabScript11: ld a, [wSimulatedJoypadStatesIndex] and a @@ -701,7 +700,7 @@ OaksLabScript_1c8b9: ret OaksLabScript_1d076: - ld hl, OaksLabText_1c946 + ld hl, OaksLabTextPointers2 ld a, l ld [wMapTextPtr], a ld a, h @@ -709,13 +708,389 @@ OaksLabScript_1d076: ret OaksLabTextPointers: ; 1d082 (7:5082) - dr $1c910,$1c946 + dw OaksLabText1 + dw OaksLabText2 + dw OaksLabText3 + dw OaksLabText4 + dw OaksLabText5 + dw OaksLabText6 + dw OaksLabText7 + dw OaksLabText8 + dw OaksLabText9 + dw OaksLabText10 + dw OaksLabText11 + dw OaksLabText12 + dw OaksLabText13 + dw OaksLabText14 + dw OaksLabText15 + dw OaksLabText16 + dw OaksLabText17 + dw OaksLabText18 + dw OaksLabText19 + dw OaksLabText20 + dw OaksLabText21 + dw OaksLabText22 + dw OaksLabText23 + dw OaksLabText24 + dw OaksLabText25 + dw OaksLabText26 + dw OaksLabText27 + +OaksLabTextPointers2: + dw OaksLabText1 + dw OaksLabText2 + dw OaksLabText3 + dw OaksLabText4 + dw OaksLabText5 + dw OaksLabText6 + dw OaksLabText7 + dw OaksLabText8 + dw OaksLabText9 + +OaksLabText1: + TX_ASM + CheckEvent EVENT_FOLLOWED_OAK_INTO_LAB_2 + jr nz, .asm_1c968 + ld hl, OaksLabText_1c97d + call PrintText + jr .asm_1c97a + +.asm_1c968 + CheckEventReuseA EVENT_GOT_STARTER + jr nz, .asm_1c974 + ld hl, OaksLabText_1c982 + call PrintText + jr .asm_1c97a + +.asm_1c974 + ld hl, OaksLabText_1c987 + call PrintText +.asm_1c97a + jp TextScriptEnd + +OaksLabText_1c97d: + TX_FAR _OaksLabGaryText1 + db "@" + +OaksLabText_1c982: + TX_FAR _OaksLabText40 + db "@" + +OaksLabText_1c987: + TX_FAR _OaksLabText41 + db "@" + +OaksLabText2: + TX_ASM + ld a, $1 + ld [wDoNotWaitForButtonPressAfterDisplayingText], a + CheckEvent EVENT_OAK_ASKED_TO_CHOOSE_MON + jr nz, OaksLabScript_1c9ac + ld a, $0 + ld [wDoNotWaitForButtonPressAfterDisplayingText], a + ld hl, OaksLabText_1c9a7 + call PrintText + jp TextScriptEnd + +OaksLabText_1c9a7: + TX_FAR _OaksLabText39 + db "@" + +OaksLabScript_1c9ac: + ld a, $1 + ld [wSavedPlayerScreenY], a + xor a + ld [wWhichEmotionBubble], a + predef EmotionBubble + ld a, $8 + ld [W_OAKSLABCURSCRIPT], a + jp TextScriptEnd + +OaksLabText3: + TX_ASM + CheckEvent EVENT_PALLET_AFTER_GETTING_POKEBALLS + jr nz, .asm_1c9d9 + ld hl, wPokedexOwned + ld b, wPokedexOwnedEnd - wPokedexOwned + call CountSetBits + ld a, [wNumSetBits] + cp 2 + jr c, .asm_1c9ec +.asm_1c9d9 + ld hl, OaksLabText_1ca9f + call PrintText + ld a, $1 + ld [wDoNotWaitForButtonPressAfterDisplayingText], a + predef DisplayDexRating + jp .asm_1ca6f + +.asm_1c9ec + ld b, POKE_BALL + call IsItemInBag + jr nz, .asm_1ca69 + ld hl, wPokedexOwned + ld b, wPokedexOwnedEnd - wPokedexOwned + call CountSetBits + ld a, [wNumSetBits] + cp 2 + jr nc, .asm_1ca69 + CheckEvent EVENT_BEAT_ROUTE22_RIVAL_1ST_BATTLE + jr nz, .asm_1ca52 + CheckEvent EVENT_GOT_POKEDEX + jr nz, .asm_1ca4a + CheckEventReuseA EVENT_BATTLED_RIVAL_IN_OAKS_LAB + jr nz, .asm_1ca2b + ld a, [wd72e] + bit 3, a + jr nz, .asm_1ca23 + ld hl, OaksLabText_1ca72 + call PrintText + jr .asm_1ca6f + +.asm_1ca23 + ld hl, OaksLabText_1ca77 + call PrintText + jr .asm_1ca6f + +.asm_1ca2b + ld b, OAKS_PARCEL + call IsItemInBag + jr nz, .asm_1ca3a + ld hl, OaksLabText_1ca7c + call PrintText + jr .asm_1ca6f + +.asm_1ca3a + ld hl, OaksLabText_1ca81 + call PrintText + call OaksLabScript_1c897 + ld a, $13 + ld [W_OAKSLABCURSCRIPT], a + jr .asm_1ca6f + +.asm_1ca4a + ld hl, OaksLabText_1ca8b + call PrintText + jr .asm_1ca6f + +.asm_1ca52 + CheckAndSetEvent EVENT_GOT_POKEBALLS_FROM_OAK + jr nz, .asm_1ca69 + lb bc, POKE_BALL, 5 + call GiveItem + ld hl, OaksLabText_1ca90 + call PrintText + jr .asm_1ca6f + +.asm_1ca69 + ld hl, OaksLabText_1ca9a + call PrintText +.asm_1ca6f + jp TextScriptEnd + +OaksLabText_1ca72: + TX_FAR _OaksLabPikachuText + db "@" + +OaksLabText_1ca77: + TX_FAR _OaksLabText_1d2f5 + db "@" + +OaksLabText_1ca7c: + TX_FAR _OaksLabText_1d2fa + db "@" + +OaksLabText_1ca81: + TX_FAR _OaksLabDeliverParcelText1 + TX_SFX_KEY_ITEM + TX_FAR _OaksLabDeliverParcelText2 + db "@" + +OaksLabText_1ca8b: + TX_FAR _OaksLabAroundWorldText + db "@" + +OaksLabText_1ca90: + TX_FAR _OaksLabGivePokeballsText1 + TX_SFX_KEY_ITEM + TX_FAR _OaksLabGivePokeballsText2 + db "@" + +OaksLabText_1ca9a: + TX_FAR _OaksLabPleaseVisitText + db "@" + +OaksLabText_1ca9f: + TX_FAR _OaksLabText_1d31d + db "@" + +OaksLabText4: +OaksLabText5: + TX_ASM + ld hl, OaksLabText_1caae + call PrintText + jp TextScriptEnd + +OaksLabText_1caae: + TX_FAR _OaksLabText_1d32c + db "@" + +OaksLabText6: + TX_FAR _OaksLabText8 + db "@" + +OaksLabText7: + TX_ASM + ld hl, OaksLabText_1cac2 + call PrintText + jp TextScriptEnd + +OaksLabText_1cac2: + TX_FAR _OaksLabText_1d340 + db "@" + +OaksLabText13: + TX_ASM + ld hl, OaksLabText_1cad1 + call PrintText + jp TextScriptEnd + +OaksLabText_1cad1: + TX_FAR _OaksLabRivalWaitingText + db "@" + +OaksLabText14: + TX_ASM + ld hl, OaksLabText_1cae0 + call PrintText + jp TextScriptEnd + +OaksLabText_1cae0: + TX_FAR _OaksLabChooseMonText + db "@" + +OaksLabText15: + TX_ASM + ld hl, OaksLabText_1caef + call PrintText + jp TextScriptEnd + +OaksLabText_1caef: + TX_FAR _OaksLabRivalInterjectionText + db "@" + +OaksLabText16: + TX_ASM + ld hl, OaksLabText_1cafe + call PrintText + jp TextScriptEnd + +OaksLabText_1cafe: + TX_FAR _OaksLabBePatientText + db "@" + +OaksLabText17: + TX_ASM + ld hl, OaksLabText_1cb25 + call PrintText + ld hl, OaksLabText_1cb2a + call PrintText + ld hl, OaksLabText_1cb30 + call PrintText + ld hl, OaksLabText_1cb35 + call PrintText + ld hl, OaksLabText_1cb3a + call PrintText + jp TextScriptEnd + +OaksLabText_1cb25: + TX_FAR _OaksLabRivalTakesText1 + db "@" + +OaksLabText_1cb2a: + TX_FAR _OaksLabRivalTakesText2 + TX_SFX_KEY_ITEM + db "@" + +OaksLabText_1cb30: + TX_FAR _OaksLabRivalTakesText3 + db "@" + +OaksLabText_1cb35: + TX_FAR _OaksLabRivalTakesText4 + db "@" + +OaksLabText_1cb3a: + TX_FAR _OaksLabRivalTakesText5 + db "@" + +OaksLabText18: + TX_ASM + ld a, PIKACHU + ld [W_PLAYERSTARTER], a + ld [wd11e], a + call GetMonName + ld a, $1 + ld [wDoNotWaitForButtonPressAfterDisplayingText], a + ld hl, OaksLabText_1cb85 + call PrintText + ld hl, OaksLabText_1cb8a + call PrintText + xor a + ld [wMonDataLocation], a + ld a, 5 + ld [wCurEnemyLVL], a + ld a, PIKACHU + ld [wd11e], a + ld [wcf91], a + call AddPartyMon + ld a, 163 + ld [wPartyMon1CatchRate], a + call Func_152d + SetEvent EVENT_GOT_STARTER + ld hl, wd72e + set 3, [hl] + jp TextScriptEnd + +OaksLabText_1cb85: + TX_FAR _OaksLabOakGivesText + db "@" + +OaksLabText_1cb8a: + TX_FAR _OaksLabReceivedText + TX_SFX_KEY_ITEM + db "@" -OaksLabText_1c946: - dr $1c946,$1cbae +OaksLabText10: + dr $1cb90,$1cb9f +OaksLabText11: + dr $1cb9f,$1cbae OaksLabRivalDefeatedText: dr $1cbae,$1cbb3 OaksLabRivalBeatYouText: - dr $1cbb3,$1cc22 + dr $1cbb3,$1cbb8 +OaksLabText12: + dr $1cbb8,$1cbc7 +OaksLabText26: + dr $1cbc7,$1cbe0 +OaksLabText27: + dr $1cbe0,$1cbef +OaksLabText19: + dr $1cbef,$1cbf4 +OaksLabText20: + dr $1cbf4,$1cbf9 +OaksLabText21: + dr $1cbf9,$1cbfe +OaksLabText22: + dr $1cbfe,$1cc03 +OaksLabText23: + dr $1cc03,$1cc09 +OaksLabText24: + dr $1cc09,$1cc0e +OaksLabText25: + dr $1cc0e,$1cc13 +OaksLabText8: +OaksLabText9: + dr $1cc13,$1cc22 diff --git a/text/maps/oaks_lab.asm b/text/maps/oaks_lab.asm index 5b12e1b8..097fa931 100644 --- a/text/maps/oaks_lab.asm +++ b/text/maps/oaks_lab.asm @@ -1,6 +1,6 @@ _OaksLabGaryText1:: - text $53,": Yo" - line $52,"! Gramps" + text ": Yo" + line "! Gramps" cont "isn't around!" para "I ran here 'cos" @@ -9,13 +9,13 @@ _OaksLabGaryText1:: done _OaksLabText40:: - text $53,": Humph!" + text ": Humph!" line "I'll get a better" cont "#MON than you!" done _OaksLabText41:: - text $53,": Heh, my" + text ": Heh, my" line "#MON looks a" cont "lot stronger." done @@ -48,7 +48,7 @@ _OaksLabText_1d2fa:: done _OaksLabDeliverParcelText1:: - text "OAK: Oh, ", $52, "!" + text "OAK: Oh, !" para "How is my old" line "#MON?" @@ -63,15 +63,15 @@ _OaksLabDeliverParcelText1:: para "What? You have" line "something for me?" - para $52, " delivered" + para " delivered" line "OAK's PARCEL.@@" _OaksLabDeliverParcelText2:: - db $0 + text "" para "Ah! This is the" line "custom # BALL" cont "I ordered!" - cont "Thanks, ",$52,"!" + cont "Thanks, !" para "By the way, I must" line "ask you to do" @@ -81,7 +81,7 @@ _OaksLabDeliverParcelText2:: _OaksLabAroundWorldText:: text "#MON around the" line "world wait for" - cont "you, ", $52, "!" + cont "you, !" done _OaksLabGivePokeballsText1:: @@ -95,11 +95,11 @@ _OaksLabGivePokeballsText1:: cont "to capture wild" cont "#MON." - para $52, " got 5" + para " got 5" line "# BALLs!@@" _OaksLabGivePokeballsText2:: - db $0 + text "" para "When a wild" line "#MON appears," cont "it's fair game." @@ -155,13 +155,13 @@ _OaksLabText_1d340:: done _OaksLabRivalWaitingText:: - text $53, ": Gramps!" + text ": Gramps!" line "I'm fed up with" cont "waiting!" done _OaksLabChooseMonText:: - text "OAK: Hmm? ",$53,"?" + text "OAK: Hmm? ?" line "Why are you here" cont "already?" @@ -171,7 +171,7 @@ _OaksLabChooseMonText:: para "Ah, whatever!" line "Just wait there." - para "Look, ",$52,"! Do" + para "Look, ! Do" line "you see that ball" cont "on the table?" @@ -184,34 +184,34 @@ _OaksLabChooseMonText:: done _OaksLabRivalInterjectionText:: - text $53, ": Hey!" + text ": Hey!" line "Gramps! What" cont "about me?" done _OaksLabBePatientText:: text "OAK: Be patient," - line $53,", I'll give" + line ", I'll give" cont "you one later." done _OaksLabRivalTakesText1:: - text $53,": No way!" - line $52,", I want" + text ": No way!" + line ", I want" cont "this #MON!" prompt _OaksLabRivalTakesText2:: - text $53," snatched" + text " snatched" line "the #MON!@@" _OaksLabRivalTakesText3:: - text "OAK: ",$53,"! What" + text "OAK: ! What" line "are you doing?" prompt _OaksLabRivalTakesText4:: - text $53,": Gramps, I" + text ": Gramps, I" line "want this one!" prompt @@ -225,12 +225,12 @@ _OaksLabRivalTakesText5:: line "give you one" cont "anyway..." - para $52,", come over" + para ", come over" line "here." done _OaksLabOakGivesText:: - text "OAK: ",$52,", this" + text "OAK: , this" line "is the #MON I" cont "caught earlier." @@ -241,9 +241,9 @@ _OaksLabOakGivesText:: prompt _OaksLabReceivedText:: - text $52," received" + text " received" line "a @" - TX_RAM $CD6D + TX_RAM wcd6d text "!@@" _OaksLabLeavingText:: @@ -252,8 +252,8 @@ _OaksLabLeavingText:: done _OaksLabRivalChallengeText:: - text $53, ": Wait" - line $52, "!" + text ": Wait" + line "!" cont "Let's check out" cont "our #MON!" @@ -269,17 +269,17 @@ _OaksLabText_1d3be:: prompt _OaksLabText_1d3c3:: - text $53, ": Yeah! Am" + text ": Yeah! Am" line "I great or what?" prompt _OaksLabRivalToughenUpText:: - text $53, ": Okay!" + text ": Okay!" line "I'll make my" cont "#MON fight to" cont "toughen it up!" - para $52, "! Gramps!" + para "! Gramps!" line "Smell you later!" done @@ -308,18 +308,18 @@ _OaksLabPikachuDislikesPokeballsText2:: done _OaksLabText21:: - text $53, ": Gramps!" + text ": Gramps!" done _OaksLabText22:: - text $53,": Gramps," + text ": Gramps," line "my #MON has" cont "grown stronger!" cont "Check it out!" done _OaksLabText23:: - text "OAK: Ah, ",$53,"," + text "OAK: Ah, ," line "good timing!" para "I needed to ask" @@ -342,11 +342,11 @@ _OaksLabText24:: done _OaksLabText25:: - text "OAK: ", $52, " and" - line $53, "! Take" + text "OAK: and" + line "! Take" cont "these with you!" - para $52, " got" + para " got" line "#DEX from OAK!@@" _OaksLabText26:: @@ -373,11 +373,11 @@ _OaksLabText26:: done _OaksLabText27:: - text $53, ": Alright" + text ": Alright" line "Gramps! Leave it" cont "all to me!" - para $52, ", I hate to" + para ", I hate to" line "say it, but I" cont "don't need you!" @@ -387,10 +387,10 @@ _OaksLabText27:: para "I'll tell her not" line "to lend you one," - cont $52, "! Hahaha!" + cont "! Hahaha!" done _OaksLabText_1d405:: text "I study #MON as" line "PROF.OAK's AIDE." - done \ No newline at end of file + done -- cgit v1.2.3 From ff62edda93b25a35dc6c3c795f5d568b382a4b5a Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Sat, 28 May 2016 16:07:46 -0400 Subject: Oaks Lab rewrite part 5 (finish) --- macros.asm | 6 +++- scripts/oakslab.asm | 96 ++++++++++++++++++++++++++++++++++++++++++++--------- 2 files changed, 86 insertions(+), 16 deletions(-) diff --git a/macros.asm b/macros.asm index 8d7a37c8..829841fa 100644 --- a/macros.asm +++ b/macros.asm @@ -811,8 +811,12 @@ dpikacry: MACRO db (\1_id - PikachuCriesPointerTable) / 3 endm +ldpikacry: MACRO + ld \1, (\2_id - PikachuCriesPointerTable) / 3 + ENDM + pikacry: MACRO - ld a, (\1_id - PikachuCriesPointerTable) / 3 + ldpikacry a, \1 endm diff --git a/scripts/oakslab.asm b/scripts/oakslab.asm index f441605c..63cec822 100755 --- a/scripts/oakslab.asm +++ b/scripts/oakslab.asm @@ -1062,35 +1062,101 @@ OaksLabText_1cb8a: db "@" OaksLabText10: - dr $1cb90,$1cb9f + TX_ASM + ld hl, OaksLabText_1cb9a + call PrintText + jp TextScriptEnd + +OaksLabText_1cb9a: + TX_FAR _OaksLabLeavingText + db "@" + OaksLabText11: - dr $1cb9f,$1cbae + TX_ASM + ld hl, OaksLabText_1cba9 + call PrintText + jp TextScriptEnd + +OaksLabText_1cba9: + TX_FAR _OaksLabRivalChallengeText + db "@" OaksLabRivalDefeatedText: - dr $1cbae,$1cbb3 + TX_FAR _OaksLabText_1d3be + db "@" OaksLabRivalBeatYouText: - dr $1cbb3,$1cbb8 + TX_FAR _OaksLabText_1d3c3 + db "@" + OaksLabText12: - dr $1cbb8,$1cbc7 + TX_ASM + ld hl, OaksLabText_1cbc2 + call PrintText + jp TextScriptEnd + +OaksLabText_1cbc2: + TX_FAR _OaksLabRivalToughenUpText + db "@" + OaksLabText26: - dr $1cbc7,$1cbe0 + TX_ASM + ldpikacry e, PikachuCry2 + callab PlayPikachuSoundClip + ld hl, OaksLabText_1cbdb + call PrintText + jp TextScriptEnd + +OaksLabText_1cbdb: + TX_FAR _OaksLabPikachuDislikesPokeballsText1 + db "@" + OaksLabText27: - dr $1cbe0,$1cbef + TX_ASM + ld hl, OaksLabText_1cbea + call PrintText + jp TextScriptEnd + +OaksLabText_1cbea: + TX_FAR _OaksLabPikachuDislikesPokeballsText2 + db "@" + OaksLabText19: - dr $1cbef,$1cbf4 + TX_FAR _OaksLabText21 + db "@" + OaksLabText20: - dr $1cbf4,$1cbf9 + TX_FAR _OaksLabText22 + db "@" + OaksLabText21: - dr $1cbf9,$1cbfe + TX_FAR _OaksLabText23 + db "@" + OaksLabText22: - dr $1cbfe,$1cc03 + TX_FAR _OaksLabText24 + db "@" + OaksLabText23: - dr $1cc03,$1cc09 + TX_FAR _OaksLabText25 + TX_SFX_KEY_ITEM + db "@" + OaksLabText24: - dr $1cc09,$1cc0e + TX_FAR _OaksLabText26 + db "@" + OaksLabText25: - dr $1cc0e,$1cc13 + TX_FAR _OaksLabText27 + db "@" + OaksLabText8: OaksLabText9: - dr $1cc13,$1cc22 + TX_ASM + ld hl, OaksLabText_1c31d + call PrintText + jp TextScriptEnd + +OaksLabText_1c31d: + TX_FAR _OaksLabText_1d405 + db "@" -- cgit v1.2.3 From 40fce3a7d2959eaa2eaf38b3b9ff2bfc583c6e8d Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Sat, 28 May 2016 17:16:06 -0400 Subject: Viridian pokecenter --- data/mapObjects/viridianpokecenter.asm | 5 +++-- data/map_header_banks.asm | 4 ++-- data/map_header_pointers.asm | 4 ++-- main.asm | 20 +++++++++++++++++--- maps/celadonpokecenter.blk | 2 +- maps/ceruleanpokecenter.blk | 2 +- maps/cinnabarpokecenter.blk | 2 +- maps/fuchsiapokecenter.blk | 2 +- maps/lavenderpokecenter.blk | 2 +- maps/mtmoonpokecenter.blk | 2 +- maps/pewterpokecenter.blk | 2 +- maps/rocktunnelpokecenter.blk | 2 +- maps/saffronpokecenter.blk | 2 +- maps/vermilionpokecenter.blk | 2 +- maps/viridianpokecenter.blk | 2 +- scripts/viridianpokecenter.asm | 6 ++++++ 16 files changed, 41 insertions(+), 20 deletions(-) diff --git a/data/mapObjects/viridianpokecenter.asm b/data/mapObjects/viridianpokecenter.asm index 652efb97..74c27d46 100755 --- a/data/mapObjects/viridianpokecenter.asm +++ b/data/mapObjects/viridianpokecenter.asm @@ -7,11 +7,12 @@ ViridianPokecenterObject: ; 0x44277 (size=44) db $0 ; signs - db $4 ; objects + db $5 ; objects object SPRITE_NURSE, $3, $1, STAY, DOWN, $1 ; person object SPRITE_GENTLEMAN, $a, $5, WALK, $1, $2 ; person - object SPRITE_BLACK_HAIR_BOY_1, $4, $3, STAY, NONE, $3 ; person + object SPRITE_BLACK_HAIR_BOY_1, $4, $3, STAY, UP, $3 ; person object SPRITE_CABLE_CLUB_WOMAN, $b, $2, STAY, DOWN, $4 ; person + object SPRITE_CHANSEY, $4, $1, STAY, DOWN, $5 ; person ; warp-to EVENT_DISP VIRIDIAN_POKECENTER_WIDTH, $7, $3 diff --git a/data/map_header_banks.asm b/data/map_header_banks.asm index 94393e3e..2b901ed5 100644 --- a/data/map_header_banks.asm +++ b/data/map_header_banks.asm @@ -40,8 +40,8 @@ MapHeaderBanks:: ; fc3e4 (3f:43e4) db BANK(RedsHouse1F_h) db BANK(RedsHouse2F_h) db BANK(BluesHouse_h) - db $07 ; db BANK(OaksLab_h) - db $11 ; db BANK(ViridianPokecenter_h) + db BANK(OaksLab_h) + db BANK(ViridianPokecenter_h) db $07 ; db BANK(ViridianMart_h) db $07 ; db BANK(School_h) db $07 ; db BANK(ViridianHouse_h) diff --git a/data/map_header_pointers.asm b/data/map_header_pointers.asm index eed956bf..9d358b2d 100644 --- a/data/map_header_pointers.asm +++ b/data/map_header_pointers.asm @@ -40,8 +40,8 @@ MapHeaderPointers:: ; fc1f2 (3f:41f2) dw RedsHouse1F_h dw RedsHouse2F_h dw BluesHouse_h - dw $4386 ; dw OaksLab_h ;id=40 - dw $4251 ; dw ViridianPokecenter_h + dw OaksLab_h ;id=40 + dw ViridianPokecenter_h dw $4c6e ; dw ViridianMart_h dw $4d6d ; dw School_h dw $4dc6 ; dw ViridianHouse_h diff --git a/main.asm b/main.asm index d80a7939..926e8984 100755 --- a/main.asm +++ b/main.asm @@ -696,14 +696,28 @@ INCLUDE "data/mapHeaders/lavendertown.asm" INCLUDE "data/mapObjects/lavendertown.asm" LavenderTownBlocks: INCBIN "maps/lavendertown.blk" - dr $440df,$4410b +ViridianPokecenterBlocks: +PewterPokecenterBlocks: +CeruleanPokecenterBlocks: +VermilionPokecenterBlocks: +SaffronPokecenterBlocks: +LavenderPokecenterBlocks: +CeladonPokecenterBlocks: +FuchsiaPokecenterBlocks: +CinnabarPokecenterBlocks: +MtMoonPokecenterBlocks: +RockTunnelPokecenterBlocks: +INCBIN "maps/viridianpokecenter.blk" + dr $440fb,$4410b INCLUDE "scripts/lavendertown.asm" - ; dr $440df,$44169 INCLUDE "engine/pokedex_rating.asm" - dr $44251,$443b7 +INCLUDE "data/mapHeaders/viridianpokecenter.asm" +INCLUDE "scripts/viridianpokecenter.asm" +INCLUDE "data/mapObjects/viridianpokecenter.asm" + dr $442b7,$443b7 Mansion1Script_Switches: dr $443b7,$45077 LoadSpinnerArrowTiles: ; 45077 (11:5077) diff --git a/maps/celadonpokecenter.blk b/maps/celadonpokecenter.blk index 9641efe4..dd54efd9 100644 --- a/maps/celadonpokecenter.blk +++ b/maps/celadonpokecenter.blk @@ -1,2 +1,2 @@ -  !"# +  '"#  \ No newline at end of file diff --git a/maps/ceruleanpokecenter.blk b/maps/ceruleanpokecenter.blk index 9641efe4..dd54efd9 100644 --- a/maps/ceruleanpokecenter.blk +++ b/maps/ceruleanpokecenter.blk @@ -1,2 +1,2 @@ -  !"# +  '"#  \ No newline at end of file diff --git a/maps/cinnabarpokecenter.blk b/maps/cinnabarpokecenter.blk index 9641efe4..dd54efd9 100644 --- a/maps/cinnabarpokecenter.blk +++ b/maps/cinnabarpokecenter.blk @@ -1,2 +1,2 @@ -  !"# +  '"#  \ No newline at end of file diff --git a/maps/fuchsiapokecenter.blk b/maps/fuchsiapokecenter.blk index 9641efe4..dd54efd9 100644 --- a/maps/fuchsiapokecenter.blk +++ b/maps/fuchsiapokecenter.blk @@ -1,2 +1,2 @@ -  !"# +  '"#  \ No newline at end of file diff --git a/maps/lavenderpokecenter.blk b/maps/lavenderpokecenter.blk index 9641efe4..dd54efd9 100644 --- a/maps/lavenderpokecenter.blk +++ b/maps/lavenderpokecenter.blk @@ -1,2 +1,2 @@ -  !"# +  '"#  \ No newline at end of file diff --git a/maps/mtmoonpokecenter.blk b/maps/mtmoonpokecenter.blk index 9641efe4..dd54efd9 100644 --- a/maps/mtmoonpokecenter.blk +++ b/maps/mtmoonpokecenter.blk @@ -1,2 +1,2 @@ -  !"# +  '"#  \ No newline at end of file diff --git a/maps/pewterpokecenter.blk b/maps/pewterpokecenter.blk index 9641efe4..dd54efd9 100644 --- a/maps/pewterpokecenter.blk +++ b/maps/pewterpokecenter.blk @@ -1,2 +1,2 @@ -  !"# +  '"#  \ No newline at end of file diff --git a/maps/rocktunnelpokecenter.blk b/maps/rocktunnelpokecenter.blk index 9641efe4..dd54efd9 100644 --- a/maps/rocktunnelpokecenter.blk +++ b/maps/rocktunnelpokecenter.blk @@ -1,2 +1,2 @@ -  !"# +  '"#  \ No newline at end of file diff --git a/maps/saffronpokecenter.blk b/maps/saffronpokecenter.blk index 9641efe4..dd54efd9 100644 --- a/maps/saffronpokecenter.blk +++ b/maps/saffronpokecenter.blk @@ -1,2 +1,2 @@ -  !"# +  '"#  \ No newline at end of file diff --git a/maps/vermilionpokecenter.blk b/maps/vermilionpokecenter.blk index 9641efe4..dd54efd9 100644 --- a/maps/vermilionpokecenter.blk +++ b/maps/vermilionpokecenter.blk @@ -1,2 +1,2 @@ -  !"# +  '"#  \ No newline at end of file diff --git a/maps/viridianpokecenter.blk b/maps/viridianpokecenter.blk index 9641efe4..dd54efd9 100644 --- a/maps/viridianpokecenter.blk +++ b/maps/viridianpokecenter.blk @@ -1,2 +1,2 @@ -  !"# +  '"#  \ No newline at end of file diff --git a/scripts/viridianpokecenter.asm b/scripts/viridianpokecenter.asm index ae5e32c8..f8aed602 100755 --- a/scripts/viridianpokecenter.asm +++ b/scripts/viridianpokecenter.asm @@ -7,6 +7,7 @@ ViridianPokecenterTextPointers: ; 44263 (11:4263) dw ViridianPokeCenterText2 dw ViridianPokeCenterText3 dw ViridianPokeCenterText4 + dw ViridianPokeCenterText5 ViridianPokeCenterText1: ; 4426b (11:426b) db $ff @@ -21,3 +22,8 @@ ViridianPokeCenterText3: ; 44271 (11:4271) ViridianPokeCenterText4: ; 44276 (11:4276) db $f6 + +ViridianPokeCenterText5: + TX_ASM + callab Func_f0f12 + jp TextScriptEnd -- cgit v1.2.3 From c93574436f30106fd2211abea452fe3a96948211 Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Sat, 28 May 2016 17:43:51 -0400 Subject: Viridian Mart --- constants/event_macros.asm | 21 +++++++++++++++++++++ constants/hide_show_constants.asm | 2 +- data/map_header_banks.asm | 2 +- data/map_header_pointers.asm | 2 +- main.asm | 15 ++++++++++++++- maps/ceruleanmart.blk | 2 +- maps/cinnabarmart.blk | 2 +- maps/fuchsiamart.blk | 2 +- maps/lavendermart.blk | 2 +- maps/pewtermart.blk | 2 +- maps/saffronmart.blk | 2 +- maps/vermilionmart.blk | 2 +- maps/viridianmart.blk | 2 +- scripts/viridianmart.asm | 16 ++++++++++++++-- 14 files changed, 60 insertions(+), 14 deletions(-) diff --git a/constants/event_macros.asm b/constants/event_macros.asm index 9f24ace7..5eb73147 100644 --- a/constants/event_macros.asm +++ b/constants/event_macros.asm @@ -125,6 +125,27 @@ CheckAndResetEventA: MACRO ld [wEventFlags + ((\1) / 8)], a ENDM +CheckAndSetEventReuseHL: MACRO + IF event_byte != ((\1) / 8) +event_byte = ((\1) / 8) + ld hl, wEventFlags + event_byte + ENDC + + bit (\1) % 8, [hl] + set (\1) % 8, [hl] + ENDM + +CheckAndResetEventReuseHL: MACRO + IF event_byte != ((\1) / 8) +event_byte = ((\1) / 8) + ld hl, wEventFlags + event_byte + ENDC + + bit (\1) % 8, [hl] + res (\1) % 8, [hl] + ENDM + + ;\1 = event index SetEvent: MACRO event_byte = ((\1) / 8) diff --git a/constants/hide_show_constants.asm b/constants/hide_show_constants.asm index 5a6347d5..9481466e 100755 --- a/constants/hide_show_constants.asm +++ b/constants/hide_show_constants.asm @@ -8,7 +8,7 @@ const_value = 0 const HS_PALLET_TOWN_OAK ; 00 const HS_LYING_OLD_MAN ; 01 - const HS_PERSON_02 ; 02 + const HS_OLD_MAN_1 ; 02 const HS_OLD_MAN ; 03 const HS_MUSEUM_GUY ; 04 const HS_GYM_GUY ; 05 diff --git a/data/map_header_banks.asm b/data/map_header_banks.asm index 2b901ed5..dbe4d15f 100644 --- a/data/map_header_banks.asm +++ b/data/map_header_banks.asm @@ -42,7 +42,7 @@ MapHeaderBanks:: ; fc3e4 (3f:43e4) db BANK(BluesHouse_h) db BANK(OaksLab_h) db BANK(ViridianPokecenter_h) - db $07 ; db BANK(ViridianMart_h) + db BANK(ViridianMart_h) db $07 ; db BANK(School_h) db $07 ; db BANK(ViridianHouse_h) db $1d ; db BANK(ViridianGym_h) diff --git a/data/map_header_pointers.asm b/data/map_header_pointers.asm index 9d358b2d..e3edc139 100644 --- a/data/map_header_pointers.asm +++ b/data/map_header_pointers.asm @@ -42,7 +42,7 @@ MapHeaderPointers:: ; fc1f2 (3f:41f2) dw BluesHouse_h dw OaksLab_h ;id=40 dw ViridianPokecenter_h - dw $4c6e ; dw ViridianMart_h + dw ViridianMart_h dw $4d6d ; dw School_h dw $4dc6 ; dw ViridianHouse_h dw $40d4 ; dw ViridianGym_h diff --git a/main.asm b/main.asm index 926e8984..325bcdbe 100755 --- a/main.asm +++ b/main.asm @@ -304,7 +304,20 @@ INCLUDE "data/mapHeaders/oakslab.asm" INCLUDE "scripts/oakslab.asm" INCLUDE "data/mapObjects/oakslab.asm" - dr $1cc6e,$1e2ae ; map scripts +INCLUDE "data/mapHeaders/viridianmart.asm" +INCLUDE "scripts/viridianmart.asm" +INCLUDE "data/mapObjects/viridianmart.asm" +ViridianMartBlocks: +PewterMartBlocks: +CeruleanMartBlocks: +VermilionMartBlocks: +LavenderMartBlocks: +CeladonMartBlocks: +SaffronMartBlocks: +FuchsiaMartBlocks: +CinnabarMartBlocks: +INCBIN "maps/viridianmart.blk" + dr $1cd6d,$1e2ae ; map scripts INCLUDE "engine/menu/oaks_pc.asm" diff --git a/maps/ceruleanmart.blk b/maps/ceruleanmart.blk index 1da8fffc..62385406 100644 --- a/maps/ceruleanmart.blk +++ b/maps/ceruleanmart.blk @@ -1 +1 @@ -   \ No newline at end of file + %  \ No newline at end of file diff --git a/maps/cinnabarmart.blk b/maps/cinnabarmart.blk index 1da8fffc..62385406 100644 --- a/maps/cinnabarmart.blk +++ b/maps/cinnabarmart.blk @@ -1 +1 @@ -   \ No newline at end of file + %  \ No newline at end of file diff --git a/maps/fuchsiamart.blk b/maps/fuchsiamart.blk index 1da8fffc..62385406 100644 --- a/maps/fuchsiamart.blk +++ b/maps/fuchsiamart.blk @@ -1 +1 @@ -   \ No newline at end of file + %  \ No newline at end of file diff --git a/maps/lavendermart.blk b/maps/lavendermart.blk index 1da8fffc..62385406 100644 --- a/maps/lavendermart.blk +++ b/maps/lavendermart.blk @@ -1 +1 @@ -   \ No newline at end of file + %  \ No newline at end of file diff --git a/maps/pewtermart.blk b/maps/pewtermart.blk index 1da8fffc..62385406 100644 --- a/maps/pewtermart.blk +++ b/maps/pewtermart.blk @@ -1 +1 @@ -   \ No newline at end of file + %  \ No newline at end of file diff --git a/maps/saffronmart.blk b/maps/saffronmart.blk index 1da8fffc..62385406 100644 --- a/maps/saffronmart.blk +++ b/maps/saffronmart.blk @@ -1 +1 @@ -   \ No newline at end of file + %  \ No newline at end of file diff --git a/maps/vermilionmart.blk b/maps/vermilionmart.blk index 1da8fffc..62385406 100644 --- a/maps/vermilionmart.blk +++ b/maps/vermilionmart.blk @@ -1 +1 @@ -   \ No newline at end of file + %  \ No newline at end of file diff --git a/maps/viridianmart.blk b/maps/viridianmart.blk index 1da8fffc..62385406 100644 --- a/maps/viridianmart.blk +++ b/maps/viridianmart.blk @@ -1 +1 @@ -   \ No newline at end of file + %  \ No newline at end of file diff --git a/scripts/viridianmart.asm b/scripts/viridianmart.asm index 8d974abc..05e566fb 100755 --- a/scripts/viridianmart.asm +++ b/scripts/viridianmart.asm @@ -3,7 +3,8 @@ ViridianMartScript: ; 1d46e (7:546e) call EnableAutoTextBoxDrawing ld hl, ViridianMartScriptPointers ld a, [W_VIRIDIANMARKETCURSCRIPT] - jp JumpTable + call JumpTable + ret ViridianMartScript_1d47d: ; 1d47d (7:547d) CheckEvent EVENT_OAK_GOT_PARCEL @@ -57,8 +58,19 @@ ViridianMartScript1: ; 1d4c0 (7:54c0) SetEvent EVENT_GOT_OAKS_PARCEL ld a, $2 ld [W_VIRIDIANMARKETCURSCRIPT], a - ; fallthrough + ret + ViridianMartScript2: ; 1d4df (7:54df) + CheckEventHL EVENT_02D + ret z + CheckAndSetEventReuseHL EVENT_02C + ret nz + ld a, HS_OLD_MAN + ld [wMissableObjectIndex], a + predef HideObject + ld a, HS_OLD_MAN_1 + ld [wMissableObjectIndex], a + predef ShowObject ret ViridianMartTextPointers: ; 1d4e0 (7:54e0) -- cgit v1.2.3 From ba224a0430f829aa3bc7648f3bc7412fd3a0cea1 Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Sat, 28 May 2016 18:39:53 -0400 Subject: Viridian Trainer School --- data/mapObjects/school.asm | 3 ++- data/map_header_banks.asm | 2 +- data/map_header_pointers.asm | 2 +- engine/bank3c.asm | 6 +++++- main.asm | 12 ++++++++++-- scripts/school.asm | 14 +++++++++++--- 6 files changed, 30 insertions(+), 9 deletions(-) diff --git a/data/mapObjects/school.asm b/data/mapObjects/school.asm index b60be6c0..4c802e64 100755 --- a/data/mapObjects/school.asm +++ b/data/mapObjects/school.asm @@ -7,9 +7,10 @@ SchoolObject: ; 0x1d55d (size=32) db $0 ; signs - db $2 ; objects + db $3 ; objects object SPRITE_BRUNETTE_GIRL, $3, $5, STAY, UP, $1 ; person object SPRITE_LASS, $4, $1, STAY, DOWN, $2 ; person + object SPRITE_LITTLE_GIRL, $4, $5, STAY, UP, $3 ; person ; warp-to EVENT_DISP VIRIDIAN_SCHOOL_WIDTH, $7, $2 diff --git a/data/map_header_banks.asm b/data/map_header_banks.asm index dbe4d15f..2e528fcd 100644 --- a/data/map_header_banks.asm +++ b/data/map_header_banks.asm @@ -43,7 +43,7 @@ MapHeaderBanks:: ; fc3e4 (3f:43e4) db BANK(OaksLab_h) db BANK(ViridianPokecenter_h) db BANK(ViridianMart_h) - db $07 ; db BANK(School_h) + db BANK(School_h) db $07 ; db BANK(ViridianHouse_h) db $1d ; db BANK(ViridianGym_h) db $07 ; db BANK(DiglettsCaveRoute2_h) diff --git a/data/map_header_pointers.asm b/data/map_header_pointers.asm index e3edc139..e7a2c570 100644 --- a/data/map_header_pointers.asm +++ b/data/map_header_pointers.asm @@ -43,7 +43,7 @@ MapHeaderPointers:: ; fc1f2 (3f:41f2) dw OaksLab_h ;id=40 dw ViridianPokecenter_h dw ViridianMart_h - dw $4d6d ; dw School_h + dw School_h dw $4dc6 ; dw ViridianHouse_h dw $40d4 ; dw ViridianGym_h dw $57ae ; dw DiglettsCaveRoute2_h diff --git a/engine/bank3c.asm b/engine/bank3c.asm index c3726c5e..6f949238 100644 --- a/engine/bank3c.asm +++ b/engine/bank3c.asm @@ -350,7 +350,11 @@ INCLUDE "scripts/route1_2.asm" INCLUDE "scripts/route22_2.asm" INCLUDE "scripts/redshouse1f2.asm" Func_f1be0: - dr $f1be0, $f220e + dr $f1be0, $f1c03 +Func_f1c03: + dr $f1c03, $f1c0f +Func_f1c0f: + dr $f1c0f, $f220e INCLUDE "data/mapHeaders/beach_house.asm" INCLUDE "scripts/beach_house.asm" diff --git a/main.asm b/main.asm index 325bcdbe..fa68ed90 100755 --- a/main.asm +++ b/main.asm @@ -292,7 +292,10 @@ INCBIN "maps/route1.blk" dr $1c1b0,$1c1c0 ; headers, objects, blocks OaksLabBlocks: INCBIN "maps/oakslab.blk" - dr $1c1de,$1c21e ; headers, objects, blocks + dr $1c1de,$1c1ee ; headers, objects, blocks +SchoolBlocks: +INCBIN "maps/school.blk" + dr $1c1fe,$1c21e ; headers, objects, blocks INCLUDE "engine/clear_save.asm" INCLUDE "engine/predefs7.asm" @@ -317,7 +320,12 @@ SaffronMartBlocks: FuchsiaMartBlocks: CinnabarMartBlocks: INCBIN "maps/viridianmart.blk" - dr $1cd6d,$1e2ae ; map scripts + +INCLUDE "data/mapHeaders/school.asm" +INCLUDE "scripts/school.asm" +INCLUDE "data/mapObjects/school.asm" + + dr $1cdc6,$1e2ae ; map scripts INCLUDE "engine/menu/oaks_pc.asm" diff --git a/scripts/school.asm b/scripts/school.asm index 57eb58c8..6ee0d36e 100755 --- a/scripts/school.asm +++ b/scripts/school.asm @@ -1,14 +1,22 @@ SchoolScript: ; 1d54c (7:554c) - jp EnableAutoTextBoxDrawing + call EnableAutoTextBoxDrawing + ret SchoolTextPointers: ; 1d54f (7:554f) dw SchoolText1 dw SchoolText2 + dw SchoolText3 SchoolText1: ; 1d553 (7:5553) TX_FAR _SchoolText1 db "@" SchoolText2: ; 1d558 (7:5558) - TX_FAR _SchoolText2 - db "@" + TX_ASM + callba Func_f1c0f + jp TextScriptEnd + +SchoolText3: ; 1d558 (7:5558) + TX_ASM + callba Func_f1c03 + jp TextScriptEnd -- cgit v1.2.3 From 2ce8f80044038d906ca4c0e09587de1a2f0d4c8f Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Sat, 28 May 2016 20:17:56 -0400 Subject: Viridian house --- data/map_header_banks.asm | 2 +- data/map_header_pointers.asm | 2 +- main.asm | 8 ++++++-- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/data/map_header_banks.asm b/data/map_header_banks.asm index 2e528fcd..e65ac85a 100644 --- a/data/map_header_banks.asm +++ b/data/map_header_banks.asm @@ -44,7 +44,7 @@ MapHeaderBanks:: ; fc3e4 (3f:43e4) db BANK(ViridianPokecenter_h) db BANK(ViridianMart_h) db BANK(School_h) - db $07 ; db BANK(ViridianHouse_h) + db BANK(ViridianHouse_h) db $1d ; db BANK(ViridianGym_h) db $07 ; db BANK(DiglettsCaveRoute2_h) db $17 ; db BANK(ViridianForestExit_h) diff --git a/data/map_header_pointers.asm b/data/map_header_pointers.asm index e7a2c570..aeb2b362 100644 --- a/data/map_header_pointers.asm +++ b/data/map_header_pointers.asm @@ -44,7 +44,7 @@ MapHeaderPointers:: ; fc1f2 (3f:41f2) dw ViridianPokecenter_h dw ViridianMart_h dw School_h - dw $4dc6 ; dw ViridianHouse_h + dw ViridianHouse_h dw $40d4 ; dw ViridianGym_h dw $57ae ; dw DiglettsCaveRoute2_h dw $5485 ; dw ViridianForestExit_h diff --git a/main.asm b/main.asm index fa68ed90..c2146a37 100755 --- a/main.asm +++ b/main.asm @@ -292,7 +292,8 @@ INCBIN "maps/route1.blk" dr $1c1b0,$1c1c0 ; headers, objects, blocks OaksLabBlocks: INCBIN "maps/oakslab.blk" - dr $1c1de,$1c1ee ; headers, objects, blocks +ViridianHouseBlocks: +INCBIN "maps/viridianhouse.blk" SchoolBlocks: INCBIN "maps/school.blk" dr $1c1fe,$1c21e ; headers, objects, blocks @@ -325,7 +326,10 @@ INCLUDE "data/mapHeaders/school.asm" INCLUDE "scripts/school.asm" INCLUDE "data/mapObjects/school.asm" - dr $1cdc6,$1e2ae ; map scripts +INCLUDE "data/mapHeaders/viridianhouse.asm" +INCLUDE "scripts/viridianhouse.asm" +INCLUDE "data/mapObjects/viridianhouse.asm" + dr $1ce30,$1e2ae ; map scripts INCLUDE "engine/menu/oaks_pc.asm" -- cgit v1.2.3 From 7c59b94897641af737b6df5e2c2787799c867432 Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Sat, 28 May 2016 20:24:36 -0400 Subject: Viridian Gym --- data/map_header_banks.asm | 2 +- data/map_header_pointers.asm | 2 +- main.asm | 8 +++++++- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/data/map_header_banks.asm b/data/map_header_banks.asm index e65ac85a..501b3730 100644 --- a/data/map_header_banks.asm +++ b/data/map_header_banks.asm @@ -45,7 +45,7 @@ MapHeaderBanks:: ; fc3e4 (3f:43e4) db BANK(ViridianMart_h) db BANK(School_h) db BANK(ViridianHouse_h) - db $1d ; db BANK(ViridianGym_h) + db BANK(ViridianGym_h) db $07 ; db BANK(DiglettsCaveRoute2_h) db $17 ; db BANK(ViridianForestExit_h) db $07 ; db BANK(Route2House_h) diff --git a/data/map_header_pointers.asm b/data/map_header_pointers.asm index aeb2b362..48702db9 100644 --- a/data/map_header_pointers.asm +++ b/data/map_header_pointers.asm @@ -45,7 +45,7 @@ MapHeaderPointers:: ; fc1f2 (3f:41f2) dw ViridianMart_h dw School_h dw ViridianHouse_h - dw $40d4 ; dw ViridianGym_h + dw ViridianGym_h dw $57ae ; dw DiglettsCaveRoute2_h dw $5485 ; dw ViridianForestExit_h dw $57eb ; dw Route2House_h diff --git a/main.asm b/main.asm index c2146a37..4e07b604 100755 --- a/main.asm +++ b/main.asm @@ -1096,7 +1096,13 @@ SECTION "bank1D",ROMX,BANK[$1D] INCLUDE "engine/items/itemfinder.asm" INCLUDE "scripts/ceruleancity2.asm" - dr $740d4,$74726 + +INCLUDE "data/mapHeaders/viridiangym.asm" +INCLUDE "scripts/viridiangym.asm" +INCLUDE "data/mapObjects/viridiangym.asm" +ViridianGymBlocks: +INCBIN "maps/viridiangym.blk" + dr $744de,$74726 VendingMachineMenu: ; 74726 (1d:4726) dr $74726,$75dfe PKMNLeaguePC: ; 75dfe (1d:5dfe) -- cgit v1.2.3 From e48e466f39da7f386417233530c3193249c58d36 Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Sat, 28 May 2016 22:53:44 -0400 Subject: Various interior maps on route 2 --- data/mapObjects/viridianforestentrance.asm | 2 +- data/map_header_banks.asm | 10 +++---- data/map_header_pointers.asm | 10 +++---- main.asm | 43 ++++++++++++++++++++++++++---- scripts/viridianforestentrance.asm | 3 ++- 5 files changed, 51 insertions(+), 17 deletions(-) diff --git a/data/mapObjects/viridianforestentrance.asm b/data/mapObjects/viridianforestentrance.asm index fc676a6d..891c0636 100755 --- a/data/mapObjects/viridianforestentrance.asm +++ b/data/mapObjects/viridianforestentrance.asm @@ -3,7 +3,7 @@ ViridianForestEntranceObject: ; 0x5d66d (size=48) db $4 ; warps db $0, $4, $3, VIRIDIAN_FOREST - db $0, $5, $4, VIRIDIAN_FOREST + db $0, $5, $3, VIRIDIAN_FOREST db $7, $4, $5, $ff db $7, $5, $5, $ff diff --git a/data/map_header_banks.asm b/data/map_header_banks.asm index 501b3730..2d57ccff 100644 --- a/data/map_header_banks.asm +++ b/data/map_header_banks.asm @@ -46,11 +46,11 @@ MapHeaderBanks:: ; fc3e4 (3f:43e4) db BANK(School_h) db BANK(ViridianHouse_h) db BANK(ViridianGym_h) - db $07 ; db BANK(DiglettsCaveRoute2_h) - db $17 ; db BANK(ViridianForestExit_h) - db $07 ; db BANK(Route2House_h) - db $17 ; db BANK(Route2Gate_h) - db $17 ; db BANK(ViridianForestEntrance_h) + db BANK(DiglettsCaveRoute2_h) + db BANK(ViridianForestExit_h) + db BANK(Route2House_h) + db BANK(Route2Gate_h) + db BANK(ViridianForestEntrance_h) db $18 ; db BANK(ViridianForest_h) db $17 ; db BANK(Museum1F_h) db $17 ; db BANK(Museum2F_h) diff --git a/data/map_header_pointers.asm b/data/map_header_pointers.asm index 48702db9..1c151398 100644 --- a/data/map_header_pointers.asm +++ b/data/map_header_pointers.asm @@ -46,11 +46,11 @@ MapHeaderPointers:: ; fc1f2 (3f:41f2) dw School_h dw ViridianHouse_h dw ViridianGym_h - dw $57ae ; dw DiglettsCaveRoute2_h - dw $5485 ; dw ViridianForestExit_h - dw $57eb ; dw Route2House_h - dw $54d2 ; dw Route2Gate_h - dw $555a ; dw ViridianForestEntrance_h ;id=50 + dw DiglettsCaveRoute2_h + dw ViridianForestExit_h + dw Route2House_h + dw Route2Gate_h + dw ViridianForestEntrance_h ;id=50 dw $50ed ; dw ViridianForest_h dw $40e3 ; dw Museum1F_h dw $41b4 ; dw Museum2F_h diff --git a/main.asm b/main.asm index 4e07b604..457c0e23 100755 --- a/main.asm +++ b/main.asm @@ -289,14 +289,19 @@ INCLUDE "data/mapHeaders/route1.asm" INCLUDE "data/mapObjects/route1.asm" Route1Blocks: ; 1c0fc INCBIN "maps/route1.blk" - dr $1c1b0,$1c1c0 ; headers, objects, blocks +UndergroundPathEntranceRoute8Blocks: +INCBIN "maps/undergroundpathentranceroute8.blk" OaksLabBlocks: INCBIN "maps/oakslab.blk" ViridianHouseBlocks: +Route2HouseBlocks: INCBIN "maps/viridianhouse.blk" SchoolBlocks: INCBIN "maps/school.blk" - dr $1c1fe,$1c21e ; headers, objects, blocks +CeruleanHouseTrashedBlocks: +INCBIN "maps/ceruleanhousetrashed.blk" +DiglettsCaveRoute2Blocks: +INCBIN "maps/diglettscaveroute2.blk" INCLUDE "engine/clear_save.asm" INCLUDE "engine/predefs7.asm" @@ -329,7 +334,16 @@ INCLUDE "data/mapObjects/school.asm" INCLUDE "data/mapHeaders/viridianhouse.asm" INCLUDE "scripts/viridianhouse.asm" INCLUDE "data/mapObjects/viridianhouse.asm" - dr $1ce30,$1e2ae ; map scripts + dr $1ce30,$1d7ae ; map scripts + +INCLUDE "data/mapHeaders/diglettscaveroute2.asm" +INCLUDE "scripts/diglettscaveroute2.asm" +INCLUDE "data/mapObjects/diglettscaveroute2.asm" + +INCLUDE "data/mapHeaders/route2house.asm" +INCLUDE "scripts/route2house.asm" +INCLUDE "data/mapObjects/route2house.asm" + dr $1d831,$1e2ae ; map scripts INCLUDE "engine/menu/oaks_pc.asm" @@ -1031,11 +1045,30 @@ SECTION "bank17",ROMX,BANK[$17] dr $5c000,$5c010 RedsHouse2FBlocks: INCBIN "maps/redshouse2f.blk" - dr $5c020,$5c0a4 + dr $5c020,$5c090 +ViridianForestEntranceBlocks: +ViridianForestExitBlocks: +Route2GateBlocks: +INCBIN "maps/viridianforestentrance.blk" + INCLUDE "data/mapHeaders/redshouse2f.asm" INCLUDE "scripts/redshouse2f.asm" INCLUDE "data/mapObjects/redshouse2f.asm" - dr $5c0d4,$5da70 + dr $5c0d4,$5d485 + +INCLUDE "data/mapHeaders/viridianforestexit.asm" +INCLUDE "scripts/viridianforestexit.asm" +INCLUDE "data/mapObjects/viridianforestexit.asm" + +INCLUDE "data/mapHeaders/route2gate.asm" +INCLUDE "scripts/route2gate.asm" +INCLUDE "data/mapObjects/route2gate.asm" + +INCLUDE "data/mapHeaders/viridianforestentrance.asm" +INCLUDE "scripts/viridianforestentrance.asm" +INCLUDE "data/mapObjects/viridianforestentrance.asm" + + dr $5d5a8,$5da70 INCLUDE "engine/evolution.asm" diff --git a/scripts/viridianforestentrance.asm b/scripts/viridianforestentrance.asm index 14b6cf49..dcfa03ba 100755 --- a/scripts/viridianforestentrance.asm +++ b/scripts/viridianforestentrance.asm @@ -1,5 +1,6 @@ ViridianForestEntranceScript: ; 5d65c (17:565c) - jp EnableAutoTextBoxDrawing + call EnableAutoTextBoxDrawing + ret ViridianForestEntranceTextPointers: ; 5d65f (17:565f) dw ViridianForestEntranceText1 -- cgit v1.2.3 From a86cd928c967b6779a56829a36e70c36289769b9 Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Sun, 29 May 2016 00:10:38 -0400 Subject: Viridian Forest and other functions --- constants/event_constants.asm | 4 +- constants/trainer_constants.asm | 94 ++++++------- data/mapObjects/oakslab.asm | 2 +- data/mapObjects/viridianforest.asm | 26 ++-- engine/bank3c.asm | 16 +-- engine/bank3f.asm | 274 +++++++++++++++++++++++-------------- main.asm | 10 +- scripts/oakslab2.asm | 28 ++++ scripts/school2.asm | 17 +++ scripts/viridianforest.asm | 102 +++++++++++--- scripts/viridianforest2.asm | 45 ++++++ wram.asm | 6 +- 12 files changed, 427 insertions(+), 197 deletions(-) create mode 100755 scripts/oakslab2.asm create mode 100755 scripts/school2.asm create mode 100755 scripts/viridianforest2.asm diff --git a/constants/event_constants.asm b/constants/event_constants.asm index 7fc3b509..49050dd3 100644 --- a/constants/event_constants.asm +++ b/constants/event_constants.asm @@ -1381,8 +1381,8 @@ const_value = 0 const EVENT_BEAT_VIRIDIAN_FOREST_TRAINER_0 ; 562, (D7F3, bit 2) const EVENT_BEAT_VIRIDIAN_FOREST_TRAINER_1 ; 563, (D7F3, bit 3) const EVENT_BEAT_VIRIDIAN_FOREST_TRAINER_2 ; 564, (D7F3, bit 4) - const EVENT_565 ; 565, (D7F3, bit 5) - const EVENT_566 ; 566, (D7F3, bit 6) + const EVENT_BEAT_VIRIDIAN_FOREST_TRAINER_3 ; 565, (D7F3, bit 5) + const EVENT_BEAT_VIRIDIAN_FOREST_TRAINER_4 ; 566, (D7F3, bit 6) const EVENT_567 ; 567, (D7F3, bit 7) const EVENT_568 ; 568, (D7F4, bit 0) const EVENT_569 ; 569, (D7F4, bit 1) diff --git a/constants/trainer_constants.asm b/constants/trainer_constants.asm index fde4d42a..e11cc4aa 100755 --- a/constants/trainer_constants.asm +++ b/constants/trainer_constants.asm @@ -6,50 +6,50 @@ ENDM const_value = 1 - trainer_const YOUNGSTER ; $01 - trainer_const BUG_CATCHER ; $02 - trainer_const LASS ; $03 - trainer_const SAILOR ; $04 - trainer_const JR_TRAINER_M ; $05 - trainer_const JR_TRAINER_F ; $06 - trainer_const POKEMANIAC ; $07 - trainer_const SUPER_NERD ; $08 - trainer_const HIKER ; $09 - trainer_const BIKER ; $0A - trainer_const BURGLAR ; $0B - trainer_const ENGINEER ; $0C - trainer_const JUGGLER_X ; $0D - trainer_const FISHER ; $0E - trainer_const SWIMMER ; $0F - trainer_const CUE_BALL ; $10 - trainer_const GAMBLER ; $11 - trainer_const BEAUTY ; $12 - trainer_const PSYCHIC_TR ; $13 - trainer_const ROCKER ; $14 - trainer_const JUGGLER ; $15 - trainer_const TAMER ; $16 - trainer_const BIRD_KEEPER ; $17 - trainer_const BLACKBELT ; $18 - trainer_const SONY1 ; $19 - trainer_const PROF_OAK ; $1A - trainer_const CHIEF ; $1B - trainer_const SCIENTIST ; $1C - trainer_const GIOVANNI ; $1D - trainer_const ROCKET ; $1E - trainer_const COOLTRAINER_M ; $1F - trainer_const COOLTRAINER_F ; $20 - trainer_const BRUNO ; $21 - trainer_const BROCK ; $22 - trainer_const MISTY ; $23 - trainer_const LT_SURGE ; $24 - trainer_const ERIKA ; $25 - trainer_const KOGA ; $26 - trainer_const BLAINE ; $27 - trainer_const SABRINA ; $28 - trainer_const GENTLEMAN ; $29 - trainer_const SONY2 ; $2A - trainer_const SONY3 ; $2B - trainer_const LORELEI ; $2C - trainer_const CHANNELER ; $2D - trainer_const AGATHA ; $2E - trainer_const LANCE ; $2F + trainer_const YOUNGSTER ; $01 | OPP = $C9 + trainer_const BUG_CATCHER ; $02 | OPP = $CA + trainer_const LASS ; $03 | OPP = $CB + trainer_const SAILOR ; $04 | OPP = $CC + trainer_const JR_TRAINER_M ; $05 | OPP = $CD + trainer_const JR_TRAINER_F ; $06 | OPP = $CE + trainer_const POKEMANIAC ; $07 | OPP = $CF + trainer_const SUPER_NERD ; $08 | OPP = $D0 + trainer_const HIKER ; $09 | OPP = $D1 + trainer_const BIKER ; $0A | OPP = $D2 + trainer_const BURGLAR ; $0B | OPP = $D3 + trainer_const ENGINEER ; $0C | OPP = $D4 + trainer_const JUGGLER_X ; $0D | OPP = $D5 + trainer_const FISHER ; $0E | OPP = $D6 + trainer_const SWIMMER ; $0F | OPP = $D7 + trainer_const CUE_BALL ; $10 | OPP = $D8 + trainer_const GAMBLER ; $11 | OPP = $D9 + trainer_const BEAUTY ; $12 | OPP = $DA + trainer_const PSYCHIC_TR ; $13 | OPP = $DB + trainer_const ROCKER ; $14 | OPP = $DC + trainer_const JUGGLER ; $15 | OPP = $DD + trainer_const TAMER ; $16 | OPP = $DE + trainer_const BIRD_KEEPER ; $17 | OPP = $DF + trainer_const BLACKBELT ; $18 | OPP = $E0 + trainer_const SONY1 ; $19 | OPP = $E1 + trainer_const PROF_OAK ; $1A | OPP = $E2 + trainer_const CHIEF ; $1B | OPP = $E3 + trainer_const SCIENTIST ; $1C | OPP = $E4 + trainer_const GIOVANNI ; $1D | OPP = $E5 + trainer_const ROCKET ; $1E | OPP = $E6 + trainer_const COOLTRAINER_M ; $1F | OPP = $E7 + trainer_const COOLTRAINER_F ; $20 | OPP = $E8 + trainer_const BRUNO ; $21 | OPP = $E9 + trainer_const BROCK ; $22 | OPP = $EA + trainer_const MISTY ; $23 | OPP = $EB + trainer_const LT_SURGE ; $24 | OPP = $EC + trainer_const ERIKA ; $25 | OPP = $ED + trainer_const KOGA ; $26 | OPP = $EE + trainer_const BLAINE ; $27 | OPP = $EF + trainer_const SABRINA ; $28 | OPP = $F0 + trainer_const GENTLEMAN ; $29 | OPP = $F1 + trainer_const SONY2 ; $2A | OPP = $F2 + trainer_const SONY3 ; $2B | OPP = $F3 + trainer_const LORELEI ; $2C | OPP = $F4 + trainer_const CHANNELER ; $2D | OPP = $F5 + trainer_const AGATHA ; $2E | OPP = $F6 + trainer_const LANCE ; $2F | OPP = $F7 diff --git a/data/mapObjects/oakslab.asm b/data/mapObjects/oakslab.asm index 779b458f..5b9a01d5 100755 --- a/data/mapObjects/oakslab.asm +++ b/data/mapObjects/oakslab.asm @@ -8,7 +8,7 @@ OaksLabObject: ; 0x1d40a (size=88) db $0 ; signs db $9 ; objects - object SPRITE_BLUE, $4, $3, STAY, NONE, $41, OPP_SONY1, $1 + object SPRITE_BLUE, $4, $3, STAY, NONE, $1, OPP_SONY1, $1 object SPRITE_BALL, $7, $3, STAY, NONE, $2 ; person object SPRITE_OAK, $5, $2, STAY, DOWN, $3 ; person object SPRITE_BOOK_MAP_DEX, $2, $1, STAY, NONE, $4 ; person diff --git a/data/mapObjects/viridianforest.asm b/data/mapObjects/viridianforest.asm index a1d52cfe..8f5d6b0b 100755 --- a/data/mapObjects/viridianforest.asm +++ b/data/mapObjects/viridianforest.asm @@ -3,29 +3,31 @@ ViridianForestObject: ; 0x611da (size=127) db $6 ; warps db $0, $1, $2, VIRIDIAN_FOREST_EXIT - db $0, $2, $3, VIRIDIAN_FOREST_EXIT + db $0, $2, $2, VIRIDIAN_FOREST_EXIT db $2f, $f, $1, VIRIDIAN_FOREST_ENTRANCE db $2f, $10, $1, VIRIDIAN_FOREST_ENTRANCE db $2f, $11, $1, VIRIDIAN_FOREST_ENTRANCE db $2f, $12, $1, VIRIDIAN_FOREST_ENTRANCE db $6 ; signs - db $28, $18, $9 ; ViridianForestText9 - db $20, $10, $a ; ViridianForestText10 - db $11, $1a, $b ; ViridianForestText11 - db $18, $4, $c ; ViridianForestText12 - db $2d, $12, $d ; ViridianForestText13 - db $1, $2, $e ; ViridianForestText14 + db $28, $18, $b ; ViridianForestText9 + db $20, $10, $c ; ViridianForestText10 + db $11, $1a, $d ; ViridianForestText11 + db $18, $4, $e ; ViridianForestText12 + db $2d, $12, $f ; ViridianForestText13 + db $1, $2, $10 ; ViridianForestText14 - db $8 ; objects + db $a ; objects object SPRITE_BUG_CATCHER, $10, $2b, STAY, NONE, $1 ; person object SPRITE_BUG_CATCHER, $1e, $21, STAY, LEFT, $2, OPP_BUG_CATCHER, $1 object SPRITE_BUG_CATCHER, $1e, $13, STAY, LEFT, $3, OPP_BUG_CATCHER, $2 object SPRITE_BUG_CATCHER, $2, $12, STAY, LEFT, $4, OPP_BUG_CATCHER, $3 - object SPRITE_BALL, $19, $b, STAY, NONE, $5, ANTIDOTE - object SPRITE_BALL, $c, $1d, STAY, NONE, $6, POTION - object SPRITE_BALL, $1, $1f, STAY, NONE, $7, POKE_BALL - object SPRITE_BUG_CATCHER, $1b, $28, STAY, NONE, $8 ; person + object SPRITE_LASS, $2, $29, STAY, NONE, $5, OPP_LASS, $13 + object SPRITE_BUG_CATCHER, $d, $11, STAY, RIGHT, $6, OPP_BUG_CATCHER, $f + object SPRITE_BALL, $19, $b, STAY, NONE, $7, POTION + object SPRITE_BALL, $c, $1d, STAY, NONE, $8, POTION + object SPRITE_BALL, $1, $1f, STAY, NONE, $9, POKE_BALL + object SPRITE_BUG_CATCHER, $1b, $28, STAY, NONE, $a ; person ; warp-to EVENT_DISP VIRIDIAN_FOREST_WIDTH, $0, $1 ; VIRIDIAN_FOREST_EXIT diff --git a/engine/bank3c.asm b/engine/bank3c.asm index 6f949238..964cc0bd 100644 --- a/engine/bank3c.asm +++ b/engine/bank3c.asm @@ -302,7 +302,7 @@ Func_f0a82: ; f0a82 ret nz push hl push bc - callab Func_fcb4d ; get Pikachu's position with respect to you? + callab GetPikachuFacingDirectionAndReturnToE pop bc pop hl ld a, b @@ -349,12 +349,9 @@ INCLUDE "scripts/celadoncity2.asm" INCLUDE "scripts/route1_2.asm" INCLUDE "scripts/route22_2.asm" INCLUDE "scripts/redshouse1f2.asm" -Func_f1be0: - dr $f1be0, $f1c03 -Func_f1c03: - dr $f1c03, $f1c0f -Func_f1c0f: - dr $f1c0f, $f220e +INCLUDE "scripts/oakslab2.asm" +INCLUDE "scripts/school2.asm" + dr $f1c1b, $f220e INCLUDE "data/mapHeaders/beach_house.asm" INCLUDE "scripts/beach_house.asm" @@ -365,7 +362,10 @@ INCLUDE "data/mapObjects/beach_house.asm" Func_f23d0: ; f23d0 dr $f23d0, $f24ae Func_f24ae: ; f24ae - dr $f24ae, $f25f8 + dr $f24ae, $f2528 + +INCLUDE "scripts/viridianforest2.asm" + dr $f2564, $f25f8 INCLUDE "engine/overworld/hidden_objects.asm" diff --git a/engine/bank3f.asm b/engine/bank3f.asm index 8f01097e..5cab9357 100644 --- a/engine/bank3f.asm +++ b/engine/bank3f.asm @@ -17,10 +17,11 @@ Func_fc4dd:: ; fc4dd (3f:44dd) jr nz, .asm_fc4f8 scf ret + .asm_fc4f8 and a ret - + Func_fc4fa:: ; fc4fa (3f:44fa) ld hl, wd430 bit 4, [hl] @@ -30,10 +31,10 @@ Func_fc4fa:: ; fc4fa (3f:44fa) call Func_fc523 ld a, $ff ld [wSpriteStateData1 + $f2], a - call Func_fcb84 + call ClearPikachuFollowCommandBuffer call Func_fc5bc ret - + .asm_fc515 call Func_fc53f xor a @@ -41,7 +42,7 @@ Func_fc4fa:: ; fc4fa (3f:44fa) ld a, [wSpriteStateData1 + $9] ld [wSpriteStateData1 + $f9], a ret - + Func_fc523:: ; fc523 (3f:4523) ld hl, wSpriteStateData1 + $f0 call Func_fc52c @@ -58,7 +59,7 @@ Func_fc534:: ; fc534 (3f:4534) xor a ld [wd431], a ret - + Func_fc53f:: ; fc53f (3f:453f) ld bc, wSpriteStateData1 + $f0 ld a, [wYCoord] @@ -85,12 +86,12 @@ Func_fc53f:: ; fc53f (3f:453f) cp $7 jr z, .asm_fc572 jr .asm_fc59e - + .asm_fc572 ld a, [wSpriteStateData1 + $9] and a ; SPRITE_FACING_DOWN jr z, .asm_fc5a4 - cp SPRITE_FACING_UP + cp SPRITE_FACING_UP jr z, .asm_fc5a7 cp SPRITE_FACING_LEFT jr z, .asm_fc5a1 @@ -102,28 +103,35 @@ Func_fc53f:: ; fc53f (3f:453f) jr nz, .asm_fc58d dec e jr .asm_fc5aa + .asm_fc58d cp SPRITE_FACING_UP jr nz, .asm_fc594 inc e jr .asm_fc5aa + .asm_fc594 cp SPRITE_FACING_LEFT jr nz, .asm_fc59b inc d jr .asm_fc5aa + .asm_fc59b dec d jr .asm_fc5aa + .asm_fc59e inc d jr .asm_fc5aa + .asm_fc5a1 dec d jr .asm_fc5aa + .asm_fc5a4 inc e jr .asm_fc5aa + .asm_fc5a7 dec e jr .asm_fc5aa ; useless jr @@ -141,7 +149,7 @@ Func_fc4b2:: ; fc4b2 (3f:44b2) set 5, [hl] pop hl ret - + Func_fc5bc:: ; fc5bc (3f:45bc) ld a, $49 ld [wSpriteStateData1 + $f0], a @@ -162,15 +170,17 @@ Func_fc5bc:: ; fc5bc (3f:45bc) jr z, .asm_fc5f1 call Func_fccb2 ret - + .asm_fc5e4 ld a, [wSpriteStateData1 + $9] ld [wSpriteStateData1 + $f9], a ret + .asm_fc5eb ld a, $0 ld [wSpriteStateData1 + $f9], a ret + .asm_fc5f1 ld a, [wSpriteStateData1 + $9] xor $4 @@ -200,24 +210,29 @@ Func_fc5fa:: ; fc5fa (3f:45fa) jr nz, .asm_fc641 ld a, $3 jr .asm_fc647 - + .asm_fc62d ld a, [wSpriteStateData1 + $9] and a jr z, .asm_fc645 jr .asm_fc641 + .asm_fc635 ld a, $3 jr .asm_fc647 + .asm_fc639 ld a, $4 jr .asm_fc647 + .asm_fc63d ld a, $6 jr .asm_fc647 + .asm_fc641 ld a, $1 jr .asm_fc647 + .asm_fc645 ld a, $3 .asm_fc647 @@ -226,7 +241,7 @@ Func_fc5fa:: ; fc5fa (3f:45fa) Pointer_fc64b:: ; fc64b (3f:464b) db $c2, $4c, $4f, $ba, $be, $b8, $54, $ff - + Pointer_fc653:: ; fc653 (3f:4653) db $2f, $e6, $3e, $5e, $80, $31, $a4, $ff @@ -241,28 +256,32 @@ Func_fc65b:: ; fc65b (3f:465b) call Func_1568 jr c, .asm_fc688 jr .asm_fc684 + .asm_fc673 ld a, [wSpriteStateData1 + $9] cp SPRITE_FACING_UP jr z, .asm_fc688 jr .asm_fc684 + .asm_fc67c ld a, [wSpriteStateData1 + $9] and a ; SPRITE_FACING_DOWN jr z, .asm_fc684 jr .asm_fc688 + .asm_fc684 ld a, $0 jr .asm_fc68a + .asm_fc688 ld a, $1 .asm_fc68a ld [wd431], a ret - + Pointer_fc68e:: ; fc68e (3f:468e) db $33, $dd, $df, $e0, $e1, $de, $ec, $7f, $a8, $a9, $aa, $ff - + Func_fc69a:: ; fc69a (3f:469a) ld a, [wCurMap] cp ROUTE_22_GATE @@ -270,22 +289,27 @@ Func_fc69a:: ; fc69a (3f:469a) cp ROUTE_2_GATE jr z, .asm_fc6b0 jr .asm_fc6bd + .asm_fc6a7 ld a, [wSpriteStateData1 + $9] cp SPRITE_FACING_UP jr z, .asm_fc6b9 jr .asm_fc6bd + .asm_fc6b0 ld a, [wSpriteStateData1 + $9] cp SPRITE_FACING_UP jr z, .asm_fc6b9 jr .asm_fc6bd + .asm_fc6b9 ld a, $1 jr .asm_fc6c1 + .asm_fc6bd ld a, $3 jr .asm_fc6c1 + .asm_fc6c1 ld [wd431], a ret @@ -337,7 +361,7 @@ Func_fc6d5:: ; fc6d5 (3f:46d5) ld h, [hl] ld l, a jp hl - + PointerTable_fc710: ; fc710 (3f:4710) dw Func_fc793 dw Func_fc7aa @@ -350,7 +374,7 @@ PointerTable_fc710: ; fc710 (3f:4710) dw asm_fc937 dw asm_fc969 dw Func_fc726 - + Func_fc726: ; fc726 (3f:4726) ret @@ -368,6 +392,7 @@ Func_fc727: ; fc727 (3f:4727) .asm_fc739 scf ret + .asm_fc73b ld hl, wSpriteStateData1 + $f2 ld [hl], $ff @@ -375,6 +400,7 @@ Func_fc727: ; fc727 (3f:4727) ld [hl], $0 xor a ret + asm_fc745: ; fc745 (3f:4745) ld hl, $1 add hl, bc @@ -397,6 +423,7 @@ asm_fc745: ; fc745 (3f:4745) ld [hl], a call Func_fca99 ret + asm_fc76a: ; fc76a (3f:476a) xor a ld hl, $7 @@ -485,7 +512,7 @@ Pointer_fc7e3: ; fc7e3 (3f:47e3) db $0, $4 db $c, $1 db $0, $4 - + Func_fc803: ; fc803 (3f:4803) call Func_fcae2 ret c @@ -528,7 +555,7 @@ Func_fc835: ; fc835 (3f:4835) add hl, bc ld [hl], $1 ret - + Func_fc842: ; fc842 (3f:4842) ld hl, $0 push af @@ -545,13 +572,13 @@ Func_fc842: ; fc842 (3f:4842) ld l, a pop af jp hl - + PointerTable_fc85a: ; fc85a (3f:485a) dw Func_fc862 dw Func_fc8f8 dw Func_fc92b dw Func_fc95d - + Func_fc862: ; fc862 (3f:4862) dec a add a @@ -616,7 +643,7 @@ asm_fc87f: ; fc87f (3f:487f) dec [hl] ret nz jp Func_fc835 - + Func_fc8c7: ; fc8c7 (3f:48c7) ld hl, $4 add hl, bc @@ -638,7 +665,7 @@ Pointer_fc8d6: ; fc8d6 (3f:48d6) db $fc, $fe, $fe, $fd, $0 db $fc, $fe, $fd, $fc, $fe db $fe, $ff, $00, $00 - + Func_fc8f8: ; fc8f8 (3f:48f8) ld hl, $1 add hl, bc @@ -670,7 +697,7 @@ asm_fc904: ; fc904 (3f:4904) dec [hl] ret nz jp Func_fc835 - + Func_fc92b: ; fc92b (3f:492b) ld hl, wSpriteStateData2 - wSpriteStateData1 add hl, bc @@ -701,7 +728,7 @@ asm_fc937: ; fc937 (3f:4937) dec [hl] ret nz jp Func_fc835 - + Func_fc95d: ; fc95d (3f:495d) ld hl, wSpriteStateData2 - wSpriteStateData1 add hl, bc @@ -734,7 +761,7 @@ asm_fc969: ; fc969 (3f:4969) dec [hl] ret nz jp Func_fc835 - + Func_fc994: ; fc994 (3f:4994) push hl ld hl, Pointer_fc9ac @@ -746,7 +773,7 @@ Func_fc994: ; fc994 (3f:4994) ld a, [hl] pop hl ret - + Func_fc9a0: ; fc9a0 (3f:49a0) push hl ld hl, Pointer_fc9ac_End @@ -758,7 +785,7 @@ Func_fc9a0: ; fc9a0 (3f:49a0) ld a, [hl] pop hl ret - + Pointer_fc9ac: ; fc9ac (3f:49ac) db SPRITE_FACING_DOWN, SPRITE_FACING_LEFT, SPRITE_FACING_UP, SPRITE_FACING_RIGHT db SPRITE_FACING_DOWN, SPRITE_FACING_LEFT, SPRITE_FACING_UP, SPRITE_FACING_RIGHT @@ -785,7 +812,7 @@ asm_fc9c3: ; fc9c3 (3f:49c3) add hl, bc ld [hl], $1 ret - + Func_fc9df: ; fc9df (3f:49df) ld hl, wSpriteStateData2 - wSpriteStateData1 add hl, bc @@ -808,7 +835,7 @@ asm_fc9ee: ; fc9ee (3f:49ee) add hl, bc ld [hl], $1 ret - + Func_fca0a: ; fca0a (3f:4a0a) ld hl, wSpriteStateData2 - wSpriteStateData1 add hl, bc @@ -832,7 +859,7 @@ asm_fca1c: ; fca1c (3f:4a1c) add hl, bc ld [hl], $1 ret - + Func_fca38: ; fca38 (3f:4a38) ld hl, $3 add hl, bc @@ -849,7 +876,7 @@ Func_fca38: ; fca38 (3f:4a38) add d ld [hl], a ret - + Func_fca4b: ; fca4b (3f:4a4b) ld a, [wWalkBikeSurfState] cp $1 @@ -871,7 +898,7 @@ asm_fca59: ; fca59 (3f:4a59) add [hl] ld [hl], a ret - + Func_fca68: ; fca68 (3f:4a68) ld hl, $3 add hl, bc @@ -884,7 +911,7 @@ Func_fca68: ; fca68 (3f:4a68) add [hl] ld [hli], a ret - + Func_fca75: ; fca75 (3f:4a75) ld hl, $3 add hl, bc @@ -893,7 +920,7 @@ Func_fca75: ; fca75 (3f:4a75) inc hl ld [hl], a ret - + Func_fca7e: ; fca7e (3f:4a7e) call Func_fcdad ld d, $2 @@ -915,7 +942,7 @@ Func_fca7e: ; fca7e (3f:4a7e) and $3 ld [hl], a ret - + Func_fca99: ; fca99 (3f:4a99) ld a, [wd430] bit 3, a @@ -940,6 +967,7 @@ Func_fca99: ; fca99 (3f:4a99) call Func_fcae2 ret c jr .asm_fcacb + .asm_fcac4 ld hl, $8 add hl, bc @@ -951,18 +979,20 @@ Func_fca99: ; fca99 (3f:4a99) add hl, bc ld [hl], d ret + .asm_fcad1 ld hl, $2 add hl, bc ld [hl], $ff ret + .asm_fcad8 ld a, [wSpriteStateData1 + $2] and $f or d ld [wSpriteStateData1 + $f2], a ret - + Func_fcae2: ; fcae2 (3f:4ae2) ld hl, $104 add hl, bc @@ -980,6 +1010,7 @@ Func_fcae2: ; fcae2 (3f:4ae2) ld [hl], $ff scf ret + .asm_fcaff and a ret @@ -1006,6 +1037,7 @@ Func_fcb01: ; fcb01 (3f:4b01) cp $1 jr z, .asm_fcb26 jr .asm_fcb48 + .asm_fcb26 ld hl, $105 add hl, bc @@ -1013,6 +1045,7 @@ Func_fcb01: ; fcb01 (3f:4b01) sub d jr z, .asm_fcb43 jr .asm_fcb48 + .asm_fcb30 ld hl, $105 add hl, bc @@ -1025,12 +1058,14 @@ Func_fcb01: ; fcb01 (3f:4b01) and a jr z, .asm_fcb43 jr .asm_fcb48 + .asm_fcb43 pop hl pop de pop bc scf ret + .asm_fcb48 pop hl pop de @@ -1038,12 +1073,12 @@ Func_fcb01: ; fcb01 (3f:4b01) xor a ret -Func_fcb4d: ; fcb4d (3f:4b4d) - call Func_fcb52 +GetPikachuFacingDirectionAndReturnToE: ; fcb4d (3f:4b4d) + call GetPikachuFacingDirection ld e, a ret - -Func_fcb52: ; fcb52 (3f:4b52) + +GetPikachuFacingDirection: ; fcb52 (3f:4b52) ld bc, wSpriteStateData1 + $f0 ld a, [wXCoord] add $4 @@ -1055,7 +1090,7 @@ Func_fcb52: ; fcb52 (3f:4b52) add hl, bc ld a, [hl] cp e - jr z, Func_fcb71 + jr z, .asm_fcb71 jr nc, .asm_fcb6e ld a, SPRITE_FACING_UP ret @@ -1063,8 +1098,8 @@ Func_fcb52: ; fcb52 (3f:4b52) .asm_fcb6e ld a, SPRITE_FACING_DOWN ret - -Func_fcb71: ; fcb71 (3f:4b71) + +.asm_fcb71 ld hl, wSpriteStateData2 - wSpriteStateData1 + 5 add hl, bc ld a, [hl] @@ -1082,9 +1117,9 @@ Func_fcb71: ; fcb71 (3f:4b71) ld a, $ff ; standing ret -Func_fcb84: ; fcb84 (3f:4b84) +ClearPikachuFollowCommandBuffer: ; fcb84 (3f:4b84) push bc - ld hl, wd437 + ld hl, wPikachuFollowCommandBufferSize ld [hl], $ff inc hl ld bc, $10 @@ -1092,91 +1127,99 @@ Func_fcb84: ; fcb84 (3f:4b84) call FillMemory pop bc ret - -Func_fcb94: ; fcb94 (3f:4b94) - ld hl, wd437 + +AppendPikachuFollowCommandToBuffer: ; fcb94 (3f:4b94) + ld hl, wPikachuFollowCommandBufferSize inc [hl] ld e, [hl] ld d, 0 - ld hl, wd438 + ld hl, wPikachuFollowCommandBuffer add hl, de ld [hl], a ret - + Func_fcba1: ; fcba1 (3f:4ba1) - call Func_fcb84 - call Func_fcbac + call ClearPikachuFollowCommandBuffer + call GetPikachuFollowCommand ret c - call Func_fcb94 + call AppendPikachuFollowCommandToBuffer ret - -Func_fcbac: ; fcbac (3f:4bac) + +GetPikachuFollowCommand: ; fcbac (3f:4bac) ld bc, wSpriteStateData1 + $f0 - ld hl, $104 + ld hl, wSpriteStateData2 - wSpriteStateData1 + 4 add hl, bc ld a, [wYCoord] add $4 sub [hl] - jr z, .asm_fcbd7 - jr c, .asm_fcbca - call Func_fcc01 - jr c, .asm_fcbc6 + jr z, .checkXCoord + jr c, .pikaAbovePlayer + call CheckAbsoluteValueLessThan2 + jr c, .return1 ld a, $5 and a ret -.asm_fcbc6 + +.return1 ld a, $1 and a ret -.asm_fcbca - call Func_fcc01 - jr c, .asm_fcbd3 + +.pikaAbovePlayer + call CheckAbsoluteValueLessThan2 + jr c, .return2 ld a, $6 and a ret -.asm_fcbd3 + +.return2 ld a, $2 and a ret -.asm_fcbd7 - ld hl, $105 + +.checkXCoord + ld hl, wSpriteStateData2 - wSpriteStateData1 + 5 add hl, bc ld a, [wXCoord] add $4 sub [hl] - jr z, .asm_fcbff - jr c, .asm_fcbf2 - call Func_fcc01 - jr c, .asm_fcbee + jr z, .pikachuOnTopOfPlayer + jr c, .pikaToLeftOfPlayer + call CheckAbsoluteValueLessThan2 + jr c, .return4 ld a, $8 and a ret -.asm_fcbee + +.return4 ld a, $4 and a ret -.asm_fcbf2 - call Func_fcc01 - jr c, .asm_fcbfb + +.pikaToLeftOfPlayer + call CheckAbsoluteValueLessThan2 + jr c, .return3 ld a, $7 and a ret -.asm_fcbfb + +.return3 ld a, $3 and a ret -.asm_fcbff + +.pikachuOnTopOfPlayer scf ret - -Func_fcc01: ; fcc01 (3f:4c01) - jr nc, .asm_fcc05 + +CheckAbsoluteValueLessThan2: ; fcc01 (3f:4c01) + jr nc, .positive cpl inc a -.asm_fcc05 +.positive cp $2 ret - + Func_fcc08:: ; fcc08 (3f:4c08) call Func_fcc23 ret nc @@ -1185,14 +1228,15 @@ Func_fcc08:: ; fcc08 (3f:4c08) jr nz, .asm_fcc1b call Func_fcc42 ret c - call Func_fcb94 + call AppendPikachuFollowCommandToBuffer ret + .asm_fcc1b call Func_fcc64 ret c - call Func_fcb94 + call AppendPikachuFollowCommandToBuffer ret - + Func_fcc23: ; fcc23 (3f:4c28) ld a, [wd430] bit 5, a @@ -1208,10 +1252,11 @@ Func_fcc23: ; fcc23 (3f:4c28) jr nz, .asm_fcc40 scf ret + .asm_fcc40 and a ret - + Func_fcc42: ; fcc42 (3f:4c42) xor a ld a, [wPlayerDirection] @@ -1225,25 +1270,30 @@ Func_fcc42: ; fcc42 (3f:4c42) jr nz, .asm_fcc61 scf ret + .asm_fcc58 ld a, $2 ret + .asm_fcc5b ld a, $1 ret + .asm_fcc5e ld a, $3 ret + .asm_fcc61 ld a, $4 ret - + Func_fcc64: ; fcc64 (3f:4c64) ld hl, wd430 bit 6, [hl] jr z, .asm_fcc6e res 6, [hl] ret + .asm_fcc6e set 6, [hl] xor a @@ -1258,21 +1308,25 @@ Func_fcc64: ; fcc64 (3f:4c64) jr nz, .asm_fcc8f scf ret + .asm_fcc86 ld a, $6 ret + .asm_fcc89 ld a, $5 ret + .asm_fcc8c ld a, $7 ret + .asm_fcc8f ld a, $8 ret Func_fcc92: ; fcc92 (3f:4c92) - ld hl, wd437 + ld hl, wPikachuFollowCommandBufferSize ld a, [hl] cp $ff jr z, .asm_fccb0 @@ -1281,7 +1335,7 @@ Func_fcc92: ; fcc92 (3f:4c92) dec [hl] ld e, a ld d, 0 - ld hl, wd438 + ld hl, wPikachuFollowCommandBuffer add hl, de inc e ld a, $ff @@ -1293,6 +1347,7 @@ Func_fcc92: ; fcc92 (3f:4c92) jr nz, .asm_fcca8 and a ret + .asm_fccb0 scf ret @@ -1306,6 +1361,7 @@ Func_fccb2:: ; fccb2 (3f:4cb2) add a add a jr .asm_fccea + .asm_fccbf ld a, [wYCoord] add $4 @@ -1320,6 +1376,7 @@ Func_fccb2:: ; fccb2 (3f:4cb2) jr c, .asm_fccea ld a, SPRITE_FACING_UP jr .asm_fccea + .asm_fccd9 ld a, [wSpriteStateData2 + $f5] cp e @@ -1328,29 +1385,31 @@ Func_fccb2:: ; fccb2 (3f:4cb2) jr c, .asm_fccea ld a, SPRITE_FACING_LEFT jr .asm_fccea + .asm_fcce7 ld a, [wSpriteStateData1 + $9] .asm_fccea ld [wSpriteStateData1 + $f9], a ret - + Func_fccee: ; fccee (3f:4cee) - ld hl, wd437 + ld hl, wPikachuFollowCommandBufferSize ld a, [hl] cp $ff jr z, .asm_fccff ld e, a ld d, 0 - ld hl, wd438 + ld hl, wPikachuFollowCommandBuffer add hl, de ld a, [hl] ret + .asm_fccff xor a ret - + Func_fcd01: ; fcd01 (3f:4d01) - ld hl, wd437 + ld hl, wPikachuFollowCommandBufferSize ld a, [hl] cp $ff jr z, .asm_fcd15 @@ -1358,26 +1417,28 @@ Func_fcd01: ; fcd01 (3f:4d01) jr z, .asm_fcd15 ld e, a ld d, 0 - ld hl, wd438 + ld hl, wPikachuFollowCommandBuffer add hl, de ld a, [hl] ret + .asm_fcd15 xor a ret - + Func_fcd17: ; fcd17 (3f:4d17) - ld a, [wd437] + ld a, [wPikachuFollowCommandBufferSize] cp $ff ret z cp $2 jr nc, .asm_fcd23 and a ret + .asm_fcd23 scf ret - + Func_fcd25: ; fcd25 (3f:4d25) ld h, wSpriteStateData2 / $100 ld a, [H_CURRENTSPRITEOFFSET] @@ -1427,6 +1488,7 @@ Func_fcd25: ; fcd25 (3f:4d25) ld [hl], $ff scf jr .asm_fcd82 + .asm_fcd6f ld h, wSpriteStateData2 / $100 ld a, [H_CURRENTSPRITEOFFSET] @@ -1442,7 +1504,7 @@ Func_fcd25: ; fcd25 (3f:4d25) and a .asm_fcd82 ret - + Func_fcd83: ; fcd83 (3f:4d83) ld h, wSpriteStateData1 / $100 ld a, [H_CURRENTSPRITEOFFSET] @@ -1469,7 +1531,7 @@ Func_fcd83: ; fcd83 (3f:4d83) endr add hl, de ret - + Func_fcdad: ; fcdad (3f:4dad) push bc push af @@ -1526,6 +1588,7 @@ IsStarterPikachuInOurParty:: ; fcdb8 (3f:4db8) ld b, h ld c, l jr .loop + .sameOT pop bc pop de @@ -1539,6 +1602,7 @@ IsStarterPikachuInOurParty:: ; fcdb8 (3f:4db8) pop hl scf ret + .noPlayerPikachu pop hl and a @@ -1588,10 +1652,11 @@ asm_fce21: ; fce21 (3f:4e21) .notPlayerPikachu and a ret + .isPlayerPikachu scf ret - + Func_fce5a:: ; fce5a (3f:4e5a) push de call IsStarterPikachuInOurParty @@ -1604,6 +1669,7 @@ Func_fce5a:: ; fce5a (3f:4e5a) cp d jr c, .asm_fce6e ret + .asm_fce6c cp d ret c @@ -1639,14 +1705,17 @@ Func_fce73:: ; fce73 (3f:4e73) and a jr nz, .asm_fcea7 jr .asm_fcea9 + .asm_fce9e ld a, [wWhichPokemon] inc a ld [wWhichPokemon], a jr .loop + .asm_fcea7 scf ret + .asm_fcea9 and a ret @@ -1678,6 +1747,7 @@ IsSurfingPikachuInThePlayersParty:: ; fceab (3f:4eab) pop bc pop hl jr .curMonNotSurfingPlayerPikachu + .foundSurfingPikachu pop bc pop hl @@ -1716,17 +1786,19 @@ IsSurfingPikachuInThePlayersParty:: ; fceab (3f:4eab) ld b, h ld c, l jr .loop + .foundSurfingPlayerPikachu pop bc pop de pop hl scf ret + .noSurfingPlayerPikachu pop hl and a ret - + INCLUDE "engine/pikachu_pic_animation.asm" Func_fe66e: diff --git a/main.asm b/main.asm index 457c0e23..0d13baf2 100755 --- a/main.asm +++ b/main.asm @@ -1077,8 +1077,14 @@ INCLUDE "engine/evolution.asm" INCLUDE "engine/hidden_object_functions17.asm" SECTION "bank18",ROMX,BANK[$18] - - dr $60000,$625e8 +ViridianForestBlocks: +INCBIN "maps/viridianforest.blk" + dr $60198,$610ed + +INCLUDE "data/mapHeaders/viridianforest.asm" +INCLUDE "scripts/viridianforest.asm" +INCLUDE "data/mapObjects/viridianforest.asm" + dr $612a4,$625e8 INCLUDE "engine/hidden_object_functions18.asm" SECTION "bank19",ROMX,BANK[$19] diff --git a/scripts/oakslab2.asm b/scripts/oakslab2.asm new file mode 100755 index 00000000..fef72470 --- /dev/null +++ b/scripts/oakslab2.asm @@ -0,0 +1,28 @@ +Func_f1be0: + ld a, [wYCoord] + cp 3 + jr z, .asm_f1bf0 + ld b, SPRITE_FACING_DOWN + ld hl, Data_f1bf9 + call Func_f0a82 + ret + +.asm_f1bf0 + ld b, SPRITE_FACING_LEFT + ld hl, Data_f1bfe + call Func_f0a82 + ret + +Data_f1bf9: + db $00 + db $1f + db $1e + db $38 + db $3f + +Data_f1bfe: + db $00 + db $1d + db $20 + db $36 + db $3f diff --git a/scripts/school2.asm b/scripts/school2.asm new file mode 100755 index 00000000..677a43ec --- /dev/null +++ b/scripts/school2.asm @@ -0,0 +1,17 @@ +Func_f1c03: + ld hl, SchoolText_f1c0a + call PrintText + ret + +SchoolText_f1c0a: + TX_FAR _SchoolText3 + db "@" + +Func_f1c0f: + ld hl, SchoolText_f1c16 + call PrintText + ret + +SchoolText_f1c16: + TX_FAR _SchoolText2 + db "@" diff --git a/scripts/viridianforest.asm b/scripts/viridianforest.asm index 892eeef2..8ac0d8a8 100755 --- a/scripts/viridianforest.asm +++ b/scripts/viridianforest.asm @@ -17,16 +17,18 @@ ViridianForestTextPointers: ; 61126 (18:5126) dw ViridianForestText2 dw ViridianForestText3 dw ViridianForestText4 + dw ViridianForestText5 + dw ViridianForestText6 dw PickUpItemText dw PickUpItemText dw PickUpItemText - dw ViridianForestText8 - dw ViridianForestText9 dw ViridianForestText10 dw ViridianForestText11 dw ViridianForestText12 dw ViridianForestText13 dw ViridianForestText14 + dw ViridianForestText15 + dw ViridianForestText16 ViridianForestTrainerHeaders: ; 61142 (18:5142) ViridianForestTrainerHeader0: ; 61142 (18:5142) @@ -56,6 +58,24 @@ ViridianForestTrainerHeader2: ; 6115a (18:515a) dw ViridianForestEndBattleText3 ; TextEndBattle dw ViridianForestEndBattleText3 ; TextEndBattle +ViridianForestTrainerHeader3: + dbEventFlagBit EVENT_BEAT_VIRIDIAN_FOREST_TRAINER_3 + db ($0 << 4) ; trainer's view range + dwEventFlagAddress EVENT_BEAT_VIRIDIAN_FOREST_TRAINER_3 + dw ViridianForestBattleText4 ; TextBeforeBattle + dw ViridianForestAfterBattleText4 ; TextAfterBattle + dw ViridianForestEndBattleText4 ; TextEndBattle + dw ViridianForestEndBattleText4 ; TextEndBattle + +ViridianForestTrainerHeader4: + dbEventFlagBit EVENT_BEAT_VIRIDIAN_FOREST_TRAINER_4 + db ($4 << 4) ; trainer's view range + dwEventFlagAddress EVENT_BEAT_VIRIDIAN_FOREST_TRAINER_4 + dw ViridianForestBattleText5 ; TextBeforeBattle + dw ViridianForestAfterBattleText5 ; TextAfterBattle + dw ViridianForestEndBattleText5 ; TextEndBattle + dw ViridianForestEndBattleText5 ; TextEndBattle + db $ff ViridianForestText1: ; 61167 (18:5167) @@ -65,18 +85,27 @@ ViridianForestText1: ; 61167 (18:5167) ViridianForestText2: ; 6116c (18:516c) TX_ASM ld hl, ViridianForestTrainerHeader0 - call TalkToTrainer - jp TextScriptEnd + jr ViridianForestTalkToTrainer ViridianForestText3: ; 61176 (18:5176) TX_ASM ld hl, ViridianForestTrainerHeader1 - call TalkToTrainer - jp TextScriptEnd + jr ViridianForestTalkToTrainer ViridianForestText4: ; 61180 (18:5180) TX_ASM ld hl, ViridianForestTrainerHeader2 + jr ViridianForestTalkToTrainer + +ViridianForestText5: + TX_ASM + ld hl, ViridianForestTrainerHeader3 + jr ViridianForestTalkToTrainer + +ViridianForestText6: + TX_ASM + ld hl, ViridianForestTrainerHeader4 +ViridianForestTalkToTrainer: call TalkToTrainer jp TextScriptEnd @@ -116,30 +145,63 @@ ViridianForestAfterBattleText3: ; 611b2 (18:51b2) TX_FAR _ViridianFrstAfterBattleText3 db "@" -ViridianForestText8: ; 611b7 (18:51b7) - TX_FAR _ViridianForestText8 +ViridianForestBattleText4: ; 611a8 (18:51a8) + TX_FAR _ViridianForestBattleTextPikaGirl db "@" -ViridianForestText9: ; 611bc (18:51bc) - TX_FAR _ViridianForestText9 +ViridianForestEndBattleText4: ; 611ad (18:51ad) + TX_FAR _ViridianForestEndBattleTextPikaGirl db "@" -ViridianForestText10: ; 611c1 (18:51c1) - TX_FAR _ViridianForestText10 +ViridianForestAfterBattleText4: ; 611b2 (18:51b2) + TX_FAR _ViridianForestAfterBattleTextPikaGirl db "@" -ViridianForestText11: ; 611c6 (18:51c6) - TX_FAR _ViridianForestText11 +ViridianForestBattleText5: ; 611a8 (18:51a8) + TX_FAR _ViridianForestBattleTextSamurai db "@" -ViridianForestText12: ; 611cb (18:51cb) - TX_FAR _ViridianForestText12 +ViridianForestEndBattleText5: ; 611ad (18:51ad) + TX_FAR _ViridianForestEndBattleTextSamurai db "@" -ViridianForestText13: ; 611d0 (18:51d0) - TX_FAR _ViridianForestText13 +ViridianForestAfterBattleText5: ; 611b2 (18:51b2) + TX_FAR _ViridianForestAfterBattleTextSamurai db "@" -ViridianForestText14: ; 611d5 (18:51d5) - TX_FAR _ViridianForestText14 +ViridianForestText10: ; 611b7 (18:51b7) + TX_FAR _ViridianForestText8 db "@" + +ViridianForestText11: ; 611bc (18:51bc) + TX_ASM + ld hl, Func_f2528 + jp ViridianForestScript_6120d + +ViridianForestText12: ; 611c1 (18:51c1) + TX_ASM + ld hl, Func_f2534 + jp ViridianForestScript_6120d + +ViridianForestText13: ; 611c6 (18:51c6) + TX_ASM + ld hl, Func_f2540 + jp ViridianForestScript_6120d + +ViridianForestText14: ; 611cb (18:51cb) + TX_ASM + ld hl, Func_f254c + jp ViridianForestScript_6120d + +ViridianForestText15: ; 611d0 (18:51d0) + TX_ASM + ld hl, Func_f2558 + jp ViridianForestScript_6120d + +ViridianForestText16: ; 611d5 (18:51d5) + TX_ASM + ld hl, Func_f2528 +ViridianForestScript_6120d + ld b, BANK(Func_f2528) + call Bankswitch + jp TextScriptEnd diff --git a/scripts/viridianforest2.asm b/scripts/viridianforest2.asm new file mode 100755 index 00000000..41c81218 --- /dev/null +++ b/scripts/viridianforest2.asm @@ -0,0 +1,45 @@ +Func_f2528: + ld hl, Text_f252f + call PrintText + ret + +Text_f252f: + TX_FAR _ViridianForestText9 + db "@" + +Func_f2534: + ld hl, Text_f253b + call PrintText + ret + +Text_f253b: + TX_FAR _ViridianForestText10 + db "@" + +Func_f2540: + ld hl, Text_f254a + call PrintText + ret + +Text_f254a: + TX_FAR _ViridianForestText11 + db "@" + +Func_f254c: + ld hl, Text_f2553 + call PrintText + ret + +Text_f2553: + TX_FAR _ViridianForestText12 + db "@" + +Func_f2558: + ld hl, Text_f255f + call PrintText + ret + +Text_f255f: + TX_FAR _ViridianForestText13 + db "@" + diff --git a/wram.asm b/wram.asm index 346b8389..2c9b3d4e 100755 --- a/wram.asm +++ b/wram.asm @@ -2530,10 +2530,8 @@ wd433:: ds 1 ; d432 wd434:: ds 1 wd435:: ds 1 wd436:: ds 1 -wd437:: ds 1 -wd438:: ds 1 - - ds 15 +wPikachuFollowCommandBufferSize:: ds 1 +wPikachuFollowCommandBuffer:: ds 16 wExpressionNumber:: ; d447 ds 1 -- cgit v1.2.3 From 17b1752f8bdd75d9cd1bb72bd0d609b69c2d47c4 Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Sun, 29 May 2016 00:28:33 -0400 Subject: More far text scripts --- data/map_header_banks.asm | 2 +- data/map_header_pointers.asm | 2 +- engine/bank3c.asm | 67 +++++++++++++++++++++++++++++++++++++++++++- macros.asm | 1 + 4 files changed, 69 insertions(+), 3 deletions(-) diff --git a/data/map_header_banks.asm b/data/map_header_banks.asm index 2d57ccff..fe3a1db1 100644 --- a/data/map_header_banks.asm +++ b/data/map_header_banks.asm @@ -51,7 +51,7 @@ MapHeaderBanks:: ; fc3e4 (3f:43e4) db BANK(Route2House_h) db BANK(Route2Gate_h) db BANK(ViridianForestEntrance_h) - db $18 ; db BANK(ViridianForest_h) + db BANK(ViridianForest_h) db $17 ; db BANK(Museum1F_h) db $17 ; db BANK(Museum2F_h) db $17 ; db BANK(PewterGym_h) diff --git a/data/map_header_pointers.asm b/data/map_header_pointers.asm index 1c151398..930ce54a 100644 --- a/data/map_header_pointers.asm +++ b/data/map_header_pointers.asm @@ -51,7 +51,7 @@ MapHeaderPointers:: ; fc1f2 (3f:41f2) dw Route2House_h dw Route2Gate_h dw ViridianForestEntrance_h ;id=50 - dw $50ed ; dw ViridianForest_h + dw ViridianForest_h dw $40e3 ; dw Museum1F_h dw $41b4 ; dw Museum2F_h dw $4257 ; dw PewterGym_h diff --git a/engine/bank3c.asm b/engine/bank3c.asm index 964cc0bd..26fcbf61 100644 --- a/engine/bank3c.asm +++ b/engine/bank3c.asm @@ -360,7 +360,72 @@ INCBIN "maps/beach_house.blk" INCLUDE "data/mapObjects/beach_house.asm" Func_f23d0: ; f23d0 - dr $f23d0, $f24ae + call SaveScreenTilesToBuffer2 + xor a + ld [wUpdateSpritesEnabled], a + ld hl, wd730 + set 6, [hl] + callab Func_e8c5c + ld hl, wd730 + res 6, [hl] + call GBPalWhiteOutWithDelay3 + call ReloadTilesetTilePatterns + call RestoreScreenTilesAndReloadTilePatterns + call LoadScreenTilesFromBuffer2 + call Delay3 + call GBPalNormal + ld hl, Text_f2412 + ld a, [hOaksAideResult] + and a + jr nz, .asm_f2406 + ld hl, Text_f240c +.asm_f2406 + call PrintText + jp TextScriptEnd + +Text_f240c: + TX_FAR _BeachHousePrinterText5 + TX_SFX_ITEM2 + db "@" + +Text_f2412: + TX_FAR _BeachHousePrinterText6 + TX_SFX_ITEM2 + db "@" + +Func_f2418: + ld hl, BillsHouseText_f243b + call PrintText + call YesNoChoice + ld a, [wCurrentMenuItem] + and a + jr nz, .asm_f2433 +.asm_f2427 + ld hl, BillsHouseText_f2440 + call PrintText + ld a, $2 + ld [W_BILLSHOUSECURSCRIPT], a + ret + +.asm_f2433 + ld hl, BillsHouseText_f2445 + call PrintText + jr .asm_f2427 + +BillsHouseText_f243b: + TX_FAR _BillsHouseText_1e865 + db "@" + +BillsHouseText_f2440: + TX_FAR _BillsHouseText_1e86a + db "@" + +BillsHouseText_f2445: + TX_FAR _BillsHouseText_1e86f + db "@" + +Func_f244a: + dr $f244a, $f24ae Func_f24ae: ; f24ae dr $f24ae, $f2528 diff --git a/macros.asm b/macros.asm index 829841fa..29ca12f3 100644 --- a/macros.asm +++ b/macros.asm @@ -316,6 +316,7 @@ TX_BUTTON_SOUND: MACRO ENDM TX_SFX_ITEM EQUS "db $0b" +TX_SFX_ITEM2 EQUS "db $0d" TX_SFX_CONGRATS EQUS "db $10" TX_SFX_KEY_ITEM EQUS "db $11" -- cgit v1.2.3 From 9f3c214413f103170095cb81de245868752a29a7 Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Sun, 29 May 2016 00:39:00 -0400 Subject: More Bill's House text scripts --- engine/bank3c.asm | 54 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 53 insertions(+), 1 deletion(-) diff --git a/engine/bank3c.asm b/engine/bank3c.asm index 26fcbf61..8158d56f 100644 --- a/engine/bank3c.asm +++ b/engine/bank3c.asm @@ -425,7 +425,59 @@ BillsHouseText_f2445: db "@" Func_f244a: - dr $f244a, $f24ae + CheckEvent EVENT_GOT_SS_TICKET + jr nz, .asm_f247e + ld hl, BillsHouseText_f248c + call PrintText + lb bc, S_S_TICKET, 1 + call GiveItem + jr nc, .asm_f2485 + ld hl, BillsHouseText_f2491 + call PrintText + SetEvent EVENT_GOT_SS_TICKET + ld a, HS_CERULEAN_GUARD_1 + ld [wMissableObjectIndex], a + predef ShowObject + ld a, HS_CERULEAN_GUARD_2 + ld [wMissableObjectIndex], a + predef HideObject +.asm_f247e + ld hl, BillsHouseText_f249d + call PrintText + ret + +.asm_f2485 + ld hl, BillsHouseText_f2498 + call PrintText + ret + +BillsHouseText_f248c: + TX_FAR _BillThankYouText + db "@" + +BillsHouseText_f2491: + TX_FAR _SSTicketReceivedText + TX_SFX_KEY_ITEM + TX_BUTTON_SOUND + db "@" + +BillsHouseText_f2498: + TX_FAR _SSTicketNoRoomText + db "@" + +BillsHouseText_f249d: + TX_FAR _BillsHouseText_1e8cb + db "@" + +Func_f24a2: + ld hl, BillsHouseText_f24a9 + call PrintText + ret + +BillsHouseText_f24a9: + TX_FAR _BillsHouseText_1e8da + db "@" + Func_f24ae: ; f24ae dr $f24ae, $f2528 -- cgit v1.2.3 From 2792f51d733df0d0b6ee21fec72623c2a4235e5a Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Sun, 29 May 2016 10:55:45 -0400 Subject: Another chunk of bank 3c --- constants/hide_show_constants.asm | 184 +++++++++++++++-------------- engine/bank3c.asm | 147 +++-------------------- engine/bank3f.asm | 28 ++--- engine/items/items.asm | 2 +- engine/overworld/advance_player_sprite.asm | 2 +- home.asm | 115 +----------------- home/overworld.asm | 4 +- home/pikachu.asm | 113 ++++++++++++++++++ scripts/beach_house2.asm | 33 ++++++ scripts/billshouse2.asm | 158 +++++++++++++++++++++++++ scripts/oakslab.asm | 2 +- scripts/silphco11_2.asm | 76 ++++++++++++ scripts/ssanne9_2.asm | 35 ++++++ scripts/viridianforest2.asm | 8 ++ wram.asm | 2 +- 15 files changed, 551 insertions(+), 358 deletions(-) create mode 100755 home/pikachu.asm create mode 100755 scripts/beach_house2.asm create mode 100755 scripts/billshouse2.asm create mode 100755 scripts/silphco11_2.asm create mode 100755 scripts/ssanne9_2.asm diff --git a/constants/hide_show_constants.asm b/constants/hide_show_constants.asm index 9481466e..ffc4ea08 100755 --- a/constants/hide_show_constants.asm +++ b/constants/hide_show_constants.asm @@ -150,96 +150,98 @@ const_value SET $7c ; idk anymore lol const HS_ROCKET_HIDEOUT_4_ITEM_3 ; 88 const HS_ROCKET_HIDEOUT_4_ITEM_4 ; 89 XXX never (de)activated? const HS_ROCKET_HIDEOUT_4_ITEM_5 ; 8A - const HS_SILPH_CO_2F_1 ; 8B - const HS_SILPH_CO_2F_2 ; 8C - const HS_SILPH_CO_2F_3 ; 8D - const HS_SILPH_CO_2F_4 ; 8E - const HS_SILPH_CO_2F_5 ; 8F - const HS_SILPH_CO_3F_1 ; 90 X - const HS_SILPH_CO_3F_2 ; 91 - const HS_SILPH_CO_3F_ITEM ; 92 - const HS_SILPH_CO_4F_1 ; 93 - const HS_SILPH_CO_4F_2 ; 94 X - const HS_SILPH_CO_4F_3 ; 95 X - const HS_SILPH_CO_4F_ITEM_1 ; 96 X - const HS_SILPH_CO_4F_ITEM_2 ; 97 - const HS_SILPH_CO_4F_ITEM_3 ; 98 - const HS_SILPH_CO_5F_1 ; 99 - const HS_SILPH_CO_5F_2 ; 9A - const HS_SILPH_CO_5F_3 ; 9B X - const HS_SILPH_CO_5F_4 ; 9C X - const HS_SILPH_CO_5F_ITEM_1 ; 9D X - const HS_SILPH_CO_5F_ITEM_2 ; 9E - const HS_SILPH_CO_5F_ITEM_3 ; 9F - const HS_SILPH_CO_6F_1 ; A0 - const HS_SILPH_CO_6F_2 ; A1 X - const HS_SILPH_CO_6F_3 ; A2 X - const HS_SILPH_CO_6F_ITEM_1 ; A3 - const HS_SILPH_CO_6F_ITEM_2 ; A4 - const HS_SILPH_CO_7F_1 ; A5 - const HS_SILPH_CO_7F_2 ; A6 - const HS_SILPH_CO_7F_3 ; A7 - const HS_SILPH_CO_7F_4 ; A8 X - const HS_SILPH_CO_7F_RIVAL ; A9 X - const HS_SILPH_CO_7F_ITEM_1 ; AA XXX sprite doesn't exist - const HS_SILPH_CO_7F_ITEM_2 ; AB - const HS_SILPH_CO_7F_8 ; AC - const HS_SILPH_CO_8F_1 ; AD - const HS_SILPH_CO_8F_2 ; AE - const HS_SILPH_CO_8F_3 ; AF - const HS_SILPH_CO_9F_1 ; B0 - const HS_SILPH_CO_9F_2 ; B1 - const HS_SILPH_CO_9F_3 ; B2 - const HS_SILPH_CO_10F_1 ; B3 XXX never (de)activated? - const HS_SILPH_CO_10F_2 ; B4 X - const HS_SILPH_CO_10F_3 ; B5 X - const HS_SILPH_CO_10F_ITEM_1 ; B6 X - const HS_SILPH_CO_10F_ITEM_2 ; B7 - const HS_SILPH_CO_10F_ITEM_3 ; B8 - const HS_SILPH_CO_11F_1 ; B9 - const HS_SILPH_CO_11F_2 ; BA XXX sprite doesn't exist - const HS_SILPH_CO_11F_3 ; BB X - const HS_MAP_F4_1 ; BC X - const HS_MANSION_2_ITEM ; BD X - const HS_MANSION_3_ITEM_1 ; BE X - const HS_MANSION_3_ITEM_2 ; BF X - const HS_MANSION_4_ITEM_1 ; C0 X - const HS_MANSION_4_ITEM_2 ; C1 X - const HS_MANSION_4_ITEM_3 ; C2 X - const HS_MANSION_4_ITEM_4 ; C3 X - const HS_MANSION_4_ITEM_5 ; C4 X - const HS_SAFARI_ZONE_EAST_ITEM_1 ; C5 X - const HS_SAFARI_ZONE_EAST_ITEM_2 ; C6 X - const HS_SAFARI_ZONE_EAST_ITEM_3 ; C7 X - const HS_SAFARI_ZONE_EAST_ITEM_4 ; C8 X - const HS_SAFARI_ZONE_NORTH_ITEM_1 ; C9 X - const HS_SAFARI_ZONE_NORTH_ITEM_2 ; CA X - const HS_SAFARI_ZONE_WEST_ITEM_1 ; CB X - const HS_SAFARI_ZONE_WEST_ITEM_2 ; CC X - const HS_SAFARI_ZONE_WEST_ITEM_3 ; CD X - const HS_SAFARI_ZONE_WEST_ITEM_4 ; CE X - const HS_SAFARI_ZONE_CENTER_ITEM ; CF X - const HS_UNKNOWN_DUNGEON_2_ITEM_1 ; D0 X - const HS_UNKNOWN_DUNGEON_2_ITEM_2 ; D1 X - const HS_UNKNOWN_DUNGEON_2_ITEM_3 ; D2 X - const HS_MEWTWO ; D3 X - const HS_UNKNOWN_DUNGEON_3_ITEM_1 ; D4 X - const HS_UNKNOWN_DUNGEON_3_ITEM_2 ; D5 X - const HS_VICTORY_ROAD_1_ITEM_1 ; D6 - const HS_VICTORY_ROAD_1_ITEM_2 ; D7 - const HS_CHAMPIONS_ROOM_OAK ; D8 + +const_value SET $8d + const HS_SILPH_CO_2F_1 ; 8D + const HS_SILPH_CO_2F_2 ; 8E + const HS_SILPH_CO_2F_3 ; 8F + const HS_SILPH_CO_2F_4 ; 90 X + const HS_SILPH_CO_2F_5 ; 91 + const HS_SILPH_CO_3F_1 ; 92 + const HS_SILPH_CO_3F_2 ; 93 + const HS_SILPH_CO_3F_ITEM ; 94 X + const HS_SILPH_CO_4F_1 ; 95 X + const HS_SILPH_CO_4F_2 ; 96 X + const HS_SILPH_CO_4F_3 ; 97 + const HS_SILPH_CO_4F_ITEM_1 ; 98 + const HS_SILPH_CO_4F_ITEM_2 ; 99 + const HS_SILPH_CO_4F_ITEM_3 ; 9A + const HS_SILPH_CO_5F_1 ; 9B X + const HS_SILPH_CO_5F_2 ; 9C X + const HS_SILPH_CO_5F_3 ; 9D X + const HS_SILPH_CO_5F_4 ; 9E + const HS_SILPH_CO_5F_ITEM_1 ; 9F + const HS_SILPH_CO_5F_ITEM_2 ; A0 + const HS_SILPH_CO_5F_ITEM_3 ; A1 X + const HS_SILPH_CO_6F_1 ; A2 X + const HS_SILPH_CO_6F_2 ; A3 + const HS_SILPH_CO_6F_3 ; A4 + const HS_SILPH_CO_6F_ITEM_1 ; A5 + const HS_SILPH_CO_6F_ITEM_2 ; A6 + const HS_SILPH_CO_7F_1 ; A7 + const HS_SILPH_CO_7F_2 ; A8 X + const HS_SILPH_CO_7F_3 ; A9 X + const HS_SILPH_CO_7F_4 ; AA XXX sprite doesn't exist + const HS_SILPH_CO_7F_RIVAL ; AB + const HS_SILPH_CO_7F_ITEM_1 ; AC + const HS_SILPH_CO_7F_ITEM_2 ; AD + const HS_SILPH_CO_7F_8 ; AE + const HS_SILPH_CO_8F_1 ; AF + const HS_SILPH_CO_8F_2 ; B0 + const HS_SILPH_CO_8F_3 ; B1 + const HS_SILPH_CO_9F_1 ; B2 + const HS_SILPH_CO_9F_2 ; B3 XXX never (de)activated? + const HS_SILPH_CO_9F_3 ; B4 X + const HS_SILPH_CO_10F_1 ; B5 X + const HS_SILPH_CO_10F_2 ; B6 X + const HS_SILPH_CO_10F_3 ; B7 + const HS_SILPH_CO_10F_ITEM_1 ; B8 + const HS_SILPH_CO_10F_ITEM_2 ; B9 + const HS_SILPH_CO_10F_ITEM_3 ; BA XXX sprite doesn't exist + const HS_SILPH_CO_11F_1 ; BB X + const HS_SILPH_CO_11F_2 ; BC X + const HS_SILPH_CO_11F_3 ; BD X + const HS_MAP_F4_1 ; BE X + const HS_MANSION_2_ITEM ; BF X + const HS_MANSION_3_ITEM_1 ; C0 X + const HS_MANSION_3_ITEM_2 ; C1 X + const HS_MANSION_4_ITEM_1 ; C2 X + const HS_MANSION_4_ITEM_2 ; C3 X + const HS_MANSION_4_ITEM_3 ; C4 X + const HS_MANSION_4_ITEM_4 ; C5 X + const HS_MANSION_4_ITEM_5 ; C6 X + const HS_SAFARI_ZONE_EAST_ITEM_1 ; C7 X + const HS_SAFARI_ZONE_EAST_ITEM_2 ; C8 X + const HS_SAFARI_ZONE_EAST_ITEM_3 ; C9 X + const HS_SAFARI_ZONE_EAST_ITEM_4 ; CA X + const HS_SAFARI_ZONE_NORTH_ITEM_1 ; CB X + const HS_SAFARI_ZONE_NORTH_ITEM_2 ; CC X + const HS_SAFARI_ZONE_WEST_ITEM_1 ; CD X + const HS_SAFARI_ZONE_WEST_ITEM_2 ; CE X + const HS_SAFARI_ZONE_WEST_ITEM_3 ; CF X + const HS_SAFARI_ZONE_WEST_ITEM_4 ; D0 X + const HS_SAFARI_ZONE_CENTER_ITEM ; D1 X + const HS_UNKNOWN_DUNGEON_2_ITEM_1 ; D2 X + const HS_UNKNOWN_DUNGEON_2_ITEM_2 ; D3 X + const HS_UNKNOWN_DUNGEON_2_ITEM_3 ; D4 X + const HS_MEWTWO ; D5 X + const HS_UNKNOWN_DUNGEON_3_ITEM_1 ; D6 + const HS_UNKNOWN_DUNGEON_3_ITEM_2 ; D7 + const HS_VICTORY_ROAD_1_ITEM_1 ; D8 + const HS_VICTORY_ROAD_1_ITEM_2 ; D9 + const HS_CHAMPIONS_ROOM_OAK ; DA const_value SET $df - const HS_SEAFOAM_ISLANDS_1_BOULDER_1 ; D9 - const HS_SEAFOAM_ISLANDS_1_BOULDER_2 ; DA - const HS_SEAFOAM_ISLANDS_2_BOULDER_1 ; DB - const HS_SEAFOAM_ISLANDS_2_BOULDER_2 ; DC - const HS_SEAFOAM_ISLANDS_3_BOULDER_1 ; DD - const HS_SEAFOAM_ISLANDS_3_BOULDER_2 ; DE - const HS_SEAFOAM_ISLANDS_4_BOULDER_1 ; DF - const HS_SEAFOAM_ISLANDS_4_BOULDER_2 ; E0 - const HS_SEAFOAM_ISLANDS_4_BOULDER_3 ; E1 - const HS_SEAFOAM_ISLANDS_4_BOULDER_4 ; E2 - const HS_SEAFOAM_ISLANDS_5_BOULDER_1 ; E3 X - const HS_SEAFOAM_ISLANDS_5_BOULDER_2 ; E4 - const HS_ARTICUNO ; E5 + const HS_SEAFOAM_ISLANDS_1_BOULDER_1 ; DF + const HS_SEAFOAM_ISLANDS_1_BOULDER_2 ; E0 + const HS_SEAFOAM_ISLANDS_2_BOULDER_1 ; E1 + const HS_SEAFOAM_ISLANDS_2_BOULDER_2 ; E2 + const HS_SEAFOAM_ISLANDS_3_BOULDER_1 ; E3 + const HS_SEAFOAM_ISLANDS_3_BOULDER_2 ; E4 + const HS_SEAFOAM_ISLANDS_4_BOULDER_1 ; E5 + const HS_SEAFOAM_ISLANDS_4_BOULDER_2 ; E6 + const HS_SEAFOAM_ISLANDS_4_BOULDER_3 ; E7 + const HS_SEAFOAM_ISLANDS_4_BOULDER_4 ; E8 + const HS_SEAFOAM_ISLANDS_5_BOULDER_1 ; E9 + const HS_SEAFOAM_ISLANDS_5_BOULDER_2 ; EA + const HS_ARTICUNO ; EB diff --git a/engine/bank3c.asm b/engine/bank3c.asm index 8158d56f..01c3486b 100644 --- a/engine/bank3c.asm +++ b/engine/bank3c.asm @@ -95,12 +95,12 @@ PikachuCriesPointerTable: ; f008e (3c:408e) pikacry_def PikachuCry2 ; 21:491a pikacry_def PikachuCry3 ; 21:4fdc pikacry_def PikachuCry4 ; 21:59ee - + ; bank 22 pikacry_def PikachuCry5 ; 22:4000 pikacry_def PikachuCry6 ; 22:5042 pikacry_def PikachuCry7 ; 22:6254 - + ; bank 23 pikacry_def PikachuCry8 ; 23:4000 pikacry_def PikachuCry9 ; 23:50ca @@ -110,11 +110,11 @@ PikachuCriesPointerTable: ; f008e (3c:408e) pikacry_def PikachuCry11 ; 24:4000 pikacry_def PikachuCry12 ; 24:4722 pikacry_def PikachuCry13 ; 24:54a4 - + ; bank 25 pikacry_def PikachuCry14 ; 25:4000 pikacry_def PikachuCry15 ; 25:589a - + ; banks 31-34, in no particular order pikacry_def PikachuCry16 ; 31:4000 @@ -128,19 +128,19 @@ PikachuCriesPointerTable: ; f008e (3c:408e) pikacry_def PikachuCry24 ; 33:5632 pikacry_def PikachuCry25 ; 34:573c pikacry_def PikachuCry26 ; 33:725c - + ; bank 35 pikacry_def PikachuCry27 ; 35:4000 pikacry_def PikachuCry28 ; 35:4b5a pikacry_def PikachuCry29 ; 35:5da4 pikacry_def PikachuCry30 ; 35:69ce pikacry_def PikachuCry31 ; 35:6e80 - + ; bank 36 pikacry_def PikachuCry32 ; 36:4000 pikacry_def PikachuCry33 ; 36:458a pikacry_def PikachuCry34 ; 36:523c - + ; bank 37 pikacry_def PikachuCry35 ; 37:4000 pikacry_def PikachuCry36 ; 37:522a @@ -203,7 +203,7 @@ ResetStatusAndHalveMoneyOnBlackout:: ; f0274 (3c:4274) ld a, %11111111 ld [wJoyIgnore], a predef_jump HealParty - + Func_f02da:: ; f02da (3c:42da) ld a, [wCurMap] cp VERMILION_GYM ; ??? new thing about verm gym? @@ -262,7 +262,7 @@ BeachHouse_Block:: ; f0914 (3c:4914) Func_f0a54:: ; f0a54 (3c:4a54) ret - + Func_f0a55:: ; f0a55 (3c:4a55) ld hl, Pointer_f0a76 ; 3c:4a76 .loop @@ -359,130 +359,11 @@ BeachHouseBlockdata: ; f2388 (3c:6388) INCBIN "maps/beach_house.blk" INCLUDE "data/mapObjects/beach_house.asm" -Func_f23d0: ; f23d0 - call SaveScreenTilesToBuffer2 - xor a - ld [wUpdateSpritesEnabled], a - ld hl, wd730 - set 6, [hl] - callab Func_e8c5c - ld hl, wd730 - res 6, [hl] - call GBPalWhiteOutWithDelay3 - call ReloadTilesetTilePatterns - call RestoreScreenTilesAndReloadTilePatterns - call LoadScreenTilesFromBuffer2 - call Delay3 - call GBPalNormal - ld hl, Text_f2412 - ld a, [hOaksAideResult] - and a - jr nz, .asm_f2406 - ld hl, Text_f240c -.asm_f2406 - call PrintText - jp TextScriptEnd - -Text_f240c: - TX_FAR _BeachHousePrinterText5 - TX_SFX_ITEM2 - db "@" - -Text_f2412: - TX_FAR _BeachHousePrinterText6 - TX_SFX_ITEM2 - db "@" - -Func_f2418: - ld hl, BillsHouseText_f243b - call PrintText - call YesNoChoice - ld a, [wCurrentMenuItem] - and a - jr nz, .asm_f2433 -.asm_f2427 - ld hl, BillsHouseText_f2440 - call PrintText - ld a, $2 - ld [W_BILLSHOUSECURSCRIPT], a - ret - -.asm_f2433 - ld hl, BillsHouseText_f2445 - call PrintText - jr .asm_f2427 - -BillsHouseText_f243b: - TX_FAR _BillsHouseText_1e865 - db "@" - -BillsHouseText_f2440: - TX_FAR _BillsHouseText_1e86a - db "@" - -BillsHouseText_f2445: - TX_FAR _BillsHouseText_1e86f - db "@" - -Func_f244a: - CheckEvent EVENT_GOT_SS_TICKET - jr nz, .asm_f247e - ld hl, BillsHouseText_f248c - call PrintText - lb bc, S_S_TICKET, 1 - call GiveItem - jr nc, .asm_f2485 - ld hl, BillsHouseText_f2491 - call PrintText - SetEvent EVENT_GOT_SS_TICKET - ld a, HS_CERULEAN_GUARD_1 - ld [wMissableObjectIndex], a - predef ShowObject - ld a, HS_CERULEAN_GUARD_2 - ld [wMissableObjectIndex], a - predef HideObject -.asm_f247e - ld hl, BillsHouseText_f249d - call PrintText - ret - -.asm_f2485 - ld hl, BillsHouseText_f2498 - call PrintText - ret - -BillsHouseText_f248c: - TX_FAR _BillThankYouText - db "@" - -BillsHouseText_f2491: - TX_FAR _SSTicketReceivedText - TX_SFX_KEY_ITEM - TX_BUTTON_SOUND - db "@" - -BillsHouseText_f2498: - TX_FAR _SSTicketNoRoomText - db "@" - -BillsHouseText_f249d: - TX_FAR _BillsHouseText_1e8cb - db "@" - -Func_f24a2: - ld hl, BillsHouseText_f24a9 - call PrintText - ret - -BillsHouseText_f24a9: - TX_FAR _BillsHouseText_1e8da - db "@" - -Func_f24ae: ; f24ae - dr $f24ae, $f2528 - +INCLUDE "scripts/beach_house2.asm" +INCLUDE "scripts/billshouse2.asm" INCLUDE "scripts/viridianforest2.asm" - dr $f2564, $f25f8 +INCLUDE "scripts/ssanne9_2.asm" +INCLUDE "scripts/silphco11_2.asm" INCLUDE "engine/overworld/hidden_objects.asm" @@ -553,7 +434,7 @@ Func_f2d0c: ld a, [hl] ld [wSecondLockTrashCanIndex + 1], a ret - + GymTrashCans3a: ; f2d31 (3c:6d31) ; First byte: number of trashcan entries ; Following four byte pairs: indices for the second trash can. diff --git a/engine/bank3f.asm b/engine/bank3f.asm index 5cab9357..c8041a3a 100644 --- a/engine/bank3f.asm +++ b/engine/bank3f.asm @@ -4,26 +4,26 @@ INCLUDE "data/map_header_banks.asm" Func_fc4dd:: ; fc4dd (3f:44dd) ; possibly to test if pika should be out? - ld a, [wd430] + ld a, [wPikachuOverworldStateFlags] bit 5, a - jr nz, .asm_fc4f8 ; 3f:44f8 - ld a, [wd430] + jr nz, .hide ; 3f:44f8 + ld a, [wPikachuOverworldStateFlags] bit 7, a - jr nz, .asm_fc4f8 + jr nz, .hide call IsStarterPikachuInOurParty - jr nc, .asm_fc4f8 + jr nc, .hide ld a, [wWalkBikeSurfState] and a - jr nz, .asm_fc4f8 + jr nz, .hide scf ret -.asm_fc4f8 +.hide and a ret Func_fc4fa:: ; fc4fa (3f:44fa) - ld hl, wd430 + ld hl, wPikachuOverworldStateFlags bit 4, [hl] res 4, [hl] jr nz, .asm_fc515 @@ -316,14 +316,14 @@ Func_fc69a:: ; fc69a (3f:469a) Func_fc6c5:: ; fc6c5 (3f:46c5) push hl - ld hl, wd430 + ld hl, wPikachuOverworldStateFlags set 2, [hl] pop hl ret Func_fc6cd:: ; fc6cd (3f:46cd) push hl - ld hl, wd430 + ld hl, wPikachuOverworldStateFlags res 2, [hl] pop hl ret @@ -944,7 +944,7 @@ Func_fca7e: ; fca7e (3f:4a7e) ret Func_fca99: ; fca99 (3f:4a99) - ld a, [wd430] + ld a, [wPikachuOverworldStateFlags] bit 3, a jr nz, .asm_fcad1 ld hl, $10e @@ -1238,10 +1238,10 @@ Func_fcc08:: ; fcc08 (3f:4c08) ret Func_fcc23: ; fcc23 (3f:4c28) - ld a, [wd430] + ld a, [wPikachuOverworldStateFlags] bit 5, a jr nz, .asm_fcc40 - ld a, [wd430] + ld a, [wPikachuOverworldStateFlags] bit 7, a jr nz, .asm_fcc40 ld a, [wd472] @@ -1288,7 +1288,7 @@ Func_fcc42: ; fcc42 (3f:4c42) ret Func_fcc64: ; fcc64 (3f:4c64) - ld hl, wd430 + ld hl, wPikachuOverworldStateFlags bit 6, [hl] jr z, .asm_fcc6e res 6, [hl] diff --git a/engine/items/items.asm b/engine/items/items.asm index aa607911..5d76c37e 100755 --- a/engine/items/items.asm +++ b/engine/items/items.asm @@ -607,7 +607,7 @@ ItemUseSurfboard: ; d725 (3:5725) call .makePlayerMoveForward ld a,$3 ld [wd431], a - ld hl,wd430 + ld hl,wPikachuOverworldStateFlags set 5,[hl] ld hl,wd730 set 7,[hl] diff --git a/engine/overworld/advance_player_sprite.asm b/engine/overworld/advance_player_sprite.asm index e02fb129..758dd558 100644 --- a/engine/overworld/advance_player_sprite.asm +++ b/engine/overworld/advance_player_sprite.asm @@ -7,7 +7,7 @@ _AdvancePlayerSprite:: ; f010c (3c:410c) dec [hl] jr nz,.afterUpdateMapCoords ; if it's the end of the animation, update the player's map coordinates - ld hl, wd430 + ld hl, wPikachuOverworldStateFlags res 5, [hl] ld a,[wYCoord] add b diff --git a/home.asm b/home.asm index fd2e1b26..5f924a40 100644 --- a/home.asm +++ b/home.asm @@ -970,120 +970,7 @@ InterlaceMergeSpriteBuffers:: ; 14c7 (0:14c7) call CopyVideoData jp PrepareRTCDataAndDisableSRAM -Func_1510:: ; 1510 (0:1510) - push hl - ld hl, wd430 - set 7, [hl] - ld hl, wSpriteStateData1 + $f2 ; pikachu data? - ld [hl], $ff - pop hl - ret - -Func_151d:: ; 151d (0:151d) - push hl - ld hl, wd430 - res 7, [hl] - pop hl - ret - -Func_1525:: ; 1525 (0:1525) - push hl - ld hl, wd430 - res 3, [hl] - pop hl - ret - -Func_152d:: ; 152d (0:152d) - push hl - ld hl, wd430 - set 3, [hl] - ld hl, wSpriteStateData1 + $f2 ; pikachu data? - ld [hl], $ff - pop hl - ret - -Func_153a:: ; 153a (0:153a) - push hl - ld hl, wd430 - set 1, [hl] - pop hl - ret - -Func_1542:: ; 1542 (0:1542) - push hl - ld hl, wd430 - res 1, [hl] - pop hl - ret - -Func_154a:: ; 154a (0:154a) - push hl - ld hl, wd430 - bit 1, [hl] - pop hl - ret - -Func_1552:: ; 1552 (0:1552) - ld a, [hl] - dec a - swap a - ld [$ff93], a - homecall Func_fc6d5 ; 3f:46d5 - ret - -Func_1568:: ; 1568 (0:1568) - ld b, $0 - ld c, a -.asm_156b - inc b - ld a, [hli] - cp $ff - jr z, .asm_1578 - cp c - jr nz, .asm_156b - dec b - dec hl - scf - ret -.asm_1578 - dec b - dec hl - and a - ret - -Func_157c:: ; 157c (0:157c) - push hl - push bc - ld a, [H_LOADEDROMBANK] - push af - ld a, [wd44a] - call BankswitchCommon - ld hl, wd44b - ld c, [hl] - inc hl - ld b, [hl] - ld a, [bc] - inc bc - ld [hl], b - dec hl - ld [hl], c - ld c, a - pop af - call BankswitchCommon - ld a, c - pop bc - pop hl - ret - -Func_159b:: ; 159b (0:159b) - ld a, [H_LOADEDROMBANK] - ld b, a - push af - callbs Func_fd2a1 - pop af - call BankswitchCommon - ret - +INCLUDE "home/pikachu.asm" ;INCLUDE "data/collision.asm" INCLUDE "home/lcdc.asm" diff --git a/home/overworld.asm b/home/overworld.asm index 1f84597d..3a9708d9 100644 --- a/home/overworld.asm +++ b/home/overworld.asm @@ -638,7 +638,7 @@ CheckMapConnections:: ; 05db (0:05db) ld [wCurrentTileBlockMapViewPointer + 1],a .loadNewMap ; 06ce (0:06ce) ; load the connected map that was entered - ld hl,wd430 + ld hl,wPikachuOverworldStateFlags set 4,[hl] ld a,$2 ld [wd431],a @@ -1716,7 +1716,7 @@ CollisionCheckOnWater:: ; 0cca (0:0cca) .stopSurfing ; based game freak ld a,$3 ld [wd431],a - ld hl,wd430 + ld hl,wPikachuOverworldStateFlags set 5,[hl] xor a ld [wWalkBikeSurfState],a diff --git a/home/pikachu.asm b/home/pikachu.asm new file mode 100755 index 00000000..5239873c --- /dev/null +++ b/home/pikachu.asm @@ -0,0 +1,113 @@ +Func_1510:: ; 1510 (0:1510) + push hl + ld hl, wPikachuOverworldStateFlags + set 7, [hl] + ld hl, wSpriteStateData1 + $f2 ; pikachu data? + ld [hl], $ff + pop hl + ret + +Func_151d:: ; 151d (0:151d) + push hl + ld hl, wPikachuOverworldStateFlags + res 7, [hl] + pop hl + ret + +Func_1525:: ; 1525 (0:1525) + push hl + ld hl, wPikachuOverworldStateFlags + res 3, [hl] + pop hl + ret + +Func_152d:: ; 152d (0:152d) + push hl + ld hl, wPikachuOverworldStateFlags + set 3, [hl] + ld hl, wSpriteStateData1 + $f2 ; pikachu data? + ld [hl], $ff + pop hl + ret + +Func_153a:: ; 153a (0:153a) + push hl + ld hl, wPikachuOverworldStateFlags + set 1, [hl] + pop hl + ret + +Func_1542:: ; 1542 (0:1542) + push hl + ld hl, wPikachuOverworldStateFlags + res 1, [hl] + pop hl + ret + +Func_154a:: ; 154a (0:154a) + push hl + ld hl, wPikachuOverworldStateFlags + bit 1, [hl] + pop hl + ret + +Func_1552:: ; 1552 (0:1552) + ld a, [hl] + dec a + swap a + ld [hTilePlayerStandingOn], a + homecall Func_fc6d5 ; 3f:46d5 + ret + +Func_1568:: ; 1568 (0:1568) + ld b, $0 + ld c, a +.asm_156b + inc b + ld a, [hli] + cp $ff + jr z, .asm_1578 + cp c + jr nz, .asm_156b + dec b + dec hl + scf + ret +.asm_1578 + dec b + dec hl + and a + ret + +Func_157c:: ; 157c (0:157c) + push hl + push bc + ld a, [H_LOADEDROMBANK] + push af + ld a, [wd44a] + call BankswitchCommon + ld hl, wd44b + ld c, [hl] + inc hl + ld b, [hl] + ld a, [bc] + inc bc + ld [hl], b + dec hl + ld [hl], c + ld c, a + pop af + call BankswitchCommon + ld a, c + pop bc + pop hl + ret + +Func_159b:: ; 159b (0:159b) + ld a, [H_LOADEDROMBANK] + ld b, a + push af + callbs Func_fd2a1 + pop af + call BankswitchCommon + ret diff --git a/scripts/beach_house2.asm b/scripts/beach_house2.asm new file mode 100755 index 00000000..918334ab --- /dev/null +++ b/scripts/beach_house2.asm @@ -0,0 +1,33 @@ +Func_f23d0: ; f23d0 + call SaveScreenTilesToBuffer2 + xor a + ld [wUpdateSpritesEnabled], a + ld hl, wd730 + set 6, [hl] + callab Func_e8c5c + ld hl, wd730 + res 6, [hl] + call GBPalWhiteOutWithDelay3 + call ReloadTilesetTilePatterns + call RestoreScreenTilesAndReloadTilePatterns + call LoadScreenTilesFromBuffer2 + call Delay3 + call GBPalNormal + ld hl, Text_f2412 + ld a, [hOaksAideResult] + and a + jr nz, .asm_f2406 + ld hl, Text_f240c +.asm_f2406 + call PrintText + jp TextScriptEnd + +Text_f240c: + TX_FAR _BeachHousePrinterText5 + TX_SFX_ITEM2 + db "@" + +Text_f2412: + TX_FAR _BeachHousePrinterText6 + TX_SFX_ITEM2 + db "@" diff --git a/scripts/billshouse2.asm b/scripts/billshouse2.asm new file mode 100755 index 00000000..48205029 --- /dev/null +++ b/scripts/billshouse2.asm @@ -0,0 +1,158 @@ +Func_f2418: + ld hl, BillsHouseText_f243b + call PrintText + call YesNoChoice + ld a, [wCurrentMenuItem] + and a + jr nz, .asm_f2433 +.asm_f2427 + ld hl, BillsHouseText_f2440 + call PrintText + ld a, $2 + ld [W_BILLSHOUSECURSCRIPT], a + ret + +.asm_f2433 + ld hl, BillsHouseText_f2445 + call PrintText + jr .asm_f2427 + +BillsHouseText_f243b: + TX_FAR _BillsHouseText_1e865 + db "@" + +BillsHouseText_f2440: + TX_FAR _BillsHouseText_1e86a + db "@" + +BillsHouseText_f2445: + TX_FAR _BillsHouseText_1e86f + db "@" + +Func_f244a: + CheckEvent EVENT_GOT_SS_TICKET + jr nz, .asm_f247e + ld hl, BillsHouseText_f248c + call PrintText + lb bc, S_S_TICKET, 1 + call GiveItem + jr nc, .asm_f2485 + ld hl, BillsHouseText_f2491 + call PrintText + SetEvent EVENT_GOT_SS_TICKET + ld a, HS_CERULEAN_GUARD_1 + ld [wMissableObjectIndex], a + predef ShowObject + ld a, HS_CERULEAN_GUARD_2 + ld [wMissableObjectIndex], a + predef HideObject +.asm_f247e + ld hl, BillsHouseText_f249d + call PrintText + ret + +.asm_f2485 + ld hl, BillsHouseText_f2498 + call PrintText + ret + +BillsHouseText_f248c: + TX_FAR _BillThankYouText + db "@" + +BillsHouseText_f2491: + TX_FAR _SSTicketReceivedText + TX_SFX_KEY_ITEM + TX_BUTTON_SOUND + db "@" + +BillsHouseText_f2498: + TX_FAR _SSTicketNoRoomText + db "@" + +BillsHouseText_f249d: + TX_FAR _BillsHouseText_1e8cb + db "@" + +Func_f24a2: + ld hl, BillsHouseText_f24a9 + call PrintText + ret + +BillsHouseText_f24a9: + TX_FAR _BillsHouseText_1e8da + db "@" + +Func_f24ae: ; f24ae + ld a, [wCurMap] + cp BILLS_HOUSE + jr nz, .asm_f24d2 + call Func_154a + jr z, .asm_f24d2 + ld a, [W_BILLSHOUSECURSCRIPT] + cp $5 + ld e, $1b + ret z + cp $0 + ld e, $17 + ret z + CheckEventHL EVENT_MET_BILL_2 + ld e, $20 + ret z + ld e, $1f + ret + +.asm_f24d2 + ld e, $ff + ret + +Func_f24d5: + ld a, $ff + ld [wJoyIgnore], a + xor a + ld [wPlayerMovingDirection], a + call UpdateSprites + call UpdateSprites + ld hl, Data_f2505 + call Func_159b + ld a, $f ; pikachu + ld [wEmotionBubbleSpriteIndex], a + ld a, $1 + ld [wWhichEmotionBubble], a + predef EmotionBubble + call Func_153a + callab InitializePikachuTextID + ret + +Data_f2505: + db $00 + db $20 + db $20 + db $20 + db $1e + db $3f + +Func_f250b: + ld hl, Data_f251c + ld b, SPRITE_FACING_UP + call Func_f0a82 + ld hl, Data_f2521 + ld b, SPRITE_FACING_RIGHT + call Func_f0a82 + ret + +Data_f251c: + db $00 + db $1f + db $1d + db $38 + db $3f + +Data_f2521: + db $00 + db $1e + db $1f + db $1f + db $1d + db $38 + db $3f diff --git a/scripts/oakslab.asm b/scripts/oakslab.asm index 63cec822..43464d77 100755 --- a/scripts/oakslab.asm +++ b/scripts/oakslab.asm @@ -798,7 +798,7 @@ OaksLabText_1c9a7: OaksLabScript_1c9ac: ld a, $1 - ld [wSavedPlayerScreenY], a + ld [wEmotionBubbleSpriteIndex], a xor a ld [wWhichEmotionBubble], a predef EmotionBubble diff --git a/scripts/silphco11_2.asm b/scripts/silphco11_2.asm new file mode 100755 index 00000000..e7b59757 --- /dev/null +++ b/scripts/silphco11_2.asm @@ -0,0 +1,76 @@ +Func_f25a0: + ld hl, MissableObjects_f25ce +.asm_f25a3 + ld a, [hli] + cp $ff + jr z, .asm_f25b4 + push hl + ld [wMissableObjectIndex], a + predef HideObject + pop hl + jr .asm_f25a3 + +.asm_f25b4 + ld hl, MissableObjects_f25c7 +.asm_f25b7 + ld a, [hli] + cp $ff + ret z + push hl + ld [wMissableObjectIndex], a + predef ShowObject + pop hl + jr .asm_f25b7 + +MissableObjects_f25c7: + db HS_SAFFRON_CITY_8 + db HS_SAFFRON_CITY_9 + db HS_SAFFRON_CITY_A + db HS_SAFFRON_CITY_B + db HS_SAFFRON_CITY_C + db HS_SAFFRON_CITY_D + db $FF + +MissableObjects_f25ce + db HS_SAFFRON_CITY_1 + db HS_SAFFRON_CITY_2 + db HS_SAFFRON_CITY_3 + db HS_SAFFRON_CITY_4 + db HS_SAFFRON_CITY_5 + db HS_SAFFRON_CITY_6 + db HS_SAFFRON_CITY_7 + db HS_SAFFRON_CITY_E + db HS_SAFFRON_CITY_F + db HS_SILPH_CO_2F_2 + db HS_SILPH_CO_2F_3 + db HS_SILPH_CO_2F_4 + db HS_SILPH_CO_2F_5 + db HS_SILPH_CO_3F_1 + db HS_SILPH_CO_3F_2 + db HS_SILPH_CO_4F_1 + db HS_SILPH_CO_4F_2 + db HS_SILPH_CO_4F_3 + db HS_SILPH_CO_5F_1 + db HS_SILPH_CO_5F_2 + db HS_SILPH_CO_5F_3 + db HS_SILPH_CO_5F_4 + db HS_SILPH_CO_6F_1 + db HS_SILPH_CO_6F_2 + db HS_SILPH_CO_6F_3 + db HS_SILPH_CO_7F_1 + db HS_SILPH_CO_7F_2 + db HS_SILPH_CO_7F_3 + db HS_SILPH_CO_7F_4 + db HS_SILPH_CO_8F_1 + db HS_SILPH_CO_8F_2 + db HS_SILPH_CO_8F_3 + db HS_SILPH_CO_9F_1 + db HS_SILPH_CO_9F_2 + db HS_SILPH_CO_9F_3 + db HS_SILPH_CO_10F_1 + db HS_SILPH_CO_10F_2 + db HS_SILPH_CO_11F_1 + db HS_SILPH_CO_11F_2 + db HS_SILPH_CO_11F_3 + db HS_MAP_F4_1 + db $ff \ No newline at end of file diff --git a/scripts/ssanne9_2.asm b/scripts/ssanne9_2.asm new file mode 100755 index 00000000..f856221c --- /dev/null +++ b/scripts/ssanne9_2.asm @@ -0,0 +1,35 @@ +Func_f2570: + ld hl, SSAnne9Text_f2577 + call PrintText + ret + +SSAnne9Text_f2577: + TX_FAR _SSAnne9Text_61c1f + db "@" + +Func_f257c: + ld hl, SSAnne9Text_f2583 + call PrintText + ret + +SSAnne9Text_f2583: + TX_FAR _SSAnne9Text_61c2e + db "@" + +Func_f2588: + ld hl, SSAnne9Text_f258f + call PrintText + ret + +SSAnne9Text_f258f: + TX_FAR _SSAnne9Text_61c3d + db "@" + +Func_f2594: + ld hl, SSAnne9Text_f259b + call PrintText + ret + +SSAnne9Text_f259b: + TX_FAR _SSAnne9Text_61c4c + db "@" diff --git a/scripts/viridianforest2.asm b/scripts/viridianforest2.asm index 41c81218..489db39c 100755 --- a/scripts/viridianforest2.asm +++ b/scripts/viridianforest2.asm @@ -43,3 +43,11 @@ Text_f255f: TX_FAR _ViridianForestText13 db "@" +Func_f2564: + ld hl, ViridianForestText_f256b + call PrintText + ret + +ViridianForestText_f256b: + TX_FAR _ViridianForestText14 + db "@" diff --git a/wram.asm b/wram.asm index 2c9b3d4e..64a394ed 100755 --- a/wram.asm +++ b/wram.asm @@ -2523,7 +2523,7 @@ wDestinationWarpID:: ; d42f ; if $ff, the player's coordinates are not updated when entering the map ds 1 -wd430:: ds 1 ; d42f +wPikachuOverworldStateFlags:: ds 1 ; d42f wd431:: ds 1 ; d430 wd432:: ds 1 ; d431 wd433:: ds 1 ; d432 -- cgit v1.2.3 From 287fc9855f4a569eaa5ea3914d7f8ed951e18318 Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Sun, 29 May 2016 14:08:51 -0400 Subject: Museum 1F far text scripts --- engine/bank3c.asm | 3 +- scripts/museum1f2.asm | 211 ++++++++++++++++++++++++++++++++++++++++++++++++ text/maps/museum_1f.asm | 2 +- 3 files changed, 214 insertions(+), 2 deletions(-) create mode 100755 scripts/museum1f2.asm diff --git a/engine/bank3c.asm b/engine/bank3c.asm index 01c3486b..097dfd3e 100644 --- a/engine/bank3c.asm +++ b/engine/bank3c.asm @@ -351,7 +351,8 @@ INCLUDE "scripts/route22_2.asm" INCLUDE "scripts/redshouse1f2.asm" INCLUDE "scripts/oakslab2.asm" INCLUDE "scripts/school2.asm" - dr $f1c1b, $f220e +INCLUDE "scripts/museum1f2.asm" + dr $f1d98, $f220e INCLUDE "data/mapHeaders/beach_house.asm" INCLUDE "scripts/beach_house.asm" diff --git a/scripts/museum1f2.asm b/scripts/museum1f2.asm new file mode 100755 index 00000000..f6dfa509 --- /dev/null +++ b/scripts/museum1f2.asm @@ -0,0 +1,211 @@ +Func_f1c1b: + ld a, [wYCoord] + cp $4 + jr nz, .asm_f1c2c + ld a, [wXCoord] + cp $d + jp z, .asm_f1cde + jr .asm_f1c48 + +.asm_f1c2c + cp $3 + jr nz, .asm_f1c38 + ld a, [wXCoord] + cp a, $c + jp z, .asm_f1cde +.asm_f1c38 + CheckEvent EVENT_BOUGHT_MUSEUM_TICKET + jr nz, .asm_f1c4f + ld hl, Museum1FText_f1d20 + call PrintText + jp .asm_f1cfc + +.asm_f1c48 + CheckEvent EVENT_BOUGHT_MUSEUM_TICKET + jr z, .asm_f1c58 +.asm_f1c4f + ld hl, Museum1FText_f1d25 + call PrintText + jp .asm_f1cfc + +.asm_f1c58 + ld a, $13 + ld [wTextBoxID], a + call DisplayTextBoxID + xor a + ld [hJoyHeld], a + ld hl, Museum1FText_f1d02 + call PrintText + call YesNoChoice + ld a, [wCurrentMenuItem] + and a + jr nz, .asm_f1cbf + xor a + ld [hMoney], a + ld [hMoney + 1], a + ld a, $50 + ld [hMoney + 2], a + call HasEnoughMoney + jr nc, .asm_f1c89 + ld hl, Museum1FText_f1d0c + call PrintText + jp .asm_f1cbf + +.asm_f1c89 + ld hl, Museum1FText_f1d07 + call PrintText + SetEvent EVENT_BOUGHT_MUSEUM_TICKET + xor a + ld [wPriceTemp], a + ld [wPriceTemp + 1], a + ld a, $50 + ld [wPriceTemp + 2], a + ld hl, wPriceTemp + 2 + ld de, wPlayerMoney + 2 + ld c, 3 + predef SubBCDPredef + ld a, $13 + ld [wTextBoxID], a + call DisplayTextBoxID + ld a, SFX_PURCHASE + call PlaySoundWaitForCurrent + call WaitForSoundToFinish + jr .asm_f1cd7 + +.asm_f1cbf + ld hl, Museum1FText_f1cfd + call PrintText + ld a, $1 + ld [wSimulatedJoypadStatesIndex], a + ld a, D_DOWN + ld [wSimulatedJoypadStatesEnd], a + call StartSimulatingJoypadStates + call UpdateSprites + jr .asm_f1cfc + +.asm_f1cd7 + ld a, $1 + ld [W_MUSEUM1FCURSCRIPT], a + jr .asm_f1cfc + +.asm_f1cde + ld hl, Museum1FText_f1d11 + call PrintText + call YesNoChoice + ld a, [wCurrentMenuItem] + cp 0 + jr nz, .asm_f1cf6 + ld hl, Museum1FText_f1d16 + call PrintText + jr .asm_f1cfc + +.asm_f1cf6 + ld hl, Museum1FText_f1d1b + call PrintText +.asm_f1cfc + ret + +Museum1FText_f1cfd: + TX_FAR _Museum1FText_5c21a + db "@" + +Museum1FText_f1d02: + TX_FAR _Museum1FText_5c21f + db "@" + +Museum1FText_f1d07: + TX_FAR _Museum1FText_5c224 + db "@" + +Museum1FText_f1d0c: + TX_FAR _Museum1FText_5c229 + db "@" + +Museum1FText_f1d11: + TX_FAR _Museum1FText_5c22e + db "@" + +Museum1FText_f1d16: + TX_FAR _Museum1FText_5c233 + db "@" + +Museum1FText_f1d1b: + TX_FAR _Museum1FText_5c238 + db "@" + +Museum1FText_f1d20: + TX_FAR _Museum1FText_5c23d + db "@" + +Museum1FText_f1d25: + TX_FAR _Museum1FText_5c242 + db "@" + +Func_f1d2a: + ld hl, Museum1FText_f1d31 + call PrintText + ret + +Museum1FText_f1d31: + TX_FAR _Museum1FText_5c251 + db "@" + +Func_f1d36: + CheckEvent EVENT_GOT_OLD_AMBER + jr nz, .asm_f1d64 + ld hl, Museum1FText_f1d6b + call PrintText + lb bc, OLD_AMBER, 1 + call GiveItem + jr nc, .asm_f1d5f + SetEvent EVENT_GOT_OLD_AMBER + ld a, HS_OLD_AMBER + ld [wMissableObjectIndex], a + predef HideObject + ld hl, Museum1FText_f1d70 + jr .asm_f1d67 + +.asm_f1d5f + ld hl, Museum1FText_f1d7b + jr .asm_f1d67 + +.asm_f1d64 + ld hl, Museum1FText_f1d76 +.asm_f1d67 + call PrintText + ret + +Museum1FText_f1d6b: + TX_FAR _Museum1FText_5c28e + db "@" + +Museum1FText_f1d70: + TX_FAR _ReceivedOldAmberText + TX_SFX_ITEM + db "@" + +Museum1FText_f1d76: + TX_FAR _Museum1FText_5c299 + db "@" + +Museum1FText_f1d7b: + TX_FAR _Museum1FText_5c29e + db "@" + +Func_f1d80: + ld hl, Museum1FText_f1d87 + call PrintText + ret + +Museum1FText_f1d87: + TX_FAR _Museum1FText_5c2ad + db "@" + +Func_f1d8c: + ld hl, Museum1FText_f1d93 + call PrintText + ret + +Museum1FText_f1d93: + TX_FAR _Museum1FText_5c2bc + db "@" diff --git a/text/maps/museum_1f.asm b/text/maps/museum_1f.asm index f5f7f042..71aeee3c 100644 --- a/text/maps/museum_1f.asm +++ b/text/maps/museum_1f.asm @@ -81,7 +81,7 @@ _Museum1FText_5c28e:: prompt _ReceivedOldAmberText:: - text $52, " received" + text " received" line "OLD AMBER!@@" _Museum1FText_5c299:: -- cgit v1.2.3 From 9c380e8de747392f4a8308863ac6a49c47f700d8 Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Sun, 29 May 2016 14:14:29 -0400 Subject: Museum 1F local scripts --- data/map_header_banks.asm | 2 +- data/map_header_pointers.asm | 2 +- main.asm | 11 ++- scripts/museum1f.asm | 203 +++---------------------------------------- 4 files changed, 22 insertions(+), 196 deletions(-) diff --git a/data/map_header_banks.asm b/data/map_header_banks.asm index fe3a1db1..eae8a657 100644 --- a/data/map_header_banks.asm +++ b/data/map_header_banks.asm @@ -52,7 +52,7 @@ MapHeaderBanks:: ; fc3e4 (3f:43e4) db BANK(Route2Gate_h) db BANK(ViridianForestEntrance_h) db BANK(ViridianForest_h) - db $17 ; db BANK(Museum1F_h) + db BANK(Museum1F_h) db $17 ; db BANK(Museum2F_h) db $17 ; db BANK(PewterGym_h) db $07 ; db BANK(PewterHouse1_h) diff --git a/data/map_header_pointers.asm b/data/map_header_pointers.asm index 930ce54a..dcf13fd1 100644 --- a/data/map_header_pointers.asm +++ b/data/map_header_pointers.asm @@ -52,7 +52,7 @@ MapHeaderPointers:: ; fc1f2 (3f:41f2) dw Route2Gate_h dw ViridianForestEntrance_h ;id=50 dw ViridianForest_h - dw $40e3 ; dw Museum1F_h + dw Museum1F_h dw $41b4 ; dw Museum2F_h dw $4257 ; dw PewterGym_h dw $4e30 ; dw PewterHouse1_h diff --git a/main.asm b/main.asm index 0d13baf2..0b5d37f0 100755 --- a/main.asm +++ b/main.asm @@ -1045,7 +1045,9 @@ SECTION "bank17",ROMX,BANK[$17] dr $5c000,$5c010 RedsHouse2FBlocks: INCBIN "maps/redshouse2f.blk" - dr $5c020,$5c090 +Museum1FBlocks: +INCBIN "maps/museum1f.blk" + dr $5c048,$5c090 ViridianForestEntranceBlocks: ViridianForestExitBlocks: Route2GateBlocks: @@ -1054,7 +1056,12 @@ INCBIN "maps/viridianforestentrance.blk" INCLUDE "data/mapHeaders/redshouse2f.asm" INCLUDE "scripts/redshouse2f.asm" INCLUDE "data/mapObjects/redshouse2f.asm" - dr $5c0d4,$5d485 + dr $5c0d4,$5c0e3 + +INCLUDE "data/mapHeaders/museum1f.asm" +INCLUDE "scripts/museum1f.asm" +INCLUDE "data/mapObjects/museum1f.asm" + dr $5c1b4,$5d485 INCLUDE "data/mapHeaders/viridianforestexit.asm" INCLUDE "scripts/viridianforestexit.asm" diff --git a/scripts/museum1f.asm b/scripts/museum1f.asm index ae5a2b42..75c0d74e 100755 --- a/scripts/museum1f.asm +++ b/scripts/museum1f.asm @@ -5,7 +5,8 @@ Museum1FScript: ; 5c0f7 (17:40f7) ld [wDoNotWaitForButtonPressAfterDisplayingText], a ld hl, Museum1FScriptPointers ld a, [W_MUSEUM1FCURSCRIPT] - jp JumpTable + call JumpTable + ret Museum1FScriptPointers: ; 5c109 (17:4109) dw Museum1FScript0 @@ -40,207 +41,25 @@ Museum1FTextPointers: ; 5c12b (17:412b) Museum1FText1: ; 5c135 (17:4135) TX_ASM - ld a, [wYCoord] - cp $4 - jr nz, .asm_8774b - ld a, [wXCoord] - cp $d - jp z, Museum1FScript_5c1f9 - jr .asm_b8709 -.asm_8774b - cp $3 - jr nz, .asm_d49e7 - ld a, [wXCoord] - cp $c - jp z, Museum1FScript_5c1f9 -.asm_d49e7 - CheckEvent EVENT_BOUGHT_MUSEUM_TICKET - jr nz, .asm_31a16 - ld hl, Museum1FText_5c23d - call PrintText - jp Museum1FScriptEnd -.asm_b8709 - CheckEvent EVENT_BOUGHT_MUSEUM_TICKET - jr z, .asm_3ded4 -.asm_31a16 - ld hl, Museum1FText_5c242 - call PrintText - jp Museum1FScriptEnd -.asm_3ded4 - ld a, MONEY_BOX - ld [wTextBoxID], a - call DisplayTextBoxID - xor a - ld [hJoyHeld], a - ld hl, Museum1FText_5c21f - call PrintText - call YesNoChoice - ld a, [wCurrentMenuItem] - and a - jr nz, .asm_de133 - xor a - ld [hMoney], a - ld [hMoney + 1], a - ld a, $50 - ld [hMoney + 2], a - call HasEnoughMoney - jr nc, .asm_0f3e3 - ld hl, Museum1FText_5c229 - call PrintText - jp .asm_de133 -.asm_0f3e3 - ld hl, Museum1FText_5c224 - call PrintText - SetEvent EVENT_BOUGHT_MUSEUM_TICKET - xor a - ld [wPriceTemp], a - ld [wPriceTemp + 1], a - ld a, $50 - ld [wPriceTemp + 2], a - ld hl, wPriceTemp + 2 - ld de, wPlayerMoney + 2 - ld c, $3 - predef SubBCDPredef - ld a, MONEY_BOX - ld [wTextBoxID], a - call DisplayTextBoxID - ld a, SFX_PURCHASE - call PlaySoundWaitForCurrent - call WaitForSoundToFinish - jr .asm_0b094 -.asm_de133 - ld hl, Museum1FText_5c21a - call PrintText - ld a, $1 - ld [wSimulatedJoypadStatesIndex], a - ld a, D_DOWN - ld [wSimulatedJoypadStatesEnd], a - call StartSimulatingJoypadStates - call UpdateSprites - jr Museum1FScriptEnd -.asm_0b094 - ld a, $1 - ld [W_MUSEUM1FCURSCRIPT], a - jr Museum1FScriptEnd - -Museum1FScript_5c1f9: ; 5c1f9 (17:41f9) - ld hl, Museum1FText_5c22e - call PrintText - call YesNoChoice - ld a, [wCurrentMenuItem] - cp $0 - jr nz, .asm_d1144 - ld hl, Museum1FText_5c233 - call PrintText - jr Museum1FScriptEnd -.asm_d1144 - ld hl, Museum1FText_5c238 - call PrintText -Museum1FScriptEnd: ; 5c217 (17:4217) + callba Func_f1c1b jp TextScriptEnd -Museum1FText_5c21a: ; 5c21a (17:421a) - TX_FAR _Museum1FText_5c21a - db "@" - -Museum1FText_5c21f: ; 5c21f (17:421f) - TX_FAR _Museum1FText_5c21f - db "@" - -Museum1FText_5c224: ; 5c224 (17:4224) - TX_FAR _Museum1FText_5c224 - db "@" - -Museum1FText_5c229: ; 5c229 (17:4229) - TX_FAR _Museum1FText_5c229 - db "@" - -Museum1FText_5c22e: ; 5c22e (17:422e) - TX_FAR _Museum1FText_5c22e - db "@" - -Museum1FText_5c233: ; 5c233 (17:4233) - TX_FAR _Museum1FText_5c233 - db "@" - -Museum1FText_5c238: ; 5c238 (17:4238) - TX_FAR _Museum1FText_5c238 - db "@" - -Museum1FText_5c23d: ; 5c23d (17:423d) - TX_FAR _Museum1FText_5c23d - db "@" - -Museum1FText_5c242: ; 5c242 (17:4242) - TX_FAR _Museum1FText_5c242 - db "@" - -Museum1FText2: ; 5c247 (17:4247) +Museum1FText2: ; 5c135 (17:4135) TX_ASM - ld hl, Museum1FText_5c251 - call PrintText + callba Func_f1d2a jp TextScriptEnd -Museum1FText_5c251: ; 5c251 (17:4251) - TX_FAR _Museum1FText_5c251 - db "@" - -Museum1FText3: ; 5c256 (17:4256) +Museum1FText3: ; 5c135 (17:4135) TX_ASM - CheckEvent EVENT_GOT_OLD_AMBER - jr nz, .asm_5c285 - ld hl, Museum1FText_5c28e - call PrintText - lb bc, OLD_AMBER, 1 - call GiveItem - jr nc, .BagFull - SetEvent EVENT_GOT_OLD_AMBER - ld a, HS_OLD_AMBER - ld [wMissableObjectIndex], a - predef HideObject - ld hl, ReceivedOldAmberText - jr .asm_5c288 -.BagFull - ld hl, Museum1FText_5c29e - jr .asm_5c288 -.asm_5c285 - ld hl, Museum1FText_5c299 -.asm_5c288 - call PrintText + callba Func_f1d36 jp TextScriptEnd -Museum1FText_5c28e: ; 5c28e (17:428e) - TX_FAR _Museum1FText_5c28e - db "@" - -ReceivedOldAmberText: ; 5c293 (17:4293) - TX_FAR _ReceivedOldAmberText - db $0B, "@" - -Museum1FText_5c299: ; 5c299 (17:4299) - TX_FAR _Museum1FText_5c299 - db "@" - -Museum1FText_5c29e: ; 5c29e (17:429e) - TX_FAR _Museum1FText_5c29e - db "@" - -Museum1FText4: ; 5c2a3 (17:42a3) +Museum1FText4: ; 5c135 (17:4135) TX_ASM - ld hl, Museum1FText_5c2ad - call PrintText + callba Func_f1d80 jp TextScriptEnd -Museum1FText_5c2ad: ; 5c2ad (17:42ad) - TX_FAR _Museum1FText_5c2ad - db "@" - -Museum1FText5: ; 5c2b2 (17:42b2) +Museum1FText5: ; 5c135 (17:4135) TX_ASM - ld hl, Museum1FText_5c2bc - call PrintText + callba Func_f1d8c jp TextScriptEnd - -Museum1FText_5c2bc: ; 5c2bc (17:42bc) - TX_FAR _Museum1FText_5c2bc - db "@" -- cgit v1.2.3 From 591752d5ee3bfccf1b003d03f85e21623ebd56ce Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Sun, 29 May 2016 14:35:16 -0400 Subject: Pewter Gym and Museum 2F --- data/map_header_banks.asm | 4 ++-- data/map_header_pointers.asm | 4 ++-- main.asm | 16 ++++++++++++++-- scripts/museum2f.asm | 34 +++++++++++++++++++++++++++++++++- scripts/pewtergym.asm | 22 ++++++++++++++++++---- 5 files changed, 69 insertions(+), 11 deletions(-) diff --git a/data/map_header_banks.asm b/data/map_header_banks.asm index eae8a657..d935a5ec 100644 --- a/data/map_header_banks.asm +++ b/data/map_header_banks.asm @@ -53,8 +53,8 @@ MapHeaderBanks:: ; fc3e4 (3f:43e4) db BANK(ViridianForestEntrance_h) db BANK(ViridianForest_h) db BANK(Museum1F_h) - db $17 ; db BANK(Museum2F_h) - db $17 ; db BANK(PewterGym_h) + db BANK(Museum2F_h) + db BANK(PewterGym_h) db $07 ; db BANK(PewterHouse1_h) db $1d ; db BANK(PewterMart_h) db $07 ; db BANK(PewterHouse2_h) diff --git a/data/map_header_pointers.asm b/data/map_header_pointers.asm index dcf13fd1..06df0f27 100644 --- a/data/map_header_pointers.asm +++ b/data/map_header_pointers.asm @@ -53,8 +53,8 @@ MapHeaderPointers:: ; fc1f2 (3f:41f2) dw ViridianForestEntrance_h ;id=50 dw ViridianForest_h dw Museum1F_h - dw $41b4 ; dw Museum2F_h - dw $4257 ; dw PewterGym_h + dw Museum2F_h + dw PewterGym_h dw $4e30 ; dw PewterHouse1_h dw $44de ; dw PewterMart_h dw $4e86 ; dw PewterHouse2_h diff --git a/main.asm b/main.asm index 0b5d37f0..9c6ff5ac 100755 --- a/main.asm +++ b/main.asm @@ -1047,7 +1047,9 @@ RedsHouse2FBlocks: INCBIN "maps/redshouse2f.blk" Museum1FBlocks: INCBIN "maps/museum1f.blk" - dr $5c048,$5c090 +Museum2FBlocks: +INCBIN "maps/museum2f.blk" + dr $5c064,$5c090 ViridianForestEntranceBlocks: ViridianForestExitBlocks: Route2GateBlocks: @@ -1061,7 +1063,17 @@ INCLUDE "data/mapObjects/redshouse2f.asm" INCLUDE "data/mapHeaders/museum1f.asm" INCLUDE "scripts/museum1f.asm" INCLUDE "data/mapObjects/museum1f.asm" - dr $5c1b4,$5d485 + +INCLUDE "data/mapHeaders/museum2f.asm" +INCLUDE "scripts/museum2f.asm" +INCLUDE "data/mapObjects/museum2f.asm" + +INCLUDE "data/mapHeaders/pewtergym.asm" +INCLUDE "scripts/pewtergym.asm" +INCLUDE "data/mapObjects/pewtergym.asm" +PewterGymBlocks: +INCBIN "maps/pewtergym.blk" + dr $5c46e,$5d485 INCLUDE "data/mapHeaders/viridianforestexit.asm" INCLUDE "scripts/viridianforestexit.asm" diff --git a/scripts/museum2f.asm b/scripts/museum2f.asm index 0f8a63ec..56d113ae 100755 --- a/scripts/museum2f.asm +++ b/scripts/museum2f.asm @@ -1,5 +1,6 @@ Museum2FScript: ; 5c317 (17:4317) - jp EnableAutoTextBoxDrawing + call EnableAutoTextBoxDrawing + ret Museum2FTextPointers: ; 5c31a (17:431a) dw Museum2FText1 @@ -27,9 +28,40 @@ Museum2FText4: ; 5c337 (17:4337) db "@" Museum2FText5: ; 5c33c (17:433c) + TX_ASM + ld a, [wd472] + bit 7, a + jr nz, .asm_5c1f6 + ld hl, Museum2FText_5c20e + call PrintText + jr .asm_5c20b + +.asm_5c1f6 + ld a, [wPikachuHappiness] + cp 101 + jr c, .asm_5c205 + ld hl, Museum2FText_5c218 + call PrintText + jr .asm_5c20b + +.asm_5c205 + ld hl, Museum2FText_5c213 + call PrintText +.asm_5c20b + jp TextScriptEnd + +Museum2FText_5c20e: TX_FAR _Museum2FText5 db "@" +Museum2FText_5c213: + TX_FAR _Museum2FPikachuText1 + db "@" + +Museum2FText_5c218: + TX_FAR _Museum2FPikachuText2 + db "@" + Museum2FText6: ; 5c341 (17:4341) TX_FAR _Museum2FText6 db "@" diff --git a/scripts/pewtergym.asm b/scripts/pewtergym.asm index 1e6e5476..3e9ab693 100755 --- a/scripts/pewtergym.asm +++ b/scripts/pewtergym.asm @@ -14,7 +14,8 @@ PewterGymScript: ; 5c387 (17:4387) PewterGymScript_5c3a4: ; 5c3a4 (17:43a4) ld hl, Gym1CityName ld de, Gym1LeaderName - jp LoadGymLeaderAndCityName + call LoadGymLeaderAndCityName + ret Gym1CityName: ; 5c3ad (17:43ad) db "PEWTER CITY@" @@ -41,7 +42,6 @@ PewterGymScript3: ; 5c3d2 (17:43d2) jp z, PewterGymScript_5c3bf ld a, $f0 ld [wJoyIgnore], a - PewterGymScript_5c3df: ; 5c3df (17:43df) ld a, $4 ld [hSpriteIndexOrTextID], a @@ -55,6 +55,7 @@ PewterGymScript_5c3df: ; 5c3df (17:43df) call DisplayTextID SetEvent EVENT_GOT_TM34 jr .asm_5c408 + .BagFull ld a, $6 ld [hSpriteIndexOrTextID], a @@ -149,7 +150,7 @@ PewterGymText4: ; 5c4a8 (17:44a8) PewterGymText5: ; 5c4ad (17:44ad) TX_FAR _ReceivedTM34Text - db $0B + TX_SFX_ITEM TX_FAR _TM34ExplanationText db "@" @@ -159,7 +160,7 @@ PewterGymText6: ; 5c4b7 (17:44b7) PewterGymText_5c4bc: ; 5c4bc (17:44bc) TX_FAR _PewterGymText_5c4bc - db $0B + TX_SFX_ITEM TX_FAR _PewterGymText_5c4c1 db "@" @@ -192,6 +193,9 @@ PewterGymText3: ; 5c4df (17:44df) ld a, [wCurrentMenuItem] and a jr nz, .asm_5c4fe + ld a, [wd472] + bit 7, a + jp nz, .asm_5c3fa ld hl, PewterGymText_5c51a call PrintText jr .asm_5c504 @@ -208,6 +212,11 @@ PewterGymText3: ; 5c4df (17:44df) .asm_5c512 jp TextScriptEnd +.asm_5c3fa + ld hl, PewterGymText_5c41c + call PrintText + jp TextScriptEnd + PewterGymText_5c515: ; 5c515 (17:4515) TX_FAR _PewterGymText_5c515 db "@" @@ -227,3 +236,8 @@ PewterGymText_5c524: ; 5c524 (17:4524) PewterGymText_5c529: ; 5c529 (17:4529) TX_FAR _PewterGymText_5c529 db "@" + +PewterGymText_5c41c: + TX_FAR _PewterGymGuyText + db "@" + -- cgit v1.2.3 From 92f3f9119ee7e0a1c70fcc483888baf048d7e6d9 Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Sun, 29 May 2016 15:29:40 -0400 Subject: Pewter houses, Pewter mart --- data/map_header_banks.asm | 6 +++--- data/map_header_pointers.asm | 6 +++--- main.asm | 27 +++++++++++++++++++++++---- scripts/pewterhouse1.asm | 3 ++- 4 files changed, 31 insertions(+), 11 deletions(-) diff --git a/data/map_header_banks.asm b/data/map_header_banks.asm index d935a5ec..0dd10719 100644 --- a/data/map_header_banks.asm +++ b/data/map_header_banks.asm @@ -55,9 +55,9 @@ MapHeaderBanks:: ; fc3e4 (3f:43e4) db BANK(Museum1F_h) db BANK(Museum2F_h) db BANK(PewterGym_h) - db $07 ; db BANK(PewterHouse1_h) - db $1d ; db BANK(PewterMart_h) - db $07 ; db BANK(PewterHouse2_h) + db BANK(PewterHouse1_h) + db BANK(PewterMart_h) + db BANK(PewterHouse2_h) db $17 ; db BANK(PewterPokecenter_h) db $12 ; db BANK(MtMoon1_h) db $14 ; db BANK(MtMoon2_h) diff --git a/data/map_header_pointers.asm b/data/map_header_pointers.asm index 06df0f27..a7a0763d 100644 --- a/data/map_header_pointers.asm +++ b/data/map_header_pointers.asm @@ -55,9 +55,9 @@ MapHeaderPointers:: ; fc1f2 (3f:41f2) dw Museum1F_h dw Museum2F_h dw PewterGym_h - dw $4e30 ; dw PewterHouse1_h - dw $44de ; dw PewterMart_h - dw $4e86 ; dw PewterHouse2_h + dw PewterHouse1_h + dw PewterMart_h + dw PewterHouse2_h dw $446e ; dw PewterPokecenter_h dw $5953 ; dw MtMoon1_h dw $5a78 ; dw MtMoon2_h ;id=60 diff --git a/main.asm b/main.asm index 9c6ff5ac..3ba53669 100755 --- a/main.asm +++ b/main.asm @@ -295,6 +295,8 @@ OaksLabBlocks: INCBIN "maps/oakslab.blk" ViridianHouseBlocks: Route2HouseBlocks: +PewterHouse1Blocks: +PewterHouse2Blocks: INCBIN "maps/viridianhouse.blk" SchoolBlocks: INCBIN "maps/school.blk" @@ -317,7 +319,6 @@ INCLUDE "data/mapHeaders/viridianmart.asm" INCLUDE "scripts/viridianmart.asm" INCLUDE "data/mapObjects/viridianmart.asm" ViridianMartBlocks: -PewterMartBlocks: CeruleanMartBlocks: VermilionMartBlocks: LavenderMartBlocks: @@ -334,7 +335,16 @@ INCLUDE "data/mapObjects/school.asm" INCLUDE "data/mapHeaders/viridianhouse.asm" INCLUDE "scripts/viridianhouse.asm" INCLUDE "data/mapObjects/viridianhouse.asm" - dr $1ce30,$1d7ae ; map scripts + +INCLUDE "data/mapHeaders/pewterhouse1.asm" +INCLUDE "scripts/pewterhouse1.asm" +INCLUDE "data/mapObjects/pewterhouse1.asm" + +INCLUDE "data/mapHeaders/pewterhouse2.asm" +INCLUDE "scripts/pewterhouse2.asm" +INCLUDE "data/mapObjects/pewterhouse2.asm" + + dr $1cec3,$1d7ae ; map scripts INCLUDE "data/mapHeaders/diglettscaveroute2.asm" INCLUDE "scripts/diglettscaveroute2.asm" @@ -1150,7 +1160,11 @@ INCLUDE "engine/save.asm" SECTION "bank1D",ROMX,BANK[$1D] - dr $74000,$7405c + dr $74000,$74010 + +PewterMartBlocks: +INCBIN "maps/pewtermart.blk" + dr $74020,$7405c INCLUDE "engine/items/itemfinder.asm" INCLUDE "scripts/ceruleancity2.asm" @@ -1160,7 +1174,12 @@ INCLUDE "scripts/viridiangym.asm" INCLUDE "data/mapObjects/viridiangym.asm" ViridianGymBlocks: INCBIN "maps/viridiangym.blk" - dr $744de,$74726 + +INCLUDE "data/mapHeaders/pewtermart.asm" +INCLUDE "scripts/pewtermart.asm" +INCLUDE "data/mapObjects/pewtermart.asm" + + dr $7453d,$74726 VendingMachineMenu: ; 74726 (1d:4726) dr $74726,$75dfe PKMNLeaguePC: ; 75dfe (1d:5dfe) diff --git a/scripts/pewterhouse1.asm b/scripts/pewterhouse1.asm index a670f23c..a825b303 100755 --- a/scripts/pewterhouse1.asm +++ b/scripts/pewterhouse1.asm @@ -1,5 +1,6 @@ PewterHouse1Script: ; 1d5f3 (7:55f3) - jp EnableAutoTextBoxDrawing + call EnableAutoTextBoxDrawing + ret PewterHouse1TextPointers: ; 1d5f6 (7:55f6) dw PewterHouse1Text1 -- cgit v1.2.3 From 9abb62033819774d7b256ee0222f7c6ece987bfe Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Sun, 29 May 2016 16:24:41 -0400 Subject: Pewter Pokecenter --- data/mapObjects/pewterpokecenter.asm | 6 ++- data/map_header_banks.asm | 2 +- data/map_header_pointers.asm | 2 +- engine/bank3c.asm | 5 ++- engine/bank3f.asm | 6 +-- engine/items/items.asm | 2 +- engine/menu/bills_pc.asm | 2 +- engine/menu/party_menu.asm | 2 +- engine/overworld/cable_club_npc.asm | 2 +- engine/overworld/pokecenter.asm | 8 ++-- engine/pikachu_pic_animation.asm | 10 ++--- home.asm | 2 +- home/overworld.asm | 2 +- home/pikachu.asm | 6 +-- main.asm | 12 ++++-- scripts/billshouse2.asm | 4 +- scripts/pewterpokecenter.asm | 80 ++++++++---------------------------- wram.asm | 4 ++ 18 files changed, 63 insertions(+), 94 deletions(-) diff --git a/data/mapObjects/pewterpokecenter.asm b/data/mapObjects/pewterpokecenter.asm index 86757244..d3f87326 100755 --- a/data/mapObjects/pewterpokecenter.asm +++ b/data/mapObjects/pewterpokecenter.asm @@ -7,11 +7,13 @@ PewterPokecenterObject: ; 0x5c60d (size=44) db $0 ; signs - db $4 ; objects + db $6 ; objects object SPRITE_NURSE, $3, $1, STAY, DOWN, $1 ; person object SPRITE_GENTLEMAN, $b, $7, STAY, LEFT, $2 ; person - object SPRITE_CLEFAIRY, $1, $3, STAY, DOWN, $3 ; person + object SPRITE_JIGGLYPUFF, $1, $3, STAY, DOWN, $3 ; person object SPRITE_CABLE_CLUB_WOMAN, $b, $2, STAY, DOWN, $4 ; person + object SPRITE_LASS, $4, $3, STAY, UP, $5 ; person + object SPRITE_CHANSEY, $4, $1, STAY, DOWN, $6 ; person ; warp-to EVENT_DISP PEWTER_POKECENTER_WIDTH, $7, $3 diff --git a/data/map_header_banks.asm b/data/map_header_banks.asm index 0dd10719..c840cd82 100644 --- a/data/map_header_banks.asm +++ b/data/map_header_banks.asm @@ -58,7 +58,7 @@ MapHeaderBanks:: ; fc3e4 (3f:43e4) db BANK(PewterHouse1_h) db BANK(PewterMart_h) db BANK(PewterHouse2_h) - db $17 ; db BANK(PewterPokecenter_h) + db BANK(PewterPokecenter_h) db $12 ; db BANK(MtMoon1_h) db $14 ; db BANK(MtMoon2_h) db $12 ; db BANK(MtMoon3_h) diff --git a/data/map_header_pointers.asm b/data/map_header_pointers.asm index a7a0763d..cc700617 100644 --- a/data/map_header_pointers.asm +++ b/data/map_header_pointers.asm @@ -58,7 +58,7 @@ MapHeaderPointers:: ; fc1f2 (3f:41f2) dw PewterHouse1_h dw PewterMart_h dw PewterHouse2_h - dw $446e ; dw PewterPokecenter_h + dw PewterPokecenter_h dw $5953 ; dw MtMoon1_h dw $5a78 ; dw MtMoon2_h ;id=60 dw $5c7e ; dw MtMoon3_h diff --git a/engine/bank3c.asm b/engine/bank3c.asm index 097dfd3e..9274b8b7 100644 --- a/engine/bank3c.asm +++ b/engine/bank3c.asm @@ -352,7 +352,10 @@ INCLUDE "scripts/redshouse1f2.asm" INCLUDE "scripts/oakslab2.asm" INCLUDE "scripts/school2.asm" INCLUDE "scripts/museum1f2.asm" - dr $f1d98, $f220e +INCLUDE "scripts/pewterpokecenter2.asm" + +Func_f1e22: + dr $f1e22, $f220e INCLUDE "data/mapHeaders/beach_house.asm" INCLUDE "scripts/beach_house.asm" diff --git a/engine/bank3f.asm b/engine/bank3f.asm index c8041a3a..c31fc986 100644 --- a/engine/bank3f.asm +++ b/engine/bank3f.asm @@ -27,7 +27,7 @@ Func_fc4fa:: ; fc4fa (3f:44fa) bit 4, [hl] res 4, [hl] jr nz, .asm_fc515 - call Func_1542 + call ResetPikachuAsleep call Func_fc523 ld a, $ff ld [wSpriteStateData1 + $f2], a @@ -344,7 +344,7 @@ Func_fc6d5:: ; fc6d5 (3f:46d5) ld a, [wFontLoaded] bit 0, a jp nz, asm_fc76a - call Func_154a + call CheckPikachuAsleep jp nz, asm_fc76a ld a, [hl] and $7f @@ -408,7 +408,7 @@ asm_fc745: ; fc745 (3f:4745) ld hl, wSpriteStateData2 - wSpriteStateData1 add hl, bc ld [hl], a - call Func_154a + call CheckPikachuAsleep jr nz, .asm_fc75f ld a, [wSpriteStateData1 + $9] xor $4 diff --git a/engine/items/items.asm b/engine/items/items.asm index 5d76c37e..eca9eaef 100755 --- a/engine/items/items.asm +++ b/engine/items/items.asm @@ -1765,7 +1765,7 @@ ItemUsePokeflute: ; dfbd (3:5fbd) .notRoute16 cp a,PEWTER_POKECENTER jr nz,.noSnorlaxOrPikachuToWakeUp - call Func_154a + call CheckPikachuAsleep jr z,.noSnorlaxOrPikachuToWakeUp callab Func_fcb01 jr nc,.noSnorlaxOrPikachuToWakeUp diff --git a/engine/menu/bills_pc.asm b/engine/menu/bills_pc.asm index ce9ca5a8..97a65517 100644 --- a/engine/menu/bills_pc.asm +++ b/engine/menu/bills_pc.asm @@ -227,7 +227,7 @@ BillsPCDeposit: ; 2156d (8:556d) jp c, BillsPCMenu callab IsThisPartymonStarterPikachu_Party jr nc, .asm_215ad - call Func_154a + call CheckPikachuAsleep jr z, .asm_215ad ld hl, SleepingPikachuText2 call PrintText diff --git a/engine/menu/party_menu.asm b/engine/menu/party_menu.asm index 3ec0029e..8683d3cb 100755 --- a/engine/menu/party_menu.asm +++ b/engine/menu/party_menu.asm @@ -53,7 +53,7 @@ RedrawPartyMenu_: ; 11886 (4:5886) ld [wWhichPokemon],a callab IsThisPartymonStarterPikachu_Party jr nc, .regularMon - call Func_154a + call CheckPikachuAsleep jr z, .regularMon ld a, $ff ld [hPartyMonIndex], a diff --git a/engine/overworld/cable_club_npc.asm b/engine/overworld/cable_club_npc.asm index 8f279759..4170a936 100755 --- a/engine/overworld/cable_club_npc.asm +++ b/engine/overworld/cable_club_npc.asm @@ -1,7 +1,7 @@ CableClubNPC: ; 7035 (1:7035) ld hl, CableClubNPCWelcomeText call PrintText - call Func_154a + call CheckPikachuAsleep jr nz, .asm_7048 CheckEvent EVENT_GOT_POKEDEX jp nz, .receivedPokedex diff --git a/engine/overworld/pokecenter.asm b/engine/overworld/pokecenter.asm index 779d852c..3024ff7b 100755 --- a/engine/overworld/pokecenter.asm +++ b/engine/overworld/pokecenter.asm @@ -2,7 +2,7 @@ DisplayPokemonCenterDialogue_: ; 6d97 (1:6d97) ld a, [wCurMap] cp PEWTER_POKECENTER jr nz, .regularCenter - call Func_154a + call CheckPikachuAsleep jr z, .regularCenter ld hl, LooksContentText ; if pikachu is sleeping, don't heal call PrintText @@ -27,7 +27,7 @@ DisplayPokemonCenterDialogue_: ; 6d97 (1:6d97) call SetLastBlackoutMap callab IsStarterPikachuInOurParty jr nc, .notHealingPlayerPikachu - call Func_154a + call CheckPikachuAsleep jr nz, .notHealingPlayerPikachu call LoadCurrentMapView call Delay3 @@ -38,7 +38,7 @@ DisplayPokemonCenterDialogue_: ; 6d97 (1:6d97) call PrintText ld c, 64 call DelayFrames - call Func_154a + call CheckPikachuAsleep jr nz, .playerPikachuNotOnScreen call Func_152d callab IsStarterPikachuInOurParty @@ -58,7 +58,7 @@ DisplayPokemonCenterDialogue_: ; 6d97 (1:6d97) ld [wLastMusicSoundID], a ld [wNewSoundID], a call PlaySound - call Func_154a + call CheckPikachuAsleep jr nz, .doNotReturnPikachu callab IsStarterPikachuInOurParty call c, Func_6eaa diff --git a/engine/pikachu_pic_animation.asm b/engine/pikachu_pic_animation.asm index d95eb538..c16e3e5f 100755 --- a/engine/pikachu_pic_animation.asm +++ b/engine/pikachu_pic_animation.asm @@ -247,7 +247,7 @@ Func_fd05e: ; fd05e (3f:505e) bit 7, [hl] ld a, $1d jr z, .asm_fd0c9 - call Func_154a + call CheckPikachuAsleep ld a, $1e jr nz, .asm_fd0c9 jr .asm_fd096 @@ -255,7 +255,7 @@ Func_fd05e: ; fd05e (3f:505e) ld a, [wCurMap] cp PEWTER_POKECENTER jr nz, .notPewterPokecenter - call Func_154a + call CheckPikachuAsleep ld a, $1a jr nz, .asm_fd0c9 jr .asm_fd096 @@ -1636,7 +1636,7 @@ PikachuPewterPokecenterCheck: ; fd8d4 (3f:58d4) ld a, [wCurMap] cp PEWTER_POKECENTER ret nz - call Func_1542 + call ResetPikachuAsleep call Func_fcff2 ret @@ -1644,7 +1644,7 @@ PikachuFanClubCheck: ; fd8e1 (3f:58e1) ld a, [wCurMap] cp POKEMON_FAN_CLUB ret nz - call Func_1542 + call ResetPikachuAsleep call Func_fcff2 ret @@ -1652,7 +1652,7 @@ PikachuBillsHouseCheck: ; fd8ee (3f:58ee) ld a, [wCurMap] cp BILLS_HOUSE ret nz - call Func_1542 + call ResetPikachuAsleep ret Pikachu_LoadCurrentMapViewUpdateSpritesAndDelay3: ; fd8f8 (3f:58f8) diff --git a/home.asm b/home.asm index 5f924a40..6fb3e08b 100644 --- a/home.asm +++ b/home.asm @@ -477,7 +477,7 @@ HandlePartyMenuInput:: ; 1226 (0:1226) ld [wWhichPokemon], a callab IsThisPartymonStarterPikachu_Party ; 3f:4e18 jr nc, .asm_1258 - call Func_154a + call CheckPikachuAsleep jr nz, .asm_128f .asm_1258 pop af diff --git a/home/overworld.asm b/home/overworld.asm index 3a9708d9..bc7ae029 100644 --- a/home/overworld.asm +++ b/home/overworld.asm @@ -1222,7 +1222,7 @@ CollisionCheckOnLand:: ; 0a1c (0:0a1c) ; if no sprite collision cp $f jr nz,.collision - call Func_154a + call CheckPikachuAsleep jr nz,.collision ld a,[hJoyHeld] and $2 diff --git a/home/pikachu.asm b/home/pikachu.asm index 5239873c..9e0ab541 100755 --- a/home/pikachu.asm +++ b/home/pikachu.asm @@ -30,21 +30,21 @@ Func_152d:: ; 152d (0:152d) pop hl ret -Func_153a:: ; 153a (0:153a) +SetPikachuAsleep:: ; 153a (0:153a) push hl ld hl, wPikachuOverworldStateFlags set 1, [hl] pop hl ret -Func_1542:: ; 1542 (0:1542) +ResetPikachuAsleep:: ; 1542 (0:1542) push hl ld hl, wPikachuOverworldStateFlags res 1, [hl] pop hl ret -Func_154a:: ; 154a (0:154a) +CheckPikachuAsleep:: ; 154a (0:154a) push hl ld hl, wPikachuOverworldStateFlags bit 1, [hl] diff --git a/main.asm b/main.asm index 3ba53669..33332dff 100755 --- a/main.asm +++ b/main.asm @@ -746,7 +746,6 @@ INCLUDE "data/mapObjects/lavendertown.asm" LavenderTownBlocks: INCBIN "maps/lavendertown.blk" ViridianPokecenterBlocks: -PewterPokecenterBlocks: CeruleanPokecenterBlocks: VermilionPokecenterBlocks: SaffronPokecenterBlocks: @@ -1059,7 +1058,9 @@ Museum1FBlocks: INCBIN "maps/museum1f.blk" Museum2FBlocks: INCBIN "maps/museum2f.blk" - dr $5c064,$5c090 +PewterPokecenterBlocks: +INCBIN "maps/pewterpokecenter.blk" + dr $5c080,$5c090 ViridianForestEntranceBlocks: ViridianForestExitBlocks: Route2GateBlocks: @@ -1083,7 +1084,12 @@ INCLUDE "scripts/pewtergym.asm" INCLUDE "data/mapObjects/pewtergym.asm" PewterGymBlocks: INCBIN "maps/pewtergym.blk" - dr $5c46e,$5d485 + +INCLUDE "data/mapHeaders/pewterpokecenter.asm" +INCLUDE "scripts/pewterpokecenter.asm" +INCLUDE "data/mapObjects/pewterpokecenter.asm" + + dr $5c4f5,$5d485 INCLUDE "data/mapHeaders/viridianforestexit.asm" INCLUDE "scripts/viridianforestexit.asm" diff --git a/scripts/billshouse2.asm b/scripts/billshouse2.asm index 48205029..6f62a79f 100755 --- a/scripts/billshouse2.asm +++ b/scripts/billshouse2.asm @@ -87,7 +87,7 @@ Func_f24ae: ; f24ae ld a, [wCurMap] cp BILLS_HOUSE jr nz, .asm_f24d2 - call Func_154a + call CheckPikachuAsleep jr z, .asm_f24d2 ld a, [W_BILLSHOUSECURSCRIPT] cp $5 @@ -120,7 +120,7 @@ Func_f24d5: ld a, $1 ld [wWhichEmotionBubble], a predef EmotionBubble - call Func_153a + call SetPikachuAsleep callab InitializePikachuTextID ret diff --git a/scripts/pewterpokecenter.asm b/scripts/pewterpokecenter.asm index 46d4d509..90f5e2b9 100755 --- a/scripts/pewterpokecenter.asm +++ b/scripts/pewterpokecenter.asm @@ -1,12 +1,17 @@ PewterPokecenterScript: ; 5c587 (17:4587) + ld hl, wPreventBlackout + set 7, [hl] call Serial_TryEstablishingExternallyClockedConnection - jp EnableAutoTextBoxDrawing + call EnableAutoTextBoxDrawing + ret PewterPokecenterTextPointers: ; 5c58d (17:458d) dw PewterPokecenterText1 dw PewterPokecenterText2 dw PewterPokecenterText3 dw PewterPokecenterText4 + dw PewterPokecenterText5 + dw PewterPokecenterText6 PewterPokecenterText1: ; 5c595 (17:4595) db $ff @@ -17,69 +22,18 @@ PewterPokecenterText2: ; 5c596 (17:4596) PewterPokecenterText3: ; 5c59b (17:459b) TX_ASM - ld a, $1 - ld [wDoNotWaitForButtonPressAfterDisplayingText], a - ld hl, PewterPokecenterText5 - call PrintText - ld a, $ff - call PlaySound - ld c, 32 - call DelayFrames - ld hl, JigglypuffFacingDirections - ld de, wJigglypuffFacingDirections - ld bc, JigglypuffFacingDirectionsEnd - JigglypuffFacingDirections - call CopyData - - ld a, [wSpriteStateData1 + 3 * $10 + $2] - ld hl, wJigglypuffFacingDirections -.findMatchingFacingDirectionLoop - cp [hl] - inc hl - jr nz, .findMatchingFacingDirectionLoop - dec hl - push hl - ld c, BANK(Music_JigglypuffSong) - ld a, MUSIC_JIGGLYPUFF_SONG - call PlayMusic - pop hl -.loop - ld a, [hl] - ld [wSpriteStateData1 + 3 * $10 + $2], a - -; rotate the array - push hl - ld hl, wJigglypuffFacingDirections - ld de, wJigglypuffFacingDirections - 1 - ld bc, JigglypuffFacingDirectionsEnd - JigglypuffFacingDirections - call CopyData - ld a, [wJigglypuffFacingDirections - 1] - ld [wJigglypuffFacingDirections + 3], a - pop hl - - ld c, 24 - call DelayFrames - - ld a, [wChannelSoundIDs] - ld b, a - ld a, [wChannelSoundIDs + CH1] - or b - jr nz, .loop - - ld c, 48 - call DelayFrames - call PlayDefaultMusic + callba Func_f1da4 jp TextScriptEnd -PewterPokecenterText5: ; 5c603 (17:4603) - TX_FAR _PewterPokecenterText5 - db "@" - -JigglypuffFacingDirections: ; 5c608 (17:4608) - db $30 | SPRITE_FACING_DOWN - db $30 | SPRITE_FACING_LEFT - db $30 | SPRITE_FACING_UP - db $30 | SPRITE_FACING_RIGHT -JigglypuffFacingDirectionsEnd: - PewterPokecenterText4: ; 5c60c (17:460c) db $f6 + +PewterPokecenterText5: ; 5c603 (17:4603) + TX_ASM + callba Func_f1d98 + jp TextScriptEnd + +PewterPokecenterText6: + TX_ASM + callab Func_f0f12 + jp TextScriptEnd diff --git a/wram.asm b/wram.asm index 64a394ed..821c4957 100755 --- a/wram.asm +++ b/wram.asm @@ -960,6 +960,8 @@ wPlayerSpinWhileMovingUpOrDownAnimMaxY:: ; cd3e wHiddenObjectFunctionRomBank:: ; cd3e wTrainerEngageDistance:: ; cd3e + +wJigglypuffFacingDirections2:: ; cd3e ds 1 wHUDGraphicsTiles:: ; cd3f @@ -1040,6 +1042,8 @@ wHoFTeamNo:: ; cd42 wSlotMachineWheel1MiddleTile:: ; cd42 wFieldMovesLeftmostXCoord:: ; cd42 + +wcd42:: ; cd42 ds 1 wLastFieldMoveID:: ; cd43 -- cgit v1.2.3 From 873ab5ace17d2c4d68a98e5d3ec2f6b0b248b44e Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Sun, 29 May 2016 16:49:54 -0400 Subject: Mt Moon B1F --- data/map_header_banks.asm | 2 +- data/map_header_pointers.asm | 2 +- main.asm | 9 ++++++++- scripts/mtmoon1.asm | 19 +++++++------------ 4 files changed, 17 insertions(+), 15 deletions(-) diff --git a/data/map_header_banks.asm b/data/map_header_banks.asm index c840cd82..c51722d6 100644 --- a/data/map_header_banks.asm +++ b/data/map_header_banks.asm @@ -59,7 +59,7 @@ MapHeaderBanks:: ; fc3e4 (3f:43e4) db BANK(PewterMart_h) db BANK(PewterHouse2_h) db BANK(PewterPokecenter_h) - db $12 ; db BANK(MtMoon1_h) + db BANK(MtMoon1_h) db $14 ; db BANK(MtMoon2_h) db $12 ; db BANK(MtMoon3_h) db $07 ; db BANK(CeruleanHouseTrashed_h) diff --git a/data/map_header_pointers.asm b/data/map_header_pointers.asm index cc700617..10a0216f 100644 --- a/data/map_header_pointers.asm +++ b/data/map_header_pointers.asm @@ -59,7 +59,7 @@ MapHeaderPointers:: ; fc1f2 (3f:41f2) dw PewterMart_h dw PewterHouse2_h dw PewterPokecenter_h - dw $5953 ; dw MtMoon1_h + dw MtMoon1_h dw $5a78 ; dw MtMoon2_h ;id=60 dw $5c7e ; dw MtMoon3_h dw $4ec3 ; dw CeruleanHouseTrashed_h diff --git a/main.asm b/main.asm index 33332dff..fadf6417 100755 --- a/main.asm +++ b/main.asm @@ -786,7 +786,14 @@ INCLUDE "scripts/redshouse1f.asm" INCLUDE "data/mapObjects/redshouse1f.asm" RedsHouse1FBlocks: INCBIN "maps/redshouse1f.blk" - dr $48157,$4a540 + dr $48157,$49953 + +INCLUDE "data/mapHeaders/mtmoon1.asm" +INCLUDE "scripts/mtmoon1.asm" +INCLUDE "data/mapObjects/mtmoon1.asm" +MtMoon1Blocks: +INCBIN "maps/mtmoon1.blk" + dr $49c7e,$4a540 SECTION "bank13",ROMX,BANK[$13] diff --git a/scripts/mtmoon1.asm b/scripts/mtmoon1.asm index 4a5eeae3..a649481c 100755 --- a/scripts/mtmoon1.asm +++ b/scripts/mtmoon1.asm @@ -97,42 +97,37 @@ MtMoon1TrainerHeader7: ; 49a45 (12:5a45) MtMoon1Text1: ; 49a52 (12:5a52) TX_ASM ld hl, MtMoon1TrainerHeader0 - call TalkToTrainer - jp TextScriptEnd + jr MtMoon1TalkToTrainer MtMoon1Text2: ; 49a5c (12:5a5c) TX_ASM ld hl, MtMoon1TrainerHeader2 - call TalkToTrainer - jp TextScriptEnd + jr MtMoon1TalkToTrainer MtMoon1Text3: ; 49a66 (12:5a66) TX_ASM ld hl, MtMoon1TrainerHeader3 - call TalkToTrainer - jp TextScriptEnd + jr MtMoon1TalkToTrainer MtMoon1Text4: ; 49a70 (12:5a70) TX_ASM ld hl, MtMoon1TrainerHeader4 - call TalkToTrainer - jp TextScriptEnd + jr MtMoon1TalkToTrainer MtMoon1Text5: ; 49a7a (12:5a7a) TX_ASM ld hl, MtMoon1TrainerHeader5 - call TalkToTrainer - jp TextScriptEnd + jr MtMoon1TalkToTrainer MtMoon1Text6: ; 49a84 (12:5a84) TX_ASM ld hl, MtMoon1TrainerHeader6 - call TalkToTrainer - jp TextScriptEnd + jr MtMoon1TalkToTrainer MtMoon1Text7: ; 49a8e (12:5a8e) TX_ASM ld hl, MtMoon1TrainerHeader7 +MtMoon1TalkToTrainer: call TalkToTrainer jp TextScriptEnd -- cgit v1.2.3 From f17f3f1a06ce8c28f044cdb04c1d6355efc01a8f Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Sun, 29 May 2016 16:58:17 -0400 Subject: Mt Moon B2F --- data/map_header_banks.asm | 2 +- data/map_header_pointers.asm | 2 +- main.asm | 10 +++++++++- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/data/map_header_banks.asm b/data/map_header_banks.asm index c51722d6..dd088a1b 100644 --- a/data/map_header_banks.asm +++ b/data/map_header_banks.asm @@ -60,7 +60,7 @@ MapHeaderBanks:: ; fc3e4 (3f:43e4) db BANK(PewterHouse2_h) db BANK(PewterPokecenter_h) db BANK(MtMoon1_h) - db $14 ; db BANK(MtMoon2_h) + db BANK(MtMoon2_h) db $12 ; db BANK(MtMoon3_h) db $07 ; db BANK(CeruleanHouseTrashed_h) db $07 ; db BANK(CeruleanHouse1_h) diff --git a/data/map_header_pointers.asm b/data/map_header_pointers.asm index 10a0216f..0e5149e3 100644 --- a/data/map_header_pointers.asm +++ b/data/map_header_pointers.asm @@ -60,7 +60,7 @@ MapHeaderPointers:: ; fc1f2 (3f:41f2) dw PewterHouse2_h dw PewterPokecenter_h dw MtMoon1_h - dw $5a78 ; dw MtMoon2_h ;id=60 + dw MtMoon2_h ;id=60 dw $5c7e ; dw MtMoon3_h dw $4ec3 ; dw CeruleanHouseTrashed_h dw $4f34 ; dw CeruleanHouse1_h diff --git a/main.asm b/main.asm index fadf6417..a8c063ba 100755 --- a/main.asm +++ b/main.asm @@ -909,7 +909,15 @@ INCLUDE "scripts/route24.asm" INCLUDE "scripts/route25.asm" ; victoryroad2 - dr $517cc,$52060 + dr $517cc,$51a78 + +INCLUDE "data/mapHeaders/mtmoon2.asm" +INCLUDE "scripts/mtmoon2.asm" +INCLUDE "data/mapObjects/mtmoon2.asm" +MtMoon2Blocks: +INCBIN "maps/mtmoon2.blk" + + dr $51b97,$52060 Mansion2Script_Switches: dr $52060,$522a3 Mansion3Script_Switches: -- cgit v1.2.3 From b8cced19fce2a212f5cb205039382a63821a3762 Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Sun, 29 May 2016 20:52:05 -0400 Subject: Mt Moon B2F --- constants/event_macros.asm | 32 ++- constants/hide_show_constants.asm | 34 +-- data/mapObjects/mtmoon3.asm | 15 +- data/map_header_banks.asm | 2 +- data/map_header_pointers.asm | 2 +- macros.asm | 2 +- main.asm | 10 +- scripts/beach_house2.asm | 4 +- scripts/mtmoon3.asm | 562 ++++++++++++++++++++++++++++---------- 9 files changed, 486 insertions(+), 177 deletions(-) diff --git a/constants/event_macros.asm b/constants/event_macros.asm index 5eb73147..bf0a95b5 100644 --- a/constants/event_macros.asm +++ b/constants/event_macros.asm @@ -452,6 +452,36 @@ CheckEitherEventSet: MACRO ENDC ENDM +CheckEitherEventSetReuseA: MACRO + IF event_byte != ((\1) / 8) +event_byte = ((\1) / 8) + ld a, [wEventFlags + event_byte] + ENDC + IF ((\1) / 8) == ((\2) / 8) + ld a, [wEventFlags + ((\1) / 8)] + and (1 << ((\1) % 8)) | (1 << ((\2) % 8)) + ELSE + ; This case doesn't happen in the original ROM. + IF ((\1) % 8) == ((\2) % 8) + push hl + ld a, [wEventFlags + ((\1) / 8)] + ld hl, wEventFlags + ((\2) / 8) + or [hl] + bit ((\1) % 8), a + pop hl + ELSE + push bc + ld a, [wEventFlags + ((\1) / 8)] + and (1 << ((\1) % 8)) + ld b, a + ld a, [wEventFlags + ((\2) / 8)] + and (1 << ((\2) % 8)) + or b + pop bc + ENDC + ENDC + ENDM + ; for handling fixed event bits when events are inserted/removed ;\1 = event index ;\2 = fixed flag bit @@ -459,4 +489,4 @@ AdjustEventBit: MACRO IF ((\1) % 8) != (\2) add ((\1) % 8) - (\2) ENDC - ENDM \ No newline at end of file + ENDM diff --git a/constants/hide_show_constants.asm b/constants/hide_show_constants.asm index ffc4ea08..6fc52187 100755 --- a/constants/hide_show_constants.asm +++ b/constants/hide_show_constants.asm @@ -114,27 +114,27 @@ const_value SET $43 ; replace the tower rockets with jessie/james const HS_VIRIDIAN_FOREST_ITEM_1 ; 64 X const HS_VIRIDIAN_FOREST_ITEM_2 ; 65 X const HS_VIRIDIAN_FOREST_ITEM_3 ; 66 X - const HS_MT_MOON_1_ITEM_1 ; 67 X - const HS_MT_MOON_1_ITEM_2 ; 68 X + const HS_MT_MOON_1_ITEM_1 ; 67 + const HS_MT_MOON_1_ITEM_2 ; 68 const HS_MT_MOON_1_ITEM_3 ; 69 X const HS_MT_MOON_1_ITEM_4 ; 6A X const HS_MT_MOON_1_ITEM_5 ; 6B X const HS_MT_MOON_1_ITEM_6 ; 6C X - const HS_MT_MOON_3_FOSSIL_1 ; 6D - const HS_MT_MOON_3_FOSSIL_2 ; 6E - const HS_MT_MOON_3_ITEM_1 ; 6F X - const HS_MT_MOON_3_ITEM_2 ; 70 X - const HS_SS_ANNE_2_RIVAL ; 71 - const HS_SS_ANNE_8_ITEM ; 72 X - const HS_SS_ANNE_9_ITEM_1 ; 73 X - const HS_SS_ANNE_9_ITEM_2 ; 74 X - const HS_SS_ANNE_10_ITEM_1 ; 75 X - const HS_SS_ANNE_10_ITEM_2 ; 76 X - const HS_SS_ANNE_10_ITEM_3 ; 77 X - const HS_VICTORY_ROAD_3_ITEM_1 ; 78 X - const HS_VICTORY_ROAD_3_ITEM_2 ; 79 X - -const_value SET $7c ; idk anymore lol + const HS_MT_MOON_JESSIE ; 6D + const HS_MT_MOON_JAMES ; 6E + const HS_MT_MOON_3_FOSSIL_1 ; 6F X + const HS_MT_MOON_3_FOSSIL_2 ; 70 X + const HS_MT_MOON_3_ITEM_1 ; 71 + const HS_MT_MOON_3_ITEM_2 ; 72 X + const HS_SS_ANNE_2_RIVAL ; 73 X + const HS_SS_ANNE_8_ITEM ; 74 X + const HS_SS_ANNE_9_ITEM_1 ; 75 X + const HS_SS_ANNE_9_ITEM_2 ; 76 X + const HS_SS_ANNE_10_ITEM_1 ; 77 X + const HS_SS_ANNE_10_ITEM_2 ; 78 X + const HS_SS_ANNE_10_ITEM_3 ; 79 X + const HS_VICTORY_ROAD_3_ITEM_1 ; 7A + const HS_VICTORY_ROAD_3_ITEM_2 ; 7B const HS_VICTORY_ROAD_3_BOULDER ; 7C X const HS_ROCKET_HIDEOUT_1_ITEM_1 ; 7D X const HS_ROCKET_HIDEOUT_1_ITEM_2 ; 7E X diff --git a/data/mapObjects/mtmoon3.asm b/data/mapObjects/mtmoon3.asm index 4f8f911c..4a9b1946 100755 --- a/data/mapObjects/mtmoon3.asm +++ b/data/mapObjects/mtmoon3.asm @@ -9,16 +9,17 @@ MtMoon3Object: ; 0x49fdb (size=102) db $0 ; signs - db $9 ; objects + db $a ; objects object SPRITE_BLACK_HAIR_BOY_2, $c, $8, STAY, RIGHT, $1, OPP_SUPER_NERD, $2 - object SPRITE_ROCKET, $b, $10, STAY, DOWN, $2, OPP_ROCKET, $1 + object SPRITE_JESSIE, $9, $3, STAY, LEFT, $2 object SPRITE_ROCKET, $f, $16, STAY, DOWN, $3, OPP_ROCKET, $2 object SPRITE_ROCKET, $1d, $b, STAY, UP, $4, OPP_ROCKET, $3 - object SPRITE_ROCKET, $1d, $11, STAY, LEFT, $5, OPP_ROCKET, $4 - object SPRITE_OMANYTE, $c, $6, STAY, NONE, $6 ; person - object SPRITE_OMANYTE, $d, $6, STAY, NONE, $7 ; person - object SPRITE_BALL, $19, $15, STAY, NONE, $8, HP_UP - object SPRITE_BALL, $1d, $5, STAY, NONE, $9, TM_01 + object SPRITE_ROCKET, $1d, $11, STAY, LEFT, $5, OPP_ROCKET, $1 + object SPRITE_JAMES, $9, $4, STAY, LEFT, $6 + object SPRITE_OMANYTE, $c, $6, STAY, NONE, $7 ; person + object SPRITE_OMANYTE, $d, $6, STAY, NONE, $8 ; person + object SPRITE_BALL, $19, $15, STAY, NONE, $9, HP_UP + object SPRITE_BALL, $1d, $5, STAY, NONE, $a, TM_01 ; warp-to EVENT_DISP MT_MOON_3_WIDTH, $9, $19 ; MT_MOON_2 diff --git a/data/map_header_banks.asm b/data/map_header_banks.asm index dd088a1b..90ca27f9 100644 --- a/data/map_header_banks.asm +++ b/data/map_header_banks.asm @@ -61,7 +61,7 @@ MapHeaderBanks:: ; fc3e4 (3f:43e4) db BANK(PewterPokecenter_h) db BANK(MtMoon1_h) db BANK(MtMoon2_h) - db $12 ; db BANK(MtMoon3_h) + db BANK(MtMoon3_h) db $07 ; db BANK(CeruleanHouseTrashed_h) db $07 ; db BANK(CeruleanHouse1_h) db $17 ; db BANK(CeruleanPokecenter_h) diff --git a/data/map_header_pointers.asm b/data/map_header_pointers.asm index 0e5149e3..37357204 100644 --- a/data/map_header_pointers.asm +++ b/data/map_header_pointers.asm @@ -61,7 +61,7 @@ MapHeaderPointers:: ; fc1f2 (3f:41f2) dw PewterPokecenter_h dw MtMoon1_h dw MtMoon2_h ;id=60 - dw $5c7e ; dw MtMoon3_h + dw MtMoon3_h dw $4ec3 ; dw CeruleanHouseTrashed_h dw $4f34 ; dw CeruleanHouse1_h dw $44f5 ; dw CeruleanPokecenter_h diff --git a/macros.asm b/macros.asm index 29ca12f3..6ee88391 100644 --- a/macros.asm +++ b/macros.asm @@ -316,7 +316,7 @@ TX_BUTTON_SOUND: MACRO ENDM TX_SFX_ITEM EQUS "db $0b" -TX_SFX_ITEM2 EQUS "db $0d" +TX_WAIT_BUTTON EQUS "db $0d" TX_SFX_CONGRATS EQUS "db $10" TX_SFX_KEY_ITEM EQUS "db $11" diff --git a/main.asm b/main.asm index a8c063ba..8b3569e3 100755 --- a/main.asm +++ b/main.asm @@ -793,7 +793,15 @@ INCLUDE "scripts/mtmoon1.asm" INCLUDE "data/mapObjects/mtmoon1.asm" MtMoon1Blocks: INCBIN "maps/mtmoon1.blk" - dr $49c7e,$4a540 + +INCLUDE "data/mapHeaders/mtmoon3.asm" +INCLUDE "scripts/mtmoon3.asm" +INCLUDE "data/mapObjects/mtmoon3.asm" +MtMoon3Blocks: +INCBIN "maps/mtmoon3.blk" + +MtMoon3Script_4a325: ; pikachu-related function? + dr $4a325,$4a540 SECTION "bank13",ROMX,BANK[$13] diff --git a/scripts/beach_house2.asm b/scripts/beach_house2.asm index 918334ab..a2dd2114 100755 --- a/scripts/beach_house2.asm +++ b/scripts/beach_house2.asm @@ -24,10 +24,10 @@ Func_f23d0: ; f23d0 Text_f240c: TX_FAR _BeachHousePrinterText5 - TX_SFX_ITEM2 + TX_WAIT_BUTTON db "@" Text_f2412: TX_FAR _BeachHousePrinterText6 - TX_SFX_ITEM2 + TX_WAIT_BUTTON db "@" diff --git a/scripts/mtmoon3.asm b/scripts/mtmoon3.asm index b3a994e2..1de3445d 100755 --- a/scripts/mtmoon3.asm +++ b/scripts/mtmoon3.asm @@ -1,6 +1,6 @@ MtMoon3Script: ; 49d0b (12:5d0b) call EnableAutoTextBoxDrawing - ld hl, MtMoon3TrainerHeader0 + ld hl, MtMoon3TrainerHeaders ld de, MtMoon3ScriptPointers ld a, [W_MTMOON3CURSCRIPT] call ExecuteCurMapScriptInTable @@ -37,13 +37,23 @@ CoordsData_49d37: ; 49d37 (12:5d37) db $08,$0E db $FF -MtMoon3Script_49d58: ; 49d58 (12:5d58) +MtMoon3Script_49cd7: ; 49d58 (12:5d58) + CheckAndResetEvent EVENT_57E + call nz, MtMoon3Script_49cec xor a ld [wJoyIgnore], a +MtMoon3Script_49ce5: ld [W_MTMOON3CURSCRIPT], a ld [W_CURMAPSCRIPT], a ret +MtMoon3Script_49cec: + ld a, HS_MT_MOON_JESSIE + call MtMoon3Script_49f93 + ld a, HS_MT_MOON_JAMES + call MtMoon3Script_49f93 + ret + MtMoon3ScriptPointers: ; 49d63 (12:5d63) dw MtMoon3Script0 dw DisplayEnemyTrainerTextAndStartBattle @@ -51,23 +61,41 @@ MtMoon3ScriptPointers: ; 49d63 (12:5d63) dw MtMoon3Script3 dw MtMoon3Script4 dw MtMoon3Script5 + dw MtMoon3Script6 + dw MtMoon3Script7 + dw MtMoon3Script8 + dw MtMoon3Script9 + dw MtMoon3Script10 + dw MtMoon3Script11 + dw MtMoon3Script12 + dw MtMoon3Script13 + dw MtMoon3Script14 + dw MtMoon3Script15 MtMoon3Script0: ; 49d6f (12:5d6f) + CheckEitherEventSet EVENT_GOT_DOME_FOSSIL, EVENT_GOT_HELIX_FOSSIL + call z, MtMoon3Script_49d28 + CheckEvent EVENT_BEAT_MT_MOON_3_TRAINER_0 + call z, MtMoon3Script_49e15 + ret + +MtMoon3Script_49d28: CheckEvent EVENT_BEAT_MT_MOON_EXIT_SUPER_NERD - jp nz, MtMoon3Script_49d91 + jp nz, .asm_49d4b ld a, [wYCoord] cp $8 - jp nz, MtMoon3Script_49d91 + jp nz, .asm_49d4b ld a, [wXCoord] cp $d - jp nz, MtMoon3Script_49d91 + jp nz, .asm_49d4b xor a ld [hJoyHeld], a ld a, $1 ld [hSpriteIndexOrTextID], a - jp DisplayTextID + call DisplayTextID + ret -MtMoon3Script_49d91: ; 49d91 (12:5d91) +.asm_49d4b CheckEitherEventSet EVENT_GOT_DOME_FOSSIL, EVENT_GOT_HELIX_FOSSIL jp z, CheckFightingMapTrainers ret @@ -75,57 +103,93 @@ MtMoon3Script_49d91: ; 49d91 (12:5d91) MtMoon3Script3: ; 49d9a (12:5d9a) ld a, [wIsInBattle] cp $ff - jp z, MtMoon3Script_49d58 + jp z, MtMoon3Script_49cd7 call UpdateSprites call Delay3 SetEvent EVENT_BEAT_MT_MOON_EXIT_SUPER_NERD xor a ld [wJoyIgnore], a ld a, $0 - ld [W_MTMOON3CURSCRIPT], a - ld [W_CURMAPSCRIPT], a + call MtMoon3Script_49ce5 ret MtMoon3Script4: ; 49dba (12:5dba) ld a, $1 ld [H_SPRITEINDEX], a call SetSpriteMovementBytesToFF - ld hl, CoordsData_49dea + ld hl, CoordsData_49dc7 + call ArePlayerCoordsInArray + jr c, .asm_49da8 + ld hl, CoordsData_49dc0 call ArePlayerCoordsInArray - jr c, .asm_49dd7 - ld hl, CoordsData_49df1 + jr c, .asm_49db0 + ld hl, CoordsData_49dd5 call ArePlayerCoordsInArray - jp nc, CheckFightingMapTrainers - ld de, MovementData_49df9 - jr .asm_49dda -.asm_49dd7 - ld de, MovementData_49df8 -.asm_49dda + jr c, .asm_49d9b + ld hl, CoordsData_49dce + call ArePlayerCoordsInArray + jr c, .asm_49da3 + jp CheckFightingMapTrainers + +.asm_49d9b + ld b, SPRITE_FACING_LEFT + ld hl, PikachuMovementData_49dd8 + call MtMoon3Script_4a325 +.asm_49da3 + ld de, MovementData_49ddd + jr .asm_49db3 + +.asm_49da8 + ld b, SPRITE_FACING_RIGHT + ld hl, PikachuMovementData_49dca + call MtMoon3Script_4a325 +.asm_49db0 + ld de, MovementData_49ddc +.asm_49db3 ld a, $1 ld [H_SPRITEINDEX], a call MoveSprite ld a, $5 - ld [W_MTMOON3CURSCRIPT], a - ld [W_CURMAPSCRIPT], a + call MtMoon3Script_49ce5 ret -CoordsData_49dea: ; 49dea (12:5dea) +CoordsData_49dc0: db $07,$0C db $06,$0B db $05,$0C db $FF -CoordsData_49df1: ; 49df1 (12:5df1) +CoordsData_49dc7: + db $07,$0C + db $FF + +PikachuMovementData_49dca: + db $00 + db $35 + db $33 + db $3f + +CoordsData_49dce: db $07,$0D db $06,$0E db $05,$0E db $FF -MovementData_49df8: ; 49df8 (12:5df8) - db NPC_MOVEMENT_RIGHT +CoordsData_49dd5: + db $07,$0D + db $FF -MovementData_49df9: ; 49df9 (12:5df9) - db NPC_MOVEMENT_UP,$FF +PikachuMovementData_49dd8: + db $00 + db $35 + db $34 + db $3f + +MovementData_49ddc: ; 49df8 (12:5df8) + db NPC_MOVEMENT_RIGHT +MovementData_49ddd: ; 49df9 (12:5df9) + db NPC_MOVEMENT_UP + db $FF MtMoon3Script5: ; 49dfb (12:5dfb) ld a, [wd730] @@ -135,23 +199,213 @@ MtMoon3Script5: ; 49dfb (12:5dfb) ld [wJoyIgnore], a ld a, $1 ld [wDoNotWaitForButtonPressAfterDisplayingText], a - ld a, $a + ld a, $b ld [hSpriteIndexOrTextID], a call DisplayTextID - CheckEvent EVENT_GOT_DOME_FOSSIL + CheckEvent EVENT_GOT_HELIX_FOSSIL jr z, .asm_49e1d - ld a, HS_MT_MOON_3_FOSSIL_2 + ld a, HS_MT_MOON_3_FOSSIL_1 jr .asm_49e1f .asm_49e1d - ld a, HS_MT_MOON_3_FOSSIL_1 + ld a, HS_MT_MOON_3_FOSSIL_2 .asm_49e1f ld [wMissableObjectIndex], a predef HideObject xor a ld [wJoyIgnore], a ld a, $0 - ld [W_MTMOON3CURSCRIPT], a - ld [W_CURMAPSCRIPT], a + call MtMoon3Script_49ce5 + ret + +MtMoon3Script_49e15: + ld a, [wXCoord] + cp $3 + ret nz + ld a, [wYCoord] + cp $5 + ret nz + call StopAllMusic + ld c, BANK(Music_JessieAndJames) + ld a, MUSIC_JESSIE_AND_JAMES + call PlayMusic + xor a + ld [hJoyHeld], a + ld a, $FF ^ (A_BUTTON | B_BUTTON) + ld [wJoyIgnore], a + ld a, HS_MT_MOON_JESSIE + call MtMoon3Script_49f84 + ld a, HS_MT_MOON_JAMES + call MtMoon3Script_49f84 + ld a, $1 + ld [wDoNotWaitForButtonPressAfterDisplayingText], a + ld a, $c + ld [hSpriteIndexOrTextID], a + call DisplayTextID + xor a + ld [wDoNotWaitForButtonPressAfterDisplayingText], a + ld a, $1 + ld [wSimulatedJoypadStatesIndex], a + ld a, D_UP + ld [wSimulatedJoypadStatesEnd], a + call StartSimulatingJoypadStates + ld a, $ff + ld [wJoyIgnore], a + ld a, $6 + call MtMoon3Script_49ce5 + ret + +MovementData_f9e65: + db $06 +MovementData_f9e66: + db $06 + db $06 + db $06 + db $06 + db $06 + db $FF + +MtMoon3Script6: + ld a, $ff + ld [wJoyIgnore], a + ld a, [wSimulatedJoypadStatesIndex] + and a + ret nz + call Delay3 + ld a, $2 + ld [H_SPRITEINDEX], a + ld de, MovementData_f9e65 + call MoveSprite + ld a, $ff + ld [wJoyIgnore], a + ld a, $7 + call MtMoon3Script_49ce5 + ret + +MtMoon3Script7: + ld a, $ff + ld [wJoyIgnore], a + ld a, [wd730] + bit 0, a + ret nz +MtMoon3Script8: + ld a, $2 + ld [wSpriteStateData1 + 2 * $10 + 1], a + ld a, SPRITE_FACING_DOWN + ld [wSpriteStateData1 + 2 * $10 + 9], a +MtMoon3Script9: + ld a, $6 + ld [H_SPRITEINDEX], a + ld de, MovementData_f9e66 + call MoveSprite + ld a, $ff + ld [wJoyIgnore], a + ld a, $a + call MtMoon3Script_49ce5 + ret + +MtMoon3Script10: + ld a, $ff + ld [wJoyIgnore], a + ld a, [wd730] + bit 0, a + ret nz +MtMoon3Script11: + ld a, $2 + ld [wSpriteStateData1 + 6 * $10 + 1], a + ld a, SPRITE_FACING_LEFT + ld [wSpriteStateData1 + 6 * $10 + 9], a + call Delay3 + ld a, $FF ^ (A_BUTTON | B_BUTTON) + ld [wJoyIgnore], a + ld a, $d + ld [hSpriteIndexOrTextID], a + call DisplayTextID +MtMoon3Script12: + ld hl, wd72d + set 6, [hl] + set 7, [hl] + ld hl, MtMoon3JessieJamesEndBattleText + ld de, MtMoon3JessieJamesEndBattleText + call SaveEndBattleTextPointers + ld a, OPP_ROCKET + ld [wCurOpponent], a + ld a, $2a + ld [wTrainerNo], a + xor a + ld [hJoyHeld], a + ld [wJoyIgnore], a + SetEvent EVENT_57E + ld a, $d + call MtMoon3Script_49ce5 + ret + +MtMoon3Script13: + ld a, $ff + ld [wJoyIgnore], a + ld a, [wIsInBattle] + cp $ff + jp z, MtMoon3Script_49cd7 + ld a, $2 + ld [wSpriteStateData1 + 2 * $10 + 1], a + ld [wSpriteStateData1 + 6 * $10 + 1], a + xor a + ld [wSpriteStateData1 + 2 * $10 + 9], a + ld [wSpriteStateData1 + 6 * $10 + 9], a + ld a, $FF ^ (A_BUTTON | B_BUTTON) + ld [wJoyIgnore], a + ld a, $1 + ld [wDoNotWaitForButtonPressAfterDisplayingText], a + ld a, $e + ld [hSpriteIndexOrTextID], a + call DisplayTextID + xor a + ld [wDoNotWaitForButtonPressAfterDisplayingText], a + call StopAllMusic + ld c, BANK(Music_JessieAndJames) + ld a, MUSIC_JESSIE_AND_JAMES + call PlayMusic + ld a, $ff + ld [wJoyIgnore], a + ld a, $e + call MtMoon3Script_49ce5 + ret + +MtMoon3Script14: + ld a, $ff + ld [wJoyIgnore], a + call GBFadeOutToBlack + ld a, HS_MT_MOON_JESSIE + call MtMoon3Script_49f93 + ld a, HS_MT_MOON_JAMES + call MtMoon3Script_49f93 + call UpdateSprites + call Delay3 + call GBFadeInFromBlack + ld a, $f + call MtMoon3Script_49ce5 + ret + +MtMoon3Script15: + call PlayDefaultMusic + xor a + ld [hJoyHeld], a + ld [wJoyIgnore], a + SetEvent EVENT_BEAT_MT_MOON_3_TRAINER_0 + ResetEventReuseHL EVENT_57E + ld a, $0 + call MtMoon3Script_49ce5 + ret + +MtMoon3Script_49f84: + ld [wMissableObjectIndex], a + predef ShowObject + call UpdateSprites + call Delay3 + ret + +MtMoon3Script_49f93: + ld [wMissableObjectIndex], a + predef HideObject ret MtMoon3TextPointers: ; 49e34 (12:5e34) @@ -162,242 +416,258 @@ MtMoon3TextPointers: ; 49e34 (12:5e34) dw MtMoon3Text5 dw MtMoon3Text6 dw MtMoon3Text7 + dw MtMoon3Text8 dw PickUpItemText dw PickUpItemText - dw MtMoon3Text_49f99 - -MtMoon3TrainerHeaders: ; 49e48 (12:5e48) -MtMoon3TrainerHeader0: ; 49e48 (12:5e48) - dbEventFlagBit EVENT_BEAT_MT_MOON_3_TRAINER_0 - db ($4 << 4) ; trainer's view range - dwEventFlagAddress EVENT_BEAT_MT_MOON_3_TRAINER_0 - dw MtMoon3BattleText2 ; TextBeforeBattle - dw MtMoon3AfterBattleText2 ; TextAfterBattle - dw MtMoon3EndBattleText2 ; TextEndBattle - dw MtMoon3EndBattleText2 ; TextEndBattle - -MtMoon3TrainerHeader2: ; 49e54 (12:5e54) + dw MtMoon3Text11 + dw MtMoon3Text12 + dw MtMoon3Text13 + dw MtMoon3Text14 + +MtMoon3TrainerHeaders: +MtMoon3TrainerHeader0: dbEventFlagBit EVENT_BEAT_MT_MOON_3_TRAINER_2 - db ($4 << 4) ; trainer's view range + db ($4 << 4) dwEventFlagAddress EVENT_BEAT_MT_MOON_3_TRAINER_2 - dw MtMoon3BattleText3 ; TextBeforeBattle - dw MtMoon3AfterBattleText3 ; TextAfterBattle - dw MtMoon3EndBattleText3 ; TextEndBattle - dw MtMoon3EndBattleText3 ; TextEndBattle + dw MtMoon3BattleText3 + dw MtMoon3AfterBattleText3 + dw MtMoon3EndBattleText3 + dw MtMoon3EndBattleText3 -MtMoon3TrainerHeader3: ; 49e60 (12:5e60) +MtMoon3TrainerHeader1: dbEventFlagBit EVENT_BEAT_MT_MOON_3_TRAINER_3 - db ($4 << 4) ; trainer's view range + db ($4 << 4) dwEventFlagAddress EVENT_BEAT_MT_MOON_3_TRAINER_3 - dw MtMoon3BattleText4 ; TextBeforeBattle - dw MtMoon3AfterBattleText4 ; TextAfterBattle - dw MtMoon3EndBattleText4 ; TextEndBattle - dw MtMoon3EndBattleText4 ; TextEndBattle + dw MtMoon3BattleText4 + dw MtMoon3AfterBattleText4 + dw MtMoon3EndBattleText4 + dw MtMoon3EndBattleText4 -MtMoon3TrainerHeader4: ; 49e6c (12:5e6c) +MtMoon3TrainerHeader2: dbEventFlagBit EVENT_BEAT_MT_MOON_3_TRAINER_4 - db ($4 << 4) ; trainer's view range + db ($4 << 4) dwEventFlagAddress EVENT_BEAT_MT_MOON_3_TRAINER_4 - dw MtMoon3BattleText5 ; TextBeforeBattle - dw MtMoon3AfterBattleText5 ; TextAfterBattle - dw MtMoon3EndBattleText5 ; TextEndBattle - dw MtMoon3EndBattleText5 ; TextEndBattle + dw MtMoon3BattleText5 + dw MtMoon3AfterBattleText5 + dw MtMoon3EndBattleText5 + dw MtMoon3EndBattleText5 - db $ff + db $FF + +MtMoon3Text2: +MtMoon3Text6: + db "@" + +MtMoon3Text12: + TX_FAR _MtMoonJessieJamesText1 + TX_ASM + ld c, 10 + call DelayFrames + ld a, PLAYER_DIR_UP + ld [wPlayerMovingDirection], a + ld a, $0 + ld [wEmotionBubbleSpriteIndex], a + ld a, $0 + ld [wWhichEmotionBubble], a + predef EmotionBubble + ld c, 20 + call DelayFrames + jp TextScriptEnd + +MtMoon3Text13: + TX_FAR _MtMoonJessieJamesText2 + db "@" -MtMoon3Text1: ; 49e79 (12:5e79) +MtMoon3JessieJamesEndBattleText: + TX_FAR _MtMoonJessieJamesText3 + db "@" + +MtMoon3Text14: + TX_FAR _MtMoonJessieJamesText4 + TX_ASM + ld c, 64 + call DelayFrames + jp TextScriptEnd + +MtMoon3Text1: TX_ASM CheckEvent EVENT_BEAT_MT_MOON_EXIT_SUPER_NERD - jr z, .asm_49e8d - and $c0 - jr nz, .asm_49eb8 - ld hl, MtMoon3Text_49f8f + jr z, .asm_4a02f + and $81 ; CheckEitherEventSetReuseA EVENT_GOT_DOME_FOSSIL, EVENT_GOT_HELIX_FOSSIL + jr nz, .asm_4a057 + ld hl, MtMoon3Text_4a116 call PrintText - jr .asm_49ebe -.asm_49e8d - ld hl, MtMoon3Text_49f85 + jr .asm_4a05d + +.asm_4a02f + ld hl, MtMoon3Text_4a10c call PrintText ld hl, wd72d set 6, [hl] set 7, [hl] - ld hl, MtMoon3Text_49f8a - ld de, MtMoon3Text_49f8a + ld hl, MtMoon3SuperNerdEndBattleText + ld de, MtMoon3SuperNerdEndBattleText call SaveEndBattleTextPointers ld a, [H_SPRITEINDEX] ld [wSpriteIndex], a call EngageMapTrainer call InitBattleEnemyParameters ld a, $3 - ld [W_MTMOON3CURSCRIPT], a - ld [W_CURMAPSCRIPT], a - jr .asm_49ebe -.asm_49eb8 - ld hl, MtMoon3Text_49f94 + call MtMoon3Script_49ce5 + jr .asm_4a05d + +.asm_4a057 + ld hl, MtMoon3Text_4a11b call PrintText -.asm_49ebe +.asm_4a05d jp TextScriptEnd -MtMoon3Text2: ; 49ec1 (12:5ec1) +MtMoon3Text3: TX_ASM ld hl, MtMoon3TrainerHeader0 - call TalkToTrainer - jp TextScriptEnd + jr MtMoon3TalkToTrainer -MtMoon3Text3: ; 49ecb (12:5ecb) +MtMoon3Text4: TX_ASM - ld hl, MtMoon3TrainerHeader2 - call TalkToTrainer - jp TextScriptEnd + ld hl, MtMoon3TrainerHeader1 + jr MtMoon3TalkToTrainer -MtMoon3Text4: ; 49ed5 (12:5ed5) - TX_ASM - ld hl, MtMoon3TrainerHeader3 - call TalkToTrainer - jp TextScriptEnd -MtMoon3Text5: ; 49edf (12:5edf) +MtMoon3Text5: TX_ASM - ld hl, MtMoon3TrainerHeader4 + ld hl, MtMoon3TrainerHeader2 +MtMoon3TalkToTrainer: call TalkToTrainer jp TextScriptEnd -MtMoon3Text6: ; 49ee9 (12:5ee9) +MtMoon3Text7: TX_ASM ld a, $1 ld [wDoNotWaitForButtonPressAfterDisplayingText], a - ld hl, MtMoon3Text_49f24 + ld hl, MtMoon3Text_4a0ae call PrintText call YesNoChoice ld a, [wCurrentMenuItem] and a - jr nz, .asm_49f21 + jr nz, .asm_4a0ab lb bc, DOME_FOSSIL, 1 call GiveItem - jp nc, MtMoon3Script_49f76 - call MtMoon3Script_49f69 + jp nc, MtMoon3Script_4a0fd + call MtMoon3Script_4a0f0 ld a, HS_MT_MOON_3_FOSSIL_1 ld [wMissableObjectIndex], a predef HideObject SetEvent EVENT_GOT_DOME_FOSSIL ld a, $4 - ld [W_MTMOON3CURSCRIPT], a - ld [W_CURMAPSCRIPT], a -.asm_49f21 + call MtMoon3Script_49ce5 +.asm_4a0ab jp TextScriptEnd -MtMoon3Text_49f24: ; 49f24 (12:5f24) +MtMoon3Text_4a0ae: TX_FAR _MtMoon3Text_49f24 db "@" -MtMoon3Text7: ; 49f29 (12:5f29) +MtMoon3Text8: TX_ASM ld a, $1 ld [wDoNotWaitForButtonPressAfterDisplayingText], a - ld hl, MtMoon3Text_49f64 + ld hl, MtMoon3Text_4a0eb call PrintText call YesNoChoice ld a, [wCurrentMenuItem] and a - jr nz, .asm_49f61 + jr nz, .asm_4a0e8 lb bc, HELIX_FOSSIL, 1 call GiveItem - jp nc, MtMoon3Script_49f76 - call MtMoon3Script_49f69 + jp nc, MtMoon3Script_4a0fd + call MtMoon3Script_4a0f0 ld a, HS_MT_MOON_3_FOSSIL_2 ld [wMissableObjectIndex], a predef HideObject SetEvent EVENT_GOT_HELIX_FOSSIL ld a, $4 - ld [W_MTMOON3CURSCRIPT], a - ld [W_CURMAPSCRIPT], a -.asm_49f61 + call MtMoon3Script_49ce5 +.asm_4a0e8 jp TextScriptEnd -MtMoon3Text_49f64: ; 49f64 (12:5f64) +MtMoon3Text_4a0eb: TX_FAR _MtMoon3Text_49f64 db "@" -MtMoon3Script_49f69: ; 49f69 (12:5f69) - ld hl, MtMoon3Text_49f6f +MtMoon3Script_4a0f0: + ld hl, MtMoon3Text_4a0f6 jp PrintText -MtMoon3Text_49f6f: ; 49f6f (12:5f6f) +MtMoon3Text_4a0f6: TX_FAR _MtMoon3Text_49f6f - db $11, $d, "@" + TX_SFX_KEY_ITEM + TX_WAIT_BUTTON + db "@" -MtMoon3Script_49f76: ; 49f76 (12:5f76) - ld hl, MtMoon3Text_49f7f +MtMoon3Script_4a0fd: + ld hl, MtMoon3Text_4a106 call PrintText jp TextScriptEnd -MtMoon3Text_49f7f: ; 49f7f (12:5f7f) +MtMoon3Text_4a106: TX_FAR _MtMoon3Text_49f7f - db $d, "@" + TX_WAIT_BUTTON + db "@" -MtMoon3Text_49f85: ; 49f85 (12:5f85) +MtMoon3Text_4a10c: TX_FAR _MtMoon3Text_49f85 db "@" -MtMoon3Text_49f8a: ; 49f8a (12:5f8a) +MtMoon3SuperNerdEndBattleText: TX_FAR _MtMoon3Text_49f8a db "@" -MtMoon3Text_49f8f: ; 49f8f (12:5f8f) +MtMoon3Text_4a116: TX_FAR _MtMoon3Text_49f8f db "@" -MtMoon3Text_49f94: ; 49f94 (12:5f94) +MtMoon3Text_4a11b: TX_FAR _MtMoon3Text_49f94 db "@" -MtMoon3Text_49f99: ; 49f99 (12:5f99) +MtMoon3Text11: TX_FAR _MtMoon3Text_49f99 - db $11, "@" - -MtMoon3BattleText2: ; 49f9f (12:5f9f) - TX_FAR _MtMoon3BattleText2 + TX_SFX_KEY_ITEM db "@" -MtMoon3EndBattleText2: ; 49fa4 (12:5fa4) - TX_FAR _MtMoon3EndBattleText2 - db "@" - -MtMoon3AfterBattleText2: ; 49fa9 (12:5fa9) - TX_FAR _MtMoon3AfterBattleText2 - db "@" - -MtMoon3BattleText3: ; 49fae (12:5fae) +MtMoon3BattleText3: TX_FAR _MtMoon3BattleText3 db "@" -MtMoon3EndBattleText3: ; 49fb3 (12:5fb3) +MtMoon3EndBattleText3: TX_FAR _MtMoon3EndBattleText3 db "@" -MtMoon3AfterBattleText3: ; 49fb8 (12:5fb8) +MtMoon3AfterBattleText3: TX_FAR _MtMoon3AfterBattleText3 db "@" -MtMoon3BattleText4: ; 49fbd (12:5fbd) +MtMoon3BattleText4: TX_FAR _MtMoon3BattleText4 db "@" -MtMoon3EndBattleText4: ; 49fc2 (12:5fc2) +MtMoon3EndBattleText4: TX_FAR _MtMoon3EndBattleText4 db "@" -MtMoon3AfterBattleText4: ; 49fc7 (12:5fc7) +MtMoon3AfterBattleText4: TX_FAR _MtMoon3AfterBattleText4 db "@" -MtMoon3BattleText5: ; 49fcc (12:5fcc) +MtMoon3BattleText5: TX_FAR _MtMoon3BattleText5 db "@" -MtMoon3EndBattleText5: ; 49fd1 (12:5fd1) +MtMoon3EndBattleText5: TX_FAR _MtMoon3EndBattleText5 db "@" -MtMoon3AfterBattleText5: ; 49fd6 (12:5fd6) +MtMoon3AfterBattleText5: TX_FAR _MtMoon3AfterBattleText5 db "@" + -- cgit v1.2.3 From 511fcfb9131931e39388dbf3f2b8694b09f81968 Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Sun, 29 May 2016 21:00:49 -0400 Subject: Accessory function for Mt Moon B2F --- main.asm | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/main.asm b/main.asm index 8b3569e3..b12a6b58 100755 --- a/main.asm +++ b/main.asm @@ -801,7 +801,35 @@ MtMoon3Blocks: INCBIN "maps/mtmoon3.blk" MtMoon3Script_4a325: ; pikachu-related function? - dr $4a325,$4a540 + ld a, [wd472] + bit 7, a + ret z + ld a, [wWalkBikeSurfState] + and a + ret nz + + push hl + push bc + callab GetPikachuFacingDirectionAndReturnToE + pop bc + pop hl + ld a, b + cp e + ret nz + + push hl + ld a, [wUpdateSpritesEnabled] + push af + ld a, $ff + ld [wUpdateSpritesEnabled], a + callab LoadPikachuShadowIntoVRAM + pop af + ld [wUpdateSpritesEnabled], a + pop hl + call Func_159b + ret + + dr $4a35a,$4a540 SECTION "bank13",ROMX,BANK[$13] -- cgit v1.2.3 From 037dbda5702646ea2f4fb00442071e52f8f03ec0 Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Sun, 29 May 2016 21:55:48 -0400 Subject: Trashed cerulean house --- data/map_header_banks.asm | 4 ++-- data/map_header_pointers.asm | 4 ++-- main.asm | 5 ++++- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/data/map_header_banks.asm b/data/map_header_banks.asm index 90ca27f9..1664cb08 100644 --- a/data/map_header_banks.asm +++ b/data/map_header_banks.asm @@ -62,14 +62,14 @@ MapHeaderBanks:: ; fc3e4 (3f:43e4) db BANK(MtMoon1_h) db BANK(MtMoon2_h) db BANK(MtMoon3_h) - db $07 ; db BANK(CeruleanHouseTrashed_h) + db BANK(CeruleanHouseTrashed_h) db $07 ; db BANK(CeruleanHouse1_h) db $17 ; db BANK(CeruleanPokecenter_h) db $17 ; db BANK(CeruleanGym_h) db $07 ; db BANK(BikeShop_h) db $17 ; db BANK(CeruleanMart_h) db $12 ; db BANK(MtMoonPokecenter_h) - db $07 ; db BANK(CeruleanHouseTrashed_h) + db BANK(CeruleanHouseTrashed_h) db $07 ; db BANK(Route5Gate_h) db $17 ; db BANK(UndergroundPathEntranceRoute5_h) db $15 ; db BANK(DayCareM_h) diff --git a/data/map_header_pointers.asm b/data/map_header_pointers.asm index 37357204..4d6a8847 100644 --- a/data/map_header_pointers.asm +++ b/data/map_header_pointers.asm @@ -62,14 +62,14 @@ MapHeaderPointers:: ; fc1f2 (3f:41f2) dw MtMoon1_h dw MtMoon2_h ;id=60 dw MtMoon3_h - dw $4ec3 ; dw CeruleanHouseTrashed_h + dw CeruleanHouseTrashed_h dw $4f34 ; dw CeruleanHouse1_h dw $44f5 ; dw CeruleanPokecenter_h dw $4577 ; dw CeruleanGym_h dw $5038 ; dw BikeShop_h dw $4757 ; dw CeruleanMart_h dw $52a9 ; dw MtMoonPokecenter_h - dw $4ec3 ; dw CeruleanHouseTrashed_h ; copy + dw CeruleanHouseTrashed_h ; copy dw $5831 ; dw Route5Gate_h dw $55a8 ; dw UndergroundPathEntranceRoute5_h dw $6233 ; dw DayCareM_h diff --git a/main.asm b/main.asm index b12a6b58..91bff12e 100755 --- a/main.asm +++ b/main.asm @@ -344,7 +344,10 @@ INCLUDE "data/mapHeaders/pewterhouse2.asm" INCLUDE "scripts/pewterhouse2.asm" INCLUDE "data/mapObjects/pewterhouse2.asm" - dr $1cec3,$1d7ae ; map scripts +INCLUDE "data/mapHeaders/ceruleanhousetrashed.asm" +INCLUDE "scripts/ceruleanhousetrashed.asm" +INCLUDE "data/mapObjects/ceruleanhousetrashed.asm" + dr $1cf34,$1d7ae ; map scripts INCLUDE "data/mapHeaders/diglettscaveroute2.asm" INCLUDE "scripts/diglettscaveroute2.asm" -- cgit v1.2.3 From a8b3d3612e43cbcc7e1946c5c1a06f9c54c8d311 Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Sun, 29 May 2016 22:36:26 -0400 Subject: Bulbasaur house in Cerulean --- constants/event_constants.asm | 2 +- constants/hide_show_constants.asm | 35 ++++++-------- data/mapObjects/ceruleanhouse1.asm | 8 +-- data/map_header_banks.asm | 2 +- data/map_header_pointers.asm | 2 +- main.asm | 7 ++- scripts/ceruleanhouse1.asm | 99 ++++++++++++++++++++++++++++++++++++-- 7 files changed, 123 insertions(+), 32 deletions(-) diff --git a/constants/event_constants.asm b/constants/event_constants.asm index 49050dd3..2d1fab45 100644 --- a/constants/event_constants.asm +++ b/constants/event_constants.asm @@ -168,7 +168,7 @@ const_value = 0 const EVENT_0A5 ; 0A5, (D75B, bit 5) const EVENT_0A6 ; 0A6, (D75B, bit 6) const EVENT_BEAT_CERULEAN_ROCKET_THIEF ; 0A7, (D75B, bit 7) - const EVENT_0A8 ; 0A8, (D75C, bit 0) + const EVENT_GOT_BULBASAUR_IN_CERULEAN ; 0A8, (D75C, bit 0) const EVENT_0A9 ; 0A9, (D75C, bit 1) const EVENT_0AA ; 0AA, (D75C, bit 2) const EVENT_0AB ; 0AB, (D75C, bit 3) diff --git a/constants/hide_show_constants.asm b/constants/hide_show_constants.asm index 6fc52187..f41477a5 100755 --- a/constants/hide_show_constants.asm +++ b/constants/hide_show_constants.asm @@ -51,10 +51,6 @@ const_value = 0 const HS_TOWN_MAP ; 2A const HS_OAKS_LAB_RIVAL ; 2B const HS_STARTER_BALL_1 ; 2C - const HS_STARTER_BALL_2 ; 2D - const HS_STARTER_BALL_3 ; 2E - -const_value SET $2D const HS_OAKS_LAB_OAK_1 ; 2D const HS_POKEDEX_1 ; 2E const HS_POKEDEX_2 ; 2F @@ -62,22 +58,21 @@ const_value SET $2D const HS_VIRIDIAN_GYM_GIOVANNI ; 31 const HS_VIRIDIAN_GYM_ITEM ; 32 const HS_OLD_AMBER ; 33 X - const HS_UNKNOWN_DUNGEON_1_ITEM_1 ; 34 - const HS_UNKNOWN_DUNGEON_1_ITEM_2 ; 35 X - const HS_UNKNOWN_DUNGEON_1_ITEM_3 ; 36 X - const HS_POKEMONTOWER_2_RIVAL ; 37 X - const HS_POKEMONTOWER_3_ITEM ; 38 - const HS_POKEMONTOWER_4_ITEM_1 ; 39 X - const HS_POKEMONTOWER_4_ITEM_2 ; 3A X - const HS_POKEMONTOWER_4_ITEM_3 ; 3B X - const HS_POKEMONTOWER_5_ITEM ; 3C X - const HS_POKEMONTOWER_6_ITEM_1 ; 3D X - const HS_POKEMONTOWER_6_ITEM_2 ; 3E X - const HS_POKEMONTOWER_7_ROCKET_1 ; 3F X - const HS_POKEMONTOWER_7_ROCKET_2 ; 40 X - const HS_POKEMONTOWER_7_ROCKET_3 ; 41 X - -const_value SET $43 ; replace the tower rockets with jessie/james + const HS_CERULEAN_BULBASAUR ; 34 + const HS_UNKNOWN_DUNGEON_1_ITEM_1 ; 35 X + const HS_UNKNOWN_DUNGEON_1_ITEM_2 ; 36 X + const HS_UNKNOWN_DUNGEON_1_ITEM_3 ; 37 X + const HS_POKEMONTOWER_2_RIVAL ; 38 + const HS_POKEMONTOWER_3_ITEM ; 39 X + const HS_POKEMONTOWER_4_ITEM_1 ; 3A X + const HS_POKEMONTOWER_4_ITEM_2 ; 3B X + const HS_POKEMONTOWER_4_ITEM_3 ; 3C X + const HS_POKEMONTOWER_5_ITEM ; 3D X + const HS_POKEMONTOWER_6_ITEM_1 ; 3E X + const HS_POKEMONTOWER_6_ITEM_2 ; 3F X + const HS_POKEMONTOWER_7_ROCKET_1 ; 40 X + const HS_POKEMONTOWER_7_ROCKET_2 ; 41 X + const HS_POKEMONTOWER_7_ROCKET_3 ; 42 const HS_POKEMONTOWER_7_MR_FUJI ; 43 const HS_LAVENDER_HOUSE_1_MR_FUJI ; 44 const HS_CELADON_MANSION_5_GIFT ; 45 diff --git a/data/mapObjects/ceruleanhouse1.asm b/data/mapObjects/ceruleanhouse1.asm index db0be014..aa9f66a4 100755 --- a/data/mapObjects/ceruleanhouse1.asm +++ b/data/mapObjects/ceruleanhouse1.asm @@ -7,9 +7,11 @@ CeruleanHouse1Object: ; 0x1d710 (size=32) db $0 ; signs - db $2 ; objects - object SPRITE_OLD_MEDIUM_WOMAN, $5, $4, STAY, LEFT, $1 ; person - object SPRITE_GAMBLER, $1, $2, STAY, NONE, $2 ; person + db $4 ; objects + object SPRITE_GIRL, $3, $1, STAY, DOWN, $1 ; person + object SPRITE_BULBASAUR, $4, $1, STAY, DOWN, $2 ; person + object SPRITE_ODDISH, $1, $4, STAY, NONE, $3 ; person + object SPRITE_SANDSHREW, $5, $3, STAY, LEFT, $4 ; person ; warp-to EVENT_DISP CERULEAN_HOUSE_1_WIDTH, $7, $2 diff --git a/data/map_header_banks.asm b/data/map_header_banks.asm index 1664cb08..bbcdd278 100644 --- a/data/map_header_banks.asm +++ b/data/map_header_banks.asm @@ -63,7 +63,7 @@ MapHeaderBanks:: ; fc3e4 (3f:43e4) db BANK(MtMoon2_h) db BANK(MtMoon3_h) db BANK(CeruleanHouseTrashed_h) - db $07 ; db BANK(CeruleanHouse1_h) + db BANK(CeruleanHouse1_h) db $17 ; db BANK(CeruleanPokecenter_h) db $17 ; db BANK(CeruleanGym_h) db $07 ; db BANK(BikeShop_h) diff --git a/data/map_header_pointers.asm b/data/map_header_pointers.asm index 4d6a8847..9558ca6e 100644 --- a/data/map_header_pointers.asm +++ b/data/map_header_pointers.asm @@ -63,7 +63,7 @@ MapHeaderPointers:: ; fc1f2 (3f:41f2) dw MtMoon2_h ;id=60 dw MtMoon3_h dw CeruleanHouseTrashed_h - dw $4f34 ; dw CeruleanHouse1_h + dw CeruleanHouse1_h dw $44f5 ; dw CeruleanPokecenter_h dw $4577 ; dw CeruleanGym_h dw $5038 ; dw BikeShop_h diff --git a/main.asm b/main.asm index 91bff12e..988add14 100755 --- a/main.asm +++ b/main.asm @@ -297,6 +297,7 @@ ViridianHouseBlocks: Route2HouseBlocks: PewterHouse1Blocks: PewterHouse2Blocks: +CeruleanHouse1Blocks: INCBIN "maps/viridianhouse.blk" SchoolBlocks: INCBIN "maps/school.blk" @@ -347,7 +348,11 @@ INCLUDE "data/mapObjects/pewterhouse2.asm" INCLUDE "data/mapHeaders/ceruleanhousetrashed.asm" INCLUDE "scripts/ceruleanhousetrashed.asm" INCLUDE "data/mapObjects/ceruleanhousetrashed.asm" - dr $1cf34,$1d7ae ; map scripts + +INCLUDE "data/mapHeaders/ceruleanhouse1.asm" +INCLUDE "scripts/ceruleanhouse1.asm" +INCLUDE "data/mapObjects/ceruleanhouse1.asm" + dr $1d038,$1d7ae ; map scripts INCLUDE "data/mapHeaders/diglettscaveroute2.asm" INCLUDE "scripts/diglettscaveroute2.asm" diff --git a/scripts/ceruleanhouse1.asm b/scripts/ceruleanhouse1.asm index e703d830..0b9a9052 100755 --- a/scripts/ceruleanhouse1.asm +++ b/scripts/ceruleanhouse1.asm @@ -1,17 +1,106 @@ CeruleanHouse1Script: ; 1d6f6 (7:56f6) - jp EnableAutoTextBoxDrawing + call EnableAutoTextBoxDrawing + ret CeruleanHouse1TextPointers: ; 1d6f9 (7:56f9) dw CeruleanHouse1Text1 dw CeruleanHouse1Text2 + dw CeruleanHouse1Text3 + dw CeruleanHouse1Text4 CeruleanHouse1Text1: ; 1d6fd (7:56fd) - TX_FAR _CeruleanHouse1Text1 + TX_ASM + ld a, $1 + ld [wDoNotWaitForButtonPressAfterDisplayingText], a + CheckEvent EVENT_GOT_BULBASAUR_IN_CERULEAN + jr nz, .asm_1cfbf + ld hl, CeruleanHouse1Text_1cfc8 + call PrintText + ld a, [wPikachuHappiness] + cp 147 + jr c, .asm_1cfb3 + ld hl, CeruleanHouse1Text_1cfce + call PrintText + call YesNoChoice + ld a, [wCurrentMenuItem] + and a + jr nz, .asm_1cfb6 + ld a, $1 + ld [wDoNotWaitForButtonPressAfterDisplayingText], a + ld a, BULBASAUR + ld [wd11e], a + ld [wcf91], a + call GetMonName + ld a, $1 + ld [wDoNotWaitForButtonPressAfterDisplayingText], a + lb bc, BULBASAUR, 10 + call GivePokemon + jr nc, .asm_1cfb3 + ld a, [wAddedToParty] + and a + call z, WaitForTextScrollButtonPress + ld a, $1 + ld [wDoNotWaitForButtonPressAfterDisplayingText], a + ld hl, CeruleanHouse1Text_1cfd3 + call PrintText + ld a, HS_CERULEAN_BULBASAUR + ld [wMissableObjectIndex], a + predef HideObject + SetEvent EVENT_GOT_BULBASAUR_IN_CERULEAN +.asm_1cfb3 + jp TextScriptEnd + +.asm_1cfb6 + ld hl, CeruleanHouse1Text_1cfdf + call PrintText + jp TextScriptEnd + +.asm_1cfbf + ld hl, CeruleanHouse1Text_1cfd9 + call PrintText + jp TextScriptEnd + +CeruleanHouse1Text_1cfc8: + TX_FAR MelanieText1 + TX_WAIT_BUTTON + db "@" + +CeruleanHouse1Text_1cfce: + TX_FAR MelanieText2 + db "@" + +CeruleanHouse1Text_1cfd3: + TX_FAR MelanieText3 + TX_WAIT_BUTTON + db "@" + +CeruleanHouse1Text_1cfd9: + TX_FAR MelanieText4 + TX_WAIT_BUTTON + db "@" + +CeruleanHouse1Text_1cfdf: + TX_FAR MelanieText5 + TX_WAIT_BUTTON db "@" CeruleanHouse1Text2: ; 1d702 (7:5702) + TX_FAR MelanieBulbasaurText + TX_ASM + ld a, BULBASAUR + call PlayCry + jp TextScriptEnd + +CeruleanHouse1Text3: ; 1d702 (7:5702) + TX_FAR MelanieOddishText + TX_ASM + ld a, ODDISH + call PlayCry + jp TextScriptEnd + +CeruleanHouse1Text4: ; 1d702 (7:5702) + TX_FAR MelanieSandshrewText TX_ASM - ld a, $6 - ld [wWhichTrade], a - predef DoInGameTradeDialogue + ld a, SANDSHREW + call PlayCry jp TextScriptEnd -- cgit v1.2.3 From 84ac49aadb3c8ccb38f0fbf70a413470fa7ccad2 Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Mon, 30 May 2016 08:58:37 -0400 Subject: A couple more map-specific Pikachu functions in Bank 3C --- engine/bank3c.asm | 132 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 131 insertions(+), 1 deletion(-) diff --git a/engine/bank3c.asm b/engine/bank3c.asm index 9274b8b7..5a18d55b 100644 --- a/engine/bank3c.asm +++ b/engine/bank3c.asm @@ -355,7 +355,137 @@ INCLUDE "scripts/museum1f2.asm" INCLUDE "scripts/pewterpokecenter2.asm" Func_f1e22: - dr $f1e22, $f220e + ld hl, PikachuMovementData_f1e2b + ld b, SPRITE_FACING_RIGHT + call Func_f0a82 + ret + +PikachuMovementData_f1e2b: + db $00 + db $1d + db $1f + db $38 + db $3f + +Func_f1e30 + CheckEvent EVENT_GOT_TM18 + jr nz, .asm_f1e54 + ld hl, CeladonMart3Text_f1e5b + call PrintText + lb bc, TM_18, 1 + call GiveItem + jr nc, .asm_f1e4f + SetEvent EVENT_GOT_TM18 + ld hl, CeladonMart3Text_f1e60 + jr .asm_f1e57 + +.asm_f1e4f + ld hl, CeladonMart3Text_f1e6b + jr .asm_f1e57 + +.asm_f1e54 + ld hl, CeladonMart3Text_f1e66 +.asm_f1e57 + call PrintText + ret + +CeladonMart3Text_f1e5b: + TX_FAR _TM18PreReceiveText + db "@" + +CeladonMart3Text_f1e60: + TX_FAR _ReceivedTM18Text + TX_SFX_ITEM + db "@" + +CeladonMart3Text_f1e66: + TX_FAR _TM18ExplanationText + db "@" + +CeladonMart3Text_f1e6b: + TX_FAR _TM18NoRoomText + db "@" + +Func_f1e70: + ld a, $1 + ld [wDoNotWaitForButtonPressAfterDisplayingText], a + ld hl, CeladonMansion1Text_f1e96 + call PrintText + callab IsStarterPikachuInOurParty + ret nc + ld hl, CeladonMansionText_f1e9c + call PrintText + ld a, $0 + ld [wDoNotWaitForButtonPressAfterDisplayingText], a + call Func_f1ea2 + call PrintText + ret + +CeladonMansion1Text_f1e96: + TX_FAR _CeladonMansion1Text2 + TX_WAIT_BUTTON + db "@" + +CeladonMansionText_f1e9c: + TX_FAR _CeladonMansion1Text6 + TX_BUTTON_SOUND + db "@" + +Func_f1ea2: + ld hl, PikachuHappinessThresholds_f1eb9 +.asm_f1ea5 + ld a, [hli] + inc hl + and a + jr z, .asm_f1eb5 + ld b, a + ld a, [wPikachuHappiness] + cp b + jr c, .asm_f1eb5 + inc hl + inc hl + jr .asm_f1ea5 + +.asm_f1eb5 + ld a, [hli] + ld h, [hl] + ld l, a + ret + +PikachuHappinessThresholds_f1eb9 + dw 51, CeladonMansion1Text_f1ed5 + dw 101, CeladonMansion1Text_f1eda + dw 131, CeladonMansion1Text_f1edf + dw 161, CeladonMansion1Text_f1ee4 + dw 201, CeladonMansion1Text_f1ee9 + dw 255, CeladonMansion1Text_f1eee + dbbw 0, $ff, CeladonMansion1Text_f1eee + +CeladonMansion1Text_f1ed5: + TX_FAR _CeladonMansion1Text7 + db "@" + +CeladonMansion1Text_f1eda: + TX_FAR _CeladonMansion1Text8 + db "@" + +CeladonMansion1Text_f1edf: + TX_FAR _CeladonMansion1Text9 + db "@" + +CeladonMansion1Text_f1ee4: + TX_FAR _CeladonMansion1Text10 + db "@" + +CeladonMansion1Text_f1ee9: + TX_FAR _CeladonMansion1Text11 + db "@" + +CeladonMansion1Text_f1eee: + TX_FAR _CeladonMansion1Text12 + db "@" + + dr $f1ef3, $f220e INCLUDE "data/mapHeaders/beach_house.asm" INCLUDE "scripts/beach_house.asm" -- cgit v1.2.3 From 5d6f3ec1d4f24bb2598359402c361f2ec47546da Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Mon, 30 May 2016 09:36:57 -0400 Subject: Cerulean Pokemon Center; Func_5c0d4; space after comma in engine/menu/pokedex.asm --- constants/pokedex_constants.asm | 2 +- constants/pokemon_constants.asm | 2 +- data/mapObjects/ceruleanpokecenter.asm | 5 +- data/map_header_banks.asm | 2 +- data/map_header_pointers.asm | 2 +- engine/menu/pokedex.asm | 526 ++++++++++++++++----------------- main.asm | 18 +- scripts/ceruleanpokecenter.asm | 6 + wram.asm | 2 +- 9 files changed, 292 insertions(+), 273 deletions(-) diff --git a/constants/pokedex_constants.asm b/constants/pokedex_constants.asm index 07cda548..360fbb4c 100644 --- a/constants/pokedex_constants.asm +++ b/constants/pokedex_constants.asm @@ -82,7 +82,7 @@ const_value = 1 const DEX_SLOWBRO ; 80 const DEX_MAGNEMITE ; 81 const DEX_MAGNETON ; 82 - const DEX_FARFETCHD ; 83 + const DEX_FARFETCHD ; 83 const DEX_DODUO ; 84 const DEX_DODRIO ; 85 const DEX_SEEL ; 86 diff --git a/constants/pokemon_constants.asm b/constants/pokemon_constants.asm index 773495e3..96d44ef5 100644 --- a/constants/pokemon_constants.asm +++ b/constants/pokemon_constants.asm @@ -63,7 +63,7 @@ const_value = 1 const MISSINGNO_3D ; $3D const MISSINGNO_3E ; $3E const MISSINGNO_3F ; $3F - const FARFETCHD ; $40 + const FARFETCHD ; $40 const VENONAT ; $41 const DRAGONITE ; $42 const MISSINGNO_43 ; $43 diff --git a/data/mapObjects/ceruleanpokecenter.asm b/data/mapObjects/ceruleanpokecenter.asm index 930995dd..4b92f0d8 100755 --- a/data/mapObjects/ceruleanpokecenter.asm +++ b/data/mapObjects/ceruleanpokecenter.asm @@ -7,11 +7,12 @@ CeruleanPokecenterObject: ; 0x5c65f (size=44) db $0 ; signs - db $4 ; objects + db $5 ; objects object SPRITE_NURSE, $3, $1, STAY, DOWN, $1 ; person object SPRITE_BLACK_HAIR_BOY_2, $a, $5, WALK, $0, $2 ; person - object SPRITE_GENTLEMAN, $4, $3, STAY, DOWN, $3 ; person + object SPRITE_GENTLEMAN, $4, $3, STAY, UP, $3 ; person object SPRITE_CABLE_CLUB_WOMAN, $b, $2, STAY, DOWN, $4 ; person + object SPRITE_CHANSEY, $4, $1, STAY, DOWN, $5 ; person ; warp-to EVENT_DISP CERULEAN_POKECENTER_WIDTH, $7, $3 diff --git a/data/map_header_banks.asm b/data/map_header_banks.asm index bbcdd278..65579280 100644 --- a/data/map_header_banks.asm +++ b/data/map_header_banks.asm @@ -64,7 +64,7 @@ MapHeaderBanks:: ; fc3e4 (3f:43e4) db BANK(MtMoon3_h) db BANK(CeruleanHouseTrashed_h) db BANK(CeruleanHouse1_h) - db $17 ; db BANK(CeruleanPokecenter_h) + db BANK(CeruleanPokecenter_h) db $17 ; db BANK(CeruleanGym_h) db $07 ; db BANK(BikeShop_h) db $17 ; db BANK(CeruleanMart_h) diff --git a/data/map_header_pointers.asm b/data/map_header_pointers.asm index 9558ca6e..d80f85f5 100644 --- a/data/map_header_pointers.asm +++ b/data/map_header_pointers.asm @@ -64,7 +64,7 @@ MapHeaderPointers:: ; fc1f2 (3f:41f2) dw MtMoon3_h dw CeruleanHouseTrashed_h dw CeruleanHouse1_h - dw $44f5 ; dw CeruleanPokecenter_h + dw CeruleanPokecenter_h dw $4577 ; dw CeruleanGym_h dw $5038 ; dw BikeShop_h dw $4757 ; dw CeruleanMart_h diff --git a/engine/menu/pokedex.asm b/engine/menu/pokedex.asm index c481a20c..298816c1 100755 --- a/engine/menu/pokedex.asm +++ b/engine/menu/pokedex.asm @@ -2,54 +2,54 @@ ShowPokedexMenu: ; 40000 (10:4000) call GBPalWhiteOut call ClearScreen call UpdateSprites - ld a,[wListScrollOffset] + ld a, [wListScrollOffset] push af xor a - ld [wCurrentMenuItem],a - ld [wListScrollOffset],a - ld [wLastMenuItem],a + ld [wCurrentMenuItem], a + ld [wListScrollOffset], a + ld [wLastMenuItem], a inc a - ld [wd11e],a - ld [hJoy7],a + ld [wd11e], a + ld [hJoy7], a .setUpGraphics callab LoadPokedexTilePatterns .asm_40025 ld b, SET_PAL_GENERIC call RunPaletteCommand .doPokemonListMenu - ld hl,wTopMenuItemY - ld a,3 - ld [hli],a ; top menu item Y + ld hl, wTopMenuItemY + ld a, 3 + ld [hli], a ; top menu item Y xor a - ld [hli],a ; top menu item X + ld [hli], a ; top menu item X inc a - ld [wMenuWatchMovingOutOfBounds],a + ld [wMenuWatchMovingOutOfBounds], a inc hl inc hl - ld a,6 - ld [hli],a ; max menu item ID - ld [hl],D_LEFT | D_RIGHT | B_BUTTON | A_BUTTON + ld a, 6 + ld [hli], a ; max menu item ID + ld [hl], D_LEFT | D_RIGHT | B_BUTTON | A_BUTTON call HandlePokedexListMenu - jr c,.goToSideMenu ; if the player chose a pokemon from the list + jr c, .goToSideMenu ; if the player chose a pokemon from the list .exitPokedex xor a - ld [wMenuWatchMovingOutOfBounds],a - ld [wCurrentMenuItem],a - ld [wLastMenuItem],a - ld [hJoy7],a - ld [wWastedByteCD3A],a - ld [wOverrideSimulatedJoypadStatesMask],a + ld [wMenuWatchMovingOutOfBounds], a + ld [wCurrentMenuItem], a + ld [wLastMenuItem], a + ld [hJoy7], a + ld [wWastedByteCD3A], a + ld [wOverrideSimulatedJoypadStatesMask], a pop af - ld [wListScrollOffset],a + ld [wListScrollOffset], a call GBPalWhiteOutWithDelay3 call RunDefaultPaletteCommand jp ReloadMapData .goToSideMenu call HandlePokedexSideMenu dec b - jr z,.exitPokedex ; if the player chose Quit + jr z, .exitPokedex ; if the player chose Quit dec b - jr z,.doPokemonListMenu ; if pokemon not seen or player pressed B button + jr z, .doPokemonListMenu ; if pokemon not seen or player pressed B button dec b jr z, .asm_40025 jp .setUpGraphics ; if pokemon data or area was shown @@ -62,73 +62,73 @@ ShowPokedexMenu: ; 40000 (10:4000) ; 02: the pokemon has not been seen yet or the player pressed the B button HandlePokedexSideMenu: ; 40070 (10:4070) call PlaceUnfilledArrowMenuCursor - ld a,[wCurrentMenuItem] + ld a, [wCurrentMenuItem] push af - ld b,a - ld a,[wLastMenuItem] + ld b, a + ld a, [wLastMenuItem] push af - ld a,[wListScrollOffset] + ld a, [wListScrollOffset] push af add b inc a - ld [wd11e],a - ld a,[wd11e] + ld [wd11e], a + ld a, [wd11e] push af - ld a,[wDexMaxSeenMon] + ld a, [wDexMaxSeenMon] push af ; this doesn't need to be preserved - ld hl,wPokedexSeen + ld hl, wPokedexSeen call IsPokemonBitSet - ld b,2 - jr z,.exitSideMenu + ld b, 2 + jr z, .exitSideMenu call PokedexToIndex - ld hl,wTopMenuItemY - ld a,8 - ld [hli],a ; top menu item Y - ld a,15 - ld [hli],a ; top menu item X + ld hl, wTopMenuItemY + ld a, 8 + ld [hli], a ; top menu item Y + ld a, 15 + ld [hli], a ; top menu item X xor a - ld [hli],a ; current menu item ID + ld [hli], a ; current menu item ID inc hl - ld a,4 - ld [hli],a ; max menu item ID + ld a, 4 + ld [hli], a ; max menu item ID ld a, A_BUTTON | B_BUTTON - ld [hli],a ; menu watched keys (A button and B button) + ld [hli], a ; menu watched keys (A button and B button) xor a - ld [hli],a ; old menu item ID - ld [wMenuWatchMovingOutOfBounds],a - ld [hJoy7],a + ld [hli], a ; old menu item ID + ld [wMenuWatchMovingOutOfBounds], a + ld [hJoy7], a .handleMenuInput call HandleMenuInput - bit 1,a ; was the B button pressed? - ld b,2 - jr nz,.buttonBPressed - ld a,[wCurrentMenuItem] + bit 1, a ; was the B button pressed? + ld b, 2 + jr nz, .buttonBPressed + ld a, [wCurrentMenuItem] and a - jr z,.choseData + jr z, .choseData dec a - jr z,.choseCry + jr z, .choseCry dec a - jr z,.choseArea + jr z, .choseArea dec a - jr z,.chosePrint + jr z, .chosePrint .choseQuit - ld b,1 + ld b, 1 .exitSideMenu pop af - ld [wDexMaxSeenMon],a + ld [wDexMaxSeenMon], a pop af - ld [wd11e],a + ld [wd11e], a pop af - ld [wListScrollOffset],a + ld [wListScrollOffset], a pop af - ld [wLastMenuItem],a + ld [wLastMenuItem], a pop af - ld [wCurrentMenuItem],a + ld [wCurrentMenuItem], a ld a, $1 ld [hJoy7], a push bc coord hl, 0, 3 - ld de,20 + ld de, 20 lb bc, " ", 13 call DrawTileLine ; cover up the menu cursor in the pokemon list pop bc @@ -136,24 +136,24 @@ HandlePokedexSideMenu: ; 40070 (10:4070) .buttonBPressed push bc coord hl, 15, 8 - ld de,20 + ld de, 20 lb bc, " ", 9 call DrawTileLine ; cover up the menu cursor in the side menu pop bc jr .exitSideMenu .choseData call ShowPokedexDataInternal - ld b,0 + ld b, 0 jr .exitSideMenu ; play pokemon cry .choseCry - ld a,[wd11e] + ld a, [wd11e] call GetCryData call PlaySound jr .handleMenuInput .choseArea predef LoadTownMap_Nest ; display pokemon areas - ld b,0 + ld b, 0 jr .exitSideMenu .chosePrint ld a, [hTilesetType] @@ -179,63 +179,63 @@ HandlePokedexListMenu: ; 40140 (10:4140) call Func_4027c call GBPalNormal call HandleMenuInput - bit 1,a ; was the B button pressed? - jp nz,.buttonBPressed + bit 1, a ; was the B button pressed? + jp nz, .buttonBPressed bit 0, a ; was the A button pressed? - jp nz,.buttonAPressed + jp nz, .buttonAPressed .checkIfUpPressed - bit 6,a ; was Up pressed? - jr z,.checkIfDownPressed + bit 6, a ; was Up pressed? + jr z, .checkIfDownPressed .upPressed ; scroll up one row - ld a,[wListScrollOffset] + ld a, [wListScrollOffset] and a - jp z,.loop + jp z, .loop dec a - ld [wListScrollOffset],a + ld [wListScrollOffset], a jp .loop .checkIfDownPressed - bit 7,a ; was Down pressed? - jr z,.checkIfRightPressed + bit 7, a ; was Down pressed? + jr z, .checkIfRightPressed .downPressed ; scroll down one row - ld a,[wDexMaxSeenMon] - cp a,7 - jp c,.loop ; can't if the list is shorter than 7 - sub a,7 - ld b,a - ld a,[wListScrollOffset] + ld a, [wDexMaxSeenMon] + cp a, 7 + jp c, .loop ; can't if the list is shorter than 7 + sub a, 7 + ld b, a + ld a, [wListScrollOffset] cp b - jp z,.loop + jp z, .loop inc a - ld [wListScrollOffset],a + ld [wListScrollOffset], a jp .loop .checkIfRightPressed - bit 4,a ; was Right pressed? - jr z,.checkIfLeftPressed + bit 4, a ; was Right pressed? + jr z, .checkIfLeftPressed .rightPressed ; scroll down 7 rows - ld a,[wDexMaxSeenMon] - cp a,7 - jp c,.loop ; can't if the list is shorter than 7 - sub a,6 - ld b,a - ld a,[wListScrollOffset] - add a,7 - ld [wListScrollOffset],a + ld a, [wDexMaxSeenMon] + cp a, 7 + jp c, .loop ; can't if the list is shorter than 7 + sub a, 6 + ld b, a + ld a, [wListScrollOffset] + add a, 7 + ld [wListScrollOffset], a cp b - jp c,.loop + jp c, .loop dec b - ld a,b - ld [wListScrollOffset],a + ld a, b + ld [wListScrollOffset], a jp .loop .checkIfLeftPressed ; scroll up 7 rows - bit 5,a ; was Left pressed? - jr z,.buttonAPressed + bit 5, a ; was Left pressed? + jr z, .buttonAPressed .leftPressed - ld a,[wListScrollOffset] - sub a,7 - ld [wListScrollOffset],a - jp nc,.loop + ld a, [wListScrollOffset] + sub a, 7 + ld [wListScrollOffset], a + jp nc, .loop xor a - ld [wListScrollOffset],a + ld [wListScrollOffset], a jp .loop .buttonAPressed scf @@ -249,72 +249,72 @@ Func_401c2: ; 401c2 (10:41c2) ld [H_AUTOBGTRANSFERENABLED], a ; draw the horizontal line separating the seen and owned amounts from the menu coord hl, 15, 6 - ld a,$7a ; horizontal line tile - ld [hli],a - ld [hli],a - ld [hli],a - ld [hli],a - ld [hli],a + ld a, $7a ; horizontal line tile + ld [hli], a + ld [hli], a + ld [hli], a + ld [hli], a + ld [hli], a coord hl, 14, 0 - ld [hl],$71 ; vertical line tile + ld [hl], $71 ; vertical line tile coord hl, 14, 1 call DrawPokedexVerticalLine coord hl, 14, 9 call DrawPokedexVerticalLine - ld hl,wPokedexSeen - ld b,wPokedexSeenEnd - wPokedexSeen + ld hl, wPokedexSeen + ld b, wPokedexSeenEnd - wPokedexSeen call CountSetBits ld de, wNumSetBits coord hl, 16, 2 lb bc, 1, 3 call PrintNumber ; print number of seen pokemon - ld hl,wPokedexOwned - ld b,wPokedexOwnedEnd - wPokedexOwned + ld hl, wPokedexOwned + ld b, wPokedexOwnedEnd - wPokedexOwned call CountSetBits ld de, wNumSetBits coord hl, 16, 5 lb bc, 1, 3 call PrintNumber ; print number of owned pokemon coord hl, 16, 1 - ld de,PokedexSeenText + ld de, PokedexSeenText call PlaceString coord hl, 16, 4 - ld de,PokedexOwnText + ld de, PokedexOwnText call PlaceString coord hl, 1, 1 - ld de,PokedexContentsText + ld de, PokedexContentsText call PlaceString coord hl, 16, 8 - ld de,PokedexMenuItemsText + ld de, PokedexMenuItemsText call PlaceString ; find the highest pokedex number among the pokemon the player has seen - ld hl,wPokedexSeenEnd - 1 - ld b,(wPokedexSeenEnd - wPokedexSeen) * 8 + 1 + ld hl, wPokedexSeenEnd - 1 + ld b, (wPokedexSeenEnd - wPokedexSeen) * 8 + 1 .maxSeenPokemonLoop - ld a,[hld] - ld c,8 + ld a, [hld] + ld c, 8 .maxSeenPokemonInnerLoop dec b sla a - jr c,.storeMaxSeenPokemon + jr c, .storeMaxSeenPokemon dec c - jr nz,.maxSeenPokemonInnerLoop + jr nz, .maxSeenPokemonInnerLoop jr .maxSeenPokemonLoop .storeMaxSeenPokemon - ld a,b - ld [wDexMaxSeenMon],a + ld a, b + ld [wDexMaxSeenMon], a ret DrawPokedexVerticalLine: ; 40243 (10:4243) - ld c,9 ; height of line - ld de,SCREEN_WIDTH ; width of screen - ld a,$71 ; vertical line tile + ld c, 9 ; height of line + ld de, SCREEN_WIDTH ; width of screen + ld a, $71 ; vertical line tile .loop - ld [hl],a - add hl,de - xor a,1 ; toggle between vertical line tile and box tile + ld [hl], a + add hl, de + xor a, 1 ; toggle between vertical line tile and box tile dec c - jr nz,.loop + jr nz, .loop ret PokedexSeenText: ; 40252 (10:4252) @@ -335,51 +335,51 @@ PokedexMenuItemsText: ; 40264 (10:4264) Func_4027c: ; 4027c (10:427c) xor a - ld [H_AUTOBGTRANSFERENABLED],a + ld [H_AUTOBGTRANSFERENABLED], a coord hl, 4, 2 lb bc, 14, 10 call ClearScreenArea coord hl, 1, 3 - ld a,[wListScrollOffset] - ld [wd11e],a - ld d,7 - ld a,[wDexMaxSeenMon] - cp a,7 - jr nc,.printPokemonLoop - ld d,a + ld a, [wListScrollOffset] + ld [wd11e], a + ld d, 7 + ld a, [wDexMaxSeenMon] + cp a, 7 + jr nc, .printPokemonLoop + ld d, a dec a - ld [wMaxMenuItem],a + ld [wMaxMenuItem], a ; loop to print pokemon pokedex numbers and names ; if the player has owned the pokemon, it puts a pokeball beside the name .printPokemonLoop - ld a,[wd11e] + ld a, [wd11e] inc a - ld [wd11e],a + ld [wd11e], a push af push de push hl - ld de,-SCREEN_WIDTH - add hl,de - ld de,wd11e + ld de, -SCREEN_WIDTH + add hl, de + ld de, wd11e lb bc, LEADING_ZEROES | 1, 3 call PrintNumber ; print the pokedex number - ld de,SCREEN_WIDTH - add hl,de + ld de, SCREEN_WIDTH + add hl, de dec hl push hl - ld hl,wPokedexOwned + ld hl, wPokedexOwned call IsPokemonBitSet pop hl - ld a," " - jr z,.writeTile - ld a,$72 ; pokeball tile + ld a, " " + jr z, .writeTile + ld a, $72 ; pokeball tile .writeTile - ld [hl],a ; put a pokeball next to pokemon that the player has owned + ld [hl], a ; put a pokeball next to pokemon that the player has owned push hl - ld hl,wPokedexSeen + ld hl, wPokedexSeen call IsPokemonBitSet - jr nz,.getPokemonName ; if the player has seen the pokemon - ld de,.dashedLine ; print a dashed line in place of the name if the player hasn't seen the pokemon + jr nz, .getPokemonName ; if the player has seen the pokemon + ld de, .dashedLine ; print a dashed line in place of the name if the player hasn't seen the pokemon jr .skipGettingName .dashedLine ; for unseen pokemon in the list db "----------@" @@ -391,15 +391,15 @@ Func_4027c: ; 4027c (10:427c) inc hl call PlaceString pop hl - ld bc,2 * 20 - add hl,bc + ld bc, 2 * 20 + add hl, bc pop de pop af - ld [wd11e],a + ld [wd11e], a dec d - jr nz,.printPokemonLoop - ld a,01 - ld [H_AUTOBGTRANSFERENABLED],a + jr nz, .printPokemonLoop + ld a, 01 + ld [H_AUTOBGTRANSFERENABLED], a call Delay3 ret @@ -408,12 +408,12 @@ Func_4027c: ; 4027c (10:427c) ; [wd11e] = pokedex number ; hl = address of bit field IsPokemonBitSet: ; 40303 (10:4303) - ld a,[wd11e] + ld a, [wd11e] dec a - ld c,a - ld b,FLAG_TEST + ld c, a + ld b, FLAG_TEST predef FlagActionPredef - ld a,c + ld a, c and a ret @@ -426,44 +426,44 @@ ShowPokedexData: ; 40312 (10:4312) ; function to display pokedex data from inside the pokedex ShowPokedexDataInternal: ; 40323 (10:4323) - ld hl,wd72c - set 1,[hl] - ld a,$33 ; 3/7 volume - ld [rNR50],a + ld hl, wd72c + set 1, [hl] + ld a, $33 ; 3/7 volume + ld [rNR50], a ld a, [hTilesetType] push af xor a ld [hTilesetType], a call GBPalWhiteOut ; zero all palettes - ld a,[wd11e] ; pokemon ID - ld [wcf91],a + ld a, [wd11e] ; pokemon ID + ld [wcf91], a push af ld b, SET_PAL_POKEDEX call RunPaletteCommand pop af - ld [wd11e],a + ld [wd11e], a call Func_4039c call c, Func_404ae .waitForButtonPress call JoypadLowSensitivity - ld a,[hJoy5] - and a,A_BUTTON | B_BUTTON - jr z,.waitForButtonPress + ld a, [hJoy5] + and a, A_BUTTON | B_BUTTON + jr z, .waitForButtonPress pop af - ld [hTilesetType],a + ld [hTilesetType], a call GBPalWhiteOut call ClearScreen call RunDefaultPaletteCommand call LoadTextBoxTilePatterns call GBPalNormal - ld hl,wd72c - res 1,[hl] - ld a,$77 ; max volume - ld [rNR50],a + ld hl, wd72c + res 1, [hl] + ld a, $77 ; max volume + ld [rNR50], a ret HeightWeightText: ; 40370 (10:4370) - db "HT ?",$60,"??",$61 + db "HT ?", $60, "??", $61 next "WT ???lb@" ; XXX does anything point to this? @@ -472,77 +472,77 @@ PokeText: ; 40385 (10:4385) ; horizontal line that divides the pokedex text description from the rest of the data PokedexDataDividerLine: ; 40387 (10:4387) - db $68,$69,$6B,$69,$6B - db $69,$6B,$69,$6B,$6B - db $6B,$6B,$69,$6B,$69 - db $6B,$69,$6B,$69,$6A + db $68, $69, $6B, $69, $6B + db $69, $6B, $69, $6B, $6B + db $6B, $6B, $69, $6B, $69 + db $6B, $69, $6B, $69, $6A db "@" Func_4039c: ; 4039c (10:439c) call ClearScreen coord hl, 0, 0 - ld de,1 + ld de, 1 lb bc, $64, SCREEN_WIDTH call DrawTileLine ; draw top border coord hl, 0, 17 ld b, $6f call DrawTileLine ; draw bottom border coord hl, 0, 1 - ld de,20 + ld de, 20 lb bc, $66, $10 call DrawTileLine ; draw left border coord hl, 19, 1 - ld b,$67 + ld b, $67 call DrawTileLine ; draw right border - ld a,$63 ; upper left corner tile + ld a, $63 ; upper left corner tile Coorda 0, 0 - ld a,$65 ; upper right corner tile + ld a, $65 ; upper right corner tile Coorda 19, 0 - ld a,$6c ; lower left corner tile + ld a, $6c ; lower left corner tile Coorda 0, 17 - ld a,$6e ; lower right corner tile + ld a, $6e ; lower right corner tile Coorda 19, 17 coord hl, 0, 9 - ld de,PokedexDataDividerLine + ld de, PokedexDataDividerLine call PlaceString ; draw horizontal divider line coord hl, 9, 6 - ld de,HeightWeightText + ld de, HeightWeightText call PlaceString call GetMonName coord hl, 9, 2 call PlaceString - ld hl,PokedexEntryPointers - ld a,[wd11e] + ld hl, PokedexEntryPointers + ld a, [wd11e] dec a - ld e,a - ld d,0 - add hl,de - add hl,de - ld a,[hli] - ld e,a - ld d,[hl] ; de = address of pokedex entry + ld e, a + ld d, 0 + add hl, de + add hl, de + ld a, [hli] + ld e, a + ld d, [hl] ; de = address of pokedex entry coord hl, 9, 4 call PlaceString ; print species name - ld h,b - ld l,c + ld h, b + ld l, c push de - ld a,[wd11e] + ld a, [wd11e] push af call IndexToPokedex coord hl, 2, 8 ld a, "№" - ld [hli],a - ld a,$f2 - ld [hli],a - ld de,wd11e + ld [hli], a + ld a, $f2 + ld [hli], a + ld de, wd11e lb bc, LEADING_ZEROES | 1, 3 call PrintNumber ; print pokedex number - ld hl,wPokedexOwned + ld hl, wPokedexOwned call IsPokemonBitSet pop af - ld [wd11e],a - ld a,[wcf91] - ld [wd0b5],a + ld [wd11e], a + ld a, [wcf91] + ld [wd0b5], a pop de push af push bc @@ -553,65 +553,65 @@ Func_4039c: ; 4039c (10:439c) call GetMonHeader ; load pokemon picture location coord hl, 1, 1 call LoadFlippedFrontSpriteByMonIndex ; draw pokemon picture - ld a,[wcf91] + ld a, [wcf91] call PlayCry ; play pokemon cry pop hl pop de pop bc pop af - ld a,c + ld a, c and a ret z ; if the pokemon has not been owned, don't print the height, weight, or description inc de ; de = address of feet (height) - ld a,[de] ; reads feet, but a is overwritten without being used + ld a, [de] ; reads feet, but a is overwritten without being used coord hl, 12, 6 lb bc, 1, 2 call PrintNumber ; print feet (height) - ld a,$60 ; feet symbol tile (one tick) - ld [hl],a + ld a, $60 ; feet symbol tile (one tick) + ld [hl], a inc de inc de ; de = address of inches (height) coord hl, 15, 6 lb bc, LEADING_ZEROES | 1, 2 call PrintNumber ; print inches (height) - ld a,$61 ; inches symbol tile (two ticks) - ld [hl],a + ld a, $61 ; inches symbol tile (two ticks) + ld [hl], a ; now print the weight (note that weight is stored in tenths of pounds internally) inc de inc de inc de ; de = address of upper byte of weight push de ; put weight in big-endian order at hDexWeight - ld hl,hDexWeight - ld a,[hl] ; save existing value of [hDexWeight] + ld hl, hDexWeight + ld a, [hl] ; save existing value of [hDexWeight] push af - ld a,[de] ; a = upper byte of weight - ld [hli],a ; store upper byte of weight in [hDexWeight] - ld a,[hl] ; save existing value of [hDexWeight + 1] + ld a, [de] ; a = upper byte of weight + ld [hli], a ; store upper byte of weight in [hDexWeight] + ld a, [hl] ; save existing value of [hDexWeight + 1] push af dec de - ld a,[de] ; a = lower byte of weight - ld [hl],a ; store lower byte of weight in [hDexWeight + 1] - ld de,hDexWeight + ld a, [de] ; a = lower byte of weight + ld [hl], a ; store lower byte of weight in [hDexWeight + 1] + ld de, hDexWeight coord hl, 11, 8 lb bc, 2, 5 ; 2 bytes, 5 digits call PrintNumber ; print weight coord hl, 14, 8 - ld a,[hDexWeight + 1] - sub a,10 - ld a,[hDexWeight] - sbc a,0 - jr nc,.next - ld [hl],"0" ; if the weight is less than 10, put a 0 before the decimal point + ld a, [hDexWeight + 1] + sub a, 10 + ld a, [hDexWeight] + sbc a, 0 + jr nc, .next + ld [hl], "0" ; if the weight is less than 10, put a 0 before the decimal point .next inc hl - ld a,[hli] - ld [hld],a ; make space for the decimal point by moving the last digit forward one tile - ld [hl],$f2 ; decimal point tile + ld a, [hli] + ld [hld], a ; make space for the decimal point by moving the last digit forward one tile + ld [hl], $f2 ; decimal point tile pop af - ld [hDexWeight + 1],a ; restore original value of [hDexWeight + 1] + ld [hDexWeight + 1], a ; restore original value of [hDexWeight + 1] pop af - ld [hDexWeight],a ; restore original value of [hDexWeight] + ld [hDexWeight], a ; restore original value of [hDexWeight] pop hl inc hl ; hl = address of pokedex description text scf @@ -620,11 +620,11 @@ Func_4039c: ; 4039c (10:439c) Func_404ae: ; 404ae (10:44ae) coord bc, 1, 11 Func_404b1: ; 404b1 (10:44b1) - ld a,2 - ld [$fff9],a + ld a, 2 + ld [$fff9], a call TextCommandProcessor ; print pokedex description text xor a - ld [$fff9],a + ld [$fff9], a ret Func_404bc: ; 404bc (10:44bc) @@ -667,10 +667,10 @@ DrawTileLine: ; 40501 (10:4501) push bc push de .loop - ld [hl],b - add hl,de + ld [hl], b + add hl, de dec c - jr nz,.loop + jr nz, .loop pop de pop bc ret @@ -681,19 +681,19 @@ PokedexToIndex: ; 41086 (10:5086) ; converts the Pokédex number at wd11e to an index push bc push hl - ld a,[wd11e] - ld b,a - ld c,0 - ld hl,PokedexOrder + ld a, [wd11e] + ld b, a + ld c, 0 + ld hl, PokedexOrder .loop ; go through the list until we find an entry with a matching dex number inc c - ld a,[hli] + ld a, [hli] cp b - jr nz,.loop + jr nz, .loop - ld a,c - ld [wd11e],a + ld a, c + ld [wd11e], a pop hl pop bc ret @@ -702,14 +702,14 @@ IndexToPokedex: ; 4109d (10:509d) ; converts the indexédex number at wd11e to a Pokédex number push bc push hl - ld a,[wd11e] + ld a, [wd11e] dec a - ld hl,PokedexOrder - ld b,0 - ld c,a - add hl,bc - ld a,[hl] - ld [wd11e],a + ld hl, PokedexOrder + ld b, 0 + ld c, a + add hl, bc + ld a, [hl] + ld [wd11e], a pop hl pop bc ret diff --git a/main.asm b/main.asm index 988add14..8db3752e 100755 --- a/main.asm +++ b/main.asm @@ -754,7 +754,6 @@ INCLUDE "data/mapObjects/lavendertown.asm" LavenderTownBlocks: INCBIN "maps/lavendertown.blk" ViridianPokecenterBlocks: -CeruleanPokecenterBlocks: VermilionPokecenterBlocks: SaffronPokecenterBlocks: LavenderPokecenterBlocks: @@ -1128,7 +1127,14 @@ INCBIN "maps/viridianforestentrance.blk" INCLUDE "data/mapHeaders/redshouse2f.asm" INCLUDE "scripts/redshouse2f.asm" INCLUDE "data/mapObjects/redshouse2f.asm" - dr $5c0d4,$5c0e3 + +Func_5c0d4: + ld a, %01001011 + ld [wPokedexOwned], a + predef ShowPokedexData + xor a + ld [wPokedexOwned], a + ret INCLUDE "data/mapHeaders/museum1f.asm" INCLUDE "scripts/museum1f.asm" @@ -1148,7 +1154,13 @@ INCLUDE "data/mapHeaders/pewterpokecenter.asm" INCLUDE "scripts/pewterpokecenter.asm" INCLUDE "data/mapObjects/pewterpokecenter.asm" - dr $5c4f5,$5d485 +INCLUDE "data/mapHeaders/ceruleanpokecenter.asm" +INCLUDE "scripts/ceruleanpokecenter.asm" +INCLUDE "data/mapObjects/ceruleanpokecenter.asm" +CeruleanPokecenterBlocks: +INCBIN "maps/ceruleanpokecenter.blk" + + dr $5c577,$5d485 INCLUDE "data/mapHeaders/viridianforestexit.asm" INCLUDE "scripts/viridianforestexit.asm" diff --git a/scripts/ceruleanpokecenter.asm b/scripts/ceruleanpokecenter.asm index 5d888317..f4eb68ae 100755 --- a/scripts/ceruleanpokecenter.asm +++ b/scripts/ceruleanpokecenter.asm @@ -7,6 +7,7 @@ CeruleanPokecenterTextPointers: ; 5c64b (17:464b) dw CeruleanPokecenterText2 dw CeruleanPokecenterText3 dw CeruleanPokecenterText4 + dw CeruleanPokecenterText5 CeruleanPokecenterText4: ; 5c653 (17:4653) db $f6 @@ -21,3 +22,8 @@ CeruleanPokecenterText2: ; 5c655 (17:4655) CeruleanPokecenterText3: ; 5c65a (17:465a) TX_FAR _CeruleanPokecenterText3 db "@" + +CeruleanPokecenterText5: + TX_ASM + callab Func_f0f12 + jp TextScriptEnd diff --git a/wram.asm b/wram.asm index 821c4957..fbfcc288 100755 --- a/wram.asm +++ b/wram.asm @@ -2290,7 +2290,7 @@ wPartyDataEnd:: wMainDataStart:: -wPokedexOwned:: ; d2f7 +wPokedexOwned:: ; d2f6 flag_array NUM_POKEMON wPokedexOwnedEnd:: -- cgit v1.2.3 From 0cf9f485b14d7431ff2a976e7fac491b2369c726 Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Mon, 30 May 2016 09:47:14 -0400 Subject: Guys we need to disassemble Misty --- data/map_header_banks.asm | 2 +- data/map_header_pointers.asm | 2 +- main.asm | 8 +++++++- scripts/ceruleangym.asm | 3 ++- 4 files changed, 11 insertions(+), 4 deletions(-) diff --git a/data/map_header_banks.asm b/data/map_header_banks.asm index 65579280..9e0e0e20 100644 --- a/data/map_header_banks.asm +++ b/data/map_header_banks.asm @@ -65,7 +65,7 @@ MapHeaderBanks:: ; fc3e4 (3f:43e4) db BANK(CeruleanHouseTrashed_h) db BANK(CeruleanHouse1_h) db BANK(CeruleanPokecenter_h) - db $17 ; db BANK(CeruleanGym_h) + db BANK(CeruleanGym_h) db $07 ; db BANK(BikeShop_h) db $17 ; db BANK(CeruleanMart_h) db $12 ; db BANK(MtMoonPokecenter_h) diff --git a/data/map_header_pointers.asm b/data/map_header_pointers.asm index d80f85f5..599fecb2 100644 --- a/data/map_header_pointers.asm +++ b/data/map_header_pointers.asm @@ -65,7 +65,7 @@ MapHeaderPointers:: ; fc1f2 (3f:41f2) dw CeruleanHouseTrashed_h dw CeruleanHouse1_h dw CeruleanPokecenter_h - dw $4577 ; dw CeruleanGym_h + dw CeruleanGym_h dw $5038 ; dw BikeShop_h dw $4757 ; dw CeruleanMart_h dw $52a9 ; dw MtMoonPokecenter_h diff --git a/main.asm b/main.asm index 8db3752e..277b867f 100755 --- a/main.asm +++ b/main.asm @@ -1160,7 +1160,13 @@ INCLUDE "data/mapObjects/ceruleanpokecenter.asm" CeruleanPokecenterBlocks: INCBIN "maps/ceruleanpokecenter.blk" - dr $5c577,$5d485 +INCLUDE "data/mapHeaders/ceruleangym.asm" +INCLUDE "scripts/ceruleangym.asm" +INCLUDE "data/mapObjects/ceruleangym.asm" +CeruleanGymBlocks: +INCBIN "maps/ceruleangym.blk" + + dr $5c757,$5d485 INCLUDE "data/mapHeaders/viridianforestexit.asm" INCLUDE "scripts/viridianforestexit.asm" diff --git a/scripts/ceruleangym.asm b/scripts/ceruleangym.asm index fe0faea0..f1ef4c43 100755 --- a/scripts/ceruleangym.asm +++ b/scripts/ceruleangym.asm @@ -55,6 +55,7 @@ CeruleanGymScript_5c70d: ; 5c70d (17:470d) call DisplayTextID SetEvent EVENT_GOT_TM11 jr .asm_5c736 + .BagFull ld a, $7 ld [hSpriteIndexOrTextID], a @@ -158,7 +159,7 @@ CeruleanGymText7: ; 5c7d3 (17:47d3) CeruleanGymText_5c7d8: ; 5c7d8 (17:47d8) TX_FAR _CeruleanGymText_5c7d8 - db $11, $6, "@" + db "@" CeruleanGymText2: ; 5c7df (17:47df) TX_ASM -- cgit v1.2.3 From ae723a065537be412cd152e81c72e53ebe3aaac3 Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Mon, 30 May 2016 10:04:13 -0400 Subject: Cerulean Bike Shop --- data/map_header_banks.asm | 2 +- data/map_header_pointers.asm | 2 +- main.asm | 8 +++++++- scripts/bikeshop.asm | 23 ++++++++++++++--------- text/maps/bike_shop.asm | 2 +- 5 files changed, 24 insertions(+), 13 deletions(-) diff --git a/data/map_header_banks.asm b/data/map_header_banks.asm index 9e0e0e20..70558042 100644 --- a/data/map_header_banks.asm +++ b/data/map_header_banks.asm @@ -66,7 +66,7 @@ MapHeaderBanks:: ; fc3e4 (3f:43e4) db BANK(CeruleanHouse1_h) db BANK(CeruleanPokecenter_h) db BANK(CeruleanGym_h) - db $07 ; db BANK(BikeShop_h) + db BANK(BikeShop_h) db $17 ; db BANK(CeruleanMart_h) db $12 ; db BANK(MtMoonPokecenter_h) db BANK(CeruleanHouseTrashed_h) diff --git a/data/map_header_pointers.asm b/data/map_header_pointers.asm index 599fecb2..362f9fa2 100644 --- a/data/map_header_pointers.asm +++ b/data/map_header_pointers.asm @@ -66,7 +66,7 @@ MapHeaderPointers:: ; fc1f2 (3f:41f2) dw CeruleanHouse1_h dw CeruleanPokecenter_h dw CeruleanGym_h - dw $5038 ; dw BikeShop_h + dw BikeShop_h dw $4757 ; dw CeruleanMart_h dw $52a9 ; dw MtMoonPokecenter_h dw CeruleanHouseTrashed_h ; copy diff --git a/main.asm b/main.asm index 277b867f..e5100d0e 100755 --- a/main.asm +++ b/main.asm @@ -352,7 +352,13 @@ INCLUDE "data/mapObjects/ceruleanhousetrashed.asm" INCLUDE "data/mapHeaders/ceruleanhouse1.asm" INCLUDE "scripts/ceruleanhouse1.asm" INCLUDE "data/mapObjects/ceruleanhouse1.asm" - dr $1d038,$1d7ae ; map scripts + +INCLUDE "data/mapHeaders/bikeshop.asm" +INCLUDE "scripts/bikeshop.asm" +INCLUDE "data/mapObjects/bikeshop.asm" +BikeShopBlocks: +INCBIN "maps/bikeshop.blk" + dr $1d1a4,$1d7ae ; map scripts INCLUDE "data/mapHeaders/diglettscaveroute2.asm" INCLUDE "scripts/diglettscaveroute2.asm" diff --git a/scripts/bikeshop.asm b/scripts/bikeshop.asm index e639caf9..5723849d 100755 --- a/scripts/bikeshop.asm +++ b/scripts/bikeshop.asm @@ -1,5 +1,6 @@ BikeShopScript: ; 1d73c (7:573c) - jp EnableAutoTextBoxDrawing + call EnableAutoTextBoxDrawing + ret BikeShopTextPointers: ; 1d73f (7:573f) dw BikeShopText1 @@ -13,6 +14,7 @@ BikeShopText1: ; 1d745 (7:5745) ld hl, BikeShopText_1d82f call PrintText jp .Done + .asm_260d4 ld b, BIKE_VOUCHER call IsItemInBag @@ -29,10 +31,12 @@ BikeShopText1: ; 1d745 (7:5745) ld hl, BikeShopText_1d824 call PrintText jr .Done + .BagFull ld hl, BikeShopText_1d834 call PrintText jr .Done + .asm_41190 ld hl, BikeShopText_1d810 call PrintText @@ -50,8 +54,7 @@ BikeShopText1: ; 1d745 (7:5745) ld hl, wd730 set 6, [hl] coord hl, 0, 0 - ld b, $4 - ld c, $f + lb bc, 4, 15 call TextBoxBorder call UpdateSprites coord hl, 2, 2 @@ -62,11 +65,12 @@ BikeShopText1: ; 1d745 (7:5745) call PlaceString ld hl, BikeShopText_1d815 call PrintText - call HandleMenuInput - bit 1, a - jr nz, .cancel + ; This fixes the bike shop instatext glitch ld hl, wd730 res 6, [hl] + call HandleMenuInput + bit BIT_B_BUTTON, a + jr nz, .cancel ld a, [wCurrentMenuItem] and a jr nz, .cancel @@ -94,7 +98,7 @@ BikeShopText_1d815: ; 1d815 (7:5815) db "@" BikeShopCantAffordText: ; 1d81a (7:581a) - TX_FAR _BikeShopCantAffordText + TX_FAR _BikeShopText_1d81a db "@" BikeShopText_1d81f: ; 1d81f (7:581f) @@ -103,10 +107,11 @@ BikeShopText_1d81f: ; 1d81f (7:581f) BikeShopText_1d824: ; 1d824 (7:5824) TX_FAR _BikeShopText_1d824 - db $11, "@" + TX_SFX_KEY_ITEM + db "@" BikeShopComeAgainText: ; 1d82a (7:582a) - TX_FAR _BikeShopComeAgainText + TX_FAR _BikeShopText_1d82a db "@" BikeShopText_1d82f: ; 1d82f (7:582f) diff --git a/text/maps/bike_shop.asm b/text/maps/bike_shop.asm index 252dffdc..723021a1 100644 --- a/text/maps/bike_shop.asm +++ b/text/maps/bike_shop.asm @@ -25,7 +25,7 @@ _BikeShopText_1d81f:: prompt _BikeShopText_1d824:: - text $52, " exchanged" + text " exchanged" line "the BIKE VOUCHER" cont "for a BICYCLE.@@" -- cgit v1.2.3 From b9df6fe86f1afa711727badee61a5bfa71030c35 Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Mon, 30 May 2016 10:09:42 -0400 Subject: Cerulean Mart --- data/map_header_banks.asm | 2 +- data/map_header_pointers.asm | 2 +- main.asm | 11 +++++++---- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/data/map_header_banks.asm b/data/map_header_banks.asm index 70558042..cbc4395c 100644 --- a/data/map_header_banks.asm +++ b/data/map_header_banks.asm @@ -67,7 +67,7 @@ MapHeaderBanks:: ; fc3e4 (3f:43e4) db BANK(CeruleanPokecenter_h) db BANK(CeruleanGym_h) db BANK(BikeShop_h) - db $17 ; db BANK(CeruleanMart_h) + db BANK(CeruleanMart_h) db $12 ; db BANK(MtMoonPokecenter_h) db BANK(CeruleanHouseTrashed_h) db $07 ; db BANK(Route5Gate_h) diff --git a/data/map_header_pointers.asm b/data/map_header_pointers.asm index 362f9fa2..5131cf67 100644 --- a/data/map_header_pointers.asm +++ b/data/map_header_pointers.asm @@ -67,7 +67,7 @@ MapHeaderPointers:: ; fc1f2 (3f:41f2) dw CeruleanPokecenter_h dw CeruleanGym_h dw BikeShop_h - dw $4757 ; dw CeruleanMart_h + dw CeruleanMart_h dw $52a9 ; dw MtMoonPokecenter_h dw CeruleanHouseTrashed_h ; copy dw $5831 ; dw Route5Gate_h diff --git a/main.asm b/main.asm index e5100d0e..f4f08f0c 100755 --- a/main.asm +++ b/main.asm @@ -320,7 +320,6 @@ INCLUDE "data/mapHeaders/viridianmart.asm" INCLUDE "scripts/viridianmart.asm" INCLUDE "data/mapObjects/viridianmart.asm" ViridianMartBlocks: -CeruleanMartBlocks: VermilionMartBlocks: LavenderMartBlocks: CeladonMartBlocks: @@ -1114,8 +1113,8 @@ INCLUDE "engine/overworld/saffron_guards.asm" SECTION "bank17",ROMX,BANK[$17] - - dr $5c000,$5c010 +CeruleanMartBlocks: +INCBIN "maps/ceruleanmart.blk" RedsHouse2FBlocks: INCBIN "maps/redshouse2f.blk" Museum1FBlocks: @@ -1172,7 +1171,11 @@ INCLUDE "data/mapObjects/ceruleangym.asm" CeruleanGymBlocks: INCBIN "maps/ceruleangym.blk" - dr $5c757,$5d485 +INCLUDE "data/mapHeaders/ceruleanmart.asm" +INCLUDE "scripts/ceruleanmart.asm" +INCLUDE "data/mapObjects/ceruleanmart.asm" + + dr $5c79c,$5d485 INCLUDE "data/mapHeaders/viridianforestexit.asm" INCLUDE "scripts/viridianforestexit.asm" -- cgit v1.2.3 From 6e3581df4b9cbc8cf14fc7948df5df70002cc062 Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Mon, 30 May 2016 11:38:46 -0400 Subject: Mt Moon Pokemon Center --- data/mapObjects/mtmoonpokecenter.asm | 3 +- data/map_header_banks.asm | 2 +- data/map_header_pointers.asm | 2 +- engine/bank3c.asm | 4 +- home/text.asm | 8 ++-- macros.asm | 90 +++++++++++++++++++++++++----------- main.asm | 13 ++++-- scripts/mtmoonpokecenter.asm | 72 ++++------------------------- scripts/mtmoonpokecenter2.asm | 66 ++++++++++++++++++++++++++ wram.asm | 6 +-- 10 files changed, 159 insertions(+), 107 deletions(-) create mode 100755 scripts/mtmoonpokecenter2.asm diff --git a/data/mapObjects/mtmoonpokecenter.asm b/data/mapObjects/mtmoonpokecenter.asm index d6cd35ba..935c4a40 100755 --- a/data/mapObjects/mtmoonpokecenter.asm +++ b/data/mapObjects/mtmoonpokecenter.asm @@ -7,13 +7,14 @@ MtMoonPokecenterObject: ; 0x49376 (size=56) db $0 ; signs - db $6 ; objects + db $7 ; objects object SPRITE_NURSE, $3, $1, STAY, DOWN, $1 ; person object SPRITE_BUG_CATCHER, $4, $3, STAY, UP, $2 ; person object SPRITE_GENTLEMAN, $7, $3, STAY, UP, $3 ; person object SPRITE_FAT_BALD_GUY, $a, $6, WALK, $2, $4 ; person object SPRITE_CLIPBOARD, $7, $2, STAY, NONE, $5 ; person object SPRITE_CABLE_CLUB_WOMAN, $b, $2, STAY, DOWN, $6 ; person + object SPRITE_CHANSEY, $4, $1, STAY, DOWN, $7 ; person ; warp-to EVENT_DISP MT_MOON_POKECENTER_WIDTH, $7, $3 diff --git a/data/map_header_banks.asm b/data/map_header_banks.asm index cbc4395c..ca060492 100644 --- a/data/map_header_banks.asm +++ b/data/map_header_banks.asm @@ -68,7 +68,7 @@ MapHeaderBanks:: ; fc3e4 (3f:43e4) db BANK(CeruleanGym_h) db BANK(BikeShop_h) db BANK(CeruleanMart_h) - db $12 ; db BANK(MtMoonPokecenter_h) + db BANK(MtMoonPokecenter_h) db BANK(CeruleanHouseTrashed_h) db $07 ; db BANK(Route5Gate_h) db $17 ; db BANK(UndergroundPathEntranceRoute5_h) diff --git a/data/map_header_pointers.asm b/data/map_header_pointers.asm index 5131cf67..d2ecea33 100644 --- a/data/map_header_pointers.asm +++ b/data/map_header_pointers.asm @@ -68,7 +68,7 @@ MapHeaderPointers:: ; fc1f2 (3f:41f2) dw CeruleanGym_h dw BikeShop_h dw CeruleanMart_h - dw $52a9 ; dw MtMoonPokecenter_h + dw MtMoonPokecenter_h dw CeruleanHouseTrashed_h ; copy dw $5831 ; dw Route5Gate_h dw $55a8 ; dw UndergroundPathEntranceRoute5_h diff --git a/engine/bank3c.asm b/engine/bank3c.asm index 5a18d55b..d176511c 100644 --- a/engine/bank3c.asm +++ b/engine/bank3c.asm @@ -485,7 +485,9 @@ CeladonMansion1Text_f1eee: TX_FAR _CeladonMansion1Text12 db "@" - dr $f1ef3, $f220e + dr $f1ef3, $f218c + +INCLUDE "scripts/mtmoonpokecenter2.asm" INCLUDE "data/mapHeaders/beach_house.asm" INCLUDE "scripts/beach_house.asm" diff --git a/home/text.asm b/home/text.asm index 437a5c79..a0e860d9 100644 --- a/home/text.asm +++ b/home/text.asm @@ -382,9 +382,9 @@ TextCommandProcessor:: ; 1919 (0:1919) xor e ld [wLetterPrintingDelayFlags], a ld a, c - ld [wUnusedCC3A], a + ld [wTextDestinationTileAddrBuffer], a ld a, b - ld [wUnusedCC3B], a + ld [wTextDestinationTileAddrBuffer + 1], a NextTextCommand:: ; 192e (0:192e) ld a, [hli] @@ -493,10 +493,10 @@ TextCommand02:: ; 197e (0:197e) TextCommand03:: ; 1990 (0:1990) pop hl ld a, [hli] - ld [wUnusedCC3A], a + ld [wTextDestinationTileAddrBuffer], a ld c, a ld a, [hli] - ld [wUnusedCC3B], a + ld [wTextDestinationTileAddrBuffer + 1], a ld b, a jp NextTextCommand diff --git a/macros.asm b/macros.asm index 6ee88391..ef0b9f01 100644 --- a/macros.asm +++ b/macros.asm @@ -153,44 +153,61 @@ bcd3: MACRO coins equs "bcd2" money equs "bcd3" +validateCoords: MACRO + if \1 >= SCREEN_WIDTH + fail "x coord out of range" + endc + if \2 >= SCREEN_HEIGHT + fail "y coord out of range" + endc + endm + ;\1 = r ;\2 = X ;\3 = Y +;\4 = which tilemap (optional) coord: MACRO + validateCoords \2, \3 if _NARG >= 4 - ld \1, \4 + 20 * \3 + \2 + ld \1, \4 + SCREEN_WIDTH * \3 + \2 else - ld \1, wTileMap + 20 * \3 + \2 + ld \1, wTileMap + SCREEN_WIDTH * \3 + \2 endc ENDM ;\1 = X ;\2 = Y +;\3 = which tilemap (optional) aCoord: MACRO + validateCoords \1, \2 if _NARG >= 3 - ld a, [\3 + 20 * \2 + \1] + ld a, [\3 + SCREEN_WIDTH * \2 + \1] else - ld a, [wTileMap + 20 * \2 + \1] + ld a, [wTileMap + SCREEN_WIDTH * \2 + \1] endc ENDM ;\1 = X ;\2 = Y +;\3 = which tilemap (optional) Coorda: MACRO + validateCoords \1, \2 if _NARG >= 3 - ld [\3 + 20 * \2 + \1], a + ld [\3 + SCREEN_WIDTH * \2 + \1], a else - ld [wTileMap + 20 * \2 + \1], a + ld [wTileMap + SCREEN_WIDTH * \2 + \1], a endc ENDM ;\1 = X ;\2 = Y +;\3 = which tilemap (optional) dwCoord: MACRO + validateCoords \1, \2 if _NARG >= 3 - dw \3 + 20 * \2 + \1 + dw \3 + SCREEN_WIDTH * \2 + \1 else - dw wTileMap + 20 * \2 + \1 + dw wTileMap + SCREEN_WIDTH * \2 + \1 endc ENDM @@ -266,6 +283,15 @@ dba: MACRO dbw BANK(\1), \1 ENDM +dwb: MACRO + dw \1 + db \2 + ENDM + +dab: MACRO + dwb \1, BANK(\1) + ENDM + dbbw: MACRO db \1, \2 dw \3 @@ -277,22 +303,6 @@ RGB: MACRO ENDM ; text macros -TX_NUM: MACRO -; print a big-endian decimal number. -; \1: address to read from -; \2: number of bytes to read -; \3: number of digits to display - db $09 - dw \1 - db \2 << 4 | \3 - ENDM - -TX_FAR: MACRO - db $17 - dw \1 - db BANK(\1) - ENDM - ; text engine command $1 TX_RAM: MACRO ; prints text to screen @@ -307,12 +317,26 @@ TX_BCD: MACRO db \2 ENDM -TX_ASM: MACRO - db $08 +TX_CURSOR: MACRO +; Move cursor to (\1, \2) +; \1: X coord (0 - 19) +; \2: Y coord (0 - 17) + db $3 + dwCoord \1, \2 ENDM -TX_BUTTON_SOUND: MACRO - db $06 +TX_LINE EQUS "db $05" +TX_BUTTON_SOUND EQUS "db $06" +TX_ASM EQUS "db $08" + +TX_NUM: MACRO +; print a big-endian decimal number. +; \1: address to read from +; \2: number of bytes to read +; \3: number of digits to display + db $09 + dw \1 + db \2 << 4 | \3 ENDM TX_SFX_ITEM EQUS "db $0b" @@ -320,6 +344,16 @@ TX_WAIT_BUTTON EQUS "db $0d" TX_SFX_CONGRATS EQUS "db $10" TX_SFX_KEY_ITEM EQUS "db $11" +TX_FAR: MACRO +; 17AAAABB (call text at BB:AAAA) + db $17 + dab \1 + ENDM + + +TX_POKECENTER_PC EQUS "db $f6" +TX_POKECENTER_NURSE EQUS "db $ff" + ; Predef macro. add_predef: MACRO \1Predef:: diff --git a/main.asm b/main.asm index f4f08f0c..58846267 100755 --- a/main.asm +++ b/main.asm @@ -765,7 +765,6 @@ LavenderPokecenterBlocks: CeladonPokecenterBlocks: FuchsiaPokecenterBlocks: CinnabarPokecenterBlocks: -MtMoonPokecenterBlocks: RockTunnelPokecenterBlocks: INCBIN "maps/viridianpokecenter.blk" dr $440fb,$4410b @@ -790,7 +789,9 @@ INCLUDE "data/mapHeaders/route7.asm" INCLUDE "data/mapObjects/route7.asm" Route7Blocks: ; 48051 INCBIN "maps/route7.blk" - dr $480ab,$480eb +MtMoonPokecenterBlocks: +INCBIN "maps/mtmoonpokecenter.blk" + dr $480c7,$480eb INCLUDE "scripts/route7.asm" INCLUDE "data/mapHeaders/redshouse1f.asm" @@ -798,7 +799,13 @@ INCLUDE "scripts/redshouse1f.asm" INCLUDE "data/mapObjects/redshouse1f.asm" RedsHouse1FBlocks: INCBIN "maps/redshouse1f.blk" - dr $48157,$49953 + dr $48157,$492a9 + +INCLUDE "data/mapHeaders/mtmoonpokecenter.asm" +INCLUDE "scripts/mtmoonpokecenter.asm" +INCLUDE "data/mapObjects/mtmoonpokecenter.asm" + + dr $49330,$49953 INCLUDE "data/mapHeaders/mtmoon1.asm" INCLUDE "scripts/mtmoon1.asm" diff --git a/scripts/mtmoonpokecenter.asm b/scripts/mtmoonpokecenter.asm index fd3e4e53..888cab4c 100755 --- a/scripts/mtmoonpokecenter.asm +++ b/scripts/mtmoonpokecenter.asm @@ -9,9 +9,10 @@ MtMoonPokecenterTextPointers: ; 492d5 (12:52d5) dw MtMoonPokecenterText4 dw MtMoonPokecenterText5 dw MtMoonPokecenterText6 + dw MtMoonPokecenterText7 MtMoonPokecenterText1: ; 492e1 (12:52e1) - db $ff + TX_POKECENTER_NURSE MtMoonPokecenterText2: ; 492e2 (12:52e2) TX_FAR _MtMoonPokecenterText1 @@ -23,72 +24,17 @@ MtMoonPokecenterText3: ; 492e7 (12:52e7) MtMoonPokecenterText4: ; 492ec (12:52ec) TX_ASM - CheckEvent EVENT_BOUGHT_MAGIKARP, 1 - jp c, .alreadyBoughtMagikarp - ld hl, MtMoonPokecenterText_4935c - call PrintText - ld a, MONEY_BOX - ld [wTextBoxID], a - call DisplayTextBoxID - call YesNoChoice - ld a, [wCurrentMenuItem] - and a - jp nz, .choseNo - ld [hMoney], a - ld [hMoney + 2], a - ld a, $5 - ld [hMoney + 1], a - call HasEnoughMoney - jr nc, .enoughMoney - ld hl, MtMoonPokecenterText_49366 - jr .printText -.enoughMoney - lb bc, MAGIKARP, 5 - call GivePokemon - jr nc, .done - xor a - ld [wPriceTemp], a - ld [wPriceTemp + 2], a - ld a, $5 - ld [wPriceTemp + 1], a - ld hl, wPriceTemp + 2 - ld de, wPlayerMoney + 2 - ld c, $3 - predef SubBCDPredef - ld a, MONEY_BOX - ld [wTextBoxID], a - call DisplayTextBoxID - SetEvent EVENT_BOUGHT_MAGIKARP - jr .done -.choseNo - ld hl, MtMoonPokecenterText_49361 - jr .printText -.alreadyBoughtMagikarp - ld hl, MtMoonPokecenterText_4936b -.printText - call PrintText -.done + callab Func_f218c jp TextScriptEnd -MtMoonPokecenterText_4935c: ; 4935c (12:535c) - TX_FAR _MtMoonPokecenterText_4935c - db "@" - -MtMoonPokecenterText_49361: ; 49361 (12:5361) - TX_FAR _MtMoonPokecenterText_49361 - db "@" - -MtMoonPokecenterText_49366: ; 49366 (12:5366) - TX_FAR _MtMoonPokecenterText_49366 - db "@" - -MtMoonPokecenterText_4936b: ; 4936b (12:536b) - TX_FAR _MtMoonPokecenterText_4936b - db "@" - MtMoonPokecenterText5: ; 49370 (12:5370) TX_FAR _MtMoonPokecenterText5 db "@" MtMoonPokecenterText6: ; 49375 (12:5375) - db $f6 + TX_POKECENTER_PC + +MtMoonPokecenterText7: + TX_ASM + callab Func_f0f12 + jp TextScriptEnd diff --git a/scripts/mtmoonpokecenter2.asm b/scripts/mtmoonpokecenter2.asm new file mode 100755 index 00000000..fa42f440 --- /dev/null +++ b/scripts/mtmoonpokecenter2.asm @@ -0,0 +1,66 @@ +Func_f218c: + CheckEvent EVENT_BOUGHT_MAGIKARP, 1 + jp c, .alreadyBoughtMagikarp + ld hl, MtMoonPokecenterText_4935c + call PrintText + ld a, MONEY_BOX + ld [wTextBoxID], a + call DisplayTextBoxID + call YesNoChoice + ld a, [wCurrentMenuItem] + and a + jp nz, .choseNo + ; $000500 + xor a + ld [hMoney], a + ld [hMoney + 2], a + ld a, $5 + ld [hMoney + 1], a + call HasEnoughMoney + jr nc, .enoughMoney + ld hl, MtMoonPokecenterText_49366 + jr .printText +.enoughMoney + lb bc, MAGIKARP, 5 + call GivePokemon + jr nc, .done + ; $000500 + xor a + ld [wPriceTemp], a + ld [wPriceTemp + 2], a + ld a, $5 + ld [wPriceTemp + 1], a + ld hl, wPriceTemp + 2 + ld de, wPlayerMoney + 2 + ld c, $3 + predef SubBCDPredef + ld a, MONEY_BOX + ld [wTextBoxID], a + call DisplayTextBoxID + SetEvent EVENT_BOUGHT_MAGIKARP + jr .done +.choseNo + ld hl, MtMoonPokecenterText_49361 + jr .printText +.alreadyBoughtMagikarp + ld hl, MtMoonPokecenterText_4936b +.printText + call PrintText +.done + ret + +MtMoonPokecenterText_4935c: ; 4935c (12:535c) + TX_FAR _MtMoonPokecenterText_4935c + db "@" + +MtMoonPokecenterText_49361: ; 49361 (12:5361) + TX_FAR _MtMoonPokecenterText_49361 + db "@" + +MtMoonPokecenterText_49366: ; 49366 (12:5366) + TX_FAR _MtMoonPokecenterText_49366 + db "@" + +MtMoonPokecenterText_4936b: ; 4936b (12:536b) + TX_FAR _MtMoonPokecenterText_4936b + db "@" diff --git a/wram.asm b/wram.asm index fbfcc288..610574da 100755 --- a/wram.asm +++ b/wram.asm @@ -386,11 +386,7 @@ wTradeCenterPointerTableIndex:: ; cc38 ds 1 -wUnusedCC3A:: ; cc3a - ds 1 - -wUnusedCC3B:: ; cc3b - ds 1 +wTextDestinationTileAddrBuffer:: dw ; cc3a wDoNotWaitForButtonPressAfterDisplayingText:: ; cc3c ; if non-zero, skip waiting for a button press after displaying text in DisplayTextID -- cgit v1.2.3 From 8b52fbcfb03b559979b6f480d49fd4e9764aee4b Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Mon, 30 May 2016 11:44:44 -0400 Subject: Route 5 gate --- data/map_header_banks.asm | 2 +- data/map_header_pointers.asm | 2 +- main.asm | 9 ++++++++- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/data/map_header_banks.asm b/data/map_header_banks.asm index ca060492..44795d97 100644 --- a/data/map_header_banks.asm +++ b/data/map_header_banks.asm @@ -70,7 +70,7 @@ MapHeaderBanks:: ; fc3e4 (3f:43e4) db BANK(CeruleanMart_h) db BANK(MtMoonPokecenter_h) db BANK(CeruleanHouseTrashed_h) - db $07 ; db BANK(Route5Gate_h) + db BANK(Route5Gate_h) db $17 ; db BANK(UndergroundPathEntranceRoute5_h) db $15 ; db BANK(DayCareM_h) db $07 ; db BANK(Route6Gate_h) diff --git a/data/map_header_pointers.asm b/data/map_header_pointers.asm index d2ecea33..b6ec84ca 100644 --- a/data/map_header_pointers.asm +++ b/data/map_header_pointers.asm @@ -70,7 +70,7 @@ MapHeaderPointers:: ; fc1f2 (3f:41f2) dw CeruleanMart_h dw MtMoonPokecenter_h dw CeruleanHouseTrashed_h ; copy - dw $5831 ; dw Route5Gate_h + dw Route5Gate_h dw $55a8 ; dw UndergroundPathEntranceRoute5_h dw $6233 ; dw DayCareM_h dw $593b ; dw Route6Gate_h diff --git a/main.asm b/main.asm index 58846267..890cb726 100755 --- a/main.asm +++ b/main.asm @@ -366,7 +366,14 @@ INCLUDE "data/mapObjects/diglettscaveroute2.asm" INCLUDE "data/mapHeaders/route2house.asm" INCLUDE "scripts/route2house.asm" INCLUDE "data/mapObjects/route2house.asm" - dr $1d831,$1e2ae ; map scripts + +INCLUDE "data/mapHeaders/route5gate.asm" +INCLUDE "scripts/route5gate.asm" +INCLUDE "data/mapObjects/route5gate.asm" +Route5GateBlocks: ; 1d92f +INCBIN "maps/route5gate.blk" + + dr $1d93b,$1e2ae ; map scripts INCLUDE "engine/menu/oaks_pc.asm" -- cgit v1.2.3 From a06c558e2cfdeb47dc9af0a2ebeb5906802b4c7e Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Mon, 30 May 2016 12:02:01 -0400 Subject: Route 5 Underground Path Gate --- data/map_header_banks.asm | 2 +- data/map_header_pointers.asm | 2 +- main.asm | 9 +++++++-- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/data/map_header_banks.asm b/data/map_header_banks.asm index 44795d97..29f04f55 100644 --- a/data/map_header_banks.asm +++ b/data/map_header_banks.asm @@ -71,7 +71,7 @@ MapHeaderBanks:: ; fc3e4 (3f:43e4) db BANK(MtMoonPokecenter_h) db BANK(CeruleanHouseTrashed_h) db BANK(Route5Gate_h) - db $17 ; db BANK(UndergroundPathEntranceRoute5_h) + db BANK(UndergroundPathEntranceRoute5_h) db $15 ; db BANK(DayCareM_h) db $07 ; db BANK(Route6Gate_h) db $17 ; db BANK(UndergroundPathEntranceRoute6_h) diff --git a/data/map_header_pointers.asm b/data/map_header_pointers.asm index b6ec84ca..792fd1a3 100644 --- a/data/map_header_pointers.asm +++ b/data/map_header_pointers.asm @@ -71,7 +71,7 @@ MapHeaderPointers:: ; fc1f2 (3f:41f2) dw MtMoonPokecenter_h dw CeruleanHouseTrashed_h ; copy dw Route5Gate_h - dw $55a8 ; dw UndergroundPathEntranceRoute5_h + dw UndergroundPathEntranceRoute5_h dw $6233 ; dw DayCareM_h dw $593b ; dw Route6Gate_h dw $55ee ; dw UndergroundPathEntranceRoute6_h diff --git a/main.asm b/main.asm index 890cb726..34547349 100755 --- a/main.asm +++ b/main.asm @@ -1137,7 +1137,8 @@ Museum2FBlocks: INCBIN "maps/museum2f.blk" PewterPokecenterBlocks: INCBIN "maps/pewterpokecenter.blk" - dr $5c080,$5c090 +UndergroundPathEntranceRoute5Blocks: +INCBIN "maps/undergroundpathentranceroute5.blk" ViridianForestEntranceBlocks: ViridianForestExitBlocks: Route2GateBlocks: @@ -1203,7 +1204,11 @@ INCLUDE "data/mapHeaders/viridianforestentrance.asm" INCLUDE "scripts/viridianforestentrance.asm" INCLUDE "data/mapObjects/viridianforestentrance.asm" - dr $5d5a8,$5da70 +INCLUDE "data/mapHeaders/undergroundpathentranceroute5.asm" +INCLUDE "scripts/undergroundpathentranceroute5.asm" +INCLUDE "data/mapObjects/undergroundpathentranceroute5.asm" + + dr $5d5ee,$5da70 INCLUDE "engine/evolution.asm" -- cgit v1.2.3 From 3eae968b305cbc80fa7d09447046001aa0bd39f6 Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Mon, 30 May 2016 13:59:23 -0400 Subject: Daycare --- data/map_header_banks.asm | 2 +- data/map_header_pointers.asm | 2 +- main.asm | 12 ++++++++++-- scripts/daycarem.asm | 29 +++++++++++++++++++++++++++++ 4 files changed, 41 insertions(+), 4 deletions(-) diff --git a/data/map_header_banks.asm b/data/map_header_banks.asm index 29f04f55..1d0e53e5 100644 --- a/data/map_header_banks.asm +++ b/data/map_header_banks.asm @@ -72,7 +72,7 @@ MapHeaderBanks:: ; fc3e4 (3f:43e4) db BANK(CeruleanHouseTrashed_h) db BANK(Route5Gate_h) db BANK(UndergroundPathEntranceRoute5_h) - db $15 ; db BANK(DayCareM_h) + db BANK(DayCareM_h) db $07 ; db BANK(Route6Gate_h) db $17 ; db BANK(UndergroundPathEntranceRoute6_h) db $17 ; db BANK(UndergroundPathEntranceRoute6_h) ;FREEZE diff --git a/data/map_header_pointers.asm b/data/map_header_pointers.asm index 792fd1a3..edc33a9a 100644 --- a/data/map_header_pointers.asm +++ b/data/map_header_pointers.asm @@ -72,7 +72,7 @@ MapHeaderPointers:: ; fc1f2 (3f:41f2) dw CeruleanHouseTrashed_h ; copy dw Route5Gate_h dw UndergroundPathEntranceRoute5_h - dw $6233 ; dw DayCareM_h + dw DayCareM_h dw $593b ; dw Route6Gate_h dw $55ee ; dw UndergroundPathEntranceRoute6_h dw $55ee ; dw UndergroundPathEntranceRoute6_h ; unused diff --git a/main.asm b/main.asm index 34547349..dcdba3e0 100755 --- a/main.asm +++ b/main.asm @@ -1041,7 +1041,10 @@ INCLUDE "data/mapHeaders/route21.asm" INCLUDE "data/mapObjects/route21.asm" Route21Blocks: ; 5507d INCBIN "maps/route21.blk" - dr $5523f,$5525f + +DayCareMBlocks: +INCBIN "maps/daycarem.blk" + dr $5524f,$5525f INCLUDE "engine/battle/experience.asm" @@ -1057,7 +1060,12 @@ INCLUDE "scripts/route19.asm" INCLUDE "scripts/route21.asm" ; vermilion house 2 - dr $56054,$56714 + dr $56054,$56233 + +INCLUDE "data/mapHeaders/daycarem.asm" +INCLUDE "scripts/daycarem.asm" +INCLUDE "data/mapObjects/daycarem.asm" + dr $564a5,$56714 INCLUDE "engine/menu/diploma_1.asm" diff --git a/scripts/daycarem.asm b/scripts/daycarem.asm index 4a46e648..b80b3dac 100755 --- a/scripts/daycarem.asm +++ b/scripts/daycarem.asm @@ -50,11 +50,21 @@ DayCareMText1: ; 56254 (15:6254) ld a, PARTY_TO_DAYCARE ld [wMoveMonType], a call MoveMon + callab IsThisPartymonStarterPikachu + push af xor a ld [wRemoveMonFromBox], a call RemovePokemon + pop af + jr c, .depositedPikachuIntoDayCare ld a, [wcf91] call PlayCry + jr .asm_562e3 + +.depositedPikachuIntoDayCare + ldpikacry e, PikachuCry28 + callab PlayPikachuSoundClip +.asm_562e3 ld hl, DayCareComeSeeMeInAWhileText jp .done @@ -197,8 +207,27 @@ DayCareMText1: ; 56254 (15:6254) ld a, [hl] ld [de], a + ld a, [wPartyCount] + dec a + ld [wWhichPokemon], a + callab IsThisPartymonStarterPikachu + jr c, .withdrewPikachuFromDayCare ld a, [wcf91] call PlayCry + jr .asm_56430 + +.withdrewPikachuFromDayCare + ld a, $6 + ld [wd431], a + + ; GameFreak... TriHard + ld hl, Func_fc4fa + ld b, BANK(Func_fc4fa) + ld hl, Bankswitch + + ldpikacry e, PikachuCry35 + callab PlayPikachuSoundClip +.asm_56430 ld hl, DayCareGotMonBackText jr .done -- cgit v1.2.3 From f2b312778d2227ffe20c983680f0fba2c38a64a8 Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Mon, 30 May 2016 14:46:21 -0400 Subject: Route 6 gate --- data/map_header_banks.asm | 2 +- data/map_header_pointers.asm | 2 +- main.asm | 8 +++++++- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/data/map_header_banks.asm b/data/map_header_banks.asm index 1d0e53e5..1f228386 100644 --- a/data/map_header_banks.asm +++ b/data/map_header_banks.asm @@ -73,7 +73,7 @@ MapHeaderBanks:: ; fc3e4 (3f:43e4) db BANK(Route5Gate_h) db BANK(UndergroundPathEntranceRoute5_h) db BANK(DayCareM_h) - db $07 ; db BANK(Route6Gate_h) + db BANK(Route6Gate_h) db $17 ; db BANK(UndergroundPathEntranceRoute6_h) db $17 ; db BANK(UndergroundPathEntranceRoute6_h) ;FREEZE db $07 ; db BANK(Route7Gate_h) diff --git a/data/map_header_pointers.asm b/data/map_header_pointers.asm index edc33a9a..1f3f9a63 100644 --- a/data/map_header_pointers.asm +++ b/data/map_header_pointers.asm @@ -73,7 +73,7 @@ MapHeaderPointers:: ; fc1f2 (3f:41f2) dw Route5Gate_h dw UndergroundPathEntranceRoute5_h dw DayCareM_h - dw $593b ; dw Route6Gate_h + dw Route6Gate_h dw $55ee ; dw UndergroundPathEntranceRoute6_h dw $55ee ; dw UndergroundPathEntranceRoute6_h ; unused dw $59fe ; dw Route7Gate_h diff --git a/main.asm b/main.asm index dcdba3e0..4d069468 100755 --- a/main.asm +++ b/main.asm @@ -373,7 +373,13 @@ INCLUDE "data/mapObjects/route5gate.asm" Route5GateBlocks: ; 1d92f INCBIN "maps/route5gate.blk" - dr $1d93b,$1e2ae ; map scripts +INCLUDE "data/mapHeaders/route6gate.asm" +INCLUDE "scripts/route6gate.asm" +INCLUDE "data/mapObjects/route6gate.asm" +Route6GateBlocks: ; 1d9f2 +INCBIN "maps/route6gate.blk" + + dr $1d9fe,$1e2ae ; map scripts INCLUDE "engine/menu/oaks_pc.asm" -- cgit v1.2.3 From 76aba242515e5ed5528758f8c5f279e9eefa71cd Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Mon, 30 May 2016 14:49:09 -0400 Subject: Route 6 underground entrance --- data/map_header_banks.asm | 4 ++-- data/map_header_pointers.asm | 4 ++-- main.asm | 7 ++++++- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/data/map_header_banks.asm b/data/map_header_banks.asm index 1f228386..7ff0e938 100644 --- a/data/map_header_banks.asm +++ b/data/map_header_banks.asm @@ -74,8 +74,8 @@ MapHeaderBanks:: ; fc3e4 (3f:43e4) db BANK(UndergroundPathEntranceRoute5_h) db BANK(DayCareM_h) db BANK(Route6Gate_h) - db $17 ; db BANK(UndergroundPathEntranceRoute6_h) - db $17 ; db BANK(UndergroundPathEntranceRoute6_h) ;FREEZE + db BANK(UndergroundPathEntranceRoute6_h) + db BANK(UndergroundPathEntranceRoute6_h) ;FREEZE db $07 ; db BANK(Route7Gate_h) db $17 ; db BANK(UndergroundPathEntranceRoute7_h) db $17 ; db BANK(UndergroundPathEntranceRoute7Copy_h) ;FREEZE diff --git a/data/map_header_pointers.asm b/data/map_header_pointers.asm index 1f3f9a63..7cd69725 100644 --- a/data/map_header_pointers.asm +++ b/data/map_header_pointers.asm @@ -74,8 +74,8 @@ MapHeaderPointers:: ; fc1f2 (3f:41f2) dw UndergroundPathEntranceRoute5_h dw DayCareM_h dw Route6Gate_h - dw $55ee ; dw UndergroundPathEntranceRoute6_h - dw $55ee ; dw UndergroundPathEntranceRoute6_h ; unused + dw UndergroundPathEntranceRoute6_h + dw UndergroundPathEntranceRoute6_h ; unused dw $59fe ; dw Route7Gate_h dw $562b ; dw UndergroundPathEntranceRoute7_h dw $5668 ; dw UndergroundPathEntranceRoute7Copy_h diff --git a/main.asm b/main.asm index 4d069468..9c803df4 100755 --- a/main.asm +++ b/main.asm @@ -1152,6 +1152,7 @@ INCBIN "maps/museum2f.blk" PewterPokecenterBlocks: INCBIN "maps/pewterpokecenter.blk" UndergroundPathEntranceRoute5Blocks: +UndergroundPathEntranceRoute6Blocks: INCBIN "maps/undergroundpathentranceroute5.blk" ViridianForestEntranceBlocks: ViridianForestExitBlocks: @@ -1222,7 +1223,11 @@ INCLUDE "data/mapHeaders/undergroundpathentranceroute5.asm" INCLUDE "scripts/undergroundpathentranceroute5.asm" INCLUDE "data/mapObjects/undergroundpathentranceroute5.asm" - dr $5d5ee,$5da70 +INCLUDE "data/mapHeaders/undergroundpathentranceroute6.asm" +INCLUDE "scripts/undergroundpathentranceroute6.asm" +INCLUDE "data/mapObjects/undergroundpathentranceroute6.asm" + + dr $5d62b,$5da70 INCLUDE "engine/evolution.asm" -- cgit v1.2.3 From 31c0460e683aaf52524b086968b535fa5e5c248c Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Mon, 30 May 2016 14:57:12 -0400 Subject: Route 7 underground path entrance --- data/map_header_banks.asm | 4 ++-- data/map_header_pointers.asm | 4 ++-- main.asm | 12 +++++++++++- 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/data/map_header_banks.asm b/data/map_header_banks.asm index 7ff0e938..47b49442 100644 --- a/data/map_header_banks.asm +++ b/data/map_header_banks.asm @@ -77,8 +77,8 @@ MapHeaderBanks:: ; fc3e4 (3f:43e4) db BANK(UndergroundPathEntranceRoute6_h) db BANK(UndergroundPathEntranceRoute6_h) ;FREEZE db $07 ; db BANK(Route7Gate_h) - db $17 ; db BANK(UndergroundPathEntranceRoute7_h) - db $17 ; db BANK(UndergroundPathEntranceRoute7Copy_h) ;FREEZE + db BANK(UndergroundPathEntranceRoute7_h) + db BANK(UndergroundPathEntranceRoute7Copy_h) ;FREEZE db $07 ; db BANK(Route8Gate_h) db $07 ; db BANK(UndergroundPathEntranceRoute8_h) db $12 ; db BANK(RockTunnelPokecenter_h) diff --git a/data/map_header_pointers.asm b/data/map_header_pointers.asm index 7cd69725..be1bda24 100644 --- a/data/map_header_pointers.asm +++ b/data/map_header_pointers.asm @@ -77,8 +77,8 @@ MapHeaderPointers:: ; fc1f2 (3f:41f2) dw UndergroundPathEntranceRoute6_h dw UndergroundPathEntranceRoute6_h ; unused dw $59fe ; dw Route7Gate_h - dw $562b ; dw UndergroundPathEntranceRoute7_h - dw $5668 ; dw UndergroundPathEntranceRoute7Copy_h + dw UndergroundPathEntranceRoute7_h + dw UndergroundPathEntranceRoute7Copy_h dw $5ac5 ; dw Route8Gate_h dw $5b87 ; dw UndergroundPathEntranceRoute8_h ;id=80 dw $5330 ; dw RockTunnelPokecenter_h diff --git a/main.asm b/main.asm index 9c803df4..93fec92c 100755 --- a/main.asm +++ b/main.asm @@ -1153,6 +1153,8 @@ PewterPokecenterBlocks: INCBIN "maps/pewterpokecenter.blk" UndergroundPathEntranceRoute5Blocks: UndergroundPathEntranceRoute6Blocks: +UndergroundPathEntranceRoute7Blocks: +UndergroundPathEntranceRoute7CopyBlocks: INCBIN "maps/undergroundpathentranceroute5.blk" ViridianForestEntranceBlocks: ViridianForestExitBlocks: @@ -1227,7 +1229,15 @@ INCLUDE "data/mapHeaders/undergroundpathentranceroute6.asm" INCLUDE "scripts/undergroundpathentranceroute6.asm" INCLUDE "data/mapObjects/undergroundpathentranceroute6.asm" - dr $5d62b,$5da70 +INCLUDE "data/mapHeaders/undergroundpathentranceroute7.asm" +INCLUDE "scripts/undergroundpathentranceroute7.asm" +INCLUDE "data/mapObjects/undergroundpathentranceroute7.asm" + +INCLUDE "data/mapHeaders/undergroundpathentranceroute7copy.asm" +INCLUDE "scripts/undergroundpathentranceroute7copy.asm" +INCLUDE "data/mapObjects/undergroundpathentranceroute7copy.asm" + + dr $5d6ba,$5da70 INCLUDE "engine/evolution.asm" -- cgit v1.2.3 From 5f729c22b5b8bafc520f4f23f8577bcb18a8a452 Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Mon, 30 May 2016 15:16:58 -0400 Subject: Add missing file; route 7/8 gates and route 8 path entrance --- data/mapObjects/route7gate.asm | 2 +- data/mapObjects/route8gate.asm | 4 +-- data/map_header_banks.asm | 6 ++-- data/map_header_pointers.asm | 6 ++-- main.asm | 18 ++++++++++- scripts/pewterpokecenter2.asm | 72 ++++++++++++++++++++++++++++++++++++++++++ scripts/route8gate.asm | 2 +- 7 files changed, 99 insertions(+), 11 deletions(-) create mode 100755 scripts/pewterpokecenter2.asm diff --git a/data/mapObjects/route7gate.asm b/data/mapObjects/route7gate.asm index 8c618fc1..9e80ca39 100755 --- a/data/mapObjects/route7gate.asm +++ b/data/mapObjects/route7gate.asm @@ -4,7 +4,7 @@ Route7GateObject: ; 0x1e185 (size=42) db $4 ; warps db $3, $0, $3, $ff db $4, $0, $3, $ff - db $3, $5, $0, $ff + db $3, $5, $1, $ff db $4, $5, $1, $ff db $0 ; signs diff --git a/data/mapObjects/route8gate.asm b/data/mapObjects/route8gate.asm index 8c3fb54f..61d70dfc 100755 --- a/data/mapObjects/route8gate.asm +++ b/data/mapObjects/route8gate.asm @@ -2,9 +2,9 @@ Route8GateObject: ; 0x1e247 (size=42) db $a ; border block db $4 ; warps - db $3, $0, $0, $ff + db $3, $0, $1, $ff db $4, $0, $1, $ff - db $3, $5, $2, $ff + db $3, $5, $3, $ff db $4, $5, $3, $ff db $0 ; signs diff --git a/data/map_header_banks.asm b/data/map_header_banks.asm index 47b49442..074b5982 100644 --- a/data/map_header_banks.asm +++ b/data/map_header_banks.asm @@ -76,11 +76,11 @@ MapHeaderBanks:: ; fc3e4 (3f:43e4) db BANK(Route6Gate_h) db BANK(UndergroundPathEntranceRoute6_h) db BANK(UndergroundPathEntranceRoute6_h) ;FREEZE - db $07 ; db BANK(Route7Gate_h) + db BANK(Route7Gate_h) db BANK(UndergroundPathEntranceRoute7_h) db BANK(UndergroundPathEntranceRoute7Copy_h) ;FREEZE - db $07 ; db BANK(Route8Gate_h) - db $07 ; db BANK(UndergroundPathEntranceRoute8_h) + db BANK(Route8Gate_h) + db BANK(UndergroundPathEntranceRoute8_h) db $12 ; db BANK(RockTunnelPokecenter_h) db $11 ; db BANK(RockTunnel1_h) db $07 ; db BANK(PowerPlant_h) diff --git a/data/map_header_pointers.asm b/data/map_header_pointers.asm index be1bda24..a736462b 100644 --- a/data/map_header_pointers.asm +++ b/data/map_header_pointers.asm @@ -76,11 +76,11 @@ MapHeaderPointers:: ; fc1f2 (3f:41f2) dw Route6Gate_h dw UndergroundPathEntranceRoute6_h dw UndergroundPathEntranceRoute6_h ; unused - dw $59fe ; dw Route7Gate_h + dw Route7Gate_h dw UndergroundPathEntranceRoute7_h dw UndergroundPathEntranceRoute7Copy_h - dw $5ac5 ; dw Route8Gate_h - dw $5b87 ; dw UndergroundPathEntranceRoute8_h ;id=80 + dw Route8Gate_h + dw UndergroundPathEntranceRoute8_h ;id=80 dw $5330 ; dw RockTunnelPokecenter_h dw $4571 ; dw RockTunnel1_h dw $5bc4 ; dw PowerPlant_h diff --git a/main.asm b/main.asm index 93fec92c..2b8b5017 100755 --- a/main.asm +++ b/main.asm @@ -379,7 +379,23 @@ INCLUDE "data/mapObjects/route6gate.asm" Route6GateBlocks: ; 1d9f2 INCBIN "maps/route6gate.blk" - dr $1d9fe,$1e2ae ; map scripts +INCLUDE "data/mapHeaders/route7gate.asm" +INCLUDE "scripts/route7gate.asm" +INCLUDE "data/mapObjects/route7gate.asm" +Route7GateBlocks: ; 1dab9 +INCBIN "maps/route7gate.blk" + +INCLUDE "data/mapHeaders/route8gate.asm" +INCLUDE "scripts/route8gate.asm" +INCLUDE "data/mapObjects/route8gate.asm" +Route8GateBlocks: ; 1dab9 +INCBIN "maps/route8gate.blk" + +INCLUDE "data/mapHeaders/undergroundpathentranceroute8.asm" +INCLUDE "scripts/undergroundpathentranceroute8.asm" +INCLUDE "data/mapObjects/undergroundpathentranceroute8.asm" + + dr $1dbc4,$1e2ae ; map scripts INCLUDE "engine/menu/oaks_pc.asm" diff --git a/scripts/pewterpokecenter2.asm b/scripts/pewterpokecenter2.asm new file mode 100755 index 00000000..1aae37d1 --- /dev/null +++ b/scripts/pewterpokecenter2.asm @@ -0,0 +1,72 @@ +Func_f1d98: + ld hl, PewterPokecenterText_f1d9f + call PrintText + ret + +PewterPokecenterText_f1d9f: + TX_FAR _PewterPokecenterText2 + db "@" + +Func_f1da4: + ld a, $1 + ld [wDoNotWaitForButtonPressAfterDisplayingText], a + ld hl, PewterPokecenterText_f1e19 + call PrintText + call StopAllMusic + ld c, 32 + call DelayFrames + ld hl, JigglypuffSpinData + ld de, wJigglypuffFacingDirections + ld bc, JigglypuffSpinDataEnd - JigglypuffSpinData + call CopyData + ld a, [wSpriteStateData1 + 3 * $10 + 2] + ld hl, wJigglypuffFacingDirections +.asm_f1dc9 + cp [hl] + inc hl + jr nz, .asm_f1dc9 + dec hl + push hl + ld c, BANK(Music_JigglypuffSong) + ld a, MUSIC_JIGGLYPUFF_SONG + call PlayMusic + pop hl +.asm_f1dd7 + ld a, [hl] + ld [wSpriteStateData1 + 3 * $10 + 2], a + push hl + ld hl, wJigglypuffFacingDirections + ld de, wJigglypuffFacingDirections2 + ld bc, JigglypuffSpinDataEnd - JigglypuffSpinData + call CopyData + ld a, [wJigglypuffFacingDirections2] + ld [wcd42], a + pop hl + ld c, 24 + call DelayFrames + ld a, [wChannelSoundIDs] + ld b, a + ld a, [wChannelSoundIDs + 1] + or b + jr nz, .asm_f1dd7 + ld c, 48 + call DelayFrames + call PlayDefaultMusic + ld a, [wd472] + bit 7, a + ret z + callab Func_fce73 + ret c + call SetPikachuAsleep + ret + +PewterPokecenterText_f1e19: + TX_FAR _PewterPokecenterText5 + db "@" + +JigglypuffSpinData: + db $40 | SPRITE_FACING_DOWN + db $40 | SPRITE_FACING_LEFT + db $40 | SPRITE_FACING_UP + db $40 | SPRITE_FACING_RIGHT +JigglypuffSpinDataEnd: diff --git a/scripts/route8gate.asm b/scripts/route8gate.asm index fe2e3c3c..5a26b424 100755 --- a/scripts/route8gate.asm +++ b/scripts/route8gate.asm @@ -27,7 +27,7 @@ Route8GateScript0: ; 1e1ee (7:61ee) ld hl, CoordsData_1e22c call ArePlayerCoordsInArray ret nc - ld a, PLAYER_DIR_LEFT + ld a, PLAYER_DIR_UP ld [wPlayerMovingDirection], a xor a ld [hJoyHeld], a -- cgit v1.2.3 From a443384a21060a1077730b08a8981ef707ba8dfa Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Mon, 30 May 2016 15:53:23 -0400 Subject: Rock Tunnel Pokecenter --- data/mapObjects/rocktunnelpokecenter.asm | 5 +++-- data/map_header_banks.asm | 2 +- data/map_header_pointers.asm | 2 +- macros.asm | 2 +- main.asm | 8 ++++++-- scripts/mtmoonpokecenter.asm | 2 +- scripts/rocktunnelpokecenter.asm | 10 ++++++++-- 7 files changed, 21 insertions(+), 10 deletions(-) diff --git a/data/mapObjects/rocktunnelpokecenter.asm b/data/mapObjects/rocktunnelpokecenter.asm index d2645165..3cd937cf 100755 --- a/data/mapObjects/rocktunnelpokecenter.asm +++ b/data/mapObjects/rocktunnelpokecenter.asm @@ -7,11 +7,12 @@ RockTunnelPokecenterObject: ; 0x493d4 (size=44) db $0 ; signs - db $4 ; objects + db $5 ; objects object SPRITE_NURSE, $3, $1, STAY, DOWN, $1 ; person - object SPRITE_GENTLEMAN, $7, $3, WALK, $2, $2 ; person + object SPRITE_GENTLEMAN, $7, $3, STAY, DOWN, $2 ; person object SPRITE_FISHER2, $2, $5, STAY, NONE, $3 ; person object SPRITE_CABLE_CLUB_WOMAN, $b, $2, STAY, DOWN, $4 ; person + object SPRITE_CHANSEY, $4, $1, STAY, DOWN, $5 ; person ; warp-to EVENT_DISP ROCK_TUNNEL_POKECENTER_WIDTH, $7, $3 diff --git a/data/map_header_banks.asm b/data/map_header_banks.asm index 074b5982..95279061 100644 --- a/data/map_header_banks.asm +++ b/data/map_header_banks.asm @@ -81,7 +81,7 @@ MapHeaderBanks:: ; fc3e4 (3f:43e4) db BANK(UndergroundPathEntranceRoute7Copy_h) ;FREEZE db BANK(Route8Gate_h) db BANK(UndergroundPathEntranceRoute8_h) - db $12 ; db BANK(RockTunnelPokecenter_h) + db BANK(RockTunnelPokecenter_h) db $11 ; db BANK(RockTunnel1_h) db $07 ; db BANK(PowerPlant_h) db $12 ; db BANK(Route11Gate_h) diff --git a/data/map_header_pointers.asm b/data/map_header_pointers.asm index a736462b..5f74b05a 100644 --- a/data/map_header_pointers.asm +++ b/data/map_header_pointers.asm @@ -81,7 +81,7 @@ MapHeaderPointers:: ; fc1f2 (3f:41f2) dw UndergroundPathEntranceRoute7Copy_h dw Route8Gate_h dw UndergroundPathEntranceRoute8_h ;id=80 - dw $5330 ; dw RockTunnelPokecenter_h + dw RockTunnelPokecenter_h dw $4571 ; dw RockTunnel1_h dw $5bc4 ; dw PowerPlant_h dw $5396 ; dw Route11Gate_h diff --git a/macros.asm b/macros.asm index ef0b9f01..54fba2d3 100644 --- a/macros.asm +++ b/macros.asm @@ -351,7 +351,7 @@ TX_FAR: MACRO ENDM -TX_POKECENTER_PC EQUS "db $f6" +TX_CABLE_CLUB_RECEPTIONIST EQUS "db $f6" TX_POKECENTER_NURSE EQUS "db $ff" ; Predef macro. diff --git a/main.asm b/main.asm index 2b8b5017..4516a772 100755 --- a/main.asm +++ b/main.asm @@ -794,7 +794,6 @@ LavenderPokecenterBlocks: CeladonPokecenterBlocks: FuchsiaPokecenterBlocks: CinnabarPokecenterBlocks: -RockTunnelPokecenterBlocks: INCBIN "maps/viridianpokecenter.blk" dr $440fb,$4410b @@ -819,6 +818,7 @@ INCLUDE "data/mapObjects/route7.asm" Route7Blocks: ; 48051 INCBIN "maps/route7.blk" MtMoonPokecenterBlocks: +RockTunnelPokecenterBlocks: INCBIN "maps/mtmoonpokecenter.blk" dr $480c7,$480eb INCLUDE "scripts/route7.asm" @@ -834,7 +834,11 @@ INCLUDE "data/mapHeaders/mtmoonpokecenter.asm" INCLUDE "scripts/mtmoonpokecenter.asm" INCLUDE "data/mapObjects/mtmoonpokecenter.asm" - dr $49330,$49953 +INCLUDE "data/mapHeaders/rocktunnelpokecenter.asm" +INCLUDE "scripts/rocktunnelpokecenter.asm" +INCLUDE "data/mapObjects/rocktunnelpokecenter.asm" + + dr $49396,$49953 INCLUDE "data/mapHeaders/mtmoon1.asm" INCLUDE "scripts/mtmoon1.asm" diff --git a/scripts/mtmoonpokecenter.asm b/scripts/mtmoonpokecenter.asm index 888cab4c..320ed070 100755 --- a/scripts/mtmoonpokecenter.asm +++ b/scripts/mtmoonpokecenter.asm @@ -32,7 +32,7 @@ MtMoonPokecenterText5: ; 49370 (12:5370) db "@" MtMoonPokecenterText6: ; 49375 (12:5375) - TX_POKECENTER_PC + TX_CABLE_CLUB_RECEPTIONIST MtMoonPokecenterText7: TX_ASM diff --git a/scripts/rocktunnelpokecenter.asm b/scripts/rocktunnelpokecenter.asm index 5e822bca..7d8f4bf6 100755 --- a/scripts/rocktunnelpokecenter.asm +++ b/scripts/rocktunnelpokecenter.asm @@ -7,9 +7,10 @@ RockTunnelPokecenterTextPointers: ; 493c0 (12:53c0) dw RockTunnelPokecenterText2 dw RockTunnelPokecenterText3 dw RockTunnelPokecenterText4 + dw RockTunnelPokecenterText5 RockTunnelPokecenterText1: ; 493c8 (12:53c8) - db $ff + TX_POKECENTER_NURSE RockTunnelPokecenterText2: ; 493c9 (12:53c9) TX_FAR _RockTunnelPokecenterText1 @@ -20,4 +21,9 @@ RockTunnelPokecenterText3: ; 493ce (12:53ce) db "@" RockTunnelPokecenterText4: ; 493d3 (12:53d3) - db $f6 + TX_CABLE_CLUB_RECEPTIONIST + +RockTunnelPokecenterText5: + TX_ASM + callab Func_f0f12 + jp TextScriptEnd -- cgit v1.2.3 From 38f3f3b6ea5d81e6eb1a12132759824891099194 Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Mon, 30 May 2016 16:04:45 -0400 Subject: Rock Tunnel 1 --- data/map_header_banks.asm | 2 +- data/map_header_pointers.asm | 2 +- main.asm | 10 +++++++++- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/data/map_header_banks.asm b/data/map_header_banks.asm index 95279061..86e7e0e3 100644 --- a/data/map_header_banks.asm +++ b/data/map_header_banks.asm @@ -82,7 +82,7 @@ MapHeaderBanks:: ; fc3e4 (3f:43e4) db BANK(Route8Gate_h) db BANK(UndergroundPathEntranceRoute8_h) db BANK(RockTunnelPokecenter_h) - db $11 ; db BANK(RockTunnel1_h) + db BANK(RockTunnel1_h) db $07 ; db BANK(PowerPlant_h) db $12 ; db BANK(Route11Gate_h) db $07 ; db BANK(DiglettsCaveEntranceRoute11_h) diff --git a/data/map_header_pointers.asm b/data/map_header_pointers.asm index 5f74b05a..28938fa4 100644 --- a/data/map_header_pointers.asm +++ b/data/map_header_pointers.asm @@ -82,7 +82,7 @@ MapHeaderPointers:: ; fc1f2 (3f:41f2) dw Route8Gate_h dw UndergroundPathEntranceRoute8_h ;id=80 dw RockTunnelPokecenter_h - dw $4571 ; dw RockTunnel1_h + dw RockTunnel1_h dw $5bc4 ; dw PowerPlant_h dw $5396 ; dw Route11Gate_h dw $5eb8 ; dw DiglettsCaveEntranceRoute11_h diff --git a/main.asm b/main.asm index 4516a772..6f9a8568 100755 --- a/main.asm +++ b/main.asm @@ -806,7 +806,15 @@ INCLUDE "scripts/viridianpokecenter.asm" INCLUDE "data/mapObjects/viridianpokecenter.asm" dr $442b7,$443b7 Mansion1Script_Switches: - dr $443b7,$45077 + dr $443b7,$44571 + +INCLUDE "data/mapHeaders/rocktunnel1.asm" +INCLUDE "scripts/rocktunnel1.asm" +INCLUDE "data/mapObjects/rocktunnel1.asm" +RockTunnel1Blocks: +INCBIN "maps/rocktunnel1.blk" + + dr $4487e,$45077 LoadSpinnerArrowTiles: ; 45077 (11:5077) dr $45077,$46bf3 -- cgit v1.2.3 From f5ba8e618e8a06ab94d46ad001e5266e4465064a Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Mon, 30 May 2016 16:08:26 -0400 Subject: Power Plant --- data/map_header_banks.asm | 2 +- data/map_header_pointers.asm | 2 +- main.asm | 7 ++++++- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/data/map_header_banks.asm b/data/map_header_banks.asm index 86e7e0e3..6d7f758f 100644 --- a/data/map_header_banks.asm +++ b/data/map_header_banks.asm @@ -83,7 +83,7 @@ MapHeaderBanks:: ; fc3e4 (3f:43e4) db BANK(UndergroundPathEntranceRoute8_h) db BANK(RockTunnelPokecenter_h) db BANK(RockTunnel1_h) - db $07 ; db BANK(PowerPlant_h) + db BANK(PowerPlant_h) db $12 ; db BANK(Route11Gate_h) db $07 ; db BANK(DiglettsCaveEntranceRoute11_h) db $12 ; db BANK(Route11GateUpstairs_h) diff --git a/data/map_header_pointers.asm b/data/map_header_pointers.asm index 28938fa4..1087206b 100644 --- a/data/map_header_pointers.asm +++ b/data/map_header_pointers.asm @@ -83,7 +83,7 @@ MapHeaderPointers:: ; fc1f2 (3f:41f2) dw UndergroundPathEntranceRoute8_h ;id=80 dw RockTunnelPokecenter_h dw RockTunnel1_h - dw $5bc4 ; dw PowerPlant_h + dw PowerPlant_h dw $5396 ; dw Route11Gate_h dw $5eb8 ; dw DiglettsCaveEntranceRoute11_h dw $53de ; dw Route11GateUpstairs_h diff --git a/main.asm b/main.asm index 6f9a8568..ef1a9b6d 100755 --- a/main.asm +++ b/main.asm @@ -395,7 +395,12 @@ INCLUDE "data/mapHeaders/undergroundpathentranceroute8.asm" INCLUDE "scripts/undergroundpathentranceroute8.asm" INCLUDE "data/mapObjects/undergroundpathentranceroute8.asm" - dr $1dbc4,$1e2ae ; map scripts +INCLUDE "data/mapHeaders/powerplant.asm" +INCLUDE "scripts/powerplant.asm" +INCLUDE "data/mapObjects/powerplant.asm" +PowerPlantBlocks: +INCBIN "maps/powerplant.blk" + dr $1deb8,$1e2ae ; map scripts INCLUDE "engine/menu/oaks_pc.asm" -- cgit v1.2.3 From d00b70b33ee909ad163f2cb1c639ce799db118d0 Mon Sep 17 00:00:00 2001 From: pikalaxalt Date: Mon, 30 May 2016 16:12:31 -0400 Subject: Digletts Cave Route 11 Entrance --- data/map_header_banks.asm | 2 +- data/map_header_pointers.asm | 2 +- main.asm | 8 +++++++- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/data/map_header_banks.asm b/data/map_header_banks.asm index 6d7f758f..40cd151f 100644 --- a/data/map_header_banks.asm +++ b/data/map_header_banks.asm @@ -85,7 +85,7 @@ MapHeaderBanks:: ; fc3e4 (3f:43e4) db BANK(RockTunnel1_h) db BANK(PowerPlant_h) db $12 ; db BANK(Route11Gate_h) - db $07 ; db BANK(DiglettsCaveEntranceRoute11_h) + db BANK(DiglettsCaveEntranceRoute11_h) db $12 ; db BANK(Route11GateUpstairs_h) db $12 ; db BANK(Route12Gate_h) db $07 ; db BANK(BillsHouse_h) diff --git a/data/map_header_pointers.asm b/data/map_header_pointers.asm index 1087206b..c8e41d14 100644 --- a/data/map_header_pointers.asm +++ b/data/map_header_pointers.asm @@ -85,7 +85,7 @@ MapHeaderPointers:: ; fc1f2 (3f:41f2) dw RockTunnel1_h dw PowerPlant_h dw $5396 ; dw Route11Gate_h - dw $5eb8 ; dw DiglettsCaveEntranceRoute11_h + dw DiglettsCaveEntranceRoute11_h dw $53de ; dw Route11GateUpstairs_h dw $548f ; dw Route12Gate_h dw $606e ; dw BillsHouse_h diff --git a/main.asm b/main.asm index ef1a9b6d..a7b573cb 100755 --- a/main.asm +++ b/main.asm @@ -289,6 +289,7 @@ INCLUDE "data/mapHeaders/route1.asm" INCLUDE "data/mapObjects/route1.asm" Route1Blocks: ; 1c0fc INCBIN "maps/route1.blk" + UndergroundPathEntranceRoute8Blocks: INCBIN "maps/undergroundpathentranceroute8.blk" OaksLabBlocks: @@ -304,6 +305,7 @@ INCBIN "maps/school.blk" CeruleanHouseTrashedBlocks: INCBIN "maps/ceruleanhousetrashed.blk" DiglettsCaveRoute2Blocks: +DiglettsCaveEntranceRoute11Blocks: INCBIN "maps/diglettscaveroute2.blk" INCLUDE "engine/clear_save.asm" @@ -400,7 +402,11 @@ INCLUDE "scripts/powerplant.asm" INCLUDE "data/mapObjects/powerplant.asm" PowerPlantBlocks: INCBIN "maps/powerplant.blk" - dr $1deb8,$1e2ae ; map scripts + +INCLUDE "data/mapHeaders/diglettscaveroute11.asm" +INCLUDE "scripts/diglettscaveroute11.asm" +INCLUDE "data/mapObjects/diglettscaveroute11.asm" + dr $1def6,$1e2ae ; map scripts INCLUDE "engine/menu/oaks_pc.asm" -- cgit v1.2.3