diff options
Diffstat (limited to 'main.asm')
-rw-r--r-- | main.asm | 11373 |
1 files changed, 141 insertions, 11232 deletions
@@ -439,7 +439,7 @@ Continue: ; 5d65 ld [MusicFadeIDLo], a ld a, MUSIC_NONE / $100 ld [MusicFadeIDHi], a - call WhiteBGMap + call ClearBGPalettes call Function5df0 call WriteBackup call ClearTileMap @@ -451,7 +451,7 @@ Continue: ; 5d65 ld a, [wSpawnAfterChampion] cp SPAWN_LANCE jr z, .SpawnAfterE4 - ld a, MAPSETUP_02 + ld a, MAPSETUP_CONTINUE ld [hMapEntryMethod], a jp FinishContinueFunction @@ -1085,7 +1085,7 @@ Function6219: ; 6219 jr nc, .loop call ClearSprites - call WhiteBGMap + call ClearBGPalettes pop af ld [rSVBK], a @@ -1467,7 +1467,7 @@ CopyrightString: ; 63fd GameInit:: ; 642e callba Function14f1c call ResetTextRelatedRAM - call WhiteBGMap + call ClearBGPalettes call ClearTileMap ld a, VBGMap0 / $100 ld [hBGMapAddress + 1], a @@ -3186,7 +3186,7 @@ Function8000: ; 8000 call DisableSpriteUpdates xor a ld [hBGMapMode], a - call WhiteBGMap + call ClearBGPalettes call ClearSprites hlcoord 0, 0 ld bc, TileMapEnd - TileMap @@ -3603,6 +3603,7 @@ Function8286: ; 8286 ld hl, OBJECT_MAP_OBJECT_INDEX add hl, de ld [hl], a + ld a, [wc2f4] call Function1a61 ld a, [wc2f3] @@ -3610,30 +3611,39 @@ Function8286: ; 8286 add hl, de or [hl] ld [hl], a + ld a, [wc2f7] call Function82d5 + ld a, [wc2f6] call Function82f1 + ld a, [wc2f1] ld hl, OBJECT_SPRITE add hl, de ld [hl], a + ld a, [wc2f2] ld hl, OBJECT_SPRITE_TILE add hl, de ld [hl], a + ld hl, OBJECT_09 add hl, de ld [hl], $0 + ld hl, OBJECT_FACING_STEP add hl, de ld [hl], $ff + ld a, [wc2f8] call Function830d + ld a, [wc2f5] ld hl, OBJECT_32 add hl, de ld [hl], a + and a ret ; 82d5 @@ -3694,7 +3704,7 @@ Function830d: ; 830d TrainerWalkToPlayer: ; 831e ld a, [hLastTalked] call InitMovementBuffer - ld a, movement_show_person + ld a, movement_step_sleep_1 call AppendToMovementBuffer ld a, [wd03f] dec a @@ -5269,7 +5279,7 @@ FlyFunction: ; ca3b special WarpToSpawnPoint callasm DelayLoadingNewSprites writecode VAR_MOVEMENT, $0 - newloadmap MAPSETUP_12 + newloadmap MAPSETUP_FLY callasm Function8cb33 special WaitSFX callasm Functioncacb @@ -5537,7 +5547,7 @@ UsedDigOrEscapeRopeScript: ; 0xcc3c farscall Script_AbortBugContest special WarpToSpawnPoint writecode VAR_MOVEMENT, $0 - newloadmap MAPSETUP_05 + newloadmap MAPSETUP_DOOR playsound SFX_WARP_FROM applymovement PLAYER, MovementData_0xcc5d end @@ -5635,7 +5645,7 @@ Script_UsedTeleport: ; 0xccbb farscall Script_AbortBugContest special WarpToSpawnPoint writecode VAR_MOVEMENT, $0 - newloadmap MAPSETUP_04 + newloadmap MAPSETUP_TELEPORT playsound SFX_WARP_FROM applymovement PLAYER, MovementData_0xcce3 end @@ -6333,14 +6343,14 @@ MovementData_0xd062: ; d062 fish_got_bite fish_got_bite fish_got_bite - show_person + step_sleep_1 show_emote step_end ; d069 MovementData_0xd069: ; d069 hide_emote - fish_got_bite_2 + fish_cast_rod step_end ; d06c @@ -6362,7 +6372,7 @@ Script_FishCastRod: ; 0xd07c loadvar hBGMapMode, $0 special UpdateTimePals loademote EMOTE_09 - callasm Functionb84b3 + callasm LoadFishingGFX loademote EMOTE_SHOCK applymovement PLAYER, MovementData_0xd093 pause 40 @@ -6370,7 +6380,7 @@ Script_FishCastRod: ; 0xd07c ; 0xd093 MovementData_0xd093: ; d093 - fish_got_bite_2 + fish_cast_rod step_end ; d095 @@ -9801,7 +9811,7 @@ Functione43f: ; e43f (3:643f) ret Functione443: ; e443 (3:6443) - ld hl, MenuDataHeader_0xe46f + ld hl, .MenuDataHeader call LoadMenuDataHeader ld a, $1 .loop @@ -9815,7 +9825,7 @@ Functione443: ; e443 (3:6443) ld a, [wMenuCursorBuffer] push af ld a, [MenuSelection] - ld hl, Jumptable_e4ba + ld hl, .Jumptable rst JumpTable pop bc ld a, b @@ -9825,38 +9835,38 @@ Functione443: ; e443 (3:6443) ret ; e46f (3:646f) -MenuDataHeader_0xe46f: ; 0xe46f +.MenuDataHeader: ; 0xe46f db $40 ; flags db 00, 00 ; start coords db 17, 19 ; end coords - dw MenuData2_0xe477 + dw .MenuData2 db 1 ; default option ; 0xe477 -MenuData2_0xe477: ; 0xe477 +.MenuData2: ; 0xe477 db $80 ; flags db 0 ; items - dw MenuItems_e4c4 + dw .items dw Function1f79 - dw Strings_e47f + dw .strings ; 0xe47f -Strings_e47f: ; e47f +.strings: ; e47f db "WITHDRAW <PK><MN>@" db "DEPOSIT <PK><MN>@" db "CHANGE BOX@" db "MOVE <PK><MN> W/O MAIL@" db "SEE YA!@" -Jumptable_e4ba: ; e4ba (3:64ba) - dw Functione559 - dw Functione4fe - dw Functione583 - dw Functione4cd - dw Functione4cb +.Jumptable: ; e4ba (3:64ba) + dw BillsPC_WithdrawMenu + dw BillsPC_DepositMenu + dw BillsPC_ChangeBoxMenu + dw BillsPC_MovePKMNMenu + dw BillsPC_SeeYa ; e4c4 -MenuItems_e4c4: ; e4c4 +.items: ; e4c4 db 5 db 0 ; WITHDRAW db 1; DEPOSIT @@ -9866,27 +9876,27 @@ MenuItems_e4c4: ; e4c4 db -1 ; e4cb -Functione4cb: ; e4cb +BillsPC_SeeYa: ; e4cb scf ret ; e4cd -Functione4cd: ; e4cd +BillsPC_MovePKMNMenu: ; e4cd call LoadStandardMenuDataHeader callba Function44781 - jr nc, .asm_e4e0 + jr nc, .no_mail ld hl, UnknownText_0xe4f9 call PrintText - jr .asm_e4f4 + jr .quit -.asm_e4e0 +.no_mail callba Function14b34 - jr c, .asm_e4f4 - callba Functione2759 - call Function222a + jr c, .quit + callba _MovePKMNWithoutMail + call ReturnToMapFromSubmenu call ClearPCItemScreen -.asm_e4f4 +.quit call WriteBackup and a ret @@ -9898,10 +9908,10 @@ UnknownText_0xe4f9: ; 0xe4f9 db "@" ; 0xe4fe -Functione4fe: ; e4fe (3:64fe) +BillsPC_DepositMenu: ; e4fe (3:64fe) call LoadStandardMenuDataHeader - callba Functione2391 - call Function222a + callba _DepositPKMN + call ReturnToMapFromSubmenu call ClearPCItemScreen call WriteBackup and a @@ -9974,10 +9984,10 @@ CheckCurPartyMonFainted: ; e538 ; e559 -Functione559: ; e559 (3:6559) +BillsPC_WithdrawMenu: ; e559 (3:6559) call LoadStandardMenuDataHeader - callba Functione2583 - call Function222a + callba _WithdrawPKMN + call ReturnToMapFromSubmenu call ClearPCItemScreen call WriteBackup and a @@ -10004,8 +10014,8 @@ UnknownText_0xe57e: ; 0xe57e db "@" ; 0xe583 -Functione583: ; e583 (3:6583) - callba Functione35aa +BillsPC_ChangeBoxMenu: ; e583 (3:6583) + callba _ChangeBox and a ret @@ -10013,7 +10023,7 @@ ClearPCItemScreen: ; e58b call DisableSpriteUpdates xor a ld [hBGMapMode], a - call WhiteBGMap + call ClearBGPalettes call ClearSprites hlcoord 0, 0 ld bc, SCREEN_HEIGHT * SCREEN_WIDTH @@ -10395,7 +10405,7 @@ Function11e75: ; 11e75 (4:5e75) ret Function11e9a: ; 11e9a (4:5e9a) - call WhiteBGMap + call ClearBGPalettes call DisableLCD call Function11c51 ld de, VTiles0 tile $00 @@ -11635,7 +11645,7 @@ Function156d9: ; 156d9 ret .asm_156f9 - call WhiteBGMap + call ClearBGPalettes ld c, $1 ret ; 156ff @@ -13144,7 +13154,7 @@ Function16be4: ; 16be4 push af set NO_TEXT_SCROLL, a ld [Options], a - call WhiteBGMap + call ClearBGPalettes call ClearTileMap ld de, UnownDexATile @@ -13225,7 +13235,7 @@ Function16be4: ; 16be4 ld [Options], a pop af ld [hInMenu], a - call Function222a + call ReturnToMapFromSubmenu ret ; 16ca0 @@ -15710,7 +15720,7 @@ Function25105: ; 25105 ret Function2513b: ; 2513b (9:513b) - call WhiteBGMap + call ClearBGPalettes call ClearSprites call ClearTileMap call DisableLCD @@ -17997,7 +18007,7 @@ LevelUpHappinessMod: ; 2709e INCLUDE "trainers/dvs.asm" Function2715c: ; 2715c - call WhiteBGMap + call ClearBGPalettes call ClearTileMap ld a, [BattleType] cp BATTLETYPE_TUTORIAL @@ -19614,7 +19624,7 @@ INCBIN "gfx/battle/balls.2bpp" ; 2c1b2 _ShowLinkBattleParticipants: ; 2c1b2 - call WhiteBGMap + call ClearBGPalettes call LoadFontsExtra hlcoord 2, 3 ld b, 9 @@ -20222,7 +20232,7 @@ Function2c7fb: ; 2c7fb ld de, wd066 ld bc, $c call CopyBytes - call WhiteBGMap + call ClearBGPalettes Function2c80a: ; 2c80a callba Function5004f @@ -23442,7 +23452,7 @@ Function4484a: ; 0x4484a call FadeToMenu xor a ld [PartyMenuActionText], a - call WhiteBGMap + call ClearBGPalettes .asm_448dc callba Function5004f callba Function50405 @@ -23564,7 +23574,7 @@ Function4802f: ; 4802f (12:402f) ld a, c and a call z, Function48000 - call WhiteBGMap + call ClearBGPalettes call Function48d3d ld a, [wd479] bit 1, a @@ -23587,7 +23597,7 @@ Function4802f: ; 4802f (12:402f) lb bc, BANK(GFX_488cb), 1 call Request1bpp call Function4a3a7 - call WhiteBGMap + call ClearBGPalettes ld a, [wd002] bit 6, a jr z, .asm_4808a @@ -23604,7 +23614,7 @@ Function4802f: ; 4802f (12:402f) call DelayFrames ld b, $1 call Function4930f - call WhiteBGMap + call ClearBGPalettes hlcoord 0, 0 ld b, $2 ld c, $14 @@ -23698,7 +23708,7 @@ asm_4815f: ; 4815f (12:415f) .asm_48177 jp Function48272 .asm_4817a - call WhiteBGMap + call ClearBGPalettes call Function48d30 pop bc call ClearTileMap @@ -23811,7 +23821,7 @@ Function4820d: ; 4820d (12:420d) call DelayFrames .asm_4825c - call WhiteBGMap + call ClearBGPalettes call Function48d30 pop bc call ClearTileMap @@ -24223,7 +24233,7 @@ Function48689: ; 48689 (12:4689) call DelayFrames ld b, $1 call Function4930f - call WhiteBGMap + call ClearBGPalettes hlcoord 0, 0 ld b, $4 ld c, $14 @@ -25436,7 +25446,7 @@ Function48e14: ; 48e14 (12:4e14) ld [MusicFadeIDHi], a ld c, 8 call DelayFrames - call WhiteBGMap + call ClearBGPalettes call Function48000 call LoadFontsExtra hlcoord 0, 0 @@ -25505,7 +25515,7 @@ INCBIN "gfx/misc/pack_f.2bpp" Function4925b: ; 4925b call FadeToMenu - call WhiteBGMap + call ClearBGPalettes call ClearScreen call DelayFrame ld b, $14 @@ -26955,16 +26965,16 @@ MainMenu_MysteryGift: ; 49ef5 ; 49efc MainMenu_Mobile: ; 49efc - call WhiteBGMap + call ClearBGPalettes ld a, MUSIC_MOBILE_ADAPTER_MENU ld [wMapMusic], a ld de, MUSIC_MOBILE_ADAPTER_MENU call Function4a6c5 Function49f0a: ; 49f0a - call WhiteBGMap + call ClearBGPalettes call Function4a3a7 call Function4a492 - call WhiteBGMap + call ClearBGPalettes Function49f16: ; 49f16 call Function4a071 ld c, 12 @@ -27021,7 +27031,7 @@ Function49f16: ; 49f16 .asm_49f84 pop bc - call WhiteBGMap + call ClearBGPalettes call ClearTileMap ld a, MUSIC_MAIN_MENU ld [wMapMusic], a @@ -27160,7 +27170,7 @@ Function4a0c2: ; 4a0c2 (12:60c2) ld c, $1 call Function4802f push af - call WhiteBGMap + call ClearBGPalettes pop af and a jr nz, .asm_4a0f9 @@ -27173,9 +27183,9 @@ Function4a0c2: ; 4a0c2 (12:60c2) Function4a100: ; 4a100 (12:6100) ld a, $2 call Function1ff8 - call WhiteBGMap + call ClearBGPalettes call Function4a13b - call WhiteBGMap + call ClearBGPalettes call ClearTileMap asm_4a111: ; 4a111 (12:6111) @@ -27308,7 +27318,7 @@ Function4a20e: ; 4a20e (12:620e) ld a, $1 call Function1ff8 callba Function1719c8 - call WhiteBGMap + call ClearBGPalettes call DelayFrame jr Function4a239 @@ -27378,7 +27388,7 @@ Function4a28a: ; 4a28a (12:628a) jr z, .asm_4a33b .asm_4a2df callba Function11765d - call WhiteBGMap + call ClearBGPalettes call Call_ExitMenu call LoadFontsExtra scf @@ -27610,7 +27620,7 @@ MainMenu_MobileStudium: ; 4a496 push bc push de callba MobileStudium - call WhiteBGMap + call ClearBGPalettes pop de pop bc ld a, b @@ -27626,11 +27636,11 @@ MainMenu_MobileStudium: ; 4a496 Function4a4c4: ; 4a4c4 (12:64c4) - call WhiteBGMap + call ClearBGPalettes call Function4a3a7 call Function4a492 call Function4a680 - call WhiteBGMap + call ClearBGPalettes ld c, 20 call DelayFrames hlcoord 2, 0 @@ -27704,7 +27714,7 @@ asm_4a54d: ; 4a54d (12:654d) call Function1ff8 .asm_4a574 pop bc - call WhiteBGMap + call ClearBGPalettes call ClearTileMap jp Function49f0a .asm_4a57e @@ -27805,7 +27815,7 @@ endr Function4a6ab: ; 4a6ab (12:66ab) ld a, $2 call Function1ff8 - call WhiteBGMap + call ClearBGPalettes ld b, $8 call GetSGBLayout callba Function11c1ab @@ -28429,7 +28439,7 @@ UnknownText_0x4aa1d: ; 0x4aa1d ; 0x4aa22 Function4aa22: ; 4aa22 - call WhiteBGMap + call ClearBGPalettes Function4aa25: ; 4aa25 callba Function5004f @@ -29524,7 +29534,7 @@ Function4d319: ; 4d319 inc a ld [MenuSelection2], a call ClearScreen - call WhiteBGMap + call ClearBGPalettes call MaxVolume callba Function28ef8 callba Function4d354 @@ -30745,13 +30755,13 @@ StatsScreenInit_gotaddress: ; 4dc94 push bc push hl - call WhiteBGMap + call ClearBGPalettes call ClearTileMap call UpdateSprites callba Functionfb53e pop hl call _hl_ - call WhiteBGMap + call ClearBGPalettes call ClearTileMap pop bc @@ -30860,7 +30870,7 @@ Function4dd6c: ; 4dd6c (13:5d6c) MonStatsInit: ; 4dd72 (13:5d72) ld hl, wcf64 res 6, [hl] - call WhiteBGMap + call ClearBGPalettes call ClearTileMap callba Function10402d call Function4ddf2 @@ -32140,1385 +32150,13 @@ INCLUDE "event/poke_seer.asm" SECTION "bank14", ROMX, BANK[$14] -SelectMonFromParty: ; 50000 - call DisableSpriteUpdates - xor a - ld [PartyMenuActionText], a - call WhiteBGMap - call Function5003f - call WaitBGMap - call SetPalettes - call DelayFrame - call PartyMenuSelect - call Function2b74 - ret -; 5001d - - -Function5001d: ; 5001d - ld a, b - ld [PartyMenuActionText], a - call DisableSpriteUpdates - call WhiteBGMap - call Function5003f - call WaitBGMap - ld b, $a - call GetSGBLayout - call SetPalettes - call DelayFrame - call PartyMenuSelect - call Function2b74 - ret -; 5003f - -Function5003f: ; 5003f - call Function5004f - call Function50405 - call Function503e0 - call WritePartyMenuTilemap - call PrintPartyMenuText - ret -; 5004f - -Function5004f: ; 5004f - call LoadFontsBattleExtra - callab Function8ad1 ; engine/color.asm - callab InefficientlyClear121BytesAtwc300 - ret -; 5005f - - -WritePartyMenuTilemap: ; 0x5005f - ld hl, Options - ld a, [hl] - push af - set 4, [hl] ; Disable text delay - xor a - ld [hBGMapMode], a - hlcoord 0, 0 - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT - ld a, " " - call ByteFill ; blank the tilemap - call GetPartyMenuTilemapPointers ; This reads from a pointer table??? -.loop - ld a, [hli] - cp $ff - jr z, .end ; 0x5007a $8 - push hl - ld hl, .Jumptable - rst JumpTable - pop hl - jr .loop ; 0x50082 $f3 -.end - pop af - ld [Options], a - ret -; 0x50089 - -.Jumptable: ; 50089 - dw PlacePartyNicknames - dw PlacePartyHPBar - dw PlacePartyMenuHPDigits - dw PlacePartyMonLevel - dw PlacePartyMonStatus - dw PlacePartyMonTMHMCompatibility - dw PlacePartyMonEvoStoneCompatibility - dw PlacePartyMonGender - dw PlacePartyMonMobileBattleSelection -; 5009b - -PlacePartyNicknames: ; 5009b - hlcoord 3, 1 - ld a, [PartyCount] - and a - jr z, .end - ld c, a - ld b, $0 -.loop - push bc - push hl - push hl - ld hl, PartyMonNicknames - ld a, b - call GetNick - pop hl - call PlaceString - pop hl - ld de, 2 * SCREEN_WIDTH - add hl, de - pop bc - inc b - dec c - jr nz, .loop - -.end -rept 2 - dec hl -endr - ld de, .CANCEL - call PlaceString - ret -; 500c8 - -.CANCEL: ; 500c8 - db "CANCEL@" -; 500cf - - -PlacePartyHPBar: ; 500cf - xor a - ld [wcda9], a - ld a, [PartyCount] - and a - ret z - ld c, a - ld b, $0 - hlcoord 11, 2 -.loop - push bc - push hl - call PartyMenuCheckEgg - jr z, .skip - push hl - call PlacePartymonHPBar - pop hl - ld d, $6 - ld b, $0 - call DrawBattleHPBar - ld hl, wcd9b - ld a, [wcda9] - ld c, a - ld b, $0 - add hl, bc - call SetHPPal - ld b, $fc - call GetSGBLayout - -.skip - ld hl, wcda9 - inc [hl] - pop hl - ld de, 2 * SCREEN_WIDTH - add hl, de - pop bc - inc b - dec c - jr nz, .loop - ld b, $a - call GetSGBLayout - ret -; 50117 - -PlacePartymonHPBar: ; 50117 - ld a, b - ld bc, PARTYMON_STRUCT_LENGTH - ld hl, PartyMon1HP - call AddNTimes - ld a, [hli] - or [hl] - jr nz, .not_fainted - xor a - ld e, a - ld c, a - ret - -.not_fainted - dec hl - ld a, [hli] - ld b, a - ld a, [hli] - ld c, a - ld a, [hli] - ld d, a - ld a, [hli] - ld e, a - predef DrawPartyMenuHPBar - ret -; 50138 - -PlacePartyMenuHPDigits: ; 50138 - ld a, [PartyCount] - and a - ret z - ld c, a - ld b, $0 - hlcoord 13, 1 -.loop - push bc - push hl - call PartyMenuCheckEgg - jr z, .next - push hl - ld a, b - ld bc, PARTYMON_STRUCT_LENGTH - ld hl, PartyMon1HP - call AddNTimes - ld e, l - ld d, h - pop hl - push de - lb bc, 2, 3 - call PrintNum - pop de - ld a, "/" - ld [hli], a -rept 2 - inc de -endr - lb bc, 2, 3 - call PrintNum - -.next - pop hl - ld de, 2 * SCREEN_WIDTH - add hl, de - pop bc - inc b - dec c - jr nz, .loop - ret -; 50176 - -PlacePartyMonLevel: ; 50176 - ld a, [PartyCount] - and a - ret z - ld c, a - ld b, 0 - hlcoord 8, 2 -.loop - push bc - push hl - call PartyMenuCheckEgg - jr z, .next - push hl - ld a, b - ld bc, PARTYMON_STRUCT_LENGTH - ld hl, PartyMon1Level - call AddNTimes - ld e, l - ld d, h - pop hl - ld a, [de] - cp 100 ; This is distinct from MAX_LEVEL. - jr nc, .ThreeDigits - ld a, "<LV>" - ld [hli], a - lb bc, PRINTNUM_RIGHTALIGN | 1, 2 - ; jr .okay -.ThreeDigits - lb bc, PRINTNUM_RIGHTALIGN | 1, 3 -; .okay - call PrintNum - -.next - pop hl - ld de, SCREEN_WIDTH * 2 - add hl, de - pop bc - inc b - dec c - jr nz, .loop - ret -; 501b2 - -PlacePartyMonStatus: ; 501b2 - ld a, [PartyCount] - and a - ret z - ld c, a - ld b, 0 - hlcoord 5, 2 -.loop - push bc - push hl - call PartyMenuCheckEgg - jr z, .next - push hl - ld a, b - ld bc, PARTYMON_STRUCT_LENGTH - ld hl, PartyMon1Status - call AddNTimes - ld e, l - ld d, h - pop hl - call PlaceStatusString - -.next - pop hl - ld de, SCREEN_WIDTH * 2 - add hl, de - pop bc - inc b - dec c - jr nz, .loop - ret -; 501e0 - -PlacePartyMonTMHMCompatibility: ; 501e0 - ld a, [PartyCount] - and a - ret z - ld c, a - ld b, 0 - hlcoord 12, 2 -.loop - push bc - push hl - call PartyMenuCheckEgg - jr z, .next - push hl - ld hl, PartySpecies - ld e, b - ld d, 0 - add hl, de - ld a, [hl] - ld [CurPartySpecies], a - predef CanLearnTMHMMove - pop hl - call .PlaceAbleNotAble - call PlaceString - -.next - pop hl - ld de, SCREEN_WIDTH * 2 - add hl, de - pop bc - inc b - dec c - jr nz, .loop - ret -; 50215 - -.PlaceAbleNotAble: ; 50215 - ld a, c - and a - jr nz, .able - ld de, .string_not_able - ret - -.able - ld de, .string_able - ret -; 50221 - -.string_able: ; 50221 - db "ABLE@" -; 50226 - -.string_not_able: ; 50226 - db "NOT ABLE@" -; 5022f - - -PlacePartyMonEvoStoneCompatibility: ; 5022f - ld a, [PartyCount] - and a - ret z - ld c, a - ld b, 0 - hlcoord 12, 2 -.loop - push bc - push hl - call PartyMenuCheckEgg - jr z, .next - push hl - ld a, b - ld bc, PARTYMON_STRUCT_LENGTH - ld hl, PartyMon1Species - call AddNTimes - ld a, [hl] - dec a - ld e, a - ld d, 0 - ld hl, EvosAttacksPointers -rept 2 - add hl, de -endr - call .DetermineCompatibility - pop hl - call PlaceString - -.next - pop hl - ld de, 2 * SCREEN_WIDTH - add hl, de - pop bc - inc b - dec c - jr nz, .loop - ret -; 50268 - -.DetermineCompatibility: ; 50268 - ld de, StringBuffer1 - ld a, BANK(EvosAttacksPointers) - ld bc, 2 - call FarCopyBytes - ld hl, StringBuffer1 - ld a, [hli] - ld h, [hl] - ld l, a - ld de, StringBuffer1 - ld a, BANK(EvosAttacks) - ld bc, $a - call FarCopyBytes - ld hl, StringBuffer1 -.loop2 - ld a, [hli] - and a - jr z, .nope -rept 2 - inc hl -endr - cp EVOLVE_ITEM - jr nz, .loop2 -rept 2 - dec hl -endr - ld a, [CurItem] - cp [hl] -rept 2 - inc hl -endr - jr nz, .loop2 - ld de, .string_able - ret - -.nope - ld de, .string_not_able - ret -; 502a3 - -.string_able: ; 502a3 - db "ABLE@" -; 502a8 -.string_not_able: ; 502a8 - db "NOT ABLE@" -; 502b1 - - -PlacePartyMonGender: ; 502b1 - ld a, [PartyCount] - and a - ret z - ld c, a - ld b, 0 - hlcoord 12, 2 -.loop - push bc - push hl - call PartyMenuCheckEgg - jr z, .next - ld [CurPartySpecies], a - push hl - ld a, b - ld [CurPartyMon], a - xor a - ld [MonType], a - call GetGender - ld de, .unknown - jr c, .got_gender - ld de, .male - jr nz, .got_gender - ld de, .female - -.got_gender - pop hl - call PlaceString - -.next - pop hl - ld de, 2 * SCREEN_WIDTH - add hl, de - pop bc - inc b - dec c - jr nz, .loop - ret -; 502ee - -.male: ; 502ee - db "♂…MALE@" -; 502f5 - -.female: ; 502f5 - db "♀…FEMALE@" -; 502fe - -.unknown: ; 502fe - db "…UNKNOWN@" -; 50307 - - -PlacePartyMonMobileBattleSelection: ; 50307 - ld a, [PartyCount] - and a - ret z - ld c, a - ld b, 0 - hlcoord 12, 1 -.loop - push bc - push hl - ld de, .String_Sanka_Shinai - call PlaceString - pop hl - ld de, 2 * SCREEN_WIDTH - add hl, de - pop bc - inc b - dec c - jr nz, .loop - ld a, l - ld e, PKMN_NAME_LENGTH - sub e - ld l, a - ld a, h - sbc $0 - ld h, a - ld de, .String_Kettei_Yameru - call PlaceString - ld b, $3 - ld c, $0 - ld hl, wd002 - ld a, [hl] -.loop2 - push hl - push bc - hlcoord 12, 1 -.loop3 - and a - jr z, .done - ld de, 2 * SCREEN_WIDTH - add hl, de - dec a - jr .loop3 - -.done - ld de, .String_Banme - push hl - call PlaceString - pop hl - pop bc - push bc - push hl - ld a, c - ld hl, .Strings_1_2_3 - call GetNthString - ld d, h - ld e, l - pop hl - call PlaceString - pop bc - pop hl - inc hl - ld a, [hl] - inc c - dec b - ret z - jr .loop2 -; 5036b - -.String_Banme: ; 5036b - db " ばんめ @" ; Place -; 50372 -.String_Sanka_Shinai: ; 50372 - db "さんかしない@" ; Cancel -; 50379 -.String_Kettei_Yameru: ; 50379 - db "けってい やめる@" ; Quit -; 50383 -.Strings_1_2_3: ; 50383 - db "1@", "2@", "3@" ; 1st, 2nd, 3rd -; 50389 - - -PartyMenuCheckEgg: ; 50389 - ld a, PartySpecies % $100 - add b - ld e, a - ld a, PartySpecies / $100 - adc 0 - ld d, a - ld a, [de] - cp EGG - ret -; 50396 - -GetPartyMenuTilemapPointers: ; 50396 - ld a, [PartyMenuActionText] - and $f0 - jr nz, .skip - ld a, [PartyMenuActionText] - and $f - ld e, a - ld d, 0 - ld hl, .Pointers -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - ret - -.skip - ld hl, .Default - ret -; 503b2 - -.Pointers: ; 503b2 - dw .Default - dw .Default - dw .Default - dw .TMHM - dw .Default - dw .EvoStone - dw .Gender - dw .Gender - dw .Default - dw .Mobile -; 503c6 - -.Default: db 0, 1, 2, 3, 4, $ff -.TMHM: db 0, 5, 3, 4, $ff -.EvoStone: db 0, 6, 3, 4, $ff -.Gender: db 0, 7, 3, 4, $ff -.Mobile: db 0, 8, 3, 4, $ff -; 503e0 - - -Function503e0: ; 503e0 - ld hl, PartyCount - ld a, [hli] - and a - ret z - ld c, a - xor a - ld [hObjectStructIndexBuffer], a -.asm_503ea - push bc - push hl - ld hl, Function8e83f - ld a, BANK(Function8e83f) - ld e, $0 - rst FarCall - ld a, [hObjectStructIndexBuffer] - inc a - ld [hObjectStructIndexBuffer], a - pop hl - pop bc - dec c - jr nz, .asm_503ea - callab Function8cf69 - ret -; 50405 - -Function50405: ; 50405 - xor a - ld [wd0e3], a - ld de, Unknown_5044f - call Function1bb1 - ld a, [PartyCount] - inc a - ld [wcfa3], a - dec a - ld b, a - ld a, [wd0d8] - and a - jr z, .asm_50422 - inc b - cp b - jr c, .asm_50424 - -.asm_50422 - ld a, $1 - -.asm_50424 - ld [MenuSelection2], a - ld a, $3 - ld [wcfa8], a - ret -; 5042d - -Function5042d: ; 0x5042d - ld de, Unknown_5044f - call Function1bb1 - ld a, [PartyCount] - ld [wcfa3], a - ld b, a - ld a, [wd0d8] - and a - jr z, .asm_50444 - inc b - cp b - jr c, .asm_50446 -.asm_50444 - ld a, $1 -.asm_50446 - ld [MenuSelection2], a - ld a, $3 - ld [wcfa8], a - ret -; 5044f (14:444f) - -Unknown_5044f: ; 5044f -; cursor y -; cursor x -; list length -; ? -; bit 6: animate sprites bit 5: wrap around -; ? -; distance between items (hi: y, lo: x) -; allowed buttons (mask) - db $01, $00, $00, $01, $60, $00, $20, $00 -; 50457 - -PartyMenuSelect: ; 0x50457 -; sets carry if exitted menu. - call Function1bc9 - call Function1bee - ld a, [PartyCount] - inc a - ld b, a - ld a, [MenuSelection2] ; menu selection? - cp b - jr z, .exitmenu ; CANCEL - ld [wd0d8], a - ld a, [hJoyLast] - ld b, a - bit 1, b - jr nz, .exitmenu ; B button? - ld a, [MenuSelection2] - dec a - ld [CurPartyMon], a - ld c, a - ld b, $0 - ld hl, PartySpecies - add hl, bc - ld a, [hl] - ld [CurPartySpecies], a - - ld de, SFX_READ_TEXT_2 - call PlaySFX - call WaitSFX - and a - ret - -.exitmenu - ld de, SFX_READ_TEXT_2 - call PlaySFX - call WaitSFX - scf - ret -; 0x5049a - - -PrintPartyMenuText: ; 5049a - hlcoord 0, 14 - lb bc, 2, 18 - call TextBox - ld a, [PartyCount] - and a - jr nz, .haspokemon - ld de, YouHaveNoPKMNString - jr .gotstring -.haspokemon ; 504ae - ld a, [PartyMenuActionText] - and $f ; drop high nibble - ld hl, PartyMenuStrings - ld e, a - ld d, $0 -rept 2 - add hl, de -endr - ld a, [hli] - ld d, [hl] - ld e, a -.gotstring ; 504be - ld a, [Options] - push af - set 4, a ; disable text delay - ld [Options], a - hlcoord 1, 16 ; Coord - call PlaceString - pop af - ld [Options], a - ret -; 0x504d2 - -PartyMenuStrings: ; 0x504d2 - dw ChooseAMonString - dw UseOnWhichPKMNString - dw WhichPKMNString - dw TeachWhichPKMNString - dw MoveToWhereString - dw UseOnWhichPKMNString - dw ChooseAMonString ; Probably used to be ChooseAFemalePKMNString - dw ChooseAMonString ; Probably used to be ChooseAMalePKMNString - dw ToWhichPKMNString - -ChooseAMonString: ; 0x504e4 - db "Choose a #MON.@" -UseOnWhichPKMNString: ; 0x504f3 - db "Use on which <PK><MN>?@" -WhichPKMNString: ; 0x50504 - db "Which <PK><MN>?@" -TeachWhichPKMNString: ; 0x5050e - db "Teach which <PK><MN>?@" -MoveToWhereString: ; 0x5051e - db "Move to where?@" -ChooseAFemalePKMNString: ; 0x5052d ; UNUSED - db "Choose a ♀<PK><MN>.@" -ChooseAMalePKMNString: ; 0x5053b ; UNUSED - db "Choose a ♂<PK><MN>.@" -ToWhichPKMNString: ; 0x50549 - db "To which <PK><MN>?@" - -YouHaveNoPKMNString: ; 0x50556 - db "You have no <PK><MN>!@" - - -Function50566: ; 50566 - ld a, [CurPartyMon] - ld hl, PartyMonNicknames - call GetNick - ld a, [PartyMenuActionText] - and $f - ld hl, Unknown_5057b - call Function505c1 - ret -; 5057b - -Unknown_5057b: ; 5057b - dw UnknownText_0x50594 - dw UnknownText_0x5059e - dw UnknownText_0x505a3 - dw UnknownText_0x505a8 - dw UnknownText_0x50599 - dw UnknownText_0x5058f - dw UnknownText_0x505ad - dw UnknownText_0x505b2 - dw UnknownText_0x505b7 - dw UnknownText_0x505bc -; 5058f - -UnknownText_0x5058f: ; 0x5058f - ; recovered @ HP! - text_jump UnknownText_0x1bc0a2 - db "@" -; 0x50594 - -UnknownText_0x50594: ; 0x50594 - ; 's cured of poison. - text_jump UnknownText_0x1bc0bb - db "@" -; 0x50599 - -UnknownText_0x50599: ; 0x50599 - ; 's rid of paralysis. - text_jump UnknownText_0x1bc0d2 - db "@" -; 0x5059e - -UnknownText_0x5059e: ; 0x5059e - ; 's burn was healed. - text_jump UnknownText_0x1bc0ea - db "@" -; 0x505a3 - -UnknownText_0x505a3: ; 0x505a3 - ; was defrosted. - text_jump UnknownText_0x1bc101 - db "@" -; 0x505a8 - -UnknownText_0x505a8: ; 0x505a8 - ; woke up. - text_jump UnknownText_0x1bc115 - db "@" -; 0x505ad - -UnknownText_0x505ad: ; 0x505ad - ; 's health returned. - text_jump UnknownText_0x1bc123 - db "@" -; 0x505b2 - -UnknownText_0x505b2: ; 0x505b2 - ; is revitalized. - text_jump UnknownText_0x1bc13a - db "@" -; 0x505b7 - -UnknownText_0x505b7: ; 0x505b7 - ; grew to level @ !@ @ - text_jump UnknownText_0x1bc14f - db "@" -; 0x505bc - -UnknownText_0x505bc: ; 0x505bc - ; came to its senses. - text_jump UnknownText_0x1bc16e - db "@" -; 0x505c1 - - -Function505c1: ; 505c1 - ld e, a - ld d, 0 -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - ld a, [Options] - push af - set 4, a - ld [Options], a - call PrintText - pop af - ld [Options], a - ret -; 505da - -DoPoisonStep:: ; 505da - ld a, [PartyCount] - and a - jr z, .asm_5062c - xor a - ld c, 7 - ld hl, EngineBuffer1 -.asm_505e6 - ld [hli], a - dec c - jr nz, .asm_505e6 - xor a - ld [CurPartyMon], a -.asm_505ee - call Function5062e - jr nc, .asm_50605 - ld a, [CurPartyMon] - ld e, a - ld d, 0 - ld hl, wd03f - add hl, de - ld [hl], c - ld a, [EngineBuffer1] - or c - ld [EngineBuffer1], a - -.asm_50605 - ld a, [PartyCount] - ld hl, CurPartyMon - inc [hl] - cp [hl] - jr nz, .asm_505ee - ld a, [EngineBuffer1] - and $2 - jr nz, .asm_50622 - ld a, [EngineBuffer1] - and $1 - jr z, .asm_5062c - call Function50658 - xor a - ret - -.asm_50622 - ld a, BANK(UnknownScript_0x50669) - ld hl, UnknownScript_0x50669 - call CallScript - scf - ret - -.asm_5062c - xor a - ret -; 5062e - -Function5062e: ; 5062e - ld a, MON_STATUS - call GetPartyParamLocation - ld a, [hl] - and 1 << PSN - ret z - - ld a, MON_HP - call GetPartyParamLocation - ld a, [hli] - ld b, a - ld c, [hl] - - or c - ret z - - dec bc - ld [hl], c - dec hl - ld [hl], b - - ld a, b - or c - jr nz, .not_fainted - - ld a, MON_STATUS - call GetPartyParamLocation - ld [hl], 0 - ld c, 2 - scf - ret - -.not_fainted - ld c, 1 - scf - ret -; 50658 - -Function50658: ; 50658 - ld de, SFX_POISON - call PlaySFX - ld b, $2 - predef Functioncbcdd - call DelayFrame - ret -; 50669 - -UnknownScript_0x50669: ; 50669 - callasm Function50658 - loadfont - callasm Function5067b - iffalse UnknownScript_0x50677 - loadmovesprites - end -; 50677 - -UnknownScript_0x50677: ; 50677 - farjump Script_OverworldWhiteout -; 5067b - -Function5067b: ; 5067b - xor a - ld [CurPartyMon], a - ld de, wd03f -.asm_50682 - push de - ld a, [de] - and 2 - jr z, .asm_5069c - ld c, HAPPINESS_POISONFAINT - callba ChangeHappiness - callba GetPartyNick - ld hl, PoisonFaintText - call PrintText - -.asm_5069c - pop de - inc de - ld hl, CurPartyMon - inc [hl] - ld a, [PartyCount] - cp [hl] - jr nz, .asm_50682 - predef CheckPlayerPartyForFitPkmn - ld a, d - ld [ScriptVar], a - ret -; 506b2 - -PoisonFaintText: ; 506b2 - text_jump UnknownText_0x1c0acc - db "@" -; 506b7 - -PoisonWhiteOutText: ; 506b7 - text_jump UnknownText_0x1c0ada - db "@" -; 506bc - - -DoMovementFunctionc: ; 506bc - ld hl, UnknownScript_0x506c8 - call QueueScript - ld a, $1 - ld [wd0ec], a - ret -; 506c8 - -UnknownScript_0x506c8: ; 0x506c8 - reloadmappart - special UpdateTimePals - callasm GetPartyNick - writetext UnknownText_0x50726 - closetext - callasm SweetScentEncounter - iffalse UnknownScript_0x506e9 - checkflag ENGINE_BUG_CONTEST_TIMER - iftrue UnknownScript_0x506e5 - battlecheck - startbattle - returnafterbattle - end -; 0x506e5 - -UnknownScript_0x506e5: ; 0x506e5 - farjump BugCatchingContestBattleScript -; 0x506e9 - -UnknownScript_0x506e9: ; 0x506e9 - writetext UnknownText_0x5072b - closetext - loadmovesprites - end -; 0x506ef - -SweetScentEncounter: ; 506ef - callba CanUseSweetScent - jr nc, .no_battle - ld hl, StatusFlags2 - bit 2, [hl] - jr nz, .not_in_bug_contest - callba GetMapEncounterRate - ld a, b - and a - jr z, .no_battle - callba ChooseWildEncounter - jr nz, .no_battle - jr .start_battle - -.not_in_bug_contest - callba ChooseWildEncounter_BugContest - -.start_battle - ld a, $1 - ld [ScriptVar], a - ret - -.no_battle - xor a - ld [ScriptVar], a - ld [BattleType], a - ret -; 50726 - -UnknownText_0x50726: ; 0x50726 - ; used SWEET SCENT! - text_jump UnknownText_0x1c0b03 - db "@" -; 0x5072b - -UnknownText_0x5072b: ; 0x5072b - ; Looks like there's nothing here… - text_jump UnknownText_0x1c0b1a - db "@" -; 0x50730 - - -_Squirtbottle: ; 50730 - ld hl, UnknownScript_0x5073c - call QueueScript - ld a, $1 - ld [wd0ec], a - ret -; 5073c - -UnknownScript_0x5073c: ; 0x5073c - reloadmappart - special UpdateTimePals - callasm Function50753 - iffalse UnknownScript_0x5074b - farjump WateredWeirdTreeScript -; 0x5074b - -UnknownScript_0x5074b: ; 0x5074b - jumptext UnknownText_0x5074e -; 0x5074e - -UnknownText_0x5074e: ; 0x5074e - ; sprinkled water. But nothing happened… - text_jump UnknownText_0x1c0b3b - db "@" -; 0x50753 - -Function50753: ; 50753 - ld a, [MapGroup] - cp GROUP_ROUTE_36 - jr nz, .asm_50774 - - ld a, [MapNumber] - cp MAP_ROUTE_36 - jr nz, .asm_50774 - - callba GetFacingObject - jr c, .asm_50774 - - ld a, d - cp $17 - jr nz, .asm_50774 - - ld a, $1 - ld [ScriptVar], a - ret - -.asm_50774 - xor a - ld [ScriptVar], a - ret -; 50779 - - -_CardKey: ; 50779 -; Are we even in the right map to use this? - ld a, [MapGroup] - cp GROUP_RADIO_TOWER_3F - jr nz, .nope - - ld a, [MapNumber] - cp MAP_RADIO_TOWER_3F - jr nz, .nope -; Are we facing the slot? - ld a, [PlayerDirection] - and $c - cp OW_UP - jr nz, .nope - - call GetFacingTileCoord - ld a, d - cp 18 - jr nz, .nope - ld a, e - cp 6 - jr nz, .nope -; Let's use the Card Key. - ld hl, .CardKeyScript - call QueueScript - ld a, $1 - ld [wd0ec], a - ret - -.nope - ld a, $0 - ld [wd0ec], a - ret -; 507af - -.CardKeyScript: ; 0x507af - loadmovesprites - farjump MapRadioTower3FSignpost2Script -; 0x507b4 - - -_BasementKey: ; 507b4 -; Are we even in the right map to use this? - ld a, [MapGroup] - cp GROUP_WAREHOUSE_ENTRANCE - jr nz, .nope - - ld a, [MapNumber] - cp MAP_WAREHOUSE_ENTRANCE - jr nz, .nope -; Are we on the tile in front of the door? - call GetFacingTileCoord - ld a, d - cp 22 - jr nz, .nope - ld a, e - cp 10 - jr nz, .nope -; Let's use the Basement Key - ld hl, .BasementKeyScript - call QueueScript - ld a, 1 - ld [wd0ec], a - ret - -.nope - ld a, $0 - ld [wd0ec], a - ret -; 507e1 - -.BasementKeyScript: ; 0x507e1 - loadmovesprites - farjump BasementDoorScript -; 0x507e6 - - -_SacredAsh: ; 507e6 - ld a, $0 - ld [wd0ec], a - call CheckAnyFaintedMon - ret nc - - ld hl, SacredAshScript - call QueueScript - ld a, $1 - ld [wd0ec], a - ret -; 507fb - -CheckAnyFaintedMon: ; 507fb - ld de, PARTYMON_STRUCT_LENGTH - ld bc, PartySpecies - ld hl, PartyMon1HP - ld a, [PartyCount] - and a - ret z - -.loop - push af - push hl - ld a, [bc] - inc bc - cp EGG - jr z, .next - - ld a, [hli] - or [hl] - jr z, .done - -.next - pop hl - add hl, de - pop af - dec a - jr nz, .loop - xor a - ret - -.done - pop hl - pop af - scf - ret -; 50821 - -SacredAshScript: ; 0x50821 - special HealParty - reloadmappart - playsound SFX_WARP_TO - special FadeBlackBGMap - special FadeInBGMap - special FadeBlackBGMap - special FadeInBGMap - special FadeBlackBGMap - special FadeInBGMap - waitbutton - writetext UnknownText_0x50845 - playsound SFX_CAUGHT_MON - waitbutton - closetext - loadmovesprites - end -; 0x50845 - -UnknownText_0x50845: ; 0x50845 - ; 's #MON were all healed! - text_jump UnknownText_0x1c0b65 - db "@" -; 0x5084a +INCLUDE "engine/party_menu.asm" +INCLUDE "event/poisonstep.asm" +INCLUDE "event/sweet_scent.asm" +INCLUDE "event/squirtbottle.asm" +INCLUDE "event/card_key.asm" +INCLUDE "event/basement_key.asm" +INCLUDE "event/sacred_ash.asm" CopyPkmnToTempMon: ; 5084a ; gets the BaseData of a Pkmn @@ -33567,21 +32205,21 @@ Function50890: ; 50890 ; 50893 Function50893: ; 50893 - ld hl, TempMonLevel - TempMon + ld hl, MON_LEVEL add hl, bc ld a, [hl] ld [CurPartyLevel], a - ld hl, TempMonMaxHP - TempMon + ld hl, MON_MAXHP add hl, bc ld d, h ld e, l - ld hl, TempMonExp + 2 - TempMon + ld hl, MON_EXP + 2 add hl, bc push bc ld b, $1 predef CalcPkmnStats pop bc - ld hl, TempMonHP - TempMon + ld hl, MON_HP add hl, bc ld d, h ld e, l @@ -33596,14 +32234,14 @@ Function50893: ; 50893 .asm_508c1 push bc - ld hl, TempMonMaxHP - TempMon + ld hl, MON_MAXHP add hl, bc ld bc, 2 call CopyBytes pop bc .asm_508cd - ld hl, TempMonStatus - TempMon + ld hl, MON_STATUS add hl, bc xor a ld [hli], a @@ -38609,7 +37247,7 @@ Function84419: ; 84419 ; 84425 Function84425: ; 84425 - call Function222a + call ReturnToMapFromSubmenu call Function84753 ret ; 8442c @@ -39499,7 +38137,7 @@ RedCredits:: ; 86455 ld [MusicFadeIDHi], a ld a, $a ld [MusicFade], a - callba FadeBlackBGMap + callba FadeOutPalettes xor a ld [VramState], a ld [hMapAnims], a @@ -39522,7 +38160,7 @@ Function8648e: ; 8648e ld [MusicFadeIDHi], a ld a, 10 ld [MusicFade], a - callba FadeBlackBGMap + callba FadeOutPalettes xor a ld [VramState], a ld [hMapAnims], a @@ -39688,7 +38326,7 @@ GetHallOfFameParty: ; 8653f Function865b5: ; 865b5 push hl - call WhiteBGMap + call ClearBGPalettes callba Function4e906 pop hl ld a, [hli] @@ -39833,7 +38471,7 @@ Function86692: ; 86692 .asm_866a9 push hl - call WhiteBGMap + call ClearBGPalettes pop hl call Function86748 ld a, [wc608] @@ -39997,7 +38635,7 @@ Function86748: ; 86748 ; 86810 Function86810: ; 86810 - call WhiteBGMap + call ClearBGPalettes ld hl, VTiles2 tile $63 ld de, FontExtra + $d0 lb bc, BANK(FontExtra), 1 @@ -40420,7 +39058,7 @@ PlayWhirlpoolSound: ; 8c7d4 ; 8c7e1 BlindingFlash: ; 8c7e1 - callba FadeBlackBGMap + callba FadeOutPalettes ld hl, StatusFlags set 2, [hl] callba Function8c0e5 @@ -40428,7 +39066,7 @@ BlindingFlash: ; 8c7e1 ld b, $9 call GetSGBLayout callba Function49409 - callba FadeInBGMap + callba FadeInPalettes ret ; 8c80a @@ -40929,7 +39567,7 @@ Special_MagnetTrain: ; 8cc04 .done pop af ld [hVBlank], a - call WhiteBGMap + call ClearBGPalettes xor a ld [hLCDStatCustom], a ld [hLCDStatCustom + 1], a @@ -40986,7 +39624,7 @@ Function8ccc4: ; 8ccc4 ; 8ccc9 Function8ccc9: ; 8ccc9 - call WhiteBGMap + call ClearBGPalettes call ClearSprites call DisableLCD callab Function8cf53 @@ -45602,7 +44240,7 @@ Function90b8d: ; 90b8d (24:4b8d) ld [hInMenu], a pop af ld [Options], a - call WhiteBGMap + call ClearBGPalettes xor a ld [hBGMapAddress], a ld a, VBGMap0 / $100 @@ -45613,7 +44251,7 @@ Function90b8d: ; 90b8d (24:4b8d) ret Function90bea: ; 90bea (24:4bea) - call WhiteBGMap + call ClearBGPalettes call ClearTileMap call ClearSprites call DisableLCD @@ -47002,7 +45640,7 @@ Function9191c: ; 9191c push af xor a ld [VramState], a - call WhiteBGMap + call ClearBGPalettes call ClearTileMap call ClearSprites call DisableLCD @@ -47057,7 +45695,7 @@ Function9191c: ; 9191c ld [hInMenu], a pop af ld [Options], a - call WhiteBGMap + call ClearBGPalettes ret ; 919b0 @@ -47263,927 +45901,12 @@ Function91ae1: ; 91ae1 ; 91af3 -_FlyMap: ; 91af3 - call WhiteBGMap - call ClearTileMap - call ClearSprites - ld hl, hInMenu - ld a, [hl] - push af - ld [hl], $1 - xor a - ld [hBGMapMode], a - callba Function8cf53 - call Function91ff2 - ld de, GFX_922e1 - ld hl, VTiles2 tile $30 - lb bc, BANK(GFX_922e1), 6 - call Request1bpp - call FlyMap - call Function91c8f - ld b, $2 - call GetSGBLayout - call SetPalettes -.loop - call JoyTextDelay - ld hl, hJoyPressed - ld a, [hl] - and B_BUTTON - jr nz, .pressedB - ld a, [hl] - and A_BUTTON - jr nz, .pressedA - call FlyMapScroll - call GetMapCursorCoordinates - callba Function8cf69 - call DelayFrame - jr .loop - -.pressedB - ld a, -1 - jr .exit - -.pressedA - ld a, [wd002] - ld l, a - ld h, 0 - add hl, hl - ld de, Flypoints + 1 - add hl, de - ld a, [hl] +INCLUDE "engine/flypoints.asm" -.exit - ld [wd002], a - pop af - ld [hInMenu], a - call WhiteBGMap - ld a, $90 - ld [hWY], a +Function92311: ; unreferenced xor a - ld [hBGMapAddress], a - ld a, VBGMap0 / $100 - ld [hBGMapAddress + 1], a - ld a, [wd002] - ld e, a - ret -; 91b73 - -FlyMapScroll: ; 91b73 - ld a, [StartFlypoint] - ld e, a - ld a, [EndFlypoint] - ld d, a - ld hl, hJoyLast - ld a, [hl] - and D_UP - jr nz, .ScrollNext - ld a, [hl] - and D_DOWN - jr nz, .ScrollPrev - ret - -.ScrollNext - ld hl, wd002 - ld a, [hl] - cp d - jr nz, .NotAtEndYet - ld a, e - dec a - ld [hl], a - -.NotAtEndYet - inc [hl] - call CheckIfVisitedFlypoint - jr z, .ScrollNext - jr .Finally - -.ScrollPrev - ld hl, wd002 - ld a, [hl] - cp e - jr nz, .NotAtStartYet - ld a, d - inc a - ld [hl], a - -.NotAtStartYet - dec [hl] - call CheckIfVisitedFlypoint - jr z, .ScrollPrev - -.Finally - call TownMapBubble - call WaitBGMap - xor a - ld [hBGMapMode], a - ret -; 91bb5 - -TownMapBubble: ; 91bb5 -; Draw the bubble containing the location text in the town map HUD - -; Top-left corner - hlcoord 1, 0 - ld a, $30 - ld [hli], a - -; Top row - ld bc, 16 - ld a, " " - call ByteFill - -; Top-right corner - ld a, $31 - ld [hl], a - hlcoord 1, 1 - - -; Middle row - ld bc, 18 - ld a, " " - call ByteFill - - -; Bottom-left corner - hlcoord 1, 2 - ld a, $32 - ld [hli], a - -; Bottom row - ld bc, 16 - ld a, " " - call ByteFill - -; Bottom-right corner - ld a, $33 - ld [hl], a - - -; Print "Where?" - hlcoord 2, 0 - ld de, .Where - call PlaceString - -; Print the name of the default flypoint - call .Name - -; Up/down arrows - hlcoord 18, 1 - ld [hl], $34 - ret - -.Where - db "Where?@" - -.Name -; We need the map location of the default flypoint - ld a, [wd002] - ld l, a - ld h, 0 - add hl, hl ; two bytes per flypoint - ld de, Flypoints - add hl, de - ld e, [hl] - - callba GetLandmarkName - - hlcoord 2, 1 - ld de, StringBuffer1 - call PlaceString - ret -; 91c17 - -GetMapCursorCoordinates: ; 91c17 - ld a, [wd002] - ld l, a - ld h, $0 - add hl, hl - ld de, Flypoints - add hl, de - ld e, [hl] - callba GetLandmarkCoords - ld a, [wd003] - ld c, a - ld a, [wd004] - ld b, a - ld hl, $4 - add hl, bc - ld [hl], e - ld hl, $5 - add hl, bc - ld [hl], d - ret -; 91c3c - -CheckIfVisitedFlypoint: ; 91c3c -; Check if the flypoint loaded in [hl] has been visited yet. - push bc - push de - push hl - ld l, [hl] - ld h, 0 - add hl, hl - ld de, Flypoints + 1 - add hl, de - ld c, [hl] - call HasVisitedSpawn - pop hl - pop de - pop bc - and a - ret -; 91c50 - -HasVisitedSpawn: ; 91c50 -; Check if spawn point c has been visited. - ld hl, VisitedSpawns - ld b, CHECK_FLAG - ld d, 0 - predef FlagPredef - ld a, c - ret -; 91c5e - -Flypoints: ; 91c5e -; landmark, spawn point - - const_def - -flypoint: MACRO -; \1\@FLY EQUS "FLY_\1" -; \1\@SPAWN EQUS "SPAWN_\1" - ; const \1\@FLY - ; db \2, \1\@SPAWN - const FLY_\1 - db \2, SPAWN_\1 -ENDM - -; Johto - flypoint NEW_BARK, NEW_BARK_TOWN - flypoint CHERRYGROVE, CHERRYGROVE_CITY - flypoint VIOLET, VIOLET_CITY - flypoint AZALEA, AZALEA_TOWN - flypoint GOLDENROD, GOLDENROD_CITY - flypoint ECRUTEAK, ECRUTEAK_CITY - flypoint OLIVINE, OLIVINE_CITY - flypoint CIANWOOD, CIANWOOD_CITY - flypoint MAHOGANY, MAHOGANY_TOWN - flypoint LAKE, LAKE_OF_RAGE - flypoint BLACKTHORN, BLACKTHORN_CITY - flypoint MT_SILVER, SILVER_CAVE - -; Kanto -KANTO_FLYPOINT EQU const_value - - flypoint PALLET, PALLET_TOWN - flypoint VIRIDIAN, VIRIDIAN_CITY - flypoint PEWTER, PEWTER_CITY - flypoint CERULEAN, CERULEAN_CITY - flypoint VERMILION, VERMILION_CITY - flypoint ROCK_TUNNEL, ROCK_TUNNEL - flypoint LAVENDER, LAVENDER_TOWN - flypoint CELADON, CELADON_CITY - flypoint SAFFRON, SAFFRON_CITY - flypoint FUCHSIA, FUCHSIA_CITY - flypoint CINNABAR, CINNABAR_ISLAND - flypoint INDIGO, INDIGO_PLATEAU - - db -1 -; 91c8f - -Function91c8f: ; 91c8f - ret -; 91c90 - -FlyMap: ; 91c90 - - ld a, [MapGroup] - ld b, a - ld a, [MapNumber] - ld c, a - call GetWorldMapLocation - -; If we're not in a valid location, i.e. Pokecenter floor 2F, -; the backup map information is used - - cp SPECIAL_MAP - jr nz, .CheckRegion - - ld a, [BackupMapGroup] - ld b, a - ld a, [BackupMapNumber] - ld c, a - call GetWorldMapLocation - -.CheckRegion -; The first 46 locations are part of Johto. The rest are in Kanto - cp KANTO_LANDMARK - jr nc, .KantoFlyMap - -.JohtoFlyMap -; Note that .NoKanto should be modified in tandem with this branch - - push af - -; Start from New Bark Town - ld a, FLY_NEW_BARK - ld [wd002], a - -; Flypoints begin at New Bark Town... - ld [StartFlypoint], a -; ..and end at Silver Cave - ld a, FLY_MT_SILVER - ld [EndFlypoint], a - -; Fill out the map - call FillJohtoMap - call .MapHud - pop af - call TownMapPlayerIcon - ret - -.KantoFlyMap - -; The event that there are no flypoints enabled in a map is not -; accounted for. As a result, if you attempt to select a flypoint -; when there are none enabled, the game will crash. Additionally, -; the flypoint selection has a default starting point that -; can be flown to even if none are enabled - -; To prevent both of these things from happening when the player -; enters Kanto, fly access is restricted until Indigo Plateau is -; visited and its flypoint enabled - - push af - ld c, SPAWN_INDIGO - call HasVisitedSpawn - and a - jr z, .NoKanto - -; Kanto's map is only loaded if we've visited Indigo Plateau - -; Flypoints begin at Pallet Town... - ld a, FLY_PALLET - ld [StartFlypoint], a -; ...and end at Indigo Plateau - ld a, FLY_INDIGO - ld [EndFlypoint], a - -; Because Indigo Plateau is the first flypoint the player -; visits, it's made the default flypoint - ld [wd002], a - -; Fill out the map - call FillKantoMap - call .MapHud - pop af - call TownMapPlayerIcon - ret - -.NoKanto -; If Indigo Plateau hasn't been visited, we use Johto's map instead - -; Start from New Bark Town - ld a, FLY_NEW_BARK ld [wd002], a - -; Flypoints begin at New Bark Town... - ld [StartFlypoint], a -; ..and end at Silver Cave - ld a, FLY_MT_SILVER - ld [EndFlypoint], a - - call FillJohtoMap - - pop af - -.MapHud - call TownMapBubble - call TownMapPals - - ld hl, VBGMap0 ; BG Map 0 - call TownMapBGUpdate - - call TownMapMon - ld a, c - ld [wd003], a - ld a, b - ld [wd004], a - ret -; 91d11 - -Function91d11: ; 91d11 - ld a, [wd002] - push af - ld a, [wd003] - push af - ld a, e - ld [wd002], a - call ClearSprites - xor a - ld [hBGMapMode], a - ld a, $1 - ld [hInMenu], a - ld de, GFX_922d1 - ld hl, VTiles0 tile $7f - lb bc, BANK(GFX_922d1), 1 - call Request2bpp ; actually 1bpp - call Function91ed0 - ld hl, VTiles0 tile $78 - ld c, $4 - call Request2bpp - call Function91ff2 - call FillKantoMap - call Function91de9 - call TownMapPals - ld hl, VBGMap1 - call TownMapBGUpdate - call FillJohtoMap - call Function91de9 - call TownMapPals - ld hl, VBGMap0 - call TownMapBGUpdate - ld b, $2 - call GetSGBLayout - call SetPalettes - xor a - ld [hBGMapMode], a - xor a - call Function91e1e -.asm_91d6e - call JoyTextDelay - ld hl, hJoyPressed - ld a, [hl] - and A_BUTTON | B_BUTTON - jr nz, .asm_91d8f - ld a, [hJoypadDown] - and SELECT - jr nz, .asm_91d87 - call Function91d9b - call Function91dcd - jr .asm_91d8a - -.asm_91d87 - call Function91e5a - -.asm_91d8a - call DelayFrame - jr .asm_91d6e - -.asm_91d8f - call ClearSprites - pop af - ld [wd003], a - pop af - ld [wd002], a - ret -; 91d9b - -Function91d9b: ; 91d9b - ld a, [hl] - and $20 - jr nz, .asm_91da6 - ld a, [hl] - and $10 - jr nz, .asm_91db7 - ret - -.asm_91da6 - ld a, [hWY] - cp $90 - ret z - call ClearSprites - ld a, $90 - ld [hWY], a - xor a - call Function91e1e - ret - -.asm_91db7 - ld a, [StatusFlags] - bit 6, a - ret z - ld a, [hWY] - and a - ret z - call ClearSprites - xor a - ld [hWY], a - ld a, $1 - call Function91e1e - ret -; 91dcd - -Function91dcd: ; 91dcd - ld a, [hVBlankCounter] - ld e, a - and $f - ret nz - ld a, e - and $10 - jr nz, .asm_91ddc - call ClearSprites - ret - -.asm_91ddc - hlcoord 0, 0 - ld de, Sprites - ld bc, $a0 - call CopyBytes - ret -; 91de9 - -Function91de9: ; 91de9 - hlcoord 0, 0 - ld bc, SCREEN_WIDTH - ld a, $7f - call ByteFill - hlcoord 0, 1 - ld a, $6 - ld [hli], a - ld bc, SCREEN_HEIGHT - ld a, $7 - call ByteFill - ld [hl], $17 - call GetPokemonName - hlcoord 2, 0 - call PlaceString - ld h, b - ld l, c - ld de, String_91e16 - call PlaceString - ret -; 91e16 - -String_91e16: - db "'S NEST@" -; 91e1e - -Function91e1e: ; 91e1e - ld [wd003], a - ld e, a - callba Function2a01f - decoord 0, 0 - ld hl, Sprites -.asm_91e2e - ld a, [de] - and a - jr z, .asm_91e4d - push de - ld e, a - push hl - callba GetLandmarkCoords - pop hl - ld a, d - sub $4 - ld [hli], a - ld a, e - sub $4 - ld [hli], a - ld a, $7f - ld [hli], a - xor a - ld [hli], a - pop de - inc de - jr .asm_91e2e - -.asm_91e4d - ld hl, Sprites - decoord 0, 0 - ld bc, $a0 - call CopyBytes - ret -; 91e5a - -Function91e5a: ; 91e5a - call Function91ea9 - ret c - - ld a, [wd002] - ld e, a - callba GetLandmarkCoords - ld c, e - ld b, d - ld de, Unknown_91e9c - ld hl, Sprites -.asm_91e70 - ld a, [de] - cp $80 - jr z, .asm_91e91 - - add b - ld [hli], a - inc de - - ld a, [de] - add c - ld [hli], a - inc de - - ld a, [de] - add $78 - ld [hli], a - inc de - - push bc - ld c, 0 - ld a, [PlayerGender] - bit 0, a - jr z, .asm_91e8c - inc c -.asm_91e8c - ld a, c - ld [hli], a - pop bc - - jr .asm_91e70 - -.asm_91e91 - ld hl, Sprites + $10 - ld bc, SpritesEnd - (Sprites + $10) - xor a - call ByteFill - ret -; 91e9c - -Unknown_91e9c: ; 91e9c - db -8, -8, 0 - db -8, 0, 1 - db 0, -8, 2 - db 0, 0, 3 - db $80 ; terminator -; 91ea9 - -Function91ea9: ; 91ea9 - ld a, [wd002] - cp FAST_SHIP - jr z, .johto - cp KANTO_LANDMARK - jr c, .johto - -.kanto - ld a, [wd003] - and a - jr z, .clear - jr .ok - -.johto - ld a, [wd003] - and a - jr nz, .clear - -.ok - and a - ret - -.clear - ld hl, Sprites - ld bc, SpritesEnd - Sprites - xor a - call ByteFill - scf - ret -; 91ed0 - -Function91ed0: ; 91ed0 - ld a, [wd002] - cp FAST_SHIP - jr z, .asm_91ede - callba GetPlayerIcon - ret - -.asm_91ede - ld de, FastShipGFX - ld b, BANK(FastShipGFX) - ret -; 91ee4 - -TownMapBGUpdate: ; 91ee4 -; Update BG Map tiles and attributes - -; BG Map address - ld a, l - ld [hBGMapAddress], a - ld a, h - ld [hBGMapAddress + 1], a - -; Only update palettes on CGB - ld a, [hCGB] - and a - jr z, .tiles - -; BG Map mode 2 (palettes) - ld a, 2 - ld [hBGMapMode], a - -; The BG Map is updated in thirds, so we wait -; 3 frames to update the whole screen's palettes. - ld c, 3 - call DelayFrames - -.tiles -; Update BG Map tiles - call WaitBGMap - -; Turn off BG Map update - xor a - ld [hBGMapMode], a - ret -; 91eff - -FillJohtoMap: ; 91eff - ld de, JohtoMap - jr FillTownMap - -FillKantoMap: ; 91f04 - ld de, KantoMap - -FillTownMap: ; 91f07 - hlcoord 0, 0 -.loop - ld a, [de] - cp $ff - ret z - ld a, [de] - ld [hli], a - inc de - jr .loop -; 91f13 - -TownMapPals: ; 91f13 -; Assign palettes based on tile ids - - hlcoord 0, 0 - decoord 0, 0, AttrMap - ld bc, 360 -.loop -; Current tile - ld a, [hli] - push hl - -; HP/borders use palette 0 - cp $60 - jr nc, .pal0 - -; The palette data is condensed to nybbles, -; least-significant first. - ld hl, TownMapPalMap - srl a - jr c, .odd - -; Even-numbered tile ids take the bottom nybble... - add l - ld l, a - ld a, h - adc 0 - ld h, a - ld a, [hl] - and %111 - jr .update - -.odd -; ...and odd ids take the top. - add l - ld l, a - ld a, h - adc 0 - ld h, a - ld a, [hl] - swap a - and %111 - jr .update - -.pal0 - xor a - -.update - pop hl - ld [de], a - inc de - dec bc - ld a, b - or c - jr nz, .loop - ret - -TownMapPalMap: - db $11, $21, $22, $00, $11, $13, $54, $54, $11, $21, $22, $00 - db $11, $10, $01, $00, $11, $21, $22, $00, $00, $00, $00, $00 - db $00, $00, $44, $04, $00, $00, $00, $00, $33, $33, $33, $33 - db $33, $33, $33, $03, $33, $33, $33, $33, $00, $00, $00, $00 -; 91f7b - -TownMapMon: ; 91f7b -; Draw the FlyMon icon at town map location in - -; Get FlyMon species - ld a, [CurPartyMon] - ld hl, PartySpecies - ld e, a - ld d, $0 - add hl, de - ld a, [hl] - ld [wd265], a - -; Get FlyMon icon - ld e, 8 ; starting tile in VRAM - callba GetSpeciesIcon - -; Animation/palette - ld de, 0 - ld a, $0 - call Function3b2a - - ld hl, 3 - add hl, bc - ld [hl], 8 - ld hl, 2 - add hl, bc - ld [hl], 0 - ret -; 91fa6 - -TownMapPlayerIcon: ; 91fa6 -; Draw the player icon at town map location in a - push af - - callba GetPlayerIcon - -; Standing icon - ld hl, VTiles0 tile $10 - ld c, 4 ; # tiles - call Request2bpp - -; Walking icon - ld hl, $c0 - add hl, de - ld d, h - ld e, l - ld hl, VTiles0 tile $14 - ld c, 4 ; # tiles - ld a, BANK(ChrisSpriteGFX) ; does nothing - call Request2bpp - -; Animation/palette - ld de, 0 - ld b, $0a ; Male - ld a, [PlayerGender] - bit 0, a - jr z, .asm_91fd3 - ld b, $1e ; Female -.asm_91fd3 - ld a, b - call Function3b2a - - ld hl, $3 - add hl, bc - ld [hl], $10 - - pop af - ld e, a - push bc - callba GetLandmarkCoords - pop bc - - ld hl, 4 - add hl, bc - ld [hl], e - ld hl, 5 - add hl, bc - ld [hl], d - ret -; 0x91ff2 - -Function91ff2: ; 91ff2 - ld hl, TownMapGFX - ld de, VTiles2 - lb bc, BANK(TownMapGFX), $30 - call DecompressRequest2bpp - ret -; 91fff - - -JohtoMap: ; 91fff -INCBIN "gfx/misc/johto.bin" -; 92168 - -KantoMap: ; 92168 -INCBIN "gfx/misc/kanto.bin" -; 922d1 - - -GFX_922d1: ; 922d1 -INCBIN "gfx/unknown/0922d1.2bpp" -GFX_922e1: ; 922e1 -INCBIN "gfx/unknown/0922e1.2bpp" -GFX_92301: ; 92301 -INCBIN "gfx/unknown/092301.2bpp" - -Function92311: ; 92311 - xor a - ld [wd002], a - call WhiteBGMap + call ClearBGPalettes call ClearTileMap call ClearSprites ld hl, hInMenu @@ -48248,7 +45971,7 @@ Function92311: ; 92311 ld [wd002], a pop af ld [hInMenu], a - call WhiteBGMap + call ClearBGPalettes ld a, $90 ld [hWY], a xor a @@ -48317,2121 +46040,7 @@ Function923b8: ; 923b8 INCLUDE "data/wild/fish.asm" - - -_SlotMachine: - ld hl, Options - set 4, [hl] - call Function926f7 - call DelayFrame -.asm_926d2 - call Function927af - jr nc, .asm_926d2 - call WaitSFX - ld de, SFX_QUIT_SLOTS - call PlaySFX - call WaitSFX - call WhiteBGMap - callba MobileFn_105fd0 - ld hl, Options - res 4, [hl] - ld hl, rLCDC ; $ff40 - res 2, [hl] - ret - -Function926f7: ; 926f7 (24:66f7) - call WhiteBGMap - call ClearTileMap - call ClearSprites - ld de, MUSIC_NONE - call PlayMusic - call DelayFrame - call DisableLCD - ld hl, VBGMap0 tile $00 - lb bc, 4, 0 - ld a, $7f - call ByteFill - ld b, $5 - call GetSGBLayout - callab Function8cf53 - ld hl, wc6d0 - ld bc, $48 - xor a - call ByteFill - ld hl, Slots2LZ - ld de, VTiles0 tile $00 - call Decompress - ld hl, Slots3LZ - ld de, VTiles0 tile $40 - call Decompress - ld hl, Slots1LZ - ld de, VTiles2 tile $00 - call Decompress - ld hl, Slots2LZ - ld de, VTiles2 tile $25 - call Decompress - ld hl, SlotsTilemap - decoord 0, 0 - ld bc, 20 * 12 - call CopyBytes - ld hl, rLCDC ; $ff40 - set 2, [hl] - call EnableLCD - ld hl, wc6d0 - ld bc, $64 - xor a - call ByteFill - call Function92a98 - call Function9279b - ld a, $7 - ld hl, wc300 - ld [hli], a - ld [hl], $40 - xor a - ld [wJumptableIndex], a - ld a, $ff - ld [wc709], a - ld de, MUSIC_GAME_CORNER - call PlayMusic - xor a - ld [wd002], a - call Random - and $2a - ret nz - ld a, $1 - ld [wd002], a - ret - -Function9279b: ; 9279b (24:679b) - ld a, $e4 - call DmgToCgbBGPals - lb de, $e4, $e4 - ld a, [hCGB] - and a - jr nz, .asm_927ab - lb de, $c0, $e4 -.asm_927ab - call DmgToCgbObjPals - ret - -Function927af: ; 927af (24:67af) - ld a, [wJumptableIndex] - bit 7, a - jr nz, .asm_927d1 - call Function92844 - call Function92b0f - xor a - ld [wc3b5], a - callab Function8cfa8 - call Function927f8 - call Function927d3 - call DelayFrame - and a - ret -.asm_927d1 - scf - ret - -Function927d3: ; 927d3 (24:67d3) - ret -; 927d4 (24:67d4) - -Function927d4: ; 927d4 - ld a, [wc6d0] - and a - ret nz - ld a, [wc6e0] - and a - ret nz - ld a, [wc70c] - and a - jr nz, .asm_927ea - ld a, $e4 - call DmgToCgbBGPals - ret - -.asm_927ea - ld a, [TextDelayFrames] - and $7 - ret nz - ld a, [rBGP] - xor %1100 - call DmgToCgbBGPals - ret -; 927f8 - -Function927f8: ; 927f8 (24:67f8) - hlcoord 5, 1 - ld de, Coins - lb bc, PRINTNUM_LEADINGZEROS | 2, 4 - call PrintNum - hlcoord 11, 1 - ld de, wc711 - lb bc, PRINTNUM_LEADINGZEROS | 2, 4 - call PrintNum - ret -; 92811 (24:6811) - -Function92811: ; 92811 - ld a, [wc709] - add 0 - daa - ld e, a - and $f - add "0" - hlcoord 1, 0 - ld [hl], a - ld a, e - swap a - and $f - add "0" - hlcoord 0, 0 - ld [hl], a - ret -; 9282c - -Function9282c: ; 9282c - ld hl, wcf66 - ld a, [hl] - inc [hl] - and $7 - ret nz - ld hl, Sprites + $42 - ld c, $18 -.asm_92839 - ld a, [hl] - xor $20 - ld [hli], a -rept 3 - inc hl -endr - dec c - jr nz, .asm_92839 - ret -; 92844 - -Function92844: ; 92844 (24:6844) - ld a, [wJumptableIndex] - ld e, a - ld d, 0 - ld hl, Jumptable_92853 -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] -; 92853 (24:6853) - - -Jumptable_92853: ; 92853 (24:6853) - dw Function9287e - dw Function9288e - dw Function928c6 - dw Function928d6 - dw Function928e6 - dw Function92900 - dw Function92910 - dw Function9292a - dw Function9293a - dw Function92879 - dw Function92879 - dw Function92879 - dw Function92955 - dw Function9296b - dw Function92987 - dw Function9299e - dw Function929a4 - dw Function929d9 - dw Function929f0 - - -Function92879: ; 92879 (24:6879) - ld hl, wJumptableIndex - inc [hl] - ret - -Function9287e: ; 9287e (24:687e) - call Function92879 - xor a - ld [wc70b], a - ld [wc70c], a - ld a, $ff - ld [wc70d], a - ret - -Function9288e: ; 9288e (24:688e) - call Function9307c - jr nc, .asm_92899 - ld a, $12 - ld [wJumptableIndex], a - ret -.asm_92899 - call Function92879 - call Function9303f - call Function93002 - ld a, $20 - ld [wcf64], a - ld a, $4 - ld [wc6d0], a - ld [wc6e0], a - ld [wc6f0], a - ld a, $4 - ld [wc6d9], a - ld [wc6e9], a - ld [wc6f9], a - call WaitSFX - ld a, SFX_SLOT_MACHINE_START - call Function9331e - ret - -Function928c6: ; 928c6 (24:68c6) - ld hl, wcf64 - ld a, [hl] - and a - jr z, .asm_928cf - dec [hl] - ret -.asm_928cf - call Function92879 - xor a - ld [hJoypadSum], a - ret - -Function928d6: ; 928d6 (24:68d6) - ld hl, hJoypadSum ; $ffa5 - ld a, [hl] - and A_BUTTON - ret z - call Function92879 - call Function92a2b - ld [wc6d0], a - -Function928e6: ; 928e6 (24:68e6) - ld a, [wc6d0] - cp $0 - ret nz - ld a, SFX_STOP_SLOT - call Function9331e - ld bc, wc6d0 - ld de, wc700 - call Function929f6 - call Function92879 - xor a - ld [hJoypadSum], a - -Function92900: ; 92900 (24:6900) - ld hl, hJoypadSum ; $ffa5 - ld a, [hl] - and A_BUTTON - ret z - call Function92879 - call Function92a2e - ld [wc6e0], a - -Function92910: ; 92910 (24:6910) - ld a, [wc6e0] - cp $0 - ret nz - ld a, SFX_STOP_SLOT - call Function9331e - ld bc, wc6e0 - ld de, wc703 - call Function929f6 - call Function92879 - xor a - ld [hJoypadSum], a - -Function9292a: ; 9292a (24:692a) - ld hl, hJoypadSum ; $ffa5 - ld a, [hl] - and A_BUTTON - ret z - call Function92879 - call Function92a60 - ld [wc6f0], a - -Function9293a: ; 9293a (24:693a) - ld a, [wc6f0] - cp $0 - ret nz - ld a, SFX_STOP_SLOT - call Function9331e - ld bc, wc6f0 - ld de, wc706 - call Function929f6 - call Function92879 - xor a - ld [hJoypadSum], a - ret - -Function92955: ; 92955 (24:6955) - ld a, [wc70d] - cp $ff - jr nz, .asm_92963 - call Function92879 - call Function92879 - ret -.asm_92963 - call Function92879 - ld a, $10 - ld [wcf64], a - -Function9296b: ; 9296b (24:696b) - ld hl, wcf64 - ld a, [hl] - and a - jr z, .asm_92980 - dec [hl] - srl a - ret z - ld a, [rOBP0] - xor $ff - ld e, a - ld d, a - call DmgToCgbObjPals - ret -.asm_92980 - call Function9279b - call Function92879 - ret - -Function92987: ; 92987 (24:6987) - xor a - ld [wc70b], a - ld [wc70c], a - ld a, $e4 - call DmgToCgbBGPals - call Function93124 - xor a - ld [wcf64], a - call Function92879 - ret - -Function9299e: ; 9299e (24:699e) - call Function93158 - call Function92879 - -Function929a4: ; 929a4 (24:69a4) - ld hl, wcf64 - ld a, [hl] - inc [hl] - and $1 - ret z - ld hl, wc711 - ld a, [hli] - ld d, a - or [hl] - jr z, .asm_929d5 - ld e, [hl] - dec de - ld [hl], e - dec hl - ld [hl], d - ld hl, Coins - ld d, [hl] - inc hl - ld e, [hl] - call Function92a04 - jr c, .asm_929c5 - inc de -.asm_929c5 - ld [hl], e - dec hl - ld [hl], d - ld a, [wcf64] - and $7 - ret z - ld de, SFX_GET_COIN_FROM_SLOTS - call PlaySFX - ret -.asm_929d5 - call Function92879 - ret - -Function929d9: ; 929d9 (24:69d9) - call Function9304c - call WaitPressAorB_BlinkCursor - call Function930e9 - jr c, .asm_929ea - ld a, $0 - ld [wJumptableIndex], a - ret -.asm_929ea - ld a, $12 - ld [wJumptableIndex], a - ret - -Function929f0: ; 929f0 (24:69f0) - ld hl, wJumptableIndex - set 7, [hl] - ret - -Function929f6: ; 929f6 (24:69f6) - push de - call Function92a12 - pop de - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - ret - -Function92a04: ; 92a04 (24:6a04) - ld a, d - cp 9999 / $100 - jr c, .asm_92a10 - ld a, e - cp 9999 % $100 - jr c, .asm_92a10 - scf - ret -.asm_92a10 - and a - ret - -Function92a12: ; 92a12 (24:6a12) - ld hl, $3 - add hl, bc - ld a, [hl] - and a - jr nz, .asm_92a1c - ld a, $f -.asm_92a1c - dec a - and $f - ld e, a - ld d, $0 - ld hl, $1 - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - add hl, de - ret - -Function92a2b: ; 92a2b (24:6a2b) - ld a, $7 - ret - -Function92a2e: ; 92a2e (24:6a2e) - ld a, [wc70a] - cp $2 - jr c, .asm_92a4e - ld a, [wc709] - and a - jr z, .asm_92a3f - cp $ff - jr nz, .asm_92a4e -.asm_92a3f - call Function92a51 - jr nz, .asm_92a4e - call Random - cp $50 - jr nc, .asm_92a4e - ld a, $a - ret -.asm_92a4e - ld a, $8 - ret - -Function92a51: ; 92a51 (24:6a51) - ld a, [wc700] - and a - ret z - ld a, [wc701] - and a - ret z - ld a, [wc702] - and a - ret - -Function92a60: ; 92a60 (24:6a60) - ld a, [wc70b] - and a - jr z, .asm_92a95 - ld a, [wc70c] - and a - jr z, .asm_92a95 - ld a, [wc709] - and a - jr nz, .asm_92a84 - call Random - cp 180 - jr nc, .asm_92a95 - cp 120 - jr nc, .asm_92a92 - cp 60 - jr nc, .asm_92a8f - ld a, $15 - ret -.asm_92a84 - call Random - cp $a0 - jr nc, .asm_92a95 - cp $50 - jr nc, .asm_92a92 -.asm_92a8f - ld a, $12 - ret -.asm_92a92 - ld a, $10 - ret -.asm_92a95 - ld a, $9 - ret - -Function92a98: ; 92a98 (24:6a98) - ld bc, wc6d0 - ld hl, $6 - add hl, bc - ld de, Sprites + $40 - ld [hl], e - inc hl - ld [hl], d - ld hl, $1 - add hl, bc - ld de, Unknown_93327 - ld [hl], e - inc hl - ld [hl], d - ld hl, $8 - add hl, bc - ld [hl], $30 - call Function92af9 - ld bc, wc6e0 - ld hl, $6 - add hl, bc - ld de, Sprites + $60 - ld [hl], e - inc hl - ld [hl], d - ld hl, $1 - add hl, bc - ld de, Unknown_93339 - ld [hl], e - inc hl - ld [hl], d - ld hl, $8 - add hl, bc - ld [hl], $50 - call Function92af9 - ld bc, wc6f0 - ld hl, $6 - add hl, bc - ld de, Sprites + $80 - ld [hl], e - inc hl - ld [hl], d - ld hl, $1 - add hl, bc - ld de, Unknown_9334b - ld [hl], e - inc hl - ld [hl], d - ld hl, $8 - add hl, bc - ld [hl], $70 - call Function92af9 - ret - -Function92af9: ; 92af9 (24:6af9) - ld hl, 0 - add hl, bc - ld [hl], $0 - ld hl, $3 - add hl, bc - ld [hl], $e - ld hl, $4 - add hl, bc - ld [hl], $0 - call Function92b53 - ret - -Function92b0f: ; 92b0f (24:6b0f) - ld bc, wc6d0 - call Function92b22 - ld bc, wc6e0 - call Function92b22 - ld bc, wc6f0 - call Function92b22 - ret - -Function92b22: ; 92b22 (24:6b22) - ld hl, $4 - add hl, bc - ld a, [hl] - and $f - jr nz, .asm_92b2e - call Function92bd4 -.asm_92b2e - ld hl, $5 - add hl, bc - ld a, [hl] - and a - ret z - ld d, a - ld hl, $4 - add hl, bc - add [hl] - ld [hl], a - and $f - jr z, Function92b53 - ld hl, $6 - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - ld e, $8 -.asm_92b49 - ld a, [hl] - add d - ld [hli], a -rept 3 - inc hl -endr - dec e - jr nz, .asm_92b49 - ret - -Function92b53: ; 92b53 (24:6b53) - ld hl, $8 - add hl, bc - ld a, [hl] - ld [wc712 + 1], a - ld a, $50 - ld [wc712 + 2], a - ld hl, $3 - add hl, bc - ld e, [hl] - ld d, $0 - ld hl, $1 - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - add hl, de - ld e, l - ld d, h - call Function92b83 - ld hl, $3 - add hl, bc - ld a, [hl] - inc a - and $f - cp $f - jr nz, .asm_92b81 - xor a -.asm_92b81 - ld [hl], a - ret - -Function92b83: ; 92b83 (24:6b83) - ld hl, $6 - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a -.asm_92b8a - ld a, [wc712 + 2] - ld [hli], a - ld a, [wc712 + 1] - ld [hli], a - ld a, [de] - ld [hli], a - srl a - srl a - set 7, a - ld [hli], a - ld a, [wc712 + 2] - ld [hli], a - ld a, [wc712 + 1] - add $8 - ld [hli], a - ld a, [de] -rept 2 - inc a -endr - ld [hli], a - srl a - srl a - set 7, a - ld [hli], a - inc de - ld a, [wc712 + 2] - sub $10 - ld [wc712 + 2], a - cp $10 - jr nz, .asm_92b8a - ret -; 92bbe (24:6bbe) - -Function92bbe: ; 92bbe - push hl - srl a - srl a - add Unknown_92bce % $100 - ld l, a - ld a, 0 - adc Unknown_92bce / $100 - ld h, a - ld a, [hl] - pop hl - ret -; 92bce - -Unknown_92bce: ; 92bce - db 0, 1, 2, 3, 4, 5 -; 92bd4 - -Function92bd4: ; 92bd4 (24:6bd4) - ld hl, 0 - add hl, bc - ld e, [hl] - ld d, 0 - ld hl, Jumptable_92be4 -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] -; 92be4 (24:6be4) - -Jumptable_92be4: ; 92be4 - dw Function92c16 - dw Function92c4c - dw Function92c17 - dw Function92c1e - dw Function92c25 - dw Function92c2c - dw Function92c33 - dw Function92c5e - dw Function92c86 - dw Function92ca9 - dw Function92cd2 - dw Function92cf8 - dw Function92d13 - dw Function92df7 - dw Function92e10 - dw Function92e31 - dw Function92e47 - dw Function92e64 - dw Function92d20 - dw Function92d4f - dw Function92d6e - dw Function92d7e - dw Function92da4 - dw Function92db3 - dw Function92dca -; 92c16 - -Function92c16: ; 92c16 - ret -; 92c17 - -Function92c17: ; 92c17 - ld hl, $5 - add hl, bc - ld [hl], $10 - ret -; 92c1e - -Function92c1e: ; 92c1e - ld hl, $5 - add hl, bc - ld [hl], $8 - ret -; 92c25 - -Function92c25: ; 92c25 - ld hl, $5 - add hl, bc - ld [hl], $4 - ret -; 92c2c - -Function92c2c: ; 92c2c - ld hl, $5 - add hl, bc - ld [hl], $2 - ret -; 92c33 - -Function92c33: ; 92c33 - ld hl, $5 - add hl, bc - ld [hl], $1 - ret -; 92c3a - -Function92c3a: ; 92c3a - ld hl, $5 - add hl, bc - ld [hl], $0 - ld hl, 0 - add hl, bc - ld [hl], $1 - ld hl, $f - add hl, bc - ld [hl], $3 - -Function92c4c: ; 92c4c - ld hl, $f - add hl, bc - ld a, [hl] - and a - jr z, .asm_92c56 - dec [hl] - ret - -.asm_92c56 - ld hl, 0 - add hl, bc - ld a, $0 - ld [hl], a - ret -; 92c5e - -Function92c5e: ; 92c5e - ld a, [wc709] - cp $ff - jr z, .asm_92c72 - ld hl, $9 - add hl, bc - ld a, [hl] - and a - jr z, .asm_92c72 - dec [hl] - call Function92c76 - ret nz - -.asm_92c72 - call Function92c3a - ret -; 92c76 - -Function92c76: ; 92c76 - call Function92a12 - ld a, [wc709] - ld e, a - ld a, [hli] - cp e - ret z - ld a, [hli] - cp e - ret z - ld a, [hl] - cp e - ret -; 92c86 - -Function92c86: ; 92c86 - call Function92e94 - jr nc, .asm_92c94 - ld a, [wc717] - ld hl, wc709 - cp [hl] - jr z, .asm_92ca5 - -.asm_92c94 - ld a, [wc709] - cp $ff - jr z, .asm_92ca5 - ld hl, $9 - add hl, bc - ld a, [hl] - and a - jr z, .asm_92ca5 - dec [hl] - ret - -.asm_92ca5 - call Function92c3a - ret -; 92ca9 - -Function92ca9: ; 92ca9 - call Function92f1d - jr nc, .asm_92cbd - ld hl, wc709 - cp [hl] - jr z, .asm_92cce - ld hl, $9 - add hl, bc - ld a, [hl] - and a - ret z - dec [hl] - ret - -.asm_92cbd - ld a, [wc709] - cp $ff - jr z, .asm_92cce - ld hl, $9 - add hl, bc - ld a, [hl] - and a - jr z, .asm_92cce - dec [hl] - ret - -.asm_92cce - call Function92c3a - ret -; 92cd2 - -Function92cd2: ; 92cd2 - call Function92e94 - jr nc, .asm_92ce1 - ld a, [wc70c] - and a - jr z, .asm_92ce1 - call Function92c3a - ret - -.asm_92ce1 - ld a, SFX_STOP_SLOT - call Function9331e - ld hl, 0 - add hl, bc - inc [hl] - ld hl, $a - add hl, bc - ld [hl], $20 - ld hl, $5 - add hl, bc - ld [hl], $0 - ret -; 92cf8 - -Function92cf8: ; 92cf8 - ld hl, $a - add hl, bc - ld a, [hl] - and a - jr z, .asm_92d02 - dec [hl] - ret - -.asm_92d02 - ld a, SFX_THROW_BALL - call Function9331e - ld hl, 0 - add hl, bc - inc [hl] - ld hl, $5 - add hl, bc - ld [hl], $8 - ret -; 92d13 - -Function92d13: ; 92d13 - call Function92e94 - ret nc - ld a, [wc70c] - and a - ret z - call Function92c3a - ret -; 92d20 - -Function92d20: ; 92d20 - call Function92f1d - ret c - ld a, SFX_STOP_SLOT - call Function9331e - call Function93316 - ld hl, 0 - add hl, bc - inc [hl] - ld hl, $5 - add hl, bc - ld [hl], $0 - call Function92fc0 - push bc - push af - ld de, $6068 - ld a, $6 - call Function3b2a - ld hl, $e - add hl, bc - pop af - ld [hl], a - pop bc - xor a - ld [wcf64], a - -Function92d4f: ; 92d4f - ld a, [wcf64] - cp $2 - jr z, .asm_92d5b - cp $1 - jr z, .asm_92d62 - ret - -.asm_92d5b - call Function92f1d - call Function92c3a - ret - -.asm_92d62 - ld hl, 0 - add hl, bc - inc [hl] - ld hl, $5 - add hl, bc - ld [hl], $8 - ret -; 92d6e - -Function92d6e: ; 92d6e - xor a - ld [wcf64], a - ld hl, 0 - add hl, bc - dec [hl] - ld hl, $5 - add hl, bc - ld [hl], $0 - ret -; 92d7e - -Function92d7e: ; 92d7e - call Function92f1d - ret c - ld a, SFX_STOP_SLOT - call Function9331e - call Function93316 - ld hl, 0 - add hl, bc - inc [hl] - ld hl, $5 - add hl, bc - ld [hl], $0 - push bc - ld de, $6000 - ld a, $7 - call Function3b2a - pop bc - xor a - ld [wcf64], a - ret -; 92da4 - -Function92da4: ; 92da4 - ld a, [wcf64] - and a - ret z - ld hl, 0 - add hl, bc - inc [hl] - ld a, $2 - ld [wcf64], a - -Function92db3: ; 92db3 - ld a, [wcf64] - cp $4 - ret c - ld hl, 0 - add hl, bc - inc [hl] - ld hl, $5 - add hl, bc - ld [hl], $10 - ld hl, $a - add hl, bc - ld [hl], $11 - -Function92dca: ; 92dca - ld hl, $a - add hl, bc - ld a, [hl] - and a - jr z, .asm_92dd4 - dec [hl] - ret - -.asm_92dd4 - call Function92f1d - jr nc, .asm_92de5 - and a - jr nz, .asm_92de5 - ld a, $5 - ld [wcf64], a - call Function92c3a - ret - -.asm_92de5 - ld hl, $5 - add hl, bc - ld [hl], $0 - ld hl, 0 - add hl, bc -rept 2 - dec [hl] -endr - ld a, $1 - ld [wcf64], a - ret -; 92df7 - -Function92df7: ; 92df7 - call Function92f1d - ret c - ld a, SFX_STOP_SLOT - call Function9331e - call Function93316 - ld hl, 0 - add hl, bc - inc [hl] - call Function92fc0 - ld hl, $a - add hl, bc - ld [hl], a - -Function92e10: ; 92e10 - ld hl, $a - add hl, bc - ld a, [hl] - and a - jr nz, .asm_92e1f - call Function92f1d - call Function92c3a - ret - -.asm_92e1f - dec [hl] - ld hl, 0 - add hl, bc - inc [hl] - ld hl, $b - add hl, bc - ld [hl], $20 - ld hl, $5 - add hl, bc - ld [hl], $0 - -Function92e31: ; 92e31 - ld hl, $b - add hl, bc - ld a, [hl] - and a - jr z, .asm_92e3b - dec [hl] - ret - -.asm_92e3b - ld hl, 0 - add hl, bc - dec [hl] - ld hl, $5 - add hl, bc - ld [hl], $8 - ret -; 92e47 - -Function92e47: ; 92e47 - call Function92f1d - ret c - ld a, SFX_STOP_SLOT - call Function9331e - call Function93316 - ld hl, $5 - add hl, bc - ld [hl], $1 - ld hl, 0 - add hl, bc - inc [hl] - ld hl, $a - add hl, bc - ld [hl], $10 - -Function92e64: ; 92e64 - ld hl, $a - add hl, bc - ld a, [hl] - and a - jr z, .asm_92e73 - dec [hl] -.asm_92e6d - ld a, SFX_GOT_SAFARI_BALLS - call Function9331e - ret - -.asm_92e73 - ld a, [wc709] - and a - jr nz, .asm_92e88 - call Function92f1d - jr nc, .asm_92e6d - and a - jr nz, .asm_92e6d - call Function92c3a - call WaitSFX - ret - -.asm_92e88 - call Function92f1d - jr c, .asm_92e6d - call Function92c3a - call WaitSFX - ret -; 92e94 - -Function92e94: ; 92e94 - xor a - ld [wc70b], a - ld [wc70c], a - call Function92a12 - call Function92fb4 - ld a, [wc70a] - and 3 - ld e, a - ld d, 0 - ld hl, Jumptable_92ebd -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - ld de, .asm_92eb6 - push de - jp [hl] - -.asm_92eb6 - ld a, [wc70b] - and a - ret z - scf - ret -; 92ebd - -Jumptable_92ebd: ; 92ebd - dw Function92ed4 - dw Function92ed1 - dw Function92ecb - dw Function92ec5 -; 92ec5 - -Function92ec5: ; 92ec5 - call Function92ee0 - call Function92ef6 - -Function92ecb: ; 92ecb - call Function92ed5 - call Function92f01 - -Function92ed1: ; 92ed1 - call Function92eeb - -Function92ed4: ; 92ed4 - ret -; 92ed5 - -Function92ed5: ; 92ed5 - ld hl, wc70e - ld a, [EnemyScreens] - cp [hl] - call z, Function92f0c - ret -; 92ee0 - -Function92ee0: ; 92ee0 - ld hl, wEnemyGoesFirst - ld a, [wc700] - cp [hl] - call z, Function92f0c - ret -; 92eeb - -Function92eeb: ; 92eeb - ld hl, wEnemyGoesFirst - ld a, [wc701] - cp [hl] - call z, Function92f0c - ret -; 92ef6 - -Function92ef6: ; 92ef6 - ld hl, wEnemyGoesFirst - ld a, [wc702] - cp [hl] - call z, Function92f0c - ret -; 92f01 - -Function92f01: ; 92f01 - ld hl, wc710 - ld a, [wc702] - cp [hl] - call z, Function92f0c - ret -; 92f0c - -Function92f0c: ; 92f0c - ld [wc717], a - and a - jr nz, .asm_92f17 - ld a, $1 - ld [wc70c], a - -.asm_92f17 - ld a, $1 - ld [wc70b], a - ret -; 92f1d - -Function92f1d: ; 92f1d - ld a, $ff - ld [EffectFailed], a - call Function92a12 - call Function92fb4 - ld a, [wc70a] - and 3 - ld e, a - ld d, 0 - ld hl, Jumptable_92f48 -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - ld de, .asm_92f3d - push de - jp [hl] - -.asm_92f3d - ld a, [wc70d] - cp $ff - jr nz, .asm_92f46 - and a - ret - -.asm_92f46 - scf - ret -; 92f48 - -Jumptable_92f48: ; 92f48 - dw Function92f5f - dw Function92f5c - dw Function92f56 - dw Function92f50 -; 92f50 - -Function92f50: ; 92f50 - call Function92f70 - call Function92f90 - -Function92f56: ; 92f56 - call Function92f60 - call Function92fa0 - -Function92f5c: ; 92f5c - call Function92f80 - -Function92f5f: ; 92f5f - ret -; 92f60 - -Function92f60: ; 92f60 - ld hl, wc70e - ld a, [wc700] - cp [hl] - ret nz - ld hl, wc703 - cp [hl] - call z, Function92fb0 - ret -; 92f70 - -Function92f70: ; 92f70 - ld hl, wc710 - ld a, [wc700] - cp [hl] - ret nz - ld hl, wc704 - cp [hl] - call z, Function92fb0 - ret -; 92f80 - -Function92f80: ; 92f80 - ld hl, wEnemyGoesFirst - ld a, [wc701] - cp [hl] - ret nz - ld hl, wc704 - cp [hl] - call z, Function92fb0 - ret -; 92f90 - -Function92f90: ; 92f90 - ld hl, wc70e - ld a, [wc702] - cp [hl] - ret nz - ld hl, wc704 - cp [hl] - call z, Function92fb0 - ret -; 92fa0 - -Function92fa0: ; 92fa0 - ld hl, wc710 - ld a, [wc702] - cp [hl] - ret nz - ld hl, wc705 - cp [hl] - call z, Function92fb0 - ret -; 92fb0 - -Function92fb0: ; 92fb0 - ld [wc70d], a - ret -; 92fb4 - -Function92fb4: ; 92fb4 - ld de, wc70e - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - inc de - ld a, [hl] - ld [de], a - ret -; 92fc0 - -Function92fc0: ; 92fc0 - ld hl, $3 - add hl, bc - ld a, [hl] - push af - push hl - call Function92fcf - pop hl - pop af - ld [hl], a - ld a, e - ret -; 92fcf - -Function92fcf: ; 92fcf - ld a, [wc709] - and a - jr nz, .asm_92fe8 - ld e, $0 -.asm_92fd7 - ld hl, $3 - add hl, bc - inc [hl] - inc e - push de - call Function92f1d - pop de - jr nc, .asm_92fd7 - and a - jr nz, .asm_92fd7 - ret - -.asm_92fe8 - call Random - and $7 - cp $4 - jr c, .asm_92fe8 - ld e, a -.asm_92ff2 - ld a, e - inc e - ld hl, $3 - add hl, bc - add [hl] - ld [hl], a - push de - call Function92f1d - pop de - jr c, .asm_92ff2 - ret -; 93002 - -Function93002: ; 93002 (24:7002) - ld a, [wc709] - and a - ret z - ld hl, Unknown_93023 - ld a, [ScriptVar] - and a - jr z, .asm_93013 - ld hl, Unknown_93031 -.asm_93013 - call Random - ld c, a -.asm_93017 - ld a, [hli] - cp c - jr nc, .asm_9301e - inc hl - jr .asm_93017 -.asm_9301e - ld a, [hl] - ld [wc709], a - ret -; 93023 (24:7023) - -Unknown_93023: ; 93023 - db $01, $00 - db $03, $04 - db $0a, $14 - db $14, $10 - db $28, $0c - db $30, $08 - db $ff, $ff -; 93031 - -Unknown_93031: ; 93031 - db $02, $00 - db $03, $04 - db $08, $14 - db $10, $10 - db $1e, $0c - db $50, $08 - db $ff, $ff -; 9303f - -Function9303f: ; 9303f (24:703f) - ld b, $14 - ld a, [wc70a] - dec a - jr z, asm_93066 - dec a - jr z, asm_9305a - jr asm_9304e - -Function9304c: ; 9304c (24:704c) - ld b, $23 -asm_9304e: ; 9304e (24:704e) - hlcoord 3, 2 - call Function93069 - hlcoord 3, 10 - call Function93069 -asm_9305a: ; 9305a (24:705a) - hlcoord 3, 4 - call Function93069 - hlcoord 3, 8 - call Function93069 -asm_93066: ; 93066 (24:7066) - hlcoord 3, 6 - -Function93069: ; 93069 (24:7069) - ld a, b - ld [hl], a - ld de, $d - add hl, de - ld [hl], a - ld de, $7 - add hl, de - inc a - ld [hl], a - ld de, $d - add hl, de - ld [hl], a - ret - -Function9307c: ; 9307c (24:707c) - ld hl, UnknownText_0x930c7 - call PrintText - ld hl, MenuDataHeader_0x930d6 - call LoadMenuDataHeader - call InterpretMenu2 - call WriteBackup - ret c - ld a, [MenuSelection2] - ld b, a - ld a, $4 - sub b - ld [wc70a], a - ld hl, Coins - ld c, a - ld a, [hli] - and a - jr nz, .asm_930ad - ld a, [hl] - cp c - jr nc, .asm_930ad - ld hl, UnknownText_0x930d1 - call PrintText - jr Function9307c -.asm_930ad - ld hl, Coins + 1 - ld a, [hl] - sub c - ld [hld], a - jr nc, .asm_930b6 - dec [hl] -.asm_930b6 - call WaitSFX - ld de, SFX_PAY_DAY - call PlaySFX - ld hl, UnknownText_0x930cc - call PrintText - and a - ret -; 930c7 (24:70c7) - -UnknownText_0x930c7: ; 0x930c7 - ; Bet how many coins? - text_jump UnknownText_0x1c5049 - db "@" -; 0x930cc - -UnknownText_0x930cc: ; 0x930cc - ; Start! - text_jump UnknownText_0x1c505e - db "@" -; 0x930d1 - -UnknownText_0x930d1: ; 0x930d1 - ; Not enough coins. - text_jump UnknownText_0x1c5066 - db "@" -; 0x930d6 - -MenuDataHeader_0x930d6: ; 0x930d6 - db $40 ; flags - db 10, 14 ; start coords - db 17, 19 ; end coords - dw MenuData2_0x930de - db 1 ; default option -; 0x930de - -MenuData2_0x930de: ; 0x930de - db $80 ; flags - db 3 ; items - db " 3@" - db " 2@" - db " 1@" -; 0x930e9 - -Function930e9: ; 930e9 (24:70e9) - ld hl, Coins - ld a, [hli] - or [hl] - jr nz, .asm_930fd - ld hl, UnknownText_9311a - call PrintText - ld c, 60 - call DelayFrames - jr .asm_93118 -.asm_930fd - ld hl, UnknownText_9311f - call PrintText - call LoadMenuTextBox - lb bc, 14, 12 - call PlaceYesNoBox - ld a, [MenuSelection2] - dec a - call WriteBackup - and a - jr nz, .asm_93118 - and a - ret -.asm_93118 - scf - ret -; 9311a (24:711a) - -UnknownText_9311a: ; 9311a - text_jump UnknownText_0x1c5079 - db "@" - -UnknownText_9311f: ; 9311f - text_jump UnknownText_0x1c5092 - db "@" - -Function93124: ; 93124 (24:7124) - ld a, [EffectFailed] - cp $ff - jr z, .asm_93151 - srl a - ld e, a - ld d, 0 - ld hl, .data_93145 - add hl, de - ld a, [hli] - ld [PlayerUsedMoves], a - ld e, a - ld a, [hl] - ld [wc711], a - ld d, a - callba MobileFn_105fe3 - ret - -.data_93145 - db $2c, $01 - db $32, $00 - db $06, $00 - db $08, $00 - db $0a, $00 - db $0f, $00 - -.asm_93151 - ld hl, wc711 - xor a - ld [hli], a - ld [hl], a - ret - -Function93158: ; 93158 (24:7158) - ld a, [EffectFailed] - cp $ff - jr nz, .asm_9316c - ld hl, UnknownText_0x931e0 - call PrintText - callba MobileFn_105fd0 - ret -.asm_9316c - srl a - ld e, a - ld d, 0 - ld hl, Unknown_93195 -rept 3 - add hl, de -endr - ld de, StringBuffer2 - ld bc, $4 - call CopyBytes - ld a, [hli] - ld h, [hl] - ld l, a - ld de, .asm_93188 - push de - jp [hl] -.asm_93188 - ld hl, UnknownText_0x931b9 - call PrintText - callba MobileFn_105f9f - ret -; 93195 (24:7195) - -Unknown_93195: ; 93195 - db "300@" - dw Function931e5 - db "50@@" - dw Function9320b - db "6@@@" - dw Function93214 - db "8@@@" - dw Function93214 - db "10@@" - dw Function93214 - db "15@@" - dw Function93214 -; 931b9 - -UnknownText_0x931b9: ; 0x931b9 - start_asm -; 0x931ba - -Function931ba: ; 931ba - ld a, [EffectFailed] - add $25 - ldcoord_a 2, 13 - inc a - ldcoord_a 2, 14 - inc a - ldcoord_a 3, 13 - inc a - ldcoord_a 3, 14 - hlcoord 18, 17 - ld [hl], $ee - ld hl, UnknownText_0x931db -rept 4 - inc bc -endr - ret -; 931db - -UnknownText_0x931db: ; 0x931db - ; lined up! Won @ coins! - text_jump UnknownText_0x1c509f - db "@" -; 0x931e0 - -UnknownText_0x931e0: ; 0x931e0 - ; Darn! - text_jump UnknownText_0x1c50bb - db "@" -; 0x931e5 - -Function931e5: ; 931e5 - ld a, SFX_2ND_PLACE - call Function9331e - call WaitSFX - ld a, [wd002] - and a - jr nz, .asm_931ff - call Random - and $14 - ret z - ld a, $ff - ld [wc709], a - ret - -.asm_931ff - call Random - and $1c - ret z - ld a, $ff - ld [wc709], a - ret -; 9320b - -Function9320b: ; 9320b - ld a, SFX_3RD_PLACE - call Function9331e - call WaitSFX - ret -; 93214 - -Function93214: ; 93214 - ld a, SFX_PRESENT - call Function9331e - call WaitSFX - ret -; 9321d - -Function9321d: ; 9321d (24:721d) - ld hl, $b - add hl, bc - ld e, [hl] - ld d, 0 - ld hl, Jumptable_9322d -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] - -Jumptable_9322d: ; 9322d (24:722d) - dw Function93233 - dw Function93259 - dw Function93289 - - -Function93233: ; 93233 (24:7233) - ld hl, $e - add hl, bc - ld a, [hl] - and a - jr nz, .asm_93247 - ld a, $2 - ld [wcf64], a - ld hl, 0 - add hl, bc - ld [hl], $0 - ret -.asm_93247 - dec [hl] - ld hl, $b - add hl, bc - inc [hl] - ld hl, $c - add hl, bc - ld [hl], $30 - ld hl, $6 - add hl, bc - ld [hl], $0 - -Function93259: ; 93259 (24:7259) - ld hl, $c - add hl, bc - ld a, [hl] - cp $20 - jr c, .asm_93273 - dec [hl] - ld e, a - ld d, $70 - callba Functionce765 - ld a, e - ld hl, $7 - add hl, bc - ld [hl], a - ret -.asm_93273 - ld hl, $b - add hl, bc - inc [hl] - ld hl, $d - add hl, bc - ld [hl], $2 - ld a, $1 - ld [wcf64], a - ld a, SFX_PLACE_PUZZLE_PIECE_DOWN - call Function9331e - ret - -Function93289: ; 93289 (24:7289) - ld hl, $6 - add hl, bc - ld a, [hl] -rept 2 - inc [hl] -endr - cp $48 - jr nc, .asm_932a3 - and $3 - ret nz - ld hl, $d - add hl, bc - ld a, [hl] - xor $ff - inc a - ld [hl], a - ld [hSCY], a - ret -.asm_932a3 - ld hl, $b - add hl, bc - xor a - ld [hl], a - ld [hSCY], a - ret - -Function932ac: ; 932ac (24:72ac) - ld hl, $b - add hl, bc - ld e, [hl] - ld d, 0 - ld hl, Jumptable_932bc -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] - -Jumptable_932bc: ; 932bc (24:72bc) - dw Function932c2 - dw Function932e0 - dw Function932fc - - -Function932c2: ; 932c2 (24:72c2) - ld hl, $4 - add hl, bc - ld a, [hl] - inc [hl] - cp $68 - jr z, .asm_932d6 - and $f - ret nz - ld de, SFX_JUMP_OVER_LEDGE - call PlaySFX - ret -.asm_932d6 - ld hl, $b - add hl, bc - inc [hl] - ld a, $1 - ld [wcf64], a - -Function932e0: ; 932e0 (24:72e0) - ld a, [wcf64] - cp $2 - jr z, .asm_932f1 - cp $5 - ret nz - ld hl, 0 - add hl, bc - ld [hl], $0 - ret -.asm_932f1 - ld hl, $b - add hl, bc - inc [hl] - ld hl, $c - add hl, bc - ld [hl], $8 - -Function932fc: ; 932fc (24:72fc) - ld hl, $c - add hl, bc - ld a, [hl] - and a - jr z, .asm_93306 - dec [hl] - ret -.asm_93306 - ld hl, $b - add hl, bc - dec [hl] - push bc - ld de, $606c - ld a, $8 - call Function3b2a - pop bc - ret -; 93316 (24:7316) - -Function93316: ; 93316 - push bc - ld c, 16 - call DelayFrames - pop bc - ret -; 9331e - -Function9331e: ; 9331e (24:731e) - push de - ld e, a - ld d, 0 - call PlaySFX - pop de - ret -; 93327 (24:7327) - -Unknown_93327: ; 93327 - db $00, $08, $14, $0c, $10, $00, $08, $14, $0c, $10, $04, $08, $14, $0c, $10, $00, $08, $14 -Unknown_93339: ; 93339 - db $00, $0c, $08, $10, $14, $04, $0c, $08, $10, $14, $04, $0c, $08, $10, $14, $00, $0c, $08 -Unknown_9334b: ; 9334b - db $00, $0c, $08, $10, $14, $0c, $08, $10, $14, $0c, $04, $08, $10, $14, $0c, $00, $0c, $08 -; 9335d - -SlotsTilemap: ; 9335d -INCBIN "gfx/slots.tilemap" -; 9344d - -Slots1LZ: ; 9344d -INCBIN "gfx/slots_1.2bpp.lz" -; 935cd - -Slots2LZ: ; 935cd -INCBIN "gfx/slots_2.2bpp.lz" -; 9382d - -Slots3LZ: ; 9382d -INCBIN "gfx/slots_3.2bpp.lz" -; 93a3d - +INCLUDE "engine/slot_machine.asm" SECTION "bank28", ROMX, BANK[$28] @@ -50468,870 +46077,7 @@ INCLUDE "tilesets/data_5.asm" SECTION "bank2E", ROMX, BANK[$2E] -ReturnFromMapSetupScript:: ; b8000 - xor a - ld [hBGMapMode], a - ; For some reson, GameFreak chose to use a callba here instead of just falling through. - ; No other function in the game references the function at 2E:400A, here labeled - ; ReturnFromMapSetupScript.inefficientcallba. - callba .inefficientcallba ; this is a waste of 6 ROM bytes and 2 stack bytes - ret -; b800a - -.inefficientcallba: ; b800a - ld a, [MapGroup] - ld b, a - ld a, [MapNumber] - ld c, a - call GetWorldMapLocation - ld [wCurrentLandmark], a - call .CheckNationalParkGate - jr z, .nationalparkgate - - call GetMapPermission - cp GATE - jr nz, .not_gate - -.nationalparkgate - ld a, -1 - ld [wCurrentLandmark], a - -.not_gate - ld hl, wEnteredMapFromContinue - bit 1, [hl] - res 1, [hl] - jr nz, .dont_do_map_sign - - call .CheckMovingWithinLandmark - jr z, .dont_do_map_sign - ld a, [wCurrentLandmark] - ld [wPreviousLandmark], a - - call .CheckSpecialMap - jr z, .dont_do_map_sign - -; Display for 60 frames - ld a, 60 - ld [wLandmarkSignTimer], a - call LoadMapNameSignGFX - call InitMapNameFrame - callba Function104303 - ret - -.dont_do_map_sign - ld a, [wCurrentLandmark] - ld [wPreviousLandmark], a - ld a, $90 - ld [rWY], a - ld [hWY], a - xor a - ld [hLCDStatCustom], a - ret -; b8064 - -.CheckMovingWithinLandmark: ; b8064 - ld a, [wCurrentLandmark] - ld c, a - ld a, [wPreviousLandmark] - cp c - ret z - cp $0 - ret -; b8070 - -.CheckSpecialMap: ; b8070 - cp -1 - ret z - cp SPECIAL_MAP - ret z - cp RADIO_TOWER - ret z - cp LAV_RADIO_TOWER - ret z - cp UNDERGROUND - ret z - cp INDIGO_PLATEAU - ret z - cp POWER_PLANT - ret z - ld a, $1 - and a - ret -; b8089 - -.CheckNationalParkGate: ; b8089 - ld a, [MapGroup] - cp GROUP_ROUTE_35_NATIONAL_PARK_GATE - ret nz - ld a, [MapNumber] - cp MAP_ROUTE_35_NATIONAL_PARK_GATE - ret z - cp MAP_ROUTE_36_NATIONAL_PARK_GATE - ret -; b8098 - - -PlaceMapNameSign:: ; b8098 (2e:4098) - ld hl, wLandmarkSignTimer - ld a, [hl] - and a - jr z, .disappear - dec [hl] - cp 60 - ret z - cp 59 - jr nz, .skip2 - call InitMapNameFrame - call PlaceMapNameCenterAlign - callba Function104303 -.skip2 - ld a, $80 - ld a, $70 - ld [rWY], a - ld [hWY], a - ret - -.disappear - ld a, $90 - ld [rWY], a - ld [hWY], a - xor a - ld [hLCDStatCustom], a - ret - - -LoadMapNameSignGFX: ; b80c6 - ld de, MapEntryFrameGFX - ld hl, VTiles2 tile $60 - lb bc, BANK(MapEntryFrameGFX), $e - call Get2bpp - ret -; b80d3 - -InitMapNameFrame: ; b80d3 - hlcoord 0, 0 - ld b, 2 - ld c, 18 - call InitMapSignAttrMap - call PlaceMapNameFrame - ret -; b80e1 - - -PlaceMapNameCenterAlign: ; b80e1 (2e:40e1) - ld a, [wCurrentLandmark] - ld e, a - callba GetLandmarkName - call .GetNameLength - ld a, SCREEN_WIDTH - sub c - srl a - ld b, $0 - ld c, a - hlcoord 0, 2 - add hl, bc - ld de, StringBuffer1 - call PlaceString - ret - -.GetNameLength: ; b8101 (2e:4101) - ld c, 0 - push hl - ld hl, StringBuffer1 -.loop - ld a, [hli] - cp "@" - jr z, .stop - cp "%" - jr z, .loop - inc c - jr .loop -.stop - pop hl - ret - - -InitMapSignAttrMap: ; b8115 - ld de, AttrMap - TileMap - add hl, de -rept 2 - inc b -endr -rept 2 - inc c -endr - ld a, $87 -.loop - push bc - push hl -.inner_loop - ld [hli], a - dec c - jr nz, .inner_loop - pop hl - ld de, SCREEN_WIDTH - add hl, de - pop bc - dec b - jr nz, .loop - ret -; b812f - -PlaceMapNameFrame: ; b812f - hlcoord 0, 0 - ; top left - ld a, $61 - ld [hli], a - ; top row - ld a, $62 - call .FillTopBottom - ; top right - ld a, $64 - ld [hli], a - ; left, first line - ld a, $65 - ld [hli], a - ; first line - call .FillMiddle - ; right, first line - ld a, $6b - ld [hli], a - ; left, second line - ld a, $66 - ld [hli], a - ; second line - call .FillMiddle - ; right, second line - ld a, $6c - ld [hli], a - ; bottom left - ld a, $67 - ld [hli], a - ; bottom - ld a, $68 - call .FillTopBottom - ; bottom right - ld a, $6a - ld [hl], a - ret -; b815b - -.FillMiddle: ; b815b - ld c, 18 - ld a, $6d -.loop - ld [hli], a - dec c - jr nz, .loop - ret -; b8164 - -.FillTopBottom: ; b8164 - ld c, 5 - jr .enterloop - -.continueloop -rept 2 - ld [hli], a -endr - -.enterloop - inc a -rept 2 - ld [hli], a -endr - dec a - dec c - jr nz, .continueloop - ret -; b8172 - -CheckForSignpostItems: ; b8172 -; Checks to see if there are hidden items on the screen that have not yet been found. If it finds one, returns carry. - call GetMapScriptHeaderBank - ld [Buffer1], a -; Get the coordinate of the bottom right corner of the screen, and load it in wd1ec/wd1ed. - ld a, [XCoord] - add SCREEN_WIDTH / 4 - ld [wd1ed], a - ld a, [YCoord] - add SCREEN_HEIGHT / 4 - ld [wd1ec], a -; Get the pointer for the first signpost header in the map... - ld hl, wdc02 - ld a, [hli] - ld h, [hl] - ld l, a -; ... before even checking to see if there are any signposts on this map. - ld a, [wCurrentMapSignpostCount] - and a - jr z, .nosignpostitems -; For i = 1:wCurrentMapSignpostCount... -.loop -; Store the counter in Buffer2, and store the signpost header pointer in the stack. - ld [Buffer2], a - push hl -; Get the Y coordinate of the signpost. - call .GetFarByte - ld e, a -; Is the Y coordinate of the signpost on the screen? If not, go to the next signpost. - ld a, [wd1ec] - sub e - jr c, .next - cp SCREEN_HEIGHT / 2 - jr nc, .next -; Is the X coordinate of the signpost on the screen? If not, go to the next signpost. - call .GetFarByte - ld d, a - ld a, [wd1ed] - sub d - jr c, .next - cp SCREEN_WIDTH / 2 - jr nc, .next -; Is this signpost a hidden item? If not, go to the next signpost. - call .GetFarByte - cp SIGNPOST_ITEM - jr nz, .next -; Has this item already been found? If not, set off the Itemfinder. - ld a, [Buffer1] - call GetFarHalfword - ld a, [Buffer1] - call GetFarHalfword - ld d, h - ld e, l - ld b, CHECK_FLAG - call EventFlagAction - ld a, c - and a - jr z, .itemnearby - -.next -; Restore the signpost header pointer and increment it by the length of a signpost header. - pop hl - ld bc, 5 - add hl, bc -; Restore the signpost counter and decrement it. If it hits zero, there are no hidden items in range. - ld a, [Buffer2] - dec a - jr nz, .loop - -.nosignpostitems - xor a - ret - -.itemnearby - pop hl - scf - ret -; b81e2 - -.GetFarByte: ; b81e2 - ld a, [Buffer1] - call GetFarByte - inc hl - ret -; b81ea - - -TreeMonEncounter: ; b81ea - callba MobileFn_1060ef - - xor a - ld [TempWildMonSpecies], a - ld [CurPartyLevel], a - - ld hl, TreeMonMaps - call GetTreeMonSet - jr nc, .no_battle - - call GetTreeMons - jr nc, .no_battle - - call GetTreeMon - jr nc, .no_battle - - ld a, BATTLETYPE_TREE - ld [BattleType], a - ld a, 1 - ld [ScriptVar], a - ret - -.no_battle - xor a - ld [ScriptVar], a - ret -; b8219 - -RockMonEncounter: ; b8219 - - xor a - ld [TempWildMonSpecies], a - ld [CurPartyLevel], a - - ld hl, RockMonMaps - call GetTreeMonSet - jr nc, .no_battle - - call GetTreeMons - jr nc, .no_battle - - ld a, 10 - call RandomRange - cp 4 - jr nc, .no_battle - - call SelectTreeMon - jr nc, .no_battle - - ret - -.no_battle - xor a - ret -; b823e - - db $05 ; ???? - -GetTreeMonSet: ; b823f -; Return carry and treemon set in a -; if the current map is in table hl. - ld a, [MapNumber] - ld e, a - ld a, [MapGroup] - ld d, a -.loop - ld a, [hli] - cp -1 - jr z, .not_in_table - - cp d - jr nz, .skip2 - - ld a, [hli] - cp e - jr nz, .skip1 - - jr .in_table - -.skip2 - inc hl -.skip1 - inc hl - jr .loop - -.not_in_table - xor a - ret - -.in_table - ld a, [hl] - scf - ret -; b825e - -TreeMonMaps: ; b825e -treemon_map: macro - map \1 - db \2 ; treemon set -endm - treemon_map ROUTE_26, 4 - treemon_map ROUTE_27, 4 - treemon_map ROUTE_28, 0 - treemon_map ROUTE_29, 3 - treemon_map ROUTE_30, 3 - treemon_map ROUTE_31, 3 - treemon_map ROUTE_32, 4 - treemon_map ROUTE_33, 2 - treemon_map ROUTE_34, 3 - treemon_map ROUTE_35, 3 - treemon_map ROUTE_36, 3 - treemon_map ROUTE_37, 3 - treemon_map ROUTE_38, 3 - treemon_map ROUTE_39, 3 - treemon_map ROUTE_40, 0 - treemon_map ROUTE_41, 0 - treemon_map ROUTE_42, 2 - treemon_map ROUTE_43, 5 - treemon_map ROUTE_44, 1 - treemon_map ROUTE_45, 1 - treemon_map ROUTE_46, 1 - treemon_map NEW_BARK_TOWN, 0 - treemon_map CHERRYGROVE_CITY, 0 - treemon_map VIOLET_CITY, 0 - treemon_map AZALEA_TOWN, 2 - treemon_map CIANWOOD_CITY, 0 - treemon_map GOLDENROD_CITY, 0 - treemon_map OLIVINE_CITY, 0 - treemon_map ECRUTEAK_CITY, 0 - treemon_map MAHOGANY_TOWN, 0 - treemon_map LAKE_OF_RAGE, 5 - treemon_map BLACKTHORN_CITY, 0 - treemon_map SILVER_CAVE_OUTSIDE, 0 - treemon_map ILEX_FOREST, 6 - db -1 -; b82c5 - -RockMonMaps: ; b82c5 - treemon_map CIANWOOD_CITY, 7 - treemon_map ROUTE_40, 7 - treemon_map DARK_CAVE_VIOLET_ENTRANCE, 7 - treemon_map SLOWPOKE_WELL_B1F, 7 - db -1 -; b82d2 - -GetTreeMons: ; b82d2 -; Return the address of TreeMon table a in hl. -; Return nc if table a doesn't exist. - - cp 8 - jr nc, .quit - - and a - jr z, .quit - - ld e, a - ld d, 0 - ld hl, TreeMons -rept 2 - add hl, de -endr - - ld a, [hli] - ld h, [hl] - ld l, a - - scf - ret - -.quit - xor a - ret -; b82e8 - -TreeMons: ; b82e8 - dw TreeMons1 - dw TreeMons1 - dw TreeMons2 - dw TreeMons3 - dw TreeMons4 - dw TreeMons5 - dw TreeMons6 - dw RockMons - dw TreeMons1 - -; Two tables each (normal, rare). -; Structure: -; db %, species, level - -TreeMons1: ; b82fa - db 50, SPEAROW, 10 - db 15, SPEAROW, 10 - db 15, SPEAROW, 10 - db 10, AIPOM, 10 - db 5, AIPOM, 10 - db 5, AIPOM, 10 - db -1 - - db 50, SPEAROW, 10 - db 15, HERACROSS, 10 - db 15, HERACROSS, 10 - db 10, AIPOM, 10 - db 5, AIPOM, 10 - db 5, AIPOM, 10 - db -1 - -TreeMons2: ; b8320 - db 50, SPEAROW, 10 - db 15, EKANS, 10 - db 15, SPEAROW, 10 - db 10, AIPOM, 10 - db 5, AIPOM, 10 - db 5, AIPOM, 10 - db -1 - - db 50, SPEAROW, 10 - db 15, HERACROSS, 10 - db 15, HERACROSS, 10 - db 10, AIPOM, 10 - db 5, AIPOM, 10 - db 5, AIPOM, 10 - db -1 - -TreeMons3: ; b8346 - db 50, HOOTHOOT, 10 - db 15, SPINARAK, 10 - db 15, LEDYBA, 10 - db 10, EXEGGCUTE, 10 - db 5, EXEGGCUTE, 10 - db 5, EXEGGCUTE, 10 - db -1 - - db 50, HOOTHOOT, 10 - db 15, PINECO, 10 - db 15, PINECO, 10 - db 10, EXEGGCUTE, 10 - db 5, EXEGGCUTE, 10 - db 5, EXEGGCUTE, 10 - db -1 - -TreeMons4: ; b836c - db 50, HOOTHOOT, 10 - db 15, EKANS, 10 - db 15, HOOTHOOT, 10 - db 10, EXEGGCUTE, 10 - db 5, EXEGGCUTE, 10 - db 5, EXEGGCUTE, 10 - db -1 - - db 50, HOOTHOOT, 10 - db 15, PINECO, 10 - db 15, PINECO, 10 - db 10, EXEGGCUTE, 10 - db 5, EXEGGCUTE, 10 - db 5, EXEGGCUTE, 10 - db -1 - -TreeMons5: ; b8392 - db 50, HOOTHOOT, 10 - db 15, VENONAT, 10 - db 15, HOOTHOOT, 10 - db 10, EXEGGCUTE, 10 - db 5, EXEGGCUTE, 10 - db 5, EXEGGCUTE, 10 - db -1 - - db 50, HOOTHOOT, 10 - db 15, PINECO, 10 - db 15, PINECO, 10 - db 10, EXEGGCUTE, 10 - db 5, EXEGGCUTE, 10 - db 5, EXEGGCUTE, 10 - db -1 - -TreeMons6: ; b83b8 - db 50, HOOTHOOT, 10 - db 15, PINECO, 10 - db 15, PINECO, 10 - db 10, NOCTOWL, 10 - db 5, BUTTERFREE, 10 - db 5, BEEDRILL, 10 - db -1 - - db 50, HOOTHOOT, 10 - db 15, CATERPIE, 10 - db 15, WEEDLE, 10 - db 10, HOOTHOOT, 10 - db 5, METAPOD, 10 - db 5, KAKUNA, 10 - db -1 - -RockMons: ; b83de - db 90, KRABBY, 15 - db 10, SHUCKLE, 15 - db -1 -; b83e5 - -GetTreeMon: ; b83e5 - push hl - call GetTreeScore - pop hl - and a - jr z, .bad - cp 1 - jr z, .good - cp 2 - jr z, .rare - ret - -.bad - ld a, 10 - call RandomRange - and a - jr nz, NoTreeMon - jr SelectTreeMon - -.good - ld a, 10 - call RandomRange - cp 5 - jr nc, NoTreeMon - jr SelectTreeMon - -.rare - ld a, 10 - call RandomRange - cp 8 - jr nc, NoTreeMon - jr .skip -.skip - ld a, [hli] - cp -1 - jr nz, .skip - call SelectTreeMon - ret -; b841f - -SelectTreeMon: ; b841f -; Read a TreeMons table and pick one monster at random. - - ld a, 100 - call RandomRange -.loop - sub [hl] - jr c, .ok -rept 3 - inc hl -endr - jr .loop - -.ok - ld a, [hli] - cp $ff - jr z, NoTreeMon - - ld a, [hli] - ld [TempWildMonSpecies], a - ld a, [hl] - ld [CurPartyLevel], a - scf - ret - -NoTreeMon: ; b843b - xor a - ld [TempWildMonSpecies], a - ld [CurPartyLevel], a - ret -; b8443 - -GetTreeScore: ; b8443 - call .CoordScore - ld [Buffer1], a - call .OTIDScore - ld [Buffer2], a - ld c, a - ld a, [Buffer1] - sub c - jr z, .rare - jr nc, .ok - add 10 -.ok - cp 5 - jr c, .good - -.bad - xor a - ret - -.good - ld a, 1 - ret - -.rare - ld a, 2 - ret -; b8466 - -.CoordScore: ; b8466 - call GetFacingTileCoord - ld hl, 0 - ld c, e - ld b, 0 - ld a, d - - and a - jr z, .next -.loop - add hl, bc - dec a - jr nz, .loop -.next - - add hl, bc - ld c, d - add hl, bc - - ld a, h - ld [hDividend], a - ld a, l - ld [hDividend + 1], a - ld a, 5 - ld [hDivisor], a - ld b, 2 - call Divide - - ld a, [hQuotient + 1] - ld [hDividend], a - ld a, [hQuotient + 2] - ld [hDividend + 1], a - ld a, 10 - ld [hDivisor], a - ld b, 2 - call Divide - - ld a, [hQuotient + 3] - ret -; b849d - -.OTIDScore: ; b849d - ld a, [PlayerID] - ld [hDividend], a - ld a, [PlayerID + 1] - ld [hDividend + 1], a - ld a, 10 - ld [hDivisor], a - ld b, 2 - call Divide - ld a, [hQuotient + 3] - ret -; b84b3 - - -Functionb84b3: ; b84b3 - ld a, [rVBK] - push af - ld a, $1 - ld [rVBK], a - - ld de, FishingGFX - ld a, [PlayerGender] - bit 0, a - jr z, .asm_b84c7 - ld de, KrisFishingGFX -.asm_b84c7 - - ld hl, VTiles0 tile $02 - call Functionb84e3 - ld hl, VTiles0 tile $06 - call Functionb84e3 - ld hl, VTiles0 tile $0a - call Functionb84e3 - ld hl, VTiles2 tile $00 - $40 - call Functionb84e3 - - pop af - ld [rVBK], a - ret -; b84e3 - -Functionb84e3: ; b84e3 - lb bc, BANK(FishingGFX), 2 - push de - call Get2bpp - pop de - ld hl, $20 - add hl, de - ld d, h - ld e, l - ret -; b84f2 - -FishingGFX: ; b84f2 -INCBIN "gfx/unknown/0b84f2.2bpp" -; b8582 - -KrisFishingGFX: ; b8582 -INCBIN "gfx/unknown/0b8582.2bpp" -; b8612 +INCLUDE "engine/events_3.asm" INCLUDE "engine/radio.asm" @@ -51344,7 +46090,7 @@ ReadPartyMonMail: ; b9229 ld e, l ReadAnyMail: ; b9237 push de - call WhiteBGMap + call ClearBGPalettes call ClearSprites call ClearTileMap call DisableLCD @@ -51379,7 +46125,7 @@ ReadAnyMail: ; b9237 xor a ld [hJoyPressed], a call Functionb929a - call WhiteBGMap + call ClearBGPalettes call DisableLCD call LoadStandardFont jp EnableLCD @@ -52543,7 +47289,7 @@ SECTION "bank33", ROMX, BANK[$33] DisplayCaughtContestMonStats: ; cc000 - call WhiteBGMap + call ClearBGPalettes call ClearTileMap call ClearSprites call LoadFontsBattleExtra @@ -52845,5846 +47591,9 @@ Functione00ed: ; e00ed (38:40ed) ret ; e00ee (38:40ee) -_CardFlip: ; e00ee (38:40ee) - ld hl, Options - set 4, [hl] - call WhiteBGMap - call ClearTileMap - call ClearSprites - ld de, MUSIC_NONE - call PlayMusic - call DelayFrame - call DisableLCD - call LoadStandardFont - call LoadFontsExtra - ld hl, LZ_e0d16 - ld de, VTiles2 tile $00 - call Decompress - ld hl, LZ_e0ea8 - ld de, VTiles2 tile $3e - call Decompress - ld hl, LZ_e0cdb - ld de, VTiles0 tile $00 - call Decompress - ld hl, GFX_e0cf6 - ld de, VTiles1 tile $6f - ld bc, $10 - call CopyBytes - ld hl, GFX_e0d06 - ld de, VTiles1 tile $75 - ld bc, $10 - call CopyBytes - call Functione0521 - call Functione04c1 - call Functione0c37 - call EnableLCD - call Function3200 - ld a, $e4 - call DmgToCgbBGPals - ld de, $e4e4 - call DmgToCgbObjPals - call DelayFrame - xor a - ld [wJumptableIndex], a - ld a, $2 - ld [wcf64], a - ld [wcf65], a - ld de, MUSIC_GAME_CORNER - call PlayMusic -.MasterLoop - ld a, [wJumptableIndex] - bit 7, a - jr nz, .leavethegame - call .CardFlip - jr .MasterLoop -.leavethegame - call WaitSFX - ld de, SFX_QUIT_SLOTS - call PlaySFX - call WaitSFX - call WhiteBGMap - ld hl, Options - res 4, [hl] - ret - -.CardFlip: ; e0191 (38:4191) - ld a, [wJumptableIndex] - ld e, a - ld d, 0 - ld hl, .Jumptable -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] -; e01a0 (38:41a0) - -.Jumptable: ; e01a0 - dw .AskPlayWithThree - dw .DeductCoins - dw .ChooseACard - dw .PlaceYourBet - dw .CheckTheCard - dw .TabulateTheResult - dw .PlayAgain - dw .Quit -; e01b0 - -.Increment: ; e01b0 - ld hl, wJumptableIndex - inc [hl] - ret -; e01b5 - -.AskPlayWithThree: ; e01b5 - ld hl, .PlayWithThreeCoinsText - call Functione0489 - call YesNoBox - jr c, .SaidNo - call Functione0366 - call .Increment - ret - -.SaidNo - ld a, $7 - ld [wJumptableIndex], a - ret -; e01cd - -.PlayWithThreeCoinsText: ; 0xe01cd - ; Play with three coins? - text_jump UnknownText_0x1c5793 - db "@" -; 0xe01d2 - -.DeductCoins: ; e01d2 - ld a, [Coins] - ld h, a - ld a, [Coins + 1] - ld l, a - ld a, h - and a - jr nz, .deduct ; You have at least 256 coins. - ld a, l - cp 3 - jr nc, .deduct ; You have at least 3 coins. - ld hl, .NotEnoughCoinsText - call Functione0489 - ld a, $7 - ld [wJumptableIndex], a - ret - -.deduct - ld de, -3 - add hl, de - ld a, h - ld [Coins], a - ld a, l - ld [Coins + 1], a - ld de, SFX_TRANSACTION - call PlaySFX - xor a - ld [hBGMapMode], a - call Functione049c - ld a, $1 - ld [hBGMapMode], a - call WaitSFX - call .Increment - ret -; e0212 - -.NotEnoughCoinsText: ; 0xe0212 - ; Not enough coins… - text_jump UnknownText_0x1c57ab - db "@" -; 0xe0217 - -.ChooseACard: ; e0217 - xor a - ld [hBGMapMode], a - hlcoord 0, 0 - lb bc, 12, 9 - call Functione04e5 - hlcoord 9, 0 - ld bc, SCREEN_WIDTH - ld a, [wc6e8] - call AddNTimes - ld [hl], $f5 - ld a, $1 - ld [hBGMapMode], a - ld c, 20 - call DelayFrames - hlcoord 2, 0 - call Functione03c1 - ld a, $1 - ld [hBGMapMode], a - ld c, 20 - call DelayFrames - hlcoord 2, 6 - call Functione03c1 - call WaitBGMap - ld hl, .ChooseACardText - call Functione0489 - xor a - ld [wcf66], a -.loop - call JoyTextDelay - ld a, [hJoyLast] - and A_BUTTON - jr nz, .next - ld de, SFX_KINESIS - call PlaySFX - call Functione0849 - ld c, 4 - call DelayFrames - ld hl, wcf66 - ld a, [hl] - xor $1 - ld [hl], a - jr .loop - -.next - ld de, SFX_SLOT_MACHINE_START - call PlaySFX - ld a, $3 -.loop2 - push af - call Functione0849 - ld c, 4 - call DelayFrames - call ClearSprites - ld c, 4 - call DelayFrames - pop af - dec a - jr nz, .loop2 - ld hl, wcf66 - ld a, [hl] - push af - xor $1 - ld [hl], a - call Functione03ac - lb bc, 6, 5 - call Functione04e5 - pop af - ld [wcf66], a - call .Increment - ret -; e02b2 - -.ChooseACardText: ; 0xe02b2 - ; Choose a card. - text_jump UnknownText_0x1c57be - db "@" -; 0xe02b7 - -.PlaceYourBet: ; e02b7 - ld hl, .PlaceYourBetText - call Functione0489 -.betloop - call JoyTextDelay - ld a, [hJoyLast] - and A_BUTTON - jr nz, .betdone - call Functione089c - call Functione0960 - call DelayFrame - jr .betloop - -.betdone - call .Increment - ret -; e02d5 - -.PlaceYourBetText: ; 0xe02d5 - ; Place your bet. - text_jump UnknownText_0x1c57ce - db "@" -; 0xe02da - -.CheckTheCard: ; e02da - xor a - ld [hVBlankCounter], a - call Functione0960 - call WaitSFX - ld de, SFX_CHOOSE_A_CARD - call PlaySFX - call WaitSFX - ld a, [wc6e8] - ld e, a - ld d, 0 - ld hl, wc6d0 -rept 2 - add hl, de -endr - ld a, [wcf66] - ld e, a - add hl, de - ld a, [hl] - ld [CurEnemyMoveNum], a - ld e, a - ld hl, wc6ea - add hl, de - ld [hl], $1 - call Functione03ac - call Functione03ec - call Function3200 - call .Increment - ret -; e0314 - -.TabulateTheResult: ; e0314 - call Functione0637 - call WaitPressAorB_BlinkCursor - call .Increment - ret -; e031e - -.PlayAgain: ; e031e - call ClearSprites - ld hl, .PlayAgainText - call Functione0489 - call YesNoBox - jr nc, .Continue - call .Increment - ret - -.Continue - ld a, [wc6e8] - inc a - ld [wc6e8], a - cp $c - jr c, .KeepTheCurrentDeck - call Functione04c1 - ld a, $1 - ld [hBGMapMode], a - call Functione0366 - ld hl, .CardsShuffledText - call PrintText - jr .LoopAround - -.KeepTheCurrentDeck - call Functione0534 - -.LoopAround - ld a, $1 - ld [wJumptableIndex], a - ret -; e0356 - -.PlayAgainText: ; 0xe0356 - ; Want to play again? - text_jump UnknownText_0x1c57df - db "@" -; 0xe035b - -.CardsShuffledText: ; 0xe035b - ; The cards have been shuffled. - text_jump UnknownText_0x1c57f4 - db "@" -; 0xe0360 - -.Quit: ; e0360 - ld hl, wJumptableIndex - set 7, [hl] - ret -; e0366 - -Functione0366: ; e0366 - ld hl, wc6d0 - ld bc, $18 - xor a - call ByteFill - ld de, wc6d0 - ld c, $17 -.asm_e0375 - call Random - and $1f - cp $18 - jr nc, .asm_e0375 - ld l, a - ld h, $0 - add hl, de - ld a, [hl] - and a - jr nz, .asm_e0375 - ld [hl], c - dec c - jr nz, .asm_e0375 - xor a - ld [wc6e8], a - ld hl, wc6ea - ld bc, $18 - call ByteFill - ret -; e0398 - -Functione0398: ; e0398 - ld hl, 0 - ld bc, 6 - ld a, [wcf64] - call AddNTimes - ld b, $0 - ld a, [wcf65] - ld c, a - add hl, bc - ret -; e03ac - -Functione03ac: ; e03ac - ld a, [wcf66] - and a - jr nz, .asm_e03ba - hlcoord 2, 0 - ld bc, $1018 - jr .asm_e03c0 - -.asm_e03ba - hlcoord 2, 6 - ld bc, $4018 - -.asm_e03c0 - ret -; e03c1 - -Functione03c1: ; e03c1 - xor a - ld [hBGMapMode], a - ld de, Unknown_e03ce - lb bc, 6, 5 - call Functione04f7 - ret -; e03ce - -Unknown_e03ce: ; e03ce - db $08, $09, $09, $09, $0a - db $0b, $28, $2b, $28, $0c - db $0b, $2c, $2d, $2e, $0c - db $0b, $2f, $30, $31, $0c - db $0b, $32, $33, $34, $0c - db $0d, $0e, $0e, $0e, $0f -; e03ec - -Functione03ec: ; e03ec - xor a - ld [hBGMapMode], a - push hl - push hl - ld de, Unknown_e043b - lb bc, 6, 5 - call Functione04f7 - ld a, [CurEnemyMoveNum] - ld e, a - ld d, 0 - ld hl, Unknown_e0459 -rept 2 - add hl, de -endr - ld a, [hli] - ld e, a - ld d, [hl] - pop hl - ld bc, $17 - add hl, bc - ld [hl], e - ld bc, SCREEN_HEIGHT - add hl, bc - ld a, d - ld de, SCREEN_WIDTH - ld b, $3 -.asm_e0418 - push hl - ld c, $3 -.asm_e041b - ld [hli], a - inc a - dec c - jr nz, .asm_e041b - pop hl - add hl, de - dec b - jr nz, .asm_e0418 - pop hl - ld a, [hCGB] - and a - ret z - ld de, AttrMap - TileMap - add hl, de - ld a, [CurEnemyMoveNum] - and 3 - inc a - lb bc, 6, 5 - call Functione04e7 - ret -; e043b - -Unknown_e043b: ; e043b - db $18, $19, $19, $19, $1a - db $1b, $35, $7f, $7f, $1c - db $0b, $28, $28, $28, $0c - db $0b, $28, $28, $28, $0c - db $0b, $28, $28, $28, $0c - db $1d, $1e, $1e, $1e, $1f -; e0459 - -Unknown_e0459: ; e0459 - db $f7,$4e, $f7,$57, $f7,$69, $f7,$60 - db $f8,$4e, $f8,$57, $f8,$69, $f8,$60 - db $f9,$4e, $f9,$57, $f9,$69, $f9,$60 - db $fa,$4e, $fa,$57, $fa,$69, $fa,$60 - db $fb,$4e, $fb,$57, $fb,$69, $fb,$60 - db $fc,$4e, $fc,$57, $fc,$69, $fc,$60 -; e0489 - -Functione0489: ; e0489 - push hl - hlcoord 0, 12 - ld b, $4 - ld c, $12 - call TextBox - pop hl - call PrintTextBoxText - call Functione049c - ret -; e049c - -Functione049c: ; e049c - hlcoord 9, 15 - ld b, $1 - ld c, $9 - call TextBox - hlcoord 10, 16 - ld de, String_e04bc - call PlaceString - hlcoord 15, 16 - ld de, Coins - lb bc, PRINTNUM_LEADINGZEROS | 2, 4 - call PrintNum - ret -; e04bc - -String_e04bc: - db "COIN@" -; e04c1 - -Functione04c1: ; e04c1 (38:44c1) - xor a - ld [hBGMapMode], a - hlcoord 0, 0 - ld bc, SCREEN_HEIGHT * SCREEN_WIDTH - ld a, $29 - call ByteFill - hlcoord 9, 0 - ld de, Unknown_e110c - lb bc, 12, 11 - call Functione04f7 - hlcoord 0, 12 - lb bc, 4, 18 - call TextBox - ret -; e04e5 (38:44e5) - -Functione04e5: ; e04e5 - ld a, $29 - -Functione04e7: ; e04e7 (38:44e7) - push bc - push hl -.asm_e04e9 - ld [hli], a - dec c - jr nz, .asm_e04e9 - pop hl - ld bc, $14 - add hl, bc - pop bc - dec b - jr nz, Functione04e7 - ret - -Functione04f7: ; e04f7 (38:44f7) - push bc - push hl -.asm_e04f9 - ld a, [de] - inc de - ld [hli], a - dec c - jr nz, .asm_e04f9 - pop hl - ld bc, $14 - add hl, bc - pop bc - dec b - jr nz, Functione04f7 - ret -; e0509 (38:4509) - -Functione0509: ; e0509 - ld de, Sprites - ld a, [hli] -.asm_e050d - push af - ld a, [hli] - add b - ld [de], a - inc de - ld a, [hli] - add c - ld [de], a - inc de - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - inc de - pop af - dec a - jr nz, .asm_e050d - ret -; e0521 - -Functione0521: ; e0521 (38:4521) - ld de, VTiles1 tile $76 - ld hl, $8f62 - ld bc, $9e - call CopyBytes - ld hl, $8ffe - xor a - ld [hli], a - ld [hl], a - ret -; e0534 (38:4534) - -Functione0534: ; e0534 - xor a - ld [hBGMapMode], a - ld a, [CurEnemyMoveNum] - ld e, a - ld d, 0 - and 3 - ld c, a - ld b, 0 - ld a, e - and $1c - srl a - add Jumptable_e0553 % $100 - ld l, a - ld a, 0 - adc Jumptable_e0553 / $100 - ld h, a - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] -; e0553 - -Jumptable_e0553: ; e0553 - dw Functione055f - dw Functione0583 - dw Functione05a7 - dw Functione05cb - dw Functione05ef - dw Functione0613 -; e055f - -Functione055f: ; e055f - ld hl, wc6e6 + 8 - add hl, de - ld a, [hl] - and a - jr nz, .asm_e0575 - hlcoord 13, 3 -rept 2 - add hl, bc -endr - ld [hl], $36 - ld bc, SCREEN_WIDTH - add hl, bc - ld [hl], $37 - ret - -.asm_e0575 - hlcoord 13, 3 -rept 2 - add hl, bc -endr - ld [hl], $36 - ld bc, SCREEN_WIDTH - add hl, bc - ld [hl], $3d - ret -; e0583 - -Functione0583: ; e0583 - ld hl, wc6e6 - add hl, de - ld a, [hl] - and a - jr nz, .asm_e0599 - hlcoord 13, 4 -rept 2 - add hl, bc -endr - ld [hl], $3b - ld bc, SCREEN_WIDTH - add hl, bc - ld [hl], $3a - ret - -.asm_e0599 - hlcoord 13, 4 -rept 2 - add hl, bc -endr - ld [hl], $3d - ld bc, SCREEN_WIDTH - add hl, bc - ld [hl], $3a - ret -; e05a7 - -Functione05a7: ; e05a7 - ld hl, wc6e6 + 8 - add hl, de - ld a, [hl] - and a - jr nz, .asm_e05bd - hlcoord 13, 6 -rept 2 - add hl, bc -endr - ld [hl], $36 - ld bc, SCREEN_WIDTH - add hl, bc - ld [hl], $38 - ret - -.asm_e05bd - hlcoord 13, 6 -rept 2 - add hl, bc -endr - ld [hl], $36 - ld bc, SCREEN_WIDTH - add hl, bc - ld [hl], $3d - ret -; e05cb - -Functione05cb: ; e05cb - ld hl, wc6e6 - add hl, de - ld a, [hl] - and a - jr nz, .asm_e05e1 - hlcoord 13, 7 -rept 2 - add hl, bc -endr - ld [hl], $3c - ld bc, SCREEN_WIDTH - add hl, bc - ld [hl], $3a - ret - -.asm_e05e1 - hlcoord 13, 7 -rept 2 - add hl, bc -endr - ld [hl], $3d - ld bc, SCREEN_WIDTH - add hl, bc - ld [hl], $3a - ret -; e05ef - -Functione05ef: ; e05ef - ld hl, wc6e6 + 8 - add hl, de - ld a, [hl] - and a - jr nz, .asm_e0605 - hlcoord 13, 9 -rept 2 - add hl, bc -endr - ld [hl], $36 - ld bc, SCREEN_WIDTH - add hl, bc - ld [hl], $39 - ret - -.asm_e0605 - hlcoord 13, 9 -rept 2 - add hl, bc -endr - ld [hl], $36 - ld bc, SCREEN_WIDTH - add hl, bc - ld [hl], $3d - ret -; e0613 - -Functione0613: ; e0613 - ld hl, wc6e6 - add hl, de - ld a, [hl] - and a - jr nz, .asm_e0629 - hlcoord 13, 10 -rept 2 - add hl, bc -endr - ld [hl], $3c - ld bc, SCREEN_WIDTH - add hl, bc - ld [hl], $3a - ret - -.asm_e0629 - hlcoord 13, 10 -rept 2 - add hl, bc -endr - ld [hl], $3d - ld bc, SCREEN_WIDTH - add hl, bc - ld [hl], $3a - ret -; e0637 - -Functione0637: ; e0637 - call Functione0398 - add hl, hl - ld de, Jumptable_e0643 - add hl, de - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] -; e0643 - -Jumptable_e0643: ; e0643 - dw Functione06a3 - dw Functione06a3 - dw Functione06a6 - dw Functione06a6 - dw Functione06b0 - dw Functione06b0 - dw Functione06a3 - dw Functione06a3 - dw Functione06ec - dw Functione06f6 - dw Functione0702 - dw Functione070e - dw Functione06c2 - dw Functione0722 - dw Functione0770 - dw Functione0774 - dw Functione0778 - dw Functione077c - dw Functione06c2 - dw Functione072c - dw Functione0780 - dw Functione0784 - dw Functione0788 - dw Functione078c - dw Functione06cc - dw Functione0738 - dw Functione0790 - dw Functione0794 - dw Functione0798 - dw Functione079c - dw Functione06cc - dw Functione0744 - dw Functione07a0 - dw Functione07a4 - dw Functione07a8 - dw Functione07ac - dw Functione06d8 - dw Functione0750 - dw Functione07b0 - dw Functione07b4 - dw Functione07b8 - dw Functione07bc - dw Functione06d8 - dw Functione075c - dw Functione07c0 - dw Functione07c4 - dw Functione07c8 - dw Functione07cc -; e06a3 - -Functione06a3: ; e06a3 - jp Functione07db -; e06a6 - -Functione06a6: ; e06a6 - ld a, [CurEnemyMoveNum] - and $2 - jp nz, Functione07db - jr Functione06ba - -Functione06b0: ; e06b0 - ld a, [CurEnemyMoveNum] - and $2 - jr nz, Functione06ba - jp Functione07db - -Functione06ba: ; e06ba - ld c, $6 - ld de, SFX_2ND_PLACE - jp Functione07eb -; e06c2 - -Functione06c2: ; e06c2 - ld a, [CurEnemyMoveNum] - and $18 - jr z, Functione06e4 - jp Functione07db - -Functione06cc: ; e06cc - ld a, [CurEnemyMoveNum] - and $18 - cp $8 - jr z, Functione06e4 - jp Functione07db - -Functione06d8: ; e06d8 - ld a, [CurEnemyMoveNum] - and $18 - cp $10 - jr z, Functione06e4 - jp Functione07db - -Functione06e4: ; e06e4 - ld c, $9 - ld de, SFX_2ND_PLACE - jp Functione07eb -; e06ec - -Functione06ec: ; e06ec - ld a, [CurEnemyMoveNum] - and $3 - jr z, Functione071a - jp Functione07db - -Functione06f6: ; e06f6 - ld a, [CurEnemyMoveNum] - and $3 - cp $1 - jr z, Functione071a - jp Functione07db - -Functione0702: ; e0702 - ld a, [CurEnemyMoveNum] - and $3 - cp $2 - jr z, Functione071a - jp Functione07db - -Functione070e: ; e070e - ld a, [CurEnemyMoveNum] - and $3 - cp $3 - jr z, Functione071a - jp Functione07db - -Functione071a: ; e071a - ld c, $c - ld de, SFX_2ND_PLACE - jp Functione07eb -; e0722 - -Functione0722: ; e0722 - ld a, [CurEnemyMoveNum] - and $1c - jr z, Functione0768 - jp Functione07db - -Functione072c: ; e072c - ld a, [CurEnemyMoveNum] - and $1c - cp $4 - jr z, Functione0768 - jp Functione07db - -Functione0738: ; e0738 - ld a, [CurEnemyMoveNum] - and $1c - cp $8 - jr z, Functione0768 - jp Functione07db - -Functione0744: ; e0744 - ld a, [CurEnemyMoveNum] - and $1c - cp $c - jr z, Functione0768 - jp Functione07db - -Functione0750: ; e0750 - ld a, [CurEnemyMoveNum] - and $1c - cp $10 - jr z, Functione0768 - jp Functione07db - -Functione075c: ; e075c - ld a, [CurEnemyMoveNum] - and $1c - cp $14 - jr z, Functione0768 - jp Functione07db - -Functione0768: ; e0768 - ld c, $12 - ld de, SFX_2ND_PLACE - jp Functione07eb -; e0770 - - -Functione0770: ; e0770 - ld e, $0 - jr Functione07ce - -Functione0774: ; e0774 - ld e, $1 - jr Functione07ce - -Functione0778: ; e0778 - ld e, $2 - jr Functione07ce - -Functione077c: ; e077c - ld e, $3 - jr Functione07ce - -Functione0780: ; e0780 - ld e, $4 - jr Functione07ce - -Functione0784: ; e0784 - ld e, $5 - jr Functione07ce - -Functione0788: ; e0788 - ld e, $6 - jr Functione07ce - -Functione078c: ; e078c - ld e, $7 - jr Functione07ce - -Functione0790: ; e0790 - ld e, $8 - jr Functione07ce - -Functione0794: ; e0794 - ld e, $9 - jr Functione07ce - -Functione0798: ; e0798 - ld e, $a - jr Functione07ce - -Functione079c: ; e079c - ld e, $b - jr Functione07ce - -Functione07a0: ; e07a0 - ld e, $c - jr Functione07ce - -Functione07a4: ; e07a4 - ld e, $d - jr Functione07ce - -Functione07a8: ; e07a8 - ld e, $e - jr Functione07ce - -Functione07ac: ; e07ac - ld e, $f - jr Functione07ce - -Functione07b0: ; e07b0 - ld e, $10 - jr Functione07ce - -Functione07b4: ; e07b4 - ld e, $11 - jr Functione07ce - -Functione07b8: ; e07b8 - ld e, $12 - jr Functione07ce - -Functione07bc: ; e07bc - ld e, $13 - jr Functione07ce - -Functione07c0: ; e07c0 - ld e, $14 - jr Functione07ce - -Functione07c4: ; e07c4 - ld e, $15 - jr Functione07ce - -Functione07c8: ; e07c8 - ld e, $16 - jr Functione07ce - -Functione07cc: ; e07cc - ld e, $17 - -Functione07ce: ; e07ce - ld a, [CurEnemyMoveNum] - cp e - jr nz, Functione07db - ld c, $48 - ld de, SFX_2ND_PLACE - jr Functione07eb - -Functione07db: ; e07db - ld de, SFX_WRONG - call PlaySFX - ld hl, UnknownText_0xe0816 - call Functione0489 - call WaitSFX - ret - -Functione07eb: ; e07eb - push bc - push de - ld hl, UnknownText_0xe0811 - call Functione0489 - pop de - call PlaySFX - call WaitSFX - pop bc -.asm_e07fb - push bc - call Functione0833 - jr c, .asm_e0804 - call Functione081b - -.asm_e0804 - call Functione049c - ld c, 2 - call DelayFrames - pop bc - dec c - jr nz, .asm_e07fb - ret -; e0811 - -UnknownText_0xe0811: ; 0xe0811 - ; Yeah! - text_jump UnknownText_0x1c5813 - db "@" -; 0xe0816 - -UnknownText_0xe0816: ; 0xe0816 - ; Darn… - text_jump UnknownText_0x1c581a - db "@" -; 0xe081b - -Functione081b: ; e081b - ld a, [Coins] - ld h, a - ld a, [Coins + 1] - ld l, a - inc hl - ld a, h - ld [Coins], a - ld a, l - ld [Coins + 1], a - ld de, SFX_PAY_DAY - call PlaySFX - ret -; e0833 - -Functione0833: ; e0833 - ld a, [Coins] - cp 9999 / $100 - jr c, .asm_e0847 - jr z, .asm_e083e - jr .asm_e0845 - -.asm_e083e - ld a, [Coins + 1] - cp 9999 % $100 - jr c, .asm_e0847 - -.asm_e0845 - scf - ret - -.asm_e0847 - and a - ret -; e0849 - -Functione0849: ; e0849 - call Functione03ac - ld hl, Unknown_e0853 - call Functione0509 - ret -; e0853 - -Unknown_e0853: ; e0853 - db 18 - db $00, $00, $04, $00 - db $00, $08, $06, $00 - db $00, $10, $06, $00 - db $00, $18, $06, $00 - db $00, $20, $04, $20 - db $08, $00, $05, $00 - db $08, $20, $05, $20 - db $10, $00, $05, $00 - db $10, $20, $05, $20 - db $18, $00, $05, $00 - db $18, $20, $05, $20 - db $20, $00, $05, $00 - db $20, $20, $05, $20 - db $28, $00, $04, $40 - db $28, $08, $06, $40 - db $28, $10, $06, $40 - db $28, $18, $06, $40 - db $28, $20, $04, $60 -; e089c - -Functione089c: ; e089c - ld hl, hJoyLast - ld a, [hl] - and D_LEFT - jp nz, Functione08b8 - ld a, [hl] - and D_RIGHT - jp nz, Functione08ef - ld a, [hl] - and D_UP - jp nz, Functione090a - ld a, [hl] - and D_DOWN - jp nz, Functione093d - ret -; e08b8 - -Functione08b8: ; e08b8 - ld hl, wcf65 - ld a, [wcf64] - and a - jr z, .asm_e08d5 - cp $1 - jr z, .asm_e08cc - ld a, [hl] - and a - ret z - dec [hl] - jp Functione0959 - -.asm_e08cc - ld a, [hl] - cp $3 - jr c, .asm_e08e2 - dec [hl] - jp Functione0959 - -.asm_e08d5 - ld a, [hl] - and $e - ld [hl], a - cp $3 - jr c, .asm_e08e2 -rept 2 - dec [hl] -endr - jp Functione0959 - -.asm_e08e2 - ld a, $2 - ld [wcf64], a - ld a, $1 - ld [wcf65], a - jp Functione0959 -; e08ef - -Functione08ef: ; e08ef - ld hl, wcf65 - ld a, [wcf64] - and a - jr z, .asm_e08ff - ld a, [hl] - cp $5 - ret nc - inc [hl] - jr Functione0959 - -.asm_e08ff - ld a, [hl] - and $e - ld [hl], a - cp $4 - ret nc -rept 2 - inc [hl] -endr - jr Functione0959 - -Functione090a: ; e090a - ld hl, wcf64 - ld a, [wcf65] - and a - jr z, .asm_e0925 - cp $1 - jr z, .asm_e091d - ld a, [hl] - and a - ret z - dec [hl] - jr Functione0959 - -.asm_e091d - ld a, [hl] - cp $3 - jr c, .asm_e0931 - dec [hl] - jr Functione0959 - -.asm_e0925 - ld a, [hl] - and $e - ld [hl], a - cp $3 - jr c, .asm_e0931 -rept 2 - dec [hl] -endr - jr Functione0959 - -.asm_e0931 - ld a, $1 - ld [wcf64], a - ld a, $2 - ld [wcf65], a - jr Functione0959 - -Functione093d: ; e093d - ld hl, wcf64 - ld a, [wcf65] - and a - jr z, .asm_e0950 - ld hl, wcf64 - ld a, [hl] - cp $7 - ret nc - inc [hl] - jr Functione0959 - -.asm_e0950 - ld a, [hl] - and $e - ld [hl], a - cp $6 - ret nc -rept 2 - inc [hl] -endr - -Functione0959: ; e0959 - ld de, SFX_POKEBALLS_PLACED_ON_TABLE - call PlaySFX - ret -; e0960 - -Functione0960: ; e0960 - call ClearSprites - ld a, [hCGB] - and a - jr nz, .asm_e096d - ld a, [hVBlankCounter] - and $4 - ret nz - -.asm_e096d - call Functione0398 -rept 2 - add hl, hl -endr - ld de, Unknown_e0981 - add hl, de - ld a, [hli] - ld c, a - ld a, [hli] - ld b, a - ld a, [hli] - ld h, [hl] - ld l, a - call Functione0509 - ret -; e0981 - -Unknown_e0981: ; e0981 - dbbw $58, $10, Unknown_e0c26 - dbbw $60, $10, Unknown_e0c26 - dbbw $68, $10, Unknown_e0b8d - dbbw $68, $10, Unknown_e0b8d - dbbw $88, $10, Unknown_e0b8d - dbbw $88, $10, Unknown_e0b8d - - dbbw $58, $18, Unknown_e0c26 - dbbw $60, $18, Unknown_e0c26 - dbbw $68, $18, Unknown_e0a5a - dbbw $78, $18, Unknown_e0a5a - dbbw $88, $18, Unknown_e0a5a - dbbw $98, $18, Unknown_e0a5a - - dbbw $58, $28, Unknown_e0b14 - dbbw $60, $28, Unknown_e0ac3 - dbbw $68, $28, Unknown_e0a41 - dbbw $78, $28, Unknown_e0a41 - dbbw $88, $28, Unknown_e0a41 - dbbw $98, $28, Unknown_e0a41 - dbbw $58, $28, Unknown_e0b14 - - dbbw $60, $34, Unknown_e0ac3 - dbbw $68, $34, Unknown_e0a41 - dbbw $78, $34, Unknown_e0a41 - dbbw $88, $34, Unknown_e0a41 - dbbw $98, $34, Unknown_e0a41 - - dbbw $58, $40, Unknown_e0b14 - dbbw $60, $40, Unknown_e0ac3 - dbbw $68, $40, Unknown_e0a41 - dbbw $78, $40, Unknown_e0a41 - dbbw $88, $40, Unknown_e0a41 - dbbw $98, $40, Unknown_e0a41 - dbbw $58, $40, Unknown_e0b14 - - dbbw $60, $4c, Unknown_e0ac3 - dbbw $68, $4c, Unknown_e0a41 - dbbw $78, $4c, Unknown_e0a41 - dbbw $88, $4c, Unknown_e0a41 - dbbw $98, $4c, Unknown_e0a41 - - dbbw $58, $58, Unknown_e0b14 - dbbw $60, $58, Unknown_e0ac3 - dbbw $68, $58, Unknown_e0a41 - dbbw $78, $58, Unknown_e0a41 - dbbw $88, $58, Unknown_e0a41 - dbbw $98, $58, Unknown_e0a41 - dbbw $58, $58, Unknown_e0b14 - - dbbw $60, $64, Unknown_e0ac3 - dbbw $68, $64, Unknown_e0a41 - dbbw $78, $64, Unknown_e0a41 - dbbw $88, $64, Unknown_e0a41 - dbbw $98, $64, Unknown_e0a41 -; e0a41 - -Unknown_e0a41: ; e0a41 - db 6 - db $00, $ff, $00, $80 - db $00, $00, $02, $80 - db $00, $08, $03, $80 - db $05, $ff, $00, $c0 - db $05, $00, $02, $c0 - db $05, $08, $03, $80 - -Unknown_e0a5a: ; e0a5a - db 26 - db $00, $ff, $00, $80 - db $00, $00, $02, $80 - db $00, $08, $00, $a0 - db $08, $ff, $01, $80 - db $08, $08, $01, $a0 - db $10, $ff, $01, $80 - db $10, $08, $03, $80 - db $18, $ff, $01, $80 - db $18, $08, $03, $80 - db $20, $ff, $01, $80 - db $20, $08, $03, $80 - db $28, $ff, $01, $80 - db $28, $08, $03, $80 - db $30, $ff, $01, $80 - db $30, $08, $03, $80 - db $38, $ff, $01, $80 - db $38, $08, $03, $80 - db $40, $ff, $01, $80 - db $40, $08, $03, $80 - db $48, $ff, $01, $80 - db $48, $08, $03, $80 - db $50, $ff, $01, $80 - db $50, $08, $03, $80 - db $51, $ff, $00, $c0 - db $51, $00, $02, $c0 - db $51, $08, $03, $80 - -Unknown_e0ac3: ; e0ac3 - db 20 - db $00, $ff, $00, $80 - db $00, $00, $02, $80 - db $00, $08, $02, $80 - db $00, $10, $03, $80 - db $00, $18, $02, $80 - db $00, $20, $03, $80 - db $00, $28, $02, $80 - db $00, $30, $03, $80 - db $00, $38, $02, $80 - db $00, $40, $03, $80 - db $05, $ff, $00, $c0 - db $05, $00, $02, $c0 - db $05, $08, $02, $c0 - db $05, $10, $03, $80 - db $05, $18, $02, $c0 - db $05, $20, $03, $80 - db $05, $28, $02, $c0 - db $05, $30, $03, $80 - db $05, $38, $02, $c0 - db $05, $40, $03, $80 - -Unknown_e0b14: ; e0b14 - db 30 - db $00, $00, $00, $80 - db $00, $08, $02, $80 - db $00, $10, $02, $80 - db $00, $18, $03, $80 - db $00, $20, $02, $80 - db $00, $28, $03, $80 - db $00, $30, $02, $80 - db $00, $38, $03, $80 - db $00, $40, $02, $80 - db $00, $48, $03, $80 - db $08, $00, $01, $80 - db $08, $18, $03, $80 - db $08, $28, $03, $80 - db $08, $38, $03, $80 - db $08, $48, $03, $80 - db $10, $00, $01, $80 - db $10, $18, $03, $80 - db $10, $28, $03, $80 - db $10, $38, $03, $80 - db $10, $48, $03, $80 - db $11, $00, $00, $c0 - db $11, $08, $02, $c0 - db $11, $10, $02, $c0 - db $11, $18, $03, $80 - db $11, $20, $03, $80 - db $11, $28, $03, $80 - db $11, $30, $03, $80 - db $11, $38, $03, $80 - db $11, $40, $03, $80 - db $11, $48, $03, $80 - -Unknown_e0b8d: ; e0b8d - db 38 - db $00, $ff, $00, $80 - db $00, $18, $00, $a0 - db $08, $ff, $01, $80 - db $08, $18, $01, $a0 - db $10, $ff, $01, $80 - db $10, $18, $01, $a0 - db $18, $ff, $01, $80 - db $18, $08, $03, $80 - db $18, $18, $03, $80 - db $20, $ff, $01, $80 - db $20, $08, $03, $80 - db $20, $18, $03, $80 - db $28, $ff, $01, $80 - db $28, $08, $03, $80 - db $28, $18, $03, $80 - db $30, $ff, $01, $80 - db $30, $08, $03, $80 - db $30, $18, $03, $80 - db $38, $ff, $01, $80 - db $38, $08, $03, $80 - db $38, $18, $03, $80 - db $40, $ff, $01, $80 - db $40, $08, $03, $80 - db $40, $18, $03, $80 - db $48, $ff, $01, $80 - db $48, $08, $03, $80 - db $48, $18, $03, $80 - db $50, $ff, $01, $80 - db $50, $08, $03, $80 - db $50, $18, $03, $80 - db $58, $ff, $01, $80 - db $58, $08, $03, $80 - db $58, $18, $03, $80 - db $59, $ff, $00, $c0 - db $59, $00, $02, $c0 - db $59, $08, $03, $c0 - db $59, $10, $02, $c0 - db $59, $18, $03, $e0 - -Unknown_e0c26: ; e0c26 - db 4 - db $00, $00, $00, $80 - db $00, $08, $00, $a0 - db $08, $00, $00, $c0 - db $08, $08, $00, $e0 -; e0c37 - -Functione0c37: ; e0c37 (38:4c37) - ld a, [hCGB] - and a - ret z - hlcoord 0, 0, AttrMap - ld bc, SCREEN_HEIGHT * SCREEN_WIDTH - xor a - call ByteFill - hlcoord 12, 1, AttrMap - lb bc, 2, 2 - ld a, $1 - call Functione04e7 - hlcoord 14, 1, AttrMap - lb bc, 2, 2 - ld a, $2 - call Functione04e7 - hlcoord 16, 1, AttrMap - lb bc, 2, 2 - ld a, $3 - call Functione04e7 - hlcoord 18, 1, AttrMap - lb bc, 2, 2 - ld a, $4 - call Functione04e7 - hlcoord 9, 0, AttrMap - lb bc, 12, 1 - ld a, $1 - call Functione04e7 - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - ld hl, Palette_e0c93 - ld de, Unkn1Pals - ld bc, $48 - call CopyBytes - pop af - ld [rSVBK], a - ret -; e0c93 (38:4c93) - -Palette_e0c93: ; e0c93 - RGB 31, 31, 31 - RGB 17, 07, 31 - RGB 06, 19, 08 - RGB 00, 00, 00 - - RGB 31, 31, 31 - RGB 29, 25, 00 - RGB 06, 19, 08 - RGB 00, 00, 00 - - RGB 31, 31, 31 - RGB 31, 13, 30 - RGB 06, 19, 08 - RGB 00, 00, 00 - - RGB 31, 31, 31 - RGB 08, 17, 30 - RGB 06, 19, 08 - RGB 00, 00, 00 - - RGB 31, 31, 31 - RGB 08, 31, 08 - RGB 06, 19, 08 - RGB 00, 00, 00 - - RGB 31, 31, 31 - RGB 17, 07, 31 - RGB 06, 19, 08 - RGB 00, 00, 00 - - RGB 31, 31, 31 - RGB 17, 07, 31 - RGB 06, 19, 08 - RGB 00, 00, 00 - - RGB 31, 31, 31 - RGB 17, 07, 31 - RGB 06, 19, 08 - RGB 00, 00, 00 - - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 00, 00 - RGB 31, 00, 00 -; e0cdb - -LZ_e0cdb: ; e0cdb -INCBIN "gfx/unknown/0e0cdb.2bpp.lz" - -GFX_e0cf6: ; e0cf6 -INCBIN "gfx/unknown/0e0cf6.2bpp" - -GFX_e0d06: ; e0d06 -INCBIN "gfx/unknown/0e0d06.2bpp" - -LZ_e0d16: ; e0d16 -INCBIN "gfx/unknown/0e0d16.2bpp.lz" - -LZ_e0ea8: ; e0ea8 -INCBIN "gfx/unknown/0e0ea8.2bpp.lz" - -Unknown_e110c: ; e110c - db $ef, $15, $27, $2a, $2a, $06, $27, $2a, $2a, $06, $27 - db $ef, $07, $27, $3e, $3f, $42, $43, $46, $47, $4a, $4b - db $ef, $17, $26, $40, $41, $44, $45, $48, $49, $4c, $4d - db $ef, $25, $04, $00, $01, $00, $01, $00, $01, $00, $01 - db $ef, $05, $14, $10, $11, $10, $11, $10, $11, $10, $11 - db $ef, $16, $24, $20, $21, $20, $21, $20, $21, $20, $21 - db $ef, $25, $04, $00, $02, $00, $02, $00, $02, $00, $02 - db $ef, $05, $14, $10, $12, $10, $12, $10, $12, $10, $12 - db $ef, $16, $24, $20, $22, $20, $22, $20, $22, $20, $22 - db $ef, $25, $04, $00, $03, $00, $03, $00, $03, $00, $03 - db $ef, $05, $14, $10, $13, $10, $13, $10, $13, $10, $13 - db $ef, $16, $24, $20, $23, $20, $23, $20, $23, $20, $23 -; e1190 - -Functione1190: ; e1190 - ld a, [hInMenu] - push af - ld a, $1 - ld [hInMenu], a - call WhiteBGMap - call ClearTileMap - call ClearSprites - xor a - ld [hBGMapMode], a - call DisableLCD - ld hl, wc608 - ld bc, $1e0 - xor a - call ByteFill - ld hl, GFX_e17c5 - ld de, VTiles1 tile $60 - ld bc, $40 - call CopyBytes - ld hl, LZ_e1805 - ld de, VTiles1 tile $6d - call Decompress - call Functione17a3 - hlcoord 0, 0 - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT - ld a, $ee - call ByteFill - hlcoord 4, 3 - lb bc, 12, 12 - ld a, $ef - call Functione13ee - call Functione124e - call Functione13fe - call Functione127d - xor a - ld [hSCY], a - ld [hSCX], a - ld [rWY], a - ld [wJumptableIndex], a - ld [wcf64], a - ld [wcf65], a - ld [wcf66], a - ld a, $93 - ld [rLCDC], a - call WaitBGMap - ld b, $18 - call GetSGBLayout - ld a, $e4 - call DmgToCgbBGPals - ld a, $24 - call Functioncf8 - xor a - ld [wd0ec], a - call DelayFrame -.asm_e1217 - call JoyTextDelay - ld a, [wJumptableIndex] - bit 7, a - jr nz, .asm_e123d - call Functione12ca - ld a, [wcf64] - and a - jr nz, .asm_e1230 - ld a, [hVBlankCounter] - and $10 - jr z, .asm_e1235 - -.asm_e1230 - call Functione14d9 - jr .asm_e1238 - -.asm_e1235 - call ClearSprites - -.asm_e1238 - call DelayFrame - jr .asm_e1217 - -.asm_e123d - pop af - ld [hInMenu], a - call WhiteBGMap - call ClearTileMap - call ClearSprites - ld a, $e3 - ld [rLCDC], a - ret -; e124e - -Functione124e: ; e124e - ld c, $1 - ld b, $10 -.asm_e1252 - call Random - and $f - ld hl, Unknown_e126d - ld e, a - ld d, $0 - add hl, de - ld e, [hl] - ld hl, wc6d0 - add hl, de - ld a, [hl] - and a - jr nz, .asm_e1252 - ld [hl], c - inc c - dec b - jr nz, .asm_e1252 - ret -; e126d - -Unknown_e126d: ; e126d - db $00, $01, $02, $03 - db $04, $05, $06, $0b - db $0c, $11, $12, $17 - db $18, $1d, $1e, $23 -; e127d - -Functione127d: ; e127d - call Functione128d - hlcoord 5, 16 - ld a, $f6 - ld c, $a -.asm_e1287 - ld [hli], a - inc a - dec c - jr nz, .asm_e1287 - ret -; e128d - -Functione128d: ; e128d - hlcoord 4, 15 - ld a, $f0 - ld [hli], a - ld bc, $a - ld a, $f1 - call ByteFill - hlcoord 15, 15 - ld a, $f2 - ld [hli], a - hlcoord 4, 16 - ld a, $f3 - ld [hli], a - ld bc, $a - ld a, $ef - call ByteFill - hlcoord 15, 16 - ld a, $f3 - ld [hli], a - hlcoord 4, 17 - ld a, $f4 - ld [hli], a - ld bc, $a - ld a, $f1 - call ByteFill - hlcoord 15, 17 - ld a, $f5 - ld [hl], a - ret -; e12ca - -Functione12ca: ; e12ca - ld a, [wJumptableIndex] - ld e, a - ld d, 0 - ld hl, Jumptable_e12d9 -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] -; e12d9 - -Jumptable_e12d9: ; e12d9 - dw Functione12db -; e12db - -Functione12db: ; e12db - ld a, [hJoyPressed] - and START - jp nz, Functione13de - ld a, [hJoyPressed] - and A_BUTTON - jp nz, Functione1376 - ld hl, hJoyLast - ld a, [hl] - and D_UP - jr nz, .asm_e1301 - ld a, [hl] - and D_DOWN - jr nz, .asm_e130d - ld a, [hl] - and D_LEFT - jr nz, .asm_e1325 - ld a, [hl] - and D_RIGHT - jr nz, .asm_e1345 - ret - -.asm_e1301 - ld hl, wcf65 - ld a, [hl] - cp $6 - ret c - sub $6 - ld [hl], a - jr .asm_e1364 - -.asm_e130d - ld hl, wcf65 - ld a, [hl] - cp $19 - ret z - cp $1a - ret z - cp $1b - ret z - cp $1c - ret z - cp $1e - ret nc - add $6 - ld [hl], a - jr .asm_e1364 - -.asm_e1325 - ld hl, wcf65 - ld a, [hl] - and a - ret z - cp $6 - ret z - cp $c - ret z - cp $12 - ret z - cp $18 - ret z - cp $1e - ret z - cp $23 - jr z, .asm_e1341 - dec [hl] - jr .asm_e1364 - -.asm_e1341 - ld [hl], $1e - jr .asm_e1364 - -.asm_e1345 - ld hl, wcf65 - ld a, [hl] - cp $5 - ret z - cp $b - ret z - cp $11 - ret z - cp $17 - ret z - cp $1d - ret z - cp $23 - ret z - cp $1e - jr z, .asm_e1362 - inc [hl] - jr .asm_e1364 - -.asm_e1362 - ld [hl], $23 - -.asm_e1364 - ld a, [wcf64] - and a - jr nz, .asm_e136f - ld de, SFX_POUND - jr .asm_e1372 - -.asm_e136f - ld de, SFX_MOVE_PUZZLE_PIECE - -.asm_e1372 - call PlaySFX - ret -; e1376 - -Functione1376: ; e1376 - ld a, [wcf64] - and a - jr nz, .asm_e139f - call Functione1475 - and a - jr z, Functione13e4 - ld de, SFX_MEGA_KICK - call PlaySFX - ld [hl], $0 - ld [wcf66], a - call Functione14d9 - call Functione1441 - call WaitBGMap - call WaitSFX - ld a, $1 - ld [wcf64], a - ret - -.asm_e139f - call Functione1475 - and a - jr nz, Functione13e4 - ld de, SFX_PLACE_PUZZLE_PIECE_DOWN - call PlaySFX - ld a, [wcf66] - ld [hl], a - call Functione141f - call WaitBGMap - xor a - ld [wcf66], a - call Functione14d9 - xor a - ld [wcf64], a - call WaitSFX - call Functione14a0 - ret nc - call Functione128d - call ClearSprites - ld de, SFX_1ST_PLACE - call PlaySFX - call WaitSFX - call SimpleWaitPressAorB - ld a, $1 - ld [wd0ec], a - -Functione13de: ; e13de - ld hl, wJumptableIndex - set 7, [hl] - ret - -Functione13e4: ; e13e4 - ld de, SFX_WRONG - call PlaySFX - call WaitSFX - ret -; e13ee - -Functione13ee: ; e13ee - ld de, SCREEN_WIDTH -.asm_e13f1 - push bc - push hl -.asm_e13f3 - ld [hli], a - dec c - jr nz, .asm_e13f3 - pop hl - add hl, de - pop bc - dec b - jr nz, .asm_e13f1 - ret -; e13fe - -Functione13fe: ; e13fe - xor a - ld [wcf65], a - ld c, $24 -.asm_e1404 - push bc - call Functione1475 - ld [wcf66], a - and a - jr z, .asm_e1413 - call Functione141f - jr .asm_e1416 - -.asm_e1413 - call Functione1441 - -.asm_e1416 - ld hl, wcf65 - inc [hl] - pop bc - dec c - jr nz, .asm_e1404 - ret -; e141f - -Functione141f: ; e141f - ld a, $2 - call Functione1463 - ld a, [hli] - ld h, [hl] - ld l, a - push hl - call Functione1481 - pop hl - ld de, SCREEN_WIDTH - ld b, $3 -.asm_e1431 - ld c, $3 - push hl -.asm_e1434 - ld [hli], a - inc a - dec c - jr nz, .asm_e1434 - add $9 - pop hl - add hl, de - dec b - jr nz, .asm_e1431 - ret -; e1441 - -Functione1441: ; e1441 - ld a, $2 - call Functione1463 - ld a, [hli] - ld h, [hl] - ld l, a - push hl - ld a, $4 - call Functione1463 - ld a, [hl] - pop hl - ld de, SCREEN_WIDTH - ld b, $3 -.asm_e1456 - ld c, $3 - push hl -.asm_e1459 - ld [hli], a - dec c - jr nz, .asm_e1459 - pop hl - add hl, de - dec b - jr nz, .asm_e1456 - ret -; e1463 - -Functione1463: ; e1463 - ld e, a - ld d, 0 - ld hl, Unknown_e1559 - add hl, de - ld a, [wcf65] - ld e, a -rept 4 - add hl, de -endr -rept 2 - add hl, de -endr - ret -; e1475 - -Functione1475: ; e1475 - ld hl, wc6d0 - ld a, [wcf65] - ld e, a - ld d, $0 - add hl, de - ld a, [hl] - ret -; e1481 - -Functione1481: ; e1481 - ld a, [wcf66] - ld hl, Unknown_e148f - add l - ld l, a - ld a, $0 - adc h - ld h, a - ld a, [hl] - ret -; e148f - -Unknown_e148f: ; e148f - db $e0 - db $00, $03, $06, $09 - db $24, $27, $2a, $2d - db $48, $4b, $4e, $51 - db $6c, $6f, $72, $75 -; e14a0 - -Functione14a0: ; e14a0 - ld hl, Unknown_e14b5 - ld de, wc6d0 - ld c, $24 -.asm_e14a8 - ld a, [de] - cp [hl] - jr nz, .asm_e14b3 - inc de - inc hl - dec c - jr nz, .asm_e14a8 - scf - ret - -.asm_e14b3 - and a - ret -; e14b5 - -Unknown_e14b5: ; e14b5 - db $00, $00, $00, $00, $00, $00 - db $00, $01, $02, $03, $04, $00 - db $00, $05, $06, $07, $08, $00 - db $00, $09, $0a, $0b, $0c, $00 - db $00, $0d, $0e, $0f, $10, $00 - db $00, $00, $00, $00, $00, $00 -; e14d9 - -Functione14d9: ; e14d9 - call Functione1481 - ld [wd002], a - xor a - call Functione1463 - ld a, [hli] - ld b, [hl] - ld c, a - ld a, [wd002] - cp $e0 - jr z, .asm_e14f2 - ld hl, Unknown_e150f - jr .asm_e14f5 - -.asm_e14f2 - ld hl, Unknown_e1534 - -.asm_e14f5 - ld de, Sprites -.asm_e14f8 - ld a, [hli] - cp $ff - ret z - add b - ld [de], a - inc de - ld a, [hli] - add c - ld [de], a - inc de - ld a, [wd002] - add [hl] - ld [de], a - inc hl - inc de - ld a, [hli] - ld [de], a - inc de - jr .asm_e14f8 -; e150f - -Unknown_e150f: ; e150f - db $f4, $f4, $00, $00 - db $f4, $fc, $01, $00 - db $f4, $04, $02, $00 - db $fc, $f4, $0c, $00 - db $fc, $fc, $0d, $00 - db $fc, $04, $0e, $00 - db $04, $f4, $18, $00 - db $04, $fc, $19, $00 - db $04, $04, $1a, $00 - db $ff - -Unknown_e1534: ; e1534 - db $f4, $f4, $00, $00 - db $f4, $fc, $01, $00 - db $f4, $04, $00, $20 - db $fc, $f4, $02, $00 - db $fc, $fc, $03, $00 - db $fc, $04, $02, $20 - db $04, $f4, $00, $40 - db $04, $fc, $01, $40 - db $04, $04, $00, $60 - db $ff - -Unknown_e1559: ; e1559 - -macro_e1559: macro - db \1, \2 - dwcoord \3, \4 - db \5, \6 -endm - - macro_e1559 $1c, $1c, 1, 0, $ee, $00 - macro_e1559 $34, $1c, 4, 0, $ee, $00 - macro_e1559 $4c, $1c, 7, 0, $ee, $00 - macro_e1559 $64, $1c, 10, 0, $ee, $00 - macro_e1559 $7c, $1c, 13, 0, $ee, $00 - macro_e1559 $94, $1c, 16, 0, $ee, $00 - macro_e1559 $1c, $34, 1, 3, $ee, $00 - macro_e1559 $34, $34, 4, 3, $ef, $00 - macro_e1559 $4c, $34, 7, 3, $ef, $00 - macro_e1559 $64, $34, 10, 3, $ef, $00 - macro_e1559 $7c, $34, 13, 3, $ef, $00 - macro_e1559 $94, $34, 16, 3, $ee, $00 - macro_e1559 $1c, $4c, 1, 6, $ee, $00 - macro_e1559 $34, $4c, 4, 6, $ef, $00 - macro_e1559 $4c, $4c, 7, 6, $ef, $00 - macro_e1559 $64, $4c, 10, 6, $ef, $00 - macro_e1559 $7c, $4c, 13, 6, $ef, $00 - macro_e1559 $94, $4c, 16, 6, $ee, $00 - macro_e1559 $1c, $64, 1, 9, $ee, $00 - macro_e1559 $34, $64, 4, 9, $ef, $00 - macro_e1559 $4c, $64, 7, 9, $ef, $00 - macro_e1559 $64, $64, 10, 9, $ef, $00 - macro_e1559 $7c, $64, 13, 9, $ef, $00 - macro_e1559 $94, $64, 16, 9, $ee, $00 - macro_e1559 $1c, $7c, 1, 12, $ee, $00 - macro_e1559 $34, $7c, 4, 12, $ef, $00 - macro_e1559 $4c, $7c, 7, 12, $ef, $00 - macro_e1559 $64, $7c, 10, 12, $ef, $00 - macro_e1559 $7c, $7c, 13, 12, $ef, $00 - macro_e1559 $94, $7c, 16, 12, $ee, $00 - macro_e1559 $1c, $94, 1, 15, $ee, $00 - macro_e1559 $34, $94, 4, 15, $ee, $00 - macro_e1559 $4c, $94, 7, 15, $ee, $00 - macro_e1559 $64, $94, 10, 15, $ee, $00 - macro_e1559 $7c, $94, 13, 15, $ee, $00 - macro_e1559 $94, $94, 16, 15, $ee, $00 - -Functione1631: ; e1631 - ld hl, VTiles2 - ld de, VTiles0 - ld b, $6 -.asm_e1639 - push bc - push hl - push hl - call Functione1654 - pop hl - ld bc, 8 - add hl, bc - call Functione1654 - pop hl - ld bc, $60 - add hl, bc - pop bc - dec b - jr nz, .asm_e1639 - call Functione16c7 - ret -; e1654 - -Functione1654: ; e1654 - ld c, $6 -.asm_e1656 - push bc - push hl - push hl - ld c, $4 -.asm_e165b - push bc - ld a, [hli] - and $f0 - swap a - call Functione16aa - ld c, a - ld a, [hli] - and $f0 - swap a - call Functione16aa - ld b, a - ld a, c - ld [de], a - inc de - ld a, b - ld [de], a - inc de - ld a, c - ld [de], a - inc de - ld a, b - ld [de], a - inc de - pop bc - dec c - jr nz, .asm_e165b - pop hl - ld c, $4 -.asm_e1681 - push bc - ld a, [hli] - and $f - call Functione16aa - ld c, a - ld a, [hli] - and $f - call Functione16aa - ld b, a - ld a, c - ld [de], a - inc de - ld a, b - ld [de], a - inc de - ld a, c - ld [de], a - inc de - ld a, b - ld [de], a - inc de - pop bc - dec c - jr nz, .asm_e1681 - pop hl - ld bc, $10 - add hl, bc - pop bc - dec c - jr nz, .asm_e1656 - ret -; e16aa - -Functione16aa: ; e16aa - push hl - ld hl, Unknown_e16b7 - add l - ld l, a - ld a, 0 - adc h - ld h, a - ld a, [hl] - pop hl - ret -; e16b7 - -Unknown_e16b7: ; e16b7 - db $00, $03, $0c, $0f - db $30, $33, $3c, $3f - db $c0, $c3, $cc, $cf - db $f0, $f3, $fc, $ff -; e16c7 - -Functione16c7: ; e16c7 - ld hl, Unknown_e1703 - ld a, $8 -.asm_e16cc - push af - push hl - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - ld a, [hli] - ld h, [hl] - ld l, a - call Functione16e2 - pop hl -rept 4 - inc hl -endr - pop af - dec a - jr nz, .asm_e16cc - ret -; e16e2 - -Functione16e2: ; e16e2 - lb bc, 4, 4 -.asm_e16e5 - push bc -.asm_e16e6 - push de - push hl - ld b, $10 -.asm_e16ea - ld a, [de] - or [hl] - ld [hli], a - inc de - dec b - jr nz, .asm_e16ea - pop hl - ld de, $30 - add hl, de - pop de - dec c - jr nz, .asm_e16e6 - ld bc, $180 - add hl, bc - pop bc - dec b - jr nz, .asm_e16e5 - ret -; e1703 - -Unknown_e1703: ; e1703 - dw GFX_e1723 + $00, $8000 - dw GFX_e1723 + $10, $8010 - dw GFX_e1723 + $20, $8020 - dw GFX_e1723 + $30, $80c0 - dw GFX_e1723 + $40, $80e0 - dw GFX_e1723 + $50, $8180 - dw GFX_e1723 + $60, $8190 - dw GFX_e1723 + $70, $81a0 -; e1723 - -GFX_e1723: ; e1723 -INCBIN "gfx/unknown/0e1723.2bpp" - -Functione17a3: ; e17a3 - ld a, [ScriptVar] - and 3 - ld e, a - ld d, 0 - ld hl, Unknown_e17bd -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - ld de, VTiles2 - call Decompress - call Functione1631 - ret -; e17bd - -Unknown_e17bd: ; e17bd - dw LZ_e1bab - dw LZ_e1c9b - dw LZ_e19fb - dw LZ_e18ab -; e17c5 - -GFX_e17c5: ; e17c5 -INCBIN "gfx/unknown/0e17c5.2bpp" - -LZ_e1805: ; e1805 -INCBIN "gfx/unknown/0e1805.2bpp.lz" - -LZ_e18ab: ; e18ab -INCBIN "gfx/unknown/0e18ab.2bpp.lz" - -LZ_e19fb: ; e19fb -INCBIN "gfx/unknown/0e19fb.2bpp.lz" - -LZ_e1bab: ; e1bab -INCBIN "gfx/unknown/0e1bab.2bpp.lz" - -LZ_e1c9b: ; e1c9b -INCBIN "gfx/unknown/0e1c9b.2bpp.lz" - -_DummyGame: ; e1e5b (38:5e5b) - call Functione1e67 - call DelayFrame -.asm_e1e61 - call Functione1ebb - jr nc, .asm_e1e61 - ret - -Functione1e67: ; e1e67 (38:5e67) - call DisableLCD - ld b, $8 - call GetSGBLayout - callab Function8cf53 - ld hl, LZ_e2221 - ld de, VTiles2 tile $00 - call Decompress - ld hl, Unknown_e00ed - ld de, VTiles0 tile $00 - ld bc, $40 - ld a, BANK(Unknown_e00ed) - call FarCopyBytes - ld a, $8 - ld hl, wc300 - ld [hli], a - ld [hl], $0 - hlcoord 0, 0 - ld bc, SCREEN_HEIGHT * SCREEN_WIDTH - xor a - call ByteFill - xor a - ld [hSCY], a - ld [hSCX], a - ld [rWY], a - ld [wJumptableIndex], a - ld a, $1 - ld [hBGMapMode], a - ld a, $e3 - ld [rLCDC], a - ld a, $e4 - call DmgToCgbBGPals - ld a, $e0 - call Functioncf8 - ret - -Functione1ebb: ; e1ebb (38:5ebb) - ld a, [wJumptableIndex] - bit 7, a - jr nz, .asm_e1ed0 - call Functione1ed2 - callab Function8cf69 - call DelayFrame - and a - ret -.asm_e1ed0 - scf - ret - -Functione1ed2: ; e1ed2 (38:5ed2) - ld a, [wJumptableIndex] - ld e, a - ld d, 0 - ld hl, Jumptable_e1ee1 -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] -; e1ee1 (38:5ee1) - -Jumptable_e1ee1: ; e1ee1 - dw Functione1ef3 - dw Functione1efb - dw Functione1f1c - dw Functione1f42 - dw Functione1f61 - dw Functione1f8b - dw Functione1fba - dw Functione1fcc - dw Functione2000 -; e1ef3 - -Functione1ef3: ; e1ef3 - call Functione2152 - ld hl, wJumptableIndex - inc [hl] - ret -; e1efb - -Functione1efb: ; e1efb - call Functione00ed - jr nc, .asm_e1f06 - ld hl, wJumptableIndex - set 7, [hl] - ret - -.asm_e1f06 - call Functione209d - ld hl, wJumptableIndex - inc [hl] - xor a - ld [wc708], a - ld hl, wc703 -rept 4 - ld [hli], a -endr - ld [hl], a - ld [wc709], a - -Functione1f1c: ; e1f1c - ld hl, wc708 - ld a, [hl] - cp $2d - jr nc, .asm_e1f30 - inc [hl] - call Functione2183 - xor a - ld [wc6fd], a - call Functione2128 - ret - -.asm_e1f30 - ld de, $341c - ld a, $c - call Function3b2a - ld a, $5 - ld [wc702], a - ld hl, wJumptableIndex - inc [hl] - ret -; e1f42 - -Functione1f42: ; e1f42 - ld a, [wc702] - hlcoord 17, 0 - add $f6 - ld [hl], a - ld hl, wc702 - ld a, [hl] - and a - jr nz, .asm_e1f58 - ld a, $7 - ld [wJumptableIndex], a - ret - -.asm_e1f58 - dec [hl] - xor a - ld [wcf64], a - ld hl, wJumptableIndex - inc [hl] - -Functione1f61: ; e1f61 - ld a, [wcf64] - and a - ret z - dec a - ld e, a - ld d, $0 - ld hl, wc6d0 - add hl, de - ld a, [hl] - cp $ff - ret z - ld [wc6fd], a - ld [wPlayerMinimized], a - ld a, e - ld [EnemyScreens], a - call Functione2183 - call Functione2128 - xor a - ld [wcf64], a - ld hl, wJumptableIndex - inc [hl] - ret -; e1f8b - -Functione1f8b: ; e1f8b - ld a, [wcf64] - and a - ret z - dec a - ld hl, EnemyScreens - cp [hl] - ret z - ld e, a - ld d, $0 - ld hl, wc6d0 - add hl, de - ld a, [hl] - cp $ff - ret z - ld [wc6fd], a - ld [PlayerScreens], a - ld a, e - ld [wc701], a - call Functione2183 - call Functione2128 - ld a, $40 - ld [wc708], a - ld hl, wJumptableIndex - inc [hl] - -Functione1fba: ; e1fba - ld hl, wc708 - ld a, [hl] - and a - jr z, .asm_e1fc3 - dec [hl] - ret - -.asm_e1fc3 - call Functione2010 - ld a, $3 - ld [wJumptableIndex], a - ret -; e1fcc - -Functione1fcc: ; e1fcc - ld a, [hJoypadPressed] - and A_BUTTON - ret z - xor a - ld [wc708], a -.asm_e1fd5 - ld hl, wc708 - ld a, [hl] - cp $2d - jr nc, .asm_e1ff9 - inc [hl] - push af - call Functione2183 - pop af - push hl - ld e, a - ld d, $0 - ld hl, wc6d0 - add hl, de - ld a, [hl] - pop hl - cp $ff - jr z, .asm_e1fd5 - ld [wc6fd], a - call Functione2128 - jr .asm_e1fd5 - -.asm_e1ff9 - call WaitPressAorB_BlinkCursor - ld hl, wJumptableIndex - inc [hl] - -Functione2000: ; e2000 - call Functione00ed - jr nc, .asm_e200b - ld hl, wJumptableIndex - set 7, [hl] - ret - -.asm_e200b - xor a - ld [wJumptableIndex], a - ret -; e2010 - -Functione2010: ; e2010 - ld hl, wPlayerMinimized - ld a, [hli] - cp [hl] - jr nz, .asm_e2066 - ld a, [EnemyScreens] - call Functione2183 - call Functione2142 - ld a, [wc701] - call Functione2183 - call Functione2142 - ld a, [EnemyScreens] - ld e, a - ld d, $0 - ld hl, wc6d0 - add hl, de - ld [hl], $ff - ld a, [wc701] - ld e, a - ld d, $0 - ld hl, wc6d0 - add hl, de - ld [hl], $ff - ld hl, wc703 -.asm_e2044 - ld a, [hli] - and a - jr nz, .asm_e2044 - dec hl - ld a, [wPlayerMinimized] - ld [hl], a - ld [wc6fd], a - ld hl, wc709 - ld e, [hl] -rept 2 - inc [hl] -endr - ld d, $0 - hlcoord 5, 0 - add hl, de - call Functione2128 - ld hl, UnknownText_0xe2083 - call PrintText - ret - -.asm_e2066 - xor a - ld [wc6fd], a - ld a, [EnemyScreens] - call Functione2183 - call Functione2128 - ld a, [wc701] - call Functione2183 - call Functione2128 - ld hl, UnknownText_0xe2098 - call PrintText - ret -; e2083 - -UnknownText_0xe2083: ; 0xe2083 - start_asm -; 0xe2084 - -Functione2084: ; e2084 - push bc - hlcoord 2, 13 - call Functione2128 - ld hl, UnknownText_0xe2093 - pop bc -rept 3 - inc bc -endr - ret -; e2093 - -UnknownText_0xe2093: ; 0xe2093 - ; , yeah! - text_jump UnknownText_0x1c1a5b - db "@" -; 0xe2098 - -UnknownText_0xe2098: ; 0xe2098 - ; Darn… - text_jump UnknownText_0x1c1a65 - db "@" -; 0xe209d - -Functione209d: ; e209d - ld hl, wc6d0 - ld bc, $2d - xor a - call ByteFill - call Functione2101 - ld c, $2 - ld b, [hl] - call Functione20e5 - ld c, $8 - ld b, [hl] - call Functione20e5 - ld c, $4 - ld b, [hl] - call Functione20e5 - ld c, $7 - ld b, [hl] - call Functione20e5 - ld c, $3 - ld b, [hl] - call Functione20e5 - ld c, $6 - ld b, [hl] - call Functione20e5 - ld c, $1 - ld b, [hl] - call Functione20e5 - ld c, $5 - ld hl, wc6d0 - ld b, $2d -.asm_e20db - ld a, [hl] - and a - jr nz, .asm_e20e0 - ld [hl], c - -.asm_e20e0 - inc hl - dec b - jr nz, .asm_e20db - ret -; e20e5 - -Functione20e5: ; e20e5 - push hl - ld de, wc6d0 -.asm_e20e9 - call Random - and $3f - cp $2d - jr nc, .asm_e20e9 - ld l, a - ld h, $0 - add hl, de - ld a, [hl] - and a - jr nz, .asm_e20e9 - ld [hl], c - dec b - jr nz, .asm_e20e9 - pop hl - inc hl - ret -; e2101 - -Functione2101: ; e2101 - ld a, [MenuSelection2] - dec a - ld l, a - ld h, 0 -rept 3 - add hl, hl -endr - ld de, Unknown_e2110 - add hl, de - ret -; e2110 - -Unknown_e2110: ; e2110 - db $02, $03, $06, $06, $06, $08, $08, $06 - db $02, $02, $04, $06, $06, $08, $08, $09 - db $02, $02, $02, $04, $07, $08, $08, $0c -; e2128 - -Functione2128: ; e2128 - ld a, [wc6fd] - sla a - sla a - add $4 - ld [hli], a - inc a - ld [hld], a - inc a - ld bc, SCREEN_WIDTH - add hl, bc - ld [hli], a - inc a - ld [hl], a - ld c, 3 - call DelayFrames - ret -; e2142 - -Functione2142: ; e2142 - ld a, $1 - ld [hli], a - ld [hld], a - ld bc, SCREEN_WIDTH - add hl, bc - ld [hli], a - ld [hl], a - ld c, 3 - call DelayFrames - ret -; e2152 - -Functione2152: ; e2152 - hlcoord 0, 0 - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT - ld a, $1 - call ByteFill - hlcoord 0, 0 - ld de, String_e2177 - call PlaceString - hlcoord 15, 0 - ld de, String_e217d - call PlaceString - ld hl, UnknownText_0xe2176 - call PrintText - ret -; e2176 - -UnknownText_0xe2176: ; 0xe2176 - db "@" -; 0xe2177 - -String_e2177: db "とったもの@" -String_e217d: db "あと かい@" -; e2183 - -Functione2183: ; e2183 - ld d, $0 -.asm_e2185 - sub $9 - jr c, .asm_e218c - inc d - jr .asm_e2185 - -.asm_e218c - add $9 - ld e, a - hlcoord 1, 2 - ld bc, $28 -.asm_e2195 - ld a, d - and a - jr z, .asm_e219d - add hl, bc - dec d - jr .asm_e2195 - -.asm_e219d - sla e - add hl, de - ret -; e21a1 - -Functione21a1: ; e21a1 (38:61a1) - ld a, [wJumptableIndex] - cp $7 - jr nc, .quit - call JoyTextDelay - ld hl, hJoypadPressed ; $ffa3 - ld a, [hl] - and A_BUTTON - jr nz, .pressed_a - ld a, [hl] - and D_LEFT - jr nz, .pressed_left - ld a, [hl] - and D_RIGHT - jr nz, .pressed_right - ld a, [hl] - and D_UP - jr nz, .pressed_up - ld a, [hl] - and D_DOWN - jr nz, .pressed_down - ret - -.quit - ld hl, 0 - add hl, bc - ld [hl], $0 - ret - -.pressed_a - ld hl, $c - add hl, bc - ld a, [hl] - inc a - ld [wcf64], a - ret - -.pressed_left - ld hl, $6 - add hl, bc - ld a, [hl] - and a - ret z - sub $10 - ld [hl], a - ld hl, $c - add hl, bc - dec [hl] - ret - -.pressed_right - ld hl, $6 - add hl, bc - ld a, [hl] - cp $80 - ret z - add $10 - ld [hl], a - ld hl, $c - add hl, bc - inc [hl] - ret - -.pressed_up - ld hl, $7 - add hl, bc - ld a, [hl] - and a - ret z - sub $10 - ld [hl], a - ld hl, $c - add hl, bc - ld a, [hl] - sub $9 - ld [hl], a - ret - -.pressed_down - ld hl, $7 - add hl, bc - ld a, [hl] - cp $40 - ret z - add $10 - ld [hl], a - ld hl, $c - add hl, bc - ld a, [hl] - add $9 - ld [hl], a - ret -; e2221 (38:6221) - -LZ_e2221: ; e2221 -INCBIN "gfx/unknown/0e2221.2bpp.lz" - -Functione2391: ; e2391 (38:6391) - ld hl, Options - ld a, [hl] - push af - set 4, [hl] - ld a, [VramState] - push af - xor a - ld [VramState], a - ld a, [hInMenu] - push af - ld a, $1 - ld [hInMenu], a - xor a - ld [hMapAnims], a - call Functione2963 - xor a - ld [wcb2e], a - call DelayFrame -.asm_e23b4 - call JoyTextDelay - ld a, [wJumptableIndex] - bit 7, a - jr nz, .asm_e23c6 - call Functione23d5 - call DelayFrame - jr .asm_e23b4 -.asm_e23c6 - call ClearSprites - pop af - ld [hInMenu], a - pop af - ld [VramState], a - pop af - ld [Options], a - ret - -Functione23d5: ; e23d5 (38:63d5) - ld a, [wJumptableIndex] - ld hl, Jumptable_e23df - call Functione33df - jp [hl] - -Jumptable_e23df: ; e23df (38:63df) - dw Functione23e9 - dw Functione241a - dw Functione245d - dw Functione247d - dw Functione2992 - - -Functione23e9: ; e23e9 (38:63e9) - xor a - ld [hBGMapMode], a - call ClearSprites - call Functione2d30 - call Functione2a8e - ld de, PCString_ChooseaPKMN - call Functione2a6e - ld a, $5 - ld [wcb2d], a - call Functione2c2c - call PCMonInfo - ld a, $ff - ld [CurPartySpecies], a - ld a, $17 - call Functione33d0 - call WaitBGMap - call Functione2e01 - call Functione298d - ret - -Functione241a: ; e241a (38:641a) - ld hl, hJoyPressed ; $ffa7 - ld a, [hl] - and B_BUTTON - jr nz, .asm_e2457 - ld a, [hl] - and A_BUTTON - jr nz, .asm_e2443 - call Functione29b5 - and a - ret z - call Functione2e01 - xor a - ld [hBGMapMode], a - call Functione2c2c - call PCMonInfo - ld a, $1 - ld [hBGMapMode], a - call DelayFrame - call DelayFrame - ret -.asm_e2443 - call Functione2def - and a - ret z - cp $ff - jr z, .asm_e2457 - ld a, $2 - ld [wJumptableIndex], a - ret -; e2452 (38:6452) - -.asm_e2452 - ld hl, wJumptableIndex - dec [hl] - ret - -.asm_e2457 - ld a, $4 - ld [wJumptableIndex], a - ret - -Functione245d: ; e245d (38:645d) - xor a - ld [hBGMapMode], a - call ClearSprites - call Functione2def - ld [CurPartySpecies], a - ld a, $17 - call Functione33d0 - ld de, PCString_WhatsUp - call Functione2a6e - ld a, $1 - ld [MenuSelection2], a - call Functione298d - ret - -Functione247d: ; e247d (38:647d) - ld hl, BillsPCDepositMenuDataHeader - call CopyMenuDataHeader - ld a, [MenuSelection2] - call Function1d4b - call InterpretMenu2 - jp c, BillsPCDepositFuncCancel - ld a, [MenuSelection2] - dec a - and $3 - ld e, a - ld d, 0 - ld hl, BillsPCDepositJumptable -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] - -BillsPCDepositJumptable: ; e24a1 (38:64a1) - dw BillsPCDepositFuncDeposit ; Deposit Pokemon - dw BillsPCDepositFuncStats ; Pokemon Stats - dw BillsPCDepositFuncRelease ; Release Pokemon - dw BillsPCDepositFuncCancel ; Cancel - - -BillsPCDepositFuncDeposit: ; e24a9 (38:64a9) - call Functione2f18 - jp c, BillsPCDepositFuncCancel - call Functione307c - jr c, .no_overflow_31 - ld a, $0 - ld [wJumptableIndex], a - xor a - ld [wcb2b], a - ld [wcb2a], a - ret -.no_overflow_31 - ld de, PCString_WhatsUp - call Functione2a6e - ret - -BillsPCDepositFuncStats: ; e24c8 (38:64c8) - call LoadStandardMenuDataHeader - call Functione2f7e - call ExitMenu - call PCMonInfo - call Functione2def - ld [CurPartySpecies], a - ld a, $17 - call Functione33d0 - ret - -BillsPCDepositFuncRelease: ; e24e0 (38:64e0) - call Functione2f18 - jr c, BillsPCDepositFuncCancel - call Functione2f5f - jr c, BillsPCDepositFuncCancel - ld a, [MenuSelection2] - push af - ld de, PCString_ReleasePKMN - call Functione2a6e - call LoadStandardMenuDataHeader - lb bc, 14, 11 - call PlaceYesNoBox - ld a, [MenuSelection2] - dec a - call ExitMenu - and a - jr nz, .asm_e252c - ld a, [wcb2b] - ld hl, wcb2a - add [hl] - ld [CurPartyMon], a - xor a - ld [wPokemonWithdrawDepositParameter], a - callba Functione039 - call Functione3180 - ld a, $0 - ld [wJumptableIndex], a - xor a - ld [wcb2b], a - ld [wcb2a], a - pop af - ret -.asm_e252c - ld de, PCString_WhatsUp - call Functione2a6e - pop af - ld [MenuSelection2], a - ret - -BillsPCDepositFuncCancel: ; e2537 (38:6537) - ld a, $0 - ld [wJumptableIndex], a - ret -; e253d (38:653d) - -BillsPCDepositMenuDataHeader: ; 0xe253d (38:653d) - db $40 ; flags - db 04, 09 ; start coords - db 13, 19 ; end coords - dw BillsPCDepositMenuData - db 1 ; default option -; 0xe2545 - -BillsPCDepositMenuData: ; 0xe2545 (38:6545) - db $80 ; flags - db 4 ; items - db "DEPOSIT@" - db "STATS@" - db "RELEASE@" - db "CANCEL@" -; 0xe2564 (38:6564) - -Functione2564: ; e2564 - hlcoord 0, 0 - ld b, $4 - ld c, $8 - call ClearBox - hlcoord 0, 4 - ld b, $a - ld c, $9 - call ClearBox - hlcoord 0, 14 - ld b, $2 - ld c, $8 - call ClearBox - ret -; e2583 - -Functione2583: ; e2583 (38:6583) - ld hl, Options - ld a, [hl] - push af - set 4, [hl] - ld a, [VramState] - push af - xor a - ld [VramState], a - ld a, [hInMenu] - push af - ld a, $1 - ld [hInMenu], a - xor a - ld [hMapAnims], a - call Functione2963 - ld a, $f - ld [wcb2e], a - call DelayFrame -.asm_e25a7 - call JoyTextDelay - ld a, [wJumptableIndex] - bit 7, a - jr nz, .no_overflow_49 - call Functione25c8 - call DelayFrame - jr .asm_e25a7 -.no_overflow_49 - call ClearSprites - pop af - ld [hInMenu], a - pop af - ld [VramState], a - pop af - ld [Options], a - ret - -Functione25c8: ; e25c8 (38:65c8) - ld a, [wJumptableIndex] - ld hl, .jumptable - call Functione33df - jp [hl] - -.jumptable: ; e25d2 (38:65d2) - dw Functione25dc - dw Functione2612 - dw Functione2655 - dw BillsPC_Withdraw - dw Functione2992 - - -Functione25dc: ; e25dc (38:65dc) - ld a, $f - ld [wcb2e], a - xor a - ld [hBGMapMode], a - call ClearSprites - call Functione2d30 - call Functione2a8e - ld de, PCString_ChooseaPKMN - call Functione2a6e - ld a, $5 - ld [wcb2d], a - call Functione2c2c - call PCMonInfo - ld a, $ff - ld [CurPartySpecies], a - ld a, $17 - call Functione33d0 - call WaitBGMap - call Functione2e01 - call Functione298d - ret - -Functione2612: ; e2612 (38:6612) - ld hl, hJoyPressed ; $ffa7 - ld a, [hl] - and B_BUTTON - jr nz, .asm_e264f - ld a, [hl] - and A_BUTTON - jr nz, .asm_e263b - call Functione29b5 - and a - ret z - call Functione2e01 - xor a - ld [hBGMapMode], a - call Functione2c2c - call PCMonInfo - ld a, $1 - ld [hBGMapMode], a - call DelayFrame - call DelayFrame - ret -.asm_e263b - call Functione2def - and a - ret z - cp $ff - jr z, .asm_e264f - ld a, $2 - ld [wJumptableIndex], a - ret -; e264a (38:664a) - -.asm_e264a - ld hl, wJumptableIndex - dec [hl] - ret - -.asm_e264f - ld a, $4 - ld [wJumptableIndex], a - ret -; e2655 - -Functione2655: ; e2655 (38:6655) - xor a - ld [hBGMapMode], a - call ClearSprites - call Functione2def - ld [CurPartySpecies], a - ld a, $17 - call Functione33d0 - ld de, PCString_WhatsUp - call Functione2a6e - ld a, $1 - ld [MenuSelection2], a - call Functione298d - ret - -BillsPC_Withdraw: ; e2675 (38:6675) - ld hl, .MenuDataHeader - call CopyMenuDataHeader - ld a, [MenuSelection2] - call Function1d4b - call InterpretMenu2 - jp c, .cancel - ld a, [MenuSelection2] - dec a - and 3 - ld e, a - ld d, 0 - ld hl, .jumptable -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] - -.jumptable: ; e2699 (38:6699) #mark - dw .withdraw ; Withdraw - dw .stats ; Stats - dw .release ; Release - dw .cancel ; Cancel - - -.withdraw: ; e26a1 (38:66a1) - call Functione2f18 - jp c, .cancel - call TryWithdrawPokemon - jr c, .FailedWithdraw - ld a, $0 - ld [wJumptableIndex], a - xor a - ld [wcb2b], a - ld [wcb2a], a - ret -.FailedWithdraw - ld de, PCString_WhatsUp - call Functione2a6e - ret - -.stats: ; e26c0 (38:66c0) - call LoadStandardMenuDataHeader - call Functione2f7e - call ExitMenu - call PCMonInfo - call Functione2def - ld [CurPartySpecies], a - ld a, $17 - call Functione33d0 - ret - -.release: ; e26d8 (38:66d8) - ld a, [MenuSelection2] - push af - call Functione2f5f - jr c, .FailedRelease - ld de, PCString_ReleasePKMN - call Functione2a6e - call LoadStandardMenuDataHeader - lb bc, 14, 11 - call PlaceYesNoBox - ld a, [MenuSelection2] - dec a - call ExitMenu - and a - jr nz, .FailedRelease - ld a, [wcb2b] - ld hl, wcb2a - add [hl] - ld [CurPartyMon], a - ld a, PC_DEPOSIT - ld [wPokemonWithdrawDepositParameter], a - callba Functione039 - call Functione3180 - ld a, $0 - ld [wJumptableIndex], a - xor a - ld [wcb2b], a - ld [wcb2a], a - pop af - ret -.FailedRelease - ld de, PCString_WhatsUp - call Functione2a6e - pop af - ld [MenuSelection2], a - ret - -.cancel: ; e272b (38:672b) - ld a, $0 - ld [wJumptableIndex], a - ret -; e2731 (38:6731) - -.MenuDataHeader: ; 0xe2731 - db $40 ; flags - db 04, 09 ; start coords - db 13, 19 ; end coords - dw .MenuData - db 1 ; default option -; 0xe2739 - -.MenuData: ; 0xe2739 - db $80 ; flags - db 4 ; items - db "WITHDRAW@" - db "STATS@" - db "RELEASE@" - db "CANCEL@" -; 0xe2759 - -Functione2759: ; e2759 - ld hl, Options - ld a, [hl] - push af - set 4, [hl] - ld a, [VramState] - push af - xor a - ld [VramState], a - ld a, [hInMenu] - push af - ld a, $1 - ld [hInMenu], a - xor a - ld [hMapAnims], a - call Functione2963 - ld a, [wCurBox] - and $f - inc a - ld [wcb2e], a - call DelayFrame -.asm_e2781 - call JoyTextDelay - ld a, [wJumptableIndex] - bit 7, a - jr nz, .asm_e2793 - call Functione27a2 - call DelayFrame - jr .asm_e2781 - -.asm_e2793 - call ClearSprites - pop af - ld [hInMenu], a - pop af - ld [VramState], a - pop af - ld [Options], a - ret -; e27a2 - -Functione27a2: ; e27a2 - ld a, [wJumptableIndex] - ld hl, Jumptable_e27ac - call Functione33df - jp [hl] -; e27ac - -Jumptable_e27ac: ; e27ac - dw Functione27ba - dw Functione27eb - dw Functione283d - dw Functione285d - dw Functione28df - dw Functione2903 - dw Functione2992 -; e27ba - -Functione27ba: ; e27ba - xor a - ld [hBGMapMode], a - call ClearSprites - call Functione2d30 - ld de, PCString_ChooseaPKMN - call Functione2a6e - ld a, $5 - ld [wcb2d], a - call Functione2c2c - call Functione2a80 - call PCMonInfo - ld a, $ff - ld [CurPartySpecies], a - ld a, $17 - call Functione33d0 - call WaitBGMap - call Functione2e01 - call Functione298d - ret -; e27eb - -Functione27eb: ; e27eb - ld hl, hJoyPressed - ld a, [hl] - and B_BUTTON - jr nz, .asm_e2837 - ld a, [hl] - and A_BUTTON - jr nz, .asm_e2823 - call Functione29d0 - jr c, .asm_e2816 - and a - ret z - call Functione2e01 - xor a - ld [hBGMapMode], a - call Functione2c2c - call PCMonInfo - ld a, $1 - ld [hBGMapMode], a - call DelayFrame - call DelayFrame - ret - -.asm_e2816 - xor a - ld [wcb2b], a - ld [wcb2a], a - ld a, $0 - ld [wJumptableIndex], a - ret - -.asm_e2823 - call Functione2def - and a - ret z - cp $ff - jr z, .asm_e2837 - ld a, $2 - ld [wJumptableIndex], a - ret - - ld hl, wJumptableIndex - dec [hl] - ret - -.asm_e2837 - ld a, $6 - ld [wJumptableIndex], a - ret -; e283d - -Functione283d: ; e283d - xor a - ld [hBGMapMode], a - call ClearSprites - call Functione2def - ld [CurPartySpecies], a - ld a, $17 - call Functione33d0 - ld de, PCString_WhatsUp - call Functione2a6e - ld a, $1 - ld [MenuSelection2], a - call Functione298d - ret -; e285d - -Functione285d: ; e285d - ld hl, MenuDataHeader_0xe28c3 - call CopyMenuDataHeader - ld a, [MenuSelection2] - call Function1d4b - call InterpretMenu2 - jp c, Functione28bd - ld a, [MenuSelection2] - dec a - and 3 - ld e, a - ld d, 0 - ld hl, Jumptable_e2881 -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] -; e2881 - -Jumptable_e2881: ; e2881 - dw Functione2887 - dw Functione28a5 - dw Functione28bd -; e2887 - -Functione2887: ; e2887 - call Functione2f18 - jp c, Functione28bd - ld a, [wcb2a] - ld [wcb2f], a - ld a, [wcb2b] - ld [wcb30], a - ld a, [wcb2e] - ld [wcb31], a - ld a, $4 - ld [wJumptableIndex], a - ret -; e28a5 - -Functione28a5: ; e28a5 - call LoadStandardMenuDataHeader - call Functione2f7e - call ExitMenu - call PCMonInfo - call Functione2def - ld [CurPartySpecies], a - ld a, $17 - call Functione33d0 - ret -; e28bd - -Functione28bd: ; e28bd - ld a, $0 - ld [wJumptableIndex], a - ret -; e28c3 - -MenuDataHeader_0xe28c3: ; 0xe28c3 - db $40 ; flags - db 04, 09 ; start coords - db 13, 19 ; end coords - dw MenuData2_0xe28cb - db 1 ; default option -; 0xe28cb - -MenuData2_0xe28cb: ; 0xe28cb - db $80 ; flags - db 3 ; items - db "MOVE@" - db "STATS@" - db "CANCEL@" -; 0xe28df - -Functione28df: ; e28df - xor a - ld [hBGMapMode], a - call Functione2d30 - ld de, PCString_MoveToWhere - call Functione2a6e - ld a, $5 - ld [wcb2d], a - call Functione2c2c - call Functione2a80 - call ClearSprites - call Functione2e8c - call WaitBGMap - call Functione298d - ret -; e2903 - -Functione2903: ; e2903 - ld hl, hJoyPressed - ld a, [hl] - and B_BUTTON - jr nz, .asm_e294b - ld a, [hl] - and A_BUTTON - jr nz, .asm_e2938 - call Functione29f4 - jr c, .asm_e292b - and a - ret z - call Functione2e8c - xor a - ld [hBGMapMode], a - call Functione2c2c - ld a, $1 - ld [hBGMapMode], a - call DelayFrame - call DelayFrame - ret - -.asm_e292b - xor a - ld [wcb2b], a - ld [wcb2a], a - ld a, $4 - ld [wJumptableIndex], a - ret - -.asm_e2938 - call Functione2ee5 - jr c, .asm_e2946 - call Functione31e7 - ld a, $0 - ld [wJumptableIndex], a - ret - -.asm_e2946 - ld hl, wJumptableIndex - dec [hl] - ret - -.asm_e294b - ld a, [wcb2f] - ld [wcb2a], a - ld a, [wcb30] - ld [wcb2b], a - ld a, [wcb31] - ld [wcb2e], a - ld a, $0 - ld [wJumptableIndex], a - ret -; e2963 - -Functione2963: ; e2963 (38:6963) - call WhiteBGMap - call ClearSprites - call ClearTileMap - call Functione33e8 - ld hl, OverworldMap - ld bc, $338 - xor a - call ByteFill - xor a - ld [wJumptableIndex], a - ld [wcf64], a - ld [wcf65], a - ld [wcf66], a - ld [wcb2b], a - ld [wcb2a], a - ret - -Functione298d: ; e298d (38:698d) - ld hl, wJumptableIndex - inc [hl] - ret - -Functione2992: ; e2992 (38:6992) - ld hl, wJumptableIndex - set 7, [hl] - ret - -Functione2998: ; e2998 (38:6998) - ld a, [wcb2d] - ld d, a - ld a, [wcb2c] - and a - jr z, .asm_e29b2 - dec a - cp $1 - jr z, .asm_e29b2 - ld e, a - ld a, [hl] - and D_UP - jr nz, Functione2a18 - ld a, [hl] - and D_DOWN - jr nz, Functione2a2c -.asm_e29b2 - jp Functione2a65 - -Functione29b5: ; e29b5 (38:69b5) - ld hl, hJoyLast - ld a, [wcb2d] - ld d, a - ld a, [wcb2c] - ld e, a - and a - jr z, .asm_e29cd - ld a, [hl] - and D_UP - jr nz, Functione2a18 - ld a, [hl] - and D_DOWN - jr nz, Functione2a2c -.asm_e29cd - jp Functione2a65 -; e29d0 (38:69d0) - -Functione29d0: ; e29d0 - ld hl, hJoyLast - ld a, [wcb2d] - ld d, a - ld a, [wcb2c] - ld e, a - and a - jr z, .asm_e29e8 - ld a, [hl] - and D_UP - jr nz, Functione2a18 - ld a, [hl] - and D_DOWN - jr nz, Functione2a2c - -.asm_e29e8 - ld a, [hl] - and D_LEFT - jr nz, Functione2a48 - ld a, [hl] - and D_RIGHT - jr nz, Functione2a56 - jr Functione2a65 - -Functione29f4: ; e29f4 - ld hl, hJoyLast - ld a, [wcb2d] - ld d, a - ld a, [wcb2c] - ld e, a - and a - jr z, .asm_e2a0c - - ld a, [hl] - and D_UP - jr nz, Functione2a18 - ld a, [hl] - and D_DOWN - jr nz, Functione2a2c - -.asm_e2a0c - ld a, [hl] - and D_LEFT - jr nz, Functione2a48 - ld a, [hl] - and D_RIGHT - jr nz, Functione2a56 - jr Functione2a65 - -Functione2a18: ; e2a18 (38:6a18) - ld hl, wcb2b - ld a, [hl] - and a - jr z, .asm_e2a22 - dec [hl] - jr Functione2a68 - -.asm_e2a22 - ld hl, wcb2a - ld a, [hl] - and a - jr z, Functione2a65 - dec [hl] - jr Functione2a68 - -Functione2a2c: ; e2a2c (38:6a2c) - ld a, [wcb2b] - ld hl, wcb2a - add [hl] - inc a - cp e - jr nc, Functione2a65 - - ld hl, wcb2b - ld a, [hl] - inc a - cp d - jr nc, .asm_e2a42 - inc [hl] - jr Functione2a68 - -.asm_e2a42 - ld hl, wcb2a - inc [hl] - jr Functione2a68 -; e2a48 (38:6a48) - -Functione2a48: ; e2a48 - ld hl, wcb2e - ld a, [hl] - and a - jr z, .asm_e2a52 - dec [hl] - jr Functione2a6c - -.asm_e2a52 - ld [hl], $e - jr Functione2a6c - -Functione2a56: ; e2a56 - ld hl, wcb2e - ld a, [hl] - cp $e - jr z, .asm_e2a61 - inc [hl] - jr Functione2a6c - -.asm_e2a61 - ld [hl], $0 - jr Functione2a6c - -Functione2a65: ; e2a65 (38:6a65) - xor a - and a - ret - -Functione2a68: ; e2a68 (38:6a68) - ld a, $1 - and a - ret -; e2a6c (38:6a6c) - -Functione2a6c: ; e2a6c - scf - ret -; e2a6e - -Functione2a6e: ; e2a6e (38:6a6e) - push de - hlcoord 0, 15 - lb bc, 1, 18 - call TextBox - pop de - hlcoord 1, 16 - call PlaceString - ret -; e2a80 (38:6a80) - -Functione2a80: ; e2a80 - call Functione2a8e - hlcoord 8, 1 - ld [hl], $5f - hlcoord 19, 1 - ld [hl], $5e - ret -; e2a8e - -Functione2a8e: ; e2a8e (38:6a8e) - hlcoord 8, 0 - lb bc, 1, 10 - call TextBox - - ld a, [wcb2e] - and a - jr z, .party - - cp NUM_BOXES + 1 - jr nz, .gotbox - - ld a, [wCurBox] - inc a -.gotbox - dec a - ld hl, wBoxNames - ld bc, BOX_NAME_LENGTH - call AddNTimes - ld e, l - ld d, h - jr .print - -.party - ld de, String_e2abd -.print - hlcoord 10, 1 - call PlaceString - ret -; e2abd (38:6abd) - -String_e2abd: - db "PARTY <PK><MN>@" -; e2ac6 - -PCMonInfo: ; e2ac6 (38:6ac6) -; Display a monster's pic and -; attributes when highlighting -; it in a PC menu. - -; Includes the neat cascading -; effect when showing the pic. - -; Example: Species, level, gender, -; whether it's holding an item. - - hlcoord 0, 0 - lb bc, 15, 8 - call ClearBox - - hlcoord 8, 14 - lb bc, 1, 3 - call ClearBox - - call Functione2def - and a - ret z - cp $ff - ret z - - ld [wd265], a - hlcoord 1, 4 - xor a - ld b, 7 -.asm_e2ae9 - ld c, 7 - push af - push hl -.asm_e2aed - ld [hli], a - add 7 - dec c - jr nz, .asm_e2aed - pop hl - ld de, 20 - add hl, de - pop af - inc a - dec b - jr nz, .asm_e2ae9 - - call Functione2b6d - ld a, [wd265] - ld [CurPartySpecies], a - ld [CurSpecies], a - ld hl, TempMonDVs - predef GetUnownLetter - call GetBaseData - ld de, VTiles2 tile $00 - predef GetFrontpic - xor a - ld [wcb32], a - ld a, [CurPartySpecies] - ld [wd265], a - - cp EGG - ret z - - call GetBasePokemonName - hlcoord 1, 14 - call PlaceString - - hlcoord 1, 12 - call PrintLevel - - ld a, $3 - ld [MonType], a - callba GetGender - jr c, .asm_e2b4f - ld a, "♂" - jr nz, .printgender - ld a, "♀" -.printgender - hlcoord 5, 12 - ld [hl], a -.asm_e2b4f - - ld a, [TempMonItem] - and a - ret z - - ld d, a - callab ItemIsMail - jr c, .mail - ld a, $5d ; item icon - jr .printitem -.mail - ld a, $1 - ld [wcb32], a - ld a, $5c ; mail icon -.printitem - hlcoord 7, 12 - ld [hl], a - ret - -Functione2b6d: ; e2b6d (38:6b6d) - ld a, [wcb2b] - ld hl, wcb2a - add [hl] - ld e, a - ld d, $0 - ld hl, wc801 -rept 3 - add hl, de -endr - ld a, [hl] - and a - jr z, .asm_e2bc6 - cp $f - jr z, .asm_e2bf5 - ld b, a - call Functione3396 - ld a, b - call GetSRAMBank - push hl - ld bc, $35 - add hl, bc - ld bc, $20 - ld a, e - call AddNTimes - ld a, [hl] - ld [TempMonLevel], a - pop hl - push hl - ld bc, $17 - add hl, bc - ld bc, $20 - ld a, e - call AddNTimes - ld a, [hl] - ld [TempMonItem], a - pop hl - ld bc, $2b - add hl, bc - ld bc, $20 - ld a, e - call AddNTimes - ld de, TempMonDVs - ld a, [hli] - ld [de], a - inc de - ld a, [hl] - ld [de], a - call CloseSRAM - ret -.asm_e2bc6 - ld hl, PartyMon1Level - ld bc, $30 - ld a, e - call AddNTimes - ld a, [hl] - ld [TempMonLevel], a - ld hl, PartyMon1Item - ld bc, $30 - ld a, e - call AddNTimes - ld a, [hl] - ld [TempMonItem], a - ld hl, PartyMon1DVs - ld bc, $30 - ld a, e - call AddNTimes - ld de, TempMonDVs - ld a, [hli] - ld [de], a - inc de - ld a, [hl] - ld [de], a - ret - -.asm_e2bf5 - ld a, BANK(sBox) - call GetSRAMBank - ld hl, sBoxMon1Level - ld bc, $20 - ld a, e - call AddNTimes - ld a, [hl] - ld [TempMonLevel], a - - ld hl, sBoxMon1Item - ld bc, $20 - ld a, e - call AddNTimes - ld a, [hl] - ld [TempMonItem], a - - ld hl, sBoxMon1DVs - ld bc, $20 - ld a, e - call AddNTimes - ld de, TempMonDVs - ld a, [hli] - ld [de], a - inc de - ld a, [hl] - ld [de], a - - call CloseSRAM - ret - -Functione2c2c: ; e2c2c (38:6c2c) - hlcoord 8, 2 - lb bc, 10, 10 - call TextBox - - hlcoord 8, 2 - ld [hl], "└" - hlcoord 19, 2 - ld [hl], "┘" - - ld a, [wcb2a] - ld e, a - ld d, 0 - ld hl, OverworldMap -rept 3 - add hl, de -endr - ld e, l - ld d, h - hlcoord 9, 4 - ld a, [wcb2d] -.asm_e2c53 - push af - push de - push hl - call Functione2c6e - pop hl - ld de, $28 - add hl, de - pop de -rept 3 - inc de -endr - pop af - dec a - jr nz, .asm_e2c53 - ret -; e2c67 (38:6c67) - -String_e2c67: - db "CANCEL@" -; e2c6e - -Functione2c6e: ; e2c6e (38:6c6e) - ld a, [de] - and a - ret z - cp $ff - jr nz, .asm_e2c7c - ld de, String_e2c67 - call PlaceString - ret -.asm_e2c7c - inc de - ld a, [de] - ld b, a - inc de - ld a, [de] - ld e, a - ld a, b - and a - jr z, .asm_e2cc8 - cp $f - jr z, .asm_e2cf1 - push hl - call Functione3396 - ld a, b - call GetSRAMBank - push hl - ld bc, $16 - add hl, bc - ld bc, $20 - ld a, e - call AddNTimes - ld a, [hl] - pop hl - and a - jr z, .asm_e2cc2 - ld bc, $372 - add hl, bc - ld bc, $b - ld a, e - call AddNTimes - ld de, StringBuffer1 - ld bc, $b - call CopyBytes - call CloseSRAM - pop hl - ld de, StringBuffer1 - call PlaceString - ret -.asm_e2cc2 - call CloseSRAM - pop hl - jr .asm_e2d23 -.asm_e2cc8 - push hl - ld hl, PartySpecies - ld d, $0 - add hl, de - ld a, [hl] - and a - jr z, .asm_e2cee - ld hl, PartyMonNicknames - ld bc, $b - ld a, e - call AddNTimes - ld de, StringBuffer1 - ld bc, $b - call CopyBytes - pop hl - ld de, StringBuffer1 - call PlaceString - ret -.asm_e2cee - pop hl - jr .asm_e2d23 -.asm_e2cf1 - push hl - ld a, BANK(sBox) - call GetSRAMBank - ld hl, sBoxSpecies - ld d, $0 - add hl, de - ld a, [hl] - and a - jr z, .asm_e2d1f - ld hl, sBoxMonNicknames - ld bc, PKMN_NAME_LENGTH - ld a, e - call AddNTimes - ld de, StringBuffer1 - ld bc, PKMN_NAME_LENGTH - call CopyBytes - call CloseSRAM - pop hl - ld de, StringBuffer1 - call PlaceString - ret -.asm_e2d1f - call CloseSRAM - pop hl -.asm_e2d23 - ld de, String_e2d2a - call PlaceString - ret -; e2d2a (38:6d2a) - -String_e2d2a: - db "-----@" -; e2d30 - -Functione2d30: ; e2d30 (38:6d30) - xor a - ld hl, OverworldMap - ld bc, $5a - call ByteFill - ld de, OverworldMap - xor a - ld [wd003], a - ld [wd004], a - ld a, [wcb2e] - and a - jr z, .asm_e2d87 - cp $f - jr z, .asm_e2db7 - ld b, a - call Functione3396 - ld a, b - call GetSRAMBank - inc hl -.asm_e2d57 - ld a, [hl] - cp $ff - jr z, .asm_e2d79 - and a - jr z, .asm_e2d79 - ld [de], a - inc de - ld a, [wcb2e] - ld [de], a - inc de - ld a, [wd003] - ld [de], a - inc a - ld [wd003], a - inc de - inc hl - ld a, [wd004] - inc a - ld [wd004], a - jr .asm_e2d57 -.asm_e2d79 - call CloseSRAM - ld a, $ff - ld [de], a - ld a, [wd004] - inc a - ld [wcb2c], a - ret -.asm_e2d87 - ld hl, PartySpecies -.asm_e2d8a - ld a, [hl] - cp $ff - jr z, .asm_e2dac - and a - jr z, .asm_e2dac - ld [de], a - inc de - ld a, [wcb2e] - ld [de], a - inc de - ld a, [wd003] - ld [de], a - inc a - ld [wd003], a - inc de - inc hl - ld a, [wd004] - inc a - ld [wd004], a - jr .asm_e2d8a -.asm_e2dac - ld a, $ff - ld [de], a - ld a, [wd004] - inc a - ld [wcb2c], a - ret -.asm_e2db7 - ld a, BANK(sBox) - call GetSRAMBank - ld hl, sBoxSpecies -.asm_e2dbf - ld a, [hl] - cp $ff - jr z, .asm_e2de1 - and a - jr z, .asm_e2de1 - ld [de], a - inc de - ld a, [wcb2e] - ld [de], a - inc de - ld a, [wd003] - ld [de], a - inc a - ld [wd003], a - inc de - inc hl - ld a, [wd004] - inc a - ld [wd004], a - jr .asm_e2dbf -.asm_e2de1 - call CloseSRAM - ld a, $ff - ld [de], a - ld a, [wd004] - inc a - ld [wcb2c], a - ret - -Functione2def: ; e2def (38:6def) - ld a, [wcb2b] - ld hl, wcb2a - add [hl] - ld e, a - ld d, $0 - ld hl, OverworldMap -rept 3 - add hl, de -endr - ld a, [hl] - ret - -Functione2e01: ; e2e01 (38:6e01) - ld a, [wcb2c] - and a - jr nz, .asm_e2e0b - call ClearSprites - ret -.asm_e2e0b - ld hl, Unknown_e2e2b - ld de, Sprites -.done1 - ld a, [hl] - cp $ff - ret z - ld a, [wcb2b] - and $7 - swap a - add [hl] - inc hl - ld [de], a - inc de - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - inc de - jr .done1 -; e2e2b (38:6e2b) - -Unknown_e2e2b: ; e2e2b - db $26, $50, $00, $00 - db $26, $58, $00, $00 - db $26, $60, $00, $00 - db $26, $68, $00, $00 - db $26, $70, $00, $00 - db $26, $78, $00, $00 - db $26, $80, $00, $00 - db $26, $88, $00, $00 - db $26, $90, $00, $00 - db $26, $97, $00, $00 - db $39, $50, $00, $40 - db $39, $58, $00, $40 - db $39, $60, $00, $40 - db $39, $68, $00, $40 - db $39, $70, $00, $40 - db $39, $78, $00, $40 - db $39, $80, $00, $40 - db $39, $88, $00, $40 - db $39, $90, $00, $40 - db $39, $97, $00, $40 - db $2e, $4e, $01, $00 - db $31, $4e, $01, $40 - db $2e, $99, $01, $20 - db $31, $99, $01, $60 - db $ff -; e2e8c - -Functione2e8c: ; e2e8c - ld hl, Unknown_e2eac - ld de, Sprites -.asm_e2e92 - ld a, [hl] - cp $ff - ret z - ld a, [wcb2b] - and $7 - swap a - add [hl] - inc hl - ld [de], a - inc de - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - inc de - jr .asm_e2e92 -; e2eac - -Unknown_e2eac: ; e2eac - db $27, $50, $06, $00 - db $2b, $58, $00, $40 - db $2b, $60, $00, $40 - db $2b, $68, $00, $40 - db $2b, $70, $00, $40 - db $2b, $78, $00, $40 - db $2b, $80, $00, $40 - db $2b, $88, $00, $40 - db $2b, $90, $00, $40 - db $27, $98, $07, $00 - db $ff -; e2ed5 - -Functione2ed5: ; e2ed5 -.asm_e2ed5 - push bc - push hl -.asm_e2ed7 - ld [hli], a - dec c - jr nz, .asm_e2ed7 - pop hl - ld bc, SCREEN_WIDTH - add hl, bc - pop bc - dec b - jr nz, .asm_e2ed5 - ret -; e2ee5 - -Functione2ee5: ; e2ee5 - ld hl, wcb2e - ld a, [wcb31] - cp [hl] - jr z, .asm_e2f00 - ld a, [wcb2e] - and a - jr z, .asm_e2ef8 - ld e, $15 - jr .asm_e2efa - -.asm_e2ef8 - ld e, $7 - -.asm_e2efa - ld a, [wcb2c] - cp e - jr nc, .asm_e2f02 - -.asm_e2f00 - and a - ret - -.asm_e2f02 - ld de, PCString_TheresNoRoom - call Functione2a6e - ld de, SFX_WRONG - call WaitPlaySFX - call WaitSFX - ld c, 50 - call DelayFrames - scf - ret -; e2f18 - -Functione2f18: ; e2f18 (38:6f18) - ld a, [wcb2e] - and a - jr nz, .Okay - ld a, [wcb2c] - cp $3 - jr c, .ItsYourLastPokemon - ld a, [wcb2b] - ld hl, wcb2a - add [hl] - ld [CurPartyMon], a - callba CheckCurPartyMonFainted - jr c, .AllOthersFainted - ld a, [wcb32] - and a - jr nz, .HasMail -.Okay - and a - ret -.HasMail - ld de, PCString_RemoveMail - jr .NotOkay -.AllOthersFainted - ld de, PCString_NoMoreUsablePKMN - jr .NotOkay -.ItsYourLastPokemon - ld de, PCString_ItsYourLastPKMN -.NotOkay - call Functione2a6e - ld de, SFX_WRONG - call WaitPlaySFX - call WaitSFX - ld c, 50 - call DelayFrames - scf - ret - -Functione2f5f: ; e2f5f (38:6f5f) - ld a, [CurPartySpecies] - cp EGG - jr z, .asm_e2f68 - and a - ret -.asm_e2f68 - ld de, PCString_NoReleasingEGGS - call Functione2a6e - ld de, SFX_WRONG - call WaitPlaySFX - call WaitSFX - ld c, 50 - call DelayFrames - scf - ret - -Functione2f7e: ; e2f7e (38:6f7e) - call LowVolume - call Functione2fd6 - ld a, $3 - ld [MonType], a - predef StatsScreenInit - call Functione33e8 - call MaxVolume - ret - -Functione2f95: ; e2f95 (38:6f95) - ld hl, hJoyPressed ; $ffa7 - ld a, [hl] - and A_BUTTON | B_BUTTON | D_RIGHT + D_LEFT - ld [wcf73], a - jr nz, .asm_e2fd0 - ld a, [hl] - and D_DOWN | D_UP - ld [wcf73], a - jr nz, .asm_e2faa - jr .asm_e2fd0 -.asm_e2faa - call Functione2998 - and a - jr z, .asm_e2fd1 - call Functione2def - ld [wd265], a - call Functione2b6d - ld a, [wd265] - ld [CurPartySpecies], a - ld [CurSpecies], a - ld hl, TempMonDVs - predef GetUnownLetter - call GetBaseData - call Functione2fd6 -.asm_e2fd0 - ret -.asm_e2fd1 - xor a - ld [wcf73], a - ret - -Functione2fd6: ; e2fd6 (38:6fd6) - ld a, [wcb2b] - ld hl, wcb2a - add [hl] - ld [CurPartyMon], a - ld a, [wcb2e] - and a - jr z, .asm_e3020 - cp $f - jr nz, .asm_e3048 - ld a, BANK(sBox) - call GetSRAMBank - ld hl, sBoxSpecies - call Functione3357 - ld hl, sBoxMonNicknames - call Functione3363 - ld hl, sBoxMonOT - call Functione3376 - ld hl, sBoxMons - ld bc, BOXMON_STRUCT_LENGTH - ld a, [CurPartyMon] - call AddNTimes - ld de, wd018 - ld bc, $30 - call CopyBytes - call CloseSRAM - callba Function5088b - ret -.asm_e3020 - ld hl, PartySpecies - call Functione3357 - ld hl, PartyMonNicknames - call Functione3363 - ld hl, PartyMonOT - call Functione3376 - ld hl, PartyMons ; wdcdf (aliases: PartyMon1, PartyMon1Species) - ld bc, $30 - ld a, [CurPartyMon] - call AddNTimes - ld de, wd018 - ld bc, $30 - call CopyBytes - ret -.asm_e3048 - ld b, a - call Functione3396 - ld a, b - call GetSRAMBank - push hl - inc hl - call Functione3357 - pop hl - push hl - ld bc, $372 - add hl, bc - call Functione3363 - pop hl - push hl - ld bc, $296 - add hl, bc - call Functione3376 - pop hl - ld bc, $16 - add hl, bc - ld bc, $20 - call Functione3389 - call CloseSRAM - callba Function5088b - ret - -Functione307c: ; e307c (38:707c) - ld a, [wcb2b] - ld hl, wcb2a - add [hl] - ld [CurPartyMon], a - ld hl, PartyMonNicknames - ld a, [CurPartyMon] - call GetNick - ld a, PC_DEPOSIT - ld [wPokemonWithdrawDepositParameter], a - predef SentGetPkmnIntoFromBox - jr c, .asm_boxisfull - xor a - ld [wPokemonWithdrawDepositParameter], a - callba Functione039 - ld a, [CurPartySpecies] - call PlayCry - hlcoord 0, 0 - lb bc, 15, 8 - call ClearBox - hlcoord 8, 14 - lb bc, 1, 3 - call ClearBox - hlcoord 0, 15 - lb bc, 1, 18 - call TextBox - call WaitBGMap - hlcoord 1, 16 - ld de, PCString_Stored - call PlaceString - ld l, c - ld h, b - ld de, StringBuffer1 - call PlaceString - ld a, "!" - ld [bc], a - ld c, 50 - call DelayFrames - and a - ret - -.asm_boxisfull - ld de, PCString_BoxFull - call Functione2a6e - ld de, SFX_WRONG - call WaitPlaySFX - call WaitSFX - ld c, 50 - call DelayFrames - scf - ret - -TryWithdrawPokemon: ; e30fa (38:70fa) - ld a, [wcb2b] - ld hl, wcb2a - add [hl] - ld [CurPartyMon], a - ld a, BANK(sBoxMonNicknames) - call GetSRAMBank - ld a, [CurPartyMon] - ld hl, sBoxMonNicknames - call GetNick - call CloseSRAM - xor a - ld [wPokemonWithdrawDepositParameter], a - predef SentGetPkmnIntoFromBox - jr c, .PartyFull - ld a, PC_DEPOSIT - ld [wPokemonWithdrawDepositParameter], a - callba Functione039 - ld a, [CurPartySpecies] - call PlayCry - hlcoord 0, 0 - lb bc, 15, 8 - call ClearBox - hlcoord 8, 14 - lb bc, 1, 3 - call ClearBox - hlcoord 0, 15 - lb bc, 1, 18 - call TextBox - call WaitBGMap - hlcoord 1, 16 - ld de, PCString_Got - call PlaceString - ld l, c - ld h, b - ld de, StringBuffer1 - call PlaceString - ld a, $e7 - ld [bc], a - ld c, 50 - call DelayFrames - and a - ret - -.PartyFull - ld de, PCString_PartyFull - call Functione2a6e - ld de, SFX_WRONG - call WaitPlaySFX - call WaitSFX - ld c, 50 - call DelayFrames - scf - ret - - -Functione3180: ; e3180 (38:7180) - hlcoord 0, 0 - lb bc, 15, 8 - call ClearBox - hlcoord 8, 14 - lb bc, 1, 3 - call ClearBox - hlcoord 0, 15 - lb bc, 1, 18 - call TextBox - - call WaitBGMap - ld a, [CurPartySpecies] - call GetCryIndex - jr c, .asm_e31ab - ld e, c - ld d, b - call PlayCryHeader -.asm_e31ab - - ld a, [CurPartySpecies] - ld [wd265], a - call GetPokemonName - hlcoord 1, 16 - ld de, PCString_ReleasedPKMN - call PlaceString - ld c, 80 - call DelayFrames - hlcoord 0, 15 - lb bc, 1, 18 - call TextBox - hlcoord 1, 16 - ld de, PCString_Bye - call PlaceString - ld l, c - ld h, b - inc hl - ld de, StringBuffer1 - call PlaceString - ld l, c - ld h, b - ld [hl], $e7 - ld c, 50 - call DelayFrames - ret -; e31e7 (38:71e7) - -Functione31e7: ; e31e7 - push hl - push de - push bc - push af - hlcoord 0, 15 - lb bc, 1, 18 - call TextBox - hlcoord 1, 16 - ld de, String_e3233 - call PlaceString - ld c, 20 - call DelayFrames - pop af - pop bc - pop de - pop hl - ld a, [wCurBox] - push af - ld bc, 0 - ld a, [wcb31] - and a - jr nz, .asm_e3215 - set 0, c - -.asm_e3215 - ld a, [wcb2e] - and a - jr nz, .asm_e321d - set 1, c - -.asm_e321d - ld hl, Jumptable_e3245 -rept 2 - add hl, bc -endr - ld a, [hli] - ld h, [hl] - ld l, a - ld de, Functione322a - push de - jp [hl] -; e322a - -Functione322a: ; e322a - pop af - ld e, a - callba Function14ad5 - ret -; e3233 - -String_e3233: - db "Saving… Leave ON!@" -; e3245 - -Jumptable_e3245: ; e3245 - dw Functione324d - dw Functione3267 - dw Functione327d - dw Functione3284 -; e324d - -Functione324d: ; e324d - ld hl, wcb31 - ld a, [wcb2e] - cp [hl] - jr z, .asm_e325d - call Functione32b0 - call Functione32fa - ret - -.asm_e325d - call Functione32b0 - call Functione328e - call Functione32fa - ret -; e3267 - -Functione3267: ; e3267 - call Functione3316 - ld a, $1 - ld [wc2cd], a - callba SaveGameData - xor a - ld [wc2cd], a - call Functione32fa - ret -; e327d - -Functione327d: ; e327d - call Functione32b0 - call Functione3346 - ret -; e3284 - -Functione3284: ; e3284 - call Functione3316 - call Functione328e - call Functione3346 - ret -; e328e - -Functione328e: ; e328e - ld a, [wcb2b] - ld hl, wcb2a - add [hl] - ld e, a - ld a, [wcb30] - ld hl, wcb2f - add [hl] - cp e - ret nc - ld hl, wcb2b - ld a, [hl] - and a - jr z, .asm_e32a8 - dec [hl] - ret - -.asm_e32a8 - ld hl, wcb2a - ld a, [hl] - and a - ret z - dec [hl] - ret -; e32b0 - -Functione32b0: ; e32b0 - ld a, [wcb31] - dec a - ld e, a - callba Function14ac2 - ld a, [wcb30] - ld hl, wcb2f - add [hl] - ld [CurPartyMon], a - ld a, $1 - call GetSRAMBank - ld hl, sBoxSpecies - call Functione3357 - ld hl, sBoxMonNicknames - call Functione3363 - ld hl, sBoxMonOT - call Functione3376 - ld hl, sBoxMons - ld bc, BOXMON_STRUCT_LENGTH - call Functione3389 - call CloseSRAM - callba Function5088b - ld a, PC_DEPOSIT - ld [wPokemonWithdrawDepositParameter], a - callba Functione039 - ret -; e32fa - -Functione32fa: ; e32fa - ld a, [wcb2e] - dec a - ld e, a - callba Function14ac2 - ld a, [wcb2b] - ld hl, wcb2a - add [hl] - ld [CurPartyMon], a - callba Function51322 - ret -; e3316 - -Functione3316: ; e3316 - ld a, [wcb30] - ld hl, wcb2f - add [hl] - ld [CurPartyMon], a - ld hl, PartySpecies - call Functione3357 - ld hl, PartyMonNicknames - call Functione3363 - ld hl, PartyMonOT - call Functione3376 - ld hl, PartyMon1Species - ld bc, PARTYMON_STRUCT_LENGTH - call Functione3389 - xor a - ld [wPokemonWithdrawDepositParameter], a - callba Functione039 - ret -; e3346 - -Functione3346: ; e3346 - ld a, [wcb2b] - ld hl, wcb2a - add [hl] - ld [CurPartyMon], a - callba Function5138b - ret -; e3357 - -Functione3357: ; e3357 (38:7357) - ld a, [CurPartyMon] - ld c, a - ld b, $0 - add hl, bc - ld a, [hl] - ld [CurPartySpecies], a - ret - -Functione3363: ; e3363 (38:7363) - ld bc, $b - ld a, [CurPartyMon] - call AddNTimes - ld de, wd002 - ld bc, $b - call CopyBytes - ret - -Functione3376: ; e3376 (38:7376) - ld bc, $b - ld a, [CurPartyMon] - call AddNTimes - ld de, wd00d - ld bc, $b - call CopyBytes - ret - -Functione3389: ; e3389 (38:7389) - ld a, [CurPartyMon] - call AddNTimes - ld de, wd018 - call CopyBytes - ret - -Functione3396: ; e3396 (38:7396) - dec b - ld c, b - ld b, 0 - ld hl, Unknown_e33a6 -rept 3 - add hl, bc -endr - ld a, [hli] - ld b, a - ld a, [hli] - ld h, [hl] - ld l, a - ret -; e33a6 (38:73a6) - -Unknown_e33a6: ; e33a6 - ; bank, address - dba sBox1 - dba sBox2 - dba sBox3 - dba sBox4 - dba sBox5 - dba sBox6 - dba sBox7 - dba sBox8 - dba sBox9 - dba sBox10 - dba sBox11 - dba sBox12 - dba sBox13 - dba sBox14 -; e33d0 - -Functione33d0: ; e33d0 (38:73d0) - ld b, a - call GetSGBLayout - ld a, $e4 - call DmgToCgbBGPals - ld a, $fc - call Functioncf8 - ret - -Functione33df: ; e33df (38:73df) - ld e, a - ld d, $0 -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - ret - -Functione33e8: ; e33e8 (38:73e8) - call DisableLCD - ld hl, VTiles2 tile $00 - ld bc, $310 - xor a - call ByteFill - call LoadStandardFont - call LoadFontsBattleExtra - ld hl, PCMailGFX - ld de, VTiles2 tile $5c - ld bc, $40 - call CopyBytes - ld hl, PCSelectLZ - ld de, VTiles0 tile $00 - call Decompress - ld a, 6 - call SkipMusic - call EnableLCD - ret -; e3419 (38:7419) - -PCSelectLZ: INCBIN "gfx/pc.2bpp.lz" -PCMailGFX: INCBIN "gfx/pc_mail.2bpp" -; e34dd - -PCString_ChooseaPKMN: db "Choose a <PK><MN>.@" -PCString_WhatsUp: db "What's up?@" -PCString_ReleasePKMN: db "Release <PK><MN>?@" -PCString_MoveToWhere: db "Move to where?@" -PCString_ItsYourLastPKMN: db "It's your last <PK><MN>!@" -PCString_TheresNoRoom: db "There's no room!@" -PCString_NoMoreUsablePKMN: db "No more usable <PK><MN>!@" -PCString_RemoveMail: db "Remove MAIL.@" -PCString_ReleasedPKMN: db "Released <PK><MN>.@" -PCString_Bye: db "Bye,@" -PCString_Stored: db "Stored @" -PCString_Got: db "Got @" -PCString_Non: db "Non.@" -PCString_BoxFull: db "The BOX is full.@" -PCString_PartyFull: db "The party's full!@" -PCString_NoReleasingEGGS: db "No releasing EGGS!@" -; e35aa - -Functione35aa: ; e35aa (38:75aa) - call LoadStandardMenuDataHeader - call Functione35e2 -.loop - xor a - ld [hBGMapMode], a - call Functione36cf - call Functione379c - ld hl, Functione35aa_menudataheader - call CopyMenuDataHeader - xor a - ld [wd0e4], a - hlcoord 0, 4 - lb bc, 8, 9 - call TextBox - call HandleScrollingMenu - ld a, [wcf73] - cp $2 - jr z, .done - call Functione37af - call Functione36f9 - jr .loop -.done - call WriteBackup - ret - -Functione35e2: ; e35e2 (38:75e2) - xor a - ld [hBGMapMode], a - hlcoord 0, 0 - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT - ld a, " " - call ByteFill - ret -; e35f1 (38:75f1) - -Functione35aa_menudataheader: ; 0xe35f1 - db $40 ; flags - db 05, 01 ; start coords - db 12, 09 ; end coords - dw .menudata2 - db 1 ; default option -; 0xe35f9 - -.menudata2: ; 0xe35f9 - db $22 ; flags - db 4, 0 - db 1 - dba .boxes - dba .boxnames - dba NULL - dba Functione3632 -; e3609 - -.boxes: ; e3609 - db NUM_BOXES -x = 1 -rept NUM_BOXES - db x -x = x + 1 -endr - db -1 -; e3619 - -.boxnames: ; e3619 - push de - ld a, [MenuSelection] - dec a - call GetBoxName - pop hl - call PlaceString - ret -; e3626 - -GetBoxName: ; e3626 (38:7626) - ld bc, BOX_NAME_LENGTH - ld hl, wBoxNames - call AddNTimes - ld d, h - ld e, l - ret -; e3632 (38:7632) - -Functione3632: ; e3632 - hlcoord 11, 7 - lb bc, 5, 7 - call TextBox - ld a, [MenuSelection] - cp -1 - ret z - hlcoord 12, 9 - ld de, String_e3663 - call PlaceString - call GetBoxCount - ld [wd265], a - hlcoord 13, 11 - ld de, wd265 - lb bc, 1, 2 - call PrintNum - ld de, String_e3668 - call PlaceString - ret -; e3663 - -String_e3663: ; e3663 - db "#MON@" -; e3668 - -String_e3668: ; e3668 - ; db "/20@" - db "/" - db "0" + MONS_PER_BOX / 10 ; "2" - db "0" + MONS_PER_BOX % 10 ; "0" - db "@" -; e366c - -GetBoxCount: ; e366c (38:766c) - ld a, [wCurBox] - ld c, a - ld a, [MenuSelection] - dec a - cp c - jr z, .activebox - ld c, a - ld b, 0 - ld hl, .boxbanks -rept 3 - add hl, bc -endr - ld a, [hli] - ld b, a - call GetSRAMBank - ld a, [hli] - ld h, [hl] - ld l, a - ld a, [hl] - call CloseSRAM - ld c, a - ld a, [wSavedAtLeastOnce] - and a - jr z, .newfile - ld a, c - ret - -.newfile - xor a - ret - -.activebox - ld a, BANK(sBoxCount) - ld b, a - call GetSRAMBank - ld hl, sBoxCount - ld a, [hl] - call CloseSRAM - ret -; e36a5 (38:76a5) - -.boxbanks: ; e36a5 - dba sBox1 - dba sBox2 - dba sBox3 - dba sBox4 - dba sBox5 - dba sBox6 - dba sBox7 - dba sBox8 - dba sBox9 - dba sBox10 - dba sBox11 - dba sBox12 - dba sBox13 - dba sBox14 -; e36cf - -Functione36cf: ; e36cf (38:76cf) - hlcoord 0, 0 - ld b, 2 - ld c, 18 - call TextBox - hlcoord 1, 2 - ld de, String_e36f1 - call PlaceString - ld a, [wCurBox] - and $f - call GetBoxName - hlcoord 11, 2 - call PlaceString - ret -; e36f1 (38:76f1) - -String_e36f1: ; e36f1 - db "CURRENT@" -; e36f9 - -Functione36f9: ; e36f9 (38:76f9) - ld hl, MenuDataHeader_0xe377b - call LoadMenuDataHeader - call InterpretMenu2 - call ExitMenu - ret c - ld a, [MenuSelection2] - cp $1 - jr z, .asm_e3734 - cp $2 - jr z, .asm_e3745 - cp $3 - jr z, .asm_e3717 - and a - ret - -.asm_e3717 - call GetBoxCount - and a - jr z, .asm_e372f - ld e, l - ld d, h - ld a, [MenuSelection] - dec a - ld c, a - callba Function844bc - call Functione35e2 - and a - ret - -.asm_e372f - call Functione37be - and a - ret - -.asm_e3734 - ld a, [MenuSelection] - dec a - ld e, a - ld a, [wCurBox] - cp e - ret z - callba Function14a83 - ret - -.asm_e3745 - ld b, $4 - ld de, wd002 - callba NamingScreen - call ClearTileMap - call LoadStandardFont - call LoadFontsBattleExtra - ld a, [MenuSelection] - dec a - call GetBoxName - ld e, l - ld d, h - ld hl, wd002 - ld c, $8 - call InitString - ld a, [MenuSelection] - dec a - call GetBoxName - ld de, wd002 - call CopyName2 - ret -; e3778 (38:7778) - - hlcoord 11, 7 ; XXX - -MenuDataHeader_0xe377b: ; 0xe377b - db $40 ; flags - db 04, 11 ; start coords - db 13, 19 ; end coords - dw MenuData2_0xe3783 - db 1 ; default option -; 0xe3783 - -MenuData2_0xe3783: ; 0xe3783 - db $80 ; flags - db 4 ; items - db "SWITCH@" - db "NAME@" - db "PRINT@" - db "QUIT@" -; 0xe379c - -Functione379c: ; e379c (38:779c) - ld de, String_e37a1 - jr Functione37e3 -; e37a1 (38:77a1) - -String_e37a1: ; e37a1 - db "Choose a BOX.@" -; e37af - -Functione37af: ; e37af (38:77af) - ld de, String_e37b4 - jr Functione37e3 -; e37b4 (38:77b4) - -String_e37b4: ; e37b4 - db "What's up?@" -; e37be - -Functione37be: ; e37be (38:77be) - ld de, String_e37d3 - call Functione37e3 - ld de, SFX_WRONG - call WaitPlaySFX - call WaitSFX - ld c, 50 - call DelayFrames - ret -; e37d3 (38:77d3) - -String_e37d3: ; e37d3 - db "There's no #MON.@" -; e37e3 - -Functione37e3: ; e37e3 (38:77e3) - push de - hlcoord 0, 14 - lb bc, 2, 18 - call TextBox - pop de - hlcoord 1, 16 - call PlaceString - ld a, $1 - ld [hBGMapMode], a - ret - +INCLUDE "engine/card_flip.asm" +INCLUDE "engine/dummy_game.asm" +INCLUDE "engine/billspc.asm" SECTION "bank39", ROMX, BANK[$39] @@ -58697,7 +47606,7 @@ _OptionsMenu: ; e41d0 ld a, [hl] push af ld [hl], $1 - call WhiteBGMap + call ClearBGPalettes hlcoord 0, 0 ld b, $10 ld c, $12 @@ -59279,7 +48188,7 @@ Functione455c: ; e455c Functione4579: ; e4579 ld de, MUSIC_NONE call PlayMusic - call WhiteBGMap + call ClearBGPalettes call ClearTileMap ld a, VBGMap0 / $100 ld [hBGMapAddress + 1], a @@ -59669,7 +48578,7 @@ CrystalIntro: ; e48ac call PlayMusic .done - call WhiteBGMap + call ClearBGPalettes call ClearSprites call ClearTileMap xor a @@ -60690,7 +49599,7 @@ IntroScene25: ; e50ad (39:50ad) IntroScene26: ; e50bb (39:50bb) ; Load the final scene. - call WhiteBGMap + call ClearBGPalettes call ClearSprites call ClearTileMap xor a @@ -60779,7 +49688,7 @@ IntroScene28: ; e5152 (39:5152) ret .clear - call WhiteBGMap + call ClearBGPalettes ret .done @@ -62369,7 +51278,7 @@ Functionfb877: ; fb877 xor a ld [hMapAnims], a call LowVolume - call WhiteBGMap + call ClearBGPalettes call ClearTileMap call UpdateSprites call ClearSprites @@ -66036,7 +54945,7 @@ Function10510b: ; 10510b (41:510b) jp CloseSRAM Function105153: ; 105153 (41:5153) - call WhiteBGMap + call ClearBGPalettes call DisableLCD ld hl, MysteryGiftGFX ld de, VTiles2 tile $00 @@ -66335,7 +55244,7 @@ Function10578c: ; 10578c (41:578c) ret Function1057d7: ; 1057d7 (41:57d7) - call WhiteBGMap + call ClearBGPalettes call DisableLCD ld hl, MysteryGiftJP_GFX ld de, VTiles2 tile $00 @@ -67101,7 +56010,7 @@ String_1dc34c: ; 1dc381 Function1dc381: ; 1dc381 - call WhiteBGMap + call ClearBGPalettes call ClearTileMap call ClearSprites xor a @@ -67201,7 +56110,7 @@ Function1dc381: ; 1dc381 ; 1dc47b Function1dc47b: ; 1dc47b - call WhiteBGMap + call ClearBGPalettes call ClearTileMap call ClearSprites xor a |