diff options
Diffstat (limited to 'engine')
-rw-r--r-- | engine/bank3c/main.asm | 116 | ||||
-rw-r--r-- | engine/bank3c/overworld.asm | 242 | ||||
-rw-r--r-- | engine/bank3d/random.asm | 15 | ||||
-rw-r--r-- | engine/bank3f/data/map_header_banks.asm | 251 | ||||
-rw-r--r-- | engine/bank3f/data/map_header_pointers.asm | 251 | ||||
-rw-r--r-- | engine/bank3f/data/map_songs.asm | 252 | ||||
-rw-r--r-- | engine/bank3f/main.asm | 240 | ||||
-rwxr-xr-x[-rw-r--r--] | engine/battle/bank_e_misc.asm | 2 | ||||
-rwxr-xr-x[-rw-r--r--] | engine/battle/end_of_battle.asm | 2 | ||||
-rwxr-xr-x[-rw-r--r--] | engine/battle/read_trainer_party.asm | 2 | ||||
-rw-r--r-- | engine/battle/trainer_ai.asm | 2 | ||||
-rwxr-xr-x[-rw-r--r--] | engine/battle/trainer_pic_money_pointers.asm | 2 | ||||
-rw-r--r-- | engine/battle/wild_encounters.asm | 10 |
13 files changed, 1377 insertions, 10 deletions
diff --git a/engine/bank3c/main.asm b/engine/bank3c/main.asm new file mode 100644 index 00000000..92f5634c --- /dev/null +++ b/engine/bank3c/main.asm @@ -0,0 +1,116 @@ +INCLUDE "engine/bank3c/overworld.asm" + +ResetStatusAndHalveMoneyOnBlackout:: ; f0274 (3c:4274) +; Reset player status on blackout. + xor a + ld [wd435],a + xor a ; gamefreak copypasting functions (double xor a) + ld [wBattleResult], a + ld [wWalkBikeSurfState], a + ld [W_ISINBATTLE], a + ld [wMapPalOffset], a + ld [wNPCMovementScriptFunctionNum], a + ld [hJoyHeld], a + ld [wNPCMovementScriptPointerTableNum], a + ld [wFlags_0xcd60], a + + ld [$ff9f], a + ld [$ff9f + 1], a + ld [$ff9f + 2], a + call HasEnoughMoney + jr c, .lostmoney ; never happens + + ; Halve the player's money. + ld a, [wPlayerMoney] + ld [$ff9f], a + ld a, [wPlayerMoney + 1] + ld [$ff9f + 1], a + ld a, [wPlayerMoney + 2] + ld [$ff9f + 2], a + xor a + ld [$ffa2], a + ld [$ffa3], a + ld a, 2 + ld [$ffa4], a + predef DivideBCDPredef3 + ld a, [$ffa2] + ld [wPlayerMoney], a + ld a, [$ffa2 + 1] + ld [wPlayerMoney + 1], a + ld a, [$ffa2 + 2] + ld [wPlayerMoney + 2], a + +.lostmoney + ld hl, wd732 + set 2, [hl] + res 3, [hl] + set 6, [hl] + ld a, %11111111 + ld [wJoyIgnore], a + predef_jump HealParty + +Func_f02da:: ; f02da (3c:42da) + ld a,[W_CURMAP] + cp VERMILION_GYM ; ??? new thing about verm gym? + jr z,.asm_f02ee + ld c,a + ld hl,Pointer_f02fa +.asm_f02e5 + ld a,[hli] + cp c + jr z,.asm_f02f4 + cp a,$ff + jr nz,.asm_f02e5 + ret +.asm_f02ee + ld hl,wd126 + set 6,[hl] + ret +.asm_f02f4 + 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 + +BeachHouse_GFX:: ; f0314 (3c:4314) + INCBIN "gfx/tilesets/beachhouse.2bpp" + +BeachHouse_Block:: ; f0914 (3c:4914) + INCBIN "gfx/blocksets/beachhouse.bst" + +Func_f0a55:: ; f0a55 (3c:4a55) + ld hl,Pointer_f0a76 ; 3c:4a76 +.loop + ld a,[hli] + cp a,$ff + ret z + ld b,a + ld a,[W_CURMAP] + cp b + 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,W_MISSABLEOBJECTLIST + call CopyData + ret + +Pointer_f0a76:: ; f0a76 (3c:4a76) + db $27,$07,$7b,$4a,$ff + db $01,$ec,$02,$ed,$03,$ee,$ff + diff --git a/engine/bank3c/overworld.asm b/engine/bank3c/overworld.asm new file mode 100644 index 00000000..778244d6 --- /dev/null +++ b/engine/bank3c/overworld.asm @@ -0,0 +1,242 @@ +_AdvancePlayerSprite:: ; f010c (3c:410c) + ld a,[wSpriteStateData1 + 3] ; delta Y + ld b,a + ld a,[wSpriteStateData1 + 5] ; delta X + ld c,a + ld hl,wWalkCounter ; walking animation counter + dec [hl] + jr nz,.afterUpdateMapCoords +; if it's the end of the animation, update the player's map coordinates + ld a,[W_YCOORD] + add b + ld [W_YCOORD],a + ld a,[W_XCOORD] + add c + ld [W_XCOORD],a +.afterUpdateMapCoords + ld a,[wWalkCounter] ; walking animation counter + cp a,$07 + jp nz,.scrollBackgroundAndSprites +; if this is the first iteration of the animation + ld a,c + cp a,$01 + jr nz,.checkIfMovingWest +; moving east + ld a,[wMapViewVRAMPointer] + ld e,a + and a,$e0 + ld d,a + ld a,e + add a,$02 + and a,$1f + or d + ld [wMapViewVRAMPointer],a + jr .adjustXCoordWithinBlock +.checkIfMovingWest + cp a,$ff + jr nz,.checkIfMovingSouth +; moving west + ld a,[wMapViewVRAMPointer] + ld e,a + and a,$e0 + ld d,a + ld a,e + sub a,$02 + and a,$1f + or d + ld [wMapViewVRAMPointer],a + jr .adjustXCoordWithinBlock +.checkIfMovingSouth + ld a,b + cp a,$01 + jr nz,.checkIfMovingNorth +; moving south + ld a,[wMapViewVRAMPointer] + add a,$40 + ld [wMapViewVRAMPointer],a + jr nc,.adjustXCoordWithinBlock + ld a,[wMapViewVRAMPointer + 1] + inc a + and a,$03 + or a,$98 + ld [wMapViewVRAMPointer + 1],a + jr .adjustXCoordWithinBlock +.checkIfMovingNorth + cp a,$ff + jr nz,.adjustXCoordWithinBlock +; moving north + ld a,[wMapViewVRAMPointer] + sub a,$40 + ld [wMapViewVRAMPointer],a + jr nc,.adjustXCoordWithinBlock + ld a,[wMapViewVRAMPointer + 1] + dec a + and a,$03 + or a,$98 + ld [wMapViewVRAMPointer + 1],a +.adjustXCoordWithinBlock + ld a,c + and a + jr z,.pointlessJump ; mistake? +.pointlessJump + ld hl,W_XBLOCKCOORD + ld a,[hl] + add c + ld [hl],a + cp a,$02 + jr nz,.checkForMoveToWestBlock +; moved into the tile block to the east + xor a + ld [hl],a + ld hl,wXOffsetSinceLastSpecialWarp + inc [hl] + ld de,wCurrentTileBlockMapViewPointer + call MoveTileBlockMapPointerEast + jr .updateMapView +.checkForMoveToWestBlock + cp a,$ff + jr nz,.adjustYCoordWithinBlock +; moved into the tile block to the west + ld a,$01 + ld [hl],a + ld hl,wXOffsetSinceLastSpecialWarp + dec [hl] + ld de,wCurrentTileBlockMapViewPointer + call MoveTileBlockMapPointerWest + jr .updateMapView +.adjustYCoordWithinBlock + ld hl,W_YBLOCKCOORD + ld a,[hl] + add b + ld [hl],a + cp a,$02 + jr nz,.checkForMoveToNorthBlock +; moved into the tile block to the south + xor a + ld [hl],a + ld hl,wYOffsetSinceLastSpecialWarp + inc [hl] + ld de,wCurrentTileBlockMapViewPointer + ld a,[W_CURMAPWIDTH] + call MoveTileBlockMapPointerSouth + jr .updateMapView +.checkForMoveToNorthBlock + cp a,$ff + jr nz,.updateMapView +; moved into the tile block to the north + ld a,$01 + ld [hl],a + ld hl,wYOffsetSinceLastSpecialWarp + dec [hl] + ld de,wCurrentTileBlockMapViewPointer + ld a,[W_CURMAPWIDTH] + call MoveTileBlockMapPointerNorth +.updateMapView + call LoadCurrentMapView + ld a,[wSpriteStateData1 + 3] ; delta Y + cp a,$01 + jr nz,.checkIfMovingNorth2 +; if moving south + call ScheduleSouthRowRedraw + jr .scrollBackgroundAndSprites +.checkIfMovingNorth2 + cp a,$ff + jr nz,.checkIfMovingEast2 +; if moving north + call ScheduleNorthRowRedraw + jr .scrollBackgroundAndSprites +.checkIfMovingEast2 + ld a,[wSpriteStateData1 + 5] ; delta X + cp a,$01 + jr nz,.checkIfMovingWest2 +; if moving east + call ScheduleEastColumnRedraw + jr .scrollBackgroundAndSprites +.checkIfMovingWest2 + cp a,$ff + jr nz,.scrollBackgroundAndSprites +; if moving west + call ScheduleWestColumnRedraw +.scrollBackgroundAndSprites + ld a,[wSpriteStateData1 + 3] ; delta Y + ld b,a + ld a,[wSpriteStateData1 + 5] ; delta X + ld c,a + sla b + sla c + ld a,[hSCY] + add b + ld [hSCY],a ; update background scroll Y + ld a,[hSCX] + add c + ld [hSCX],a ; update background scroll X +; shift all the sprites in the direction opposite of the player's motion +; so that the player appears to move relative to them + ld hl,wSpriteStateData1 + $14 + ld a,[W_NUMSPRITES] ; number of sprites + and a ; are there any sprites? + jr z,.done + ld e,a +.spriteShiftLoop + ld a,[hl] + sub b + ld [hli],a + inc l + ld a,[hl] + sub c + ld [hl],a + ld a,$0e + add l + ld l,a + dec e + jr nz,.spriteShiftLoop +.done + ret + +MoveTileBlockMapPointerEast:: ; 0e65 (0:0e65) + ld a,[de] + add a,$01 + ld [de],a + ret nc + inc de + ld a,[de] + inc a + ld [de],a + ret + +MoveTileBlockMapPointerWest:: ; 0e6f (0:0e6f) + ld a,[de] + sub a,$01 + ld [de],a + ret nc + inc de + ld a,[de] + dec a + ld [de],a + ret + +MoveTileBlockMapPointerSouth:: ; 0e79 (0:0e79) + add a,$06 + ld b,a + ld a,[de] + add b + ld [de],a + ret nc + inc de + ld a,[de] + inc a + ld [de],a + ret + +MoveTileBlockMapPointerNorth:: ; 0e85 (0:0e85) + add a,$06 + ld b,a + ld a,[de] + sub b + ld [de],a + ret nc + inc de + ld a,[de] + dec a + ld [de],a + ret
\ No newline at end of file diff --git a/engine/bank3d/random.asm b/engine/bank3d/random.asm new file mode 100644 index 00000000..8c8ead4e --- /dev/null +++ b/engine/bank3d/random.asm @@ -0,0 +1,15 @@ +SECTION "bank3d Random",ROMX[$67DC],BANK[$3D] + +Random_:: +; Generate a random 16-bit value. + ld a, [rDIV] + ld b, a + ld a, [hRandomAdd] + adc b + ld [hRandomAdd], a + ld a, [rDIV] + ld b, a + ld a, [hRandomSub] + sbc b + ld [hRandomSub], a + ret diff --git a/engine/bank3f/data/map_header_banks.asm b/engine/bank3f/data/map_header_banks.asm new file mode 100644 index 00000000..94a13510 --- /dev/null +++ b/engine/bank3f/data/map_header_banks.asm @@ -0,0 +1,251 @@ +; see also MapHeaderPointers +MapHeaderBanks:: ; fc3e4 (3f:43e4) + 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) diff --git a/engine/bank3f/data/map_header_pointers.asm b/engine/bank3f/data/map_header_pointers.asm new file mode 100644 index 00000000..5431727e --- /dev/null +++ b/engine/bank3f/data/map_header_pointers.asm @@ -0,0 +1,251 @@ +; see also MapHeaderBanks +MapHeaderPointers:: ; fc1f2 (3f:41f2) + 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 diff --git a/engine/bank3f/data/map_songs.asm b/engine/bank3f/data/map_songs.asm new file mode 100644 index 00000000..4a84aebb --- /dev/null +++ b/engine/bank3f/data/map_songs.asm @@ -0,0 +1,252 @@ +MapSongBanks: ; fc000 (3f:4000) + db MUSIC_PALLET_TOWN, BANK(Music_PalletTown) ;PALLET_TOWN + db MUSIC_CITIES1, BANK(Music_Cities1) ; VIRIDIAN_CITY + db MUSIC_CITIES1, BANK(Music_Cities1) ; PEWTER_CITY + db MUSIC_CITIES2, BANK(Music_Cities2) ; CERULEAN_CITY + db MUSIC_LAVENDER, BANK(Music_Lavender) ; LAVENDER_TOWN + db MUSIC_VERMILION, BANK(Music_Vermilion) ; VERMILION_CITY + db MUSIC_CELADON, BANK(Music_Celadon) ; CELADON_CITY + db MUSIC_CITIES2, BANK(Music_Cities2) ; FUCHSIA_CITY + db MUSIC_CINNABAR, BANK(Music_Cinnabar) ; CINNABAR_ISLAND + db MUSIC_INDIGO_PLATEAU, BANK(Music_IndigoPlateau) ; INDIGO_PLATEAU + db MUSIC_CITIES1, BANK(Music_Cities1) ; SAFFRON_CITY + db MUSIC_CITIES1, BANK(Music_Cities1) ; unused + db MUSIC_ROUTES1, BANK(Music_Routes1) ; ROUTE_1 + db MUSIC_ROUTES1, BANK(Music_Routes1) ; ROUTE_2 + db MUSIC_ROUTES3, BANK(Music_Routes3) ; ROUTE_3 + db MUSIC_ROUTES3, BANK(Music_Routes3) ; ROUTE_4 + db MUSIC_ROUTES3, BANK(Music_Routes3) ; ROUTE_5 + db MUSIC_ROUTES3, BANK(Music_Routes3) ; ROUTE_6 + db MUSIC_ROUTES3, BANK(Music_Routes3) ; ROUTE_7 + db MUSIC_ROUTES3, BANK(Music_Routes3) ; ROUTE_8 + db MUSIC_ROUTES3, BANK(Music_Routes3) ; ROUTE_9 + db MUSIC_ROUTES3, BANK(Music_Routes3) ; ROUTE_10 + db MUSIC_ROUTES4, BANK(Music_Routes4) ; ROUTE_11 + db MUSIC_ROUTES4, BANK(Music_Routes4) ; ROUTE_12 + db MUSIC_ROUTES4, BANK(Music_Routes4) ; ROUTE_13 + db MUSIC_ROUTES4, BANK(Music_Routes4) ; ROUTE_14 + db MUSIC_ROUTES4, BANK(Music_Routes4) ; ROUTE_15 + db MUSIC_ROUTES3, BANK(Music_Routes3) ; ROUTE_16 + db MUSIC_ROUTES3, BANK(Music_Routes3) ; ROUTE_17 + db MUSIC_ROUTES3, BANK(Music_Routes3) ; ROUTE_18 + db MUSIC_ROUTES3, BANK(Music_Routes3) ; ROUTE_19 + db MUSIC_ROUTES3, BANK(Music_Routes3) ; ROUTE_20 + db MUSIC_ROUTES3, BANK(Music_Routes3) ; ROUTE_21 + db MUSIC_ROUTES3, BANK(Music_Routes3) ; ROUTE_22 + db MUSIC_INDIGO_PLATEAU, BANK(Music_IndigoPlateau) ; ROUTE_23 + db MUSIC_ROUTES2, BANK(Music_Routes2) ; ROUTE_24 + db MUSIC_ROUTES2, BANK(Music_Routes2) ; ROUTE_25 + db MUSIC_PALLET_TOWN, BANK(Music_PalletTown) ; RedsHouse1F + db MUSIC_PALLET_TOWN, BANK(Music_PalletTown) ; RedsHouse2F + db MUSIC_PALLET_TOWN, BANK(Music_PalletTown) ; BluesHouse + db MUSIC_OAKS_LAB, BANK(Music_OaksLab) ; OaksLab + db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; ViridianPokecenter + db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; ViridianMart + db MUSIC_CITIES1, BANK(Music_Cities1) ; School + db MUSIC_CITIES1, BANK(Music_Cities1) ; ViridianHouse + db MUSIC_GYM, BANK(Music_Gym) ; ViridianGym + db MUSIC_DUNGEON2, BANK(Music_Dungeon2) ; DiglettsCaveRoute2 + db MUSIC_CITIES1, BANK(Music_Cities1) ; ViridianForestExit + db MUSIC_CITIES1, BANK(Music_Cities1) ; Route2House + db MUSIC_CITIES1, BANK(Music_Cities1) ; Route2Gate + db MUSIC_CITIES1, BANK(Music_Cities1) ; ViridianForestEntrance + db MUSIC_DUNGEON2, BANK(Music_Dungeon2) ; ViridianForest + db MUSIC_CITIES1, BANK(Music_Cities1) ; Museum1F + db MUSIC_CITIES1, BANK(Music_Cities1) ; Museum2F + db MUSIC_GYM, BANK(Music_Gym) ; PewterGym + db MUSIC_CITIES1, BANK(Music_Cities1) ; PewterHouse1 + db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; PewterMart + db MUSIC_CITIES1, BANK(Music_Cities1) ; PewterHouse2 + db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; PewterPokecenter + db MUSIC_DUNGEON3, BANK(Music_Dungeon3) ; MtMoon1 + db MUSIC_DUNGEON3, BANK(Music_Dungeon3) ; MtMoon2 + db MUSIC_DUNGEON3, BANK(Music_Dungeon3) ; MtMoon3 + db MUSIC_CITIES2, BANK(Music_Cities2) ; CeruleanHouseTrashed + db MUSIC_CITIES2, BANK(Music_Cities2) ; CeruleanHouse1 + db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; CeruleanPokecenter + db MUSIC_GYM, BANK(Music_Gym) ; CeruleanGym + db MUSIC_CITIES2, BANK(Music_Cities2) ; BikeShop + db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; CeruleanMart + db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; MtMoonPokecenter + db MUSIC_DUNGEON3, BANK(Music_Dungeon3) ; CeruleanHouseTrashed + db MUSIC_CITIES1, BANK(Music_Cities1) ; Route5Gate + db MUSIC_CITIES1, BANK(Music_Cities1) ; UndergroundTunnelEntranceRoute5 + db MUSIC_CITIES1, BANK(Music_Cities1) ; DayCareM + db MUSIC_CITIES1, BANK(Music_Cities1) ; Route6Gate + db MUSIC_CITIES1, BANK(Music_Cities1) ; UndergroundTunnelEntranceRoute6 + db MUSIC_VERMILION, BANK(Music_Vermilion) ; FREEZE + db MUSIC_CITIES1, BANK(Music_Cities1) ; Route7Gate + db MUSIC_CITIES1, BANK(Music_Cities1) ; UndergroundPathEntranceRoute7 + db MUSIC_CELADON, BANK(Music_Celadon) ;FREEZE + db MUSIC_CITIES1, BANK(Music_Cities1) ; Route8Gate + db MUSIC_CITIES1, BANK(Music_Cities1) ; UndergroundPathEntranceRoute8 + db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; RockTunnelPokecenter + db MUSIC_DUNGEON3, BANK(Music_Dungeon3) ; RockTunnel1 + db MUSIC_DUNGEON1, BANK(Music_Dungeon1) ; PowerPlant + db MUSIC_VERMILION, BANK(Music_Vermilion) ; Route11Gate + db MUSIC_DUNGEON2, BANK(Music_Dungeon2) ; DiglettsCaveEntranceRoute11 + db MUSIC_VERMILION, BANK(Music_Vermilion) ; Route11GateUpstairs + db MUSIC_CITIES1, BANK(Music_Cities1) ; Route12Gate + db MUSIC_CITIES2, BANK(Music_Cities2) ; BillsHouse + db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; VermilionPokecenter + db MUSIC_VERMILION, BANK(Music_Vermilion) ; FanClub + db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; VermilionMart + db MUSIC_GYM, BANK(Music_Gym) ; VermilionGym + db MUSIC_VERMILION, BANK(Music_Vermilion) ; VermilionHouse1 + db MUSIC_SS_ANNE, BANK(Music_SSAnne) ; VermilionDock + db MUSIC_SS_ANNE, BANK(Music_SSAnne) ; SSAnne1 + db MUSIC_SS_ANNE, BANK(Music_SSAnne) ; SSAnne2 + db MUSIC_SS_ANNE, BANK(Music_SSAnne) ; SSAnne3 + db MUSIC_SS_ANNE, BANK(Music_SSAnne) ; SSAnne4 + db MUSIC_SS_ANNE, BANK(Music_SSAnne) ; SSAnne5 + db MUSIC_SS_ANNE, BANK(Music_SSAnne) ; SSAnne6 + db MUSIC_SS_ANNE, BANK(Music_SSAnne) ; SSAnne7 + db MUSIC_SS_ANNE, BANK(Music_SSAnne) ; SSAnne8 + db MUSIC_SS_ANNE, BANK(Music_SSAnne) ; SSAnne9 + db MUSIC_SS_ANNE, BANK(Music_SSAnne) ; SSAnne10 + db MUSIC_DUNGEON2, BANK(Music_Dungeon2) ;unused + db MUSIC_DUNGEON2, BANK(Music_Dungeon2) ;unused + db MUSIC_SS_ANNE, BANK(Music_SSAnne) ;unused + db MUSIC_DUNGEON3, BANK(Music_Dungeon3) ; VictoryRoad1 + db MUSIC_POKEMON_TOWER, BANK(Music_PokemonTower) ;unused + db MUSIC_DUNGEON1, BANK(Music_Dungeon1) ;unused + db MUSIC_SILPH_CO, BANK(Music_SilphCo) ;unused + db MUSIC_SILPH_CO, BANK(Music_SilphCo) ;unused + db MUSIC_INDIGO_PLATEAU, BANK(Music_IndigoPlateau) ; Lance + db MUSIC_SS_ANNE, BANK(Music_SSAnne) ;unused + db MUSIC_SS_ANNE, BANK(Music_SSAnne) ;unused + db MUSIC_SS_ANNE, BANK(Music_SSAnne) ;unused + db MUSIC_SS_ANNE, BANK(Music_SSAnne) ;unused + db MUSIC_PALLET_TOWN, BANK(Music_PalletTown) ; HallofFameRoom + db MUSIC_ROUTES1, BANK(Music_Routes1) ; UndergroundPathNS + db MUSIC_INDIGO_PLATEAU, BANK(Music_IndigoPlateau) ; Gary + db MUSIC_ROUTES1, BANK(Music_Routes1) ; UndergroundPathWE + db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; CeladonMart1 + db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; CeladonMart2 + db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; CeladonMart3 + db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; CeladonMart4 + db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; CeladonMartRoof + db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; CeladonMartElevator + db MUSIC_CELADON, BANK(Music_Celadon) ; CeladonMansion1 + db MUSIC_CELADON, BANK(Music_Celadon) ; CeladonMansion2 + db MUSIC_CELADON, BANK(Music_Celadon) ; CeladonMansion3 + db MUSIC_CELADON, BANK(Music_Celadon) ; CeladonMansion4 + db MUSIC_CELADON, BANK(Music_Celadon) ; CeladonMansion5 + db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; CeladonPokecenter + db MUSIC_GYM, BANK(Music_Gym) ; CeladonGym + db MUSIC_GAME_CORNER, BANK(Music_GameCorner) ; CeladonGameCorner + db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; CeladonMart5 + db MUSIC_CELADON, BANK(Music_Celadon) ; CeladonPrizeRoom + db MUSIC_CELADON, BANK(Music_Celadon) ; CeladonDiner + db MUSIC_CELADON, BANK(Music_Celadon) ; CeladonHouse + db MUSIC_CELADON, BANK(Music_Celadon) ; CeladonHotel + db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; LavenderPokecenter + db MUSIC_POKEMON_TOWER, BANK(Music_PokemonTower) ; PokemonTower1 + db MUSIC_POKEMON_TOWER, BANK(Music_PokemonTower) ; PokemonTower2 + db MUSIC_POKEMON_TOWER, BANK(Music_PokemonTower) ; PokemonTower3 + db MUSIC_POKEMON_TOWER, BANK(Music_PokemonTower) ; PokemonTower4 + db MUSIC_POKEMON_TOWER, BANK(Music_PokemonTower) ; PokemonTower5 + db MUSIC_POKEMON_TOWER, BANK(Music_PokemonTower) ; PokemonTower6 + db MUSIC_POKEMON_TOWER, BANK(Music_PokemonTower) ; PokemonTower7 + db MUSIC_LAVENDER, BANK(Music_Lavender) ; LavenderHouse1 + db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; LavenderMart + db MUSIC_LAVENDER, BANK(Music_Lavender) ; LavenderHouse2 + db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; FuchsiaMart + db MUSIC_CITIES2, BANK(Music_Cities2) ; FuchsiaHouse1 + db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; FuchsiaPokecenter + db MUSIC_CITIES2, BANK(Music_Cities2) ; FuchsiaHouse2 + db MUSIC_CITIES2, BANK(Music_Cities2) ; SafariZoneEntrance + db MUSIC_GYM, BANK(Music_Gym) ; FuchsiaGym + db MUSIC_CITIES2, BANK(Music_Cities2) ; FuchsiaMeetingRoom + db MUSIC_DUNGEON2, BANK(Music_Dungeon2) ; SeafoamIslands2 + db MUSIC_DUNGEON2, BANK(Music_Dungeon2) ; SeafoamIslands3 + db MUSIC_DUNGEON2, BANK(Music_Dungeon2) ; SeafoamIslands4 + db MUSIC_DUNGEON2, BANK(Music_Dungeon2) ; SeafoamIslands5 + db MUSIC_CITIES2, BANK(Music_Cities2) ; VermilionHouse2 + db MUSIC_CITIES2, BANK(Music_Cities2) ; FuchsiaHouse3 + db MUSIC_CINNABAR_MANSION, BANK(Music_CinnabarMansion) ; Mansion1 + db MUSIC_GYM, BANK(Music_Gym) ; CinnabarGym + db MUSIC_CINNABAR, BANK(Music_Cinnabar) ; Lab1 + db MUSIC_CINNABAR, BANK(Music_Cinnabar) ; Lab2 + db MUSIC_CINNABAR, BANK(Music_Cinnabar) ; Lab3 + db MUSIC_CINNABAR, BANK(Music_Cinnabar) ; Lab4 + db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; CinnabarPokecenter + db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; CinnabarMart + db MUSIC_CINNABAR, BANK(Music_Cinnabar) + db MUSIC_INDIGO_PLATEAU, BANK(Music_IndigoPlateau) ; IndigoPlateauLobby + db MUSIC_CITIES1, BANK(Music_Cities1) ; CopycatsHouse1F + db MUSIC_CITIES1, BANK(Music_Cities1) ; CopycatsHouse2F + db MUSIC_CITIES1, BANK(Music_Cities1) ; FightingDojo + db MUSIC_GYM, BANK(Music_Gym) ; SaffronGym + db MUSIC_CITIES1, BANK(Music_Cities1) ; SaffronHouse1 + db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; SaffronMart + db MUSIC_SILPH_CO, BANK(Music_SilphCo) ; SilphCo1 + db MUSIC_POKECENTER, BANK(Music_Pokecenter) ; SaffronPokecenter + db MUSIC_CITIES1, BANK(Music_Cities1) ; SaffronHouse2 + db MUSIC_CITIES1, BANK(Music_Cities1) ; Route15Gate + db MUSIC_CITIES1, BANK(Music_Cities1) ; Route15GateUpstairs + db MUSIC_CITIES1, BANK(Music_Cities1) ; Route16Gate + db MUSIC_CITIES1, BANK(Music_Cities1) ; Route16GateUpstairs + db MUSIC_CELADON, BANK(Music_Celadon) ; Route16House + db MUSIC_CELADON, BANK(Music_Celadon) ; Route12House + db MUSIC_CITIES1, BANK(Music_Cities1) ; Route18Gate + db MUSIC_CITIES1, BANK(Music_Cities1) ; Route18GateUpstairs + db MUSIC_DUNGEON2, BANK(Music_Dungeon2) ; SeafoamIslands1 + db MUSIC_DUNGEON2, BANK(Music_Dungeon2) ; Route22Gate + db MUSIC_DUNGEON3, BANK(Music_Dungeon3) ; VictoryRoad2 + db MUSIC_CITIES1, BANK(Music_Cities1) ; Route12GateUpstairs + db MUSIC_VERMILION, BANK(Music_Vermilion) ; VermilionHouse3 + db MUSIC_DUNGEON2, BANK(Music_Dungeon2) ; DiglettsCave + db MUSIC_DUNGEON3, BANK(Music_Dungeon3) ; VictoryRoad3 + db MUSIC_DUNGEON1, BANK(Music_Dungeon1) ; RocketHideout1 + db MUSIC_DUNGEON1, BANK(Music_Dungeon1) ; RocketHideout2 + db MUSIC_DUNGEON1, BANK(Music_Dungeon1) ; RocketHideout3 + db MUSIC_DUNGEON1, BANK(Music_Dungeon1) ; RocketHideout4 + db MUSIC_DUNGEON1, BANK(Music_Dungeon1) ; RocketHideoutElevator + db MUSIC_DUNGEON1, BANK(Music_Dungeon1) + db MUSIC_DUNGEON1, BANK(Music_Dungeon1) + db MUSIC_DUNGEON1, BANK(Music_Dungeon1) + db MUSIC_SILPH_CO, BANK(Music_SilphCo) ; SilphCo2 + db MUSIC_SILPH_CO, BANK(Music_SilphCo) ; SilphCo3 + db MUSIC_SILPH_CO, BANK(Music_SilphCo) ; SilphCo4 + db MUSIC_SILPH_CO, BANK(Music_SilphCo) ; SilphCo5 + db MUSIC_SILPH_CO, BANK(Music_SilphCo) ; SilphCo6 + db MUSIC_SILPH_CO, BANK(Music_SilphCo) ; SilphCo7 + db MUSIC_SILPH_CO, BANK(Music_SilphCo) ; SilphCo8 + db MUSIC_CINNABAR_MANSION, BANK(Music_CinnabarMansion) ; Mansion2 + db MUSIC_CINNABAR_MANSION, BANK(Music_CinnabarMansion) ; Mansion3 + db MUSIC_CINNABAR_MANSION, BANK(Music_CinnabarMansion) ; Mansion4 + db MUSIC_SAFARI_ZONE, BANK(Music_SafariZone) ; SafariZoneEast + db MUSIC_SAFARI_ZONE, BANK(Music_SafariZone) ; SafariZoneNorth + db MUSIC_SAFARI_ZONE, BANK(Music_SafariZone) ; SafariZoneWest + db MUSIC_SAFARI_ZONE, BANK(Music_SafariZone) ; SafariZoneCenter + db MUSIC_SAFARI_ZONE, BANK(Music_SafariZone) ; SafariZoneRestHouse1 + db MUSIC_SAFARI_ZONE, BANK(Music_SafariZone) ; SafariZoneSecretHouse + db MUSIC_SAFARI_ZONE, BANK(Music_SafariZone) ; SafariZoneRestHouse2 + db MUSIC_SAFARI_ZONE, BANK(Music_SafariZone) ; SafariZoneRestHouse3 + db MUSIC_SAFARI_ZONE, BANK(Music_SafariZone) ; SafariZoneRestHouse4 + db MUSIC_DUNGEON1, BANK(Music_Dungeon1) ; UnknownDungeon2 + db MUSIC_DUNGEON1, BANK(Music_Dungeon1) ; UnknownDungeon3 + db MUSIC_DUNGEON1, BANK(Music_Dungeon1) ; UnknownDungeon1 + db MUSIC_CITIES2, BANK(Music_Cities2) ; NameRater + db MUSIC_CITIES1, BANK(Music_Cities1) ; CeruleanHouse2 + db MUSIC_CINNABAR, BANK(Music_Cinnabar) + db MUSIC_DUNGEON3, BANK(Music_Dungeon3) ; RockTunnel2 + db MUSIC_SILPH_CO, BANK(Music_SilphCo) ; SilphCo9 + db MUSIC_SILPH_CO, BANK(Music_SilphCo) ; SilphCo10 + db MUSIC_SILPH_CO, BANK(Music_SilphCo) ; SilphCo11 + db MUSIC_SILPH_CO, BANK(Music_SilphCo) ; SilphCoElevator + db MUSIC_SILPH_CO, BANK(Music_SilphCo) + db MUSIC_SILPH_CO, BANK(Music_SilphCo) + db MUSIC_CELADON, BANK(Music_Celadon) ; BattleCenterM + db MUSIC_CELADON, BANK(Music_Celadon) ; TradeCenterM + db MUSIC_SILPH_CO, BANK(Music_SilphCo) + db MUSIC_SILPH_CO, BANK(Music_SilphCo) + db MUSIC_SILPH_CO, BANK(Music_SilphCo) + db MUSIC_SILPH_CO, BANK(Music_SilphCo) + db MUSIC_GYM, BANK(Music_Gym) ; Lorelei + db MUSIC_DUNGEON1, BANK(Music_Dungeon1) ; Bruno + db MUSIC_POKEMON_TOWER, BANK(Music_PokemonTower) ; Agatha +IF DEF(_OPTION_BEACH_HOUSE) + db MUSIC_ROUTES3, BANK(Music_Routes3) ; BeachHouse +ENDC diff --git a/engine/bank3f/main.asm b/engine/bank3f/main.asm new file mode 100644 index 00000000..b02829eb --- /dev/null +++ b/engine/bank3f/main.asm @@ -0,0 +1,240 @@ +INCLUDE "engine/bank3f/data/map_songs.asm" +INCLUDE "engine/bank3f/data/map_header_pointers.asm" +INCLUDE "engine/bank3f/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 + call Func_fcdb8 + jr nc,.asm_fc4f8 + ld a,[wWalkBikeSurfState] + and a + jr nz,.asm_fc4f8 + scf + ret +.asm_fc4f8 + and a + ret + +Func_fc4fa:: ; fc4fa (3f:44fa) + 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 + call Func_fcb84 + call Func_fc5bc + ret + +.asm_fc515 + call Func_fc53f + xor a + ld [wd431],a + ld a,[wSpriteStateData1 + $9] + ld [wSpriteStateData1 + $f9],a + ret + +Func_fc523:: ; fc523 (3f:4523) + ld hl,wSpriteStateData1 + $f0 + call Func_fc52c + ld hl,wSpriteStateData2 + $f0 +Func_fc52c:: ; fc52c (3f:4523) + ld bc,$10 + xor a + call FillMemory + ret + +Func_fc534:: ; fc534 (3f:4534) + call Func_fc53f + call Func_fc5bc + xor a + ld [wd431],a + ret + +Func_fc53f:: ; fc53f (3f:453f) + ld bc,wSpriteStateData1 + $10 + ld a,[W_YCOORD] + add $4 + ld e,a + ld a,[W_XCOORD] + add $4 + ld d,a + ld a,[wd431] + and a + jr z,.asm_fc5aa + cp $1 + jr z,.asm_fc59e + cp $2 + jr z,.asm_fc584 + cp $3 + jr z,.asm_fc5aa + cp $4 + jr z,.asm_fc5a4 + cp $5 + jr z,.asm_fc5a7 + cp $6 + jr z,.asm_fc5a1 + 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 + jr z,.asm_fc5a7 + cp SPRITE_FACING_LEFT + jr z,.asm_fc5a1 + cp SPRITE_FACING_RIGHT + jr z,.asm_fc59e +.asm_fc584 + ld a,[wSpriteStateData1 + $9] + and a + 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 +.asm_fc5aa + ld hl,$104 + add hl,bc + ld [hl],e + inc hl + ld [hl],d + inc hl +Func_fc4b2:: ; fc4b2 (3f:44b2) + ld [hl],$fe + push 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] + and a + jr z,.asm_fc5e4 + cp $1 + jr z,.asm_fc5e4 + cp $3 + jr z,.asm_fc5eb + cp $4 + jr z,.asm_fc5e4 + cp $6 + jr z,.asm_fc5e4 + cp $7 + jr z,.asm_fc5f1 + call Func_fc4b2 + 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 + ld [wSpriteStateData1 + $f9],a + ret + +Func_fc5fa:: ; fc5fa (3f:45fa) + ld a,[W_CURMAP] + cp OAKS_LAB + jr z,.asm_fc63d + cp ROUTE_22_GATE + jr z,.asm_fc62d + cp MT_MOON_2 + jr z,.asm_fc635 + cp ROCK_TUNNEL_1 + jr z,.asm_fc645 + ld a,[W_CURMAP] + ld hl,Pointer_fc46b + call Func_1568 ; similar to IsInArray, but not the same + jr c,.asm_fc639 + ld a,[W_CURMAP] + ld hl,Pointer_fc653 + call Func_1568 + jr nc,.asm_fc641 + ld a,[wSpriteStateData1 + $9] + and a + 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 + ld [wd431],a + ret + +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 + +Func_fc65b:: ; fc65b (3f:465b) + ld a,[W_CURMAP] + +Func_fc69a:: ; fc69a (3f:469a) + +Func_fcc08:: ; fcc08 (3f:4c08) + +Func_fcf0c:: ; fcf0c (3f:4f0c) diff --git a/engine/battle/bank_e_misc.asm b/engine/battle/bank_e_misc.asm index 78b27108..6ef4065f 100644..100755 --- a/engine/battle/bank_e_misc.asm +++ b/engine/battle/bank_e_misc.asm @@ -119,4 +119,4 @@ GetMonSpecies: ; 39c37 (e:5c37) add hl, de ld a, [hl] ld [wcf91], a - ret
\ No newline at end of file + ret diff --git a/engine/battle/end_of_battle.asm b/engine/battle/end_of_battle.asm index f03dd07f..5d78af5b 100644..100755 --- a/engine/battle/end_of_battle.asm +++ b/engine/battle/end_of_battle.asm @@ -85,4 +85,4 @@ DrawText: ; 13864 (4:7864) PickUpPayDayMoneyText: ; 1386b (4:786b) TX_FAR _PickUpPayDayMoneyText - db "@"
\ No newline at end of file + db "@" diff --git a/engine/battle/read_trainer_party.asm b/engine/battle/read_trainer_party.asm index 3cdfb5cb..d8da714e 100644..100755 --- a/engine/battle/read_trainer_party.asm +++ b/engine/battle/read_trainer_party.asm @@ -163,4 +163,4 @@ ReadTrainer: ; 39c53 (e:5c53) inc de dec b jr nz,.LastLoop ; repeat W_CURENEMYLVL times - ret
\ No newline at end of file + ret diff --git a/engine/battle/trainer_ai.asm b/engine/battle/trainer_ai.asm index 191cfd5e..19a184f2 100644 --- a/engine/battle/trainer_ai.asm +++ b/engine/battle/trainer_ai.asm @@ -808,7 +808,7 @@ AIIncreaseStat: ; 3a808 (e:6808) ld a,[hl] push af push hl - ld a,$AF + ld a,ANIM_AF ld [hli],a ld [hl],b callab StatModifierUpEffect diff --git a/engine/battle/trainer_pic_money_pointers.asm b/engine/battle/trainer_pic_money_pointers.asm index 3d32eb00..3f684db3 100644..100755 --- a/engine/battle/trainer_pic_money_pointers.asm +++ b/engine/battle/trainer_pic_money_pointers.asm @@ -140,4 +140,4 @@ TrainerPicAndMoneyPointers: ; 39914 (e:5914) money 9900 dw LancePic - money 9900
\ No newline at end of file + money 9900 diff --git a/engine/battle/wild_encounters.asm b/engine/battle/wild_encounters.asm index 03119b90..61b318b9 100644 --- a/engine/battle/wild_encounters.asm +++ b/engine/battle/wild_encounters.asm @@ -23,7 +23,7 @@ TryDoWildEncounter: ; 13870 (4:7870) jr z, .lastRepelStep ld [wRepelRemainingSteps], a .asm_1389e -; determine if wild pokémon can appear in the half-block we’re standing in +; determine if wild pokemon can appear in the half-block we're standing in ; is the bottom right tile (9,9) of the half-block we're standing in a grass/water tile? hlCoord 9, 9 ld c, [hl] @@ -35,9 +35,9 @@ TryDoWildEncounter: ; 13870 (4:7870) cp c ld a, [W_WATERRATE] jr z, .CanEncounter -; even if not in grass/water, standing anywhere we can encounter pokémon -; so long as the map is “indoor” and has wild pokémon defined. -; …as long as it’s not Viridian Forest or Safari Zone. +; even if not in grass/water, standing anywhere we can encounter pokemon +; so long as the map is "indoor" and has wild pokemon defined. +; ...as long as it's not Viridian Forest or Safari Zone. ld a, [W_CURMAP] cp REDS_HOUSE_1F ; is this an indoor map? jr c, .CantEncounter2 @@ -61,7 +61,7 @@ TryDoWildEncounter: ; 13870 (4:7870) inc hl jr .determineEncounterSlot .gotEncounterSlot -; determine which wild pokémon (grass or water) can appear in the half-block we’re standing in +; determine which wild pokemon (grass or water) can appear in the half-block we're standing in ld c, [hl] ld hl, W_GRASSMONS aCoord 8, 9 |