From ebf3bfb6b289bf684941a86cafe1286d8ce212fe Mon Sep 17 00:00:00 2001 From: Remy Oukaour Date: Fri, 15 Dec 2017 12:53:33 -0500 Subject: Move some misc/ files into meaningful directories --- constants/mobile_constants.asm | 4 +- constants/pokemon_constants.asm | 2 +- engine/dma_transfer.asm | 625 +++ engine/gbc_only.asm | 149 + engine/init_gender.asm | 2 +- engine/print_party.asm | 362 ++ engine/unused_title.asm | 556 +++ gfx/emotes.asm | 12 + gfx/mobile/hp.png | Bin 84 -> 0 bytes gfx/mobile/lv.png | Bin 79 -> 0 bytes gfx/printer/hp.png | Bin 0 -> 84 bytes gfx/printer/lv.png | Bin 0 -> 79 bytes main.asm | 40 +- misc/battle_tower_47.asm | 2 +- misc/fixed_words.asm | 4294 ------------------- misc/gbc_only.asm | 149 - misc/gfx_41.asm | 638 --- misc/mobile_12.asm | 1845 -------- misc/mobile_12_2.asm | 936 ----- misc/mobile_22.asm | 4448 -------------------- misc/mobile_22_2.asm | 1162 ----- misc/mobile_40.asm | 8156 ------------------------------------ misc/mobile_41.asm | 1115 ----- misc/mobile_42.asm | 2009 --------- misc/mobile_45.asm | 7690 ---------------------------------- misc/mobile_45_sprite_engine.asm | 922 ---- misc/mobile_46.asm | 7986 ----------------------------------- misc/mobile_5b.asm | 833 ---- misc/mobile_5c.asm | 944 ----- misc/mobile_5f.asm | 5310 ----------------------- misc/mobile_menu.asm | 879 ---- misc/printer_77.asm | 356 -- misc/unused_title.asm | 556 --- mobile/fixed_words.asm | 4294 +++++++++++++++++++ mobile/mobile_12.asm | 1845 ++++++++ mobile/mobile_12_2.asm | 936 +++++ mobile/mobile_22.asm | 4448 ++++++++++++++++++++ mobile/mobile_22_2.asm | 1162 +++++ mobile/mobile_40.asm | 8156 ++++++++++++++++++++++++++++++++++++ mobile/mobile_41.asm | 1115 +++++ mobile/mobile_42.asm | 2009 +++++++++ mobile/mobile_45.asm | 7690 ++++++++++++++++++++++++++++++++++ mobile/mobile_45_sprite_engine.asm | 922 ++++ mobile/mobile_46.asm | 7986 +++++++++++++++++++++++++++++++++++ mobile/mobile_5b.asm | 833 ++++ mobile/mobile_5c.asm | 944 +++++ mobile/mobile_5f.asm | 5310 +++++++++++++++++++++++ mobile/mobile_menu.asm | 879 ++++ 48 files changed, 50255 insertions(+), 50256 deletions(-) create mode 100755 engine/dma_transfer.asm create mode 100644 engine/gbc_only.asm create mode 100755 engine/print_party.asm create mode 100644 engine/unused_title.asm create mode 100644 gfx/emotes.asm delete mode 100644 gfx/mobile/hp.png delete mode 100644 gfx/mobile/lv.png create mode 100644 gfx/printer/hp.png create mode 100644 gfx/printer/lv.png delete mode 100755 misc/fixed_words.asm delete mode 100644 misc/gbc_only.asm delete mode 100755 misc/gfx_41.asm delete mode 100755 misc/mobile_12.asm delete mode 100755 misc/mobile_12_2.asm delete mode 100644 misc/mobile_22.asm delete mode 100644 misc/mobile_22_2.asm delete mode 100644 misc/mobile_40.asm delete mode 100755 misc/mobile_41.asm delete mode 100644 misc/mobile_42.asm delete mode 100644 misc/mobile_45.asm delete mode 100755 misc/mobile_45_sprite_engine.asm delete mode 100755 misc/mobile_46.asm delete mode 100755 misc/mobile_5b.asm delete mode 100755 misc/mobile_5c.asm delete mode 100644 misc/mobile_5f.asm delete mode 100755 misc/mobile_menu.asm delete mode 100755 misc/printer_77.asm delete mode 100644 misc/unused_title.asm create mode 100755 mobile/fixed_words.asm create mode 100755 mobile/mobile_12.asm create mode 100755 mobile/mobile_12_2.asm create mode 100644 mobile/mobile_22.asm create mode 100644 mobile/mobile_22_2.asm create mode 100644 mobile/mobile_40.asm create mode 100755 mobile/mobile_41.asm create mode 100644 mobile/mobile_42.asm create mode 100644 mobile/mobile_45.asm create mode 100755 mobile/mobile_45_sprite_engine.asm create mode 100755 mobile/mobile_46.asm create mode 100755 mobile/mobile_5b.asm create mode 100755 mobile/mobile_5c.asm create mode 100644 mobile/mobile_5f.asm create mode 100755 mobile/mobile_menu.asm diff --git a/constants/mobile_constants.asm b/constants/mobile_constants.asm index 0ac28c94b..b5894b8e9 100644 --- a/constants/mobile_constants.asm +++ b/constants/mobile_constants.asm @@ -1,4 +1,4 @@ -; MobileEZChatCategoryPointers indexes (see misc/fixed_words.asm) +; MobileEZChatCategoryPointers indexes (see mobile/fixed_words.asm) const_def const EZCHAT_POKEMON const EZCHAT_TYPES @@ -16,6 +16,6 @@ const EZCHAT_FAREWELLS const EZCHAT_THISANDTHAT -NUM_KANA EQU 45 ; length of SortedPokemon table (see misc/fixed_words.asm) +NUM_KANA EQU 45 ; length of SortedPokemon table (see mobile/fixed_words.asm) MOBILE_LOGIN_PASSWORD_LENGTH EQU 17 diff --git a/constants/pokemon_constants.asm b/constants/pokemon_constants.asm index 7af42d3d6..13cb577bb 100644 --- a/constants/pokemon_constants.asm +++ b/constants/pokemon_constants.asm @@ -16,7 +16,7 @@ ; - NewPokedexOrder (see data/pokemon/dex_order_new.asm) ; - MonMenuIcons (see data/pokemon/menu_icons.asm) ; - Pokered_MonIndices (see data/time_capsule/mon_order.asm) -; - SortedPokemon (see misc/fixed_words.asm) +; - SortedPokemon (see mobile/fixed_words.asm) const_value set 1 const BULBASAUR ; 01 const IVYSAUR ; 02 diff --git a/engine/dma_transfer.asm b/engine/dma_transfer.asm new file mode 100755 index 000000000..a0dad0dde --- /dev/null +++ b/engine/dma_transfer.asm @@ -0,0 +1,625 @@ +HDMATransferAttrMapAndTileMapToWRAMBank3:: ; 104000 + ld hl, .Function + jp CallInSafeGFXMode + +.Function: + decoord 0, 0, AttrMap + ld hl, wScratchAttrMap + call CutAndPasteAttrMap + decoord 0, 0 + ld hl, wScratchTileMap + call CutAndPasteTilemap + ld a, $0 + ld [rVBK], a + ld hl, wScratchTileMap + call HDMATransferToWRAMBank3 + ld a, $1 + ld [rVBK], a + ld hl, wScratchAttrMap + call HDMATransferToWRAMBank3 + ret +; 10402d + +HDMATransferTileMapToWRAMBank3:: ; 10402d + ld hl, .Function + jp CallInSafeGFXMode + +.Function: + decoord 0, 0 + ld hl, wScratchTileMap + call CutAndPasteTilemap + ld a, $0 + ld [rVBK], a + ld hl, wScratchTileMap + call HDMATransferToWRAMBank3 + ret +; 104047 + +HDMATransferAttrMapToWRAMBank3: ; 104047 + ld hl, .Function + jp CallInSafeGFXMode + +.Function: + decoord 0, 0, AttrMap + ld hl, wScratchAttrMap + call CutAndPasteAttrMap + ld a, $1 + ld [rVBK], a + ld hl, wScratchAttrMap + call HDMATransferToWRAMBank3 + ret +; 104061 + +ReloadMapPart:: ; 104061 + ld hl, .Function + jp CallInSafeGFXMode + +.Function: + decoord 0, 0, AttrMap + ld hl, wScratchAttrMap + call CutAndPasteAttrMap + decoord 0, 0 + ld hl, wScratchTileMap + call CutAndPasteTilemap + call DelayFrame + + di + ld a, [rVBK] + push af + ld a, $1 + ld [rVBK], a + ld hl, wScratchAttrMap + call HDMATransfer_Wait127Scanlines_toBGMap + ld a, $0 + ld [rVBK], a + ld hl, wScratchTileMap + call HDMATransfer_Wait127Scanlines_toBGMap + pop af + ld [rVBK], a + ei + + ret + +Mobile_ReloadMapPart: ; 104099 + ld hl, ReloadMapPart ; useless + ld hl, .Function + jp CallInSafeGFXMode + +.Function: + decoord 0, 0, AttrMap + ld hl, wScratchAttrMap + call CutAndPasteAttrMap + decoord 0, 0 + ld hl, wScratchTileMap + call CutAndPasteTilemap + call DelayFrame + + di + ld a, [rVBK] + push af + ld a, $1 + ld [rVBK], a + ld hl, wScratchAttrMap + call HDMATransfer_NoDI + ld a, $0 + ld [rVBK], a + ld hl, wScratchTileMap + call HDMATransfer_NoDI + pop af + ld [rVBK], a + ei + + ret +; 1040d4 + +; XXX + ld hl, .unreferenced_1040da + jp CallInSafeGFXMode + +.unreferenced_1040da + ld a, $1 + ld [rVBK], a + ld a, $3 + ld [rSVBK], a + ld de, w3_d800 + ld a, [hBGMapAddress + 1] + ld [rHDMA1], a + ld a, [hBGMapAddress] + ld [rHDMA2], a + ld a, d + ld [rHDMA3], a + ld a, e + ld [rHDMA4], a + ld a, $23 + ld [hDMATransfer], a + call WaitDMATransfer + ret +; 1040fb + +; XXX + ld hl, .unreferenced_104101 + jp CallInSafeGFXMode + +.unreferenced_104101 + ld a, $1 + ld [rVBK], a + ld a, $3 + ld [rSVBK], a + ld hl, w3_d800 + call HDMATransferToWRAMBank3 + ret +; 104110 + +OpenAndCloseMenu_HDMATransferTileMapAndAttrMap:: ; 104110 +; OpenText + ld hl, .Function + jp CallInSafeGFXMode + +.Function: + ; Transfer AttrMap and Tilemap to BGMap + ; Fill vBGAttrs with $00 + ; Fill vBGTiles with " " + decoord 0, 0, AttrMap + ld hl, wScratchAttrMap + call CutAndPasteAttrMap + decoord 0, 0 + ld hl, wScratchTileMap + call CutAndPasteTilemap + call DelayFrame + + di + ld a, [rVBK] + push af + ld a, $1 + ld [rVBK], a + ld hl, wScratchAttrMap + call HDMATransfer_Wait123Scanlines_toBGMap + ld a, $0 + ld [rVBK], a + ld hl, wScratchTileMap + call HDMATransfer_Wait123Scanlines_toBGMap + pop af + ld [rVBK], a + ei + ret +; 104148 + +Mobile_OpenAndCloseMenu_HDMATransferTileMapAndAttrMap: ; 104148 (41:4148) + ld hl, .Function + jp CallInSafeGFXMode + +.Function: + ; Transfer AttrMap and Tilemap to BGMap + ; Fill vBGAttrs with $00 + ; Fill vBGTiles with $ff + decoord 0, 0, AttrMap + ld hl, wScratchAttrMap + call CutAndPasteAttrMap + ld c, $ff + decoord 0, 0 + ld hl, wScratchTileMap + call CutAndPasteMap + + ld a, $1 + ld [rVBK], a + ld hl, wScratchAttrMap + call HDMATransfer_Wait127Scanlines_toBGMap + ld a, $0 + ld [rVBK], a + ld hl, wScratchTileMap + call HDMATransfer_Wait127Scanlines_toBGMap + ret +; 104177 + +CallInSafeGFXMode: ; 104177 + ld a, [hBGMapMode] + push af + ld a, [hMapAnims] + push af + xor a + ld [hBGMapMode], a + ld [hMapAnims], a + ld a, [rSVBK] + push af + ld a, $6 + ld [rSVBK], a + ld a, [rVBK] + push af + + call ._hl_ + + pop af + ld [rVBK], a + pop af + ld [rSVBK], a + pop af + ld [hMapAnims], a + pop af + ld [hBGMapMode], a + ret +; 10419c + +._hl_ ; 10419c + jp hl +; 10419d + + +HDMATransferToWRAMBank3: ; 10419d (41:419d) + call _LoadHDMAParameters + ld a, $23 + ld [hDMATransfer], a + +WaitDMATransfer: ; 104a14 +.loop + call DelayFrame + ld a, [hDMATransfer] + and a + jr nz, .loop + ret + +HDMATransfer_Wait127Scanlines_toBGMap: ; 1041ad (41:41ad) +; HDMA transfer from hl to [hBGMapAddress] +; hBGMapAddress -> de +; 2 * SCREEN_HEIGHT -> c + ld a, [hBGMapAddress + 1] + ld d, a + ld a, [hBGMapAddress] + ld e, a + ld c, 2 * SCREEN_HEIGHT + jr HDMATransfer_Wait127Scanlines + +HDMATransfer_Wait123Scanlines_toBGMap: ; 1041b7 (41:41b7) +; HDMA transfer from hl to [hBGMapAddress] +; hBGMapAddress -> de +; 2 * SCREEN_HEIGHT -> c +; $7b --> b + ld a, [hBGMapAddress + 1] + ld d, a + ld a, [hBGMapAddress] + ld e, a + ld c, 2 * SCREEN_HEIGHT + jr HDMATransfer_Wait123Scanlines +; 1041c1 (41:41c1) + +HDMATransfer_NoDI: ; 1041c1 +; HDMA transfer from hl to [hBGMapAddress] +; [hBGMapAddress] --> de +; 2 * SCREEN_HEIGHT --> c + ld a, [hBGMapAddress + 1] + ld d, a + ld a, [hBGMapAddress] + ld e, a + ld c, 2 * SCREEN_HEIGHT + + ; [rHDMA1, rHDMA2] = hl & $fff0 + ld a, h + ld [rHDMA1], a + ld a, l + and $f0 + ld [rHDMA2], a + ; [rHDMA3, rHDMA4] = de & $1ff0 + ld a, d + and $1f + ld [rHDMA3], a + ld a, e + and $f0 + ld [rHDMA4], a + ; b = c | %10000000 + ld a, c + dec c + or $80 + ld b, a + ; d = $7f - c + 1 + ld a, $7f + sub c + ld d, a + ; while [rLY] >= d: pass +.loop1 + ld a, [rLY] + cp d + jr nc, .loop1 + ; while not [rSTAT] & 3: pass +.loop2 + ld a, [rSTAT] + and $3 + jr z, .loop2 + ; load the 5th byte of HDMA + ld a, b + ld [rHDMA5], a + ; wait until rLY advances (c + 1) times + ld a, [rLY] + inc c + ld hl, rLY +.loop3 + cp [hl] + jr z, .loop3 + ld a, [hl] + dec c + jr nz, .loop3 + ld hl, rHDMA5 + res 7, [hl] + ret +; 104205 + +HDMATransfer_Wait123Scanlines: + ld b, $7b + jr _continue_HDMATransfer + + +HDMATransfer_Wait127Scanlines: + ld b, $7f +_continue_HDMATransfer: +; a lot of waiting around for hardware registers + ; [rHDMA1, rHDMA2] = hl & $fff0 + ld a, h + ld [rHDMA1], a + ld a, l + and $f0 ; high nybble + ld [rHDMA2], a + ; [rHDMA3, rHDMA4] = de & $1ff0 + ld a, d + and $1f ; lower 5 bits + ld [rHDMA3], a + ld a, e + and $f0 ; high nybble + ld [rHDMA4], a + ; e = c | %10000000 + ld a, c + dec c + or $80 + ld e, a + ; d = b - c + 1 + ld a, b + sub c + ld d, a + ; while [rLY] >= d: pass +.ly_loop + ld a, [rLY] + cp d + jr nc, .ly_loop + + di + ; while [rSTAT] & 3: pass +.rstat_loop_1 + ld a, [rSTAT] + and $3 + jr nz, .rstat_loop_1 + ; while not [rSTAT] & 3: pass +.rstat_loop_2 + ld a, [rSTAT] + and $3 + jr z, .rstat_loop_2 + ; load the 5th byte of HDMA + ld a, e + ld [rHDMA5], a + ; wait until rLY advances (c + 1) times + ld a, [rLY] + inc c + ld hl, rLY +.final_ly_loop + cp [hl] + jr z, .final_ly_loop + ld a, [hl] + dec c + jr nz, .final_ly_loop + ld hl, rHDMA5 + res 7, [hl] + ei + + ret +; 10424e + + +_LoadHDMAParameters: ; 10424e (41:424e) + ld a, h + ld [rHDMA1], a + ld a, l + ld [rHDMA2], a + ld a, [hBGMapAddress + 1] + and $1f + ld [rHDMA3], a + ld a, [hBGMapAddress] + ld [rHDMA4], a + ret + +CutAndPasteTilemap: ; 10425f (41:425f) + ld c, " " + jr CutAndPasteMap + +CutAndPasteAttrMap: ; 104263 (41:4263) + ld c, $0 + +CutAndPasteMap: ; 104265 (41:4265) +; back up the value of c to hMapObjectIndexBuffer + ld a, [hMapObjectIndexBuffer] + push af + ld a, c + ld [hMapObjectIndexBuffer], a + +; for each row on the screen + ld c, SCREEN_HEIGHT +.loop1 +; for each tile in the row + ld b, SCREEN_WIDTH +.loop2 +; copy from de to hl + ld a, [de] + inc de + ld [hli], a + dec b + jr nz, .loop2 + +; load the original value of c into hl 12 times + ld a, [hMapObjectIndexBuffer] + ld b, BG_MAP_WIDTH - SCREEN_WIDTH +.loop3 + ld [hli], a + dec b + jr nz, .loop3 + + dec c + jr nz, .loop1 + +; restore the original value of hMapObjectIndexBuffer + pop af + ld [hMapObjectIndexBuffer], a + ret + + +_Get2bpp:: ; 104284 + ; 2bpp when [rLCDC] & $80 + ; switch to WRAM bank 6 + ld a, [rSVBK] + push af + ld a, $6 + ld [rSVBK], a + + push bc + push hl + + ; Copy c tiles of the 2bpp from b:de to wScratchTileMap + ld a, b ; bank + ld l, c ; number of tiles + ld h, $0 + ; multiply by 16 (16 bytes of a 2bpp = 8 x 8 tile) + add hl, hl + add hl, hl + add hl, hl + add hl, hl + ld b, h + ld c, l + ld h, d ; address + ld l, e + ld de, wScratchTileMap + call FarCopyBytes + + pop hl + pop bc + + push bc + call DelayFrame + pop bc + + ld d, h + ld e, l + ld hl, wScratchTileMap + call HDMATransfer_Wait127Scanlines + + ; restore the previous bank + pop af + ld [rSVBK], a + ret +; 1042b2 + +_Get1bpp:: ; 1042b2 + ; 1bpp when [rLCDC] & $80 +.loop + ld a, c + cp $10 + jp c, .bankswitch + jp z, .bankswitch + push bc + push hl + push de + ld c, $10 + call .bankswitch + pop de + ld hl, $80 + add hl, de + ld d, h + ld e, l + pop hl + lb bc, 1, 0 + add hl, bc + pop bc + ld a, c + sub $10 + ld c, a + jr .loop +; 1042d6 + +.bankswitch ; 1042d6 + ld a, [rSVBK] + push af + ld a, $6 + ld [rSVBK], a + + push bc + push hl + + ld a, b + ld l, c + ld h, $0 + add hl, hl ; multiply by 8 + add hl, hl ; multiply by 8 + add hl, hl ; multiply by 8 + ld c, l + ld b, h + ld h, d + ld l, e + ld de, wScratchTileMap + call FarCopyBytesDouble_DoubleBankSwitch + + pop hl + pop bc + + push bc + call DelayFrame + pop bc + + ld d, h + ld e, l + ld hl, wScratchTileMap + call HDMATransfer_Wait127Scanlines + + pop af + ld [rSVBK], a + ret +; 104303 + +HDMATransfer_OnlyTopFourRows: ; 104303 + ld hl, .Function + jp CallInSafeGFXMode +; 104309 + +.Function: + ld hl, wScratchTileMap + decoord 0, 0 + call .Copy + ld hl, wScratchTileMap + $80 + decoord 0, 0, AttrMap + call .Copy + ld a, $1 + ld [rVBK], a + ld c, $8 + ld hl, wScratchTileMap + $80 + debgcoord 0, 0, VBGMap1 + call HDMATransfer_Wait127Scanlines + ld a, $0 + ld [rVBK], a + ld c, $8 + ld hl, wScratchTileMap + debgcoord 0, 0, VBGMap1 + call HDMATransfer_Wait127Scanlines + ret + +.Copy: ; 10433a (41:433a) + ld b, 4 +.outer_loop + ld c, SCREEN_WIDTH +.inner_loop + ld a, [de] + ld [hli], a + inc de + dec c + jr nz, .inner_loop + ld a, l + add BG_MAP_WIDTH - SCREEN_WIDTH + ld l, a + ld a, h + adc $0 + ld h, a + dec b + jr nz, .outer_loop + ret +; 104350 diff --git a/engine/gbc_only.asm b/engine/gbc_only.asm new file mode 100644 index 000000000..a77a44d72 --- /dev/null +++ b/engine/gbc_only.asm @@ -0,0 +1,149 @@ +GBCOnlyScreen: ; 4ea82 + + ld a, [hCGB] + and a + ret nz + + ld de, MUSIC_NONE + call PlayMusic + + call ClearTileMap + + ld hl, GBCOnlyGFX + ld de, $d000 + ld a, [rSVBK] + push af + ld a, 0 + ld [rSVBK], a + call Decompress + pop af + ld [rSVBK], a + + ld de, $d000 + ld hl, VTiles2 + lb bc, BANK(GBCOnlyGFX), $54 + call Get2bpp + + ld de, Font + ld hl, VTiles1 + lb bc, BANK(Font), $80 + call Get1bpp + + call DrawGBCOnlyScreen + + call WaitBGMap + +; better luck next time +.loop + call DelayFrame + jr .loop +; 4eac5 + + +DrawGBCOnlyScreen: ; 4eac5 + + call DrawGBCOnlyBorder + + ; Pokemon + hlcoord 3, 2 + ld b, 14 + ld c, 4 + ld a, $8 + call DrawGBCOnlyGraphic + + ; Crystal + hlcoord 5, 6 + ld b, 10 + ld c, 2 + ld a, $40 + call DrawGBCOnlyGraphic + + ld de, GBCOnlyString + hlcoord 1, 10 + call PlaceString + + ret +; 4eaea + + +DrawGBCOnlyBorder: ; 4eaea + + hlcoord 0, 0 + ld [hl], 0 ; top-left + + inc hl + ld a, 1 ; top + call .FillRow + + ld [hl], 2 ; top-right + + hlcoord 0, 1 + ld a, 3 ; left + call .FillColumn + + hlcoord 19, 1 + ld a, 4 ; right + call .FillColumn + + hlcoord 0, 17 + ld [hl], 5 ; bottom-left + + inc hl + ld a, 6 ; bottom + call .FillRow + + ld [hl], 7 ; bottom-right + ret +; 4eb15 + +.FillRow: ; 4eb15 + ld c, SCREEN_WIDTH - 2 +.next_column + ld [hli], a + dec c + jr nz, .next_column + ret +; 4eb1c + +.FillColumn: ; 4eb1c + ld de, SCREEN_WIDTH + ld c, SCREEN_HEIGHT - 2 +.next_row + ld [hl], a + add hl, de + dec c + jr nz, .next_row + ret +; 4eb27 + + +DrawGBCOnlyGraphic: ; 4eb27 + ld de, SCREEN_WIDTH +.y + push bc + push hl +.x + ld [hli], a + inc a + dec b + jr nz, .x + pop hl + add hl, de + pop bc + dec c + jr nz, .y + ret +; 4eb38 + + +GBCOnlyString: ; 4eb38 + db "This Game Pak is" + next "designed only for" + next "use on the" + next "Game Boy Color.@" +; 4eb76 + + +GBCOnlyGFX: ; 4eb76 +INCBIN "gfx/sgb/gbc_only.2bpp.lz" +; 4f0bc diff --git a/engine/init_gender.asm b/engine/init_gender.asm index 3ae856029..dfb3fbdd4 100755 --- a/engine/init_gender.asm +++ b/engine/init_gender.asm @@ -20,7 +20,7 @@ InitCrystalData: ; 48000 ret ; 4802f -INCLUDE "misc/mobile_12.asm" +INCLUDE "mobile/mobile_12.asm" InitGender: ; 48dcb (12:4dcb) call InitGenderScreen diff --git a/engine/print_party.asm b/engine/print_party.asm new file mode 100755 index 000000000..9bf98767b --- /dev/null +++ b/engine/print_party.asm @@ -0,0 +1,362 @@ +PrintPage1: ; 1dc1b0 + hlcoord 0, 0 + decoord 0, 0, wPrinterTileMapBuffer + ld bc, 17 * SCREEN_WIDTH + call CopyBytes + hlcoord 17, 1, wPrinterTileMapBuffer + ld a, $62 + ld [hli], a + inc a + ld [hl], a + hlcoord 17, 2, wPrinterTileMapBuffer + ld a, $64 + ld [hli], a + inc a + ld [hl], a + hlcoord 1, 9, wPrinterTileMapBuffer + ld a, " " + ld [hli], a + ld [hl], a + hlcoord 1, 10, wPrinterTileMapBuffer + ld a, $61 + ld [hli], a + ld [hl], a + hlcoord 2, 11, wPrinterTileMapBuffer + lb bc, 5, 18 + call ClearBox + ld a, [wd265] + dec a + call CheckCaughtMon + push af + ld a, [wd265] + ld b, a + ld c, 1 ; get page 1 + callba GetDexEntryPagePointer + pop af + ld a, b + hlcoord 1, 11, wPrinterTileMapBuffer + call nz, FarString + hlcoord 19, 0, wPrinterTileMapBuffer + ld [hl], $35 + ld de, SCREEN_WIDTH + add hl, de + ld b, $f +.column_loop + ld [hl], $37 + add hl, de + dec b + jr nz, .column_loop + ld [hl], $3a + ret +; 1dc213 + +PrintPage2: ; 1dc213 + hlcoord 0, 0, wPrinterTileMapBuffer + ld bc, 8 * SCREEN_WIDTH + ld a, " " + call ByteFill + hlcoord 0, 0, wPrinterTileMapBuffer + ld a, $36 + ld b, 6 + call .FillColumn + hlcoord 19, 0, wPrinterTileMapBuffer + ld a, $37 + ld b, 6 + call .FillColumn + hlcoord 0, 6, wPrinterTileMapBuffer + ld [hl], $38 + inc hl + ld a, $39 + ld bc, SCREEN_HEIGHT + call ByteFill + ld [hl], $3a + hlcoord 0, 7, wPrinterTileMapBuffer + ld bc, SCREEN_WIDTH + ld a, $32 + call ByteFill + ld a, [wd265] + dec a + call CheckCaughtMon + push af + ld a, [wd265] + ld b, a + ld c, 2 ; get page 2 + callba GetDexEntryPagePointer + pop af + hlcoord 1, 1, wPrinterTileMapBuffer + ld a, b + call nz, FarString + ret +; 1dc26a + +.FillColumn: ; 1dc26a + push de + ld de, SCREEN_WIDTH +.column_loop + ld [hl], a + add hl, de + dec b + jr nz, .column_loop + pop de + ret +; 1dc275 + +GBPrinterStrings: +GBPrinterString_Null: db "@" +GBPrinterString_CheckingLink: next " CHECKING LINK...@" +GBPrinterString_Transmitting: next " TRANSMITTING...@" +GBPrinterString_Printing: next " PRINTING...@" +GBPrinterString_PrinterError1: + db " Printer Error 1" + next "" + next "Check the Game Boy" + next "Printer Manual." + db "@" +GBPrinterString_PrinterError2: + db " Printer Error 2" + next "" + next "Check the Game Boy" + next "Printer Manual." + db "@" +GBPrinterString_PrinterError3: + db " Printer Error 3" + next "" + next "Check the Game Boy" + next "Printer Manual." + db "@" +GBPrinterString_PrinterError4: + db " Printer Error 4" + next "" + next "Check the Game Boy" + next "Printer Manual." + db "@" +; 1dc381 + +PrintPartyMonPage1: ; 1dc381 + call ClearBGPalettes + call ClearTileMap + call ClearSprites + xor a + ld [hBGMapMode], a + call LoadFontsBattleExtra + + ld de, GBPrinterHPIcon + ld hl, VTiles2 tile $71 + lb bc, BANK(GBPrinterHPIcon), 1 + call Request1bpp + + ld de, GBPrinterLvIcon + ld hl, VTiles2 tile $6e + lb bc, BANK(GBPrinterLvIcon), 1 + call Request1bpp + + ld de, ShinyIconGFX + ld hl, VTiles2 tile $3f + lb bc, BANK(ShinyIconGFX), 1 + call Get2bpp + + xor a + ld [MonType], a + callba CopyPkmnToTempMon + hlcoord 0, 7 + ld b, 9 + ld c, 18 + call TextBox + hlcoord 8, 2 + ld a, [TempMonLevel] + call PrintLevel_Force3Digits + hlcoord 12, 2 + ld [hl], "◀" ; Filled left triangle + inc hl + ld de, TempMonMaxHP + lb bc, 2, 3 + call PrintNum + ld a, [CurPartySpecies] + ld [wd265], a + ld [CurSpecies], a + ld hl, PartyMonNicknames + call Function1dc50e + hlcoord 8, 4 + call PlaceString + hlcoord 9, 6 + ld [hl], "/" + call GetPokemonName + hlcoord 10, 6 + call PlaceString + hlcoord 8, 0 + ld [hl], "№" + inc hl + ld [hl], "." + inc hl + ld de, wd265 + lb bc, PRINTNUM_LEADINGZEROS | 1, 3 + call PrintNum + hlcoord 1, 9 + ld de, String1dc550 + call PlaceString + ld hl, PartyMonOT + call Function1dc50e + hlcoord 4, 9 + call PlaceString + hlcoord 1, 11 + ld de, String1dc559 + call PlaceString + hlcoord 4, 11 + ld de, TempMonID + lb bc, PRINTNUM_LEADINGZEROS | 2, 5 + call PrintNum + hlcoord 1, 14 + ld de, String1dc554 + call PlaceString + hlcoord 7, 14 + ld a, [TempMonMoves + 0] + call Function1dc51a + call Function1dc52c + ld hl, TempMonDVs + predef GetUnownLetter + ld hl, wBoxAlignment + xor a + ld [hl], a + ld a, [CurPartySpecies] + cp UNOWN + jr z, .asm_1dc469 + inc [hl] + +.asm_1dc469 + hlcoord 0, 0 + call _PrepMonFrontpic + call WaitBGMap + ld b, SCGB_STATS_SCREEN_HP_PALS + call GetSGBLayout + call SetPalettes + ret +; 1dc47b + +PrintPartyMonPage2: ; 1dc47b + call ClearBGPalettes + call ClearTileMap + call ClearSprites + xor a + ld [hBGMapMode], a + call LoadFontsBattleExtra + xor a + ld [MonType], a + callba CopyPkmnToTempMon + hlcoord 0, 0 + ld b, 15 + ld c, 18 + call TextBox + ld bc, SCREEN_WIDTH + decoord 0, 0 + hlcoord 0, 1 + call CopyBytes + hlcoord 7, 0 + ld a, [TempMonMoves + 1] + call Function1dc51a + hlcoord 7, 2 + ld a, [TempMonMoves + 2] + call Function1dc51a + hlcoord 7, 4 + ld a, [TempMonMoves + 3] + call Function1dc51a + hlcoord 7, 7 + ld de, String1dc55d + call PlaceString + hlcoord 16, 7 + ld de, TempMonAttack + call .PrintTempMonStats + hlcoord 16, 9 + ld de, TempMonDefense + call .PrintTempMonStats + hlcoord 16, 11 + ld de, TempMonSpclAtk + call .PrintTempMonStats + hlcoord 16, 13 + ld de, TempMonSpclDef + call .PrintTempMonStats + hlcoord 16, 15 + ld de, TempMonSpeed + call .PrintTempMonStats + call WaitBGMap + ld b, SCGB_STATS_SCREEN_HP_PALS + call GetSGBLayout + call SetPalettes + ret +; 1dc507 + +.PrintTempMonStats: ; 1dc507 + lb bc, 2, 3 + call PrintNum + ret +; 1dc50e + +Function1dc50e: ; 1dc50e + ld bc, NAME_LENGTH + ld a, [CurPartyMon] + call AddNTimes + ld e, l + ld d, h + ret +; 1dc51a + +Function1dc51a: ; 1dc51a + and a + jr z, .no_move + + ld [wd265], a + call GetMoveName + jr .got_string + +.no_move + ld de, String1dc584 + +.got_string + call PlaceString + ret +; 1dc52c + +Function1dc52c: ; 1dc52c + callba GetGender + ld a, " " + jr c, .got_gender + ld a, "♂" + jr nz, .got_gender + ld a, "♀" + +.got_gender + hlcoord 17, 2 + ld [hl], a + ld bc, TempMonDVs + callba CheckShininess + ret nc + hlcoord 18, 2 + ld [hl], "" + ret +; 1dc550 + +String1dc550: ; 1dc550 + db "OT/@" + +String1dc554: ; 1dc554 + db "MOVE@" + +String1dc559: ; 1dc559 + db "№.@" + +String1dc55d: ; 1dc55d + db "ATTACK" + next "DEFENSE" + next "SPCL.ATK" + next "SPCL.DEF" + next "SPEED" + db "@" + +String1dc584: ; 1dc584 + db "------------@" +; 1dc591 + +GBPrinterHPIcon: ; 1dc591 +INCBIN "gfx/printer/hp.1bpp" + +GBPrinterLvIcon: ; 1dc599 +INCBIN "gfx/printer/lv.1bpp" diff --git a/engine/unused_title.asm b/engine/unused_title.asm new file mode 100644 index 000000000..6cd79237b --- /dev/null +++ b/engine/unused_title.asm @@ -0,0 +1,556 @@ +UnusedTitleScreen: ; 10c000 + + call ClearBGPalettes + call ClearTileMap + call DisableLCD + xor a + ld [hBGMapMode], a + + ld hl, wJumptableIndex + ld [hli], a + ld [hli], a + ld [hli], a + ld [hl], a + + ld hl, UnusedTitleBG_GFX + ld de, VTiles2 + ld bc, VBGMap0 - VTiles2 + call CopyBytes + + ld hl, UnusedTitleBG_GFX + $800 + ld de, VTiles1 + ld bc, VTiles2 - VTiles1 + call CopyBytes + + ld hl, UnusedTitleFG_GFX + ld de, VTiles0 + ld bc, VTiles1 - VTiles0 + call CopyBytes + + ld hl, UnusedTitleBG_Tilemap + debgcoord 0, 0 + ld bc, 32 * 32 +.copy + ld a, 0 + ld [rVBK], a + ld a, [hli] + ld [de], a + ld a, 1 + ld [rVBK], a + ld a, [hli] + ld [de], a + inc de + dec bc + ld a, b + or c + jr nz, .copy + + ld hl, UnusedTitleFG_OAM + ld de, Sprites + ld bc, $a0 + call CopyBytes + + call EnableLCD + ld a, [rLCDC] + set 1, a + set 2, a + ld [rLCDC], a + + call DelayFrame + + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + + ld hl, UnusedTitleBG_Palettes + ld de, UnknBGPals + ld bc, $40 + call CopyBytes + + ld hl, UnusedTitleFG_Palettes + ld de, UnknOBPals + ld bc, $40 + call CopyBytes + + ld hl, UnusedTitleBG_Palettes + ld de, BGPals + ld bc, $40 + call CopyBytes + + ld hl, UnusedTitleFG_Palettes + ld de, OBPals + ld bc, $40 + call CopyBytes + + pop af + ld [rSVBK], a + + ld a, $1 + ld [hCGBPalUpdate], a + + ld de, MUSIC_TITLE + call PlayMusic + + ret +; 10c0b1 + +UnusedTitleBG_GFX: ; 10c0b1 +INCBIN "gfx/title/old_bg.2bpp" +; 10d0b1 + +UnusedTitleBG_Tilemap: ; 10d0b1 +; 32x32 (tile, attributes) + db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $01,$00, $02,$01, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00 + db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $03,$00, $04,$00, $05,$01, $06,$01, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00 + db $00,$00, $00,$00, $07,$05, $08,$05, $09,$05, $0a,$05, $0b,$00, $0c,$00, $0d,$00, $0e,$00, $0f,$01, $10,$01, $11,$01, $12,$01, $13,$05, $14,$05, $15,$05, $16,$05, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00 + db $00,$00, $00,$00, $17,$04, $18,$04, $19,$04, $1a,$04, $1b,$00, $1c,$00, $1d,$02, $1e,$02, $1f,$07, $20,$07, $21,$01, $22,$01, $23,$04, $24,$04, $25,$04, $26,$04, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00 + db $00,$00, $00,$00, $27,$04, $28,$04, $29,$04, $2a,$04, $2b,$00, $2c,$00, $2d,$03, $2e,$01, $2f,$01, $30,$01, $31,$01, $32,$01, $33,$04, $34,$04, $35,$04, $36,$04, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00 + db $00,$00, $00,$00, $37,$04, $38,$04, $39,$04, $3a,$04, $3b,$00, $3c,$00, $3d,$01, $00,$00, $00,$00, $3e,$07, $3f,$01, $40,$01, $41,$04, $42,$04, $43,$04, $44,$04, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00 + db $00,$00, $00,$00, $45,$04, $46,$04, $47,$04, $48,$04, $49,$00, $3c,$00, $4a,$01, $00,$00, $00,$00, $4b,$07, $3f,$01, $4c,$01, $4d,$06, $4e,$06, $4f,$06, $50,$06, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00 + db $00,$00, $00,$00, $51,$04, $52,$06, $53,$06, $54,$06, $55,$00, $3c,$00, $56,$01, $00,$00, $00,$00, $57,$07, $58,$01, $59,$01, $5a,$06, $5b,$06, $5c,$06, $5d,$06, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00 + db $00,$00, $00,$00, $5e,$06, $5f,$06, $60,$06, $61,$06, $62,$00, $63,$00, $64,$03, $65,$01, $66,$01, $67,$07, $68,$01, $69,$01, $26,$04, $6a,$06, $26,$04, $26,$04, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00 + db $00,$00, $00,$00, $6b,$00, $6c,$05, $6d,$05, $6e,$05, $6f,$00, $70,$02, $71,$02, $72,$01, $73,$00, $74,$02, $75,$01, $76,$01, $77,$05, $78,$05, $79,$05, $6b,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00 + db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $7a,$00, $7b,$00, $7c,$00, $7d,$00, $0f,$01, $7e,$01, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00 + db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $a2,$00, $80,$00, $81,$00, $82,$00, $83,$00, $84,$07, $85,$01, $86,$01, $87,$01, $88,$01, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00 + db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $89,$00, $8a,$00, $8b,$00, $8c,$07, $8d,$01, $8e,$01, $8f,$01, $90,$01, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00 + db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $91,$01, $92,$01, $93,$01, $94,$01, $95,$01, $00,$00, $00,$00, $00,$00, $96,$05, $97,$05, $98,$05, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00 + db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $99,$05, $9a,$05, $9b,$05, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00 + db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $9c,$05, $9d,$05, $9e,$05, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00 + db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $9f,$05, $a0,$05, $a1,$05, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00 + db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00 + db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00 + db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00 + db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00 + db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00 + db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00 + db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00 + db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00 + db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00 + db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $6b,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00 + db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00 + db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00 + db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00 + db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00 + db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00 +; 10d8b1 + +UnusedTitleBG_Palettes: ; 10d8b1 + RGB 00, 00, 00 + RGB 25, 15, 28 + RGB 22, 11, 28 + RGB 19, 08, 26 + + RGB 00, 00, 00 + RGB 17, 07, 22 + RGB 13, 07, 16 + RGB 19, 08, 26 + + RGB 25, 15, 28 + RGB 22, 11, 28 + RGB 19, 08, 26 + RGB 17, 07, 22 + + RGB 22, 11, 28 + RGB 19, 08, 26 + RGB 17, 07, 22 + RGB 13, 07, 16 + + RGB 00, 00, 00 + RGB 31, 31, 31 + RGB 16, 16, 24 + RGB 02, 13, 21 + + RGB 00, 00, 00 + RGB 31, 31, 31 + RGB 20, 20, 20 + RGB 12, 12, 12 + + RGB 00, 00, 00 + RGB 01, 11, 23 + RGB 16, 16, 24 + RGB 02, 13, 21 + + RGB 00, 00, 00 + RGB 22, 10, 31 + RGB 19, 08, 26 + RGB 17, 07, 22 + + + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + + RGB 31, 31, 31 + RGB 20, 04, 20 + RGB 16, 08, 16 + RGB 24, 00, 24 + + rept 54 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + endr +; 10dab1 + +UnusedTitleFG_GFX: ; 10dab1 +INCBIN "gfx/title/old_fg.2bpp" +; 10eab1 + +UnusedTitleFG_Palettes: ; 10eab1 + RGB 00, 00, 00 + RGB 31, 31, 31 + RGB 16, 16, 24 + RGB 02, 13, 21 + + RGB 00, 00, 00 + RGB 31, 31, 31 + RGB 20, 20, 20 + RGB 12, 12, 12 + + RGB 00, 00, 00 + RGB 01, 11, 23 + RGB 16, 16, 24 + RGB 02, 13, 21 + + RGB 00, 00, 00 + RGB 31, 22, 00 + RGB 31, 27, 00 + RGB 31, 31, 00 + + RGB 00, 00, 00 + RGB 31, 31, 31 + RGB 16, 16, 24 + RGB 02, 13, 21 + + RGB 00, 00, 00 + RGB 31, 31, 31 + RGB 20, 20, 20 + RGB 12, 12, 12 + + RGB 00, 00, 00 + RGB 01, 11, 23 + RGB 16, 16, 24 + RGB 02, 13, 21 + + RGB 16, 31, 00 + RGB 22, 31, 00 + RGB 27, 31, 00 + RGB 31, 31, 00 + + + RGB 31, 00, 18 + RGB 31, 31, 31 + RGB 16, 16, 24 + RGB 02, 13, 21 + + RGB 00, 00, 00 + RGB 31, 31, 31 + RGB 20, 20, 20 + RGB 12, 12, 12 + + RGB 00, 00, 00 + RGB 01, 11, 23 + RGB 16, 16, 24 + RGB 02, 13, 21 + + RGB 16, 31, 00 + RGB 22, 31, 00 + RGB 27, 31, 00 + RGB 31, 31, 00 + + RGB 24, 18, 31 + RGB 31, 31, 00 + RGB 31, 31, 01 + RGB 31, 31, 03 + + RGB 31, 31, 05 + RGB 31, 31, 08 + RGB 31, 31, 10 + RGB 31, 31, 12 + + RGB 31, 31, 14 + RGB 31, 31, 16 + RGB 31, 31, 18 + RGB 31, 31, 20 + + RGB 31, 31, 22 + RGB 31, 31, 25 + RGB 31, 31, 27 + RGB 31, 31, 29 + + RGB 24, 06, 06 + RGB 01, 01, 01 + RGB 03, 03, 03 + RGB 05, 05, 05 + + RGB 08, 08, 08 + RGB 10, 10, 10 + RGB 12, 12, 12 + RGB 14, 14, 14 + + RGB 16, 16, 16 + RGB 18, 18, 18 + RGB 20, 20, 20 + RGB 22, 22, 22 + + RGB 25, 25, 25 + RGB 27, 27, 27 + RGB 29, 29, 29 + RGB 31, 31, 31 + + RGB 18, 24, 18 + RGB 31, 29, 01 + RGB 31, 27, 03 + RGB 31, 25, 05 + + RGB 31, 22, 08 + RGB 31, 20, 10 + RGB 31, 18, 12 + RGB 31, 16, 14 + + RGB 31, 14, 16 + RGB 31, 12, 18 + RGB 31, 10, 20 + RGB 31, 08, 22 + + RGB 31, 05, 25 + RGB 31, 03, 27 + RGB 31, 01, 29 + RGB 31, 00, 31 + + RGB 18, 06, 31 + RGB 00, 31, 31 + RGB 00, 31, 29 + RGB 00, 31, 27 + + RGB 00, 31, 25 + RGB 00, 31, 22 + RGB 00, 31, 20 + RGB 00, 31, 18 + + RGB 00, 31, 16 + RGB 00, 31, 14 + RGB 00, 31, 12 + RGB 00, 31, 10 + + RGB 00, 31, 08 + RGB 00, 31, 05 + RGB 00, 31, 03 + RGB 00, 31, 01 + + RGB 12, 31, 06 + RGB 00, 00, 31 + RGB 00, 01, 31 + RGB 00, 03, 31 + + RGB 00, 05, 31 + RGB 00, 08, 31 + RGB 00, 10, 31 + RGB 00, 12, 31 + + RGB 00, 14, 31 + RGB 00, 16, 31 + RGB 00, 18, 31 + RGB 00, 20, 31 + + RGB 00, 22, 31 + RGB 00, 25, 31 + RGB 00, 27, 31 + RGB 00, 29, 31 + + RGB 00, 00, 00 + RGB 06, 00, 04 + RGB 19, 02, 09 + RGB 28, 04, 11 + + RGB 31, 07, 16 + RGB 31, 17, 23 + RGB 31, 26, 30 + RGB 07, 05, 10 + + RGB 14, 10, 18 + RGB 20, 20, 25 + RGB 25, 27, 31 + RGB 09, 05, 06 + + RGB 23, 16, 13 + RGB 30, 23, 22 + RGB 31, 28, 28 + RGB 31, 31, 31 + + RGB 06, 31, 31 + RGB 04, 00, 04 + RGB 11, 02, 04 + RGB 17, 02, 04 + + RGB 24, 05, 04 + RGB 28, 07, 04 + RGB 31, 11, 04 + RGB 02, 01, 15 + + RGB 04, 11, 22 + RGB 12, 25, 25 + RGB 20, 31, 31 + RGB 09, 04, 03 + + RGB 22, 11, 08 + RGB 27, 19, 16 + RGB 30, 28, 26 + RGB 31, 31, 31 + + RGB 06, 18, 06 + RGB 04, 04, 02 + RGB 07, 07, 02 + RGB 18, 18, 04 + + RGB 24, 24, 06 + RGB 27, 27, 11 + RGB 31, 31, 20 + RGB 02, 03, 10 + + RGB 04, 05, 13 + RGB 06, 10, 25 + RGB 08, 15, 31 + RGB 04, 00, 06 + + RGB 11, 07, 14 + RGB 21, 16, 23 + RGB 29, 26, 31 + RGB 31, 31, 31 + + RGB 06, 00, 18 + RGB 00, 04, 03 + RGB 02, 09, 05 + RGB 11, 19, 07 + + RGB 16, 24, 08 + RGB 22, 31, 09 + RGB 24, 31, 18 + RGB 03, 01, 03 + + RGB 10, 04, 10 + RGB 20, 08, 20 + RGB 31, 17, 31 + RGB 01, 03, 06 + + RGB 05, 09, 10 + RGB 15, 21, 21 + RGB 23, 25, 25 + RGB 31, 31, 31 + + RGB 00, 18, 31 + RGB 00, 05, 07 + RGB 00, 08, 13 + RGB 00, 12, 17 + + RGB 01, 20, 24 + RGB 04, 27, 31 + RGB 14, 31, 31 + RGB 04, 02, 02 + + RGB 15, 01, 03 + RGB 26, 04, 07 + RGB 31, 13, 16 + RGB 00, 05, 02 + + RGB 01, 11, 03 + RGB 06, 21, 06 + RGB 13, 31, 16 + RGB 31, 31, 31 + + RGB 00, 06, 06 + RGB 00, 01, 08 + RGB 00, 05, 14 + RGB 00, 08, 19 + + RGB 02, 14, 26 + RGB 04, 21, 31 + RGB 06, 26, 31 + RGB 13, 00, 00 + + RGB 27, 07, 00 + RGB 31, 17, 05 + RGB 31, 25, 16 + RGB 02, 04, 00 + + RGB 07, 11, 03 + RGB 17, 19, 05 + RGB 27, 31, 16 + RGB 31, 31, 31 + + RGB 02, 00, 00 + RGB 04, 01, 06 + RGB 11, 03, 14 + RGB 16, 04, 19 + + RGB 20, 07, 22 + RGB 26, 12, 27 + RGB 26, 20, 31 + RGB 04, 07, 00 + + RGB 16, 20, 07 + RGB 24, 28, 15 + RGB 29, 31, 24 + RGB 05, 02, 02 + + RGB 15, 04, 02 + RGB 24, 11, 10 + RGB 31, 22, 20 + RGB 31, 31, 31 + + RGB 00, 00, 14 + RGB 12, 00, 00 + RGB 27, 05, 00 + RGB 31, 15, 05 + + RGB 31, 26, 13 + RGB 31, 30, 21 + RGB 05, 07, 16 + RGB 04, 16, 20 + + RGB 04, 24, 26 + RGB 08, 31, 31 + RGB 23, 31, 31 + RGB 00, 00, 00 + + RGB 05, 05, 05 + RGB 17, 17, 15 + RGB 28, 28, 24 + RGB 31, 31, 31 +; 10ecb1 + +UnusedTitleFG_OAM: ; 10ecb1 + db $18, $38, $00, $01, $18, $40, $02, $01, $18, $48, $04, $01, $18, $50, $06, $01 + db $18, $58, $08, $01, $18, $60, $0a, $01, $18, $68, $0c, $01, $18, $70, $0e, $01 + + db $28, $38, $10, $00, $28, $40, $12, $00, $28, $48, $14, $00, $28, $50, $16, $00 + db $28, $58, $18, $00, $28, $60, $1a, $00, $28, $68, $1c, $00, $28, $70, $1e, $00 + + db $38, $38, $20, $00, $38, $40, $22, $00, $38, $48, $24, $00, $38, $50, $26, $00 + db $38, $58, $28, $00, $38, $60, $2a, $00, $38, $68, $2c, $00, $38, $70, $2e, $00 + + db $48, $38, $30, $02, $48, $40, $32, $02, $48, $48, $34, $02, $48, $50, $36, $02 + db $48, $58, $38, $02, $48, $60, $3a, $02, $48, $68, $3c, $02, $48, $70, $3e, $02 + + db $58, $38, $40, $01, $58, $40, $42, $01, $58, $48, $44, $01, $58, $50, $46, $01 + db $58, $58, $48, $01, $58, $60, $4a, $01, $58, $68, $4c, $01, $58, $70, $4e, $01 +; 10ed51 + + +Function10ed51: ; 10ed51 + call _TitleScreen +.loop + call JoyTextDelay + ld a, [hJoyLast] + ld b, a + and 1 + jr nz, .done + call SuicuneFrameIterator + call DelayFrame + jr .loop +.done + ret +; 10ed67 diff --git a/gfx/emotes.asm b/gfx/emotes.asm new file mode 100644 index 000000000..1de06de2c --- /dev/null +++ b/gfx/emotes.asm @@ -0,0 +1,12 @@ +ShockEmote: INCBIN "gfx/emotes/shock.2bpp" +QuestionEmote: INCBIN "gfx/emotes/question.2bpp" +HappyEmote: INCBIN "gfx/emotes/happy.2bpp" +SadEmote: INCBIN "gfx/emotes/sad.2bpp" +HeartEmote: INCBIN "gfx/emotes/heart.2bpp" +BoltEmote: INCBIN "gfx/emotes/bolt.2bpp" +SleepEmote: INCBIN "gfx/emotes/sleep.2bpp" +FishEmote: INCBIN "gfx/emotes/fish.2bpp" +JumpShadowGFX: INCBIN "gfx/overworld/shadow.2bpp" +FishingRodGFX: INCBIN "gfx/overworld/fishing_rod.2bpp" +BoulderDustGFX: INCBIN "gfx/overworld/boulder_dust.2bpp" +GrassRustleGFX: INCBIN "gfx/overworld/grass_rustle.2bpp" diff --git a/gfx/mobile/hp.png b/gfx/mobile/hp.png deleted file mode 100644 index 908141634..000000000 Binary files a/gfx/mobile/hp.png and /dev/null differ diff --git a/gfx/mobile/lv.png b/gfx/mobile/lv.png deleted file mode 100644 index 5176fc585..000000000 Binary files a/gfx/mobile/lv.png and /dev/null differ diff --git a/gfx/printer/hp.png b/gfx/printer/hp.png new file mode 100644 index 000000000..908141634 Binary files /dev/null and b/gfx/printer/hp.png differ diff --git a/gfx/printer/lv.png b/gfx/printer/lv.png new file mode 100644 index 000000000..5176fc585 Binary files /dev/null and b/gfx/printer/lv.png differ diff --git a/main.asm b/main.asm index f46b579c5..629e34968 100644 --- a/main.asm +++ b/main.asm @@ -1784,9 +1784,9 @@ Unknown_4985a: ; unreferenced INCLUDE "event/celebi.asm" INCLUDE "engine/main_menu.asm" -INCLUDE "misc/mobile_menu.asm" +INCLUDE "mobile/mobile_menu.asm" INCLUDE "engine/search.asm" -INCLUDE "misc/mobile_12_2.asm" +INCLUDE "mobile/mobile_12_2.asm" ; mobile battle selection AskRememberPassword: ; 4ae12 @@ -3196,7 +3196,7 @@ CheckBattleScene: ; 4ea44 scf ret -INCLUDE "misc/gbc_only.asm" +INCLUDE "engine/gbc_only.asm" INCLUDE "event/poke_seer.asm" @@ -4604,12 +4604,12 @@ INCBIN "gfx/player/kris_back.2bpp" String_89116: db "-----@" -INCLUDE "misc/mobile_22.asm" +INCLUDE "mobile/mobile_22.asm" INCLUDE "event/unown.asm" INCLUDE "event/buena.asm" INCLUDE "event/dratini.asm" INCLUDE "event/battle_tower.asm" -INCLUDE "misc/mobile_22_2.asm" +INCLUDE "mobile/mobile_22_2.asm" SECTION "bank23", ROMX @@ -5088,17 +5088,17 @@ INCLUDE "event/mom_phone.asm" SECTION "mobile_40", ROMX -INCLUDE "misc/mobile_40.asm" +INCLUDE "mobile/mobile_40.asm" SECTION "bank41", ROMX -INCLUDE "misc/gfx_41.asm" - +INCLUDE "engine/dma_transfer.asm" +INCLUDE "gfx/emotes.asm" INCLUDE "engine/warp_connection.asm" INCLUDE "engine/mysterygift.asm" INCLUDE "battle/used_move_text.asm" -INCLUDE "misc/mobile_41.asm" +INCLUDE "mobile/mobile_41.asm" LoadOverworldFont:: ; 106594 ld de, .font @@ -5120,7 +5120,7 @@ INCBIN "gfx/font/space.2bpp" SECTION "mobile_42", ROMX -INCLUDE "misc/mobile_42.asm" +INCLUDE "mobile/mobile_42.asm" SECTION "Intro Logo", ROMX @@ -5131,10 +5131,10 @@ INCBIN "gfx/intro/logo.2bpp.lz" SECTION "bank43", ROMX -INCLUDE "misc/unused_title.asm" +INCLUDE "engine/unused_title.asm" INCLUDE "engine/title.asm" -INCLUDE "misc/mobile_45.asm" -INCLUDE "misc/mobile_46.asm" +INCLUDE "mobile/mobile_45.asm" +INCLUDE "mobile/mobile_46.asm" SECTION "battle_tower_47", ROMX @@ -5144,13 +5144,13 @@ INCLUDE "misc/battle_tower_47.asm" SECTION "bank5B", ROMX -INCLUDE "misc/mobile_5b.asm" +INCLUDE "mobile/mobile_5b.asm" INCLUDE "engine/link_trade.asm" SECTION "mobile_5c", ROMX -INCLUDE "misc/mobile_5c.asm" +INCLUDE "mobile/mobile_5c.asm" SECTION "Crystal Phone Text 2", ROMX @@ -5170,7 +5170,7 @@ _UpdateBattleHUDs: callba FinishBattleAnim ret -INCLUDE "misc/mobile_5f.asm" +INCLUDE "mobile/mobile_5f.asm" SECTION "Common Text 1", ROMX @@ -5210,13 +5210,7 @@ SECTION "bank77", ROMX UnownFont: ; 1dc000 INCBIN "gfx/font/unown_font.2bpp" -INCLUDE "misc/printer_77.asm" - -MobileHPIcon: ; 1dc591 -INCBIN "gfx/mobile/hp.1bpp" - -MobileLvIcon: ; 1dc599 -INCBIN "gfx/mobile/lv.1bpp" +INCLUDE "engine/print_party.asm" SECTION "bank77_2", ROMX diff --git a/misc/battle_tower_47.asm b/misc/battle_tower_47.asm index f9e2ac0ea..d0ca6edd8 100755 --- a/misc/battle_tower_47.asm +++ b/misc/battle_tower_47.asm @@ -85,7 +85,7 @@ ENDC ret ; 11c05d -INCLUDE "misc/fixed_words.asm" +INCLUDE "mobile/fixed_words.asm" BTTrainerClassGenders: ; 11f2f0 db MALE ; FALKNER diff --git a/misc/fixed_words.asm b/misc/fixed_words.asm deleted file mode 100755 index 56e53da91..000000000 --- a/misc/fixed_words.asm +++ /dev/null @@ -1,4294 +0,0 @@ -; These functions seem to be related to the selection of preset phrases -; for use in mobile communications. Annoyingly, they separate the -; Battle Tower function above from the data it references. -Function11c05d: ; 11c05d - ld a, e - or d - jr z, .error - ld a, e - and d - cp $ff - jr z, .error - push hl - call CopyMobileEZChatToC608 - pop hl - call PlaceString - and a - ret - -.error - ld c, l - ld b, h - scf - ret -; 11c075 - -Function11c075: ; 11c075 - push de - ld a, c - call Function11c254 - pop de - ld bc, wcd36 - call Function11c08f - ret -; 11c082 - -Function11c082: ; 11c082 -; XXX - push de - ld a, c - call Function11c254 - pop de - ld bc, wcd36 - call PrintEZChatBattleMessage - ret -; 11c08f - -Function11c08f: ; 11c08f - ld l, e - ld h, d - push hl - ld a, 3 -.loop - push af - ld a, [bc] - ld e, a - inc bc - ld a, [bc] - ld d, a - inc bc - push bc - call Function11c05d - jr c, .okay - inc bc - -.okay - ld l, c - ld h, b - pop bc - pop af - dec a - jr nz, .loop - pop hl - ld de, 2 * SCREEN_WIDTH - add hl, de - ld a, $3 -.loop2 - push af - ld a, [bc] - ld e, a - inc bc - ld a, [bc] - ld d, a - inc bc - push bc - call Function11c05d - jr c, .okay2 - inc bc - -.okay2 - ld l, c - ld h, b - pop bc - pop af - dec a - jr nz, .loop2 - ret -; 11c0c6 - -PrintEZChatBattleMessage: ; 11c0c6 -; Use up to 6 words from bc to print text starting at de. - ; Preserve $cf63, $cf64 - ld a, [wJumptableIndex] - ld l, a - ld a, [wcf64] - ld h, a - push hl - ; reset value at c618 (not preserved) - ld hl, $c618 - ld a, $0 - ld [hli], a - ; preserve de - push de - ; $cf63 keeps track of which line we're on (0, 1, or 2) - ; $cf64 keeps track of how much room we have left in the current line - xor a - ld [wJumptableIndex], a - ld a, 18 - ld [wcf64], a - ld a, $6 ; up to 6 times -.loop - push af - ; load the 2-byte word data pointed to by bc - ld a, [bc] - ld e, a - inc bc - ld a, [bc] - ld d, a - inc bc - ; if $0000, we're done - or e - jr z, .done - ; preserving hl and bc, get the length of the word - push hl - push bc - call CopyMobileEZChatToC608 - call GetLengthOfWordAtC608 - ld e, c - pop bc - pop hl - ; if the functions return 0, we're done - ld a, e - or a - jr z, .done -.loop2 - ; e contains the length of the word - ; add 1 for the space, unless we're at the start of the line - ld a, [wcf64] - cp 18 - jr z, .skip_inc - inc e - -.skip_inc - ; if the word fits, put it on the same line - cp e - jr nc, .same_line - ; otherwise, go to the next line - ld a, [wJumptableIndex] - inc a - ld [wJumptableIndex], a - ; if we're on line 2, insert "" - ld [hl], "" - rra - jr c, .got_line_terminator - ; else, insert "" - ld [hl], "" - -.got_line_terminator - inc hl - ; init the next line, holding on to the same word - ld a, 18 - ld [wcf64], a - dec e - jr .loop2 - -.same_line - ; add the space, unless we're at the start of the line - cp 18 - jr z, .skip_space - ld [hl], " " - inc hl - -.skip_space - ; deduct the length of the word - sub e - ld [wcf64], a - ld de, $c608 -.place_string_loop - ; load the string from de to hl - ld a, [de] - cp "@" - jr z, .done - inc de - ld [hli], a - jr .place_string_loop - -.done - ; next word? - pop af - dec a - jr nz, .loop - ; we're finished, place "" - ld [hl], "" - ; now, let's place the string from c618 to bc - pop bc - ld hl, $c618 - call PlaceHLTextAtBC - ; restore the original values of $cf63 and $cf64 - pop hl - ld a, l - ld [wJumptableIndex], a - ld a, h - ld [wcf64], a - ret -; 11c14a - -GetLengthOfWordAtC608: ; 11c14a - ld c, $0 - ld hl, $c608 -.loop - ld a, [hli] - cp "@" - ret z - inc c - jr .loop -; 11c156 - -CopyMobileEZChatToC608: ; 11c156 - ld a, [rSVBK] - push af - ld a, $1 - ld [rSVBK], a - ld a, "@" - ld hl, $c608 - ld bc, NAME_LENGTH - call ByteFill - ld a, d - and a - jr z, .get_name - ld hl, MobileEZChatCategoryPointers - dec d - sla d - ld c, d - ld b, $0 - add hl, bc - ld a, [hli] - ld c, a - ld a, [hl] - ld b, a - push bc - pop hl - ld c, e - ld b, $0 - sla c - rl b - sla c - rl b - sla c - rl b - add hl, bc - ld bc, 5 ; length of a string -.copy_string - ld de, $c608 - call CopyBytes - ld de, $c608 - pop af - ld [rSVBK], a - ret - -.get_name - ld a, e - ld [wd265], a - call GetPokemonName - ld hl, StringBuffer1 - ld bc, PKMN_NAME_LENGTH - 1 - jr .copy_string -; 11c1ab - -Function11c1ab: ; 11c1ab - ld a, [hInMenu] - push af - ld a, $1 - ld [hInMenu], a - call Function11c1b9 - pop af - ld [hInMenu], a - ret -; 11c1b9 - -Function11c1b9: ; 11c1b9 - call .InitKanaMode - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - call EZChat_MasterLoop - pop af - ld [rSVBK], a - ret -; 11c1ca - -.InitKanaMode: ; 11c1ca - xor a - ld [wJumptableIndex], a - ld [wcf64], a - ld [wcf65], a - ld [wcf66], a - ld [wcd23], a - ld [wcd20], a - ld [wcd21], a - ld [wcd22], a - ld [wcd35], a - ld [wcd2b], a - ld a, $ff - ld [wcd24], a - ld a, [wMenuCursorY] - dec a - call Function11c254 - call ClearBGPalettes - call ClearSprites - call ClearScreen - call Function11d323 - call SetPalettes - call DisableLCD - ld hl, GFX_11d67e - ld de, VTiles2 - ld bc, $60 - call CopyBytes - ld hl, LZ_11d6de - ld de, VTiles0 - call Decompress - call EnableLCD - callba ReloadMapPart - callba ClearSpriteAnims - callba LoadPokemonData - callba Pokedex_ABCMode - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - ld hl, $c6d0 - ld de, LYOverrides - ld bc, $100 - call CopyBytes - pop af - ld [rSVBK], a - call EZChat_GetCategoryWordsByKana - call EZChat_GetSeenPokemonByKana - ret -; 11c254 - -Function11c254: ; 11c254 - push af - ld a, $4 - call GetSRAMBank - ld hl, $a007 - pop af - sla a - sla a - ld c, a - sla a - add c - ld c, a - ld b, $0 - add hl, bc - ld de, wcd36 - ld bc, 12 - call CopyBytes - call CloseSRAM - ret -; 11c277 - -EZChat_ClearBottom12Rows: ; 11c277 (47:4277) - ld a, " " - hlcoord 0, 6 - ld bc, (SCREEN_HEIGHT - 6) * SCREEN_WIDTH - call ByteFill - ret - -EZChat_MasterLoop: ; 11c283 -.loop - call JoyTextDelay - ld a, [hJoyPressed] - ld [hJoypadPressed], a - ld a, [wJumptableIndex] - bit 7, a - jr nz, .exit - call .DoJumptableFunction - callba PlaySpriteAnimations - callba ReloadMapPart - jr .loop - -.exit - callba ClearSpriteAnims - call ClearSprites - ret -; 11c2ac - -.DoJumptableFunction: ; 11c2ac - jumptable .Jumptable, wJumptableIndex -; 11c2bb - -.Jumptable: ; 11c2bb (47:42bb) - dw .SpawnObjects ; 00 - dw .InitRAM ; 01 - dw Function11c35f ; 02 - dw Function11c373 ; 03 - dw Function11c3c2 ; 04 - dw Function11c3ed ; 05 - dw Function11c52c ; 06 - dw Function11c53d ; 07 - dw Function11c658 ; 08 - dw Function11c675 ; 09 - dw Function11c9bd ; 0a - dw Function11c9c3 ; 0b - dw Function11caad ; 0c - dw Function11cab3 ; 0d - dw Function11cb52 ; 0e - dw Function11cb66 ; 0f - dw Function11cbf5 ; 10 - dw Function11ccef ; 11 - dw Function11cd04 ; 12 - dw Function11cd20 ; 13 - dw Function11cd54 ; 14 - dw Function11ce0b ; 15 - dw Function11ce2b ; 16 - -.SpawnObjects: ; 11c2e9 (47:42e9) - depixel 3, 1, 2, 5 - ld a, SPRITE_ANIM_INDEX_1D - call _InitSpriteAnimStruct - depixel 8, 1, 2, 5 - - ld a, SPRITE_ANIM_INDEX_1D - call _InitSpriteAnimStruct - ld hl, SPRITEANIMSTRUCT_0C - add hl, bc - ld a, $1 - ld [hl], a - - depixel 9, 2, 2, 0 - ld a, SPRITE_ANIM_INDEX_1D - call _InitSpriteAnimStruct - ld hl, SPRITEANIMSTRUCT_0C - add hl, bc - ld a, $3 - ld [hl], a - - depixel 10, 16 - ld a, SPRITE_ANIM_INDEX_1D - call _InitSpriteAnimStruct - ld hl, SPRITEANIMSTRUCT_0C - add hl, bc - ld a, $4 - ld [hl], a - - depixel 10, 4 - ld a, SPRITE_ANIM_INDEX_1D - call _InitSpriteAnimStruct - ld hl, SPRITEANIMSTRUCT_0C - add hl, bc - ld a, $5 - ld [hl], a - - depixel 10, 2 - ld a, SPRITE_ANIM_INDEX_1D - call _InitSpriteAnimStruct - ld hl, SPRITEANIMSTRUCT_0C - add hl, bc - ld a, $2 - ld [hl], a - - ld hl, wcd23 - set 1, [hl] - set 2, [hl] - jp Function11cfb5 - -.InitRAM: ; 11c346 (47:4346) - ld a, $9 - ld [wcd2d], a - ld a, $2 - ld [wcd2e], a - ld [wcd2f], a - ld [wcd30], a - ld de, wcd2d - call Function11cfce - jp Function11cfb5 - -Function11c35f: ; 11c35f (47:435f) - ld hl, wcd2f - inc [hl] - inc [hl] - dec hl - dec hl - dec [hl] - push af - ld de, wcd2d - call Function11cfce - pop af - ret nz - jp Function11cfb5 - -Function11c373: ; 11c373 (47:4373) - ld hl, wcd30 - inc [hl] - inc [hl] - dec hl - dec hl - dec [hl] - push af - ld de, wcd2d - call Function11cfce - pop af - ret nz - call Function11c38a - jp Function11cfb5 - -Function11c38a: ; 11c38a (47:438a) - ld hl, Unknown_11c986 - ld bc, wcd36 - ld a, $6 -.asm_11c392 - push af - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - push hl - push de - pop hl - ld a, [bc] - inc bc - ld e, a - ld a, [bc] - inc bc - ld d, a - push bc - or e - jr z, .asm_11c3af - ld a, e - and d - cp $ff - jr z, .asm_11c3af - call Function11c05d - jr .asm_11c3b5 -.asm_11c3af - ld de, String_11c3bc - call PlaceString -.asm_11c3b5 - pop bc - pop hl - pop af - dec a - jr nz, .asm_11c392 - ret -; 11c3bc (47:43bc) - -String_11c3bc: ; 11c3bc - db "ーーーーー@" -; 11c3c2 - -Function11c3c2: ; 11c3c2 (47:43c2) - call EZChat_ClearBottom12Rows - ld de, Unknown_11cfbe - call Function11d035 - hlcoord 1, 7 - ld de, String_11c4db - call PlaceString - hlcoord 1, 16 - ld de, String_11c51b - call PlaceString - call Function11c4be - ld hl, wcd23 - set 0, [hl] - ld hl, wcd24 - res 0, [hl] - call Function11cfb5 - -Function11c3ed: ; 11c3ed (47:43ed) - ld hl, wcd20 ; wcd20 - ld de, hJoypadPressed ; $ffa3 - ld a, [de] - and $8 - jr nz, .asm_11c426 - ld a, [de] - and $2 - jr nz, .asm_11c41a - ld a, [de] - and $1 - jr nz, .asm_11c42c - ld de, hJoyLast - ld a, [de] - and $40 - jr nz, .asm_11c47c - ld a, [de] - and $80 - jr nz, .asm_11c484 - ld a, [de] - and $20 - jr nz, .asm_11c48c - ld a, [de] - and $10 - jr nz, .asm_11c498 - ret - -.asm_11c41a - call PlayClickSFX -.asm_11c41d - ld hl, wcd24 - set 0, [hl] - ld a, $c - jr .asm_11c475 -.asm_11c426 - ld a, $8 - ld [wcd20], a ; wcd20 - ret - -.asm_11c42c - ld a, [wcd20] ; wcd20 - cp $6 - jr c, .asm_11c472 - sub $6 - jr z, .asm_11c469 - dec a - jr z, .asm_11c41d - ld hl, wcd36 - ld c, $c - xor a -.asm_11c440 - or [hl] - inc hl - dec c - jr nz, .asm_11c440 - and a - jr z, .asm_11c460 - ld de, Unknown_11cfba - call Function11cfce - decoord 1, 2 - ld bc, wcd36 - call Function11c08f - ld hl, wcd24 - set 0, [hl] - ld a, $e - jr .asm_11c475 -.asm_11c460 - ld hl, wcd24 - set 0, [hl] - ld a, $11 - jr .asm_11c475 -.asm_11c469 - ld hl, wcd24 - set 0, [hl] - ld a, $a - jr .asm_11c475 -.asm_11c472 - call Function11c4a5 -.asm_11c475 - ld [wJumptableIndex], a - call PlayClickSFX - ret - -.asm_11c47c - ld a, [hl] - cp $3 - ret c - sub $3 - jr .asm_11c4a3 -.asm_11c484 - ld a, [hl] - cp $6 - ret nc - add $3 - jr .asm_11c4a3 -.asm_11c48c - ld a, [hl] - and a - ret z - cp $3 - ret z - cp $6 - ret z - dec a - jr .asm_11c4a3 -.asm_11c498 - ld a, [hl] - cp $2 - ret z - cp $5 - ret z - cp $8 - ret z - inc a -.asm_11c4a3 - ld [hl], a - ret - -Function11c4a5: ; 11c4a5 (47:44a5) - ld hl, wcd23 - res 0, [hl] - ld a, [wcd2b] - and a - jr nz, .asm_11c4b7 - xor a - ld [wcd21], a - ld a, $6 - ret - -.asm_11c4b7 - xor a - ld [wcd22], a - ld a, $15 - ret - -Function11c4be: ; 11c4be (47:44be) - ld a, $1 - hlcoord 0, 6, AttrMap - ld bc, $a0 - call ByteFill - ld a, $7 - hlcoord 0, 14, AttrMap - ld bc, $28 - call ByteFill - callba ReloadMapPart - ret -; 11c4db (47:44db) - -String_11c4db: ; 11c4db - db "6つのことば¯くみあわせます" - next "かえたいところ¯えらぶと でてくる" - next "ことばのグループから いれかえたい" - next "たんご¯えらんでください" - db "@" -; 11c51b - -String_11c51b: ; 11c51b - db "ぜんぶけす やめる けってい@" -; 11c52c - -Function11c52c: ; 11c52c (47:452c) - call EZChat_ClearBottom12Rows - call EZChat_PlaceCategoryNames - call Function11c618 - ld hl, wcd24 - res 1, [hl] - call Function11cfb5 - -Function11c53d: ; 11c53d (47:453d) - ld hl, wcd21 - ld de, hJoypadPressed ; $ffa3 - - ld a, [de] - and START - jr nz, .start - - ld a, [de] - and SELECT - jr nz, .select - - ld a, [de] - and B_BUTTON - jr nz, .b - - ld a, [de] - and A_BUTTON - jr nz, .a - - ld de, hJoyLast - - ld a, [de] - and D_UP - jr nz, .up - - ld a, [de] - and D_DOWN - jr nz, .down - - ld a, [de] - and D_LEFT - jr nz, .left - - ld a, [de] - and D_RIGHT - jr nz, .right - - ret - -.a - ld a, [wcd21] - cp 15 - jr c, .got_category - sub $f - jr z, .done - dec a - jr z, .mode - jr .b - -.start - ld hl, wcd24 - set 0, [hl] - ld a, $8 - ld [wcd20], a ; wcd20 - -.b - ld a, $4 - jr .go_to_function - -.select - ld a, [wcd2b] - xor $1 - ld [wcd2b], a - ld a, $15 - jr .go_to_function - -.mode - ld a, $13 - jr .go_to_function - -.got_category - ld a, $8 - -.go_to_function - ld hl, wcd24 - set 1, [hl] - ld [wJumptableIndex], a - call PlayClickSFX - ret - -.done - ld a, [wcd20] ; wcd20 - call Function11ca6a - call PlayClickSFX - ret - -.up - ld a, [hl] - cp $3 - ret c - sub $3 - jr .finish_dpad - -.down - ld a, [hl] - cp $f - ret nc - add $3 - jr .finish_dpad - -.left - ld a, [hl] - and a - ret z - cp $3 - ret z - cp $6 - ret z - cp $9 - ret z - cp $c - ret z - cp $f - ret z - dec a - jr .finish_dpad - -.right - ld a, [hl] - cp $2 - ret z - cp $5 - ret z - cp $8 - ret z - cp $b - ret z - cp $e - ret z - cp $11 - ret z - inc a - -.finish_dpad - ld [hl], a - ret -; 11c5f0 - -EZChat_PlaceCategoryNames: ; 11c5f0 (47:45f0) - ld de, MobileEZChatCategoryNames - ld bc, Coords_11c63a - ld a, 15 -.loop - push af - ld a, [bc] - inc bc - ld l, a - ld a, [bc] - inc bc - ld h, a - push bc - call PlaceString - ; The category names are padded with "@". - ; To find the next category, the system must - ; find the first character at de that is not "@". -.find_next_string_loop - inc de - ld a, [de] - cp "@" - jr z, .find_next_string_loop - pop bc - pop af - dec a - jr nz, .loop - hlcoord 1, 17 - ld de, EZChatString_Stop_Mode_Cancel - call PlaceString - ret - -Function11c618: ; 11c618 (47:4618) - ld a, $2 - hlcoord 0, 6, AttrMap - ld bc, $c8 - call ByteFill - callba ReloadMapPart - ret -; 11c62a (47:462a) - -EZChatString_Stop_Mode_Cancel: ; 11c62a - db "けす モード やめる@" -; 11c63a - -Coords_11c63a: ; 11c63a - dwcoord 1, 7 - dwcoord 7, 7 - dwcoord 13, 7 - dwcoord 1, 9 - dwcoord 7, 9 - dwcoord 13, 9 - dwcoord 1, 11 - dwcoord 7, 11 - dwcoord 13, 11 - dwcoord 1, 13 - dwcoord 7, 13 - dwcoord 13, 13 - dwcoord 1, 15 - dwcoord 7, 15 - dwcoord 13, 15 -; 11c658 - -Function11c658: ; 11c658 (47:4658) - call EZChat_ClearBottom12Rows - call Function11c770 - ld de, Unknown_11cfc2 - call Function11d035 - call Function11c9ab - call Function11c7bc - call Function11c86e - ld hl, wcd24 - res 3, [hl] - call Function11cfb5 - -Function11c675: ; 11c675 (47:4675) - ld hl, wMobileCommsJumptableIndex - ld de, hJoypadPressed ; $ffa3 - ld a, [de] - and A_BUTTON - jr nz, .a - ld a, [de] - and B_BUTTON - jr nz, .b - ld a, [de] - and START - jr nz, .start - ld a, [de] - and SELECT - jr z, .select - - ld a, [wcd26] - and a - ret z - sub $c - jr nc, .asm_11c699 - xor a -.asm_11c699 - ld [wcd26], a - jr .asm_11c6c4 - -.start - ld hl, wcd28 - ld a, [wcd26] - add $c - cp [hl] - ret nc - ld [wcd26], a - ld a, [hl] - ld b, a - ld hl, wMobileCommsJumptableIndex - ld a, [wcd26] - add [hl] - jr c, .asm_11c6b9 - cp b - jr c, .asm_11c6c4 -.asm_11c6b9 - ld a, [wcd28] - ld hl, wcd26 - sub [hl] - dec a - ld [wMobileCommsJumptableIndex], a -.asm_11c6c4 - call Function11c992 - call Function11c7bc - call Function11c86e - ret - -.select - ld de, hJoyLast - ld a, [de] - and D_UP - jr nz, .asm_11c708 - ld a, [de] - and D_DOWN - jr nz, .asm_11c731 - ld a, [de] - and D_LEFT - jr nz, .asm_11c746 - ld a, [de] - and D_RIGHT - jr nz, .asm_11c755 - ret - -.a - call Function11c8f6 - ld a, $4 - ld [wcd35], a - jr .asm_11c6fc -.b - ld a, [wcd2b] - and a - jr nz, .asm_11c6fa - ld a, $6 - jr .asm_11c6fc -.asm_11c6fa - ld a, $15 -.asm_11c6fc - ld [wJumptableIndex], a - ld hl, wcd24 - set 3, [hl] - call PlayClickSFX - ret - -.asm_11c708 - ld a, [hl] - cp $3 - jr c, .asm_11c711 - sub $3 - jr .asm_11c76e -.asm_11c711 - ld a, [wcd26] - sub $3 - ret c - ld [wcd26], a - jr .asm_11c6c4 -.asm_11c71c - ld hl, wcd28 - ld a, [wcd26] - add $c - ret c - cp [hl] - ret nc - ld a, [wcd26] - add $3 - ld [wcd26], a - jr .asm_11c6c4 -.asm_11c731 - ld a, [wcd28] - ld b, a - ld a, [wcd26] - add [hl] - add $3 - cp b - ret nc - ld a, [hl] - cp $9 - jr nc, .asm_11c71c - add $3 - jr .asm_11c76e -.asm_11c746 - ld a, [hl] - and a - ret z - cp $3 - ret z - cp $6 - ret z - cp $9 - ret z - dec a - jr .asm_11c76e -.asm_11c755 - ld a, [wcd28] - ld b, a - ld a, [wcd26] - add [hl] - inc a - cp b - ret nc - ld a, [hl] - cp $2 - ret z - cp $5 - ret z - cp $8 - ret z - cp $b - ret z - inc a -.asm_11c76e - ld [hl], a - ret - -Function11c770: ; 11c770 (47:4770) - xor a - ld [wMobileCommsJumptableIndex], a - ld [wcd26], a - ld [wcd27], a - ld a, [wcd2b] - and a - jr nz, .cd2b_is_nonzero - ld a, [wcd21] - and a - jr z, .cd21_is_zero - ; load from data array - dec a - sla a - ld hl, MobileEZChatData_WordAndPageCounts - ld c, a - ld b, 0 - add hl, bc - ld a, [hli] - ld [wcd28], a - ld a, [hl] -.load - ld [wcd29], a - ret - -.cd21_is_zero - ; compute from [wc7d2] - ld a, [wc7d2] - ld [wcd28], a -.div_12 - ld c, 12 - call SimpleDivide - and a - jr nz, .no_need_to_floor - dec b -.no_need_to_floor - ld a, b - jr .load - -.cd2b_is_nonzero - ; compute from [c6a8 + 2 * [cd22]] - ld hl, $c6a8 ; $c68a + 30 - ld a, [wcd22] - ld c, a - ld b, 0 - add hl, bc - add hl, bc - ld a, [hl] - ld [wcd28], a - jr .div_12 - -Function11c7bc: ; 11c7bc (47:47bc) - ld bc, Unknown_11c854 - ld a, [wcd2b] - and a - jr nz, .asm_11c814 - ld a, [wcd21] - ld d, a - and a - jr z, .asm_11c7e9 - ld a, [wcd26] - ld e, a -.asm_11c7d0 - ld a, [bc] - ld l, a - inc bc - ld a, [bc] - ld h, a - inc bc - and l - cp $ff - ret z - push bc - push de - call Function11c05d - pop de - pop bc - inc e - ld a, [wcd28] - cp e - jr nz, .asm_11c7d0 - ret - -.asm_11c7e9 - ld hl, wListPointer - ld a, [wcd26] - ld e, a - add hl, de -.asm_11c7f1 - push de - ld a, [hli] - ld e, a - ld d, $0 - push hl - ld a, [bc] - ld l, a - inc bc - ld a, [bc] - ld h, a - inc bc - and l - cp $ff - jr z, .asm_11c811 - push bc - call Function11c05d - pop bc - pop hl - pop de - inc e - ld a, [wcd28] - cp e - jr nz, .asm_11c7f1 - ret - -.asm_11c811 - pop hl - pop de - ret - -.asm_11c814 - ld hl, $c648 - ld a, [wcd22] - ld e, a - ld d, $0 - add hl, de - add hl, de - ld a, [hli] - ld e, a - ld a, [hl] - ld d, a - push de - pop hl - ld a, [wcd26] - ld e, a - ld d, $0 - add hl, de - add hl, de - ld a, [wcd26] - ld e, a -.asm_11c831 - push de - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - push hl - ld a, [bc] - ld l, a - inc bc - ld a, [bc] - ld h, a - inc bc - and l - cp $ff - jr z, .asm_11c851 - push bc - call Function11c05d - pop bc - pop hl - pop de - inc e - ld a, [wcd28] - cp e - jr nz, .asm_11c831 - ret - -.asm_11c851 - pop hl - pop de - ret -; 11c854 (47:4854) - -Unknown_11c854: ; 11c854 - dwcoord 2, 8 - dwcoord 8, 8 - dwcoord 14, 8 - dwcoord 2, 10 - dwcoord 8, 10 - dwcoord 14, 10 - dwcoord 2, 12 - dwcoord 8, 12 - dwcoord 14, 12 - dwcoord 2, 14 - dwcoord 8, 14 - dwcoord 14, 14 - dw -1 -; 11c86e - -Function11c86e: ; 11c86e (47:486e) - ld a, [wcd26] - and a - jr z, .asm_11c88a - hlcoord 2, 17 - ld de, MobileString_Prev - call PlaceString - hlcoord 6, 17 - ld c, $3 - xor a -.asm_11c883 - ld [hli], a - inc a - dec c - jr nz, .asm_11c883 - jr .asm_11c895 -.asm_11c88a - hlcoord 2, 17 - ld c, $7 - ld a, $7f -.asm_11c891 - ld [hli], a - dec c - jr nz, .asm_11c891 -.asm_11c895 - ld hl, wcd28 - ld a, [wcd26] - add $c - jr c, .asm_11c8b7 - cp [hl] - jr nc, .asm_11c8b7 - hlcoord 16, 17 - ld de, MobileString_Next - call PlaceString - hlcoord 11, 17 - ld a, $3 - ld c, a -.asm_11c8b1 - ld [hli], a - inc a - dec c - jr nz, .asm_11c8b1 - ret - -.asm_11c8b7 - hlcoord 17, 16 - ld a, $7f - ld [hl], a - hlcoord 11, 17 - ld c, $7 -.asm_11c8c2 - ld [hli], a - dec c - jr nz, .asm_11c8c2 - ret -; 11c8c7 (47:48c7) - -BCD2String: ; 11c8c7 - inc a - push af - and $f - ld [hDividend], a - pop af - and $f0 - swap a - ld [hDividend + 1], a - xor a - ld [hDividend + 2], a - push hl - callba Function11a80c - pop hl - ld a, [wcd63] - add "0" - ld [hli], a - ld a, [wcd62] - add "0" - ld [hli], a - ret -; 11c8ec - -MobileString_Page: ; 11c8ec - db "ぺージ@" -; 11c8f0 - -MobileString_Prev: ; 11c8f0 - db "まえ@" -; 11c8f3 - -MobileString_Next: ; 11c8f3 - db "つぎ@" -; 11c8f6 - -Function11c8f6: ; 11c8f6 (47:48f6) - ld a, [wcd20] ; wcd20 - call Function11c95d - push hl - ld a, [wcd2b] - and a - jr nz, .asm_11c938 - ld a, [wcd21] - ld d, a - and a - jr z, .asm_11c927 - ld hl, wcd26 - ld a, [wMobileCommsJumptableIndex] - add [hl] -.asm_11c911 - ld e, a -.asm_11c912 - pop hl - push de - call Function11c05d - pop de - ld a, [wcd20] ; wcd20 - ld c, a - ld b, $0 - ld hl, wcd36 - add hl, bc - add hl, bc - ld [hl], e - inc hl - ld [hl], d - ret - -.asm_11c927 - ld hl, wcd26 - ld a, [wMobileCommsJumptableIndex] - add [hl] - ld c, a - ld b, $0 - ld hl, wListPointer - add hl, bc - ld a, [hl] - jr .asm_11c911 -.asm_11c938 - ld hl, $c648 - ld a, [wcd22] - ld e, a - ld d, $0 - add hl, de - add hl, de - ld a, [hli] - ld e, a - ld a, [hl] - ld d, a - push de - pop hl - ld a, [wcd26] - ld e, a - ld d, $0 - add hl, de - add hl, de - ld a, [wMobileCommsJumptableIndex] - ld e, a - add hl, de - add hl, de - ld a, [hli] - ld e, a - ld a, [hl] - ld d, a - jr .asm_11c912 - -Function11c95d: ; 11c95d (47:495d) - sla a - ld c, a - ld b, 0 - ld hl, Unknown_11c986 - add hl, bc - ld a, [hli] - ld c, a - ld a, [hl] - ld b, a - push bc - push bc - pop hl - ld a, $5 - ld c, a - ld a, $7f -.asm_11c972 - ld [hli], a - dec c - jr nz, .asm_11c972 - dec hl - ld bc, -20 - add hl, bc - ld a, $5 - ld c, a - ld a, $7f -.asm_11c980 - ld [hld], a - dec c - jr nz, .asm_11c980 - pop hl - ret -; 11c986 (47:4986) - -Unknown_11c986: - dwcoord 1, 2 - dwcoord 7, 2 - dwcoord 13, 2 - dwcoord 1, 4 - dwcoord 7, 4 - dwcoord 13, 4 -; 11c992 - -Function11c992: ; 11c992 (47:4992) - ld a, $8 - hlcoord 2, 7 -.asm_11c997 - push af - ld a, $7f - push hl - ld bc, $11 - call ByteFill - pop hl - ld bc, $14 - add hl, bc - pop af - dec a - jr nz, .asm_11c997 - ret - -Function11c9ab: ; 11c9ab (47:49ab) - ld a, $7 - hlcoord 0, 6, AttrMap - ld bc, $c8 - call ByteFill - callba ReloadMapPart - ret - -Function11c9bd: ; 11c9bd (47:49bd) - ld de, String_11ca38 - call Function11ca7f - -Function11c9c3: ; 11c9c3 (47:49c3) - ld hl, wcd2a - ld de, hJoypadPressed ; $ffa3 - ld a, [de] - and $1 - jr nz, .asm_11c9de - ld a, [de] - and $2 - jr nz, .asm_11c9e9 - ld a, [de] - and $40 - jr nz, .asm_11c9f7 - ld a, [de] - and $80 - jr nz, .asm_11c9fc - ret - -.asm_11c9de - ld a, [hl] - and a - jr nz, .asm_11c9e9 - call Function11ca5e - xor a - ld [wcd20], a ; wcd20 -.asm_11c9e9 - ld hl, wcd24 - set 4, [hl] - ld a, $4 - ld [wJumptableIndex], a - call PlayClickSFX - ret - -.asm_11c9f7 - ld a, [hl] - and a - ret z - dec [hl] - ret - -.asm_11c9fc - ld a, [hl] - and a - ret nz - inc [hl] - ret - -Function11ca01: ; 11ca01 (47:4a01) - hlcoord 14, 7, AttrMap - ld de, $14 - ld a, $5 - ld c, a -.asm_11ca0a - push hl - ld a, $6 - ld b, a - ld a, $7 -.asm_11ca10 - ld [hli], a - dec b - jr nz, .asm_11ca10 - pop hl - add hl, de - dec c - jr nz, .asm_11ca0a - -Function11ca19: ; 11ca19 (47:4a19) - hlcoord 0, 12, AttrMap - ld de, $14 - ld a, $6 - ld c, a -.asm_11ca22 - push hl - ld a, $14 - ld b, a - ld a, $7 -.asm_11ca28 - ld [hli], a - dec b - jr nz, .asm_11ca28 - pop hl - add hl, de - dec c - jr nz, .asm_11ca22 - callba ReloadMapPart - ret -; 11ca38 (47:4a38) - -String_11ca38: ; 11ca38 - db "とうろくちゅう", $25, "あいさつ¯ぜんぶ" - next "けしても よろしいですか?@" -; 11ca57 - -String_11ca57: ; 11ca57 - db "はい" - next "いいえ@" -; 11ca5e - -Function11ca5e: ; 11ca5e (47:4a5e) - xor a -.loop - push af - call Function11ca6a - pop af - inc a - cp $6 - jr nz, .loop - ret - -Function11ca6a: ; 11ca6a (47:4a6a) - ld hl, wcd36 - ld c, a - ld b, $0 - add hl, bc - add hl, bc - ld [hl], b - inc hl - ld [hl], b - call Function11c95d - ld de, String_11c3bc - call PlaceString - ret - -Function11ca7f: ; 11ca7f (47:4a7f) - push de - ld de, Unknown_11cfc6 - call Function11cfce - ld de, Unknown_11cfca - call Function11cfce - hlcoord 1, 14 - pop de - call PlaceString - hlcoord 16, 8 - ld de, String_11ca57 - call PlaceString - call Function11ca01 - ld a, $1 - ld [wcd2a], a - ld hl, wcd24 - res 4, [hl] - call Function11cfb5 - ret - -Function11caad: ; 11caad (47:4aad) - ld de, String_11cb1c - call Function11ca7f - -Function11cab3: ; 11cab3 (47:4ab3) - ld hl, wcd2a - ld de, hJoypadPressed ; $ffa3 - ld a, [de] - and $1 - jr nz, .asm_11cace - ld a, [de] - and $2 - jr nz, .asm_11caf9 - ld a, [de] - and $40 - jr nz, .asm_11cb12 - ld a, [de] - and $80 - jr nz, .asm_11cb17 - ret - -.asm_11cace - call PlayClickSFX - ld a, [hl] - and a - jr nz, .asm_11cafc - ld a, [wcd35] - and a - jr z, .asm_11caf3 - cp $ff - jr z, .asm_11caf3 - ld a, $ff - ld [wcd35], a - hlcoord 1, 14 - ld de, String_11cb31 - call PlaceString - ld a, $1 - ld [wcd2a], a - ret - -.asm_11caf3 - ld hl, wJumptableIndex - set 7, [hl] - ret - -.asm_11caf9 - call PlayClickSFX -.asm_11cafc - ld hl, wcd24 - set 4, [hl] - ld a, $4 - ld [wJumptableIndex], a - ld a, [wcd35] - cp $ff - ret nz - ld a, $1 - ld [wcd35], a - ret - -.asm_11cb12 - ld a, [hl] - and a - ret z - dec [hl] - ret - -.asm_11cb17 - ld a, [hl] - and a - ret nz - inc [hl] - ret -; 11cb1c (47:4b1c) - -String_11cb1c: ; 11cb1c - db "あいさつ", $25, "とうろく¯ちゅうし" - next "しますか?@" -; 11cb31 - -String_11cb31: ; 11cb31 - db "とうろくちゅう", $25, "あいさつ", $24, "ほぞん" - next "されません", $4a, "よろしい ですか?@" -; 11cb52 - -Function11cb52: ; 11cb52 (47:4b52) - ld hl, Unknown_11cc01 - ld a, [wMenuCursorY] -.asm_11cb58 - dec a - jr z, .asm_11cb5f - inc hl - inc hl - jr .asm_11cb58 -.asm_11cb5f - ld a, [hli] - ld e, a - ld a, [hl] - ld d, a - call Function11ca7f - -Function11cb66: ; 11cb66 (47:4b66) - ld hl, wcd2a - ld de, hJoypadPressed ; $ffa3 - ld a, [de] - and $1 - jr nz, .asm_11cb81 - ld a, [de] - and $2 - jr nz, .asm_11cbd7 - ld a, [de] - and $40 - jr nz, .asm_11cbeb - ld a, [de] - and $80 - jr nz, .asm_11cbf0 - ret - -.asm_11cb81 - ld a, [hl] - and a - jr nz, .asm_11cbd4 - ld a, $4 - call GetSRAMBank - ld hl, $a007 - ld a, [wMenuCursorY] - dec a - sla a - sla a - ld c, a - sla a - add c - ld c, a - ld b, $0 - add hl, bc - ld de, wcd36 - ld c, $c -.asm_11cba2 - ld a, [de] - ld [hli], a - inc de - dec c - jr nz, .asm_11cba2 - call CloseSRAM - call PlayClickSFX - ld de, Unknown_11cfc6 - call Function11cfce - ld hl, Unknown_11cc7e - ld a, [wMenuCursorY] -.asm_11cbba - dec a - jr z, .asm_11cbc1 - inc hl - inc hl - jr .asm_11cbba -.asm_11cbc1 - ld a, [hli] - ld e, a - ld a, [hl] - ld d, a - hlcoord 1, 14 - call PlaceString - ld hl, wJumptableIndex - inc [hl] - inc hl - ld a, $10 - ld [hl], a - ret - -.asm_11cbd4 - call PlayClickSFX -.asm_11cbd7 - ld de, Unknown_11cfba - call Function11cfce - call Function11c38a - ld hl, wcd24 - set 4, [hl] - ld a, $4 - ld [wJumptableIndex], a - ret - -.asm_11cbeb - ld a, [hl] - and a - ret z - dec [hl] - ret - -.asm_11cbf0 - ld a, [hl] - and a - ret nz - inc [hl] - ret - -Function11cbf5: ; 11cbf5 (47:4bf5) - call WaitSFX - ld hl, wcf64 - dec [hl] - ret nz - dec hl - set 7, [hl] - ret -; 11cc01 (47:4c01) - -Unknown_11cc01: ; 11cc01 - dw String_11cc09 - dw String_11cc23 - dw String_11cc42 - dw String_11cc60 - -String_11cc09: ; 11cc09 - db "じこしょうかい は" - next "この あいさつで いいですか?@" - -String_11cc23: ; 11cc23 - db "たいせん ", $4a, "はじまるとき は" - next "この あいさつで いいですか?@" - -String_11cc42: ; 11cc42 - db "たいせん ", $1d, "かったとき は" - next "この あいさつで いいですか?@" - -String_11cc60: ; 11cc60 - db "たいせん ", $1d, "まけたとき は" - next "この あいさつで いいですか?@" -; 11cc7e - -Unknown_11cc7e: ; 11cc7e - dw String_11cc86 - dw String_11cc9d - dw String_11ccb9 - dw String_11ccd4 - -String_11cc86: ; 11cc86 - db "じこしょうかい の" - next "あいさつ¯とうろくした!@" - -String_11cc9d: ; 11cc9d - db "たいせん ", $4a, "はじまるとき の" - next "あいさつ¯とうろくした!@" - -String_11ccb9: ; 11ccb9 - db "たいせん ", $1d, "かったとき の" - next "あいさつ¯とうろくした!@" - -String_11ccd4: ; 11ccd4 - db "たいせん ", $1d, "まけたとき の" - next "あいさつ¯とうろくした!@" -; 11ccef - -Function11ccef: ; 11ccef (47:4cef) - ld de, Unknown_11cfc6 - call Function11cfce - hlcoord 1, 14 - ld de, String_11cd10 - call PlaceString - call Function11ca19 - call Function11cfb5 - -Function11cd04: ; 11cd04 (47:4d04) - ld de, hJoypadPressed ; $ffa3 - ld a, [de] - and a - ret z - ld a, $4 - ld [wJumptableIndex], a - ret -; 11cd10 (47:4d10) - -String_11cd10: ; 11cd10 - db "なにか ことば¯いれてください@" -; 11cd20 - -Function11cd20: ; 11cd20 (47:4d20) - call EZChat_ClearBottom12Rows - ld de, Unknown_11cfc6 - call Function11cfce - hlcoord 1, 14 - ld a, [wcd2b] - ld [wcd2c], a - and a - jr nz, .asm_11cd3a - ld de, String_11cdc7 - jr .asm_11cd3d -.asm_11cd3a - ld de, String_11cdd9 -.asm_11cd3d - call PlaceString - hlcoord 4, 8 - ld de, String_11cdf5 - call PlaceString - call Function11cdaa - ld hl, wcd24 - res 5, [hl] - call Function11cfb5 - -Function11cd54: ; 11cd54 (47:4d54) - ld hl, wcd2c - ld de, hJoypadPressed ; $ffa3 - ld a, [de] - and A_BUTTON - jr nz, .asm_11cd6f - ld a, [de] - and B_BUTTON - jr nz, .asm_11cd73 - ld a, [de] - and D_UP - jr nz, .asm_11cd8b - ld a, [de] - and D_DOWN - jr nz, .asm_11cd94 - ret - -.asm_11cd6f - ld a, [hl] - ld [wcd2b], a -.asm_11cd73 - ld a, [wcd2b] - and a - jr nz, .asm_11cd7d - ld a, $6 - jr .asm_11cd7f - -.asm_11cd7d - ld a, $15 -.asm_11cd7f - ld [wJumptableIndex], a - ld hl, wcd24 - set 5, [hl] - call PlayClickSFX - ret - -.asm_11cd8b - ld a, [hl] - and a - ret z - dec [hl] - ld de, String_11cdc7 - jr .asm_11cd9b - -.asm_11cd94 - ld a, [hl] - and a - ret nz - inc [hl] - ld de, String_11cdd9 -.asm_11cd9b - push de - ld de, Unknown_11cfc6 - call Function11cfce - pop de - hlcoord 1, 14 - call PlaceString - ret - -Function11cdaa: ; 11cdaa (47:4daa) - ld a, $2 - hlcoord 0, 6, AttrMap - ld bc, 6 * SCREEN_WIDTH - call ByteFill - ld a, $7 - hlcoord 0, 12, AttrMap - ld bc, 4 * SCREEN_WIDTH - call ByteFill - callba ReloadMapPart - ret -; 11cdc7 (47:4dc7) - -String_11cdc7: ; 11cdc7 -; Words will be displayed by category - db "ことば¯しゅるいべつに" - next "えらべます@" -; 11cdd9 - -String_11cdd9: ; 11cdd9 -; Words will be displayed in alphabetical order - db "ことば¯アイウエォ の" - next "じゅんばんで ひょうじ します@" -; 11cdf5 - -String_11cdf5: ; 11cdf5 - db "しゅるいべつ モード" ; Category mode - next "アイウエォ モード@" ; ABC mode -; 11ce0b - -Function11ce0b: ; 11ce0b (47:4e0b) - call EZChat_ClearBottom12Rows - hlcoord 1, 7 - ld de, String_11cf79 - call PlaceString - hlcoord 1, 17 - ld de, EZChatString_Stop_Mode_Cancel - call PlaceString - call Function11c618 - ld hl, wcd24 - res 2, [hl] - call Function11cfb5 - -Function11ce2b: ; 11ce2b (47:4e2b) - ld a, [wcd22] - sla a - sla a - ld c, a - ld b, 0 - ld hl, Unknown_11ceb9 - add hl, bc - - ld de, hJoypadPressed ; $ffa3 - ld a, [de] - and START - jr nz, .start - ld a, [de] - and SELECT - jr nz, .select - ld a, [de] - and A_BUTTON - jr nz, .a - ld a, [de] - and B_BUTTON - jr nz, .b - - ld de, hJoyLast - ld a, [de] - and D_UP - jr nz, .up - ld a, [de] - and D_DOWN - jr nz, .down - ld a, [de] - and D_LEFT - jr nz, .left - ld a, [de] - and D_RIGHT - jr nz, .right - - ret - -.a - ld a, [wcd22] - cp NUM_KANA - jr c, .place - sub NUM_KANA - jr z, .done - dec a - jr z, .mode - jr .b - -.start - ld hl, wcd24 - set 0, [hl] - ld a, $8 - ld [wcd20], a ; wcd20 -.b - ld a, $4 - jr .load - -.select - ld a, [wcd2b] - xor $1 - ld [wcd2b], a - ld a, $6 - jr .load - -.place - ld a, $8 - jr .load - -.mode - ld a, $13 -.load - ld [wJumptableIndex], a - ld hl, wcd24 - set 2, [hl] - call PlayClickSFX - ret - -.done - ld a, [wcd20] ; wcd20 - call Function11ca6a - call PlayClickSFX - ret - -.left - inc hl -.down - inc hl -.right - inc hl -.up - ld a, [hl] - cp $ff - ret z - ld [wcd22], a - ret -; 11ceb9 (47:4eb9) - -Unknown_11ceb9: ; 11ceb9 - ; up left down right - db $ff, $01 - db $05, $ff - db $ff, $02 - db $06, $00 - db $ff, $03 - db $07, $01 - db $ff, $04 - db $08, $02 - db $ff, $14 - db $09, $03 - db $00, $06 - db $0a, $ff - db $01, $07 - db $0b, $05 - db $02, $08 - db $0c, $06 - db $03, $09 - db $0d, $07 - db $04, $19 - db $0e, $08 - db $05, $0b - db $0f, $ff - db $06, $0c - db $10, $0a - db $07, $0d - db $11, $0b - db $08, $0e - db $12, $0c - db $09, $1e - db $13, $0d - db $0a, $10 - db $2d, $ff - db $0b, $11 - db $2d, $0f - db $0c, $12 - db $2d, $10 - db $0d, $13 - db $2d, $11 - db $0e, $26 - db $2d, $12 - db $ff, $15 - db $19, $04 - db $ff, $16 - db $1a, $14 - db $ff, $17 - db $1b, $15 - db $ff, $18 - db $1c, $16 - db $ff, $23 - db $1d, $17 - db $14, $1a - db $1e, $09 - db $15, $1b - db $1f, $19 - db $16, $1c - db $20, $1a - db $17, $1d - db $21, $1b - db $18, $2b - db $22, $1c - db $19, $1f - db $26, $0e - db $1a, $20 - db $27, $1e - db $1b, $21 - db $28, $1f - db $1c, $22 - db $29, $20 - db $1d, $2c - db $2a, $21 - db $ff, $24 - db $2b, $18 - db $ff, $25 - db $2b, $23 - db $ff, $ff - db $2b, $24 - db $1e, $27 - db $2e, $13 - db $1f, $28 - db $2e, $26 - db $20, $29 - db $2e, $27 - db $21, $2a - db $2e, $28 - db $22, $ff - db $2e, $29 - db $23, $ff - db $2c, $1d - db $2b, $ff - db $2f, $22 - db $0f, $2e - db $ff, $ff - db $26, $2f - db $ff, $2d - db $2c, $ff - db $ff, $2e -; 11cf79 - -String_11cf79: ; 11cf79 -; Hiragana table - db "あいうえお なにぬねの や ゆ よ" - next "かきくけこ はひふへほ わ" - next "さしすせそ まみむめも そのた" - next "たちつてと らりるれろ" - db "@" -; 11cfb5 - -Function11cfb5: ; 11cfb5 (47:4fb5) - ld hl, wJumptableIndex - inc [hl] - ret -; 11cfba (47:4fba) - -Unknown_11cfba: - db 0, 0 ; start coords - db 20, 6 ; end coords - -Unknown_11cfbe: - db 0, 14 ; start coords - db 20, 4 ; end coords - -Unknown_11cfc2: - db 0, 6 ; start coords - db 20, 10 ; end coords - -Unknown_11cfc6: - db 0, 12 ; start coords - db 20, 6 ; end coords - -Unknown_11cfca: - db 14, 7 ; start coords - db 6, 5 ; end coords -; 11cfce - -Function11cfce: ; 11cfce (47:4fce) - hlcoord 0, 0 - ld bc, SCREEN_WIDTH - ld a, [de] - inc de - push af - ld a, [de] - inc de - and a -.add_n_times - jr z, .done_add_n_times - add hl, bc - dec a - jr .add_n_times -.done_add_n_times - pop af - ld c, a - ld b, 0 - add hl, bc - push hl - ld a, $79 - ld [hli], a - ld a, [de] - inc de - dec a - dec a - jr z, .skip_fill - ld c, a - ld a, $7a -.fill_loop - ld [hli], a - dec c - jr nz, .fill_loop -.skip_fill - ld a, $7b - ld [hl], a - pop hl - ld bc, SCREEN_WIDTH - add hl, bc - ld a, [de] - dec de - dec a - dec a - jr z, .skip_section - ld b, a -.loop - push hl - ld a, $7c - ld [hli], a - ld a, [de] - dec a - dec a - jr z, .skip_row - ld c, a - ld a, $7f -.row_loop - ld [hli], a - dec c - jr nz, .row_loop -.skip_row - ld a, $7c - ld [hl], a - pop hl - push bc - ld bc, SCREEN_WIDTH - add hl, bc - pop bc - dec b - jr nz, .loop -.skip_section - ld a, $7d - ld [hli], a - ld a, [de] - dec a - dec a - jr z, .skip_remainder - ld c, a - ld a, $7a -.final_loop - ld [hli], a - dec c - jr nz, .final_loop -.skip_remainder - ld a, $7e - ld [hl], a - ret - -Function11d035: ; 11d035 (47:5035) - hlcoord 0, 0 - ld bc, SCREEN_WIDTH - ld a, [de] - inc de - push af - ld a, [de] - inc de - and a -.add_n_times - jr z, .done_add_n_times - add hl, bc - dec a - jr .add_n_times -.done_add_n_times - pop af - ld c, a - ld b, $0 - add hl, bc - push hl - ld a, $79 - ld [hl], a - pop hl - push hl - ld a, [de] - dec a - inc de - ld c, a - add hl, bc - ld a, $7b - ld [hl], a - call .AddNMinusOneTimes - ld a, $7e - ld [hl], a - pop hl - push hl - call .AddNMinusOneTimes - ld a, $7d - ld [hl], a - pop hl - push hl - inc hl - push hl - call .AddNMinusOneTimes - pop bc - dec de - ld a, [de] - cp $2 - jr z, .skip - dec a - dec a -.loop - push af - ld a, $7a - ld [hli], a - ld [bc], a - inc bc - pop af - dec a - jr nz, .loop -.skip - pop hl - ld bc, $14 - add hl, bc - push hl - ld a, [de] - dec a - ld c, a - ld b, $0 - add hl, bc - pop bc - inc de - ld a, [de] - cp $2 - ret z - push bc - dec a - dec a - ld c, a - ld b, a - ld de, $14 -.loop2 - ld a, $7c - ld [hl], a - add hl, de - dec c - jr nz, .loop2 - pop hl -.loop3 - ld a, $7c - ld [hl], a - add hl, de - dec b - jr nz, .loop3 - ret - -.AddNMinusOneTimes: ; 11d0ac (47:50ac) - ld a, [de] - dec a - ld bc, SCREEN_WIDTH -.add_n_minus_one_times - add hl, bc - dec a - jr nz, .add_n_minus_one_times - ret - -AnimateEZChatCursor: ; 11d0b6 (47:50b6) - ld hl, SPRITEANIMSTRUCT_0C - add hl, bc - ld a, [hl] - ld e, a - ld d, 0 - ld hl, .Jumptable - add hl, de - add hl, de - ld a, [hli] - ld h, [hl] - ld l, a - jp hl - -.Jumptable: - dw .zero - dw .one - dw .two - dw .three - dw .four - dw .five - dw .six - dw .seven - dw .eight - dw .nine - dw .ten - -.zero ; 11d0dd (47:50dd) - ld a, [wcd20] ; wcd20 - sla a - ld hl, .Coords_Zero - ld e, $1 - jr .load - -.one ; 11d0e9 (47:50e9) - ld a, [wcd21] - sla a - ld hl, .Coords_One - ld e, $2 - jr .load - -.two ; 11d0f5 (47:50f5) - ld hl, .FramesetsIDs_Two - ld a, [wcd22] - ld e, a - ld d, $0 - add hl, de - ld a, [hl] - call ReinitSpriteAnimFrame - - ld a, [wcd22] - sla a - ld hl, .Coords_Two - ld e, $4 - jr .load - -.three ; 11d10f (47:510f) - ld a, SPRITE_ANIM_FRAMESET_27 - call ReinitSpriteAnimFrame - ld a, [wMobileCommsJumptableIndex] - sla a - ld hl, .Coords_Three - ld e, $8 -.load ; 11d11e (47:511e) - push de - ld e, a - ld d, $0 - add hl, de - push hl - pop de - ld hl, SPRITEANIMSTRUCT_XCOORD - add hl, bc - ld a, [de] - inc de - ld [hli], a - ld a, [de] - ld [hl], a - pop de - ld a, e - call .UpdateObjectFlags - ret - -.four ; 11d134 (47:5134) - ld a, SPRITE_ANIM_FRAMESET_27 - call ReinitSpriteAnimFrame - ld a, [wcd2a] - sla a - ld hl, .Coords_Four - ld e, $10 - jr .load - -.five ; 11d145 (47:5145) - ld a, SPRITE_ANIM_FRAMESET_27 - call ReinitSpriteAnimFrame - ld a, [wcd2c] - sla a - ld hl, .Coords_Five - ld e, $20 - jr .load - -.six ; 11d156 (47:5156) - ld a, SPRITE_ANIM_FRAMESET_2A - call ReinitSpriteAnimFrame - ; X = [wcd4a] * 8 + 24 - ld a, [wcd4a] - sla a - sla a - sla a - add $18 - ld hl, SPRITEANIMSTRUCT_XCOORD - add hl, bc - ld [hli], a - ; Y = 48 - ld a, $30 - ld [hl], a - - ld a, $1 - ld e, a - call .UpdateObjectFlags - ret - -.seven ; 11d175 (47:5175) - ld a, [wEZChatCursorYCoord] - cp $4 - jr z, .frameset_26 - ld a, SPRITE_ANIM_FRAMESET_28 - jr .got_frameset - -.frameset_26 - ld a, SPRITE_ANIM_FRAMESET_26 -.got_frameset - call ReinitSpriteAnimFrame - ld a, [wEZChatCursorYCoord] - cp $4 - jr z, .asm_11d1b1 - ; X = [wEZChatCursorXCoord] * 8 + 32 - ld a, [wEZChatCursorXCoord] - sla a - sla a - sla a - add $20 - ld hl, SPRITEANIMSTRUCT_XCOORD - add hl, bc - ld [hli], a - ; Y = [wEZChatCursorYCoord] * 16 + 72 - ld a, [wEZChatCursorYCoord] - sla a - sla a - sla a - sla a - add $48 - ld [hl], a - ld a, $2 - ld e, a - call .UpdateObjectFlags - ret - -.asm_11d1b1 - ; X = [wEZChatCursorXCoord] * 40 + 24 - ld a, [wEZChatCursorXCoord] - sla a - sla a - sla a - ld e, a - sla a - sla a - add e - add $18 - ld hl, SPRITEANIMSTRUCT_XCOORD - add hl, bc - ld [hli], a - ; Y = 138 - ld a, $8a - ld [hl], a - ld a, $2 - ld e, a - call .UpdateObjectFlags - ret - -.nine ; 11d1d1 (47:51d1) - ld d, -13 * 8 - ld a, SPRITE_ANIM_FRAMESET_2C - jr .eight_nine_load - -.eight ; 11d1d7 (47:51d7) - ld d, 2 * 8 - ld a, SPRITE_ANIM_FRAMESET_2B -.eight_nine_load ; 11d1db (47:51db) - push de - call ReinitSpriteAnimFrame - ld a, [wcd4a] - sla a - sla a - sla a - ld e, a - sla a - add e - add 8 * 8 - ld hl, SPRITEANIMSTRUCT_YCOORD - add hl, bc - ld [hld], a - pop af - ld [hl], a - ld a, $4 - ld e, a - call .UpdateObjectFlags - ret - -.ten ; 11d1fc (47:51fc) - ld a, SPRITE_ANIM_FRAMESET_26 - call ReinitSpriteAnimFrame - ld a, $8 - ld e, a - call .UpdateObjectFlags - ret -; 11d208 (47:5208) - -.Coords_Zero: ; 11d208 - dbpixel 1, 3, 5, 2 - dbpixel 7, 3, 5, 2 - dbpixel 13, 3, 5, 2 - dbpixel 1, 5, 5, 2 - dbpixel 7, 5, 5, 2 - dbpixel 13, 5, 5, 2 - dbpixel 1, 17, 5, 2 - dbpixel 7, 17, 5, 2 - dbpixel 13, 17, 5, 2 - -.Coords_One: ; 11d21a - dbpixel 1, 8, 5, 2 - dbpixel 7, 8, 5, 2 - dbpixel 13, 8, 5, 2 - dbpixel 1, 10, 5, 2 - dbpixel 7, 10, 5, 2 - dbpixel 13, 10, 5, 2 - dbpixel 1, 12, 5, 2 - dbpixel 7, 12, 5, 2 - dbpixel 13, 12, 5, 2 - dbpixel 1, 14, 5, 2 - dbpixel 7, 14, 5, 2 - dbpixel 13, 14, 5, 2 - dbpixel 1, 16, 5, 2 - dbpixel 7, 16, 5, 2 - dbpixel 13, 16, 5, 2 - dbpixel 1, 18, 5, 2 - dbpixel 7, 18, 5, 2 - dbpixel 13, 18, 5, 2 - -.Coords_Two: ; 11d23e - dbpixel 2, 9 ; 00 - dbpixel 3, 9 ; 01 - dbpixel 4, 9 ; 02 - dbpixel 5, 9 ; 03 - dbpixel 6, 9 ; 04 - dbpixel 2, 11 ; 05 - dbpixel 3, 11 ; 06 - dbpixel 4, 11 ; 07 - dbpixel 5, 11 ; 08 - dbpixel 6, 11 ; 09 - dbpixel 2, 13 ; 0a - dbpixel 3, 13 ; 0b - dbpixel 4, 13 ; 0c - dbpixel 5, 13 ; 0d - dbpixel 6, 13 ; 0e - dbpixel 2, 15 ; 0f - dbpixel 3, 15 ; 10 - dbpixel 4, 15 ; 11 - dbpixel 5, 15 ; 12 - dbpixel 6, 15 ; 13 - dbpixel 8, 9 ; 14 - dbpixel 9, 9 ; 15 - dbpixel 10, 9 ; 16 - dbpixel 11, 9 ; 17 - dbpixel 12, 9 ; 18 - dbpixel 8, 11 ; 19 - dbpixel 9, 11 ; 1a - dbpixel 10, 11 ; 1b - dbpixel 11, 11 ; 1c - dbpixel 12, 11 ; 1d - dbpixel 8, 13 ; 1e - dbpixel 9, 13 ; 1f - dbpixel 10, 13 ; 20 - dbpixel 11, 13 ; 21 - dbpixel 12, 13 ; 22 - dbpixel 14, 9 ; 23 - dbpixel 16, 9 ; 24 - dbpixel 18, 9 ; 25 - dbpixel 8, 15 ; 26 - dbpixel 9, 15 ; 27 - dbpixel 10, 15 ; 28 - dbpixel 11, 15 ; 29 - dbpixel 12, 15 ; 2a - dbpixel 14, 11 ; 2b - dbpixel 14, 13 ; 2c - dbpixel 1, 18, 5, 2 ; 2d - dbpixel 7, 18, 5, 2 ; 2e - dbpixel 13, 18, 5, 2 ; 2f - -.Coords_Three: ; 11d29e - dbpixel 2, 10 - dbpixel 8, 10 - dbpixel 14, 10 - dbpixel 2, 12 - dbpixel 8, 12 - dbpixel 14, 12 - dbpixel 2, 14 - dbpixel 8, 14 - dbpixel 14, 14 - dbpixel 2, 16 - dbpixel 8, 16 - dbpixel 14, 16 - -.Coords_Four: ; 11d2b6 - dbpixel 16, 10 - dbpixel 16, 12 - -.Coords_Five: ; 11d2ba - dbpixel 4, 10 - dbpixel 4, 12 - -.FramesetsIDs_Two: ; 11d2be - db SPRITE_ANIM_FRAMESET_28 ; 00 - db SPRITE_ANIM_FRAMESET_28 ; 01 - db SPRITE_ANIM_FRAMESET_28 ; 02 - db SPRITE_ANIM_FRAMESET_28 ; 03 - db SPRITE_ANIM_FRAMESET_28 ; 04 - db SPRITE_ANIM_FRAMESET_28 ; 05 - db SPRITE_ANIM_FRAMESET_28 ; 06 - db SPRITE_ANIM_FRAMESET_28 ; 07 - db SPRITE_ANIM_FRAMESET_28 ; 08 - db SPRITE_ANIM_FRAMESET_28 ; 09 - db SPRITE_ANIM_FRAMESET_28 ; 0a - db SPRITE_ANIM_FRAMESET_28 ; 0b - db SPRITE_ANIM_FRAMESET_28 ; 0c - db SPRITE_ANIM_FRAMESET_28 ; 0d - db SPRITE_ANIM_FRAMESET_28 ; 0e - db SPRITE_ANIM_FRAMESET_28 ; 0f - db SPRITE_ANIM_FRAMESET_28 ; 10 - db SPRITE_ANIM_FRAMESET_28 ; 11 - db SPRITE_ANIM_FRAMESET_28 ; 12 - db SPRITE_ANIM_FRAMESET_28 ; 13 - db SPRITE_ANIM_FRAMESET_28 ; 14 - db SPRITE_ANIM_FRAMESET_28 ; 15 - db SPRITE_ANIM_FRAMESET_28 ; 16 - db SPRITE_ANIM_FRAMESET_28 ; 17 - db SPRITE_ANIM_FRAMESET_28 ; 18 - db SPRITE_ANIM_FRAMESET_28 ; 19 - db SPRITE_ANIM_FRAMESET_28 ; 1a - db SPRITE_ANIM_FRAMESET_28 ; 1b - db SPRITE_ANIM_FRAMESET_28 ; 1c - db SPRITE_ANIM_FRAMESET_28 ; 1d - db SPRITE_ANIM_FRAMESET_28 ; 1e - db SPRITE_ANIM_FRAMESET_28 ; 1f - db SPRITE_ANIM_FRAMESET_28 ; 20 - db SPRITE_ANIM_FRAMESET_28 ; 21 - db SPRITE_ANIM_FRAMESET_28 ; 22 - db SPRITE_ANIM_FRAMESET_28 ; 23 - db SPRITE_ANIM_FRAMESET_28 ; 24 - db SPRITE_ANIM_FRAMESET_28 ; 25 - db SPRITE_ANIM_FRAMESET_28 ; 26 - db SPRITE_ANIM_FRAMESET_28 ; 27 - db SPRITE_ANIM_FRAMESET_28 ; 28 - db SPRITE_ANIM_FRAMESET_28 ; 29 - db SPRITE_ANIM_FRAMESET_28 ; 2a - db SPRITE_ANIM_FRAMESET_28 ; 2b - db SPRITE_ANIM_FRAMESET_29 ; 2c - db SPRITE_ANIM_FRAMESET_26 ; 2d - db SPRITE_ANIM_FRAMESET_26 ; 2e - db SPRITE_ANIM_FRAMESET_26 ; 2f - -.UpdateObjectFlags: ; 11d2ee (47:52ee) - ld hl, wcd24 - and [hl] - jr nz, .update_y_offset - ld a, e - ld hl, wcd23 - and [hl] - jr z, .reset_y_offset - ld hl, SPRITEANIMSTRUCT_0E - add hl, bc - ld a, [hl] - and a - jr z, .flip_bit_0 - dec [hl] - ret - -.flip_bit_0 - ld a, $0 - ld [hld], a - ld a, $1 - xor [hl] - ld [hl], a - and a - jr nz, .update_y_offset -.reset_y_offset - ld hl, SPRITEANIMSTRUCT_YOFFSET - add hl, bc - xor a - ld [hl], a - ret - -.update_y_offset - ld hl, SPRITEANIMSTRUCT_YCOORD - add hl, bc - ld a, $b0 - sub [hl] - ld hl, SPRITEANIMSTRUCT_YOFFSET - add hl, bc - ld [hl], a - ret - -Function11d323: ; 11d323 - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - ld hl, Palette_11d33a - ld de, UnknBGPals - ld bc, 16 palettes - call CopyBytes - pop af - ld [rSVBK], a - ret -; 11d33a - -Palette_11d33a: - RGB 31, 31, 31 - RGB 00, 00, 00 - RGB 00, 00, 00 - RGB 00, 00, 00 - - RGB 31, 16, 31 - RGB 00, 00, 00 - RGB 00, 00, 00 - RGB 00, 00, 00 - - RGB 23, 17, 31 - RGB 00, 00, 00 - RGB 00, 00, 00 - RGB 00, 00, 00 - - RGB 31, 31, 31 - RGB 00, 00, 00 - RGB 00, 00, 00 - RGB 00, 00, 00 - - RGB 31, 31, 31 - RGB 00, 00, 00 - RGB 00, 00, 00 - RGB 00, 00, 00 - - RGB 31, 31, 31 - RGB 00, 00, 00 - RGB 00, 00, 00 - RGB 00, 00, 00 - - RGB 31, 31, 31 - RGB 00, 00, 00 - RGB 00, 00, 00 - RGB 00, 00, 00 - - RGB 31, 31, 31 - RGB 00, 00, 00 - RGB 00, 00, 00 - RGB 00, 00, 00 - - RGB 00, 00, 00 - RGB 00, 00, 00 - RGB 00, 00, 00 - RGB 00, 00, 00 - - RGB 00, 00, 00 - RGB 00, 00, 00 - RGB 00, 00, 00 - RGB 00, 00, 00 - - RGB 00, 00, 00 - RGB 00, 00, 00 - RGB 00, 00, 00 - RGB 00, 00, 00 - - RGB 00, 00, 00 - RGB 00, 00, 00 - RGB 00, 00, 00 - RGB 00, 00, 00 - - RGB 00, 00, 00 - RGB 00, 00, 00 - RGB 00, 00, 00 - RGB 00, 00, 00 - - RGB 00, 00, 00 - RGB 00, 00, 00 - RGB 00, 00, 00 - RGB 00, 00, 00 - - RGB 00, 00, 00 - RGB 00, 00, 00 - RGB 00, 00, 00 - RGB 00, 00, 00 - - RGB 00, 00, 00 - RGB 00, 00, 00 - RGB 00, 00, 00 - RGB 00, 00, 00 -; 11d3ba - -EZChat_GetSeenPokemonByKana: ; 11d3ba - ld a, [rSVBK] - push af - ld hl, $c648 - ld a, w5_d800 % $100 - ld [wcd2d], a - ld [hli], a - ld a, w5_d800 / $100 - ld [wcd2e], a - ld [hl], a - - ld a, SortedPokemon % $100 - ld [wcd2f], a - ld a, SortedPokemon / $100 - ld [wcd30], a - - ld a, $c6a8 % $100 - ld [wcd31], a - ld a, $c6a8 / $100 - ld [wcd32], a - - ld a, $c64a % $100 - ld [wcd33], a - ld a, $c64a / $100 - ld [wcd34], a - - ld hl, EZChat_SortedWords - ld a, (EZChat_SortedWordsEnd - EZChat_SortedWords) / 4 - -.MasterLoop: ; 11d3ef - push af -; read row -; offset - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a -; size - ld a, [hli] - ld c, a - ld a, [hli] - ld b, a -; save the pointer to the next row - push hl -; add de to w3_d000 - ld hl, w3_d000 - add hl, de -; recover de from wcd2d (default: w5_d800) - ld a, [wcd2d] - ld e, a - ld a, [wcd2e] - ld d, a -; save bc for later - push bc - -.loop1 -; copy 2*bc bytes from 3:hl to 5:de - ld a, $3 - ld [rSVBK], a - ld a, [hli] - push af - ld a, $5 - ld [rSVBK], a - pop af - ld [de], a - inc de - - ld a, $3 - ld [rSVBK], a - ld a, [hli] - push af - ld a, $5 - ld [rSVBK], a - pop af - ld [de], a - inc de - - dec bc - ld a, c - or b - jr nz, .loop1 - -; recover the pointer from wcd2f (default: SortedPokemon) - ld a, [wcd2f] - ld l, a - ld a, [wcd30] - ld h, a -; copy the pointer from [hl] to bc - ld a, [hli] - ld c, a - ld a, [hli] - ld b, a -; store the pointer to the next pointer back in wcd2f - ld a, l - ld [wcd2f], a - ld a, h - ld [wcd30], a -; push pop that pointer to hl - push bc - pop hl - ld c, $0 -.loop2 -; Have you seen this Pokemon? - ld a, [hl] - cp $ff - jr z, .done - call .CheckSeenMon - jr nz, .next -; If not, skip it. - inc hl - jr .loop2 - -.next -; If so, append it to the list at 5:de, and increase the count. - ld a, [hli] - ld [de], a - inc de - xor a - ld [de], a - inc de - inc c - jr .loop2 - -.done -; Remember the original value of bc from the table? -; Well, the stack remembers it, and it's popping it to hl. - pop hl -; Add the number of seen Pokemon from the list. - ld b, $0 - add hl, bc -; Push pop to bc. - push hl - pop bc -; Load the pointer from [wcd31] (default: $c6a8) - ld a, [wcd31] - ld l, a - ld a, [wcd32] - ld h, a -; Save the quantity from bc to [hl] - ld a, c - ld [hli], a - ld a, b - ld [hli], a -; Save the new value of hl to [wcd31] - ld a, l - ld [wcd31], a - ld a, h - ld [wcd32], a -; Recover the pointer from [wcd33] (default: $c64a) - ld a, [wcd33] - ld l, a - ld a, [wcd34] - ld h, a -; Save the current value of de there - ld a, e - ld [wcd2d], a - ld [hli], a - ld a, d - ld [wcd2e], a -; Save the new value of hl back to [wcd33] - ld [hli], a - ld a, l - ld [wcd33], a - ld a, h - ld [wcd34], a -; Next row - pop hl - pop af - dec a - jr z, .ExitMasterLoop - jp .MasterLoop - -.ExitMasterLoop: - pop af - ld [rSVBK], a - ret -; 11d493 - -.CheckSeenMon: ; 11d493 - push hl - push bc - push de - dec a - ld hl, rSVBK - ld e, $1 - ld [hl], e - call CheckSeenMon - ld hl, rSVBK - ld e, $5 - ld [hl], e - pop de - pop bc - pop hl - ret -; 11d4aa - -EZChat_GetCategoryWordsByKana: ; 11d4aa - ld a, [rSVBK] - push af - ld a, $3 - ld [rSVBK], a - - ; load pointers - ld hl, MobileEZChatCategoryPointers - ld bc, MobileEZChatData_WordAndPageCounts - - ; init WRAM registers - xor a - ld [wcd2d], a - inc a - ld [wcd2e], a - - ; enter the first loop - ld a, 14 -.loop1 - push af - - ; load the pointer to the category - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - push hl - - ; skip to the attributes - ld hl, 5 ; length of a string - add hl, de - - ; get the number of words in the category - ld a, [bc] ; number of entries to copy - inc bc - inc bc - push bc - -.loop2 - push af - push hl - - ; load offset at [hl] - ld a, [hli] - ld e, a - ld a, [hl] - ld d, a - - ; add to w3_d000 - ld hl, w3_d000 - add hl, de - - ; copy from wcd2d and increment [wcd2d] in place - ld a, [wcd2d] - ld [hli], a - inc a - ld [wcd2d], a - - ; copy from wcd2e - ld a, [wcd2e] - ld [hl], a - - ; next entry - pop hl - ld de, 8 - add hl, de - pop af - dec a - jr nz, .loop2 - - ; reset and go to next category - ld hl, wcd2d - xor a - ld [hli], a - inc [hl] - pop bc - pop hl - pop af - dec a - jr nz, .loop1 - pop af - ld [rSVBK], a - ret -; 11d4fe - -SortedPokemon: -; Pokemon sorted by kana. -; Notably, Rhydon is missing. - dw .a - dw .i - dw .u - dw .e - dw .o - dw .ka_ga - dw .ki_gi - dw .ku_gu - dw .ke_ge - dw .ko_go - dw .sa_za - dw .shi_ji - dw .su_zu - dw .se_ze - dw .so_zo - dw .ta_da - dw .chi_dhi - dw .tsu_du - dw .te_de - dw .to_do - dw .na - dw .ni - dw .nu - dw .ne - dw .no - dw .ha_ba_pa - dw .hi_bi_pi - dw .fu_bu_pu - dw .he_be_pe - dw .ho_bo_po - dw .ma - dw .mi - dw .mu - dw .me - dw .mo - dw .ya - dw .yu - dw .yo - dw .ra - dw .ri - dw .ru - dw .re - dw .ro - dw .wa - dw .end - -.a: db EKANS, ARBOK, SEAKING, ARIADOS, CROCONAW, UNOWN, -1 -.i: db EEVEE, GEODUDE, SPINARAK, PILOSWINE, ONIX, -1 -.u: db ARCANINE, SUDOWOODO, WEEPINBELL, VICTREEBEL, WOOPER, SWINUB, -1 -.e: db SKARMORY, AIPOM, ESPEON, HITMONCHAN, ELEKID, ELECTABUZZ, ENTEI, -1 -.o: db FERALIGATR, FURRET, OCTILLERY, PRIMEAPE, SENTRET, STANTLER, SPEAROW, FEAROW, OMASTAR, OMANYTE, -1 -.ka_ga db GROWLITHE, MACHAMP, DRAGONITE, PINSIR, SNORLAX, KABUTO, KABUTOPS, HITMONTOP, WARTORTLE, BLASTOISE, FARFETCH_D, CUBONE, MAROWAK, KANGASKHAN, -1 -.ki_gi db SUNFLORA, CATERPIE, GYARADOS, RAPIDASH, NINETALES, GIRAFARIG, BELLOSSOM, KINGDRA, KINGLER, -1 -.ku_gu db GLOOM, PINECO, GLIGAR, KRABBY, GRANBULL, CROBAT, -1 -.ke_ge db ABRA, GENGAR, TAUROS, -1 -.ko_go db MAGIKARP, MAGNEMITE, GASTLY, HAUNTER, MACHOKE, KAKUNA, PSYDUCK, PHANPY, RATTATA, GOLDUCK, GOLBAT, GOLEM, GRAVELER, VENONAT, -1 -.sa_za db RHYHORN, PUPITAR, CORSOLA, HITMONLEE, ZAPDOS, JOLTEON, SANDSHREW, SANDSLASH, -1 ; RHYDON should lead this list -.shi_ji db SEADRA, SHELLDER, VAPOREON, DEWGONG, -1 -.su_zu db SUICUNE, STARMIE, SCYTHER, ZUBAT, BEEDRILL, HYPNO, DROWZEE, -1 -.se_ze db SQUIRTLE, CELEBI, -1 -.so_zo db WOBBUFFET, -1 -.ta_da db DUGTRIO, HORSEA, EXEGGCUTE, -1 -.chi_dhi db CHIKORITA, CHINCHOU, -1 -.tsu_du db SHUCKLE, -1 -.te_de db DIGLETT, REMORAID, DELIBIRD, HOUNDOUR, AMPHAROS, -1 -.to_do db DODUO, DODRIO, SMEARGLE, KOFFING, TENTACRUEL, TOGETIC, TOGEPI, GOLDEEN, METAPOD, DONPHAN, -1 -.na db ODDISH, EXEGGUTOR, -1 -.ni db NIDOKING, NIDOQUEEN, NIDORAN_M, NIDORAN_F, NIDORINA, NIDORINO, MEOWTH, SNEASEL, POLIWHIRL, POLITOED, POLIWRATH, POLIWAG, -1 -.nu db QUAGSIRE, -1 -.ne db NATU, XATU, -1 -.no db DUNSPARCE, -1 -.ha_ba_pa db SEEL, STEELIX, TYPHLOSION, DRAGONAIR, BUTTERFREE, SCIZOR, HOPPIP, BLISSEY, PARAS, PARASECT, QWILFISH, MR__MIME, TYROGUE, CLOYSTER, TYRANITAR, -1 -.hi_bi_pi db CLEFFA, WEEDLE, PIKACHU, CLEFABLE, PIDGEOT, PIDGEOTTO, PICHU, CLEFAIRY, CHARMANDER, STARYU, CYNDAQUIL, SUNKERN, TEDDIURSA, VOLTORB, -1 -.fu_bu_pu db MOLTRES, FLAREON, ALAKAZAM, MAGMAR, FORRETRESS, WIGGLYTUFF, IVYSAUR, BULBASAUR, VENUSAUR, AERODACTYL, MAGBY, IGGLYBUFF, UMBREON, ARTICUNO, JIGGLYPUFF, SNUBBULL, -1 -.he_be_pe db BAYLEEF, GRIMER, MUK, HERACROSS, HOUNDOOM, PERSIAN, LICKITUNG, -1 -.ho_bo_po db HO_OH, HOOTHOOT, PIDGEY, PONYTA, SKIPLOOM, PORYGON, PORYGON2, -1 -.ma db MAGCARGO, SLUGMA, QUILAVA, BELLSPROUT, WEEZING, MARILL, AZUMARILL, ELECTRODE, MANKEY, MANTINE, -1 -.mi db DRATINI, MEW, MEWTWO, MILTANK, -1 -.mu db MISDREAVUS, SMOOCHUM, -1 -.me db MEGANIUM, DITTO, TENTACOOL, MAREEP, -1 -.mo db FLAAFFY, VENOMOTH, TANGELA, -1 -.ya db SLOWKING, SLOWBRO, SLOWPOKE, MURKROW, YANMA, -1 -.yu db KADABRA, -1 -.yo db LARVITAR, NOCTOWL, -1 -.ra db RAIKOU, RAICHU, CHANSEY, RATICATE, LAPRAS, VILEPLUME, LANTURN, -1 -.ri db CHARMELEON, CHARIZARD, URSARING, -1 -.ru db JYNX, LUGIA, -1 -.re db MAGNETON, LEDIAN, LEDYBA, -1 -.ro db VULPIX, -1 -.wa db JUMPLUFF, TOTODILE, MACHOP;, -1 -.end db -1 -; 11d67e - -GFX_11d67e: -INCBIN "gfx/pokedex/select_start.2bpp" -; 11d6de - -LZ_11d6de: -INCBIN "gfx/pokedex/slowpoke.2bpp.lz" -; 11da52 - -MobileEZChatCategoryNames: ; 11da52 -; Fixed message categories - db "ポケモン@@" ; 00 - db "タイプ@@@" ; 01 - db "あいさつ@@" ; 02 - db "ひと@@@@" ; 03 - db "バトル@@@" ; 04 - db "こえ@@@@" ; 05 - db "かいわ@@@" ; 06 - db "きもち@@@" ; 07 - db "じょうたい@" ; 08 - db "せいかつ@@" ; 09 - db "しゅみ@@@" ; 0a - db "こうどう@@" ; 0b - db "じかん@@@" ; 0c - db "むすび@@@" ; 0d - db "あれこれ@@" ; 0e -; 11daac - -MobileEZChatCategoryPointers: ; 11daac -; entries correspond to EZCHAT_* constants - dw .Types ; 01 - dw .Greetings ; 02 - dw .People ; 03 - dw .Battle ; 04 - dw .Exclamations ; 05 - dw .Conversation ; 06 - dw .Feelings ; 07 - dw .Conditions ; 08 - dw .Life ; 09 - dw .Hobbies ; 0a - dw .Actions ; 0b - dw .Time ; 0c - dw .Farewells ; 0d - dw .ThisAndThat ; 0e - -.Types: ; 11dac8 - db "あく@@@", $26, $0, $0 - db "いわ@@@", $aa, $0, $0 - db "エスパー@", $da, $0, $0 - db "かくとう@", $4e, $1, $0 - db "くさ@@@", $ba, $1, $0 - db "ゴースト@", $e4, $1, $0 - db "こおり@@", $e6, $1, $0 - db "じめん@@", $68, $2, $0 - db "タイプ@@", $e8, $2, $0 - db "でんき@@", $8e, $3, $0 - db "どく@@@", $ae, $3, $0 - db "ドラゴン@", $bc, $3, $0 - db "ノーマル@", $22, $4, $0 - db "はがね@@", $36, $4, $0 - db "ひこう@@", $5e, $4, $0 - db "ほのお@@", $b2, $4, $0 - db "みず@@@", $f4, $4, $0 - db "むし@@@", $12, $5, $0 - -.Greetings: ; 11db58 - db "ありがと@", $58, $0, $0 - db "ありがとう", $5a, $0, $0 - db "いくぜ!@", $80, $0, $0 - db "いくよ!@", $82, $0, $0 - db "いくわよ!", $84, $0, $0 - db "いやー@@", $a6, $0, $0 - db "おっす@@", $a, $1, $0 - db "おはつです", $22, $1, $0 - db "おめでとう", $2a, $1, $0 - db "ごめん@@", $f8, $1, $0 - db "ごめんよ@", $fa, $1, $0 - db "こらっ@@", $fc, $1, $0 - db "こんちは!", $a, $2, $0 - db "こんにちは", $10, $2, $0 - db "さようなら", $28, $2, $0 - db "サンキュー", $2e, $2, $0 - db "さんじょう", $30, $2, $0 - db "しっけい@", $48, $2, $0 - db "しつれい@", $4c, $2, $0 - db "じゃーね@", $6c, $2, $0 - db "すいません", $8c, $2, $0 - db "それじゃ@", $ca, $2, $0 - db "どうも@@", $a6, $3, $0 - db "なんじゃ@", $ee, $3, $0 - db "ハーイ@@", $2c, $4, $0 - db "はいはい@", $32, $4, $0 - db "バイバイ@", $34, $4, $0 - db "へイ@@@", $8a, $4, $0 - db "またね@@", $de, $4, $0 - db "もしもし@", $32, $5, $0 - db "やあ@@@", $3e, $5, $0 - db "やっほー@", $4e, $5, $0 - db "よう@@@", $62, $5, $0 - db "ようこそ@", $64, $5, $0 - db "よろしく@", $80, $5, $0 - db "らっしゃい", $94, $5, $0 - -.People: ; 11dc78 - db "あいて@@", $1c, $0, $0 - db "あたし@@", $36, $0, $0 - db "あなた@@", $40, $0, $0 - db "あなたが@", $42, $0, $0 - db "あなたに@", $44, $0, $0 - db "あなたの@", $46, $0, $0 - db "あなたは@", $48, $0, $0 - db "あなたを@", $4a, $0, $0 - db "おかあさん", $e8, $0, $0 - db "おじいさん", $fc, $0, $0 - db "おじさん@", $2, $1, $0 - db "おとうさん", $e, $1, $0 - db "おとこのこ", $10, $1, $0 - db "おとな@@", $14, $1, $0 - db "おにいさん", $16, $1, $0 - db "おねえさん", $18, $1, $0 - db "おばあさん", $1c, $1, $0 - db "おばさん@", $20, $1, $0 - db "おれさま@", $34, $1, $0 - db "おんなのこ", $3a, $1, $0 - db "ガール@@", $40, $1, $0 - db "かぞく@@", $52, $1, $0 - db "かのじょ@", $72, $1, $0 - db "かれ@@@", $7c, $1, $0 - db "きみ@@@", $9a, $1, $0 - db "きみが@@", $9c, $1, $0 - db "きみに@@", $9e, $1, $0 - db "きみの@@", $a0, $1, $0 - db "きみは@@", $a2, $1, $0 - db "きみを@@", $a4, $1, $0 - db "ギャル@@", $ae, $1, $0 - db "きょうだい", $b2, $1, $0 - db "こども@@", $f0, $1, $0 - db "じぶん@@", $54, $2, $0 - db "じぶんが@", $56, $2, $0 - db "じぶんに@", $58, $2, $0 - db "じぶんの@", $5a, $2, $0 - db "じぶんは@", $5c, $2, $0 - db "じぶんを@", $5e, $2, $0 - db "だれ@@@", $18, $3, $0 - db "だれか@@", $1a, $3, $0 - db "だれが@@", $1c, $3, $0 - db "だれに@@", $1e, $3, $0 - db "だれの@@", $20, $3, $0 - db "だれも@@", $22, $3, $0 - db "だれを@@", $24, $3, $0 - db "ちゃん@@", $38, $3, $0 - db "ともだち@", $b8, $3, $0 - db "なかま@@", $d4, $3, $0 - db "ひと@@@", $62, $4, $0 - db "ボーイ@@", $98, $4, $0 - db "ボク@@@", $a0, $4, $0 - db "ボクが@@", $a2, $4, $0 - db "ボクに@@", $a4, $4, $0 - db "ボクの@@", $a6, $4, $0 - db "ボクは@@", $a8, $4, $0 - db "ボクを@@", $aa, $4, $0 - db "みんな@@", $4, $5, $0 - db "みんなが@", $6, $5, $0 - db "みんなに@", $8, $5, $0 - db "みんなの@", $a, $5, $0 - db "みんなは@", $c, $5, $0 - db "ライバル@", $8a, $5, $0 - db "わたし@@", $c2, $5, $0 - db "わたしが@", $c4, $5, $0 - db "わたしに@", $c6, $5, $0 - db "わたしの@", $c8, $5, $0 - db "わたしは@", $ca, $5, $0 - db "わたしを@", $cc, $5, $0 - -.Battle: ; 11dea0 - db "あいしょう", $18, $0, $0 - db "いけ!@@", $88, $0, $0 - db "いちばん@", $96, $0, $0 - db "かくご@@", $4c, $1, $0 - db "かたせて@", $54, $1, $0 - db "かち@@@", $56, $1, $0 - db "かつ@@@", $58, $1, $0 - db "かった@@", $60, $1, $0 - db "かったら@", $62, $1, $0 - db "かって@@", $64, $1, $0 - db "かてない@", $66, $1, $0 - db "かてる@@", $68, $1, $0 - db "かなわない", $70, $1, $0 - db "きあい@@", $84, $1, $0 - db "きめた@@", $a8, $1, $0 - db "きりふだ@", $b6, $1, $0 - db "くらえ@@", $c2, $1, $0 - db "こい!@@", $da, $1, $0 - db "こうげき@", $e0, $1, $0 - db "こうさん@", $e2, $1, $0 - db "こんじょう", $8, $2, $0 - db "さいのう@", $16, $2, $0 - db "さくせん@", $1a, $2, $0 - db "さばき@@", $22, $2, $0 - db "しょうぶ@", $7e, $2, $0 - db "しょうり@", $80, $2, $0 - db "せめ@@@", $b4, $2, $0 - db "センス@@", $b6, $2, $0 - db "たいせん@", $e6, $2, $0 - db "たたかい@", $f6, $2, $0 - db "ちから@@", $32, $3, $0 - db "チャレンジ", $36, $3, $0 - db "つよい@@", $58, $3, $0 - db "つよすぎ@", $5a, $3, $0 - db "つらい@@", $5c, $3, $0 - db "つらかった", $5e, $3, $0 - db "てかげん@", $6c, $3, $0 - db "てき@@@", $6e, $3, $0 - db "てんさい@", $90, $3, $0 - db "でんせつ@", $94, $3, $0 - db "トレーナー", $c6, $3, $0 - db "にげ@@@", $4, $4, $0 - db "ぬるい@@", $10, $4, $0 - db "ねらう@@", $16, $4, $0 - db "バトル@@", $4a, $4, $0 - db "ファイト@", $72, $4, $0 - db "ふっかつ@", $78, $4, $0 - db "ポイント@", $94, $4, $0 - db "ポケモン@", $ac, $4, $0 - db "ほんき@@", $bc, $4, $0 - db "まいった!", $c4, $4, $0 - db "まけ@@@", $c8, $4, $0 - db "まけたら@", $ca, $4, $0 - db "まけて@@", $cc, $4, $0 - db "まける@@", $ce, $4, $0 - db "まもり@@", $ea, $4, $0 - db "みかた@@", $f2, $4, $0 - db "みとめない", $fe, $4, $0 - db "みとめる@", $0, $5, $0 - db "むてき@@", $16, $5, $0 - db "もらった!", $3c, $5, $0 - db "よゆう@@", $7a, $5, $0 - db "よわい@@", $82, $5, $0 - db "よわすぎ@", $84, $5, $0 - db "らくしょう", $8e, $5, $0 - db "りーダー@", $9e, $5, $0 - db "ルール@@", $a0, $5, $0 - db "レべル@@", $a6, $5, $0 - db "わざ@@@", $be, $5, $0 - -.Exclamations: ; 11e0c8 - db "!@@@@", $0, $0, $0 - db "!!@@@", $2, $0, $0 - db "!?@@@", $4, $0, $0 - db "?@@@@", $6, $0, $0 - db "…@@@@", $8, $0, $0 - db "…!@@@", $a, $0, $0 - db "………@@", $c, $0, $0 - db "ー@@@@", $e, $0, $0 - db "ーーー@@", $10, $0, $0 - db "あーあ@@", $14, $0, $0 - db "あーん@@", $16, $0, $0 - db "あははー@", $52, $0, $0 - db "あら@@@", $54, $0, $0 - db "いえ@@@", $72, $0, $0 - db "イエス@@", $74, $0, $0 - db "うう@@@", $ac, $0, $0 - db "うーん@@", $ae, $0, $0 - db "うおー!@", $b0, $0, $0 - db "うおりゃー", $b2, $0, $0 - db "うひょー@", $bc, $0, $0 - db "うふふ@@", $be, $0, $0 - db "うわー@@", $ca, $0, $0 - db "うわーん@", $cc, $0, $0 - db "ええ@@@", $d2, $0, $0 - db "えー@@@", $d4, $0, $0 - db "えーん@@", $d6, $0, $0 - db "えへへ@@", $dc, $0, $0 - db "おいおい@", $e0, $0, $0 - db "おお@@@", $e2, $0, $0 - db "おっと@@", $c, $1, $0 - db "がーん@@", $42, $1, $0 - db "キャー@@", $aa, $1, $0 - db "ギャー@@", $ac, $1, $0 - db "ぐふふふふ", $bc, $1, $0 - db "げっ@@@", $ce, $1, $0 - db "しくしく@", $3e, $2, $0 - db "ちえっ@@", $2e, $3, $0 - db "てへ@@@", $86, $3, $0 - db "ノー@@@", $20, $4, $0 - db "はあー@@", $2a, $4, $0 - db "はい@@@", $30, $4, $0 - db "はっはっは", $48, $4, $0 - db "ひいー@@", $56, $4, $0 - db "ひゃあ@@", $6a, $4, $0 - db "ふっふっふ", $7c, $4, $0 - db "ふにゃ@@", $7e, $4, $0 - db "ププ@@@", $80, $4, $0 - db "ふふん@@", $82, $4, $0 - db "ふん@@@", $88, $4, $0 - db "へっへっへ", $8e, $4, $0 - db "へへー@@", $90, $4, $0 - db "ほーほほほ", $9c, $4, $0 - db "ほら@@@", $b6, $4, $0 - db "まあ@@@", $c0, $4, $0 - db "むきー!!", $10, $5, $0 - db "むふー@@", $18, $5, $0 - db "むふふ@@", $1a, $5, $0 - db "むむ@@@", $1c, $5, $0 - db "よーし@@", $6a, $5, $0 - db "よし!@@", $72, $5, $0 - db "ラララ@@", $98, $5, $0 - db "わーい@@", $ac, $5, $0 - db "わーん!!", $b0, $5, $0 - db "ワォ@@@", $b2, $5, $0 - db "わっ!!@", $ce, $5, $0 - db "わははは!", $d0, $5, $0 - -.Conversation: ; 11e2d8 - db "あのね@@", $50, $0, $0 - db "あんまり@", $6e, $0, $0 - db "いじわる@", $8e, $0, $0 - db "うそ@@@", $b6, $0, $0 - db "うむ@@@", $c4, $0, $0 - db "おーい@@", $e4, $0, $0 - db "おすすめ@", $6, $1, $0 - db "おばかさん", $1e, $1, $0 - db "かなり@@", $6e, $1, $0 - db "から@@@", $7a, $1, $0 - db "きぶん@@", $98, $1, $0 - db "けど@@@", $d6, $1, $0 - db "こそ@@@", $ea, $1, $0 - db "こと@@@", $ee, $1, $0 - db "さあ@@@", $12, $2, $0 - db "さっぱり@", $1e, $2, $0 - db "さて@@@", $20, $2, $0 - db "じゅうぶん", $72, $2, $0 - db "すぐ@@@", $94, $2, $0 - db "すごく@@", $98, $2, $0 - db "すこしは@", $9a, $2, $0 - db "すっっごい", $a0, $2, $0 - db "ぜーんぜん", $b0, $2, $0 - db "ぜったい@", $b2, $2, $0 - db "それで@@", $ce, $2, $0 - db "だけ@@@", $f2, $2, $0 - db "だって@@", $fc, $2, $0 - db "たぶん@@", $6, $3, $0 - db "たら@@@", $14, $3, $0 - db "ちょー@@", $3a, $3, $0 - db "ちょっと@", $3c, $3, $0 - db "ったら@@", $4e, $3, $0 - db "って@@@", $50, $3, $0 - db "ていうか@", $62, $3, $0 - db "でも@@@", $88, $3, $0 - db "どうしても", $9c, $3, $0 - db "とうぜん@", $a0, $3, $0 - db "どうぞ@@", $a2, $3, $0 - db "とりあえず", $be, $3, $0 - db "なあ@@@", $cc, $3, $0 - db "なんて@@", $f4, $3, $0 - db "なんでも@", $fc, $3, $0 - db "なんとか@", $fe, $3, $0 - db "には@@@", $8, $4, $0 - db "バッチり@", $46, $4, $0 - db "ばりばり@", $52, $4, $0 - db "ほど@@@", $b0, $4, $0 - db "ほんと@@", $be, $4, $0 - db "まさに@@", $d0, $4, $0 - db "マジ@@@", $d2, $4, $0 - db "マジで@@", $d4, $4, $0 - db "まったく@", $e4, $4, $0 - db "まで@@@", $e6, $4, $0 - db "まるで@@", $ec, $4, $0 - db "ムード@@", $e, $5, $0 - db "むしろ@@", $14, $5, $0 - db "めちゃ@@", $24, $5, $0 - db "めっぽう@", $28, $5, $0 - db "もう@@@", $2c, $5, $0 - db "モード@@", $2e, $5, $0 - db "もっと@@", $36, $5, $0 - db "もはや@@", $38, $5, $0 - db "やっと@@", $4a, $5, $0 - db "やっぱり@", $4c, $5, $0 - db "より@@@", $7c, $5, $0 - db "れば@@@", $a4, $5, $0 - -.Feelings: ; 11e4e8 - db "あいたい@", $1a, $0, $0 - db "あそびたい", $32, $0, $0 - db "いきたい@", $7c, $0, $0 - db "うかれて@", $b4, $0, $0 - db "うれしい@", $c6, $0, $0 - db "うれしさ@", $c8, $0, $0 - db "エキサイト", $d8, $0, $0 - db "えらい@@", $de, $0, $0 - db "おかしい@", $ec, $0, $0 - db "ォッケー@", $8, $1, $0 - db "かえりたい", $48, $1, $0 - db "がっくし@", $5a, $1, $0 - db "かなしい@", $6c, $1, $0 - db "がんばって", $80, $1, $0 - db "きがしない", $86, $1, $0 - db "きがする@", $88, $1, $0 - db "ききたい@", $8a, $1, $0 - db "きになる@", $90, $1, $0 - db "きのせい@", $96, $1, $0 - db "きらい@@", $b4, $1, $0 - db "くやしい@", $be, $1, $0 - db "くやしさ@", $c0, $1, $0 - db "さみしい@", $24, $2, $0 - db "ざんねん@", $32, $2, $0 - db "しあわせ@", $36, $2, $0 - db "したい@@", $44, $2, $0 - db "したくない", $46, $2, $0 - db "しまった@", $64, $2, $0 - db "しょんぼり", $82, $2, $0 - db "すき@@@", $92, $2, $0 - db "だいきらい", $da, $2, $0 - db "たいくつ@", $dc, $2, $0 - db "だいじ@@", $de, $2, $0 - db "だいすき@", $e4, $2, $0 - db "たいへん@", $ea, $2, $0 - db "たのしい@", $0, $3, $0 - db "たのしすぎ", $2, $3, $0 - db "たべたい@", $8, $3, $0 - db "ダメダメ@", $e, $3, $0 - db "たりない@", $16, $3, $0 - db "ちくしょー", $34, $3, $0 - db "どうしよう", $9e, $3, $0 - db "ドキドキ@", $ac, $3, $0 - db "ナイス@@", $d0, $3, $0 - db "のみたい@", $26, $4, $0 - db "びっくり@", $60, $4, $0 - db "ふあん@@", $74, $4, $0 - db "ふらふら@", $86, $4, $0 - db "ほしい@@", $ae, $4, $0 - db "ボロボロ@", $b8, $4, $0 - db "まだまだ@", $e0, $4, $0 - db "まてない@", $e8, $4, $0 - db "まんぞく@", $f0, $4, $0 - db "みたい@@", $f8, $4, $0 - db "めずらしい", $22, $5, $0 - db "メラメラ@", $2a, $5, $0 - db "やだ@@@", $46, $5, $0 - db "やったー@", $48, $5, $0 - db "やばい@@", $50, $5, $0 - db "やばすぎる", $52, $5, $0 - db "やられた@", $54, $5, $0 - db "やられて@", $56, $5, $0 - db "よかった@", $6e, $5, $0 - db "ラブラブ@", $96, $5, $0 - db "ロマン@@", $a8, $5, $0 - db "ろんがい@", $aa, $5, $0 - db "わから@@", $b4, $5, $0 - db "わかり@@", $b6, $5, $0 - db "わくわく@", $ba, $5, $0 - -.Conditions: ; 11e710 - db "あつい@@", $38, $0, $0 - db "あった@@", $3a, $0, $0 - db "あり@@@", $56, $0, $0 - db "ある@@@", $5e, $0, $0 - db "あわてて@", $6a, $0, $0 - db "いい@@@", $70, $0, $0 - db "いか@@@", $76, $0, $0 - db "イカス@@", $78, $0, $0 - db "いきおい@", $7a, $0, $0 - db "いける@@", $8a, $0, $0 - db "いじょう@", $8c, $0, $0 - db "いそがしい", $90, $0, $0 - db "いっしょに", $9a, $0, $0 - db "いっぱい@", $9c, $0, $0 - db "いない@@", $a0, $0, $0 - db "いや@@@", $a4, $0, $0 - db "いる@@@", $a8, $0, $0 - db "うまい@@", $c0, $0, $0 - db "うまく@@", $c2, $0, $0 - db "おおきい@", $e6, $0, $0 - db "おくれ@@", $f2, $0, $0 - db "おしい@@", $fa, $0, $0 - db "おもしろい", $2c, $1, $0 - db "おもしろく", $2e, $1, $0 - db "かっこいい", $5c, $1, $0 - db "かわいい@", $7e, $1, $0 - db "かんぺき@", $82, $1, $0 - db "けっこう@", $d0, $1, $0 - db "げんき@@", $d8, $1, $0 - db "こわい@@", $6, $2, $0 - db "さいこう@", $14, $2, $0 - db "さむい@@", $26, $2, $0 - db "さわやか@", $2c, $2, $0 - db "しかたない", $38, $2, $0 - db "すごい@@", $96, $2, $0 - db "すごすぎ@", $9c, $2, $0 - db "すてき@@", $a4, $2, $0 - db "たいした@", $e0, $2, $0 - db "だいじょぶ", $e2, $2, $0 - db "たかい@@", $ec, $2, $0 - db "ただしい@", $f8, $2, $0 - db "だめ@@@", $c, $3, $0 - db "ちいさい@", $2c, $3, $0 - db "ちがう@@", $30, $3, $0 - db "つかれ@@", $48, $3, $0 - db "とくい@@", $b0, $3, $0 - db "とまらない", $b6, $3, $0 - db "ない@@@", $ce, $3, $0 - db "なかった@", $d2, $3, $0 - db "なし@@@", $d8, $3, $0 - db "なって@@", $dc, $3, $0 - db "はやい@@", $50, $4, $0 - db "ひかる@@", $5a, $4, $0 - db "ひくい@@", $5c, $4, $0 - db "ひどい@@", $64, $4, $0 - db "ひとりで@", $66, $4, $0 - db "ひま@@@", $68, $4, $0 - db "ふそく@@", $76, $4, $0 - db "へた@@@", $8c, $4, $0 - db "まちがって", $e2, $4, $0 - db "やさしい@", $42, $5, $0 - db "よく@@@", $70, $5, $0 - db "よわって@", $86, $5, $0 - db "らく@@@", $8c, $5, $0 - db "らしい@@", $90, $5, $0 - db "わるい@@", $d4, $5, $0 - -.Life: ; 11e920 - db "アルバイト", $64, $0, $0 - db "うち@@@", $ba, $0, $0 - db "おかね@@", $ee, $0, $0 - db "おこづかい", $f4, $0, $0 - db "おふろ@@", $24, $1, $0 - db "がっこう@", $5e, $1, $0 - db "きねん@@", $92, $1, $0 - db "グループ@", $c6, $1, $0 - db "ゲット@@", $d2, $1, $0 - db "こうかん@", $de, $1, $0 - db "しごと@@", $40, $2, $0 - db "しゅぎょう", $74, $2, $0 - db "じゅぎょう", $76, $2, $0 - db "じゅく@@", $78, $2, $0 - db "しんか@@", $88, $2, $0 - db "ずかん@@", $90, $2, $0 - db "せいかつ@", $ae, $2, $0 - db "せんせい@", $b8, $2, $0 - db "センター@", $ba, $2, $0 - db "タワー@@", $28, $3, $0 - db "つうしん@", $40, $3, $0 - db "テスト@@", $7e, $3, $0 - db "テレビ@@", $8c, $3, $0 - db "でんわ@@", $96, $3, $0 - db "どうぐ@@", $9a, $3, $0 - db "トレード@", $c4, $3, $0 - db "なまえ@@", $e8, $3, $0 - db "ニュース@", $a, $4, $0 - db "にんき@@", $c, $4, $0 - db "パーティー", $2e, $4, $0 - db "べんきょう", $92, $4, $0 - db "マシン@@", $d6, $4, $0 - db "めいし@@", $1e, $5, $0 - db "メッセージ", $26, $5, $0 - db "もようがえ", $3a, $5, $0 - db "ゆめ@@@", $5a, $5, $0 - db "ようちえん", $66, $5, $0 - db "ラジォ@@", $92, $5, $0 - db "ワールド@", $ae, $5, $0 - -.Hobbies: ; 11ea58 - db "アイドル@", $1e, $0, $0 - db "アニメ@@", $4c, $0, $0 - db "うた@@@", $b8, $0, $0 - db "えいが@@", $d0, $0, $0 - db "おかし@@", $ea, $0, $0 - db "おしゃべり", $4, $1, $0 - db "おままごと", $28, $1, $0 - db "おもちゃ@", $30, $1, $0 - db "おんがく@", $38, $1, $0 - db "カード@@", $3e, $1, $0 - db "かいもの@", $46, $1, $0 - db "グルメ@@", $c8, $1, $0 - db "ゲーム@@", $cc, $1, $0 - db "ざっし@@", $1c, $2, $0 - db "さんぽ@@", $34, $2, $0 - db "じてんしゃ", $50, $2, $0 - db "しゅみ@@", $7a, $2, $0 - db "スポーツ@", $a8, $2, $0 - db "ダイエット", $d8, $2, $0 - db "たからもの", $f0, $2, $0 - db "たび@@@", $4, $3, $0 - db "ダンス@@", $2a, $3, $0 - db "つり@@@", $60, $3, $0 - db "デート@@", $6a, $3, $0 - db "でんしゃ@", $92, $3, $0 - db "ぬいぐるみ", $e, $4, $0 - db "パソコン@", $3e, $4, $0 - db "はな@@@", $4c, $4, $0 - db "ヒーロー@", $58, $4, $0 - db "ひるね@@", $6e, $4, $0 - db "ヒロイン@", $70, $4, $0 - db "ぼうけん@", $96, $4, $0 - db "ボード@@", $9a, $4, $0 - db "ボール@@", $9e, $4, $0 - db "ほん@@@", $ba, $4, $0 - db "マンガ@@", $ee, $4, $0 - db "やくそく@", $40, $5, $0 - db "やすみ@@", $44, $5, $0 - db "よてい@@", $74, $5, $0 - -.Actions: ; 11eb90 - db "あう@@@", $20, $0, $0 - db "あきらめ@", $24, $0, $0 - db "あげる@@", $28, $0, $0 - db "あせる@@", $2e, $0, $0 - db "あそび@@", $30, $0, $0 - db "あそぶ@@", $34, $0, $0 - db "あつめ@@", $3e, $0, $0 - db "あるき@@", $60, $0, $0 - db "あるく@@", $62, $0, $0 - db "いく@@@", $7e, $0, $0 - db "いけ@@@", $86, $0, $0 - db "おき@@@", $f0, $0, $0 - db "おこり@@", $f6, $0, $0 - db "おこる@@", $f8, $0, $0 - db "おしえ@@", $fe, $0, $0 - db "おしえて@", $0, $1, $0 - db "おねがい@", $1a, $1, $0 - db "おぼえ@@", $26, $1, $0 - db "かえる@@", $4a, $1, $0 - db "がまん@@", $74, $1, $0 - db "きく@@@", $8c, $1, $0 - db "きたえ@@", $8e, $1, $0 - db "きめ@@@", $a6, $1, $0 - db "くる@@@", $c4, $1, $0 - db "さがし@@", $18, $2, $0 - db "さわぎ@@", $2a, $2, $0 - db "した@@@", $42, $2, $0 - db "しって@@", $4a, $2, $0 - db "して@@@", $4e, $2, $0 - db "しない@@", $52, $2, $0 - db "しまう@@", $60, $2, $0 - db "じまん@@", $66, $2, $0 - db "しらない@", $84, $2, $0 - db "しる@@@", $86, $2, $0 - db "しんじて@", $8a, $2, $0 - db "する@@@", $aa, $2, $0 - db "たべる@@", $a, $3, $0 - db "つかう@@", $42, $3, $0 - db "つかえ@@", $44, $3, $0 - db "つかって@", $46, $3, $0 - db "できない@", $70, $3, $0 - db "できる@@", $72, $3, $0 - db "でない@@", $84, $3, $0 - db "でる@@@", $8a, $3, $0 - db "なげる@@", $d6, $3, $0 - db "なやみ@@", $ea, $3, $0 - db "ねられ@@", $18, $4, $0 - db "ねる@@@", $1a, $4, $0 - db "のがし@@", $24, $4, $0 - db "のむ@@@", $28, $4, $0 - db "はしり@@", $3a, $4, $0 - db "はしる@@", $3c, $4, $0 - db "はたらき@", $40, $4, $0 - db "はたらく@", $42, $4, $0 - db "はまって@", $4e, $4, $0 - db "ぶつけ@@", $7a, $4, $0 - db "ほめ@@@", $b4, $4, $0 - db "みせて@@", $f6, $4, $0 - db "みて@@@", $fc, $4, $0 - db "みる@@@", $2, $5, $0 - db "めざす@@", $20, $5, $0 - db "もって@@", $34, $5, $0 - db "ゆずる@@", $58, $5, $0 - db "ゆるす@@", $5c, $5, $0 - db "ゆるせ@@", $5e, $5, $0 - db "られない@", $9a, $5, $0 - db "られる@@", $9c, $5, $0 - db "わかる@@", $b8, $5, $0 - db "わすれ@@", $c0, $5, $0 - -.Time: ; 11edb8 - db "あき@@@", $22, $0, $0 - db "あさ@@@", $2a, $0, $0 - db "あした@@", $2c, $0, $0 - db "いちにち@", $94, $0, $0 - db "いつか@@", $98, $0, $0 - db "いつも@@", $9e, $0, $0 - db "いま@@@", $a2, $0, $0 - db "えいえん@", $ce, $0, $0 - db "おととい@", $12, $1, $0 - db "おわり@@", $36, $1, $0 - db "かようび@", $78, $1, $0 - db "きのう@@", $94, $1, $0 - db "きょう@@", $b0, $1, $0 - db "きんようび", $b8, $1, $0 - db "げつようび", $d4, $1, $0 - db "このあと@", $f4, $1, $0 - db "このまえ@", $f6, $1, $0 - db "こんど@@", $c, $2, $0 - db "じかん@@", $3c, $2, $0 - db "じゅうねん", $70, $2, $0 - db "すいようび", $8e, $2, $0 - db "スタート@", $9e, $2, $0 - db "ずっと@@", $a2, $2, $0 - db "ストップ@", $a6, $2, $0 - db "そのうち@", $c4, $2, $0 - db "ついに@@", $3e, $3, $0 - db "つぎ@@@", $4a, $3, $0 - db "どようび@", $ba, $3, $0 - db "なつ@@@", $da, $3, $0 - db "にちようび", $6, $4, $0 - db "はじめ@@", $38, $4, $0 - db "はる@@@", $54, $4, $0 - db "ひる@@@", $6c, $4, $0 - db "ふゆ@@@", $84, $4, $0 - db "まいにち@", $c6, $4, $0 - db "もくようび", $30, $5, $0 - db "よなか@@", $76, $5, $0 - db "よる@@@", $7e, $5, $0 - db "らいしゅう", $88, $5, $0 - -.Farewells: ; 11eef0 - db "いたします", $92, $0, $0 - db "おります@", $32, $1, $0 - db "か!?@@", $3c, $1, $0 - db "かい?@@", $44, $1, $0 - db "かしら?@", $50, $1, $0 - db "かな?@@", $6a, $1, $0 - db "かも@@@", $76, $1, $0 - db "くれ@@@", $ca, $1, $0 - db "ございます", $e8, $1, $0 - db "しがち@@", $3a, $2, $0 - db "します@@", $62, $2, $0 - db "じゃ@@@", $6a, $2, $0 - db "じゃん@@", $6e, $2, $0 - db "しよう@@", $7c, $2, $0 - db "ぜ!@@@", $ac, $2, $0 - db "ぞ!@@@", $bc, $2, $0 - db "た@@@@", $d4, $2, $0 - db "だ@@@@", $d6, $2, $0 - db "だからね@", $ee, $2, $0 - db "だぜ@@@", $f4, $2, $0 - db "だった@@", $fa, $2, $0 - db "だね@@@", $fe, $2, $0 - db "だよ@@@", $10, $3, $0 - db "だよねー!", $12, $3, $0 - db "だわ@@@", $26, $3, $0 - db "ッス@@@", $4c, $3, $0 - db "ってかんじ", $52, $3, $0 - db "っぱなし@", $54, $3, $0 - db "つもり@@", $56, $3, $0 - db "ていない@", $64, $3, $0 - db "ている@@", $66, $3, $0 - db "でーす!@", $68, $3, $0 - db "でした@@", $74, $3, $0 - db "でしょ?@", $76, $3, $0 - db "でしょー!", $78, $3, $0 - db "です@@@", $7a, $3, $0 - db "ですか?@", $7c, $3, $0 - db "ですよ@@", $80, $3, $0 - db "ですわ@@", $82, $3, $0 - db "どうなの?", $a4, $3, $0 - db "どうよ?@", $a8, $3, $0 - db "とかいって", $aa, $3, $0 - db "なの@@@", $e0, $3, $0 - db "なのか@@", $e2, $3, $0 - db "なのだ@@", $e4, $3, $0 - db "なのよ@@", $e6, $3, $0 - db "なんだね@", $f2, $3, $0 - db "なんです@", $f8, $3, $0 - db "なんてね@", $fa, $3, $0 - db "ね@@@@", $12, $4, $0 - db "ねー@@@", $14, $4, $0 - db "の@@@@", $1c, $4, $0 - db "の?@@@", $1e, $4, $0 - db "ばっかり@", $44, $4, $0 - db "まーす!@", $c2, $4, $0 - db "ます@@@", $d8, $4, $0 - db "ますわ@@", $da, $4, $0 - db "ません@@", $dc, $4, $0 - db "みたいな@", $fa, $4, $0 - db "よ!@@@", $60, $5, $0 - db "よー@@@", $68, $5, $0 - db "よーん@@", $6c, $5, $0 - db "よね@@@", $78, $5, $0 - db "るよ@@@", $a2, $5, $0 - db "わけ@@@", $bc, $5, $0 - db "わよ!@@", $d2, $5, $0 - -.ThisAndThat: ; 11f100 - db "ああ@@@", $12, $0, $0 - db "あっち@@", $3c, $0, $0 - db "あの@@@", $4e, $0, $0 - db "ありゃ@@", $5c, $0, $0 - db "あれ@@@", $66, $0, $0 - db "あれは@@", $68, $0, $0 - db "あんな@@", $6c, $0, $0 - db "こう@@@", $dc, $1, $0 - db "こっち@@", $ec, $1, $0 - db "この@@@", $f2, $1, $0 - db "こりゃ@@", $fe, $1, $0 - db "これ@@@", $0, $2, $0 - db "これだ!@", $2, $2, $0 - db "これは@@", $4, $2, $0 - db "こんな@@", $e, $2, $0 - db "そう@@@", $be, $2, $0 - db "そっち@@", $c0, $2, $0 - db "その@@@", $c2, $2, $0 - db "そりゃ@@", $c6, $2, $0 - db "それ@@@", $c8, $2, $0 - db "それだ!@", $cc, $2, $0 - db "それは@@", $d0, $2, $0 - db "そんな@@", $d2, $2, $0 - db "どう@@@", $98, $3, $0 - db "どっち@@", $b2, $3, $0 - db "どの@@@", $b4, $3, $0 - db "どりゃ@@", $c0, $3, $0 - db "どれ@@@", $c2, $3, $0 - db "どれを@@", $c8, $3, $0 - db "どんな@@", $ca, $3, $0 - db "なに@@@", $de, $3, $0 - db "なんか@@", $ec, $3, $0 - db "なんだ@@", $f0, $3, $0 - db "なんで@@", $f6, $3, $0 - db "なんなんだ", $0, $4, $0 - db "なんの@@", $2, $4, $0 -; 11f220 - -MobileEZChatData_WordAndPageCounts: -macro_11f220: macro -; parameter: number of words - db \1 -; 12 words per page (0-based indexing) -x = \1 / 12 -if \1 % 12 == 0 -x = x +- 1 -endc - db x -endm - macro_11f220 18 ; 01: Types - macro_11f220 36 ; 02: Greetings - macro_11f220 69 ; 03: People - macro_11f220 69 ; 04: Battle - macro_11f220 66 ; 05: Exclamations - macro_11f220 66 ; 06: Conversation - macro_11f220 69 ; 07: Feelings - macro_11f220 66 ; 08: Conditions - macro_11f220 39 ; 09: Life - macro_11f220 39 ; 0a: Hobbies - macro_11f220 69 ; 0b: Actions - macro_11f220 39 ; 0c: Time - macro_11f220 66 ; 0d: Farewells - macro_11f220 36 ; 0e: ThisAndThat - -EZChat_SortedWords: -; Addresses in WRAM bank 3 where EZChat words beginning -; with the given kana are sorted in memory, and the pre- -; allocated size for each. -; These arrays are expanded dynamically to accomodate -; any Pokemon you've seen that starts with each kana.\ -macro_11f23c: macro - dw x - w3_d000, \1 -x = x + 2 * \1 -endm -x = $d012 - macro_11f23c $2f ; a - macro_11f23c $1e ; i - macro_11f23c $11 ; u - macro_11f23c $09 ; e - macro_11f23c $2e ; o - macro_11f23c $24 ; ka_ga - macro_11f23c $1b ; ki_gi - macro_11f23c $09 ; ku_gu - macro_11f23c $07 ; ke_ge - macro_11f23c $1c ; ko_go - macro_11f23c $12 ; sa_za - macro_11f23c $2b ; shi_ji - macro_11f23c $10 ; su_zu - macro_11f23c $08 ; se_ze - macro_11f23c $0c ; so_zo - macro_11f23c $2c ; ta_da - macro_11f23c $09 ; chi_dhi - macro_11f23c $12 ; tsu_du - macro_11f23c $1b ; te_de - macro_11f23c $1a ; to_do - macro_11f23c $1c ; na - macro_11f23c $05 ; ni - macro_11f23c $02 ; nu - macro_11f23c $05 ; ne - macro_11f23c $07 ; no - macro_11f23c $16 ; ha_ba_pa - macro_11f23c $0e ; hi_bi_pi - macro_11f23c $0c ; fu_bu_pu - macro_11f23c $05 ; he_be_pe - macro_11f23c $16 ; ho_bo_po - macro_11f23c $19 ; ma - macro_11f23c $0e ; mi - macro_11f23c $08 ; mu - macro_11f23c $07 ; me - macro_11f23c $09 ; mo - macro_11f23c $0d ; ya - macro_11f23c $04 ; yu - macro_11f23c $14 ; yo - macro_11f23c $0b ; ra - macro_11f23c $01 ; ri - macro_11f23c $02 ; ru - macro_11f23c $02 ; re - macro_11f23c $02 ; ro - macro_11f23c $15 ; wa -x = $d000 - macro_11f23c $09 ; end -EZChat_SortedWordsEnd: diff --git a/misc/gbc_only.asm b/misc/gbc_only.asm deleted file mode 100644 index a77a44d72..000000000 --- a/misc/gbc_only.asm +++ /dev/null @@ -1,149 +0,0 @@ -GBCOnlyScreen: ; 4ea82 - - ld a, [hCGB] - and a - ret nz - - ld de, MUSIC_NONE - call PlayMusic - - call ClearTileMap - - ld hl, GBCOnlyGFX - ld de, $d000 - ld a, [rSVBK] - push af - ld a, 0 - ld [rSVBK], a - call Decompress - pop af - ld [rSVBK], a - - ld de, $d000 - ld hl, VTiles2 - lb bc, BANK(GBCOnlyGFX), $54 - call Get2bpp - - ld de, Font - ld hl, VTiles1 - lb bc, BANK(Font), $80 - call Get1bpp - - call DrawGBCOnlyScreen - - call WaitBGMap - -; better luck next time -.loop - call DelayFrame - jr .loop -; 4eac5 - - -DrawGBCOnlyScreen: ; 4eac5 - - call DrawGBCOnlyBorder - - ; Pokemon - hlcoord 3, 2 - ld b, 14 - ld c, 4 - ld a, $8 - call DrawGBCOnlyGraphic - - ; Crystal - hlcoord 5, 6 - ld b, 10 - ld c, 2 - ld a, $40 - call DrawGBCOnlyGraphic - - ld de, GBCOnlyString - hlcoord 1, 10 - call PlaceString - - ret -; 4eaea - - -DrawGBCOnlyBorder: ; 4eaea - - hlcoord 0, 0 - ld [hl], 0 ; top-left - - inc hl - ld a, 1 ; top - call .FillRow - - ld [hl], 2 ; top-right - - hlcoord 0, 1 - ld a, 3 ; left - call .FillColumn - - hlcoord 19, 1 - ld a, 4 ; right - call .FillColumn - - hlcoord 0, 17 - ld [hl], 5 ; bottom-left - - inc hl - ld a, 6 ; bottom - call .FillRow - - ld [hl], 7 ; bottom-right - ret -; 4eb15 - -.FillRow: ; 4eb15 - ld c, SCREEN_WIDTH - 2 -.next_column - ld [hli], a - dec c - jr nz, .next_column - ret -; 4eb1c - -.FillColumn: ; 4eb1c - ld de, SCREEN_WIDTH - ld c, SCREEN_HEIGHT - 2 -.next_row - ld [hl], a - add hl, de - dec c - jr nz, .next_row - ret -; 4eb27 - - -DrawGBCOnlyGraphic: ; 4eb27 - ld de, SCREEN_WIDTH -.y - push bc - push hl -.x - ld [hli], a - inc a - dec b - jr nz, .x - pop hl - add hl, de - pop bc - dec c - jr nz, .y - ret -; 4eb38 - - -GBCOnlyString: ; 4eb38 - db "This Game Pak is" - next "designed only for" - next "use on the" - next "Game Boy Color.@" -; 4eb76 - - -GBCOnlyGFX: ; 4eb76 -INCBIN "gfx/sgb/gbc_only.2bpp.lz" -; 4f0bc diff --git a/misc/gfx_41.asm b/misc/gfx_41.asm deleted file mode 100755 index f627c85ff..000000000 --- a/misc/gfx_41.asm +++ /dev/null @@ -1,638 +0,0 @@ -HDMATransferAttrMapAndTileMapToWRAMBank3:: ; 104000 - ld hl, .Function - jp CallInSafeGFXMode - -.Function: - decoord 0, 0, AttrMap - ld hl, wScratchAttrMap - call CutAndPasteAttrMap - decoord 0, 0 - ld hl, wScratchTileMap - call CutAndPasteTilemap - ld a, $0 - ld [rVBK], a - ld hl, wScratchTileMap - call HDMATransferToWRAMBank3 - ld a, $1 - ld [rVBK], a - ld hl, wScratchAttrMap - call HDMATransferToWRAMBank3 - ret -; 10402d - -HDMATransferTileMapToWRAMBank3:: ; 10402d - ld hl, .Function - jp CallInSafeGFXMode - -.Function: - decoord 0, 0 - ld hl, wScratchTileMap - call CutAndPasteTilemap - ld a, $0 - ld [rVBK], a - ld hl, wScratchTileMap - call HDMATransferToWRAMBank3 - ret -; 104047 - -HDMATransferAttrMapToWRAMBank3: ; 104047 - ld hl, .Function - jp CallInSafeGFXMode - -.Function: - decoord 0, 0, AttrMap - ld hl, wScratchAttrMap - call CutAndPasteAttrMap - ld a, $1 - ld [rVBK], a - ld hl, wScratchAttrMap - call HDMATransferToWRAMBank3 - ret -; 104061 - -ReloadMapPart:: ; 104061 - ld hl, .Function - jp CallInSafeGFXMode - -.Function: - decoord 0, 0, AttrMap - ld hl, wScratchAttrMap - call CutAndPasteAttrMap - decoord 0, 0 - ld hl, wScratchTileMap - call CutAndPasteTilemap - call DelayFrame - - di - ld a, [rVBK] - push af - ld a, $1 - ld [rVBK], a - ld hl, wScratchAttrMap - call HDMATransfer_Wait127Scanlines_toBGMap - ld a, $0 - ld [rVBK], a - ld hl, wScratchTileMap - call HDMATransfer_Wait127Scanlines_toBGMap - pop af - ld [rVBK], a - ei - - ret - -Mobile_ReloadMapPart: ; 104099 - ld hl, ReloadMapPart ; useless - ld hl, .Function - jp CallInSafeGFXMode - -.Function: - decoord 0, 0, AttrMap - ld hl, wScratchAttrMap - call CutAndPasteAttrMap - decoord 0, 0 - ld hl, wScratchTileMap - call CutAndPasteTilemap - call DelayFrame - - di - ld a, [rVBK] - push af - ld a, $1 - ld [rVBK], a - ld hl, wScratchAttrMap - call HDMATransfer_NoDI - ld a, $0 - ld [rVBK], a - ld hl, wScratchTileMap - call HDMATransfer_NoDI - pop af - ld [rVBK], a - ei - - ret -; 1040d4 - -; XXX - ld hl, .unreferenced_1040da - jp CallInSafeGFXMode - -.unreferenced_1040da - ld a, $1 - ld [rVBK], a - ld a, $3 - ld [rSVBK], a - ld de, w3_d800 - ld a, [hBGMapAddress + 1] - ld [rHDMA1], a - ld a, [hBGMapAddress] - ld [rHDMA2], a - ld a, d - ld [rHDMA3], a - ld a, e - ld [rHDMA4], a - ld a, $23 - ld [hDMATransfer], a - call WaitDMATransfer - ret -; 1040fb - -; XXX - ld hl, .unreferenced_104101 - jp CallInSafeGFXMode - -.unreferenced_104101 - ld a, $1 - ld [rVBK], a - ld a, $3 - ld [rSVBK], a - ld hl, w3_d800 - call HDMATransferToWRAMBank3 - ret -; 104110 - -OpenAndCloseMenu_HDMATransferTileMapAndAttrMap:: ; 104110 -; OpenText - ld hl, .Function - jp CallInSafeGFXMode - -.Function: - ; Transfer AttrMap and Tilemap to BGMap - ; Fill vBGAttrs with $00 - ; Fill vBGTiles with " " - decoord 0, 0, AttrMap - ld hl, wScratchAttrMap - call CutAndPasteAttrMap - decoord 0, 0 - ld hl, wScratchTileMap - call CutAndPasteTilemap - call DelayFrame - - di - ld a, [rVBK] - push af - ld a, $1 - ld [rVBK], a - ld hl, wScratchAttrMap - call HDMATransfer_Wait123Scanlines_toBGMap - ld a, $0 - ld [rVBK], a - ld hl, wScratchTileMap - call HDMATransfer_Wait123Scanlines_toBGMap - pop af - ld [rVBK], a - ei - ret -; 104148 - -Mobile_OpenAndCloseMenu_HDMATransferTileMapAndAttrMap: ; 104148 (41:4148) - ld hl, .Function - jp CallInSafeGFXMode - -.Function: - ; Transfer AttrMap and Tilemap to BGMap - ; Fill vBGAttrs with $00 - ; Fill vBGTiles with $ff - decoord 0, 0, AttrMap - ld hl, wScratchAttrMap - call CutAndPasteAttrMap - ld c, $ff - decoord 0, 0 - ld hl, wScratchTileMap - call CutAndPasteMap - - ld a, $1 - ld [rVBK], a - ld hl, wScratchAttrMap - call HDMATransfer_Wait127Scanlines_toBGMap - ld a, $0 - ld [rVBK], a - ld hl, wScratchTileMap - call HDMATransfer_Wait127Scanlines_toBGMap - ret -; 104177 - -CallInSafeGFXMode: ; 104177 - ld a, [hBGMapMode] - push af - ld a, [hMapAnims] - push af - xor a - ld [hBGMapMode], a - ld [hMapAnims], a - ld a, [rSVBK] - push af - ld a, $6 - ld [rSVBK], a - ld a, [rVBK] - push af - - call ._hl_ - - pop af - ld [rVBK], a - pop af - ld [rSVBK], a - pop af - ld [hMapAnims], a - pop af - ld [hBGMapMode], a - ret -; 10419c - -._hl_ ; 10419c - jp hl -; 10419d - - -HDMATransferToWRAMBank3: ; 10419d (41:419d) - call _LoadHDMAParameters - ld a, $23 - ld [hDMATransfer], a - -WaitDMATransfer: ; 104a14 -.loop - call DelayFrame - ld a, [hDMATransfer] - and a - jr nz, .loop - ret - -HDMATransfer_Wait127Scanlines_toBGMap: ; 1041ad (41:41ad) -; HDMA transfer from hl to [hBGMapAddress] -; hBGMapAddress -> de -; 2 * SCREEN_HEIGHT -> c - ld a, [hBGMapAddress + 1] - ld d, a - ld a, [hBGMapAddress] - ld e, a - ld c, 2 * SCREEN_HEIGHT - jr HDMATransfer_Wait127Scanlines - -HDMATransfer_Wait123Scanlines_toBGMap: ; 1041b7 (41:41b7) -; HDMA transfer from hl to [hBGMapAddress] -; hBGMapAddress -> de -; 2 * SCREEN_HEIGHT -> c -; $7b --> b - ld a, [hBGMapAddress + 1] - ld d, a - ld a, [hBGMapAddress] - ld e, a - ld c, 2 * SCREEN_HEIGHT - jr HDMATransfer_Wait123Scanlines -; 1041c1 (41:41c1) - -HDMATransfer_NoDI: ; 1041c1 -; HDMA transfer from hl to [hBGMapAddress] -; [hBGMapAddress] --> de -; 2 * SCREEN_HEIGHT --> c - ld a, [hBGMapAddress + 1] - ld d, a - ld a, [hBGMapAddress] - ld e, a - ld c, 2 * SCREEN_HEIGHT - - ; [rHDMA1, rHDMA2] = hl & $fff0 - ld a, h - ld [rHDMA1], a - ld a, l - and $f0 - ld [rHDMA2], a - ; [rHDMA3, rHDMA4] = de & $1ff0 - ld a, d - and $1f - ld [rHDMA3], a - ld a, e - and $f0 - ld [rHDMA4], a - ; b = c | %10000000 - ld a, c - dec c - or $80 - ld b, a - ; d = $7f - c + 1 - ld a, $7f - sub c - ld d, a - ; while [rLY] >= d: pass -.loop1 - ld a, [rLY] - cp d - jr nc, .loop1 - ; while not [rSTAT] & 3: pass -.loop2 - ld a, [rSTAT] - and $3 - jr z, .loop2 - ; load the 5th byte of HDMA - ld a, b - ld [rHDMA5], a - ; wait until rLY advances (c + 1) times - ld a, [rLY] - inc c - ld hl, rLY -.loop3 - cp [hl] - jr z, .loop3 - ld a, [hl] - dec c - jr nz, .loop3 - ld hl, rHDMA5 - res 7, [hl] - ret -; 104205 - -HDMATransfer_Wait123Scanlines: - ld b, $7b - jr _continue_HDMATransfer - - -HDMATransfer_Wait127Scanlines: - ld b, $7f -_continue_HDMATransfer: -; a lot of waiting around for hardware registers - ; [rHDMA1, rHDMA2] = hl & $fff0 - ld a, h - ld [rHDMA1], a - ld a, l - and $f0 ; high nybble - ld [rHDMA2], a - ; [rHDMA3, rHDMA4] = de & $1ff0 - ld a, d - and $1f ; lower 5 bits - ld [rHDMA3], a - ld a, e - and $f0 ; high nybble - ld [rHDMA4], a - ; e = c | %10000000 - ld a, c - dec c - or $80 - ld e, a - ; d = b - c + 1 - ld a, b - sub c - ld d, a - ; while [rLY] >= d: pass -.ly_loop - ld a, [rLY] - cp d - jr nc, .ly_loop - - di - ; while [rSTAT] & 3: pass -.rstat_loop_1 - ld a, [rSTAT] - and $3 - jr nz, .rstat_loop_1 - ; while not [rSTAT] & 3: pass -.rstat_loop_2 - ld a, [rSTAT] - and $3 - jr z, .rstat_loop_2 - ; load the 5th byte of HDMA - ld a, e - ld [rHDMA5], a - ; wait until rLY advances (c + 1) times - ld a, [rLY] - inc c - ld hl, rLY -.final_ly_loop - cp [hl] - jr z, .final_ly_loop - ld a, [hl] - dec c - jr nz, .final_ly_loop - ld hl, rHDMA5 - res 7, [hl] - ei - - ret -; 10424e - - -_LoadHDMAParameters: ; 10424e (41:424e) - ld a, h - ld [rHDMA1], a - ld a, l - ld [rHDMA2], a - ld a, [hBGMapAddress + 1] - and $1f - ld [rHDMA3], a - ld a, [hBGMapAddress] - ld [rHDMA4], a - ret - -CutAndPasteTilemap: ; 10425f (41:425f) - ld c, " " - jr CutAndPasteMap - -CutAndPasteAttrMap: ; 104263 (41:4263) - ld c, $0 - -CutAndPasteMap: ; 104265 (41:4265) -; back up the value of c to hMapObjectIndexBuffer - ld a, [hMapObjectIndexBuffer] - push af - ld a, c - ld [hMapObjectIndexBuffer], a - -; for each row on the screen - ld c, SCREEN_HEIGHT -.loop1 -; for each tile in the row - ld b, SCREEN_WIDTH -.loop2 -; copy from de to hl - ld a, [de] - inc de - ld [hli], a - dec b - jr nz, .loop2 - -; load the original value of c into hl 12 times - ld a, [hMapObjectIndexBuffer] - ld b, BG_MAP_WIDTH - SCREEN_WIDTH -.loop3 - ld [hli], a - dec b - jr nz, .loop3 - - dec c - jr nz, .loop1 - -; restore the original value of hMapObjectIndexBuffer - pop af - ld [hMapObjectIndexBuffer], a - ret - - -_Get2bpp:: ; 104284 - ; 2bpp when [rLCDC] & $80 - ; switch to WRAM bank 6 - ld a, [rSVBK] - push af - ld a, $6 - ld [rSVBK], a - - push bc - push hl - - ; Copy c tiles of the 2bpp from b:de to wScratchTileMap - ld a, b ; bank - ld l, c ; number of tiles - ld h, $0 - ; multiply by 16 (16 bytes of a 2bpp = 8 x 8 tile) - add hl, hl - add hl, hl - add hl, hl - add hl, hl - ld b, h - ld c, l - ld h, d ; address - ld l, e - ld de, wScratchTileMap - call FarCopyBytes - - pop hl - pop bc - - push bc - call DelayFrame - pop bc - - ld d, h - ld e, l - ld hl, wScratchTileMap - call HDMATransfer_Wait127Scanlines - - ; restore the previous bank - pop af - ld [rSVBK], a - ret -; 1042b2 - -_Get1bpp:: ; 1042b2 - ; 1bpp when [rLCDC] & $80 -.loop - ld a, c - cp $10 - jp c, .bankswitch - jp z, .bankswitch - push bc - push hl - push de - ld c, $10 - call .bankswitch - pop de - ld hl, $80 - add hl, de - ld d, h - ld e, l - pop hl - lb bc, 1, 0 - add hl, bc - pop bc - ld a, c - sub $10 - ld c, a - jr .loop -; 1042d6 - -.bankswitch ; 1042d6 - ld a, [rSVBK] - push af - ld a, $6 - ld [rSVBK], a - - push bc - push hl - - ld a, b - ld l, c - ld h, $0 - add hl, hl ; multiply by 8 - add hl, hl ; multiply by 8 - add hl, hl ; multiply by 8 - ld c, l - ld b, h - ld h, d - ld l, e - ld de, wScratchTileMap - call FarCopyBytesDouble_DoubleBankSwitch - - pop hl - pop bc - - push bc - call DelayFrame - pop bc - - ld d, h - ld e, l - ld hl, wScratchTileMap - call HDMATransfer_Wait127Scanlines - - pop af - ld [rSVBK], a - ret -; 104303 - -HDMATransfer_OnlyTopFourRows: ; 104303 - ld hl, .Function - jp CallInSafeGFXMode -; 104309 - -.Function: - ld hl, wScratchTileMap - decoord 0, 0 - call .Copy - ld hl, wScratchTileMap + $80 - decoord 0, 0, AttrMap - call .Copy - ld a, $1 - ld [rVBK], a - ld c, $8 - ld hl, wScratchTileMap + $80 - debgcoord 0, 0, VBGMap1 - call HDMATransfer_Wait127Scanlines - ld a, $0 - ld [rVBK], a - ld c, $8 - ld hl, wScratchTileMap - debgcoord 0, 0, VBGMap1 - call HDMATransfer_Wait127Scanlines - ret - -.Copy: ; 10433a (41:433a) - ld b, 4 -.outer_loop - ld c, SCREEN_WIDTH -.inner_loop - ld a, [de] - ld [hli], a - inc de - dec c - jr nz, .inner_loop - ld a, l - add BG_MAP_WIDTH - SCREEN_WIDTH - ld l, a - ld a, h - adc $0 - ld h, a - dec b - jr nz, .outer_loop - ret -; 104350 - -ShockEmote: INCBIN "gfx/emotes/shock.2bpp" -QuestionEmote: INCBIN "gfx/emotes/question.2bpp" -HappyEmote: INCBIN "gfx/emotes/happy.2bpp" -SadEmote: INCBIN "gfx/emotes/sad.2bpp" -HeartEmote: INCBIN "gfx/emotes/heart.2bpp" -BoltEmote: INCBIN "gfx/emotes/bolt.2bpp" -SleepEmote: INCBIN "gfx/emotes/sleep.2bpp" -FishEmote: INCBIN "gfx/emotes/fish.2bpp" -JumpShadowGFX: INCBIN "gfx/overworld/shadow.2bpp" -FishingRodGFX: INCBIN "gfx/overworld/fishing_rod.2bpp" -BoulderDustGFX: INCBIN "gfx/overworld/boulder_dust.2bpp" -GrassRustleGFX: INCBIN "gfx/overworld/grass_rustle.2bpp" diff --git a/misc/mobile_12.asm b/misc/mobile_12.asm deleted file mode 100755 index efe138162..000000000 --- a/misc/mobile_12.asm +++ /dev/null @@ -1,1845 +0,0 @@ -InitMobileProfile: ; 4802f (12:402f) - xor a - set 6, a - ld [wd002], a - ld hl, wd003 - set 0, [hl] - ld a, c - and a - call z, InitCrystalData - call ClearBGPalettes - call Function48d3d - ld a, [wd479] - bit 1, a - jr z, .not_yet_initialized - ld a, [wd003] - set 0, a - set 1, a - set 2, a - set 3, a - ld [wd003], a -.not_yet_initialized - call Function486bf - call LoadFontsExtra - ld de, GFX_488c3 - ld hl, VTiles2 tile $10 - lb bc, BANK(GFX_488c3), 1 - call Request1bpp - ld de, GFX_488cb - ld hl, VTiles2 tile $11 - lb bc, BANK(GFX_488cb), 1 - call Request1bpp - call Function4a3a7 - call ClearBGPalettes - ld a, [wd002] - bit 6, a - jr z, .asm_4808a - call Function48689 - jr .asm_480d7 -.asm_4808a - ld a, $5 - ld [MusicFade], a - ld a, MUSIC_MOBILE_ADAPTER_MENU % $100 - ld [MusicFadeID], a - ld a, MUSIC_MOBILE_ADAPTER_MENU / $100 - ld [MusicFadeID + 1], a - ld c, 20 - call DelayFrames - ld b, $1 - call GetMysteryGift_MobileAdapterLayout - call ClearBGPalettes - hlcoord 0, 0 - ld b, 2 - ld c, 20 - call ClearBox - hlcoord 0, 1 - ld a, $c - ld [hl], a - ld bc, $13 - add hl, bc - ld [hl], a - ld de, MobileProfileString - hlcoord 1, 1 - call PlaceString - hlcoord 0, 2 - ld b, $a - ld c, $12 - call Function48cdc - hlcoord 2, 4 - ld de, MobileString_Gender - call PlaceString -.asm_480d7 - hlcoord 2, 6 - ld de, MobileString_Age - call PlaceString - hlcoord 2, 8 - ld de, MobileString_Address - call PlaceString - hlcoord 2, 10 - ld de, MobileString_ZipCode - call PlaceString - hlcoord 2, 12 - ld de, MobileString_OK - call PlaceString - ld a, [wd002] - bit 6, a - jr nz, .asm_48113 - ld a, [PlayerGender] - ld hl, Strings_484fb - call GetNthString - ld d, h - ld e, l - hlcoord 11, 4 - call PlaceString -.asm_48113 - hlcoord 11, 6 - call Function487ec - ld a, [wd474] - dec a - ld hl, Prefectures - call GetNthString - ld d, h - ld e, l - hlcoord 11, 8 - call PlaceString - hlcoord 11, 10 - call Function489ea - hlcoord 0, 14 - ld b, $2 - ld c, $12 - call TextBox - hlcoord 1, 16 - ld de, MobileString_PersonalInfo - call PlaceString - call Function48187 - call WaitBGMap2 - call SetPalettes - call StaticMenuJoypad - ld hl, wMenuCursorY - ld b, [hl] - push bc - jr asm_4815f - -Function48157: ; 48157 (12:4157) - call ScrollingMenuJoypad - ld hl, wMenuCursorY - ld b, [hl] - push bc -asm_4815f: ; 4815f (12:415f) - bit A_BUTTON_F, a - jp nz, Function4820d - ld b, a - ld a, [wd002] - bit 6, a - jr z, .dont_check_b_button - ld hl, wd479 - bit 1, [hl] - jr z, .dont_check_b_button - bit B_BUTTON_F, b - jr nz, .b_button -.dont_check_b_button - jp Function48272 - -.b_button - call ClearBGPalettes - call Function48d30 - pop bc - call ClearTileMap - ld a, $ff - ret - -Function48187: ; 48187 (12:4187) - ld a, [wd479] - bit 1, a - jr nz, .asm_481f1 - ld a, [wd003] - ld d, a - call Function48725 - jr c, .asm_481a2 - lb bc, 1, 4 - hlcoord 2, 12 - call ClearBox - jr .asm_481ad -.asm_481a2 - push de - hlcoord 2, 12 - ld de, MobileString_OK - call PlaceString - pop de -.asm_481ad - ld a, [wd002] - bit 6, a - jr nz, .asm_481c1 - bit 0, d - jr nz, .asm_481c1 - lb bc, 1, 8 - hlcoord 11, 4 - call ClearBox -.asm_481c1 - bit 1, d - jr nz, .asm_481ce - lb bc, 1, 8 - hlcoord 11, 6 - call ClearBox -.asm_481ce - bit 2, d - jr nz, .asm_481db - lb bc, 2, 8 - hlcoord 11, 7 - call ClearBox -.asm_481db - bit 3, d - jr nz, .asm_481f1 - ld a, [wd479] - bit 0, a - jr nz, .asm_481f8 - lb bc, 1, 8 - hlcoord 11, 10 - call ClearBox - jr .asm_48201 -.asm_481f1 - ld a, [wd479] - bit 0, a - jr nz, .asm_48201 -.asm_481f8 - hlcoord 11, 10 - ld de, .String_TellLater - call PlaceString -.asm_48201 - ret -; 48202 (12:4202) - -.String_TellLater: ; 48202 - db "Tell Later@" -; 4820d - -Function4820d: ; 4820d (12:420d) - call PlaceHollowCursor - ld hl, wMenuCursorY - ld a, [hl] - push af - ld a, [wd002] - bit 6, a - jr z, .asm_4821f - pop af - inc a - push af -.asm_4821f - pop af - cp $1 - jr z, asm_4828d - cp $2 - jp z, Function4876f - cp $3 - jp z, Function48304 - cp $4 - jp z, Function488d3 - ld a, $2 - call MenuClickSound - ld a, [wd002] - bit 6, a - jr z, .asm_4825c - jr .asm_4825c -; 48241 (12:4241) - - hlcoord 1, 15 - ld b, $2 - ld c, $12 - call ClearBox - ld de, MobileString_ProfileChanged - hlcoord 1, 16 - call PlaceString - call WaitBGMap - ld c, 48 - call DelayFrames - -.asm_4825c - call ClearBGPalettes - call Function48d30 - pop bc - call ClearTileMap - ld b, SCGB_DIPLOMA - call GetSGBLayout - ld hl, wd479 - set 1, [hl] - xor a - ret - -Function48272: ; 48272 (12:4272) - jp Function4840c -; 48275 (12:4275) - -MobileString_PersonalInfo: ; 48275 - db "Personal Info@" -; 48283 - -Function48283: ; 48283 (12:4283) - lb bc, 2, 18 - hlcoord 1, 15 - call ClearBox - ret - -asm_4828d: ; 4828d (12:428d) - call Function48283 - hlcoord 1, 16 - ld de, MobileDesc_Gender - call PlaceString - ld hl, MenuDataHeader_0x484f1 - call LoadMenuDataHeader - call Function4873c - hlcoord 11, 2 - ld b, $4 - ld c, $7 - call Function48cdc - hlcoord 13, 4 - ld de, String_484fb - call PlaceString - hlcoord 13, 6 - ld de, String_484ff - call PlaceString - call WaitBGMap - ld a, [PlayerGender] - inc a - ld [wMenuCursorBuffer], a - call StaticMenuJoypad - call PlayClickSFX - call ExitMenu - bit 0, a - jp z, Function4840c - ld hl, wMenuCursorY - ld a, [hl] - ld hl, Strings_484fb - cp $1 - jr z, .asm_482ed -.asm_482e1 - ld a, [hli] - cp $50 - jr nz, .asm_482e1 - ld a, $1 - ld [PlayerGender], a - jr .asm_482f1 -.asm_482ed - xor a - ld [PlayerGender], a -.asm_482f1 - ld d, h - ld e, l - hlcoord 11, 4 - call PlaceString - ld a, [wd003] - set 0, a - ld [wd003], a - jp Function4840c - -Function48304: ; 48304 (12:4304) - call Function48283 - hlcoord 1, 16 - ld de, MobileDesc_Address - call PlaceString - ld hl, MenuDataHeader_0x48504 - call LoadMenuDataHeader - ld hl, MenuDataHeader_0x48513 - call LoadMenuDataHeader - hlcoord 10, 0 - ld b, $c - ld c, $8 - call Function48cdc - ld a, [wMenuCursorBuffer] - ld b, a - ld a, [wMenuScrollPosition] - ld c, a - push bc - ld a, [wd474] - dec a - cp $29 - jr c, .asm_4833f - sub $29 - inc a - ld [wMenuCursorBuffer], a - ld a, $29 -.asm_4833f - ld [wMenuScrollPosition], a - callba Mobile_OpenAndCloseMenu_HDMATransferTileMapAndAttrMap -.asm_48348 - call ScrollingMenu - ld de, $629 - call Function48383 - jr c, .asm_48348 - ld d, a - pop bc - ld a, b - ld [wMenuCursorBuffer], a - ld a, c - ld [wMenuScrollPosition], a - ld a, d - push af - call ExitMenu - call ExitMenu - pop af - ld a, [hJoyPressed] - bit 0, a - jr z, .asm_48377 - call Function483bb - ld a, [wd003] - set 2, a - ld [wd003], a -.asm_48377 - call Function48187 - callba Mobile_OpenAndCloseMenu_HDMATransferTileMapAndAttrMap - jp Function4840c - -Function48383: ; 48383 (12:4383) - push bc - push af - bit 5, a - jr nz, .asm_48390 - bit 4, a - jr nz, .asm_4839f - and a - jr .asm_483b7 -.asm_48390 - ld a, [wMenuScrollPosition] - sub d - ld [wMenuScrollPosition], a - jr nc, .asm_483af - xor a - ld [wMenuScrollPosition], a - jr .asm_483af -.asm_4839f - ld a, [wMenuScrollPosition] - add d - ld [wMenuScrollPosition], a - cp e - jr c, .asm_483af - ld a, e - ld [wMenuScrollPosition], a - jr .asm_483af -.asm_483af - ld hl, wMenuCursorY - ld a, [hl] - ld [wMenuCursorBuffer], a - scf -.asm_483b7 - pop bc - ld a, b - pop bc - ret - -Function483bb: ; 483bb (12:43bb) - ld hl, wScrollingMenuCursorPosition - ld a, [hl] - inc a - ld [wd474], a - dec a - ld b, a - ld hl, Prefectures -.asm_483c8 - and a - jr z, .asm_483d5 -.asm_483cb - ld a, [hli] - cp "@" - jr nz, .asm_483cb - ld a, b - dec a - ld b, a - jr .asm_483c8 -.asm_483d5 - ld d, h - ld e, l - ld b, $2 - ld c, $8 - hlcoord 11, 7 - call ClearBox - hlcoord 11, 8 - call PlaceString - ret -; 483e8 (12:43e8) - -Function483e8: ; 483e8 - push de - ld hl, Prefectures - ld a, [MenuSelection] - cp $ff - jr nz, .asm_483f8 - ld hl, Wakayama ; last string - jr .asm_48405 - -.asm_483f8 - ld d, a - and a - jr z, .asm_48405 -.asm_483fc - ld a, [hli] - cp "@" - jr nz, .asm_483fc - ld a, d - dec a - jr .asm_483f8 - -.asm_48405 - ld d, h - ld e, l - pop hl - call PlaceString - ret -; 4840c - -Function4840c: ; 4840c (12:440c) - call Function48187 - call Function48283 - hlcoord 1, 16 - ld de, MobileString_PersonalInfo - call PlaceString - call Function486bf - pop bc - ld hl, wMenuCursorY - ld [hl], b - ld a, [wd002] - bit 6, a - jr nz, .narrower_box - ld b, 9 - ld c, 1 - hlcoord 1, 4 - call ClearBox - jp Function48157 - -.narrower_box - ld b, 7 - ld c, 1 - hlcoord 1, 6 - call ClearBox - jp Function48157 - -Mobile12_Bin2Dec: ; 48444 (12:4444) - push bc - push af - push de - push hl - ld hl, .DigitStrings -.loop - and a - jr z, .got_string - inc hl - inc hl - dec a - jr .loop -.got_string - ld d, h - ld e, l - pop hl - call PlaceString - pop de - pop af - pop bc - ret -; 4845d (12:445d) - -.DigitStrings: ; 4845d -; 4845d - db "0@" - db "1@" - db "2@" - db "3@" - db "4@" - db "5@" - db "6@" - db "7@" - db "8@" - db "9@" -; 48471 - -MobileProfileString: db " Mobile Profile@" -MobileString_Gender: db "Gender@" -MobileString_Age: db "Age@" -MobileString_Address: db "Address@" -MobileString_ZipCode: db "Zip Code@" -MobileString_OK: db "OK@" -MobileString_ProfileChanged: db "Profile Changed@" -MobileDesc_Gender: db "Boy or girl?@" -MobileDesc_Age: db "How old are you?@" -MobileDesc_Address: db "Where do you live?@" -MobileDesc_ZipCode: db "Your zip code?@" -; 484f1 - -MenuDataHeader_0x484f1: ; 0x484f1 - db $40 ; flags - db 02, 11 ; start coords - db 07, 19 ; end coords - dw MenuData2_0x484f9 - db 1 ; default option -; 0x484f9 - -MenuData2_0x484f9: ; 0x484f9 - db $a0 ; flags - db 2 ; items -Strings_484fb: -String_484fb: db "Boy@" -String_484ff: db "Girl@" -; 0x48504 - -MenuDataHeader_0x48504: ; 0x48504 - db $40 ; flags - db 00, 10 ; start coords - db 17, 19 ; end coords - -MenuDataHeader_0x48509: ; 0x48509 - db $40 ; flags - db 05, 10 ; start coords - db 07, 19 ; end coords - -MenuDataHeader_0x4850e: ; 0x4850e - db $40 ; flags - db 09, 10 ; start coords - db 11, 19 ; end coords - -MenuDataHeader_0x48513: ; 0x48513 - db $40 ; flags - db 01, 11 ; start coords - db 12, 18 ; end coords - dw MenuData2_0x4851b - db 1 ; default option -; 0x4851b - -MenuData2_0x4851b: ; 0x4851b - db $1d ; flags - db 6 ; items - -Unknown_4851d: ; 4851d - db $00, $01, $12, $2b, $45, $12, $e8, $43, $00, $00, $00, $00, $00, $00, $2e, $00, $01, $02, $03, $04 - db $05, $06, $07, $08, $09, $0a, $0b, $0c, $0d, $0e, $0f, $10, $11, $12, $13, $14, $15, $16, $17, $18 - db $19, $1a, $1b, $1c, $1d, $1e, $1f, $20, $21, $22, $23, $24, $25, $26, $27, $28, $29, $2a, $2b, $2c - db $2d, $ff - -Prefectures: -Aichi: db "あいちけん@" ; Aichi -Aomori: db "あおもりけん@" ; Aomori -Akita: db "あきたけん@" ; Akita -Ishikawa: db "いしかわけん@" ; Ishikawa -Ibaraki: db "いばらきけん@" ; Ibaraki -Iwate: db "いわてけん@" ; Iwate -Ehime: db "えひめけん@" ; Ehime -Oita: db "おおいたけん@" ; Oita -Osakafu: db "おおさかふ@" ; Osakafu -Okayama: db "おかやまけん@" ; Okayama -Okinawa: db "おきなわけん@" ; Okinawa -Kagawa: db "かがわけん@" ; Kagawa -Kagoshima: db "かごしまけん@" ; Kagoshima -Kanagawa: db "かながわけん@" ; Kanagawa -Gifu: db "ぎふけん@" ; Gifu -Kyotofu: db "きょうとふ@" ; Kyotofu -Kumamoto: db "くまもとけん@" ; Kumamoto -Gunma: db "ぐんまけん@" ; Gunma -Kochi: db "こうちけん@" ; Kochi -Saitama: db "さいたまけん@" ; Saitama -Saga: db "さがけん@" ; Saga -Shiga: db "しがけん@" ; Shiga -Shizuoka: db "しずおかけん@" ; Shizuoka -Shimane: db "しまねけん@" ; Shimane -Chiba: db "ちばけん@" ; Chiba -Tokyo: db "とうきょうと@" ; Tokyo -Tokushima: db "とくしまけん@" ; Tokushima -Tochigi: db "とちぎけん@" ; Tochigi -Tottori: db "とっとりけん@" ; Tottori -Toyama: db "とやまけん@" ; Toyama -Nagasaki: db "ながさきけん@" ; Nagasaki -Nagano: db "ながのけん@" ; Nagano -Naraken: db "ならけん@" ; Naraken -Niigata: db "にいがたけん@" ; Niigata -Hyogo: db "ひょうごけん@" ; Hyogo -Hiroshima: db "ひろしまけん@" ; Hiroshima -Fukui: db "ふくいけん@" ; Fukui -Fukuoka: db "ふくおかけん@" ; Fukuoka -Fukushima: db "ふくしまけん@" ; Fukushima -Hokkaido: db "ほっかいどう@" ; Hokkaido -Mie: db "みえけん@" ; Mie -Miyagi: db "みやぎけん@" ; Miyagi -Miyazaki: db "みやざきけん@" ; Miyazaki -Yamagata: db "やまがたけん@" ; Yamagata -Yamaguchi: db "やまぐちけん@" ; Yamaguchi -Yamanashi: db "やまなしけん@" ; Yamanashi -Wakayama: db "わかやまけん@" ; Wakayama -; 48689 - -Function48689: ; 48689 (12:4689) - ld c, 7 - call DelayFrames - ld b, $1 - call GetMysteryGift_MobileAdapterLayout - call ClearBGPalettes - hlcoord 0, 0 - ld b, 4 - ld c, SCREEN_WIDTH - call ClearBox - hlcoord 0, 2 - ld a, $c - ld [hl], a - ld bc, SCREEN_WIDTH - 1 - add hl, bc - ld [hl], a - ld de, MobileProfileString - hlcoord 1, 2 - call PlaceString - hlcoord 0, 4 - ld b, $8 - ld c, $12 - call Function48cdc - ret - -Function486bf: ; 486bf (12:46bf) - ld hl, w2DMenuCursorInitY - ld a, [wd002] - bit 6, a - jr nz, .start_at_6 - ld a, 4 - ld [hli], a - jr .got_init_y - -.start_at_6 - ld a, 6 - ld [hli], a -.got_init_y - ld a, 1 - ld [hli], a ; init x - ld a, [wd002] - bit 6, a - jr nz, .check_wd479 - call Function48725 - ld a, 4 - jr nc, .got_num_rows_1 - ld a, 5 -.got_num_rows_1 - ld [hli], a - jr .got_num_rows_2 - -.check_wd479 - ld a, [wd479] - bit 1, a - jr nz, .four_rows - call Function48725 - jr c, .four_rows - ld a, 3 - ld [hli], a - jr .got_num_rows_2 - -.four_rows - ld a, 4 - ld [hli], a -.got_num_rows_2 - ld a, 1 - ld [hli], a ; num cols - ld [hl], $0 ; flags 1 - set 5, [hl] - inc hl - xor a - ld [hli], a ; flags 2 - ld a, $20 - ld [hli], a ; cursor offsets - ld a, A_BUTTON - add D_UP - add D_DOWN - push af - ld a, [wd002] - bit 6, a - jr z, .got_joypad_mask - pop af - add B_BUTTON - push af -.got_joypad_mask - pop af - ld [hli], a - ld a, $1 - ld [hli], a ; cursor y - ld [hli], a ; cursor x - xor a - ld [hli], a ; off char - ld [hli], a ; cursor tile - ld [hli], a ; cursor tile + 1 - ret - -Function48725: ; 48725 (12:4725) -; ld a, [wd003] -; and $f -; cp $f -; jr nz, .clear_carry -; scf -; ret -; .clear_carry -; and a -; ret - - ld a, [wd003] - bit 0, a - jr z, .clear_carry - bit 1, a - jr z, .clear_carry - bit 2, a - jr z, .clear_carry - bit 3, a - jr z, .clear_carry - scf - ret - -.clear_carry - and a - ret - -Function4873c: ; 4873c (12:473c) - ld hl, w2DMenuCursorInitY - ld a, 4 - ld [hli], a - ld a, 12 - ld [hli], a ; init x - ld a, 2 - ld [hli], a ; num rows - ld a, 1 - ld [hli], a ; num cols - ld [hl], $0 ; flags 1 - set 5, [hl] - inc hl - xor a - ld [hli], a ; flags 2 - ln a, 2, 0 - ld [hli], a ; cursor offsets - ld a, A_BUTTON - add B_BUTTON - ld [hli], a ; joypad filter - ; ld a, [PlayerGender] - ; xor 1 - ; inc a - ld a, [PlayerGender] - and a - jr z, .male - ld a, 2 - jr .okay_gender - -.male - ld a, 1 -.okay_gender - ld [hli], a ; cursor y - ld a, $1 - ld [hli], a ; cursor x - xor a - ld [hli], a ; off char - ld [hli], a ; cursor tile - ld [hli], a ; cursor tile + 1 - ret - -Function4876f: ; 4876f (12:476f) - call Function48283 - hlcoord 1, 16 - ld de, MobileDesc_Age - call PlaceString - ld hl, MenuDataHeader_0x48509 - call LoadMenuDataHeader - ld a, [hInMenu] - push af - ld a, $1 - ld [hInMenu], a - hlcoord 10, 5 - ld b, $1 - ld c, $8 - call Function48cdc - call WaitBGMap - ld a, [wd473] - and a - jr z, .asm_487ab - cp $64 - jr z, .asm_487b2 - hlcoord 12, 5 - ld [hl], $10 - hlcoord 12, 7 - ld [hl], $11 - jr .asm_487b7 -.asm_487ab - hlcoord 12, 5 - ld [hl], $10 - jr .asm_487b7 -.asm_487b2 - hlcoord 12, 7 - ld [hl], $11 -.asm_487b7 - hlcoord 11, 6 - call Function487ec - ld c, 10 - call DelayFrames - ld a, [wd473] - push af -.asm_487c6 - call JoyTextDelay - call Function4880e - jr nc, .asm_487c6 - ld a, $1 - call MenuClickSound - pop bc - jr nz, .asm_487da - ld a, b - ld [wd473], a -.asm_487da - ld a, [wd473] - call ExitMenu - hlcoord 11, 6 - call Function487ec - pop af - ld [hInMenu], a - jp Function4840c - -Function487ec: ; 487ec (12:47ec) - push hl - ld de, wd473 - call Function487ff - pop hl -rept 4 - inc hl -endr - ld de, String_4880d - call PlaceString - ret - -Function487ff: ; 487ff (12:47ff) - push hl - ld a, " " - ld [hli], a - ld [hl], a - pop hl - ld b, PRINTNUM_LEADINGZEROS | 1 - ld c, 3 - call PrintNum - ret -; 4880d (12:480d) - -String_4880d: ; 4880d - db "@" -; 4880e - -Function4880e: ; 4880e (12:480e) - ld a, [hJoyPressed] - and A_BUTTON - jp nz, Function488b9 - ld a, [hJoyPressed] - and B_BUTTON - jp nz, Function488b4 - ld hl, hJoyLast - ld a, [hl] - and D_UP - jr nz, .asm_48843 - ld a, [hl] - and D_DOWN - jr nz, .asm_48838 - ld a, [hl] - and D_LEFT - jr nz, .asm_4884f - ld a, [hl] - and D_RIGHT - jr nz, .asm_4885f - call DelayFrame - and a - ret -.asm_48838 - ld hl, wd473 - ld a, [hl] - and a - jr z, .asm_48840 - dec a -.asm_48840 - ld [hl], a - jr .asm_4886f -.asm_48843 - ld hl, wd473 - ld a, [hl] - cp $64 - jr nc, .asm_4884c - inc a -.asm_4884c - ld [hl], a - jr .asm_4886f -.asm_4884f - ld a, [wd473] - cp $5b - jr c, .asm_48858 - ld a, $5a -.asm_48858 - add $a - ld [wd473], a - jr .asm_4886f -.asm_4885f - ld a, [wd473] - cp $a - jr nc, .asm_48868 - ld a, $a -.asm_48868 - sub $a - ld [wd473], a - jr .asm_4886f -.asm_4886f - ld a, [wd473] - and a - jr z, .asm_48887 - cp $64 - jr z, .asm_48898 - jr z, .asm_488a7 - hlcoord 12, 5 - ld [hl], $10 - hlcoord 12, 7 - ld [hl], $11 - jr .asm_488a7 -.asm_48887 - hlcoord 10, 5 - ld b, $1 - ld c, $8 - call Function48cdc - hlcoord 12, 5 - ld [hl], $10 - jr .asm_488a7 -.asm_48898 - hlcoord 10, 5 - ld b, $1 - ld c, $8 - call Function48cdc - hlcoord 12, 7 - ld [hl], $11 -.asm_488a7 - hlcoord 11, 6 - call Function487ec - call WaitBGMap - ld a, $1 - and a - ret - -Function488b4: ; 488b4 (12:48b4) - ld a, $0 - and a - scf - ret - -Function488b9: ; 488b9 (12:48b9) - ld a, [wd003] - set 1, a - ld [wd003], a - scf - ret -; 488c3 (12:48c3) - -GFX_488c3: ; 488c3 -INCBIN "gfx/unknown/up_arrow.2bpp" - -GFX_488cb: ; 488cb -INCBIN "gfx/unknown/down_arrow.2bpp" - -Function488d3: ; 488d3 (12:48d3) - call Function48283 - hlcoord 1, 16 - ld de, MobileDesc_ZipCode - call PlaceString - call Function48a3a - jp c, Function4840c - ld hl, MenuDataHeader_0x4850e - call LoadMenuDataHeader - ld a, [hInMenu] - push af - ld a, $1 - ld [hInMenu], a - hlcoord 10, 9 - ld b, $1 - ld c, $8 - call Function48cdc - ld a, [wd475] - and $f - ld d, $0 - hlcoord 11, 10 - call Function489ea - call WaitBGMap - ld a, [wd475] - ld b, a - ld a, [wd476] - ld c, a - ld a, [wd477] - ld d, a - ld a, [wd478] - ld e, a - push de - push bc - ld d, $0 - ld b, $0 - -asm_48922: ; 48922 (12:4922) - push bc - call JoyTextDelay - ld a, [hJoyDown] - and a - jp z, Function4896e - bit 0, a - jp nz, Function4896e - bit 1, a - jp nz, Function4896e - ld a, [wd002] - and %11001111 - res 7, a - ld [wd002], a - pop bc - inc b - ld a, b - cp $5 - push bc - jr c, .asm_4894c - pop bc - ld b, $4 - push bc -.asm_4894c - pop bc - push bc - ld a, b - cp $4 - jr nz, asm_48972 - ld c, 10 - call DelayFrames - jr asm_48972 -; 4895a (12:495a) - -Function4895a: ; 4895a - ld a, [hJoyPressed] - and a - jr z, .asm_48965 - pop bc - ld b, $1 - push bc - jr asm_48972 - -.asm_48965 - ld a, [hJoyLast] - and a - jr z, asm_48972 - - pop bc - ld b, $1 - push bc - -Function4896e: ; 4896e (12:496e) - pop bc - ld b, $0 - push bc - -asm_48972: ; 48972 (12:4972) - call Function48ab5 - push af - cp $f0 - jr z, .asm_48994 - cp $f - jr nz, .asm_48988 - ld a, [wd002] - set 7, a - and $cf - ld [wd002], a -.asm_48988 - hlcoord 11, 10 - ld b, $0 - ld c, d - add hl, bc - ld b, $3 - call Function48c11 -.asm_48994 - call WaitBGMap - pop af - pop bc - jr nc, asm_48922 - jr nz, .asm_489b1 - pop bc - ld a, b - ld [wd475], a - ld a, c - ld [wd476], a - pop bc - ld a, b - ld [wd477], a - ld a, c - ld [wd478], a - jr .asm_489c5 -.asm_489b1 - push af - ld a, [wd479] - set 0, a - ld [wd479], a - ld a, [wd003] - set 3, a - ld [wd003], a - pop af - pop bc - pop bc -.asm_489c5 - push af - push bc - push de - push hl - ld a, $1 - call MenuClickSound - pop hl - pop de - pop bc - pop af - call ExitMenu - hlcoord 11, 10 - call Function489ea - hlcoord 11, 9 - lb bc, 1, 8 - call ClearBox - pop af - ld [hInMenu], a - jp Function4840c - -Function489ea: ; 489ea (12:49ea) - push de - ld a, [wd475] - and $f - call Mobile12_Bin2Dec - ld a, [wd476] - and $f0 - swap a - inc hl - call Mobile12_Bin2Dec - ld a, [wd476] - and $f - inc hl - call Mobile12_Bin2Dec - inc hl - ld de, String_48a38 - call PlaceString - ld a, [wd477] - and $f0 - swap a - inc hl - call Mobile12_Bin2Dec - ld a, [wd477] - and $f - inc hl - call Mobile12_Bin2Dec - ld a, [wd478] - and $f0 - swap a - inc hl - call Mobile12_Bin2Dec - ld a, [wd478] - and $f - inc hl - call Mobile12_Bin2Dec - pop de - ret -; 48a38 (12:4a38) - -String_48a38: ; 48a38 - db "-@" -; 48a3a - -Function48a3a: ; 48a3a (12:4a3a) - ld hl, MenuDataHeader_0x48a9c - call LoadMenuDataHeader - call Function4873c - ld a, $a - ld [w2DMenuCursorInitY], a - ld a, $b - ld [w2DMenuCursorInitX], a - ld a, $1 - ld [wMenuCursorY], a - hlcoord 10, 8 - ld b, $4 - ld c, $8 - call Function48cdc - hlcoord 12, 10 - ld de, String_48aa1 - call PlaceString - call StaticMenuJoypad - push af - call PlayClickSFX - call ExitMenu - pop af - bit 1, a - jp nz, Function48a9a - ld a, [wMenuCursorY] - cp $1 - jr z, .asm_48a98 - ld a, [wd003] - set 3, a - ld [wd003], a - ld a, [wd479] - res 0, a - ld [wd479], a - xor a - ld bc, $4 - ld hl, wd475 - call ByteFill - jr Function48a9a -.asm_48a98 - and a - ret - -Function48a9a: ; 48a9a (12:4a9a) - scf - ret -; 48a9c (12:4a9c) - -MenuDataHeader_0x48a9c: ; 0x48a9c - db $40 ; flags - db 08, 10 ; start coords - db 13, 19 ; end coord - -String_48aa1: ; 48aa1 - db "Tell Now" - next "Tell Later@" -; 48ab5 - - -Function48ab5: ; 48ab5 (12:4ab5) - ld a, [hJoyPressed] - and A_BUTTON - jp nz, Function48c0f - ld a, [hJoyPressed] - and B_BUTTON - jp nz, Function48c0d - ld a, d - and a - jr z, .asm_48adf - cp $1 - jr z, .asm_48ae7 - cp $2 - jr z, .asm_48af1 - cp $3 - jr z, .asm_48af9 - cp $4 - jr z, .asm_48b03 - cp $5 - jr z, .asm_48b0b - cp $6 - jr .asm_48b15 -.asm_48adf - ld hl, wd475 - ld a, [hl] - and $f - jr .asm_48b1d -.asm_48ae7 - ld hl, wd476 - ld a, [hl] - swap a - or $f0 - jr .asm_48b1d -.asm_48af1 - ld hl, wd476 - ld a, [hl] - and $f - jr .asm_48b1d -.asm_48af9 - ld hl, wd477 - ld a, [hl] - swap a - or $f0 - jr .asm_48b1d -.asm_48b03 - ld hl, wd477 - ld a, [hl] - and $f - jr .asm_48b1d -.asm_48b0b - ld hl, wd478 - ld a, [hl] - swap a - or $f0 - jr .asm_48b1d -.asm_48b15 - ld hl, wd478 - ld a, [hl] - and $f - jr .asm_48b1d -.asm_48b1d - push hl - push af - ld e, $0 - hlcoord 11, 10 - ld a, d -.asm_48b25 - and a - jr z, .asm_48b2c - inc e - dec a - jr .asm_48b25 -.asm_48b2c - ld hl, hJoyLast - ld a, [hl] - and D_UP - jr nz, .asm_48b8d - ld a, [hl] - and D_DOWN - jr nz, .asm_48b55 - ld a, [hl] - and D_LEFT - jp nz, Function48bd7 - ld a, [hl] - and D_RIGHT - jr nz, .asm_48b9d - hlcoord 11, 10 - call Function489ea - ld a, [wd002] - bit 7, a - jr nz, .asm_48b51 -.asm_48b51 - pop bc - pop bc - and a - ret -.asm_48b55 - pop af - ld b, a - and $f - and a - ld a, b - jr nz, .asm_48b61 - and $f0 - add $a -.asm_48b61 - dec a -.asm_48b62 - push de - push af - hlcoord 10, 9 - ld b, $1 - ld c, $8 - call Function48cdc - pop af - pop de - hlcoord 11, 10 - ld b, a - ld a, d - cp $3 - jr c, .asm_48b7a - inc hl -.asm_48b7a - ld a, b - pop hl - bit 7, a - jr z, .asm_48b85 - call Function48c4d - jr .asm_48b88 -.asm_48b85 - call Function48c5a -.asm_48b88 - ld a, $f0 - jp Function48c00 -.asm_48b8d - pop af - ld b, a - and $f - cp $9 - ld a, b - jr c, .asm_48b9a - and $f0 - add $ff -.asm_48b9a - inc a - jr .asm_48b62 -.asm_48b9d - push de - hlcoord 10, 9 - ld b, $1 - ld c, $8 - call Function48cdc - pop de - ld a, d - cp $6 - jr nc, .asm_48baf - inc d -.asm_48baf - pop af - pop hl - ld b, a - ld a, d - cp $6 - ld a, b - jr z, .asm_48bc4 - bit 7, a - jr nz, .asm_48bc4 - inc hl - ld a, [hl] - swap a - and $f - jr asm_48bc7 -.asm_48bc4 - ld a, [hl] - and $f - -asm_48bc7: ; 48bc7 (12:4bc7) - hlcoord 11, 10 - push af - ld a, d - cp $3 - pop bc - ld a, b - jr c, .asm_48bd3 - inc hl -.asm_48bd3 - ld a, $f - jr Function48c00 - -Function48bd7: ; 48bd7 (12:4bd7) - push de - hlcoord 10, 9 - ld b, $1 - ld c, $8 - call Function48cdc - pop de - ld a, d - and a - pop af - pop hl - ld b, a - ld a, d - and a - ld a, b - jr z, .asm_48bf3 - bit 7, a - jr z, .asm_48bf8 - dec d - dec hl -.asm_48bf3 - ld a, [hl] - and $f - jr asm_48bc7 -.asm_48bf8 - dec d - ld a, [hl] - swap a - and $f - jr asm_48bc7 - -Function48c00: ; 48c00 (12:4c00) - push af - hlcoord 11, 10 - call Function489ea - ld a, $1 - and a - pop bc - ld a, b - ret - -Function48c0d: ; 48c0d (12:4c0d) - xor a - and a - -Function48c0f: ; 48c0f (12:4c0f) - scf - ret - -Function48c11: ; 48c11 (12:4c11) - ld a, [wd002] - bit 7, a - jr z, .asm_48c20 - ld a, d - cp $3 - jr c, .asm_48c1e - inc hl -.asm_48c1e - ld [hl], $7f -.asm_48c20 - ld a, [wd002] - swap a - and $3 - inc a - cp b - jr nz, .asm_48c40 - ld a, [wd002] - bit 7, a - jr z, .asm_48c3a - res 7, a - ld [wd002], a - xor a - jr .asm_48c40 -.asm_48c3a - set 7, a - ld [wd002], a - xor a -.asm_48c40 - swap a - ld b, a - ld a, [wd002] - and $cf - or b - ld [wd002], a - ret - -Function48c4d: ; 48c4d (12:4c4d) - swap a - and $f0 - push af - ld a, [hl] - and $f - ld [hl], a - pop af - or [hl] - ld [hl], a - ret - -Function48c5a: ; 48c5a (12:4c5a) - push af - ld a, [hl] - and $f0 - ld [hl], a - pop af - or [hl] - ld [hl], a - ret - -Function48c63: ; 48c63 - ld a, "@" - ld [de], a - ld a, c - cp $30 - jr nc, .asm_48c8c - and a - jr z, .asm_48c8c - dec c - push de - ld h, d - ld l, e - ld a, "@" - ld b, 7 -.asm_48c76 - ld [hli], a - dec b - jr nz, .asm_48c76 - ld hl, Prefectures - ld a, c - call GetNthString -.asm_48c81 - ld a, [hli] - ld [de], a - inc de - ld a, [hl] - cp "@" - jr nz, .asm_48c81 - and a - pop de - ret - -.asm_48c8c - scf - ret -; 48c8e - -Function48c8e: ; 48c8e -; unreferenced - ld hl, $d02a - ld d, h - ld e, l - callba Function48c63 - hlcoord 10, 7 - call PlaceString - call WaitBGMap - ret -; 48ca3 - -Function48ca3: ; 48ca3 - push af - push bc - push de - push hl - ld b, 0 - ld c, 0 - ld d, 0 -.asm_48cad - cp 100 - jr c, .asm_48cb6 - sub 100 - inc b - jr .asm_48cad - -.asm_48cb6 - cp 10 - jr c, .asm_48cbf - sub 10 - inc c - jr .asm_48cb6 - -.asm_48cbf - cp 1 - jr c, .asm_48cc7 - dec a - inc d - jr .asm_48cbf - -.asm_48cc7 - ld a, b - call Mobile12_Bin2Dec - inc hl - ld a, c - call Mobile12_Bin2Dec - inc hl - ld a, d - call Mobile12_Bin2Dec - pop hl - pop de - pop bc - pop af - ret -; 48cda - -Function48cda: ; 48cda (12:4cda) - ld h, d - ld l, e - -Function48cdc: ; 48cdc (12:4cdc) - push bc - push hl - call Function48cfd - pop hl - pop bc - ld de, AttrMap - TileMap - add hl, de - inc b - inc b - inc c - inc c - ld a, $0 -.asm_48ced - push bc - push hl -.asm_48cef - ld [hli], a - dec c - jr nz, .asm_48cef - pop hl - ld de, $14 - add hl, de - pop bc - dec b - jr nz, .asm_48ced - ret - -Function48cfd: ; 48cfd (12:4cfd) - push hl - ld a, $4 - ld [hli], a - inc a - call Function48d2a - inc a - ld [hl], a - pop hl - ld de, $14 - add hl, de -.asm_48d0c - push hl - ld a, $7 - ld [hli], a - ld a, $7f - call Function48d2a - ld [hl], $8 - pop hl - ld de, $14 - add hl, de - dec b - jr nz, .asm_48d0c - ld a, $9 - ld [hli], a - ld a, $a - call Function48d2a - ld [hl], $b - ret - -Function48d2a: ; 48d2a (12:4d2a) - ld d, c -.asm_48d2b - ld [hli], a - dec d - jr nz, .asm_48d2b - ret - -Function48d30: ; 48d30 (12:4d30) - ld hl, wd475 - call Function48d4a - ld hl, wd477 - call Function48d4a - ret - -Function48d3d: ; 48d3d (12:4d3d) - ld hl, wd475 - call Function48d94 - ld hl, wd477 - call Function48d94 - ret - -Function48d4a: ; 48d4a (12:4d4a) - inc hl - ld a, [hl] - ld b, a - and $f - ld c, a - srl b - srl b - srl b - srl b - push bc - ld c, 10 - ld a, b - call SimpleMultiply - pop bc - add c - ld [hld], a - xor a - ld [hMultiplicand + 0], a - ld [hMultiplicand + 1], a - ld a, [hl] - srl a - srl a - srl a - srl a - ld c, 10 - call SimpleMultiply - ld b, a - ld a, [hli] - and $f - add b - ld [hMultiplicand + 2], a - ld a, 100 - ld [hMultiplier], a - call Multiply - ld a, [hProduct + 2] - ld b, a - ld a, [hProduct + 3] - ld c, a - ld e, [hl] - add e - ld c, a - ld a, b - adc $0 - ld b, a - ld a, c - ld [hld], a - ld [hl], b - ret - -Function48d94: ; 48d94 (12:4d94) - xor a - ld [hDividend + 0], a - ld [hDividend + 1], a - ld a, [hli] - ld [hDividend + 0], a - ld a, [hl] - ld [hDividend + 1], a - ld a, 100 - ld [hDivisor], a - ld b, 2 - call Divide - ld a, [hRemainder] - ld c, 10 - call SimpleDivide - sla b - sla b - sla b - sla b - or b - ld [hld], a - ld a, [hQuotient + 2] - ld c, 10 - call SimpleDivide - sla b - sla b - sla b - sla b - or b - ld [hl], a - ret diff --git a/misc/mobile_12_2.asm b/misc/mobile_12_2.asm deleted file mode 100755 index 37179c122..000000000 --- a/misc/mobile_12_2.asm +++ /dev/null @@ -1,936 +0,0 @@ -MobileCheckOwnMonAnywhere: ; 4a843 -; Like CheckOwnMonAnywhere, but only check for species. -; OT/ID don't matter. - - ld a, [PartyCount] - and a - ret z - - ld d, a - ld e, 0 - ld hl, PartyMon1Species - ld bc, PartyMonOT -.asm_4a851 - call .CheckMatch - ret c - push bc - ld bc, PARTYMON_STRUCT_LENGTH - add hl, bc - pop bc - call .CopyName - dec d - jr nz, .asm_4a851 - ld a, BANK(sBoxCount) - call GetSRAMBank - ld a, [sBoxCount] - and a - jr z, .asm_4a888 - ld d, a - ld hl, sBoxMon1Species - ld bc, sBoxMonOT -.asm_4a873 - call .CheckMatch - jr nc, .asm_4a87c - call CloseSRAM - ret - -.asm_4a87c - push bc - ld bc, BOXMON_STRUCT_LENGTH - add hl, bc - pop bc - call .CopyName - dec d - jr nz, .asm_4a873 - -.asm_4a888 - call CloseSRAM - ld c, 0 -.asm_4a88d - ld a, [wCurBox] - and $f - cp c - jr z, .asm_4a8d1 - ld hl, .BoxAddrs - ld b, 0 - add hl, bc - add hl, bc - add hl, bc - ld a, [hli] - call GetSRAMBank - ld a, [hli] - ld h, [hl] - ld l, a - ld a, [hl] - and a - jr z, .asm_4a8d1 - push bc - push hl - ld de, sBoxMons - sBoxCount - add hl, de - ld d, h - ld e, l - pop hl - push de - ld de, sBoxMonOT - sBoxCount - add hl, de - ld b, h - ld c, l - pop hl - ld d, a -.asm_4a8ba - call .CheckMatch - jr nc, .asm_4a8c4 - pop bc - call CloseSRAM - ret - -.asm_4a8c4 - push bc - ld bc, BOXMON_STRUCT_LENGTH - add hl, bc - pop bc - call .CopyName - dec d - jr nz, .asm_4a8ba - pop bc - -.asm_4a8d1 - inc c - ld a, c - cp NUM_BOXES - jr c, .asm_4a88d - call CloseSRAM - and a - ret -; 4a8dc - -.CheckMatch: ; 4a8dc - push bc - push hl - push de - ld d, b - ld e, c - ld a, [ScriptVar] - ld b, [hl] - cp b - jr nz, .no_match - jr .match - -.no_match - pop de - pop hl - pop bc - and a - ret - -.match - pop de - pop hl - pop bc - scf - ret -; 4a8f4 - -.BoxAddrs: ; 4a8f4 - 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 -; 4a91e - -.CopyName: ; 4a91e - push hl - ld hl, NAME_LENGTH - add hl, bc - ld b, h - ld c, l - pop hl - ret -; 4a927 - -FindItemInPCOrBag: ; 4a927 - ld a, [ScriptVar] - ld [CurItem], a - ld hl, PCItems - call CheckItem - jr c, .found - - ld a, [ScriptVar] - ld [CurItem], a - ld hl, NumItems - call CheckItem - jr c, .found - - xor a - ld [ScriptVar], a - ret - -.found - ld a, 1 - ld [ScriptVar], a - ret -; 4a94e - -Function4a94e: ; 4a94e - call FadeToMenu - ld a, -1 - ld hl, wd002 - ld bc, 3 - call ByteFill - xor a - ld [wd018], a - ld [wd019], a - ld b, SCGB_PACKPALS - call GetSGBLayout - call SetPalettes - call Function4aa22 - jr c, .asm_4a985 - jr z, .asm_4a9a1 - jr .asm_4a97b - -.asm_4a974 - call Function4aa25 - jr c, .asm_4a985 - jr z, .asm_4a9a1 - -.asm_4a97b - call Function4ac58 - ld hl, wd019 - res 1, [hl] - jr .asm_4a974 - -.asm_4a985 - ld a, [wd018] - and a - jr nz, .asm_4a990 - call Function4aba8 - jr c, .asm_4a974 - -.asm_4a990 - call CloseSubmenu - ld hl, wd002 - ld a, -1 - ld bc, 3 - call ByteFill - scf - jr .asm_4a9af - -.asm_4a9a1 - call Function4a9c3 - jr c, .asm_4a9b0 - call Function4a9d7 - jr c, .asm_4a974 - call CloseSubmenu - and a - -.asm_4a9af - ret - -.asm_4a9b0 - ld de, SFX_WRONG - call PlaySFX - ld hl, UnknownText_0x4a9be - call PrintText - jr .asm_4a974 -; 4a9be - -UnknownText_0x4a9be: ; 0x4a9be - ; Pick three #MON for battle. - text_jump UnknownText_0x1c51d7 - db "@" -; 0x4a9c3 - -Function4a9c3: ; 4a9c3 - ld hl, wd002 - ld a, $ff - cp [hl] - jr z, .asm_4a9d5 - inc hl - cp [hl] - jr z, .asm_4a9d5 - inc hl - cp [hl] - jr z, .asm_4a9d5 - and a - ret - -.asm_4a9d5 - scf - ret -; 4a9d7 - -Function4a9d7: ; 4a9d7 - ld a, [wd002] - ld hl, PartyMonNicknames - call GetNick - ld h, d - ld l, e - ld de, EndFlypoint - ld bc, 6 - call CopyBytes - ld a, [wd003] - ld hl, PartyMonNicknames - call GetNick - ld h, d - ld l, e - ld de, wd00c - ld bc, 6 - call CopyBytes - ld a, [wd004] - ld hl, PartyMonNicknames - call GetNick - ld h, d - ld l, e - ld de, wd012 - ld bc, 6 - call CopyBytes - ld hl, UnknownText_0x4aa1d - call PrintText - call YesNoBox - ret -; 4aa1d - -UnknownText_0x4aa1d: ; 0x4aa1d - ; , @ and @ . Use these three? - text_jump UnknownText_0x1c51f4 - db "@" -; 0x4aa22 - -Function4aa22: ; 4aa22 - call ClearBGPalettes - -Function4aa25: ; 4aa25 - callba LoadPartyMenuGFX - callba InitPartyMenuWithCancel - call Function4aad3 - -Function4aa34: ; 4aa34 - ld a, PARTYMENUACTION_MOBILE - ld [PartyMenuActionText], a - callba WritePartyMenuTilemap - xor a - ld [PartyMenuActionText], a - callba PrintPartyMenuText - call Function4aab6 - call WaitBGMap - call SetPalettes - call DelayFrame - call Function4ab1a - jr z, .asm_4aa66 - push af - call Function4aafb - jr c, .asm_4aa67 - call Function4ab06 - jr c, .asm_4aa67 - pop af - -.asm_4aa66 - ret - -.asm_4aa67 - ld hl, wd019 - set 1, [hl] - pop af - ret -; 4aa6e - -Function4aa6e: ; 4aa6e - pop af - ld de, SFX_WRONG - call PlaySFX - call WaitSFX - jr Function4aa34 -; 4aa7a - -Function4aa7a: ; 4aa7a - ld hl, wd002 - ld d, $3 -.loop - ld e, PARTY_LENGTH - ld a, [hli] - push de - push hl - cp -1 - jr z, .done - ld hl, wSpriteAnimationStructs - inc a - ld d, a -.inner_loop - ld a, [hl] - and a - jr z, .next - cp d - jr z, .same_as_d - jr .next - - ld a, $3 - jr .proceed - -.same_as_d - ld a, $2 - -.proceed - push hl - ld c, l - ld b, h - ld hl, $2 - add hl, bc - ld [hl], a - pop hl - -.next - ld bc, $10 - add hl, bc - dec e - jr nz, .inner_loop - pop hl - pop de - dec d - jr nz, .loop - jr .finished - -.done - pop hl - pop de - -.finished - ret -; 4aab6 - -Function4aab6: ; 4aab6 - ld hl, wd002 - ld d, $3 -.loop - ld a, [hli] - cp -1 - jr z, .done - push de - push hl - hlcoord 0, 1 - ld bc, $28 - call AddNTimes - ld [hl], $ec - pop hl - pop de - dec d - jr nz, .loop - -.done - ret -; 4aad3 - -Function4aad3: ; 4aad3 - ld hl, PartyCount - ld a, [hli] - and a - ret z ; Nothing in your party - - ld c, a - xor a - ld [hObjectStructIndexBuffer], a -.loop - push bc - push hl - ld e, 0 - callba LoadMenuMonIcon - ld a, [hObjectStructIndexBuffer] - inc a - ld [hObjectStructIndexBuffer], a - pop hl - pop bc - dec c - jr nz, .loop - - call Function4aa7a - callba PlaySpriteAnimations - ret -; 4aafb - -Function4aafb: ; 4aafb - ld a, [CurPartySpecies] - cp EGG - jr z, .egg - and a - ret - -.egg - scf - ret -; 4ab06 - -Function4ab06: ; 4ab06 - ld a, [CurPartyMon] - ld bc, PARTYMON_STRUCT_LENGTH - ld hl, PartyMon1HP - call AddNTimes - ld a, [hli] - ld b, a - ld a, [hl] - or b - jr nz, .NotFainted - scf - -.NotFainted: - ret -; 4ab1a - -Function4ab1a: ; 4ab1a -.asm_4ab1a - ld a, $fb - ld [wMenuJoypadFilter], a - ld a, $26 - ld [w2DMenuCursorOffsets], a - ld a, $2 - ld [w2DMenuNumCols], a - call Function4adf7 - call StaticMenuJoypad - call Function4abc3 - jr c, .asm_4ab1a - push af - call Function4ab99 - call nc, PlaceHollowCursor - pop af - bit 1, a - jr nz, .asm_4ab6d - ld a, [PartyCount] - inc a - ld b, a - ld a, [wMenuCursorY] - ld [wPartyMenuCursor], a - cp b - jr z, .asm_4ab7e - ld a, [wMenuCursorY] - 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 - ld a, $1 - and a - ret - -.asm_4ab6d - ld a, [wMenuCursorY] - ld [wPartyMenuCursor], a -.asm_4ab73 - ld de, SFX_READ_TEXT_2 - call PlaySFX - call WaitSFX - scf - ret - -.asm_4ab7e - ld a, $1 - ld [wd018], a - ld a, [wMenuCursorX] - cp $2 - jr z, .asm_4ab73 - ld de, SFX_READ_TEXT_2 - call PlaySFX - call WaitSFX - xor a - ld [wd018], a - and a - ret -; 4ab99 - -Function4ab99: ; 4ab99 - bit 1, a - jr z, .asm_4aba6 - ld a, [wd002] - cp $ff - jr z, .asm_4aba6 - scf - ret - -.asm_4aba6 - and a - ret -; 4aba8 - -Function4aba8: ; 4aba8 - ld hl, wd004 - ld a, [hl] - cp $ff - jr nz, .asm_4abbe - dec hl - ld a, [hl] - cp $ff - jr nz, .asm_4abbe - dec hl - ld a, [hl] - cp $ff - jr nz, .asm_4abbe - and a - ret - -.asm_4abbe - ld a, $ff - ld [hl], a - scf - ret -; 4abc3 - -Function4abc3: ; 4abc3 - bit 3, a - jr z, .asm_4abd5 - ld a, [PartyCount] - inc a - ld [wMenuCursorY], a - ld a, $1 - ld [wMenuCursorX], a - jr .asm_4ac29 - -.asm_4abd5 - bit 6, a - jr z, .asm_4abeb - ld a, [wMenuCursorY] - ld [wMenuCursorY], a - and a - jr nz, .asm_4ac29 - ld a, [PartyCount] - inc a - ld [wMenuCursorY], a - jr .asm_4ac29 - -.asm_4abeb - bit 7, a - jr z, .asm_4ac08 - ld a, [wMenuCursorY] - ld [wMenuCursorY], a - ld a, [PartyCount] - inc a - inc a - ld b, a - ld a, [wMenuCursorY] - cp b - jr nz, .asm_4ac29 - ld a, $1 - ld [wMenuCursorY], a - jr .asm_4ac29 - -.asm_4ac08 - bit 4, a - jr nz, .asm_4ac10 - bit 5, a - jr z, .asm_4ac56 - -.asm_4ac10 - ld a, [wMenuCursorY] - ld b, a - ld a, [PartyCount] - inc a - cp b - jr nz, .asm_4ac29 - ld a, [wMenuCursorX] - cp $1 - jr z, .asm_4ac26 - ld a, $1 - jr .asm_4ac29 - -.asm_4ac26 - ld [wMenuCursorX], a - -.asm_4ac29 - hlcoord 0, 1 - lb bc, 13, 1 - call ClearBox - call Function4aab6 - ld a, [PartyCount] - hlcoord 6, 1 -.asm_4ac3b - ld bc, $28 - add hl, bc - dec a - jr nz, .asm_4ac3b - ld [hl], $7f - ld a, [wMenuCursorY] - ld b, a - ld a, [PartyCount] - inc a - cp b - jr z, .asm_4ac54 - ld a, $1 - ld [wMenuCursorX], a - -.asm_4ac54 - scf - ret - -.asm_4ac56 - and a - ret -; 4ac58 - -Function4ac58: ; 4ac58 - lb bc, 2, 18 - hlcoord 1, 15 - call ClearBox - callba FreezeMonIcons - ld hl, MenuDataHeader_0x4aca2 - call LoadMenuDataHeader - ld hl, wd019 - bit 1, [hl] - jr z, .asm_4ac89 - hlcoord 11, 13 - ld b, $3 - ld c, $7 - call TextBox - hlcoord 13, 14 - ld de, String_4ada7 - call PlaceString - jr .asm_4ac96 - -.asm_4ac89 - hlcoord 11, 9 - ld b, $7 - ld c, $7 - call TextBox - call Function4ad68 - -.asm_4ac96 - ld a, $1 - ld [hBGMapMode], a - call Function4acaa - call ExitMenu - and a - ret -; 4aca2 - -MenuDataHeader_0x4aca2: ; 0x4aca2 - db $40 ; flags - db 09, 11 ; start coords - db 17, 19 ; end coords - dw NULL - db 1 ; default option -; 0x4acaa - -Function4acaa: ; 4acaa -.asm_4acaa - ld a, $a0 - ld [wMenuData2Flags], a - ld a, [wd019] - bit 1, a - jr z, .asm_4acc2 - ld a, $2 - ld [wMenuData2Items], a - ld a, $c - ld [wMenuBorderTopCoord], a - jr .asm_4accc - -.asm_4acc2 - ld a, $4 - ld [wMenuData2Items], a - ld a, $8 - ld [wMenuBorderTopCoord], a - -.asm_4accc - ld a, $b - ld [wMenuBorderLeftCoord], a - ld a, $1 - ld [wMenuCursorBuffer], a - call InitVerticalMenuCursor - ld hl, w2DMenuFlags1 - set 6, [hl] - call StaticMenuJoypad - ld de, SFX_READ_TEXT_2 - call PlaySFX - ld a, [hJoyPressed] - bit 0, a - jr nz, .asm_4acf4 - bit 1, a - jr nz, .asm_4acf3 - jr .asm_4acaa - -.asm_4acf3 - ret - -.asm_4acf4 - ld a, [wd019] - bit 1, a - jr nz, .asm_4ad0e - ld a, [wMenuCursorY] - cp $1 - jr z, Function4ad17 - cp $2 - jp z, Function4ad56 - cp $3 - jp z, Function4ad60 - jr .asm_4acf3 - -.asm_4ad0e - ld a, [wMenuCursorY] - cp $1 - jr z, Function4ad56 - jr .asm_4acf3 - -Function4ad17: ; 4ad17 - call Function4adb2 - jr z, .asm_4ad4a - ld hl, wd002 - ld a, $ff - cp [hl] - jr z, .asm_4ad39 - inc hl - cp [hl] - jr z, .asm_4ad39 - inc hl - cp [hl] - jr z, .asm_4ad39 - ld de, SFX_WRONG - call WaitPlaySFX - ld hl, UnknownText_0x4ad51 - call PrintText - ret - -.asm_4ad39 - ld a, [CurPartyMon] - ld [hl], a - call Function4a9c3 - ret c - ld a, [wd019] - set 0, a - ld [wd019], a - ret - -.asm_4ad4a - ld a, $ff - ld [hl], a - call Function4adc2 - ret - -UnknownText_0x4ad51: ; 0x4ad51 - ; Only three #MON may enter. - text_jump UnknownText_0x1c521c - db "@" -; 0x4ad56 - -Function4ad56: ; 4ad56 - callba OpenPartyStats - call WaitBGMap2 - ret -; 4ad60 - -Function4ad60: ; 4ad60 - callba ManagePokemonMoves - ret -; 4ad67 - -Function4ad67: ; 4ad67 - ret -; 4ad68 - -Function4ad68: ; 4ad68 - hlcoord 13, 12 - ld de, String_4ad88 - call PlaceString - call Function4adb2 - jr c, .asm_4ad7e - hlcoord 13, 10 - ld de, String_4ada0 - jr .asm_4ad84 - -.asm_4ad7e - hlcoord 13, 10 - ld de, String_4ad9a - -.asm_4ad84 - call PlaceString - ret -; 4ad88 - -String_4ad88: ; 4ad88 - db "つよさをみる" - next "つかえるわざ" - next "もどる@" -; 4ad9a - -String_4ad9a: ; 4ad9a - db "さんかする@" -; 4ada0 - -String_4ada0: ; 4ada0 - db "さんかしない@" -; 4ada7 - -String_4ada7: ; 4ada7 - db "つよさをみる" - next "もどる@" ; BACK -; 4adb2 - -Function4adb2: ; 4adb2 - ld hl, wd002 - ld a, [CurPartyMon] - cp [hl] - ret z - inc hl - cp [hl] - ret z - inc hl - cp [hl] - ret z - scf - ret -; 4adc2 - -Function4adc2: ; 4adc2 - ld a, [wd002] - cp $ff - jr nz, .skip - ld a, [wd003] - cp $ff - jr nz, .skip2 - ld a, [wd004] - ld [wd002], a - ld a, $ff - ld [wd004], a - jr .skip - -.skip2 - ld [wd002], a - ld a, $ff - ld [wd003], a - -.skip - ld a, [wd003] - cp $ff - ret nz - ld b, a - ld a, [wd004] - ld [wd003], a - ld a, b - ld [wd004], a - ret -; 4adf7 - -Function4adf7: ; 4adf7 - ld a, [wd019] - bit 0, a - ret z - ld a, [PartyCount] - inc a - ld [wMenuCursorY], a - ld a, $1 - ld [wMenuCursorX], a - ld a, [wd019] - res 0, a - ld [wd019], a - ret -; 4ae12 diff --git a/misc/mobile_22.asm b/misc/mobile_22.asm deleted file mode 100644 index 17b526586..000000000 --- a/misc/mobile_22.asm +++ /dev/null @@ -1,4448 +0,0 @@ - -String_8911c: ; 8911c - db "でんわばんごうが ただしく" ; Phone number is not - next "はいって いません!@" ; entered correctly! -; 89135 - -String_89135: ; 89135 - db "データが かわって いますが" ; The data has changed. - next "かきかえないで やめますか?@" ; Quit anyway? -; 89153 - -String_89153: ; 89153 - db "メッセージは ありません@" ; No message -; 89160 - -OpenSRAMBank4: ; 89160 - push af - ld a, $4 - call GetSRAMBank - pop af - ret -; 89168 - - -Function89168: ; 89168 (22:5168) - ld hl, GameTimerPause - set 7, [hl] - ret - -Function8916e: ; 8916e (22:516e) - ld hl, GameTimerPause - res 7, [hl] - ret - -Function89174: ; 89174 (22:5174) - ld hl, GameTimerPause - bit 7, [hl] - ret - -Function8917a: ; 8917a (22:517a) - ld hl, wd002 - ld bc, $32 - xor a - call ByteFill - ret - -Function89185: ; 89185 (22:5185) -; strcmp(hl, de, c) -; Compares c bytes starting at de and hl and incrementing together until a mismatch is found. -; Preserves hl and de. - push de - push hl -.loop - ld a, [de] - inc de - cp [hl] - jr nz, .done - inc hl - dec c - jr nz, .loop -.done - pop hl - pop de - ret - -Function89193: ; 89193 -; copy(hl, de, 4) -; Copies c bytes from hl to de. -; Preserves hl and de. - push de - push hl -.loop - ld a, [hli] - ld [de], a - inc de - dec c - jr nz, .loop - pop hl - pop de - ret -; 8919e - - -Function8919e: ; 8919e (22:519e) -; Searches for the c'th string starting at de. Returns the pointer in de. - ld a, c - and a - ret z -.loop - ld a, [de] - inc de - cp "@" - jr nz, .loop - dec c - jr nz, .loop - ret - -Function891ab: ; 891ab - call Mobile22_SetBGMapMode1 - callba ReloadMapPart - call Mobile22_SetBGMapMode0 - ret -; 891b8 - -Function891b8: ; 891b8 - call Mobile22_SetBGMapMode0 - hlcoord 0, 0 - ld a, " " - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT - call ByteFill - call DelayFrame - ret -; 891ca - - -Function891ca: ; 891ca (22:51ca) - push bc - call Function891b8 - call WaitBGMap - pop bc - ret - -Function891d3: ; 891d3 (22:51d3) - push bc - call Function891ca - ld c, $10 - call DelayFrames - pop bc - ret - -Function891de: ; 891de - call Mobile22_SetBGMapMode0 - call ClearPalettes - hlcoord 0, 0, AttrMap - ld a, $7 - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT - call ByteFill - hlcoord 0, 0 - ld a, " " - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT - call ByteFill - call Function891ab - ret -; 891fe - -Function891fe: ; 891fe - push bc - call Function891de - ld c, $10 - call DelayFrames - pop bc - ret -; 89209 - -Function89209: ; 89209 - ld a, 1 - ld [wSpriteUpdatesEnabled], a - ret -; 8920f - -Function8920f: ; 8920f - ld a, 0 - ld [wSpriteUpdatesEnabled], a - ret -; 89215 - -Function89215: ; 89215 - push hl - push bc - ld bc, AttrMap - TileMap - add hl, bc - ld [hl], a - pop bc - pop hl - ret -; 8921f - - -Function8921f: ; 8921f (22:521f) - push de - ld de, SCREEN_WIDTH - add hl, de - inc hl - ld a, $7f -.loop - push bc - push hl -.asm_89229 - ld [hli], a - dec c - jr nz, .asm_89229 - pop hl - add hl, de - pop bc - dec b - jr nz, .loop - pop de - ret - -Mobile22_ButtonSound: ; 89235 (22:5235) - call JoyWaitAorB - call PlayClickSFX - ret - -Mobile22_SetBGMapMode0: ; 8923c - xor a - ld [hBGMapMode], a - ret -; 89240 - -Mobile22_SetBGMapMode1: ; 89240 - ld a, $1 - ld [hBGMapMode], a - ret -; 89245 - - -Function89245: ; 89245 (22:5245) - callba TryLoadSaveFile - ret c - callba _LoadData - and a - ret - -Function89254: ; 89254 (22:5254) - ld bc, $d07 - jr Function89261 - -Function89259: ; 89259 - ld bc, $0e07 - jr Function89261 - -Function8925e: ; 8925e - ld bc, $0e0c - -Function89261: ; 89261 - push af - push bc - ld hl, MenuDataHeader_0x892a3 - call CopyMenuDataHeader - pop bc - ld hl, wMenuBorderTopCoord - ld a, c - ld [hli], a - ld a, b - ld [hli], a - ld a, c - add $4 - ld [hli], a - ld a, b - add $5 - ld [hl], a - pop af - ld [wMenuCursorBuffer], a - call PushWindow - call Mobile22_SetBGMapMode0 - call Function89209 - call VerticalMenu - push af - ld c, $a - call DelayFrames - call CloseWindow - call Function8920f - pop af - jr c, .done - ld a, [wMenuCursorY] - cp $2 - jr z, .done - and a - ret - -.done - scf - ret -; 892a3 - -MenuDataHeader_0x892a3: ; 0x892a3 - db $40 ; flags - db 05, 10 ; start coords - db 09, 15 ; end coords - dw MenuData2_0x892ab - db 1 ; default option -; 0x892ab - -MenuData2_0x892ab: ; 0x892ab - db $c0 ; flags - db 2 ; items - db "はい@" - db "いいえ@" -; 0x892b4 - -Function892b4: ; 892b4 (22:52b4) - call Function8931b - -Function892b7: ; 892b7 - ld d, b - ld e, c - ld hl, 0 - add hl, bc - ld a, "@" - ld bc, 6 - call ByteFill - ld b, d - ld c, e - ld hl, 6 - add hl, bc - ld a, "@" - ld bc, 6 - call ByteFill - ld b, d - ld c, e - ld hl, 12 - add hl, bc - xor a - ld [hli], a - ld [hl], a - ld hl, 14 - add hl, bc - ld [hli], a - ld [hl], a - ld hl, 16 - add hl, bc - ld [hl], a - ld hl, 17 - add hl, bc - ld a, -1 - ld bc, 8 - call ByteFill - ld b, d - ld c, e - ld e, 6 - ld hl, 25 - add hl, bc -.loop - ld a, -1 - ld [hli], a - ld a, -1 - ld [hli], a - dec e - jr nz, .loop - ret -; 89305 - - -Function89305: ; 89305 (22:5305) - xor a - ld [MenuSelection], a - ld c, 40 -.loop - ld a, [MenuSelection] - inc a - ld [MenuSelection], a - push bc - call Function892b4 - pop bc - dec c - jr nz, .loop - ret - -Function8931b: ; 8931b - push hl - ld hl, $a03b ; 4:a03b - ld a, [MenuSelection] - dec a - ld bc, 37 - call AddNTimes - ld b, h - ld c, l - pop hl - ret -; 8932d - -Function8932d: ; 8932d - ld hl, 0 - add hl, bc - -Function89331: ; 89331 -; Scans up to 5 characters starting at hl, looking for a nonspace character up to the next terminator. -; Sets carry if it does not find a nonspace character. -; Returns the location of the following character in hl. - push bc - ld c, 5 -.loop - ld a, [hli] - cp "@" - jr z, .terminator - cp " " - jr nz, .nonspace - dec c - jr nz, .loop - -.terminator - scf - jr .done - -.nonspace - and a - -.done - pop bc - ret -; 89346 - - -Function89346: ; 89346 (22:5346) - ld h, b - ld l, c - jr _incave - -Function8934a: ; 8934a - ld hl, 6 - add hl, bc -_incave: -; Scans up to 5 characters starting at hl, looking for a nonspace character up to the next terminator. Sets carry if it does not find a nonspace character. Returns the location of the following character in hl. - push bc - ld c, 5 -.loop - ld a, [hli] - cp "@" - jr z, .terminator - cp " " - jr nz, .nonspace - dec c - jr nz, .loop - -.terminator - scf - jr .done - -.nonspace - and a - -.done - pop bc - ret -; 89363 - -Function89363: ; 89363 -; Scans six byte pairs starting at bc to find $ff. Sets carry if it does not find a $ff. Returns the location of the byte after the first $ff found in hl. - ld h, b - ld l, c - jr ._incave - - ld hl, 25 - add hl, bc - -._incave - push de - ld e, 6 -.loop - ld a, [hli] - cp -1 - jr nz, .ok - ld a, [hli] - cp -1 - jr nz, .ok - dec e - jr nz, .loop - scf - jr .done - -.ok - and a - -.done - pop de - ret -; 89381 - -Function89381: ; 89381 - push bc - push de - call Function89b45 - jr c, .ok - push hl - ld a, -1 - ld bc, 8 - call ByteFill - pop hl - -.ok - pop de - ld c, 8 - call Function89193 - pop bc - ret -; 8939a - -Function8939a: ; 8939a - push bc - ld hl, 0 - add hl, bc - ld de, wd002 - ld c, 6 - call Function89193 - pop bc - ld hl, 17 - add hl, bc - ld de, wd008 - call Function89381 - ret -; 893b3 - - -Function893b3: ; 893b3 (22:53b3) - call DisableLCD - call ClearSprites - call LoadStandardFont - call LoadFontsExtra - call Function893ef - call Function8942b - call Function89455 - call EnableLCD - ret - -Function893cc: ; 893cc - call DisableLCD - call ClearSprites - call LoadStandardFont - call LoadFontsExtra - call Function893ef - call Function89464 - call EnableLCD - ret -; 893e2 - - -Function893e2: ; 893e2 (22:53e2) - call Function89b1e - call Function893b3 - call Function8a5b6 - call Function8949c - ret - -Function893ef: ; 893ef - ld de, VTiles0 - ld hl, GFX_8940b - ld bc, $20 - ld a, BANK(GFX_8940b) - call FarCopyBytes - ret -; 893fe - -Function893fe: ; 893fe - call DisableLCD - call Function893ef - call EnableLCD - call DelayFrame - ret -; 8940b - -GFX_8940b: ; 8940b -INCBIN "gfx/unknown/08940b.2bpp" -; 8942b - -Function8942b: ; 8942b (22:542b) - ld de, VTiles0 tile $02 - ld hl, MobileAdapterGFX + $7d0 - ld bc, $80 - ld a, BANK(MobileAdapterGFX) - call FarCopyBytes - ld de, VTiles0 tile $0a - ld hl, MobileAdapterGFX + $c60 - ld bc, $40 - ld a, BANK(MobileAdapterGFX) - call FarCopyBytes - ret - -Function89448: ; 89448 (22:5448) -; Clears the Sprites array - push af - ld hl, Sprites - ld d, $10 * 6 - xor a -.loop - ld [hli], a - dec d - jr nz, .loop - pop af - ret - -Function89455: ; 89455 (22:5455) - ld hl, MobileAdapterGFX + $7d0 - ld de, VTiles2 tile $0c - ld bc, $490 - ld a, BANK(MobileAdapterGFX) - call FarCopyBytes - ret - -Function89464: ; 89464 - ld hl, MobileAdapterGFX - ld de, VTiles2 - ld bc, $200 - ld a, BANK(MobileAdapterGFX) - call FarCopyBytes - ld hl, MobileAdapterGFX + $660 - ld de, VTiles2 tile $20 - ld bc, $170 - ld a, BANK(MobileAdapterGFX) - call FarCopyBytes - ret -; 89481 - -Function89481: ; 89481 - ld d, 2 - call Function8934a - ret c - ld d, 0 - ld hl, 16 - add hl, bc - bit 0, [hl] - ret z - inc d - ret -; 89492 - - -Function89492: ; 89492 (22:5492) - ld d, 0 - ld a, [PlayerGender] - bit 0, a - ret z - inc d - ret - -Function8949c: ; 8949c - ld a, [rSVBK] - push af - ld a, 5 - ld [rSVBK], a - ld hl, Palette_894b3 - ld de, UnknBGPals + 8 * 7 - ld bc, 8 - call CopyBytes - pop af - ld [rSVBK], a - ret -; 894b3 - -Palette_894b3: ; 894b3 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 00, 00, 00 -; 894bb - -Function894bb: ; 894bb - call Function894dc - push bc - call Function8956f - call Function8949c - call Function8a60d - pop bc - ret -; 894ca - - -Function894ca: ; 894ca (22:54ca) - push bc - call Function894dc - call Function895c7 - call Function8949c - call Function8a60d - call SetPalettes - pop bc - ret - -Function894dc: ; 894dc - push bc - ld a, [rSVBK] - push af - ld a, 5 - ld [rSVBK], a - - ld c, d - ld b, 0 - ld hl, .PalettePointers - add hl, bc - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - ld de, UnknBGPals - ld bc, 3 palettes - call CopyBytes - ld hl, .Pals345 - ld de, UnknBGPals + 3 palettes - ld bc, 3 palettes - call CopyBytes - - pop af - ld [rSVBK], a - pop bc - ret -; 89509 - -.PalettePointers: ; 89509 - dw .Pals012a - dw .Pals012b - dw .Pals012c -; 8950f - -.Pals012a: ; 8950f - RGB 31, 31, 31 - RGB 10, 17, 13 - RGB 10, 08, 22 - RGB 00, 00, 00 - - RGB 31, 31, 31 - RGB 16, 20, 31 - RGB 10, 08, 22 - RGB 00, 00, 00 - - RGB 31, 31, 31 - RGB 16, 20, 31 - RGB 10, 17, 13 - RGB 00, 00, 00 - -.Pals012b: ; 89527 - RGB 31, 31, 31 - RGB 30, 22, 11 - RGB 31, 08, 15 - RGB 00, 00, 00 - - RGB 31, 31, 31 - RGB 16, 20, 31 - RGB 31, 08, 15 - RGB 00, 00, 00 - - RGB 31, 31, 31 - RGB 16, 20, 31 - RGB 30, 22, 11 - RGB 00, 00, 00 - -.Pals012c: ; 8953f - RGB 31, 31, 31 - RGB 15, 20, 26 - RGB 25, 07, 20 - RGB 00, 00, 00 - - RGB 31, 31, 31 - RGB 16, 20, 31 - RGB 25, 07, 20 - RGB 00, 00, 00 - - RGB 31, 31, 31 - RGB 16, 20, 31 - RGB 15, 20, 26 - RGB 00, 00, 00 - -.Pals345: ; 89557 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 13, 00 - RGB 14, 08, 00 - - RGB 31, 31, 31 - RGB 16, 16, 31 - RGB 00, 00, 31 - RGB 00, 00, 00 - - RGB 19, 31, 11 - RGB 00, 00, 00 - RGB 00, 00, 00 - RGB 00, 00, 00 -; 8956f - -Function8956f: ; 8956f - push bc - ld hl, 16 - add hl, bc - ld d, h - ld e, l - ld hl, $000c - add hl, bc - ld b, h - ld c, l - callba GetMobileOTTrainerClass - ld a, c - ld [TrainerClass], a - ld a, [rSVBK] - push af - ld a, 5 - ld [rSVBK], a - ld hl, wd030 - ld a, -1 - ld [hli], a - ld a, " " - ld [hl], a - pop af - ld [rSVBK], a - ld a, [TrainerClass] - ld h, 0 - ld l, a - add hl, hl - add hl, hl - ld de, TrainerPalettes - add hl, de - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - ld de, wd032 - ld c, 4 -.loop - ld a, BANK(TrainerPalettes) - call GetFarByte - ld [de], a - inc de - inc hl - dec c - jr nz, .loop - ld hl, wd036 - xor a - ld [hli], a - ld [hl], a - pop af - ld [rSVBK], a - pop bc - ret -; 895c7 - - -Function895c7: ; 895c7 (22:55c7) - ld a, [rSVBK] - push af - ld a, 5 - ld [rSVBK], a - ld hl, Palette_895de - ld de, wd030 - ld bc, 8 - call CopyBytes - pop af - ld [rSVBK], a - ret -; 895de (22:55de) - -Palette_895de: ; 895de - RGB 31, 31, 31 - RGB 07, 07, 06 - RGB 07, 07, 06 - RGB 00, 00, 00 -; 895e6 - -Function895e6: ; 895e6 - ld a, 7 - hlcoord 0, 0, AttrMap - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT - call ByteFill - ret -; 895f2 - -Function895f2: ; 895f2 - push bc - xor a - hlcoord 0, 0, AttrMap - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT - call ByteFill - call Function89605 - call Function89655 - pop bc - ret -; 89605 - -Function89605: ; 89605 - hlcoord 19, 2, AttrMap - ld a, 1 - ld de, SCREEN_WIDTH - ld c, 14 -.loop - ld [hl], a - dec c - jr z, .done - add hl, de - inc a - ld [hl], a - dec a - add hl, de - dec c - jr nz, .loop - -.done - hlcoord 0, 16, AttrMap - ld c, 10 - ld a, 2 -.loop2 - ld [hli], a - dec a - ld [hli], a - inc a - dec c - jr nz, .loop2 - hlcoord 1, 11, AttrMap - ld a, 4 - ld bc, 4 - call ByteFill - ld a, 5 - ld bc, 14 - call ByteFill - ret -; 8963d - -Function8963d: ; 8963d - hlcoord 12, 3, AttrMap - ld a, 6 - ld de, SCREEN_WIDTH - lb bc, 7, 7 -.loop - push hl - ld c, 7 -.next - ld [hli], a - dec c - jr nz, .next - pop hl - add hl, de - dec b - jr nz, .loop - ret -; 89655 - -Function89655: ; 89655 - hlcoord 1, 12, AttrMap - ld de, SCREEN_WIDTH - ld a, 5 - ld b, 4 -.loop - ld c, 18 - push hl -.next - ld [hli], a - dec c - jr nz, .next - pop hl - add hl, de - dec b - jr nz, .loop - ret -; 8966c - -Function8966c: ; 8966c - push bc - call Function89688 - hlcoord 4, 0 - ld c, 8 - call Function896f5 - pop bc - ret -; 8967a - - -Function8967a: ; 8967a (22:567a) - push bc - call Function89688 - hlcoord 2, 0 - ld c, 12 - call Function896f5 - pop bc - ret - -Function89688: ; 89688 - hlcoord 0, 0 - ld a, 1 - ld e, SCREEN_WIDTH - call Function896e1 - ld a, 2 - ld e, SCREEN_WIDTH - call Function896eb - ld a, 3 - ld [hli], a - ld a, 4 - ld e, SCREEN_HEIGHT - call Function896e1 - ld a, 6 - ld [hli], a - push bc - ld c, 13 -.loop - call Function896cb - dec c - jr z, .done - call Function896d6 - dec c - jr nz, .loop - -.done - pop bc - ld a, 25 - ld [hli], a - ld a, 26 - ld e, SCREEN_HEIGHT - call Function896e1 - ld a, 28 - ld [hli], a - ld a, 2 - ld e, SCREEN_WIDTH - call Function896eb - ret -; 896cb - -Function896cb: ; 896cb - ld de, SCREEN_WIDTH - 1 - ld a, 7 - ld [hl], a - add hl, de - ld a, 9 - ld [hli], a - ret -; 896d6 - -Function896d6: ; 896d6 - ld de, SCREEN_WIDTH - 1 - ld a, 10 - ld [hl], a - add hl, de - ld a, 11 - ld [hli], a - ret -; 896e1 - -Function896e1: ; 896e1 -.loop - ld [hli], a - inc a - dec e - ret z - ld [hli], a - dec a - dec e - jr nz, .loop - ret -; 896eb - -Function896eb: ; 896eb -.loop - ld [hli], a - dec a - dec e - ret z - ld [hli], a - inc a - dec e - jr nz, .loop - ret -; 896f5 - -Function896f5: ; 896f5 - call Function8971f - call Function89736 - inc hl - inc hl - ld b, 2 - -ClearScreenArea: ; 0x896ff -; clears an area of the screen -; INPUT: -; hl = address of upper left corner of the area -; b = height -; c = width - - ld a, " " ; blank tile - ld de, 20 ; screen width -.loop - push bc - push hl -.innerLoop - ld [hli], a - dec c - jr nz, .innerLoop - pop hl - pop bc - add hl, de - dec b - jr nz, .loop - - dec hl - inc c - inc c -.asm_89713 - ld a, $36 - ld [hli], a - dec c - ret z - ld a, $18 - ld [hli], a - dec c - jr nz, .asm_89713 ; 0x8971c $f5 - ret -; 0x8971f - -Function8971f: ; 8971f - ld a, $2c - ld [hli], a - ld a, $2d - ld [hld], a - push hl - ld de, SCREEN_WIDTH - add hl, de - ld a, $31 - ld [hli], a - ld a, $32 - ld [hld], a - add hl, de - ld a, $35 - ld [hl], a - pop hl - ret -; 89736 - -Function89736: ; 89736 - push hl - inc hl - inc hl - ld e, c - ld d, $0 - add hl, de - ld a, $2f - ld [hli], a - ld a, $30 - ld [hld], a - ld de, SCREEN_WIDTH - add hl, de - ld a, $33 - ld [hli], a - ld a, $34 - ld [hl], a - add hl, de - ld a, $1f - ld [hl], a - pop hl - ret -; 89753 - -Function89753: ; 89753 - ld a, $c - ld [hl], a - xor a - call Function89215 - ret -; 8975b - -Function8975b: ; 8975b - ld a, $1d - ld [hli], a - inc a - ld [hli], a - ld a, $d - ld [hl], a - dec hl - dec hl - ld a, $4 - ld e, $3 -.asm_89769 - call Function89215 - inc hl - dec e - jr nz, .asm_89769 - ret -; 89771 - -Function89771: ; 89771 - ld a, $12 - ld [hl], a - ld a, $3 - call Function89215 - ret -; 8977a - -Function8977a: ; 8977a - ld e, $4 - ld d, $13 -.asm_8977e - ld a, d - ld [hl], a - ld a, $4 - call Function89215 - inc hl - inc d - dec e - jr nz, .asm_8977e - ld e, $e -.asm_8978c - ld a, d - ld [hl], a - xor a - call Function89215 - inc hl - dec e - jr nz, .asm_8978c - ret -; 89797 - -Function89797: ; 89797 - push bc - ld a, $e - ld [hl], a - ld bc, SCREEN_WIDTH - add hl, bc - ld a, $11 - ld [hli], a - ld a, $10 - ld c, $8 -.asm_897a6 - ld [hli], a - dec c - jr nz, .asm_897a6 - ld a, $f - ld [hl], a - pop bc - ret -; 897af - -Function897af: ; 897af - push bc - ld hl, $0010 - add hl, bc - ld d, h - ld e, l - ld hl, $000c - add hl, bc - ld b, h - ld c, l - callba GetMobileOTTrainerClass - ld a, c - ld [TrainerClass], a - xor a - ld [CurPartySpecies], a - ld de, VTiles2 tile $37 - callba GetTrainerPic - pop bc - ret -; 897d5 - -Function897d5: ; 897d5 - push bc - call Function8934a - jr nc, .asm_897f3 - hlcoord 12, 3, AttrMap - xor a - ld de, SCREEN_WIDTH - lb bc, 7, 7 -.asm_897e5 - push hl - ld c, $7 -.asm_897e8 - ld [hli], a - dec c - jr nz, .asm_897e8 - pop hl - add hl, de - dec b - jr nz, .asm_897e5 - pop bc - ret - -.asm_897f3 - ld a, $37 - ld [hGraphicStartTile], a - hlcoord 12, 3 - lb bc, 7, 7 - predef PlaceGraphic - call Function8963d - pop bc - ret -; 89807 - - -Function89807: ; 89807 (22:5807) - ld hl, MobileAdapterGFX + $200 - ld a, [PlayerGender] - bit 0, a - jr z, .asm_89814 - ld hl, MobileAdapterGFX + $200 + $230 -.asm_89814 - call DisableLCD - ld de, VTiles2 tile $37 - ld bc, $230 - ld a, BANK(MobileAdapterGFX) - call FarCopyBytes - call EnableLCD - call DelayFrame - ret - -Function89829: ; 89829 (22:5829) - push bc - ld bc, $705 - ld de, $14 - ld a, $37 -.asm_89832 - push bc - push hl -.asm_89834 - ld [hli], a - inc a - dec c - jr nz, .asm_89834 - pop hl - add hl, de - pop bc - dec b - jr nz, .asm_89832 - call Function8963d - pop bc - ret - -Function89844: ; 89844 - call Function89481 - call Function894bb - call Function897af - push bc - call WaitBGMap2 - call SetPalettes - pop bc - ret -; 89856 - -Function89856: ; 89856 - push bc - call Function891b8 - pop bc - call Function895f2 - call Function8966c - call Function899d3 - call Function898aa - call Function898be - call Function898dc - call Function898f3 - push bc - ld bc, wd008 - hlcoord 2, 10 - call Function89975 - pop bc - call Function897d5 - ret -; 8987f - - -Function8987f: ; 8987f (22:587f) - call Function891b8 - call Function895f2 - call Function8967a - call Function899d3 - hlcoord 5, 1 - call Function8999c - hlcoord 13, 3 - call Function89829 - call Function899b2 - hlcoord 5, 5 - call Function899c9 - ld bc, wd008 - hlcoord 2, 10 - call Function89975 - ret - -Function898aa: ; 898aa - ld a, [MenuSelection] - and a - ret z - push bc - hlcoord 6, 1 - ld de, MenuSelection - lb bc, PRINTNUM_LEADINGZEROS | 1, 2 - call PrintNum - pop bc - ret -; 898be - -Function898be: ; 898be - push bc - ld de, wd002 - ld hl, wd002 - call Function89331 - jr nc, .asm_898cd - ld de, String_89116 - -.asm_898cd - hlcoord 9, 1 - ld a, [MenuSelection] - and a - jr nz, .asm_898d7 - dec hl - -.asm_898d7 - call PlaceString - pop bc - ret -; 898dc - -Function898dc: ; 898dc - ld hl, $0006 - add hl, bc - push bc - ld d, h - ld e, l - call Function8934a - jr nc, .asm_898eb - ld de, String_89116 - -.asm_898eb - hlcoord 6, 4 - call PlaceString - pop bc - ret -; 898f3 - -Function898f3: ; 898f3 - push bc - ld hl, $000c - add hl, bc - ld d, h - ld e, l - call Function8934a - jr c, .asm_8990a - hlcoord 5, 5 - lb bc, PRINTNUM_LEADINGZEROS | 2, 5 - call PrintNum - jr .asm_89913 - -.asm_8990a - hlcoord 5, 5 - ld de, String_89116 - call PlaceString - -.asm_89913 - pop bc - ret -; 89915 - -Function89915: ; 89915 - push bc - push hl - ld de, Unknown_89942 - ld c, $8 -.asm_8991c - ld a, [de] - ld [hl], a - ld a, $4 - call Function89215 - inc hl - inc de - dec c - jr nz, .asm_8991c - pop hl - ld b, $4 - ld c, $2b - ld a, $8 - ld de, Unknown_8994a -.asm_89932 - push af - ld a, [de] - cp [hl] - jr nz, .asm_8993b - call Function8994e - inc de - -.asm_8993b - inc hl - pop af - dec a - jr nz, .asm_89932 - pop bc - ret -; 89942 - -Unknown_89942: ; 89942 - db $24, $25, $26, " ", $27, $28, $29, $2a -Unknown_8994a: ; 8994a - db $24, $27, $29, $ff -; 8994e - -Function8994e: ; 8994e - push hl - push de - ld de, SCREEN_WIDTH - ld a, l - sub e - ld l, a - ld a, h - sbc d - ld h, a - ld a, c - ld [hl], a - ld a, b - call Function89215 - pop de - pop hl - ret -; 89962 - -Function89962: ; 89962 - push bc - ld c, $4 - ld b, $20 -.asm_89967 - ld a, b - ld [hl], a - ld a, $4 - call Function89215 - inc hl - inc b - dec c - jr nz, .asm_89967 - pop bc - ret -; 89975 - -Function89975: ; 89975 - push bc - ld e, $8 -.asm_89978 - ld a, [bc] - ld d, a - call Function8998b - swap d - inc hl - ld a, d - call Function8998b - inc bc - inc hl - dec e - jr nz, .asm_89978 - pop bc - ret -; 8998b - -Function8998b: ; 8998b - push bc - and $f - cp $a - jr nc, .asm_89997 - ld c, $f6 - add c - jr .asm_89999 - -.asm_89997 - ld a, $7f - -.asm_89999 - ld [hl], a - pop bc - ret -; 8999c - - -Function8999c: ; 8999c (22:599c) - ld de, PlayerName - call PlaceString - inc bc - ld h, b - ld l, c - ld de, String_899ac - call PlaceString - ret -; 899ac (22:59ac) - -String_899ac: ; 899ac - db "の めいし@" -; 899b2 - -Function899b2: ; 899b2 (22:59b2) - ld bc, PlayerName - call Function89346 - jr c, .asm_899bf - ld de, PlayerName - jr .asm_899c2 -.asm_899bf - ld de, String_89116 -.asm_899c2 - hlcoord 6, 4 - call PlaceString - ret - -Function899c9: ; 899c9 (22:59c9) - ld de, PlayerID - lb bc, PRINTNUM_LEADINGZEROS | 2, 5 - call PrintNum - ret - -Function899d3: ; 899d3 - hlcoord 1, 4 - call Function89753 - hlcoord 2, 5 - call Function8975b - hlcoord 1, 9 - call Function89771 - hlcoord 1, 11 - call Function8977a - hlcoord 1, 5 - call Function89797 - hlcoord 2, 4 - call Function89962 - hlcoord 2, 9 - call Function89915 - ret -; 899fe - -Function899fe: ; 899fe - push bc - push hl - ld hl, $0019 - add hl, bc - ld b, h - ld c, l - pop hl - call Function89a0c - pop bc - ret -; 89a0c - -Function89a0c: ; 89a0c - push hl - call Function89363 - pop hl - jr c, .asm_89a1c - ld d, h - ld e, l - callba Function11c08f - ret - -.asm_89a1c - ld de, String_89153 - call PlaceString - ret -; 89a23 - - -Function89a23: ; 89a23 (22:5a23) - hlcoord 0, 11 - ld b, $4 - ld c, $12 - call Function8921f - ret - -Function89a2e: ; 89a2e (22:5a2e) - hlcoord 11, 12 - ld b, $2 - ld c, $6 - call TextBox - hlcoord 13, 13 - ld de, String_89a4e - call PlaceString - hlcoord 13, 14 - ld de, String_89a53 - call PlaceString - call Function89655 - ret -; 89a4e (22:5a4e) - -String_89a4e: ; 89a4e - db "けってい@" -; 89a53 - -String_89a53: ; 89a53 - db "やめる@" -; 89a57 - -Function89a57: ; 89a57 - call JoyTextDelay_ForcehJoyDown ; joypad - bit D_UP_F, c - jr nz, .d_up - bit D_DOWN_F, c - jr nz, .d_down - bit A_BUTTON_F, c - jr nz, .a_b_button - bit B_BUTTON_F, c - jr nz, .a_b_button - bit START_F, c - jr nz, .start_button - scf - ret - -.a_b_button - ld a, $1 - and a - ret - -.start_button - ld a, $2 - and a - ret - -.d_up - call .MoveCursorUp - call nc, .PlayPocketSwitchSFX - ld a, $0 - ret - -.d_down - call .MoveCursorDown - call nc, .PlayPocketSwitchSFX - ld a, $0 - ret -; 89a8a - -.PlayPocketSwitchSFX: ; 89a8a - push af - ld de, SFX_SWITCH_POCKETS - call PlaySFX - pop af - ret -; 89a93 - -.MoveCursorDown: ; 89a93 - ld d, 40 - ld e, 1 - call .ApplyCursorMovement - ret -; 89a9b - -.MoveCursorUp: ; 89a9b - ld d, 1 - ld e, -1 - call .ApplyCursorMovement - ret -; 89aa3 - -.ApplyCursorMovement: ; 89aa3 - ld a, [MenuSelection] - ld c, a - push bc -.loop - ld a, [MenuSelection] - cp d - jr z, .equal_to_d - add e - jr nz, .not_zero - inc a - -.not_zero - ld [MenuSelection], a - call .Function89ac7 ; BCD conversion of data in SRAM? - jr nc, .loop - call .Function89ae6 ; split [MenuSelection] into [wd030] + [wd031] where [wd030] <= 5 - pop bc - and a - ret - -.equal_to_d - pop bc - ld a, c - ld [MenuSelection], a - scf - ret -; 89ac7 - -.Function89ac7: ; 89ac7 - call OpenSRAMBank4 - call Function8931b - call .Function89ad4 - call CloseSRAM - ret -; 89ad4 - -.Function89ad4: ; 89ad4 - push de - call Function8932d ; find a non-space character within 5 bytes of bc - jr c, .no_nonspace_character - ld hl, 17 - add hl, bc - call Function89b45 - jr c, .finish_decode - -.no_nonspace_character - and a - -.finish_decode - pop de - ret -; 89ae6 - -.Function89ae6: ; 89ae6 - ld hl, wd031 - xor a - ld [hl], a - ld a, [MenuSelection] -.loop2 - cp 6 - jr c, .load_and_ret - sub 5 - ld c, a - ld a, [hl] - add 5 - ld [hl], a - ld a, c - jr .loop2 - -.load_and_ret - ld [wd030], a - ret -; 89b00 - - -Function89b00: ; 89b00 (22:5b00) - callba MG_Mobile_Layout_LoadPals - ret -; 89b07 (22:5b07) - -Function89b07: ; 89b07 - call Mobile22_SetBGMapMode0 - call DelayFrame - callba Function4a3a7 - ret -; 89b14 - -Function89b14: ; 89b14 - call ClearBGPalettes - call Function89b07 - call Function89b00 - ret -; 89b1e - -Function89b1e: ; 89b1e (22:5b1e) - callba Function4a485 - call Function89b00 - ret - -Function89b28: ; 89b28 (22:5b28) - call Function891de - call ClearBGPalettes - call Function893e2 - call Call_ExitMenu - call Function891ab - call SetPalettes - ret - -Function89b3b: ; 89b3b (22:5b3b) - call Mobile22_SetBGMapMode0 - callba Function48cda - ret - -Function89b45: ; 89b45 - ; some sort of decoder? - ; BCD? - push hl - push bc - ld c, $10 - ld e, $0 -.loop - ld a, [hli] - ld b, a - and $f - cp 10 - jr c, .low_nybble_less_than_10 - ld a, c - cp $b - jr nc, .clear_carry - jr .set_carry - -.low_nybble_less_than_10 - dec c - swap b - inc e - ld a, b - and $f - cp 10 - jr c, .high_nybble_less_than_10 - ld a, c - cp $b - jr nc, .clear_carry - jr .set_carry - -.high_nybble_less_than_10 - inc e - dec c - jr nz, .loop - dec e - -.set_carry - scf - jr .finish - -.clear_carry - and a - -.finish - pop bc - pop hl - ret -; 89b78 - - -Function89b78: ; 89b78 (22:5b78) - push bc - ld a, [wd010] - cp $10 - jr c, .asm_89b8c - ld a, e - and a - jr z, .asm_89b89 - ld c, e -.asm_89b85 - inc hl - dec c - jr nz, .asm_89b85 -.asm_89b89 - ld a, $7f - ld [hl], a -.asm_89b8c - ld a, [wd010] - inc a - and $1f - ld [wd010], a - pop bc - ret - -Function89b97: ; 89b97 (22:5b97) - call Function89c34 - jr c, .asm_89ba0 - call Function89448 - ret -.asm_89ba0 - ld a, [wd011] - ld hl, Unknown_89bd8 - and a - jr z, .asm_89bae -.asm_89ba9 - inc hl - inc hl - dec a - jr nz, .asm_89ba9 -.asm_89bae - ld a, [hli] - ld h, [hl] - ld l, a - ld de, Sprites -.asm_89bb4 - ld a, [hli] - cp $ff - ret z - ld c, a - ld b, $0 -.asm_89bbb - push hl - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - add b - ld [de], a - inc de - ld a, $8 - add b - ld b, a - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - inc de - pop hl - dec c - jr nz, .asm_89bbb - ld b, $0 - ld c, $4 - add hl, bc - jr .asm_89bb4 -; 89bd8 (22:5bd8) - -Unknown_89bd8: ; 89bd8 - dw Unknown_89be0 - dw Unknown_89bf5 - dw Unknown_89c0a - dw Unknown_89c1f -; 89be0 - -Unknown_89be0: ; 89be0 - db $01, $12, $4e, $01, $00 - db $01, $19, $4e, $01, $40 - db $01, $12, $72, $01, $20 - db $01, $19, $72, $01, $60 - db $ff - -Unknown_89bf5: ; 89bf5 - db $01, $60, $16, $01, $00 - db $01, $62, $16, $01, $40 - db $01, $60, $92, $01, $20 - db $01, $62, $92, $01, $60 - db $ff - -Unknown_89c0a: ; 89c0a - db $01, $78, $66, $01, $00 - db $01, $78, $66, $01, $40 - db $01, $78, $92, $01, $20 - db $01, $78, $92, $01, $60 - db $ff - -Unknown_89c1f: ; 89c1f - db $01, $80, $66, $01, $00 - db $01, $80, $66, $01, $40 - db $01, $80, $92, $01, $20 - db $01, $80, $92, $01, $60 - db $ff -; 89c34 - -Function89c34: ; 89c34 (22:5c34) - push bc - ld a, [wd012] - ld c, a - inc a - and $f - ld [wd012], a - ld a, c - cp $8 - pop bc - ret - -Function89c44: ; 89c44 (22:5c44) - call Function89c34 - jr c, .asm_89c4f - push de - call Function89448 - pop de - ret -.asm_89c4f - ld hl, Sprites - push de - ld a, b - ld [hli], a - ld d, $8 - ld a, e - and a - ld a, c - jr z, .asm_89c60 -.asm_89c5c - add d - dec e - jr nz, .asm_89c5c -.asm_89c60 - pop de - ld [hli], a - ld a, d - ld [hli], a - xor a - ld [hli], a - ret - -Function89c67: ; 89c67 (22:5c67) -; menu scrolling? - call JoyTextDelay_ForcehJoyDown ; joypad - ld b, $0 - bit A_BUTTON_F, c - jr z, .not_a_button - ld b, $1 - and a - ret - -.not_a_button - bit B_BUTTON_F, c - jr z, .not_b_button - scf - ret - -.not_b_button - xor a - bit D_UP_F, c - jr z, .not_d_up - ld a, $1 -.not_d_up - bit D_DOWN_F, c - jr z, .not_d_down - ld a, $2 -.not_d_down - bit D_LEFT_F, c - jr z, .not_d_left - ld a, $3 -.not_d_left - bit D_RIGHT_F, c - jr z, .not_d_right - ld a, $4 -.not_d_right - and a - ret z ; no dpad pressed - dec a - ld c, a - ld d, $0 - ld hl, .ScrollData0 - ld a, [wd02f] - and a - jr z, .got_data - ld hl, .ScrollData1 -.got_data - ld a, [wd011] - and a - jr z, .got_row - ld e, $4 -.add_n_times - add hl, de - dec a - jr nz, .add_n_times -.got_row - ld e, c - add hl, de - ld a, [hl] - and a - ret z - dec a - ld [wd011], a - xor a - ld [wd012], a - ret -; 89cbf (22:5cbf) - -.ScrollData0: ; 89cbf - db 0, 2, 0, 0 - db 1, 3, 0, 0 - db 2, 4, 0, 0 - db 3, 0, 0, 0 - -.ScrollData1: ; 89ccf - db 0, 0, 0, 0 - db 0, 3, 0, 0 - db 2, 4, 0, 0 - db 3, 0, 0, 0 -; 89cdf - -Function89cdf: ; 89cdf (22:5cdf) - ld a, $10 - add b - ld b, a - ld a, $8 - add c - ld c, a - ld e, $2 - ld a, $2 - ld hl, Sprites -.asm_89cee - push af - push bc - ld d, $4 -.asm_89cf2 - ld a, b - ld [hli], a - ld a, c - ld [hli], a - ld a, e - ld [hli], a - ld a, $1 - ld [hli], a - ld a, $8 - add c - ld c, a - inc e - dec d - jr nz, .asm_89cf2 - pop bc - ld a, $8 - add b - ld b, a - pop af - dec a - jr nz, .asm_89cee - ret - -Function89d0d: ; 89d0d (22:5d0d) - call Mobile22_SetBGMapMode0 - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - - ld c, 8 - ld de, UnknBGPals -.loop - push bc - ld hl, .Palette1 - ld bc, 1 palettes - call CopyBytes - pop bc - dec c - jr nz, .loop - - ld hl, .Palette2 - ld de, UnknBGPals + 2 palettes - ld bc, 1 palettes - call CopyBytes - - pop af - ld [rSVBK], a - - call SetPalettes - callba PrintMail_ - call Mobile22_SetBGMapMode1 - ld c, 24 - call DelayFrames - call RestartMapMusic - ret -; 89d4e (22:5d4e) - -.Palette1: ; 89d4e - RGB 31, 31, 31 - RGB 19, 19, 19 - RGB 15, 15, 15 - RGB 00, 00, 00 -; 89d56 - -.Palette2: ; 89d56 - RGB 31, 31, 31 - RGB 19, 19, 19 - RGB 19, 19, 19 - RGB 00, 00, 00 -; 89d5e - -Function89d5e: ; 89d5e (22:5d5e) - push af - call CopyMenuDataHeader - pop af - ld [wMenuCursorBuffer], a - call Mobile22_SetBGMapMode0 - call PlaceVerticalMenuItems - call InitVerticalMenuCursor - ld hl, w2DMenuFlags1 - set 7, [hl] - ret - -Function89d75: ; 89d75 (22:5d75) - push hl - call Mobile22_SetBGMapMode0 - call _hl_ - callba Mobile_OpenAndCloseMenu_HDMATransferTileMapAndAttrMap - pop hl - jr asm_89d90 - -Function89d85: ; 89d85 (22:5d85) - push hl - call Mobile22_SetBGMapMode0 - call _hl_ - call CGBOnly_LoadEDTile - pop hl - -asm_89d90: ; 89d90 (22:5d90) - call Mobile22_SetBGMapMode0 - push hl - call _hl_ - call Function89dab - ld a, [wMenuCursorY] - push af - call Function891ab - pop af - pop hl - jr c, .asm_89da9 - jr z, asm_89d90 - scf - ret -.asm_89da9 - and a - ret - -Function89dab: ; 89dab (22:5dab) - call Mobile22_SetBGMapMode0 - callba MobileMenuJoypad - call Mobile22_SetBGMapMode0 - ld a, c - ld hl, wMenuJoypadFilter - and [hl] - ret z - bit 0, a - jr nz, .asm_89dc7 - bit 1, a - jr nz, .asm_89dd9 - xor a - ret -.asm_89dc7 - call PlayClickSFX - ld a, [w2DMenuNumRows] - ld c, a - ld a, [wMenuCursorY] - cp c - jr z, .asm_89dd9 - call PlaceHollowCursor - scf - ret -.asm_89dd9 - call PlayClickSFX - ld a, $1 - and a - ret - -Function89de0: ; 89de0 (22:5de0) - call ClearSprites - call Function89e0a - jr c, .asm_89e00 - ld c, $1 -.asm_89dea - call Function8a31c - jr z, .asm_89dfd - ld a, [wMenuCursorY] - ld c, a - push bc - ld hl, Jumptable_89e04 - ld a, e - dec a - rst JumpTable - pop bc - jr .asm_89dea -.asm_89dfd - call Function891fe -.asm_89e00 - call Function8917a - ret - -Jumptable_89e04: ; 89e04 (22:5e04) - dw Function8a62c - dw Function8a999 - dw Function8ab93 - - -Function89e0a: ; 89e0a (22:5e0a) - call OpenSRAMBank4 - call Function8b3b0 - call CloseSRAM - ld hl, Jumptable_89e18 - rst JumpTable - ret - -Jumptable_89e18: ; 89e18 (22:5e18) - dw Function89e1e - dw Function8a116 - dw Function8a2aa - - -Function89e1e: ; 89e1e (22:5e1e) - call OpenSRAMBank4 - ld bc, $a037 ; 4:a037 - call Function8b36c - call CloseSRAM - xor a - ld [wd02d], a - -asm_89e2e: ; 89e2e (22:5e2e) - ld a, [wd02d] - ld hl, Jumptable_89e3c - rst JumpTable - ret - -Function89e36: ; 89e36 (22:5e36) - ld hl, wd02d - inc [hl] - jr asm_89e2e - -Jumptable_89e3c: ; 89e3c (22:5e3c) - dw Function89e6f - dw Function89fed - dw Function89ff6 - dw Function8a03d - dw Function89eb9 - dw Function89efd - dw Function89fce - dw Function8a04c - dw Function8a055 - dw Function8a0e6 - dw Function8a0ec - dw Function8a0f5 - dw Function89e58 - dw Function89e68 - - -Function89e58: ; 89e58 (22:5e58) - ld a, $1 - call Function8a2fe - call Function891fe - call Function893e2 - call Function89168 - and a - ret - -Function89e68: ; 89e68 (22:5e68) - call Function891fe - ld a, $1 - scf - ret - -Function89e6f: ; 89e6f (22:5e6f) - call Function891de - call Function89245 - call Function89ee1 - call Function89e9a - hlcoord 7, 4 - call Function8a58d - ld a, $5 - hlcoord 7, 4, AttrMap - call Function8a5a3 - ld a, $6 - hlcoord 10, 4, AttrMap - call Function8a5a3 - call Function891ab - call SetPalettes - jp Function89e36 - -Function89e9a: ; 89e9a (22:5e9a) - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - ld hl, Palette_89eb1 - ld de, UnknBGPals + 5 palettes - ld bc, 1 palettes - call CopyBytes - pop af - ld [rSVBK], a - ret -; 89eb1 (22:5eb1) - -Palette_89eb1: ; 89eb1 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 27, 19, 00 - RGB 00, 00, 00 -; 89eb9 - -Function89eb9: ; 89eb9 (22:5eb9) - call Function891fe - call Function89ee1 - call Function89e9a - hlcoord 7, 4 - call Function8a58d - ld a, $5 - hlcoord 7, 4, AttrMap - call Function8a5a3 - ld a, $6 - hlcoord 10, 4, AttrMap - call Function8a5a3 - call Function891ab - call SetPalettes - jp Function89e36 - -Function89ee1: ; 89ee1 (22:5ee1) - call ClearBGPalettes - call Function893e2 - call Mobile22_SetBGMapMode0 - callba Function4a3a7 - callba MG_Mobile_Layout_CreatePalBoxes - hlcoord 1, 0 - call Function8a53d - ret - -Function89efd: ; 89efd (22:5efd) - ld hl, wd012 - ld a, $ff - ld [hli], a - xor a -rept 4 - ld [hli], a -endr - ld [hl], a -.asm_89f09 - ld hl, wd012 - inc [hl] - ld a, [hli] - and $3 - jr nz, .asm_89f2e - ld a, [hl] - cp $4 - jr nc, .asm_89f2e - ld b, $32 - inc [hl] - ld a, [hl] - dec a - jr z, .asm_89f26 - ld c, a -.asm_89f1f - ld a, $b - add b - ld b, a - dec c - jr nz, .asm_89f1f -.asm_89f26 - ld c, $e8 - ld a, [wd013] - call Function89fa5 -.asm_89f2e - ld a, [wd013] - and a - jr z, .asm_89f58 -.asm_89f34 - call Function89f6a - ld e, a - ld a, c - cp $a8 - jr nc, .asm_89f4d - cp $46 - jr c, .asm_89f4d - ld d, $0 - dec e - ld hl, wd014 - add hl, de - set 0, [hl] - inc e - jr .asm_89f51 -.asm_89f4d - ld a, $2 - add c - ld c, a -.asm_89f51 - ld a, e - call Function89f77 - dec a - jr nz, .asm_89f34 -.asm_89f58 - call DelayFrame - ld hl, wd014 - ld c, $4 -.asm_89f60 - ld a, [hli] - and a - jr z, .asm_89f09 - dec c - jr nz, .asm_89f60 - jp Function89e36 - -Function89f6a: ; 89f6a (22:5f6a) - push af - ld de, $10 - call Function89f9a - ld a, [hli] - ld b, a - ld a, [hl] - ld c, a - pop af - ret - -Function89f77: ; 89f77 (22:5f77) - push af - ld de, $10 - call Function89f9a - ld d, $2 -.asm_89f80 - push bc - ld e, $2 -.asm_89f83 - ld a, b - ld [hli], a - ld a, c - ld [hli], a - inc hl - inc hl - ld a, $8 - add c - ld c, a - dec e - jr nz, .asm_89f83 - pop bc - ld a, $8 - add b - ld b, a - dec d - jr nz, .asm_89f80 - pop af - ret - -Function89f9a: ; 89f9a (22:5f9a) - dec a - ld hl, Sprites - and a - ret z -.asm_89fa0 - add hl, de - dec a - jr nz, .asm_89fa0 - ret - -Function89fa5: ; 89fa5 (22:5fa5) - ld de, $10 - call Function89f9a - ld e, $2 - ld d, $a -.asm_89faf - push bc - ld a, $2 -.asm_89fb2 - push af - ld a, b - ld [hli], a - ld a, c - ld [hli], a - ld a, d - inc d - ld [hli], a - ld a, $1 - ld [hli], a - ld a, $8 - add c - ld c, a - pop af - dec a - jr nz, .asm_89fb2 - pop bc - ld a, $8 - add b - ld b, a - dec e - jr nz, .asm_89faf - ret - -Function89fce: ; 89fce (22:5fce) - call Function8a5b6 - ld a, $5 - hlcoord 7, 4, AttrMap - call Function8a5a3 - ld a, $6 - hlcoord 10, 4, AttrMap - call Function8a5a3 - call Function89448 - call SetPalettes - call Function891ab - jp Function89e36 - -Function89fed: ; 89fed (22:5fed) - ld hl, UnknownText_0x8a102 - call PrintText - jp Function89e36 - -Function89ff6: ; 89ff6 (22:5ff6) - call Function891fe - call ClearBGPalettes - call Function893cc - call Function89807 - call Function89492 - call Function894ca - call OpenSRAMBank4 - ld hl, $a603 - ld a, -1 - ld bc, 8 - call ByteFill - ld hl, $a603 - ld de, wd008 - call Function89381 - call CloseSRAM - call Function8987f - call OpenSRAMBank4 - hlcoord 1, 13 - ld bc, $a007 - call Function89a0c - call CloseSRAM - call Function891ab - call Mobile22_ButtonSound - jp Function89e36 - -Function8a03d: ; 8a03d (22:603d) - ld hl, UnknownText_0x8a107 - call Function89209 - call PrintText - call Function8920f - jp Function89e36 - -Function8a04c: ; 8a04c (22:604c) - ld hl, UnknownText_0x8a10c - call PrintText - jp Function89e36 - -Function8a055: ; 8a055 (22:6055) - ld c, $7 - ld b, $4 -.asm_8a059 - call Function8a0a1 - inc c - call Function8a0c9 - push bc - call Function8a58d - pop bc - call Function8a0de - push bc - push hl - ld a, $5 - call Function8a5a3 - pop hl - inc hl - inc hl - inc hl - ld a, $6 - call Function8a5a3 - call CGBOnly_LoadEDTile - pop bc - ld a, c - cp $b - jr nz, .asm_8a059 - call Function8a0a1 - hlcoord 12, 4 - call Function8a58d - ld a, $5 - hlcoord 12, 4, AttrMap - call Function8a5a3 - pop hl - ld a, $6 - hlcoord 15, 4, AttrMap - call Function8a5a3 - call CGBOnly_LoadEDTile - jp Function89e36 - -Function8a0a1: ; 8a0a1 (22:60a1) - call Mobile22_SetBGMapMode0 - push bc - call Function8a0c9 - ld e, $6 -.asm_8a0aa - push hl - ld bc, $6 - add hl, bc - ld d, [hl] - call Function8a0c1 - pop hl - ld [hl], d - call Function89215 - ld bc, $14 - add hl, bc - dec e - jr nz, .asm_8a0aa - pop bc - ret - -Function8a0c1: ; 8a0c1 (22:60c1) - push hl - ld bc, AttrMap - TileMap - add hl, bc - ld a, [hl] - pop hl - ret - -Function8a0c9: ; 8a0c9 (22:60c9) - push bc - hlcoord 0, 0 - ld de, $14 - ld a, b - and a - jr z, .asm_8a0d8 -.asm_8a0d4 - add hl, de - dec b - jr nz, .asm_8a0d4 -.asm_8a0d8 - ld d, $0 - ld e, c - add hl, de - pop bc - ret - -Function8a0de: ; 8a0de (22:60de) - call Function8a0c9 - ld de, AttrMap - TileMap - add hl, de - ret - -Function8a0e6: ; 8a0e6 (22:60e6) - call Function8b539 - jp Function89e36 - -Function8a0ec: ; 8a0ec (22:60ec) - ld hl, UnknownText_0x8a111 - call PrintText - jp Function89e36 - -Function8a0f5: ; 8a0f5 (22:60f5) - call Function8b555 - jp nc, Function8a0ff - ld hl, wd02d - inc [hl] - -Function8a0ff: ; 8a0ff (22:60ff) - jp Function89e36 -; 8a102 (22:6102) - -UnknownText_0x8a102: ; 0x8a102 - ; The CARD FOLDER stores your and your friends' CARDS. A CARD contains information like the person's name, phone number and profile. - text_jump UnknownText_0x1c5238 - db "@" -; 0x8a107 - -UnknownText_0x8a107: ; 0x8a107 - ; This is your CARD. Once you've entered your phone number, you can trade CARDS with your friends. - text_jump UnknownText_0x1c52bc - db "@" -; 0x8a10c - -UnknownText_0x8a10c: ; 0x8a10c - ; If you have your friend's CARD, you can use it to make a call from a mobile phone on the 2nd floor of a #MON CENTER. - text_jump UnknownText_0x1c531e - db "@" -; 0x8a111 - -UnknownText_0x8a111: ; 0x8a111 - ; To safely store your collection of CARDS, you must set a PASSCODE for your CARD FOLDER. - text_jump UnknownText_0x1c5394 - db "@" -; 0x8a116 - -Function8a116: ; 8a116 (22:6116) - ld a, $1 - ld [wd030], a - ld hl, MenuDataHeader_0x8a176 - call LoadMenuDataHeader -.asm_8a121 - call Mobile22_SetBGMapMode0 - call Function8a17b - jr c, .asm_8a16b - ld a, [wMenuCursorY] - ld [wd030], a - dec d - jr z, .asm_8a140 - call Function8a20d - jr c, .asm_8a121 - xor a - call Function8a2fe - call Function8916e - jr .asm_8a16b -.asm_8a140 - call Function89174 - jr nz, .asm_8a14c - call Function8a241 - jr c, .asm_8a121 - jr .asm_8a15a -.asm_8a14c - call WaitSFX - ld de, SFX_TWINKLE - call PlaySFX - ld c, $10 - call DelayFrames -.asm_8a15a - call ExitMenu - call Function891de - call Function893e2 - call Function89245 - call Function89168 - and a - ret -.asm_8a16b - call Function89209 - call CloseWindow - call Function8920f - scf - ret -; 8a176 (22:6176) - -MenuDataHeader_0x8a176: ; 0x8a176 - db $40 ; flags - db 00, 14 ; start coords - db 06, 19 ; end coords -; 8a17b - -Function8a17b: ; 8a17b (22:617b) - decoord 14, 0 - ld b, $5 - ld c, $4 - call Function89b3b - ld hl, MenuDataHeader_0x8a19a - ld a, [wd030] - call Function89d5e - ld hl, Function8a1b0 - call Function89d75 - jr nc, .asm_8a198 - ld a, $0 -.asm_8a198 - ld d, a - ret -; 8a19a (22:619a) - -MenuDataHeader_0x8a19a: ; 0x8a19a - db $40 ; flags - db 00, 14 ; start coords - db 06, 19 ; end coords - dw MenuData2_0x8a1a2 - db 1 ; default option -; 0x8a1a2 - -MenuData2_0x8a1a2: ; 0x8a1a2 - db $e0 ; flags - db 3 ; items - db "ひらく@" - db "すてる@" - db "もどる@" -; 0x8a1b0 - -Function8a1b0: ; 8a1b0 - hlcoord 0, 12 - ld b, $4 - ld c, $12 - call TextBox - hlcoord 1, 14 - ld a, [wMenuCursorY] - ld de, Strings_8a1cc - dec a - ld c, a - call Function8919e - call PlaceString - ret -; 8a1cc - -Strings_8a1cc: ; 8a1cc - db "めいし", $25, "せいりと へんしゅうを" - next "おこないます" - db "@" - - db "めいしフ,ルダー", $25, "めいしと" - next "あんしょうばんごう", $1f, "けします" - db "@" - - db "まえ", $25, "がめん", $1d, "もどります" - db "@" -; 8a20d - - -Function8a20d: ; 8a20d (22:620d) - ld hl, UnknownText_0x8a232 - call PrintText - ld a, $2 - call Function89259 - ret c - ld hl, UnknownText_0x8a237 - call PrintText - ld a, $2 - call Function89259 - ret c - xor a - call Function8a2fe - ld hl, UnknownText_0x8a23c - call PrintText - xor a - and a - ret -; 8a232 (22:6232) - -UnknownText_0x8a232: ; 0x8a232 - ; If the CARD FOLDER is deleted, all its CARDS and the PASSCODE will also be deleted. Beware--a deleted CARD FOLDER can't be restored. Want to delete your CARD FOLDER? - text_jump UnknownText_0x1c53ee - db "@" -; 0x8a237 - -UnknownText_0x8a237: ; 0x8a237 - ; Are you sure you want to delete it? - text_jump UnknownText_0x1c5494 - db "@" -; 0x8a23c - -UnknownText_0x8a23c: ; 0x8a23c - ; The CARD FOLDER has been deleted. - text_jump UnknownText_0x1c54b9 - db "@" -; 0x8a241 - -Function8a241: ; 8a241 (22:6241) - call LoadStandardMenuDataHeader - call Function891fe - call Function8a262 - jr nc, .asm_8a254 - call Function891fe - call Function89b28 - scf - ret -.asm_8a254 - call Function891de - call ClearBGPalettes - call Call_ExitMenu - call Function891de - and a - ret - -Function8a262: ; 8a262 (22:6262) - call ClearBGPalettes - call Function893e2 - call Mobile22_SetBGMapMode0 - callba Function4a3a7 - callba MG_Mobile_Layout_CreatePalBoxes - hlcoord 1, 0 - call Function8a53d - hlcoord 12, 4 - call Function8a58d - ld a, $5 - hlcoord 12, 4, AttrMap - call Function8a5a3 - ld a, $6 - hlcoord 15, 4, AttrMap - call Function8a5a3 - xor a - ld [wd02e], a - ld bc, wd013 - call Function8b36c - call Function8b493 - call Function891ab - call SetPalettes - call Function8b5e7 - ret - -Function8a2aa: ; 8a2aa (22:62aa) - ld hl, MenuDataHeader_0x8a2ef - call LoadMenuDataHeader - ld hl, UnknownText_0x8a2f4 - call PrintText - ld a, $1 - call Function89259 - jr nc, .asm_8a2cf - ld hl, UnknownText_0x8a2f9 - call PrintText - ld a, $2 - call Function89259 - jr c, .asm_8a2ea - call Function8a20d - jr .asm_8a2ea -.asm_8a2cf - call ExitMenu - call Function8a241 - jr c, .asm_8a2ed - ld a, $1 - call Function8a313 - call CloseSRAM - call Function891de - call Function89245 - call Function89168 - and a - ret -.asm_8a2ea - call CloseWindow -.asm_8a2ed - scf - ret -; 8a2ef (22:62ef) - -MenuDataHeader_0x8a2ef: ; 0x8a2ef - db $40 ; flags - db 12, 00 ; start coords - db 17, 19 ; end coords -; 8a2f4 - -UnknownText_0x8a2f4: ; 0x8a2f4 - ; There is an older CARD FOLDER from a previous journey. Do you want to open it? - text_jump UnknownText_0x1c54dd - db "@" -; 0x8a2f9 - -UnknownText_0x8a2f9: ; 0x8a2f9 - ; Delete the old CARD FOLDER? - text_jump UnknownText_0x1c552d - db "@" -; 0x8a2fe - -Function8a2fe: ; 8a2fe (22:62fe) - call Function8a313 - call Function89305 - ld hl, $a603 - ld bc, $8 - ld a, -1 - call ByteFill - call CloseSRAM - ret - -Function8a313: ; 8a313 (22:6313) - ld c, a - call OpenSRAMBank4 - ld a, c - ld [$a60b], a - ret - -Function8a31c: ; 8a31c (22:631c) - push bc - call Mobile22_SetBGMapMode0 - callba Function4a3a7 - callba MG_Mobile_Layout_CreatePalBoxes - hlcoord 1, 0 - call Function8a53d - hlcoord 12, 4 - call Function8a58d - call Function8a3b2 - pop bc - ld a, c - ld [wMenuCursorBuffer], a - ld [MenuSelection], a - call PlaceVerticalMenuItems - call InitVerticalMenuCursor - ld hl, w2DMenuFlags1 - set 7, [hl] -.asm_8a34e - call Function8a3a2 - call Mobile22_SetBGMapMode0 - call Function8a453 - call Function8a4d3 - call Function8a4fc - call Function891ab - call SetPalettes - call Function8a383 - jr c, .asm_8a370 - jr z, .asm_8a34e -.asm_8a36a - call Function89448 - xor a - ld e, a - ret -.asm_8a370 - call Function89448 - call PlaceHollowCursor - call Function8a3a2 - ld a, [MenuSelection] - cp $ff - jr z, .asm_8a36a - ld e, a - and a - ret - -Function8a383: ; 8a383 (22:6383) - callba MobileMenuJoypad - ld a, c - ld hl, wMenuJoypadFilter - and [hl] - ret z - bit 0, a - jr nz, .asm_8a399 - bit 1, a - jr nz, .asm_8a39e - xor a - ret -.asm_8a399 - call PlayClickSFX - scf - ret -.asm_8a39e - call PlayClickSFX - ret - -Function8a3a2: ; 8a3a2 (22:63a2) - ld a, [wMenuCursorY] - dec a - ld hl, wd002 - ld e, a - ld d, $0 - add hl, de - ld a, [hl] - ld [MenuSelection], a - ret - -Function8a3b2: ; 8a3b2 (22:63b2) - ld a, $1 - ld [MenuSelection], a - call Function8a4fc - call Function8a3df - jr nc, .asm_8a3ce - decoord 0, 2 - ld b, $6 - ld c, $9 - call Function89b3b - ld hl, MenuDataHeader_0x8a435 - jr .asm_8a3db -.asm_8a3ce - decoord 0, 2 - ld b, $8 - ld c, $9 - call Function89b3b - ld hl, MenuDataHeader_0x8a40f -.asm_8a3db - call CopyMenuDataHeader - ret - -Function8a3df: ; 8a3df (22:63df) - call OpenSRAMBank4 - ld hl, $a603 - call Function89b45 - call CloseSRAM - ld hl, wd002 - jr c, .asm_8a3f8 - ld de, Unknown_8a408 - call Function8a400 - scf - ret -.asm_8a3f8 - ld de, Unknown_8a40b - call Function8a400 - and a - ret - -Function8a400: ; 8a400 (22:6400) - ld a, [de] - inc de - ld [hli], a - cp $ff - jr nz, Function8a400 - ret -; 8a408 (22:6408) - -Unknown_8a408: db 1, 2, -1 -Unknown_8a40b: db 1, 2, 3, -1 - -MenuDataHeader_0x8a40f: ; 0x8a40f - db $40 ; flags - db 02, 00 ; start coords - db 11, 10 ; end coords - dw MenuData2_0x8a417 - db 1 ; default option -; 0x8a417 - -MenuData2_0x8a417: ; 0x8a417 - db $a0 ; flags - db 4 ; items - db "めいしりスト@" - db "じぶんの めいし@" - db "めいしこうかん@" - db "やめる@" -; 0x8a435 - -MenuDataHeader_0x8a435: ; 0x8a435 - db $40 ; flags - db 02, 00 ; start coords - db 09, 10 ; end coords - dw MenuData2_0x8a43d - db 1 ; default option -; 0x8a43d - -MenuData2_0x8a43d: ; 0x8a43d - db $a0 ; flags - db 3 ; items - db "めいしりスト@" - db "じぶんの めいし@" - db "やめる@" -; 0x8a453 - -Function8a453: ; 8a453 (22:6453) - hlcoord 0, 12 - ld b, $4 - ld c, $12 - call TextBox - hlcoord 1, 14 - ld de, String_8a476 - ld a, [MenuSelection] - cp $ff - jr z, .asm_8a472 - ld de, Strings_8a483 - dec a - ld c, a - call Function8919e -.asm_8a472 - call PlaceString - ret -; 8a476 (22:6476) - -String_8a476: ; 8a476 - db "まえ", $25, "がめん", $1d, "もどります@" -; 8a483 - -Strings_8a483: ; 8a483 - db "おともだち", $25, "めいしは" - next "ここ", $1d, "いれておきます@" - - db "でんわばんごう", $1f, "いれると" - next "めいしこうかん", $4a, "できます@" - - db "ともだちと じぶん", $25, "めいしを" - next "せきがいせんで こうかん します@" -; 8a4d3 - -Function8a4d3: ; 8a4d3 (22:64d3) - ld a, [MenuSelection] - cp $1 - jr nz, .asm_8a4eb - ld a, $5 - hlcoord 12, 4, AttrMap - call Function8a5a3 - ld a, $7 - hlcoord 15, 4, AttrMap - call Function8a5a3 - ret -.asm_8a4eb - ld a, $7 - hlcoord 12, 4, AttrMap - call Function8a5a3 - ld a, $6 - hlcoord 15, 4, AttrMap - call Function8a5a3 - ret - -Function8a4fc: ; 8a4fc (22:64fc) - ld a, [MenuSelection] - cp $3 - jr nz, asm_8a529 - ld hl, wd012 - ld a, [hli] - ld b, a - ld a, [hld] - add b - ld [hl], a - ld b, a - ld c, $80 - call Function89cdf - call Function8a515 - ret - -Function8a515: ; 8a515 (22:6515) - ld hl, wd012 - ld a, [hl] - cp $38 - jr c, .asm_8a520 - cp $3c - ret c -.asm_8a520 - ld a, [wd013] - cpl - inc a - ld [wd013], a - ret - -asm_8a529: ; 8a529 (22:6529) - ld hl, wd012 - ld a, $3c - ld [hli], a - ld a, $ff - ld [hli], a - ld hl, Sprites - xor a - ld bc, $20 - call ByteFill - ret - -Function8a53d: ; 8a53d (22:653d) - push hl - ld a, $15 - ld c, $8 - ld de, $14 - call Function8a573 - ld a, $1d - ld c, $9 - call Function8a57c - inc a - ld [hl], a - call Function8a584 - pop hl - add hl, de - ld a, $1f - ld c, $8 - call Function8a573 - dec hl - ld a, $51 - ld [hli], a - ld a, $26 - ld c, $1 - call Function8a57c - ld a, $52 - ld c, $3 - call Function8a573 - ld a, $27 - ld c, $6 - -Function8a573: ; 8a573 (22:6573) - ld [hl], a - call Function8a584 - inc a - dec c - jr nz, Function8a573 - ret - -Function8a57c: ; 8a57c (22:657c) - ld [hl], a - call Function8a584 - dec c - jr nz, Function8a57c - ret - -Function8a584: ; 8a584 (22:6584) - push af - ld a, $4 - call Function89215 - inc hl - pop af - ret - -Function8a58d: ; 8a58d (22:658d) - ld a, $2d - ld bc, $606 - ld de, $14 -.asm_8a595 - push bc - push hl -.asm_8a597 - ld [hli], a - inc a - dec c - jr nz, .asm_8a597 - pop hl - add hl, de - pop bc - dec b - jr nz, .asm_8a595 - ret - -Function8a5a3: ; 8a5a3 (22:65a3) - ld bc, $603 - ld de, $14 -.asm_8a5a9 - push bc - push hl -.asm_8a5ab - ld [hli], a - dec c - jr nz, .asm_8a5ab - pop hl - add hl, de - pop bc - dec b - jr nz, .asm_8a5a9 - ret - -Function8a5b6: ; 8a5b6 (22:65b6) - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - ld hl, Palette_8a5e5 - ld de, UnknBGPals + 4 palettes - ld bc, 3 palettes - call CopyBytes - ld hl, Palette_8a5fd - ld de, UnknOBPals - ld bc, 1 palettes - call CopyBytes - ld hl, Palette_8a605 - ld de, UnknOBPals + 1 palettes - ld bc, 1 palettes - call CopyBytes - pop af - ld [rSVBK], a - ret -; 8a5e5 (22:65e5) - -Palette_8a5e5: ; 8a5e5 - RGB 31, 31, 31 - RGB 27, 19, 00 - RGB 07, 11, 22 - RGB 00, 00, 00 - - RGB 31, 31, 31 - RGB 16, 16, 31 - RGB 27, 19, 00 - RGB 00, 00, 00 - - RGB 31, 31, 31 - RGB 31, 00, 00 - RGB 27, 19, 00 - RGB 00, 00, 00 -; 8a5fd - -Palette_8a5fd: ; 8a5fd - RGB 00, 00, 00 - RGB 00, 00, 00 - RGB 00, 00, 00 - RGB 31, 31, 31 -; 8a605 - -Palette_8a605: ; 8a605 - RGB 00, 00, 00 - RGB 14, 18, 31 - RGB 16, 16, 31 - RGB 31, 31, 31 -; 8a60d - -Function8a60d: ; 8a60d - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - ld hl, Palette_8a624 - ld de, UnknOBPals - ld bc, 1 palettes - call CopyBytes - pop af - ld [rSVBK], a - ret -; 8a624 - -Palette_8a624: ; 8a624 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 00, 00, 00 -; 8a62c - -Function8a62c: ; 8a62c (22:662c) - call LoadStandardMenuDataHeader - call Function891fe - xor a - call Function8b94a - call Function8b677 -.asm_8a639 - xor a - ld [wd033], a - ld [wd032], a - ld [wd0e3], a - call Function8b7bd - ld a, c - and a - jr z, .asm_8a66a - ld [MenuSelection], a - ld b, a - ld a, [wScrollingMenuCursorPosition] - inc a - ld [wd034], a - push bc - call Function8b960 - ld a, c - pop bc - jr z, .asm_8a639 - ld c, a - ld hl, Jumptable_8a671 - ld a, b - ld [MenuSelection], a - ld a, c - dec a - rst JumpTable - jr .asm_8a639 -.asm_8a66a - call Function891fe - call Function89b28 - ret - -Jumptable_8a671: ; 8a671 (22:6671) - dw Function8a679 - dw Function8a6cd - dw Function8a8c3 - dw Function8a930 - - -Function8a679: ; 8a679 (22:6679) - call Function891de - call ClearBGPalettes - call Function893cc - call OpenSRAMBank4 - call Function8931b - call Function89844 - call CloseSRAM - call OpenSRAMBank4 - call Function8939a - call Function89856 - hlcoord 1, 13 - call Function899fe - call Function891ab - call CloseSRAM -.asm_8a6a3 - call Function89a57 - jr c, .asm_8a6a3 - and a - jr z, Function8a679 - ld hl, Jumptable_8a6bc - dec a - rst JumpTable - jr c, Function8a679 - call Function891fe - call Function8b677 - call Function89448 - ret - -Jumptable_8a6bc: ; 8a6bc (22:66bc) - dw Function8a6c0 - dw Function8a6c5 - - -Function8a6c0: ; 8a6c0 (22:66c0) - call PlayClickSFX - and a - ret - -Function8a6c5: ; 8a6c5 (22:66c5) - call PlayClickSFX - call Function89d0d - scf - ret - -Function8a6cd: ; 8a6cd (22:66cd) - call Function891de - call ClearBGPalettes - call Function893cc - call OpenSRAMBank4 - call Function8931b - call Function89844 - call Function8a757 - call CloseSRAM -.asm_8a6e5 - call OpenSRAMBank4 - call Function8931b - call Function89856 - call Function89a2e - call Function891ab - xor a - ld [wd02f], a - call CloseSRAM -.asm_8a6fb - call Function89b97 - call Function89c67 - jr c, .asm_8a718 - ld a, b - and a - jr z, .asm_8a6fb - call PlayClickSFX - call Function89448 - ld a, [wd011] - ld hl, Jumptable_8a74f - rst JumpTable - jr nc, .asm_8a6e5 - jr .asm_8a742 -.asm_8a718 - call OpenSRAMBank4 - call Function8a765 - call CloseSRAM - jr nc, .asm_8a73f - call Mobile22_SetBGMapMode0 - call Function89448 - call Function89a23 - hlcoord 1, 13 - ld de, String_89135 - call PlaceString - call WaitBGMap - ld a, $2 - call Function89254 - jr c, .asm_8a6e5 -.asm_8a73f - call CloseSRAM -.asm_8a742 - call ClearBGPalettes - call Function89448 - call Function891d3 - call Function8b677 - ret - -Jumptable_8a74f: ; 8a74f (22:674f) - dw Function8a78c - dw Function8a7cb - dw Function8a818 - dw Function8a8a1 - - -Function8a757: ; 8a757 (22:6757) - call Function8939a - xor a - ld [wd010], a - ld [wd011], a - ld [wd012], a - ret - -Function8a765: ; 8a765 (22:6765) - call Function8931b - push bc - ld hl, $0 - add hl, bc - ld de, wd002 - ld c, $6 - call Function89185 - pop bc - jr nz, .asm_8a78a - push bc - ld hl, $11 - add hl, bc - ld de, wd008 - ld c, $8 - call Function89185 - pop bc - jr nz, .asm_8a78a - and a - ret -.asm_8a78a - scf - ret - -Function8a78c: ; 8a78c (22:678c) - call Function891fe - ld de, wd002 - ld b, $5 - callba NamingScreen - call OpenSRAMBank4 - call Function8931b - push bc - ld hl, $0 - add hl, bc - ld d, h - ld e, l - ld hl, wd002 - call InitName - call CloseSRAM - call DelayFrame - call JoyTextDelay - call Function891de - call ClearBGPalettes - call Function893cc - call OpenSRAMBank4 - pop bc - call Function89844 - call CloseSRAM - and a - ret - -Function8a7cb: ; 8a7cb (22:67cb) - ld a, [MenuSelection] - push af - call Function891de - ld de, wd008 - ld c, $0 - callba Function17a68f - jr c, .asm_8a7f4 - ld hl, wd008 - ld a, $ff - ld bc, $8 - call ByteFill - ld h, d - ld l, e - ld de, wd008 - ld c, $8 - call Function89193 -.asm_8a7f4 - pop af - ld [MenuSelection], a - call Function891de - call ClearBGPalettes - call Function893cc - call OpenSRAMBank4 - call Function8931b - call Function89844 - call Function89856 - call Function89a2e - call Function891ab - call CloseSRAM - and a - ret - -Function8a818: ; 8a818 (22:6818) - call Function89a23 - ld hl, wd002 - call Function89331 - jr c, .asm_8a875 - ld hl, wd008 - call Function89b45 - jr nc, .asm_8a87a - call OpenSRAMBank4 - call Function8a765 - jr nc, .asm_8a863 - call Function8931b - push bc - ld hl, $0 - add hl, bc - ld d, h - ld e, l - ld hl, wd002 - ld c, $6 - call Function89193 - pop bc - ld hl, $11 - add hl, bc - ld d, h - ld e, l - ld hl, wd008 - ld c, $8 - call Function89193 - hlcoord 1, 13 - ld de, .string_8a868 - call PlaceString - call WaitBGMap - call JoyWaitAorB -.asm_8a863 - call CloseSRAM - scf - ret -; 8a868 (22:6868) - -.string_8a868 - db "めいし", $1f, "かきかえ まし", $22, "@" - -.asm_8a875 - ld de, String_8a88b - jr .asm_8a87d -.asm_8a87a - ld de, String_8911c -.asm_8a87d - hlcoord 1, 13 - call PlaceString - call WaitBGMap - call JoyWaitAorB - and a - ret -; 8a88b (22:688b) - -String_8a88b: ; 8a88b - db "おともだち", $25, "なまえが" - next "かかれて いません!@" -; 8a8a1 - -Function8a8a1: ; 8a8a1 (22:68a1) - call OpenSRAMBank4 - call Function8a765 - call CloseSRAM - jr nc, .asm_8a8bf - call Function89a23 - hlcoord 1, 13 - ld de, String_89135 - call PlaceString - ld a, $2 - call Function89254 - jr c, .asm_8a8c1 -.asm_8a8bf - scf - ret -.asm_8a8c1 - and a - ret - -Function8a8c3: ; 8a8c3 (22:68c3) - call Function891de - call ClearBGPalettes - call Function893cc - call OpenSRAMBank4 - call Function8931b - call Function89844 - call Function8939a - call Function89856 - call CloseSRAM - call Function891ab - hlcoord 1, 13 - ld de, String_8a919 - call PlaceString - ld a, $2 - call Function89254 - jr c, .asm_8a90f - call OpenSRAMBank4 - call Function892b4 - call CloseSRAM - call Function89a23 - call Mobile22_SetBGMapMode0 - hlcoord 1, 13 - ld de, String_8a926 - call PlaceString - call WaitBGMap - call JoyWaitAorB -.asm_8a90f - call Function89448 - call Function891fe - call Function8b677 - ret -; 8a919 (22:6919) - -String_8a919: ; 8a919 - db "このデータ", $1f, "けしますか?@" -; 8a926 - -String_8a926: ; 8a926 - db "データ", $1f, "けしまし", $22, "@" -; 8a930 - -Function8a930: ; 8a930 (22:6930) - ld a, [MenuSelection] - push af - xor a - ld [wd032], a - ld a, $1 - ld [wd033], a - ld a, [wd034] - ld [wd0e3], a -.asm_8a943 - call Function8b7bd - ld a, [wMenuJoypad] - and $1 - jr nz, .asm_8a953 - ld a, c - and a - jr nz, .asm_8a943 - pop af - ret -.asm_8a953 - call OpenSRAMBank4 - pop af - cp c - jr z, .asm_8a995 - push bc - ld [MenuSelection], a - call Function8931b - push bc - ld h, b - ld l, c - ld de, wd002 - ld bc, $25 - call CopyBytes - pop de - pop bc - ld a, c - ld [MenuSelection], a - call Function8931b - push bc - ld h, b - ld l, c - ld bc, $25 - call CopyBytes - pop de - ld hl, wd002 - ld bc, $25 - call CopyBytes - ld de, SFX_SWITCH_POKEMON - call WaitPlaySFX - ld de, SFX_SWITCH_POKEMON - call WaitPlaySFX -.asm_8a995 - call CloseSRAM - ret - -Function8a999: ; 8a999 (22:6999) - ld hl, MenuDataHeader_0x8a9c9 - call LoadMenuDataHeader - ld c, $1 -.asm_8a9a1 - call Function8a9ce - jr c, .asm_8a9bb - push bc - push de - call LoadStandardMenuDataHeader - pop de - dec e - ld a, e - ld hl, Jumptable_8a9c5 - rst JumpTable - call Function891fe - call Function89b28 - pop bc - jr .asm_8a9a1 -.asm_8a9bb - call Function89209 - call CloseWindow - call Function8920f - ret - -Jumptable_8a9c5: ; 8a9c5 (22:69c5) - dw Function8aa0a - dw Function8ab3b -; 8a9c9 (22:69c9) - -MenuDataHeader_0x8a9c9: ; 0x8a9c9 - db $40 ; flags - db 04, 11 ; start coords - db 11, 18 ; end coords -; 8a9ce - -Function8a9ce: ; 8a9ce (22:69ce) - push bc - decoord 11, 4 - ld b, $6 - ld c, $6 - call Function89b3b - pop bc - ld a, c - ld hl, MenuDataHeader_0x8a9f2 - call Function89d5e - ld hl, Function8aa09 - call Function89d85 - jr c, .asm_8a9ed - ld c, a - ld e, a - and a - ret -.asm_8a9ed - ld c, a - ld e, $0 - scf - ret -; 8a9f2 (22:69f2) - -MenuDataHeader_0x8a9f2: ; 0x8a9f2 - db $40 ; flags - db 04, 11 ; start coords - db 11, 18 ; end coords - dw MenuData2_0x8a9fa - db 1 ; default option -; 0x8a9fa - -MenuData2_0x8a9fa: ; 0x8a9fa - db $a0 ; flags - db 3 ; items - db "へんしゅう@" - db "みる@" - db "やめる@" -; 0x8aa09 - -Function8aa09: ; 8aa09 - ret -; 8aa0a - -Function8aa0a: ; 8aa0a (22:6a0a) - ld a, $1 - ld [wd02f], a - ld [wd011], a - xor a - ld [wd010], a - ld [wd012], a - call OpenSRAMBank4 - ld hl, $a603 - ld de, wd008 - call Function89381 - call CloseSRAM - call Function891fe - call ClearBGPalettes - call Function893cc - call Function89807 - call Function89492 - call Function894ca -.asm_8aa3a - call Function8987f - call Function89a2e - call Function891ab -.asm_8aa43 - call Function89b97 - call Function89c67 - jr c, .asm_8aa61 - ld a, b - and a - jr z, .asm_8aa43 - call PlayClickSFX - call Function89448 - ld a, [wd011] - dec a - ld hl, Jumptable_8aa6d - rst JumpTable - jr nc, .asm_8aa3a - jr .asm_8aa69 -.asm_8aa61 - call Function89448 - call Function8ab11 - jr nc, .asm_8aa3a -.asm_8aa69 - call Function89448 - ret - -Jumptable_8aa6d: ; 8aa6d (22:6a6d) - dw Function8aa73 - dw Function8aab6 - dw Function8ab11 - - -Function8aa73: ; 8aa73 (22:6a73) - ld a, [MenuSelection] - ld e, a - push de - call Function891de - ld de, wd008 - ld c, $0 - callba Function17a68f - jr c, .asm_8aa9d - ld hl, wd008 - ld a, $ff - ld bc, $8 - call ByteFill - ld h, d - ld l, e - ld de, wd008 - ld c, $8 - call Function89193 -.asm_8aa9d - call Function891fe - call ClearBGPalettes - call Function893cc - call Function89807 - call Function89492 - call Function894ca - pop de - ld a, e - ld [MenuSelection], a - and a - ret - -Function8aab6: ; 8aab6 (22:6ab6) - call Function89a23 - ld hl, wd008 - call Function89b45 - jr nc, Function8ab00 - call OpenSRAMBank4 - ld de, wd008 - ld hl, $a603 - ld c, $8 - call Function89185 - jr z, .asm_8aaeb - ld hl, wd008 - ld de, $a603 - ld c, $8 - call Function89193 - hlcoord 1, 13 - ld de, String_8aaf0 - call PlaceString - call WaitBGMap - call JoyWaitAorB -.asm_8aaeb - call CloseSRAM - scf - ret -; 8aaf0 (22:6af0) - -String_8aaf0: ; 8aaf0 - db "あたらしい めいしできまし@" -; 8ab00 - -Function8ab00: ; 8ab00 - ld de, String_8911c - hlcoord 1, 13 - call PlaceString - call WaitBGMap - call Mobile22_ButtonSound - and a - ret - -Function8ab11: ; 8ab11 (22:6b11) - call OpenSRAMBank4 - ld hl, $a603 - ld de, wd008 - ld c, $8 - call Function89185 - call CloseSRAM - jr z, .asm_8ab37 - call Function89a23 - hlcoord 1, 13 - ld de, String_89135 - call PlaceString - ld a, $2 - call Function89254 - jr c, .asm_8ab39 -.asm_8ab37 - scf - ret -.asm_8ab39 - and a - ret - -Function8ab3b: ; 8ab3b (22:6b3b) -.pressed_start - call Function891fe - call ClearBGPalettes - call Function893cc - call Function89807 - call Function89492 - call Function894ca - call OpenSRAMBank4 - ld hl, $a603 - ld de, wd008 - call Function89381 - call CloseSRAM - call Function8987f - call OpenSRAMBank4 - hlcoord 1, 13 - ld bc, $a007 - call Function89a0c - call CloseSRAM - call Function891ab - call .JoypadLoop - jr c, .pressed_start - ret - -.JoypadLoop: ; 8ab77 (22:6b77) - call JoyTextDelay_ForcehJoyDown - bit A_BUTTON_F, c - jr nz, .a_b_button - bit B_BUTTON_F, c - jr nz, .a_b_button - bit START_F, c - jr z, .JoypadLoop - call PlayClickSFX - call Function89d0d - scf - ret - -.a_b_button - call PlayClickSFX - and a - ret - -Function8ab93: ; 8ab93 (22:6b93) - call ClearBGPalettes - call LoadStandardMenuDataHeader - callba Function105688 - call ClearSprites - call Function891fe - call Function89b28 - ret -; 8aba9 (22:6ba9) - -Function8aba9: ; 8aba9 - ld a, $2 - call Function8b94a - ld a, $1 - ld [wd032], a -.asm_8abb3 - call Function891fe - call Function8b677 -.asm_8abb9 - call Function8b7bd - jr z, .asm_8abdf - ld a, c - ld [MenuSelection], a - call OpenSRAMBank4 - call Function8931b - ld hl, $0011 - add hl, bc - call Function89b45 - call CloseSRAM - jr c, .asm_8abe2 - ld de, SFX_WRONG - call WaitPlaySFX - call CloseSRAM - jr .asm_8abb9 - -.asm_8abdf - xor a - ld c, a - ret - -.asm_8abe2 - call PlayClickSFX -.asm_8abe5 - call Function891de - call ClearBGPalettes - call Function893cc - call OpenSRAMBank4 - call Function8931b - call Function89844 - call CloseSRAM - call OpenSRAMBank4 - call Function8939a - call Function89856 - hlcoord 1, 13 - call Function899fe - call CloseSRAM - call Function891ab -.asm_8ac0f - call Function89a57 - jr c, .asm_8ac0f - and a - jr z, .asm_8abe5 - cp $2 - jr z, .asm_8ac0f - hlcoord 0, 12 - ld b, $4 - ld c, $12 - call TextBox - hlcoord 1, 14 - ld de, String_8ac3b - call PlaceString - ld a, $1 - call Function8925e - jp c, .asm_8abb3 - ld a, [MenuSelection] - ld c, a - ret -; 8ac3b - -String_8ac3b: ; 8ac3b - db "こ", $25, "ともだち", $1d, "でんわを" - next "かけますか?@" -; 8ac4e - -Function8ac4e: ; 8ac4e - xor a - ld [MenuSelection], a - push de - call Function891de - call ClearBGPalettes - call Function893cc - pop bc - call Function89844 - call Function8939a - call Function89856 - hlcoord 1, 13 - call Function899fe - call Function891ab - ret -; 8ac70 - -Function8ac70: ; 8ac70 - push de - ld a, $3 - call Function8b94a - -Function8ac76: ; 8ac76 - call Function891fe - call Function8b677 - -Function8ac7c: ; 8ac7c - call Function8b7bd - jr z, .asm_8acf0 - ld a, c - ld [wd02f], a - ld [MenuSelection], a - call OpenSRAMBank4 - call Function8931b - call Function8932d - call CloseSRAM - jr nc, .asm_8acb0 - call OpenSRAMBank4 - ld hl, $0011 - add hl, bc - call Function89b45 - call CloseSRAM - jr nc, .asm_8accc - call OpenSRAMBank4 - call Function892b7 - call CloseSRAM - jr .asm_8accc - -.asm_8acb0 - call Function8ad0b - jr c, Function8ac76 - and a - jr nz, .asm_8accc - call OpenSRAMBank4 - ld h, b - ld l, c - ld d, $0 - ld e, $6 - add hl, de - ld d, h - ld e, l - pop hl - ld c, $1f - call Function89193 - jr .asm_8ace4 - -.asm_8accc - pop hl - call OpenSRAMBank4 - ld d, b - ld e, c - ld c, $6 - call Function89193 - ld a, $6 - add e - ld e, a - ld a, $0 - adc d - ld d, a - ld c, $1f - call Function89193 - -.asm_8ace4 - call CloseSRAM - call LoadStandardFont - ld a, [wd02f] - ld c, a - and a - ret - -.asm_8acf0 - ld hl, UnknownText_0x8ad06 - call PrintText - ld a, $2 - call Function89259 - jp c, Function8ac7c - call LoadStandardFont - pop de - ld c, $0 - scf - ret -; 8ad06 - -UnknownText_0x8ad06: ; 0x8ad06 - ; Finish registering CARDS? - text_jump UnknownText_0x1c554a - db "@" -; 0x8ad0b - -Function8ad0b: ; 8ad0b -.asm_8ad0b - ld a, [MenuSelection] - ld [wd02f], a - call Function891de - call ClearBGPalettes - call Function893cc - call OpenSRAMBank4 - call Function8931b - push bc - call Function89844 - call Function8939a - call Function89856 - hlcoord 1, 13 - call Function899fe - call CloseSRAM - call Function891ab - pop bc -.asm_8ad37 - push bc - call Function89a57 - pop bc - jr c, .asm_8ad37 - and a - jr z, .asm_8ad0b - cp $2 - jr z, .asm_8ad37 - call Mobile22_SetBGMapMode0 - push bc - hlcoord 0, 12 - ld b, $4 - ld c, $12 - call TextBox - ld de, String_8ad89 - hlcoord 1, 14 - call PlaceString - ld a, $2 - call Function8925e - jr c, .asm_8ad87 - call Mobile22_SetBGMapMode0 - hlcoord 0, 12 - ld b, $4 - ld c, $12 - call TextBox - ld de, String_8ad9c - hlcoord 1, 14 - call PlaceString - ld a, $1 - call Function8925e - jr c, .asm_8ad84 - ld a, $0 - jr .asm_8ad86 - -.asm_8ad84 - ld a, $1 - -.asm_8ad86 - and a - -.asm_8ad87 - pop bc - ret -; 8ad89 - -String_8ad89: ; 8ad89 - db "こ", $25, "めいし", $1f, "けして" - next "いれかえますか?@" -; 8ad9c - -String_8ad9c: ; 8ad9c - db "おともだち", $25, "なまえを" - next "のこして おきますか?@" -; 8adb3 - -Function8adb3: ; 8adb3 - call Function891de - call Function8a262 - push af - call Function891de - pop af - ret -; 8adbf - -Function8adbf: ; 8adbf - call OpenSRAMBank4 - ld hl, $a603 - call Function89b45 - call CloseSRAM - ret -; 8adcc - -Function8adcc: ; 8adcc - call OpenSRAMBank4 - call Function8b3b0 - call CloseSRAM - ret nc - cp $2 - ret z - scf - ret -; 8addb diff --git a/misc/mobile_22_2.asm b/misc/mobile_22_2.asm deleted file mode 100644 index 321998dc7..000000000 --- a/misc/mobile_22_2.asm +++ /dev/null @@ -1,1162 +0,0 @@ -Function8b342:: ; 8b342 -; Loads the secondary map header pointer, then runs through a -; dw with three dummy functions. Spends a lot of energy -; doing pretty much nothing. - call GetSecondaryMapHeaderPointer - ld d, h - ld e, l - -; Everything between here and "ret" is useless. - xor a -.loop - push af - ld hl, .dw - rst JumpTable - pop af - inc a - cp 3 - jr nz, .loop - ret -; 8b354 - -.dw ; 8b354 - dw .zero - dw .one - dw .two -; 8b35a - -.zero ; 8b35a - mobile -; 8b35b - -.one ; 8b35b - mobile -; 8b35c - -.two ; 8b35c - mobile -; 8b35d - -Function8b35d: ; 8b35d - ld a, h - cp d - ret nz - ld a, l - cp e - ret -; 8b363 - -Function8b363: ; 8b363 - push bc - callba Mobile_AlwaysReturnNotCarry - pop bc - ret -; 8b36c - -Function8b36c: ; 8b36c (22:736c) - ; [bc + (0:4)] = -1 - push bc - ld h, b - ld l, c - ld bc, 4 - ld a, -1 - call ByteFill - pop bc - ret - -Function8b379: ; 8b379 (22:7379) - ; d = [bc + e] - push bc - ld a, c - add e - ld c, a - ld a, $0 - adc b - ld b, a - ld a, [bc] - ld d, a - pop bc - ret - -Function8b385: ; 8b385 (22:7385) - ; [bc + e] = d - push bc - ld a, c - add e - ld c, a - ld a, $0 - adc b - ld b, a - ld a, d - ld [bc], a - pop bc - ret - -Function8b391: ; 8b391 (22:7391) - ; find first e in range(4) such that [bc + e] == -1 - ; if none exist, return carry - push bc - ld e, 0 - ld d, 4 -.loop - ld a, [bc] - inc bc - cp -1 - jr z, .done - inc e - dec d - jr nz, .loop - dec e - scf -.done - pop bc - ret - -Function8b3a4: ; 8b3a4 (22:73a4) - ; strcmp(hl, bc, 4) - push de - push bc - ld d, b - ld e, c - ld c, 4 - call Function89185 - pop bc - pop de - ret - -Function8b3b0: ; 8b3b0 (22:73b0) - ld bc, $a037 ; 4:a037 - ld a, [$a60b] - and a - jr z, .asm_8b3c2 - cp $3 - jr nc, .asm_8b3c2 - call Function8b391 - jr c, .asm_8b3c9 -.asm_8b3c2 - call Function8b36c - xor a - ld [$a60b], a -.asm_8b3c9 - ld a, [$a60b] - ret - -Function8b3cd: ; 8b3cd (22:73cd) - push de - push bc - ld e, $4 -.asm_8b3d1 - ld a, [bc] - inc bc - call Function8998b - inc hl - dec e - jr nz, .asm_8b3d1 - pop bc - pop de - ret - -Function8b3dd: ; 8b3dd (22:73dd) - push de - push bc - call JoyTextDelay_ForcehJoyDown ; joypad - ld a, c - pop bc - pop de - bit A_BUTTON_F, a - jr nz, .a_button - bit B_BUTTON_F, a - jr nz, .b_button - bit D_UP_F, a - jr nz, .d_up - bit D_DOWN_F, a - jr nz, .d_down - and a - ret - -.a_button - ld a, e - cp $3 - jr z, .e_is_zero - inc e - ld d, 0 - call Function8b385 - xor a - ld [wd010], a - ret - -.e_is_zero - call PlayClickSFX - ld d, $0 - scf - ret - -.b_button - ld a, e - and a - jr nz, .e_is_not_zero - call PlayClickSFX - ld d, -1 - call Function8b385 - ld d, 1 - scf - ret - -.e_is_not_zero - ld d, -1 - call Function8b385 - dec e - xor a - ld [wd010], a - ret - -.d_up - call Function8b379 - ld a, d - cp $a - jr c, .less_than_10_up_1 - ld d, $9 -.less_than_10_up_1 - inc d - ld a, d - cp $a - jr c, .less_than_10_up_2 - ld d, $0 -.less_than_10_up_2 - call Function8b385 - xor a - ld [wd010], a - ret - -.d_down - call Function8b379 - ld a, d - cp $a - jr c, .less_than_10_down - ld d, $0 -.less_than_10_down - ld a, d - dec d - and a - jr nz, .nonzero_down - ld d, $9 -.nonzero_down - call Function8b385 - xor a - ld [wd010], a - ret - -Function8b45c: ; 8b45c (22:745c) - call Function8b36c - xor a - ld [wd010], a - ld [wd012], a - call Function8b391 - ld d, $0 - call Function8b385 -.asm_8b46e - call Mobile22_SetBGMapMode0 - call Function8b493 - call Function8b4cc - call Function8b518 - call Function89b78 - push bc - call Function8b4fd - call Function89c44 - ld a, $1 - ld [hBGMapMode], a - pop bc - call Function8b3dd - jr nc, .asm_8b46e - ld a, d - and a - ret z - scf - ret - -Function8b493: ; 8b493 (22:7493) - push bc - call Mobile22_SetBGMapMode0 - call Function8b521 - ld hl, Jumptable_8b4a0 - pop bc - rst JumpTable - ret - -Jumptable_8b4a0: ; 8b4a0 (22:74a0) - dw Function8b4a4 - dw Function8b4b8 - - -Function8b4a4: ; 8b4a4 (22:74a4) - push bc - push de - call Function8b4d8 - call TextBox - pop de - pop bc - call Function8b4cc - call Function8b518 - call Function8b3cd - ret - -Function8b4b8: ; 8b4b8 (22:74b8) - push bc - push de - call Function8b4ea - call Function89b3b - pop de - pop bc - call Function8b4cc - call Function8b518 - call Function8b3cd - ret - -Function8b4cc: ; 8b4cc (22:74cc) - push bc - ld hl, Unknown_8b529 - call Function8b50a - ld a, [hli] - ld h, [hl] - ld l, a - pop bc - ret - -Function8b4d8: ; 8b4d8 (22:74d8) - ld hl, Unknown_8b529 - call Function8b50a - push hl - inc hl - inc hl - ld a, [hli] - ld b, a - ld a, [hl] - ld c, a - pop hl - ld a, [hli] - ld h, [hl] - ld l, a - ret - -Function8b4ea: ; 8b4ea (22:74ea) - ld hl, Unknown_8b529 - call Function8b50a - push hl - inc hl - inc hl - ld a, [hli] - ld b, a - ld a, [hl] - ld c, a - pop hl - ld a, [hli] - ld e, a - ld a, [hl] - ld d, a - ret - -Function8b4fd: ; 8b4fd (22:74fd) - ld hl, Unknown_8b529 + 4 - call Function8b50a - ld a, [hli] - ld c, a - ld a, [hli] - ld b, a - ld a, [hli] - ld d, a - ret - -Function8b50a: ; 8b50a (22:750a) - ld a, [wd02e] - and a - ret z - ld b, $0 - ld c, $8 -.asm_8b513 - add hl, bc - dec a - jr nz, .asm_8b513 - ret - -Function8b518: ; 8b518 (22:7518) - push de - ld d, $0 - ld e, $14 - add hl, de - inc hl - pop de - ret - -Function8b521: ; 8b521 (22:7521) - ld hl, Unknown_8b529 + 7 - call Function8b50a - ld a, [hl] - ret -; 8b529 (22:7529) - -Unknown_8b529: ; 8b529 - dwcoord 2, 5 - db 1, 4, $20, $49, 0, 1 - dwcoord 7, 4 - db 1, 4, $48, $41, 0, 0 -; 8b539 - -Function8b539: ; 8b539 (22:7539) - ld bc, wd017 - call Function8b36c - xor a - ld [wd012], a - ld [wd02e], a - call Function8b493 - call Function8b4fd - ld e, $0 - call Function89c44 - call CGBOnly_LoadEDTile - ret - -Function8b555: ; 8b555 (22:7555) -.loop - ld hl, UnknownText_0x8b5ce - call PrintText - ld bc, wd017 - call Function8b45c - jr c, .asm_8b5c8 - call Function89448 - ld bc, wd017 - call Function8b493 - ld bc, wd017 - call Function8b664 - jr nz, .asm_8b57c - ld hl, UnknownText_0x8b5e2 - call PrintText - jr .loop - -.asm_8b57c - ld hl, UnknownText_0x8b5d3 - call PrintText - ld bc, wd013 - call Function8b45c - jr c, .loop - ld bc, wd017 - ld hl, wd013 - call Function8b3a4 - jr z, .strings_equal - call Function89448 - ld bc, wd013 - call Function8b493 - ld hl, UnknownText_0x8b5d8 - call PrintText - jr .asm_8b57c - -.strings_equal - call OpenSRAMBank4 - ld hl, wd013 - ld de, $a037 ; 4:a037 - ld bc, $4 - call CopyBytes - call CloseSRAM - call Function89448 - ld bc, wd013 - call Function8b493 - ld hl, UnknownText_0x8b5dd - call PrintText - and a -.asm_8b5c8 - push af - call Function89448 - pop af - ret -; 8b5ce (22:75ce) - -UnknownText_0x8b5ce: ; 0x8b5ce - ; Please enter any four-digit number. - text_jump UnknownText_0x1bc187 - db "@" -; 0x8b5d3 - -UnknownText_0x8b5d3: ; 0x8b5d3 - ; Enter the same number to confirm. - text_jump UnknownText_0x1bc1ac - db "@" -; 0x8b5d8 - -UnknownText_0x8b5d8: ; 0x8b5d8 - ; That's not the same number. - text_jump UnknownText_0x1bc1cf - db "@" -; 0x8b5dd - -UnknownText_0x8b5dd: ; 0x8b5dd - ; Your PASSCODE has been set. Enter this number next time to open the CARD FOLDER. - text_jump UnknownText_0x1bc1eb - db "@" -; 0x8b5e2 - -UnknownText_0x8b5e2: ; 0x8b5e2 - ; 0000 is invalid! - text_jump UnknownText_0x1bc23e - db "@" -; 0x8b5e7 - -Function8b5e7: ; 8b5e7 (22:75e7) - ld bc, wd013 - call Function8b36c - xor a - ld [wd012], a - ld [wd02e], a - call Function8b493 - call Function891ab - call Function8b4fd - ld e, $0 - call Function89c44 -.asm_8b602 - ld hl, UnknownText_0x8b642 - call PrintText - ld bc, wd013 - call Function8b45c - jr c, .asm_8b63c - call Function89448 - ld bc, wd013 - call Function8b493 - call OpenSRAMBank4 - ld hl, $a037 ; 4:a037 - call Function8b3a4 - call CloseSRAM - jr z, .asm_8b635 - ld hl, UnknownText_0x8b647 - call PrintText - ld bc, wd013 - call Function8b36c - jr .asm_8b602 -.asm_8b635 - ld hl, UnknownText_0x8b64c - call PrintText - and a -.asm_8b63c - push af - call Function89448 - pop af - ret -; 8b642 (22:7642) - -UnknownText_0x8b642: ; 0x8b642 - ; Enter the CARD FOLDER PASSCODE. - text_jump UnknownText_0x1bc251 - db "@" -; 0x8b647 - -UnknownText_0x8b647: ; 0x8b647 - ; Incorrect PASSCODE! - text_jump UnknownText_0x1bc272 - db "@" -; 0x8b64c - -UnknownText_0x8b64c: ; 0x8b64c - ; CARD FOLDER open.@ @ - text_jump UnknownText_0x1bc288 - start_asm - ld de, SFX_TWINKLE - call PlaySFX - call WaitSFX - ld c, $8 - call DelayFrames - ld hl, .string_8b663 - ret -.string_8b663 - db "@" -; 8b664 - -Function8b664: ; 8b664 (22:7664) - push bc - ld de, $4 -.asm_8b668 - ld a, [bc] - cp $0 - jr nz, .asm_8b66e - inc d -.asm_8b66e - inc bc - dec e - jr nz, .asm_8b668 - pop bc - ld a, d - cp $4 - ret - -Function8b677: ; 8b677 - call ClearBGPalettes - call DisableLCD - call Function8b690 - call Function8b6bb - call Function8b6ed - call EnableLCD - call Function891ab - call SetPalettes - ret -; 8b690 - -Function8b690: ; 8b690 - ld hl, GFX_17afa5 + $514 - ld de, VTiles2 - ld bc, $160 - ld a, BANK(GFX_17afa5) - call FarCopyBytes - ld hl, GFX_17afa5 + $514 + $160 - $10 - ld de, VTiles2 tile $61 - ld bc, $10 - ld a, BANK(GFX_17afa5) - call FarCopyBytes - ld hl, GFX_17afa5 + $514 + $160 - ld de, VTiles1 tile $6e - ld bc, $10 - ld a, BANK(GFX_17afa5) - call FarCopyBytes - ret -; 8b6bb - -Function8b6bb: ; 8b6bb - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - ld hl, Palette_8b6d5 - ld de, UnknBGPals - ld bc, $0018 - call CopyBytes - pop af - ld [rSVBK], a - call Function8949c - ret -; 8b6d5 - -Palette_8b6d5: ; 8b6d5 - RGB 31, 31, 31 - RGB 31, 21, 00 - RGB 14, 07, 03 - RGB 00, 00, 00 - RGB 31, 31, 31 - RGB 31, 21, 00 - RGB 22, 09, 17 - RGB 00, 00, 00 - RGB 31, 31, 31 - RGB 31, 21, 00 - RGB 06, 24, 08 - RGB 00, 00, 00 -; 8b6ed - -Function8b6ed: ; 8b6ed - hlcoord 0, 0, AttrMap - ld bc, $012c - xor a - call ByteFill - hlcoord 0, 14, AttrMap - ld bc, $0050 - ld a, $7 - call ByteFill - ret -; 8b703 - -Function8b703: ; 8b703 - call Mobile22_SetBGMapMode0 - push hl - ld a, $c - ld [hli], a - inc a - call Function8b73e - inc a - ld [hl], a - pop hl - push hl - push bc - ld de, SCREEN_WIDTH - add hl, de -.asm_8b717 - push hl - ld a, $f - ld [hli], a - ld a, $7f - call Function8b73e - ld a, $11 - ld [hl], a - pop hl - ld de, SCREEN_WIDTH - add hl, de - dec b - jr nz, .asm_8b717 - call Function8b732 - pop bc - pop hl - jr Function8b744 -; 8b732 - -Function8b732: ; 8b732 - ld a, $12 - ld [hli], a - ld a, $13 - call Function8b73e - ld a, $14 - ld [hl], a - ret -; 8b73e - -Function8b73e: ; 8b73e - ld d, c -.asm_8b73f - ld [hli], a - dec d - jr nz, .asm_8b73f - ret -; 8b744 - -Function8b744: ; 8b744 - ld de, AttrMap - TileMap - add hl, de - inc b - inc b - inc c - inc c - xor a -.asm_8b74d - push bc - push hl -.asm_8b74f - ld [hli], a - dec c - jr nz, .asm_8b74f - pop hl - ld de, SCREEN_WIDTH - add hl, de - pop bc - dec b - jr nz, .asm_8b74d - ret -; 8b75d - -Function8b75d: ; 8b75d - call Mobile22_SetBGMapMode0 - hlcoord 0, 0 - ld a, $1 - ld bc, SCREEN_WIDTH - call ByteFill - hlcoord 0, 1 - ld a, $2 - ld [hl], a - hlcoord 9, 1 - ld c, $b - call Function8b788 - hlcoord 1, 1 - ld a, $4 - ld e, $8 -.asm_8b780 - ld [hli], a - inc a - dec e - jr nz, .asm_8b780 - jr Function8b79e -; 8b787 - -Function8b787: ; 8b787 - ret -; 8b788 - -Function8b788: ; 8b788 -.asm_8b788 - ld a, $2 - ld [hli], a - dec c - ret z - ld a, $1 - ld [hli], a - dec c - ret z - ld a, $3 - ld [hli], a - dec c - ret z - ld a, $1 - ld [hli], a - dec c - jr nz, .asm_8b788 - ret -; 8b79e - -Function8b79e: ; 8b79e - hlcoord 0, 1, AttrMap - ld a, $1 - ld [hli], a - hlcoord 9, 1, AttrMap - ld e, $b -.asm_8b7a9 - ld a, $2 - ld [hli], a - dec e - ret z - xor a - ld [hli], a - dec e - ret z - ld a, $1 - ld [hli], a - dec e - ret z - xor a - ld [hli], a - dec e - jr nz, .asm_8b7a9 - ret -; 8b7bd - -Function8b7bd: ; 8b7bd - call Function8b855 - ld hl, MenuDataHeader_0x8b867 - call CopyMenuDataHeader - ld a, [wd030] - ld [wMenuCursorBuffer], a - ld a, [wd031] - ld [wMenuScrollPosition], a - ld a, [wd032] - and a - jr z, .asm_8b7e0 - ld a, [wMenuFlags] - set 3, a - ld [wMenuFlags], a - -.asm_8b7e0 - ld a, [wd0e3] - and a - jr z, .asm_8b7ea - dec a - ld [wScrollingMenuCursorPosition], a - -.asm_8b7ea - hlcoord 0, 2 - ld b, $b - ld c, $12 - call Function8b703 - call Function8b75d - call UpdateSprites - call Function89209 - call ScrollingMenu - call Function8920f - ld a, [wMenuJoypad] - cp $2 - jr z, .asm_8b823 - cp $20 - jr nz, .asm_8b813 - call Function8b832 - jr .asm_8b7ea - -.asm_8b813 - cp $10 - jr nz, .asm_8b81c - call Function8b83e - jr .asm_8b7ea - -.asm_8b81c - ld a, [MenuSelection] - cp $ff - jr nz, .asm_8b824 - -.asm_8b823 - xor a - -.asm_8b824 - ld c, a - ld a, [wMenuCursorY] - ld [wd030], a - ld a, [wMenuScrollPosition] - ld [wd031], a - ret -; 8b832 - -Function8b832: ; 8b832 - ld a, [wMenuScrollPosition] - ld hl, wMenuData2Items - sub [hl] - jr nc, Function8b84b - xor a - jr Function8b84b -; 8b83e - -Function8b83e: ; 8b83e - ld a, [wMenuScrollPosition] - ld hl, wMenuData2Items - add [hl] - cp $24 - jr c, Function8b84b - ld a, $24 - -Function8b84b: ; 8b84b - ld [wMenuScrollPosition], a - ld a, [wMenuCursorY] - ld [wMenuCursorBuffer], a - ret -; 8b855 - -Function8b855: ; 8b855 - ld a, $28 - ld hl, wd002 - ld [hli], a - ld c, $28 - xor a -.asm_8b85e - inc a - ld [hli], a - dec c - jr nz, .asm_8b85e - ld a, $ff - ld [hl], a - ret -; 8b867 - -MenuDataHeader_0x8b867: ; 0x8b867 - db $40 ; flags - db 03, 01 ; start coords - db 13, 18 ; end coords - dw MenuData2_0x8b870 - db 1 ; default option -; 0x8b86f - - db 0 - -MenuData2_0x8b870: ; 0x8b870 - db $3c ; flags - db 5 ; items - db 3, 1 - dbw 0, wd002 - dba Function8b880 - dba Function8b88c - dba Function8b8c8 -; 8b880 - -Function8b880: ; 8b880 - ld h, d - ld l, e - ld de, MenuSelection - lb bc, PRINTNUM_LEADINGZEROS | 1, 2 - call PrintNum - ret -; 8b88c - -Function8b88c: ; 8b88c - call OpenSRAMBank4 - ld h, d - ld l, e - push hl - ld de, String_89116 - call Function8931b - call Function8932d - jr c, .asm_8b8a3 - ld hl, 0 - add hl, bc - ld d, h - ld e, l - -.asm_8b8a3 - pop hl - push hl - call PlaceString - pop hl - ld d, $0 - ld e, $6 - add hl, de - push hl - ld de, String_89116 - call Function8931b - call Function8934a - jr c, .asm_8b8c0 - ld hl, $0006 - add hl, bc - ld d, h - ld e, l - -.asm_8b8c0 - pop hl - call PlaceString - call CloseSRAM - ret -; 8b8c8 - -Function8b8c8: ; 8b8c8 - hlcoord 0, 14 - ld b, $2 - ld c, $12 - call TextBox - ld a, [wd033] - ld b, 0 - ld c, a - ld hl, Unknown_8b903 - add hl, bc - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - ld d, h - ld e, l - hlcoord 1, 16 - call PlaceString - hlcoord 0, 13 - ld a, $f - ld [hl], a - hlcoord 19, 13 - ld a, $11 - ld [hl], a - ld a, [wMenuScrollPosition] - cp $24 - ret c - hlcoord 0, 13 - ld c, $12 - call Function8b732 - ret -; 8b903 - -Unknown_8b903: ; 8b903 - dw String_8b90b - dw String_8b919 - dw String_8b92a - dw String_8b938 - -String_8b90b: db "めいしを えらんでください@" ; Please select a noun. -String_8b919: db "どの めいしと いれかえますか?@" ; OK to swap with any noun? -String_8b92a: db "あいてを えらんでください@" ; Please select an opponent. -String_8b938: db "いれる ところを えらんでください@" ; Please select a location. -; 8b94a - -Function8b94a: ; 8b94a - ld [wd033], a - xor a - ld [wMenuScrollPosition], a - ld [wd032], a - ld [wd0e3], a - ld [wd031], a - ld a, $1 - ld [wd030], a - ret -; 8b960 - - -Function8b960: ; 8b960 (22:7960) - ld hl, MenuDataHeader_0x8b9ac - call LoadMenuDataHeader - call Function8b9e9 - jr c, .asm_8b97a - hlcoord 11, 0 - ld b, $6 - ld c, $7 - call Function8b703 - ld hl, MenuDataHeader_0x8b9b1 - jr .asm_8b987 -.asm_8b97a - hlcoord 11, 0 - ld b, $a - ld c, $7 - call Function8b703 - ld hl, MenuDataHeader_0x8b9ca -.asm_8b987 - ld a, $1 - call Function89d5e - ld hl, Function8b9ab - call Function89d85 - call ExitMenu - jr c, .asm_8b99c - call Function8b99f - jr nz, .asm_8b99d -.asm_8b99c - xor a -.asm_8b99d - ld c, a - ret - -Function8b99f: ; 8b99f (22:799f) - ld hl, wd002 - dec a - ld c, a - ld b, $0 - add hl, bc - ld a, [hl] - cp $ff - ret -; 8b9ab (22:79ab) - -Function8b9ab: ; 8b9ab - ret -; 8b9ac - -MenuDataHeader_0x8b9ac: ; 0x8b9ac - db $40 ; flags - db 00, 11 ; start coords - db 11, 19 ; end coords - -MenuDataHeader_0x8b9b1: ; 0x8b9b1 - db $40 ; flags - db 00, 11 ; start coords - db 07, 19 ; end coords - dw MenuData2_0x8b9b9 - db 1 ; default option -; 0x8b9b9 - -MenuData2_0x8b9b9: ; 0x8b9b9 - db $a0 ; flags - db 3 ; items - db "へんしゅう@" ; EDIT - db "いれかえ@" ; REPLACE - db "やめる@" ; QUIT -; 0x8b9ca - -MenuDataHeader_0x8b9ca: ; 0x8b9ca - db $40 ; flags - db 00, 11 ; start coords - db 11, 19 ; end coords - dw MenuData2_0x8b9d2 - db 1 ; default option -; 0x8b9d2 - -MenuData2_0x8b9d2: ; 0x8b9d2 - db $a0 ; flags - db 5 ; items - db "みる@" ; VIEW - db "へんしゅう@" ; EDIT - db "いれかえ@" ; REPLACE - db "けす@" ; ERASE - db "やめる@" ; QUIT -; 0x8b9e9 - -Function8b9e9: ; 8b9e9 (22:79e9) - call OpenSRAMBank4 - call Function8931b - call Function8932d - jr nc, .asm_8b9f6 - jr .asm_8b9ff -.asm_8b9f6 - ld hl, $11 - add hl, bc - call Function89b45 - jr c, .asm_8ba08 -.asm_8b9ff - call Function892b4 - and a - ld de, Unknown_8ba1c - jr .asm_8ba0c -.asm_8ba08 - ld de, Unknown_8ba1f - scf -.asm_8ba0c - push af - ld hl, wd002 -.asm_8ba10 - ld a, [de] - inc de - ld [hli], a - cp $ff - jr nz, .asm_8ba10 - call CloseSRAM - pop af - ret -; 8ba1c (22:7a1c) - -Unknown_8ba1c: ; 8b1ac - db 2, 4, -1 - -Unknown_8ba1f: ; 8ba1f - db 1, 2, 4, 3, -1 -; 8ba24 diff --git a/misc/mobile_40.asm b/misc/mobile_40.asm deleted file mode 100644 index fa6a39fdf..000000000 --- a/misc/mobile_40.asm +++ /dev/null @@ -1,8156 +0,0 @@ -Function100000: ; 100000 -; d: 1 or 2 -; e: bank -; bc: addr - ld a, [rSVBK] - push af - ld a, 1 - ld [rSVBK], a - - call Function100022 - call Function1000ba - call Function100675 - call Function100057 - call Function10016f - call Function100276 - - push bc - call Function100301 - pop bc - - pop af - ld [rSVBK], a - ret -; 100022 - -Function100022: ; 100022 - push de - push bc - call SetRAMStateForMobile - pop bc - pop de - ld a, d - ld [wcd21], a - ld a, e - ld [wcd22], a - ld a, c - ld [wcd23], a - ld a, b - ld [wcd24], a - callba Function10127e - callba MobileFunc_106462 - callba Function106464 ; load broken gfx - callba Function11615a ; init RAM - ld hl, VramState - set 1, [hl] - ret -; 100057 - -Function100057: ; 100057 - call DisableMobile - call ReturnToMapFromSubmenu - ld hl, VramState - res 1, [hl] - ret -; 100063 - -SetRAMStateForMobile: ; 100063 - xor a - ld hl, BGMapBuffer - ld bc, $65 - call ByteFill - xor a - ld hl, wc300 - ld bc, $100 - call ByteFill - ld a, [rIE] - ld [BGMapBuffer], a - xor a - ld [hMapAnims], a - ld [hLCDCPointer], a - ret -; 100082 - -EnableMobile: ; 100082 - xor a - ld hl, OverworldMap - ld bc, OverworldMapEnd - OverworldMap - call ByteFill - - di - call DoubleSpeed - xor a - ld [rIF], a - ld a, 1 << VBLANK + 1 << LCD_STAT + 1 << TIMER + 1 << SERIAL - ld [rIE], a - xor a - ld [hMapAnims], a - ld [hLCDCPointer], a - ld a, $01 - ld [hMobileReceive], a - ld [hMobile], a - ei - - ret -; 0x1000a4 - -DisableMobile: ; 1000a4 - di - xor a - ld [hMobileReceive], a - ld [hMobile], a - xor a - ld [hVBlank], a - call NormalSpeed - xor a - ld [rIF], a - ld a, [BGMapBuffer] - ld [rIE], a - ei - ret -; 1000ba - -Function1000ba: ; 1000ba -.loop - ; call [wcd22]:([wcd23][wcd24] + [wMobileCommsJumptableIndex]) - ld hl, wcd23 - ld a, [hli] - ld h, [hl] - ld l, a - ld a, [wMobileCommsJumptableIndex] - ld e, a - ld d, 0 - add hl, de - add hl, de - ld a, [wcd22] - call GetFarHalfword - ld a, [wcd22] - rst FarCall - - call Function1000e8 - call Function1000fa - call Function100144 - call Function100163 - ld a, [wcd2b] - and a - jr z, .loop - call DelayFrame - ret -; 1000e8 - -Function1000e8: ; 1000e8 - ld hl, wcd29 - bit 7, [hl] - ret z - callba Function115dd3 - ld hl, wcd29 - set 6, [hl] - ret -; 1000fa - -Function1000fa: ; 1000fa - ld a, [wc30d] - and a - ret z - ld hl, wcd29 - bit 4, [hl] - ret z - ld a, [wcd2b] - and a - jr nz, .asm_100117 - callba Function11619d - ld hl, wcd29 - set 6, [hl] - ret - -.asm_100117 - di - xor a - ld [rIF], a - ld a, [rIE] - and $13 - ld [rIE], a - xor a - ld [hMobileReceive], a - ld [hMobile], a - ei - - ld a, [wLinkMode] - push af - xor a - ld [wLinkMode], a - ld a, $04 - ld [wc314 + 5], a - callba Function11619d - ld hl, wcd29 - set 6, [hl] - pop af - ld [wLinkMode], a - ret -; 100144 - -Function100144: ; 100144 - ld hl, wcd29 - bit 5, [hl] - jr z, .asm_100155 - res 5, [hl] - res 2, [hl] - res 6, [hl] - call Function100320 - ret - -.asm_100155 - bit 2, [hl] - ret z - res 2, [hl] - res 6, [hl] - callba HDMATransferTileMapToWRAMBank3 - ret -; 100163 - -Function100163: ; 100163 - ld hl, wcd29 - bit 6, [hl] - ret z - res 6, [hl] - call DelayFrame - ret -; 10016f - -Function10016f: ; 10016f - ld a, [wcd2b] - cp $01 - ret z - cp $02 - ret z - cp $ff - jp z, .asm_1001f5 - cp $fe - jr z, .asm_1001c4 - cp $f5 - jr z, .asm_1001e7 - cp $f6 - jr z, .asm_1001b6 - cp $fa - jp z, .asm_1001bd - cp $f7 - jp z, .asm_1001ee - cp $f4 - jr z, .asm_1001d2 - cp $f3 - jr z, .asm_1001cb - cp $f1 - jr z, .asm_1001c4 - cp $f2 - jr z, .asm_1001c4 - cp $fc - jr z, .asm_1001e6 - cp $fb - jr z, .asm_1001af - cp $f8 - ret z - ret ; ???????????????????????????? - -.asm_1001af - ld a, $d7 - ld de, 0 - jr .asm_1001d7 - -.asm_1001b6 - ld a, $d5 - ld de, 0 - jr .asm_1001d7 - -.asm_1001bd - ld a, $d6 - ld de, 0 - jr .asm_1001d7 - -.asm_1001c4 - ld a, $d2 - ld de, 2 - jr .asm_1001d7 - -.asm_1001cb - ld a, $d1 - ld de, 1 - jr .asm_1001d7 - -.asm_1001d2 - ld a, $d0 - ld de, 0 - -.asm_1001d7 - ld [wc300], a - ld a, d - ld [wc302], a - ld a, e - ld [wc301], a - call Function10020b - ret - -.asm_1001e6 - ret - -.asm_1001e7 - ld de, String10025e - call Function100232 - ret - -.asm_1001ee - ld de, String10024d - call Function100232 - ret - -.asm_1001f5 - ld a, [wcd2c] - ld [wc300], a - ld a, [wcd2d] - ld [wc302], a - ld a, [wcd2d] - ld [wc301], a - call Function10020b - ret -; 10020b - -Function10020b: ; 10020b - xor a - ld [wc303], a - callba FadeOutPalettes - callba Function106464 - call HideSprites - call DelayFrame - - ld a, [rSVBK] - push af - ld a, $01 - ld [rSVBK], a - - callba DisplayMobileError - - pop af - ld [rSVBK], a - ret -; 100232 - -Function100232: ; 100232 - push de - callba Function106464 - call Function3f20 - call UpdateSprites - hlcoord 1, 2 - pop de - call PlaceString - call Function100320 - call JoyWaitAorB - ret -; 10024d - -String10024d: ; 10024d - db "つうしんを キャンセル しました@" -; 10025e - -String10025e: ; 10025e - db "おともだちと えらんだ へやが" - next "ちがうようです@" -; 100276 - -Function100276: ; 100276 - ld a, [wcd2b] - cp $01 - jr z, .asm_10029f - cp $02 - jr z, .asm_100296 - cp $f5 - jr z, .asm_1002a5 - cp $f6 - jr z, .asm_1002a5 - cp $f7 - jr z, .asm_100293 - cp $f8 - jr z, .asm_1002b1 - jr .asm_1002c0 - -.asm_100293 - ld c, $02 - ret - -.asm_100296 - callba Script_reloadmappart - ld c, $04 - ret - -.asm_10029f - call Function1002dc - ld c, 0 - ret - -.asm_1002a5 - callba Script_reloadmappart - call Function1002ed - ld c, $03 - ret - -.asm_1002b1 - call Function1002c9 - call Function1002dc - ld de, String10024d - call Function100232 - ld c, $02 - ret - -.asm_1002c0 - call Function1002c9 - call Function1002dc - ld c, $01 - ret -; 1002c9 - -Function1002c9: ; 1002c9 - ld hl, wcd2a - bit 0, [hl] - ret z - callba CleanUpBattleRAM - callba LoadPokemonData - ret -; 1002dc - -Function1002dc: ; 1002dc - ld a, MAPSETUP_LINKRETURN - ld [hMapEntryMethod], a - callba RunMapSetupScript - xor a - ld [hMapEntryMethod], a - call LoadStandardFont - ret -; 1002ed - -Function1002ed: ; 1002ed - callba LoadOW_BGPal7 - callba ApplyPals - ld a, $01 - ld [hCGBPalUpdate], a - call DelayFrame - ret -; 100301 - -Function100301: ; 100301 - ld hl, wcd2a - bit 1, [hl] - ret z - callba Function106464 - callba Function10202c - callba Function115dd3 - call Function100320 - call JoyWaitAorB - ret -; 100320 - -Function100320: ; 100320 - callba Mobile_ReloadMapPart - ret -; 100327 - -Function100327: ; 100327 - callba HDMATransferTileMapToWRAMBank3 - ret -; 100327 - - -Function10032e: ; 10032e - call Function10034d - ld e, a - ret nc - ld [wcd2b], a - ret -; 100337 - -Function100337: ; 100337 - call Function10032e - ret c - ld a, [wc821] - bit 4, a - jr z, .asm_100345 - ld a, e - and a - ret - -.asm_100345 - ld a, $f9 - ld e, a - ld [wcd2b], a - scf - ret -; 10034d - -Function10034d: ; 10034d - ld a, [wc821] - bit 1, a - jr nz, .asm_10036a - bit 2, a - jr nz, .asm_10037e - bit 3, a - jr nz, .asm_100366 - bit 0, a - jr nz, .asm_100364 - ld a, $01 - and a - ret - -.asm_100364 - xor a - ret - -.asm_100366 - ld a, $02 - and a - ret - -.asm_10036a - ld a, 0 - call Function3e32 - ld [wcd2c], a - ld a, h - ld [wcd2d], a - ld a, l - ld [wcd2e], a - ld a, $ff - scf - ret - -.asm_10037e - ld a, $fe - scf - ret -; 100382 - -Function100382: ; 100382 - ld a, [wcd27] - ld hl, Jumptable_10044e - rst JumpTable - ret -; 10038a - -Function10038a: ; 10038a - ld hl, wccb4 - ld a, $2e - call Function3e32 - ret -; 100393 - -Function100393: ; 100393 - ld hl, wcc60 - ld a, $3a - call Function3e32 - ret -; 10039c - -Function10039c: ; 10039c - ld hl, wcc60 - ld de, w3_d000 - ld bc, $54 - ld a, $03 - call FarCopyWRAM - ret -; 1003ab - -Function1003ab: ; 1003ab - ld hl, w3_d000 - ld de, wcc60 - ld bc, $54 - ld a, $03 - call FarCopyWRAM - ret -; 1003ba - -Function1003ba: ; 1003ba - ld hl, wccb4 - ld de, w3_d080 - ld bc, $54 - ld a, $03 - call FarCopyWRAM - ret -; 1003c9 - -Function1003c9: ; 1003c9 - ld hl, w3_d080 - ld de, wccb4 - ld bc, $54 - ld a, $03 - call FarCopyWRAM - ret -; 1003d8 - -Function1003d8: ; 1003d8 - ld hl, wccb4 - ld a, [hli] - ld c, a - ld b, 0 - push hl - add hl, bc - ld a, [BGMapPalBuffer] - ld [hl], a - pop hl - inc bc - call Function10043a - add hl, bc - ld [hl], e - inc hl - ld [hl], d - ld a, c - add $02 - ld [wccb4], a - ret -; 1003f5 - -Function1003f5: ; 1003f5 - ld a, [wcc60] - sub $03 - ld [wcc60], a - ld a, [wccb4] - sub $03 - ld [wccb4], a - ret -; 100406 - -Function100406: ; 100406 - ld a, [wcc60] - sub $02 - ld c, a - ld b, 0 - ld hl, wcc61 - call Function10043a - add hl, bc - ld a, [hli] - cp e - jr nz, .asm_100426 - ld a, [hld] - cp d - jr nz, .asm_100426 - dec hl - ld a, [BGMapPalBuffer] - cp [hl] - jr nz, .asm_10042d - xor a - ret - -.asm_100426 - ld a, $f4 - ld [wcd2b], a - jr .asm_100432 - -.asm_10042d - ld a, $f3 - ld [wcd2b], a - -.asm_100432 - push hl - ld hl, wcd7c - inc [hl] - pop hl - scf - ret -; 10043a - -Function10043a: ; 10043a - push hl - push bc - ld de, 0 -.asm_10043f - ld a, [hli] - add e - ld e, a - ld a, d - adc 0 - ld d, a - dec bc - ld a, b - or c - jr nz, .asm_10043f - pop bc - pop hl - ret -; 10044e - - -Jumptable_10044e: ; 10044e (40:444e) - dw Function10046a - dw Function10047c - dw Function100493 - dw Function1004ba - dw Function1004f4 - dw Function1004ce - dw Function1004de - dw Function1004a4 - dw Function100495 - dw Function1004ce - dw Function1004de - dw Function1004e9 - dw Function1004f4 - dw Function1004a4 - -Function10046a: ; 10046a - ld hl, BGMapPalBuffer - inc [hl] - call Function1003d8 - call Function1003ba - ld a, [wcd27] - inc a - ld [wcd27], a - ret -; 10047c - -Function10047c: ; 10047c - call Function100337 - ret c - ret z - cp $02 - jr z, .asm_100487 - jr .asm_10048d - -.asm_100487 - ld a, $08 - ld [wcd27], a - ret - -.asm_10048d - ld a, $02 - ld [wcd27], a - ret -; 100493 - -Function100493: ; 100493 - jr asm_100497 - -Function100495: ; 100495 - jr asm_100497 - -asm_100497 - call Function100337 - ret c - ret z - ld a, [wcd27] - inc a - ld [wcd27], a - ret -; 1004a4 - -Function1004a4: ; 1004a4 - call Function100406 - jr c, .asm_1004b8 - call Function1003c9 - call Function1003f5 - ld a, [wcd27] - set 7, a - ld [wcd27], a - ret - -.asm_1004b8 - scf - ret -; 1004ba - -Function1004ba: ; 1004ba - call Function10038a - and a - jr nz, .asm_1004c8 - ld a, [wcd27] - inc a - ld [wcd27], a - ret - -.asm_1004c8 - ld a, $08 - ld [wcd27], a - ret -; 1004ce - -Function1004ce: ; 1004ce - call Function100337 - ret c - ret z - cp $02 - ret nz - ld a, [wcd27] - inc a - ld [wcd27], a - ret -; 1004de - -Function1004de: ; 1004de - call Function100393 - ld a, [wcd27] - inc a - ld [wcd27], a - ret -; 1004e9 - -Function1004e9: ; 1004e9 - call Function10038a - ld a, [wcd27] - inc a - ld [wcd27], a - ret -; 1004f4 - -Function1004f4: ; 1004f4 - call Function100337 - ret c - ret z - ld a, [wcd27] - inc a - ld [wcd27], a - call Function10039c - ret -; 100504 - -Function100504: ; 100504 - push de - call Function3f20 - call UpdateSprites - pop de - hlcoord 4, 2 - call PlaceString - ret -; 100513 - -Function100513: ; 100513 - call Function3f7c - call PlaceVerticalMenuItems - call InitVerticalMenuCursor - ld hl, w2DMenuFlags1 - set 7, [hl] - ret -; 100522 - -Function100522: ; 100522 - ld a, [wcd28] - ld hl, Jumptable_10052a - rst JumpTable - ret -; 10052a - -Jumptable_10052a: ; 10052a - dw Function100534 - dw Function100545 - dw Function100545 - dw Function100545 - dw Function10054d -; 100534 - -Function100534: ; 100534 - call Function100513 - call UpdateSprites - call ApplyTilemap - ld a, [wcd28] - inc a - ld [wcd28], a - ret -; 100545 - -Function100545: ; 100545 - ld a, [wcd28] - inc a - ld [wcd28], a - ret -; 10054d - -Function10054d: ; 10054d - callba MobileMenuJoypad - ld a, c - ld hl, wMenuJoypadFilter - and [hl] - ret z - call MenuClickSound - bit 0, a - jr nz, .asm_100565 - bit 1, a - jr nz, .asm_10056f - ret - -.asm_100565 - ld a, [wcd28] - set 7, a - ld [wcd28], a - and a - ret - -.asm_10056f - ld a, [wcd28] - set 7, a - ld [wcd28], a - scf - ret -; 100579 - -Function100579: ; 100579 - ld a, [wcd26] - ld hl, Jumptable_100581 - rst JumpTable - ret -; 100581 - -Jumptable_100581: ; 100581 - dw Function100585 - dw Function100597 -; 100585 - -Function100585: ; 100585 - ld hl, MenuDataHeader_1005b2 - call LoadMenuDataHeader - ld a, 0 - ld [wcd28], a - ld a, [wcd26] - inc a - ld [wcd26], a - -Function100597: ; 100597 - call Function100522 - ld a, [wcd28] - bit 7, a - ret z - jr nc, .asm_1005a6 - xor a - ld [wMenuCursorY], a - -.asm_1005a6 - call ExitMenu - ld a, [wcd26] - set 7, a - ld [wcd26], a - ret -; 1005b2 - -MenuDataHeader_1005b2: ; 1005b2 - db $40 ; flags - db 6, 14 - db 10, 19 - dw MenuData2_1005ba - db 1 ; default option - -MenuData2_1005ba: - db $c0 ; flags - db 2 - db "はい@" - db "いいえ@" -; 1005c3 - -Function1005c3: ; 1005c3 - ld a, [wcd26] - ld hl, Jumptable_1005cb - rst JumpTable - ret -; 1005cb - -Jumptable_1005cb: ; 1005cb - dw Function1005cf - dw Function1005e1 -; 1005cf - -Function1005cf: ; 1005cf - ld hl, MenuDataHeader_1005fc - call LoadMenuDataHeader - ld a, 0 - ld [wcd28], a - ld a, [wcd26] - inc a - ld [wcd26], a - -Function1005e1: ; 1005e1 - call Function100522 - ld a, [wcd28] - bit 7, a - ret z - jr nc, .asm_1005f0 - xor a - ld [wMenuCursorY], a -.asm_1005f0 - call ExitMenu - ld a, [wcd26] - set 7, a - ld [wcd26], a - ret -; 1005fc - -MenuDataHeader_1005fc: ; 1005fc - db $40 ; flags - db 6, 14 - db 10, 19 - dw MenuData2_100604 - db 1 ; default option - -MenuData2_100604: ; 100604 - db $c0 ; flags - db 2 - db "かける@" - db "まつ@" -; 10060d - -Mobile_CommunicationStandby: ; 10060d - hlcoord 3, 10 - ld b, 1 - ld c, 11 - call Function3eea - ld de, .String - hlcoord 4, 11 - call PlaceString - ret -; 100621 - -.String: ; 100621 - db "つうしんたいきちゅう!@" -; 10062d - -AdvanceMobileInactivityTimerAndCheckExpired: ; 10062d - push bc - call IncrementMobileInactivityTimerByCFrames - pop bc - ld a, [wMobileInactivityTimerMinutes] - cp b - jr nc, .timed_out - and a - ret - -.timed_out - ld a, $fa - ld [wcd2b], a - scf - ret -; 100641 - -StartMobileInactivityTimer: ; 100641 - xor a - ld [wMobileInactivityTimerMinutes], a - ld [wMobileInactivityTimerSeconds], a - ld [wMobileInactivityTimerFrames], a - ret -; 10064c - -IncrementMobileInactivityTimerBy1Frame: ; 10064c - ld c, 1 -IncrementMobileInactivityTimerByCFrames: ; 10064e - ld hl, wMobileInactivityTimerFrames ; timer? - ld a, [hl] - add c - cp 60 - jr c, .seconds - xor a - -.seconds - ld [hld], a - ret c - ld a, [hl] - inc a - cp 60 - jr c, .minutes - xor a - -.minutes - ld [hld], a - ret c - inc [hl] - ret -; 100665 - -Function100665: ; 100665 - call UpdateTime - ld hl, wcd36 - ld a, [hHours] - ld [hli], a - ld a, [hMinutes] - ld [hli], a - ld a, [hSeconds] - ld [hl], a - ret -; 100675 - -Function100675: ; 100675 - ld hl, wcd2a - bit 2, [hl] - set 2, [hl] - ret nz - call Function1006d3 - ret -; 100681 - -Function100681: ; 100681 - push hl - ld hl, wcd2a - bit 2, [hl] - ld hl, wcd2a - set 2, [hl] - pop hl - jr nz, .asm_100694 - push hl - call Function1006d3 - pop hl -.asm_100694 - ld de, wcd32 - -Function100697: ; 100697 - ld a, [de] - and a - jr nz, .asm_1006bb - inc de - push de - call .asm_1006b4 - ld de, String1006c2 - call PlaceString - ld h, b - ld l, c - pop de - inc de - call .asm_1006b4 - ld de, String1006c6 - call PlaceString - ret - -.asm_1006b4 - lb bc, PRINTNUM_LEADINGZEROS | 1, 2 - call PrintNum - ret - -.asm_1006bb - ld de, String1006ca - call PlaceString - ret -; 1006c2 - -String1006c2: ; 1006c2 - db "ふん @" -String1006c6: ; 1006c6 - db "びょう@" -String1006ca: ; 1006ca - db "1じかんいじょう@" -; 1006d3 - -Function1006d3: ; 1006d3 - call UpdateTime - ld de, wcd34 - ld hl, wcd38 - -Function1006dc: ; 1006dc - ld a, [hld] - ld c, a - ld a, [hSeconds] - sub c - jr nc, .asm_1006e5 - add $3c - -.asm_1006e5 - ld [de], a - dec de - ld a, [hld] - ld c, a - ld a, [hMinutes] - sbc c - jr nc, .asm_1006f0 - add $3c - -.asm_1006f0 - ld [de], a - dec de - ld a, [hl] - ld c, a - ld a, [hHours] - sbc c - jr nc, .asm_1006fb - add $18 - -.asm_1006fb - ld [de], a - ret -; 1006fd - -Function1006fd: ; 1006fd - ld a, $04 - ld hl, $a800 - call GetSRAMBank - xor a - ld [hli], a - ld [hli], a - ld [hli], a - call CloseSRAM - ret -; 10070d - -Function10070d: ; 10070d - ld a, $04 - ld hl, $a800 - call GetSRAMBank - xor a - ld [hli], a - ld a, $0a - ld [hli], a - xor a - ld [hli], a - call CloseSRAM - ret -; 100720 - -Function100720: ; 100720 - xor a - ld [wcd6a], a - call UpdateTime - ld a, [hHours] - ld [wcd72], a - ld a, [hMinutes] - ld [wcd73], a - ld a, [hSeconds] - ld [wcd74], a - ld a, $04 - ld hl, $a800 - call GetSRAMBank - ld a, [hli] - ld [wcd6c], a - ld a, [hli] - ld [wcd6d], a - ld a, [hli] - ld [wcd6e], a - call CloseSRAM - ld a, [wcd6d] - ld [wcd6b], a - ret -; 100754 - -Function100754: ; 100754 - call UpdateTime - ld a, [hHours] - ld [wcd72], a - ld a, [hMinutes] - ld [wcd73], a - ld a, [hSeconds] - ld [wcd74], a - ld a, [wcd6d] - ld [wcd6b], a - ld hl, wcd2a - res 6, [hl] - ret -; 100772 - -Function100772: ; 100772 - push de - ld hl, wcd6c - ld a, [de] - cp [hl] - jr c, .asm_10079a - jr nz, .asm_10078c - inc hl - inc de - ld a, [de] - cp [hl] - jr c, .asm_10079a - jr nz, .asm_10078c - inc hl - inc de - ld a, [de] - cp [hl] - jr c, .asm_10079a - jr z, .asm_10079a - -.asm_10078c - pop hl - ld a, [hli] - ld [wcd6c], a - ld a, [hli] - ld [wcd6d], a - ld a, [hli] - ld [wcd6e], a - ret - -.asm_10079a - pop de - ret -; 10079c - - -Function10079c: ; 10079c - ld a, [wcd21] - cp $01 - jr nz, .dont_quit - ld hl, wcd2a - bit 5, [hl] - jr nz, .dont_quit - ld hl, wcd2a - bit 6, [hl] - jr nz, .dont_quit - ld a, [wcd6a] - add c - cp 60 - jr nc, .overflow - ld [wcd6a], a - and a - ret - -.overflow - sub 60 - ld [wcd6a], a - ld d, b - push de - call Function1007f6 - pop de - jr c, .quit - ld a, c - and a - jr nz, .quit - ld a, b - cp 10 - jr nc, .quit - ld a, d - and a - ret z - ld a, [wcd6b] - cp b - ret z - ld a, b - ld [wcd6b], a - call Function1008e0 - and a - ret - -.quit - call Function1008e0 - ld hl, wcd2a - set 4, [hl] - ld a, $fc - ld [wcd2b], a - scf - ret - -.dont_quit - and a - ret -; 1007f6 - -Function1007f6: ; 1007f6 - call UpdateTime - ld hl, wcd74 - ld de, wcd71 - call Function1006dc - ld a, $04 - call GetSRAMBank - ld hl, $a802 - call Function100826 - call CloseSRAM - ld hl, wcd6e - call Function100826 - ld a, [hHours] - ld [wcd72], a - ld a, [hMinutes] - ld [wcd73], a - ld a, [hSeconds] - ld [wcd74], a - ret -; 100826 - -Function100826: ; 100826 - ld a, [wcd71] - add [hl] - sub $3c - jr nc, .asm_100830 - add $3c - -.asm_100830 - ld [hld], a - ccf - ld a, [BGMapBufferPtrs] - adc [hl] - sub $3c - jr nc, .asm_10083c - add $3c - -.asm_10083c - ld [hld], a - ld b, a - ccf - ld a, [wcd6f] - adc [hl] - ld [hl], a - ld c, a - ret -; 100846 - -Function100846: ; 100846 - ld hl, wcd2a - bit 5, [hl] - jr nz, .asm_10087c - ld a, [wcd6e] - ld c, a - ld a, 0 - sub c - jr nc, .asm_100858 - add $3c - -.asm_100858 - ld [StringBuffer2 + 2], a - ld a, [wcd6d] - ld c, a - ld a, $0a - sbc c - ld [StringBuffer2 + 1], a - xor a - ld [StringBuffer2], a - ld de, String_10088e - hlcoord 1, 14 - call PlaceString - ld de, StringBuffer2 - hlcoord 4, 16 - call Function100697 - ret - -.asm_10087c - ld de, String_10088e - hlcoord 1, 14 - call PlaceString - ld h, b - ld l, c - ld de, String_10089f - call PlaceString - ret -; 10088e - -String_10088e: ; 10088e - db "モバイルたいせん できる" - next "じかん@" -; 10089f - -String_10089f: ; 10089f - db " むせいげん@" -; 1008a6 - -Function1008a6: ; 1008a6 - ld a, $04 - ld hl, $a800 - call GetSRAMBank - ld a, [hli] - ld [StringBuffer2], a - ld a, [hli] - ld [StringBuffer2 + 1], a - ld a, [hli] - ld [StringBuffer2 + 2], a - call CloseSRAM - ld a, [StringBuffer2 + 2] - ld b, a - ld a, 0 - sub b - jr nc, .asm_1008c8 - add $3c - -.asm_1008c8 - ld b, a - ld a, [StringBuffer2 + 1] - ld c, a - ld a, $0a - sbc c - ld c, a - jr c, .asm_1008da - ld a, [StringBuffer2] - and a - jr nz, .asm_1008da - ret - -.asm_1008da - call Function10070d - ld c, 0 - ret -; 1008e0 - - -Function1008e0: ; 1008e0 - ld a, [hBGMapMode] - ld b, a - ld a, [hVBlank] - ld c, a - push bc - xor a - ld [hBGMapMode], a - ld a, $03 - ld [hVBlank], a - call Function100970 - call Function100902 - call Function100989 - call DelayFrame - pop bc - ld a, c - ld [hVBlank], a - ld a, b - ld [hBGMapMode], a - ret -; 100902 - -Function100902: ; 100902 - hlcoord 3, 10 - ld b, $01 - ld c, $0b - call TextBox - ld a, [wcd6d] - ld c, a - ld a, $0a - sub c - ld [StringBuffer2], a - jr z, .asm_10093f - ld de, .string_100966 - hlcoord 4, 11 - call PlaceString - hlcoord 8, 11 - lb bc, 1, 2 - ld de, StringBuffer2 - call PrintNum - ld de, SFX_TWO_PC_BEEPS - call PlaySFX - callba ReloadMapPart - ld c, $3c - call DelayFrames - ret - -.asm_10093f - ld de, .string_10095a - hlcoord 4, 11 - call PlaceString - ld de, SFX_4_NOTE_DITTY - call PlaySFX - callba ReloadMapPart - ld c, 120 - call DelayFrames - ret -; 10095a - -.string_10095a ; 10095a - db "たいせん しゅうりょう@" -.string_100966 ; 100966 - db "のこり ふん", $e7, "@" -; 100970 - - -Function100970: ; 100970 - hlcoord 0, 0 - ld de, w3_dc00 - call Function1009a5 - hlcoord 0, 0, AttrMap - ld de, w3_dd68 - call Function1009a5 - call Function1009d2 - call Function1009ae - ret -; 100989 - -Function100989: ; 100989 - ld hl, w3_dc00 - decoord 0, 0 - call Function1009a5 - call Function1009ae - callba ReloadMapPart - ld hl, w3_dd68 - decoord 0, 0, AttrMap - call Function1009a5 - ret -; 1009a5 - -Function1009a5: ; 1009a5 - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT - ld a, $03 - call FarCopyWRAM - ret -; 1009ae - -Function1009ae: ; 1009ae - ld a, [rSVBK] - push af - ld a, $03 - ld [rSVBK], a - - ld hl, w3_d800 - decoord 0, 0, AttrMap - ld c, SCREEN_WIDTH - ld b, SCREEN_HEIGHT -.loop_row - push bc -.loop_col - ld a, [hli] - ld [de], a - inc de - dec c - jr nz, .loop_col - ld bc, BG_MAP_WIDTH - SCREEN_WIDTH - add hl, bc - pop bc - dec b - jr nz, .loop_row - - pop af - ld [rSVBK], a - ret -; 1009d2 - -Function1009d2: ; 1009d2 - ld a, [rSVBK] - push af - ld a, $03 - ld [rSVBK], a - - ld a, [rVBK] - push af - ld a, $01 - ld [rVBK], a - - ld hl, w3_d800 - debgcoord 0, 0 - lb bc, $03, $24 - call Get2bpp - - pop af - ld [rVBK], a - - pop af - ld [rSVBK], a - ret -; 1009f3 - -Function1009f3: ; 1009f3 - ld a, [hJoyDown] - and SELECT + A_BUTTON - cp SELECT + A_BUTTON - jr nz, .select_a - ld hl, wcd2a - set 4, [hl] - ld a, $f8 - ld [wcd2b], a - scf - ret - -.select_a - xor a - ret -; 100a09 - -_LinkBattleSendReceiveAction: ; 100a09 - call .StageForSend - ld [wd431], a - callba PlaceWaitingText - ld a, [wLinkMode] - cp LINK_MOBILE - jr nz, .not_mobile - - call .MobileBattle_SendReceiveAction - call Function100da5 - callba FinishBattleAnim - jr .done - -.not_mobile - call .LinkBattle_SendReceiveAction - -.done - ret -; 100a2e - -.StageForSend: ; 100a2e - ld a, [wPlayerAction] - and a - jr nz, .switch - ld a, [CurPlayerMove] - ld b, BATTLEACTION_E - cp STRUGGLE - jr z, .struggle - ld b, BATTLEACTION_D - cp $ff - jr z, .struggle - ld a, [CurMoveNum] - jr .use_move - -.switch - ld a, [CurPartyMon] - add BATTLEACTION_SWITCH1 - jr .use_move - -.struggle - ld a, b - -.use_move - and $0f - ret -; 100a53 - -.LinkBattle_SendReceiveAction: ; 100a53 - ld a, [wd431] - ld [wPlayerLinkAction], a - ld a, $ff - ld [wOtherPlayerLinkAction], a -.waiting - call LinkTransfer - call DelayFrame - ld a, [wOtherPlayerLinkAction] - inc a - jr z, .waiting - - ld b, 10 -.receive - call DelayFrame - call LinkTransfer - dec b - jr nz, .receive - - ld b, 10 -.acknowledge - call DelayFrame - call LinkDataReceived - dec b - jr nz, .acknowledge - - ld a, [wOtherPlayerLinkAction] - ld [wBattleAction], a - ret -; 100a87 - -.MobileBattle_SendReceiveAction: ; 100a87 - call Function100acf - call StartMobileInactivityTimer - ld a, 0 - ld [wcd27], a -.asm_100a92 - call DelayFrame - call GetJoypad - callba Function100382 - ld c, $01 - ld b, $03 - push bc - call AdvanceMobileInactivityTimerAndCheckExpired - pop bc - jr c, .asm_100ac7 - ld b, $01 - call Function10079c - jr c, .asm_100ac7 - call Function1009f3 - jr c, .asm_100ac7 - ld a, [wcd2b] - and a - jr nz, .asm_100ac7 - ld a, [wcd27] - bit 7, a - jr z, .asm_100a92 - call Function100ae7 - jr .asm_100ace - -.asm_100ac7 - ld a, $0f - ld [wd430], a - jr .asm_100ace - -.asm_100ace - ret -; 100acf - -Function100acf: ; 100acf - ld de, Unknown_100b0a - ld hl, wccb5 - ld a, [wd431] - ld [hli], a - ld c, $01 -.asm_100adb - ld a, [de] - inc de - ld [hli], a - inc c - and a - jr nz, .asm_100adb - ld a, c - ld [wccb4], a - ret -; 100ae7 - -Function100ae7: ; 100ae7 - ld de, Unknown_100b0a - ld hl, wcc62 -.asm_100aed - ld a, [de] - inc de - and a - jr z, .asm_100af8 - cp [hl] - jr nz, .asm_100aff - inc hl - jr .asm_100aed - -.asm_100af8 - ld a, [wcc61] - ld [wd430], a - ret - -.asm_100aff - ld a, $0f - ld [wd430], a - ld a, $f1 - ld [wcd2b], a - ret -; 100b0a - - -SECTION "tetsuji", ROMX - - charmap " ", $20 ; revert to ascii - -Unknown_100b0a: ; 100b0a - db "tetsuji", 0 -; 100b12 - - -SECTION "bank40_2", ROMX - -Function100b12: ; 100b12 - call Function100dd8 - ret c - ld hl, BattleMenuDataHeader - ld a, BANK(BattleMenuDataHeader) - ld de, LoadMenuDataHeader - call FarCall_de - ld a, BANK(BattleMenuDataHeader) - ld [wMenuData2_2DMenuItemStringsBank], a - ld a, [wBattleMenuCursorBuffer] - ld [wMenuCursorBuffer], a - call Function100e72 - call Function100b45 - callba InitPartyMenuBGPal7 - call Function100ed4 - ld a, [wMenuCursorBuffer] - ld [wBattleMenuCursorBuffer], a - call ExitMenu - ret -; 100b45 - -Function100b45: ; 100b45 - call Function100b7a -.loop - call Mobile_SetOverworldDelay - callba MobileMenuJoypad - push bc - callba HDMATransferTileMapToWRAMBank3 - call Function100e2d - pop bc - jr c, .asm_100b6b - ld a, [wMenuJoypadFilter] - and c - jr z, .loop - callba Mobile_GetMenuSelection - ret - -.asm_100b6b - ld a, [w2DMenuNumCols] - ld c, a - ld a, [w2DMenuNumRows] - call SimpleMultiply - ld [wMenuCursorBuffer], a - and a - ret -; 100b7a - -Function100b7a: ; 100b7a - ld hl, CopyMenuData2 - ld a, [wMenuData2_2DMenuItemStringsBank] - rst FarCall - callba Draw2DMenu - callba MobileTextBorder - call UpdateSprites - call ApplyTilemap - callba Init2DMenuCursorPosition - ld hl, w2DMenuFlags1 - set 7, [hl] - ret -; 100b9f - -MobileMoveSelectionScreen: ; 100b9f - xor a - ld [wMoveSwapBuffer], a - callba CheckPlayerHasUsableMoves - ret z - call Function100dd8 - jp c, xor_a_dec_a - call Function100e72 - call .GetMoveSelection - push af - callba InitPartyMenuBGPal7 - call Function100ed4 - pop af - ret -; 100bc2 - -.GetMoveSelection: ; 100bc2 - xor a - ld [hBGMapMode], a - call Function100c74 - call Function100c98 -.master_loop - callba MoveInfoBox -.loop - call Mobile_SetOverworldDelay - callba MobileMenuJoypad - push bc - callba HDMATransferTileMapToWRAMBank3 - call Function100e2d - pop bc - jr c, .b_button - ld a, [wMenuJoypadFilter] - and c - bit D_UP_F, a - jp nz, .d_up - bit D_DOWN_F, a - jp nz, .d_down - bit A_BUTTON_F, a - jr nz, .a_button - bit B_BUTTON_F, a - jr nz, .b_button - jr .loop - -.d_up - ld a, [wMenuCursorY] - and a - jp nz, .master_loop - ld a, [wNumMoves] - inc a - ld [wMenuCursorY], a - jp .master_loop - -.d_down - ld a, [wMenuCursorY] - ld b, a - ld a, [wNumMoves] - inc a - inc a - cp b - jp nz, .master_loop - ld a, $01 - ld [wMenuCursorY], a - jp .master_loop - -.b_button - ld a, [wMenuCursorY] - dec a - ld [CurMoveNum], a - ld a, $01 - and a - ret - -.a_button - ld a, [wMenuCursorY] - dec a - ld [CurMoveNum], a - ld a, [wMenuCursorY] - dec a - ld c, a - ld b, 0 - ld hl, BattleMonPP - add hl, bc - ld a, [hl] - and $3f - jr z, .no_pp_left - ld a, [PlayerDisableCount] - swap a - and $0f - dec a - cp c - jr z, .move_disabled - ld a, [wMenuCursorY] - dec a - ld c, a - ld b, 0 - ld hl, BattleMonMoves - add hl, bc - ld a, [hl] - ld [CurPlayerMove], a - xor a - ret - -.move_disabled - ld hl, BattleText_TheMoveIsDisabled - jr .print_text - -.no_pp_left - ld hl, BattleText_TheresNoPPLeftForThisMove - -.print_text - call StdBattleTextBox - call Call_LoadTempTileMapToTileMap - jp .GetMoveSelection -; 100c74 - -Function100c74: ; 100c74 - hlcoord 0, 8 - ld b, 8 - ld c, 8 - call TextBox - ld hl, BattleMonMoves - ld de, wListMoves_MoveIndicesBuffer - ld bc, NUM_MOVES - call CopyBytes - ld a, SCREEN_WIDTH * 2 - ld [Buffer1], a - hlcoord 2, 10 - predef ListMoves - ret -; 100c98 - -Function100c98: ; 100c98 - ld de, .attrs - call SetMenuAttributes - ld a, [wNumMoves] - inc a - ld [w2DMenuNumRows], a - ld a, [CurMoveNum] - inc a - ld [wMenuCursorY], a - ret -; 100cad - -.attrs ; 100cad - db 10, 1 - db 255, 1 - db $a0, $00 - dn 2, 0 - db D_UP | D_DOWN | A_BUTTON | B_BUTTON - -Mobile_PartyMenuSelect: ; 100cb5 - call Function100dd8 - ret c - ld hl, w2DMenuFlags1 - set 7, [hl] - res 6, [hl] -.loop - call Mobile_SetOverworldDelay - callba MobileMenuJoypad - push bc - callba PlaySpriteAnimations - callba HDMATransferTileMapToWRAMBank3 - call MobileComms_CheckInactivityTimer - pop bc - jr c, .done - ld a, [wMenuJoypadFilter] - and c - jr z, .loop - call PlaceHollowCursor - ld a, [PartyCount] - inc a - ld b, a - ld a, [wMenuCursorY] - cp b - jr z, .done - ld [wPartyMenuCursor], a - ld a, [hJoyLast] - ld b, a - bit 1, b - jr nz, .done - ld a, [wMenuCursorY] - 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 - -.done - ld de, SFX_READ_TEXT_2 - call PlaySFX - call WaitSFX - scf - ret -; 100d22 - -MobileBattleMonMenu: ; 100d22 - call Function100dd8 - ret c - call Function100d67 - ld hl, w2DMenuFlags1 - set 7, [hl] - res 6, [hl] -.asm_100d30 - call Mobile_SetOverworldDelay - callba MobileMenuJoypad - push bc - callba PlaySpriteAnimations - callba HDMATransferTileMapToWRAMBank3 - call MobileComms_CheckInactivityTimer - pop bc - jr c, .asm_100d54 - ld a, [wMenuJoypadFilter] - and c - jr nz, .asm_100d56 - jr .asm_100d30 - -.asm_100d54 - scf - ret - -.asm_100d56 - push af - ld de, SFX_READ_TEXT_2 - call PlaySFX - pop af - bit 1, a - jr z, .asm_100d65 - ret z - scf - ret - -.asm_100d65 - and a - ret -; 100d67 - -Function100d67: ; 100d67 - ld hl, .MenuDataHeader - call CopyMenuDataHeader - xor a - ld [hBGMapMode], a - call MenuBox - call UpdateSprites - call PlaceVerticalMenuItems - call WaitBGMap - call CopyMenuData2 - call InitVerticalMenuCursor - ld hl, w2DMenuFlags1 - set 6, [hl] - ret -; 100d88 - -.MenuDataHeader: ; 100d88 - db 0 ; flags - db 11, 11 ; start coords - db 17, 19 ; end coords - dw .MenuData2 - db 1 ; default option - -.MenuData2: ; 100d90 - db $c0 ; flags - db 3 - db "いれかえる@" ; TRADE - db "つよさをみる@" ; STATS - db "キャンセル@" ; CANCEL -; 100da5 - -Function100da5: ; 100da5 - ld hl, wcd2a - res 3, [hl] - ld hl, wcd29 - res 0, [hl] - ret -; 100db0 - -Function100db0: ; 100db0 - ld hl, wcd2a - bit 3, [hl] - jr nz, .asm_100dbe - ld hl, wcd2a - set 3, [hl] - scf - ret - -.asm_100dbe - xor a - ret -; 100dc0 - - - -Function100dc0: ; 100dc0 - ld a, [wLinkMode] - cp LINK_MOBILE - jr nz, .mobile - ld hl, wcd2a - bit 3, [hl] - jr z, .mobile - scf - ret - -.mobile - xor a - ret -; 100dd2 - -Mobile_SetOverworldDelay: ; 100dd2 - ld a, 30 - ld [OverworldDelay], a - ret -; 100dd8 - -Function100dd8: ; 100dd8 - ld c, $01 - ld b, $03 - callba AdvanceMobileInactivityTimerAndCheckExpired - jr c, .asm_100dfb - ld c, $3c - ld b, $01 - call Function10079c - jr c, .asm_100dfb - callba Function10032e - ld a, [wcd2b] - and a - jr nz, .asm_100dfb - xor a - ret - -.asm_100dfb - scf - ret -; 100dfd - -MobileComms_CheckInactivityTimer: ; 100dfd - ld a, [OverworldDelay] - ld c, a - ld a, 30 - sub c - ld c, a - ld b, 3 - push bc - callba AdvanceMobileInactivityTimerAndCheckExpired ; useless to farcall - pop bc - jr c, .quit - ld b, 1 - call Function10079c - jr c, .quit - call Function1009f3 - jr c, .quit - callba Function10032e ; useless to farcall - ld a, [wcd2b] - and a - jr nz, .quit - xor a - ret - -.quit - scf - ret -; 100e2d - -Function100e2d: ; 100e2d - ld a, [OverworldDelay] - ld c, a - ld a, 30 - sub c - ld c, a - ld b, 3 - push bc - callba AdvanceMobileInactivityTimerAndCheckExpired - pop bc - jr c, .asm_100e61 - ld b, 1 - call Function10079c - jr c, .asm_100e61 - call Function1009f3 - jr c, .asm_100e61 - callba Function10032e - ld a, [wcd2b] - and a - jr nz, .asm_100e61 - call Function100e63 - call Function100e84 - xor a - ret - -.asm_100e61 - scf - ret -; 100e63 - -Function100e63: ; 100e63 - ld a, e - cp $02 - ret nz - call Function100db0 - ret nc - ld de, SFX_ELEVATOR_END - call PlaySFX - ret -; 100e72 - -Function100e72: ; 100e72 - xor a - ld hl, wcd29 - bit 0, [hl] - jr z, .asm_100e7c - ld a, $0a - -.asm_100e7c - ld [wcd67], a - xor a - ld [wcd68], a - ret -; 100e84 - -Function100e84: ; 100e84 - ld a, [wcd67] - ld hl, Jumptable_100e8c - rst JumpTable - ret -; 100e8c - - -Jumptable_100e8c: ; 100e8c (40:4e8c) - dw Function100ea2 - dw Function100eae - dw Function100eb4 - dw Function100eae - dw Function100eb4 - dw Function100eae - dw Function100eb4 - dw Function100eae - dw Function100eb4 - dw Function100eae - dw Function100ec4 - - -Function100ea2: ; 100ea2 (40:4ea2) - call Function100dc0 - ret nc - ld hl, wcd29 - set 0, [hl] - call Function100ec5 - - -Function100eae: ; 100eae - scf - call Function100eca - jr asm_100eb8 - -Function100eb4: ; 100eb4 - and a - call Function100eca - -asm_100eb8 - ld hl, wcd68 - inc [hl] - ld a, [hl] - cp $02 - ret c - ld [hl], 0 - jr Function100ec5 - -Function100ec4: ; 100ec4 - ret - -Function100ec5 - ld hl, wcd67 - inc [hl] - ret -; 100eca - -Function100eca: ; 100eca - callba Mobile_InitPartyMenuBGPal7 - call Function100ed4 - ret -; 100ed4 - -Function100ed4: ; 100ed4 - callba ApplyPals - ld a, $01 - ld [hCGBPalUpdate], a - ret -; 100edf - -Function100edf: ; 100edf - ld hl, Unknown_100fc0 - ld c, 1 - jr asm_100f02 - -Function100ee6: ; 100ee6 - ld hl, Unknown_100fc0 - ld c, 2 - jr asm_100f02 - -Function100eed: ; 100eed - ld hl, Unknown_100feb - ld c, 1 - jr asm_100f02 - -Function100ef4: ; 100ef4 - ld hl, Unknown_100ff3 - ld c, 1 - jr asm_100f02 - -Function100efb: ; 100efb - ld hl, Unknown_10102c - ld c, 1 - jr asm_100f02 - -asm_100f02: - ld a, c - ld [StringBuffer2], a - ; someting that was previously stored in de gets backed up to here - ld a, e - ld [StringBuffer2 + 1], a - ld a, d - ld [StringBuffer2 + 2], a - ; empty this - xor a - ld [StringBuffer2 + 4], a - ld [StringBuffer2 + 5], a -.loop - ld a, [hl] - cp $ff - jr z, .done - ld [StringBuffer2 + 3], a ; bank - push hl - inc hl - ; addr 1 - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - ; size - ld a, [hli] - ld c, a - ld a, [hli] - ld b, a - ; addr 2 - ld a, [hli] - ld h, [hl] - ld l, a - call Function100f3d - ; next line - pop hl - ld de, 7 - add hl, de - jr .loop - -.done - ; recover the values into bc - ld a, [StringBuffer2 + 4] - ld c, a - ld a, [StringBuffer2 + 5] - ld b, a - ret -; 100f3d - -Function100f3d: ; 100f3d - ; parameter - ld a, [StringBuffer2] - cp $02 - jr z, .two - cp $01 - jr z, .one - cp $03 - jr z, .three - ret - -.three - ; what was once in de gets copied to hl, - ; modified by Function100f8d, and put back - ; into this backup - ld a, [StringBuffer2 + 1] - ld l, a - ld a, [StringBuffer2 + 2] - ld h, a - call Function100f8d - ld a, l - ld [StringBuffer2 + 1], a - ld a, h - ld [StringBuffer2 + 2], a - ret - -.two - ; hl gets backed up to de, then - ; do the same as in .three - ld d, h - ld e, l - ld a, [StringBuffer2 + 1] - ld l, a - ld a, [StringBuffer2 + 2] - ld h, a - call Function100f8d - ld a, l - ld [StringBuffer2 + 1], a - ld a, h - ld [StringBuffer2 + 2], a - ret - -.one - ; de gets copied to hl, then - ; load the backup into de, - ; finally run Function100f8d - ; and store the de result - ld h, d - ld l, e - ld a, [StringBuffer2 + 1] - ld e, a - ld a, [StringBuffer2 + 2] - ld d, a - call Function100f8d - ld a, e - ld [StringBuffer2 + 1], a - ld a, d - ld [StringBuffer2 + 2], a - ret -; 100f8d - -Function100f8d: ; 100f8d - push hl - ld a, [StringBuffer2 + 4] - ld l, a - ld a, [StringBuffer2 + 5] - ld h, a - add hl, bc - ld a, l - ld [StringBuffer2 + 4], a - ld a, h - ld [StringBuffer2 + 5], a - pop hl - ld a, [StringBuffer2 + 3] - bit 7, a - res 7, a - jr z, .sram - and a - jr nz, .far_wram - call CopyBytes - ret - -.far_wram - and $7f - call FarCopyWRAM - ret - -.sram - call GetSRAMBank - call CopyBytes - call CloseSRAM - ret -; 100fc0 - -Unknown_100fc0: ; 100fc0 - ; first byte: - ; Bit 7 set: Not SRAM - ; Lower 7 bits: Bank - ; Address, size (dw), address - dbwww $80, PlayerName, NAME_LENGTH, OTPlayerName - dbwww $80, PartyCount, 1 + PARTY_LENGTH + 1, OTPartyCount - dbwww $80, PlayerID, 2, OTPlayerID - dbwww $80, PartyMons, PARTYMON_STRUCT_LENGTH * PARTY_LENGTH, OTPartyMons - dbwww $80, PartyMonOT, NAME_LENGTH * PARTY_LENGTH, OTPartyMonOT - dbwww $80, PartyMonNicknames, PKMN_NAME_LENGTH * PARTY_LENGTH, OTPartyMonNicknames - db -1 - -Unknown_100feb: ; 100feb - dbwww $00, sPartyMail, MAIL_STRUCT_LENGTH * PARTY_LENGTH, NULL - db -1 - -Unknown_100ff3: ; 100ff3 - dbwww $80, wdc41, 1, NULL - dbwww $80, PlayerName, NAME_LENGTH, NULL - dbwww $80, PlayerName, NAME_LENGTH, NULL - dbwww $80, PlayerID, 2, NULL - dbwww $80, wSecretID, 2, NULL - dbwww $80, PlayerGender, 1, NULL - dbwww $04, $a603, 8, NULL - dbwww $04, $a007, PARTYMON_STRUCT_LENGTH, NULL - db -1 - -Unknown_10102c: ; 10102c - dbwww $80, OTPlayerName, NAME_LENGTH, NULL - dbwww $80, OTPlayerID, 2, NULL - dbwww $80, OTPartyMonNicknames, PKMN_NAME_LENGTH * PARTY_LENGTH, NULL - dbwww $80, OTPartyMonOT, NAME_LENGTH * PARTY_LENGTH, NULL - dbwww $80, OTPartyMons, PARTYMON_STRUCT_LENGTH * PARTY_LENGTH, NULL - db -1 -; 10104f - -Function101050: ; 101050 - call Function10107d - ld a, [OTPartyCount] -rept 2 ; ??? - ld hl, wc608 -endr - ld bc, wc7bb - wc608 - call Function1010de - ld hl, wc7bb - ld [hl], e - inc hl - ld [hl], d - ld a, $07 - call GetSRAMBank - ld hl, wc608 - ld de, $a001 - ld bc, wc7bd - wc608 - call CopyBytes - call CloseSRAM - ret -; 10107d - -Function10107d: ; 10107d - xor a - ld hl, wc608 - ld bc, wc7bd - wc608 - call ByteFill - ld hl, OTPlayerName - ld de, wc608 - ld bc, NAME_LENGTH - call CopyBytes - ld hl, wd271 - ld a, [hli] - ld [wc608 + 11], a - ld a, [hl] - ld [wc608 + 12], a - ld hl, OTPartyMonNicknames - ld de, wc608 + 13 - ld bc, NAME_LENGTH - call .CopyAllFromOT - ld hl, OTPartyMonOT - ld de, OTClassName + 1 - ld bc, NAME_LENGTH - call .CopyAllFromOT - ld hl, OTPartyMon1Species - ld de, $c699 - ld bc, PARTYMON_STRUCT_LENGTH - call .CopyAllFromOT - ld a, $50 - ld [wc7b9], a - ld a, $33 - ld [wc7ba], a - ret -; 1010cd - -.CopyAllFromOT: ; 1010cd - push hl - ld hl, 0 - ld a, [OTPartyCount] - call AddNTimes - ld b, h - ld c, l - pop hl - call CopyBytes - ret -; 1010de - -Function1010de: ; 1010de - push hl - push bc - ld de, 0 -.loop - ld a, [hli] - add e - ld e, a - ld a, d - adc 0 - ld d, a - dec bc - ld a, b - or c - jr nz, .loop - pop bc - pop hl - ret -; 1010f2 - -LoadSelectedPartiesForColosseum: ; 1010f2 - xor a - ld hl, StringBuffer2 - ld bc, 9 - call ByteFill - ld hl, wPlayerMonSelection - ld de, PartyCount - call .CopyThreeSpecies - ld hl, wPlayerMonSelection - ld de, PartyMon1Species - call .CopyPartyStruct - ld hl, wPlayerMonSelection - ld de, PartyMonOT - call .CopyName - ld hl, wPlayerMonSelection - ld de, PartyMonNicknames - call .CopyName - ld hl, wOTMonSelection - ld de, OTPartyCount - call .CopyThreeSpecies - ld hl, wOTMonSelection - ld de, OTPartyMon1Species - call .CopyPartyStruct - ld hl, wOTMonSelection - ld de, OTPartyMonOT - call .CopyName - ld hl, wOTMonSelection - ld de, OTPartyMonNicknames - call .CopyName - ret -; 101145 - -.CopyThreeSpecies: ; 101145 -; Load the 3 choices to the buffer - push de - ld bc, StringBuffer2 + 6 - xor a -.party_loop - push af - call .GetNthSpecies - ld [bc], a - inc bc - pop af - inc a - cp 3 - jr nz, .party_loop - pop de -; Copy the 3 choices to the party - ld a, 3 - ld [de], a - inc de - ld hl, StringBuffer2 + 6 - ld bc, 3 - call CopyBytes - ld a, $ff - ld [de], a - ret -; 101168 - -.GetNthSpecies: ; 101168 -; Preserves hl and de -; Get the index of the Nth selection - push hl - add l - ld l, a - ld a, h - adc 0 - ld h, a - ld a, [hl] - pop hl -; Get the corresponding species - push de - inc de - add e - ld e, a - ld a, d - adc 0 - ld d, a - ld a, [de] - pop de - ret -; 10117c - -.CopyPartyStruct: ; 10117c - ld bc, PARTYMON_STRUCT_LENGTH - jr .ContinueCopy - -.CopyName: ; 101181 - ld bc, NAME_LENGTH - -.ContinueCopy: - ; Copy, via wc608... - ld a, wc608 % $100 - ld [StringBuffer2], a - ld a, wc608 / $100 - ld [StringBuffer2 + 1], a - ; ... bc bytes... - ld a, c - ld [StringBuffer2 + 2], a - ld a, b - ld [StringBuffer2 + 3], a - ; ... to de... - ld a, e - ld [StringBuffer2 + 4], a - ld a, d - ld [StringBuffer2 + 5], a - ; ... 3 times. - ld a, 3 -.big_copy_loop - push af - ld a, [hli] - push hl - push af - call .GetDestinationAddress - call .GetCopySize - pop af - call AddNTimes - ld a, [StringBuffer2] - ld e, a - ld a, [StringBuffer2 + 1] - ld d, a - call CopyBytes - ld a, e - ld [StringBuffer2], a - ld a, d - ld [StringBuffer2 + 1], a - pop hl - pop af - dec a - jr nz, .big_copy_loop - call .GetCopySize - ld a, 3 - ld hl, 0 - call AddNTimes - ld b, h - ld c, l - call .GetDestinationAddress - ld d, h - ld e, l - ld hl, wc608 - call CopyBytes - ret -; 1011df - -.GetDestinationAddress: ; 1011df - ld a, [StringBuffer2 + 4] - ld l, a - ld a, [StringBuffer2 + 5] - ld h, a - ret -; 1011e8 - -.GetCopySize: ; 1011e8 - ld a, [StringBuffer2 + 2] - ld c, a - ld a, [StringBuffer2 + 3] - ld b, a - ret -; 1011f1 - -Function1011f1: ; 1011f1 - ld a, $04 - call GetSRAMBank - ld a, [$a60c] - ld [wdc41], a - call CloseSRAM - ld hl, wdc41 - res 4, [hl] - ld hl, GameTimerPause - bit 7, [hl] - jr z, .skip - ld hl, wdc41 - set 4, [hl] - -.skip - call Function10209c - xor a - ld [wdc5f], a - ld [wdc60], a - ld a, LINK_MOBILE - ld [wLinkMode], a - ret -; 101220 - -Function101220: ; 101220 - xor a - ld [wLinkMode], a - ret -; 101225 - -Function101225: ; 101225 - ld d, 1 - ld e, BANK(Jumptable_101297) - ld bc, Jumptable_101297 - call Function100000 - jr Function10123d - -Function101231: ; 101231 - ld d, 2 - ld e, BANK(Jumptable_101297) - ld bc, Jumptable_101297 - call Function100000 - jr Function10123d - -Function10123d: ; 10123d - xor a - ld [ScriptVar], a - ld a, c - ld hl, Jumptable_101247 - rst JumpTable - ret -; 101247 - -Jumptable_101247: ; 101247 - dw Function101251 - dw Function10127d - dw Function10127c - dw Function10126c - dw Function101265 -; 101251 - -Function101251: ; 101251 - call UpdateSprites - call RefreshScreen - ld hl, UnknownText_0x1021f4 - call Function1021e0 - call Function1020ea - ret c - call Function102142 - ret -; 101265 - -Function101265: ; 101265 - ld hl, UnknownText_0x1021ef - call Function1021e0 - ret -; 10126c - -Function10126c: ; 10126c - call UpdateSprites - callba Script_reloadmappart - ld hl, UnknownText_0x1021f4 - call Function1021e0 - ret -; 10127c - -Function10127c: ; 10127c - ret -; 10127d - -Function10127d: ; 10127d - ret -; 10127e - -Function10127e: ; 10127e - ld a, [wdc5f] - and a - jr z, .zero - cp 1 - ld c, $27 - jr z, .load - cp 2 - ld c, $37 - jr z, .load -.zero - ld c, 0 -.load - ld a, c - ld [wMobileCommsJumptableIndex], a - ret -; 101297 - -Jumptable_101297: ; 101297 - dw Function101a97 ; 00 - dw Function101ab4 ; 01 - dw Function101475 ; 02 - dw Function101b0f ; 03 - dw Function101438 ; 04 - dw Function101b2b ; 05 - dw Function101b59 ; 06 - dw Function101475 ; 07 - dw Function101b70 ; 08 - dw Function101438 ; 09 - dw Function101b8f ; 0a - dw Function101d7b ; 0b - dw Function101d95 ; 0c - dw Function101475 ; 0d - dw Function101db2 ; 0e - dw Function101e4f ; 0f - dw Function101475 ; 10 - dw Function101e64 ; 11 - dw Function101e4f ; 12 - dw Function101475 ; 13 - dw Function101e64 ; 14 - dw Function101d95 ; 15 - dw Function101475 ; 16 - dw Function101db2 ; 17 - dw Function101dd0 ; 18 - dw Function101de3 ; 19 - dw Function101e39 ; 1a - dw Function101e09 ; 1b - dw Function101e4f ; 1c - dw Function101475 ; 1d - dw Function101e64 ; 1e - dw Function101d95 ; 1f - dw Function101475 ; 20 - dw Function101db2 ; 21 - dw Function101e09 ; 22 - dw Function101e31 ; 23 - dw Function101bc8 ; 24 - dw Function101438 ; 25 - dw Function101be5 ; 26 - dw Function101ac6 ; 27 - dw Function101ab4 ; 28 - dw Function101475 ; 29 - dw Function101c11 ; 2a - dw Function1014f4 ; 2b - dw Function101cc8 ; 2c - dw Function1014e2 ; 2d - dw Function1014e2 ; 2e - dw Function101d10 ; 2f - dw Function101d2a ; 30 - dw Function101d2a ; 31 - dw Function101507 ; 32 - dw Function10156d ; 33 - dw Function101557 ; 34 - dw Function10158a ; 35 - dw Function101c42 ; 36 - dw Function101aed ; 37 - dw Function101ab4 ; 38 - dw Function101475 ; 39 - dw Function101c2b ; 3a - dw Function1014f4 ; 3b - dw Function101cdf ; 3c - dw Function1014e2 ; 3d - dw Function1014e2 ; 3e - dw Function101d1e ; 3f - dw Function101d2a ; 40 - dw Function101d2a ; 41 - dw Function101507 ; 42 - dw Function10156d ; 43 - dw Function101544 ; 44 - dw Function10158a ; 45 - dw Function101c42 ; 46 - dw Function101c50 ; 47 - dw Function1014ce ; 48 - dw Function101cf6 ; 49 - dw Function101826 ; 4a - dw Function1017e4 ; 4b - dw Function1017f1 ; 4c - dw Function1018a8 ; 4d - dw Function1018d6 ; 4e - dw Function1017e4 ; 4f - dw Function1017f1 ; 50 - dw Function1018e1 ; 51 - dw Function1015df ; 52 - dw Function10167d ; 53 - dw Function10168a ; 54 - dw Function10162a ; 55 - dw Function1015be ; 56 - dw Function10167d ; 57 - dw Function10168a ; 58 - dw Function10161f ; 59 - dw Function10159d ; 5a - dw Function10167d ; 5b - dw Function10168a ; 5c - dw Function101600 ; 5d - dw Function101d03 ; 5e - dw Function101d6b ; 5f - dw Function10159d ; 60 - dw Function1014ce ; 61 - dw Function10168e ; 62 - dw Function101600 ; 63 - dw Function101913 ; 64 - dw Function10194b ; 65 - dw _SelectMonsForMobileBattle ; 66 - dw Function1017e4 ; 67 - dw Function1017f5 ; 68 - dw _StartMobileBattle ; 69 - dw Function101537 ; 6a - dw Function101571 ; 6b - dw Function101c92 ; 6c - dw Function10152a ; 6d - dw Function101571 ; 6e - dw Function101a4f ; 6f - dw Function101cbc ; 70 - dw Function101c62 ; 71 - dw Function101537 ; 72 - dw Function101571 ; 73 - dw Function101c92 ; 74 - dw Function10152a ; 75 - dw Function101571 ; 76 - dw Function101ca0 ; 77 - dw Function101475 ; 78 - dw Function101cbc ; 79 -; 10138b - -Function10138b: ; 10138b - callba Function8adcc - ld c, 0 - jr c, .asm_101396 - inc c - -.asm_101396 - sla c - ld a, [wcd2f] - and a - jr z, .asm_10139f - inc c - -.asm_10139f - sla c - ld a, [wcd21] - cp $01 - jr z, .asm_1013a9 - inc c - -.asm_1013a9 - ret -; 1013aa - -Function1013aa: ; 1013aa - call ClearBGPalettes - call Call_ExitMenu - call ReloadTilesetAndPalettes - callba Function106464 - call UpdateSprites - call FinishExitMenu - ret -; 1013c0 - -Function1013c0: ; 1013c0 - callba BlankScreen - callba MobileFunc_106462 - callba Function106464 - call FinishExitMenu - ret -; 1013d6 - -Function1013d6: ; 1013d6 - callba HDMATransferAttrMapAndTileMapToWRAMBank3 - ret -; 1013dd - -Function1013dd: ; 1013dd - call CGBOnly_LoadEDTile - ret -; 1013e1 - -Function1013e1: ; 1013e1 ; unreferenced - push de - inc de - ld b, a - ld c, 0 -.asm_1013e6 - inc c - ld a, [hli] - ld [de], a - inc de - and a - jr z, .asm_1013f1 - dec b - jr nz, .asm_1013e6 - scf - -.asm_1013f1 - pop de - ld a, c - ld [de], a - ret -; 1013f5 - -Function1013f5: ; 1013f5 - ld a, [hli] - ld [de], a - inc de - ld c, a -.asm_1013f9 - ld a, [hli] - ld [de], a - inc de - dec c - jr nz, .asm_1013f9 - ret -; 101400 - -Function101400: ; 101400 ; unreferenced - ld a, [de] - inc de - cp [hl] - jr nz, asm_101416 - inc hl - -Function101406: ; 101406 - ld c, a - ld b, 0 -.asm_101409 - ld a, [de] - inc de - cp [hl] - jr nz, asm_101416 - inc hl - dec bc - ld a, b - or c - jr nz, .asm_101409 - and a - ret - -asm_101416 - scf - ret -; 101418 - -Function101418: ; 101418 - call GetJoypad - ld a, [hJoyDown] - and SELECT + A_BUTTON - cp SELECT + A_BUTTON - jr z, .asm_101425 - xor a - ret - -.asm_101425 - ld a, $f7 - ld [wcd2b], a - scf - ret -; 10142c - -Function10142c: ; 10142c - ld a, $01 - ld [wc305], a - callba Function115e18 - ret -; 101438 - -Function101438: ; 101438 - ld hl, wcd29 - set 6, [hl] - ld a, [wcd26] - ld hl, Jumptable_101457 - rst JumpTable - ld a, [wcd26] - bit 7, a - ret z - ld a, 0 - ld [wcd26], a - ld a, [wMobileCommsJumptableIndex] - inc a - ld [wMobileCommsJumptableIndex], a - ret -; 101457 - -Jumptable_101457: ; 101457 - dw Function10145b - dw Function101467 -; 10145b - -Function10145b: ; 10145b - ld a, $3c - ld [wcd42], a - ld a, [wcd26] - inc a - ld [wcd26], a - -Function101467: ; 101467 - ld hl, wcd42 - dec [hl] - ret nz - ld a, [wcd26] - set 7, a - ld [wcd26], a - ret -; 101475 - -Function101475: ; 101475 - ld hl, wcd29 - set 6, [hl] - ld a, [wcd26] - ld hl, Jumptable_101494 - rst JumpTable - ld a, [wcd26] - bit 7, a - ret z - ld a, 0 - ld [wcd26], a - ld a, [wMobileCommsJumptableIndex] - inc a - ld [wMobileCommsJumptableIndex], a - ret -; 101494 - -Jumptable_101494: ; 101494 - dw Function10149a - dw Function1014a6 - dw Function1014b7 -; 10149a - -Function10149a: ; 10149a - ld a, $28 - ld [wcd42], a - ld a, [wcd26] - inc a - ld [wcd26], a - -Function1014a6: ; 1014a6 - ld hl, wcd42 - dec [hl] - ret nz - ld a, $50 - ld [wcd42], a - ld a, [wcd26] - inc a - ld [wcd26], a - -Function1014b7: ; 1014b7 - call GetJoypad - ld a, [hJoyPressed] - and $03 - jr nz, .asm_1014c5 - ld hl, wcd42 - dec [hl] - ret nz - -.asm_1014c5 - ld a, [wcd26] - set 7, a - ld [wcd26], a - ret -; 1014ce - -Function1014ce: ; 1014ce - callba Function100720 - callba StartMobileInactivityTimer - ld a, [wMobileCommsJumptableIndex] - inc a - ld [wMobileCommsJumptableIndex], a - ret -; 1014e2 - -Function1014e2: ; 1014e2 - ld hl, wcd29 - set 6, [hl] - ld a, 0 - ld [wcd26], a - ld a, [wMobileCommsJumptableIndex] - inc a - ld [wMobileCommsJumptableIndex], a - ret -; 1014f4 - -Function1014f4: ; 1014f4 - callba EnableMobile - ld hl, wcd29 - set 6, [hl] - ld a, [wMobileCommsJumptableIndex] - inc a - ld [wMobileCommsJumptableIndex], a - ret -; 101507 - -Function101507: ; 101507 - ld de, wcd30 - ld hl, $40 - ld bc, $40 - ld a, $02 - call Function3e32 - ld a, [wMobileCommsJumptableIndex] - inc a - ld [wMobileCommsJumptableIndex], a - ret -; 10151d - -Function10151d: ; 10151d ; unreferenced - ld a, $34 - call Function3e32 - ld a, [wMobileCommsJumptableIndex] - inc a - ld [wMobileCommsJumptableIndex], a - ret -; 10152a - -Function10152a: ; 10152a - ld a, $36 - call Function3e32 - ld a, [wMobileCommsJumptableIndex] - inc a - ld [wMobileCommsJumptableIndex], a - ret -; 101537 - -Function101537: ; 101537 - ld a, $0a - call Function3e32 - ld a, [wMobileCommsJumptableIndex] - inc a - ld [wMobileCommsJumptableIndex], a - ret -; 101544 - -Function101544: ; 101544 - callba StartMobileInactivityTimer - ld a, $12 - call Function3e32 - ld a, [wMobileCommsJumptableIndex] - inc a - ld [wMobileCommsJumptableIndex], a - ret -; 101557 - -Function101557: ; 101557 - callba StartMobileInactivityTimer - ld hl, wcd53 - ld a, $08 - call Function3e32 - ld a, [wMobileCommsJumptableIndex] - inc a - ld [wMobileCommsJumptableIndex], a - ret -; 10156d - -Function10156d: ; 10156d - call Function101418 - ret c - -Function101571: ; 101571 - callba Function10032e - ret c - ret z - ld a, e - cp $01 - jr z, .asm_101582 - ld [wcd2b], a - ret - -.asm_101582 - ld a, [wMobileCommsJumptableIndex] - inc a - ld [wMobileCommsJumptableIndex], a - ret -; 10158a - -Function10158a: ; 10158a - callba IncrementMobileInactivityTimerBy1Frame - ld a, [wMobileInactivityTimerMinutes] - cp $0a - jr c, Function10156d - ld a, $fb - ld [wcd2b], a - ret -; 10159d - -Function10159d: ; 10159d - ld de, wc608 - callba Function100edf - ld de, wc608 - ld a, $05 - ld hl, w5_d800 - call Function10174c - ld a, 0 - ld [wcd26], a - ld a, [wMobileCommsJumptableIndex] - inc a - ld [wMobileCommsJumptableIndex], a - ret -; 1015be - -Function1015be: ; 1015be - ld de, wc608 - callba Function100eed - ld de, wc608 - ld a, $05 - ld hl, w5_d800 - call Function10174c - ld a, 0 - ld [wcd26], a - ld a, [wMobileCommsJumptableIndex] - inc a - ld [wMobileCommsJumptableIndex], a - ret -; 1015df - -Function1015df: ; 1015df - ld de, wc608 - callba Function100ef4 - ld de, wc608 - ld a, $05 - ld hl, w5_d800 - call Function10174c - ld a, 0 - ld [wcd26], a - ld a, [wMobileCommsJumptableIndex] - inc a - ld [wMobileCommsJumptableIndex], a - ret -; 101600 - -Function101600: ; 101600 - ld hl, w5_d800 - ld de, wc608 - ld bc, $1e0 - ld a, $05 - call FarCopyWRAM - ld de, wc608 - callba Function100ee6 - ld a, [wMobileCommsJumptableIndex] - inc a - ld [wMobileCommsJumptableIndex], a - ret -; 10161f - -Function10161f: ; 10161f - call Function101649 - ld a, [wMobileCommsJumptableIndex] - inc a - ld [wMobileCommsJumptableIndex], a - ret -; 10162a - -Function10162a: ; 10162a - call Function101663 - ld a, [wMobileCommsJumptableIndex] - inc a - ld [wMobileCommsJumptableIndex], a - ret -; 101635 - -Function101635: ; 101635 - ld de, wc608 - ld bc, $1e0 - call FarCopyWRAM - ret -; 10163f - -Function10163f: ; 10163f - ld hl, wc608 - ld bc, $1e0 - call FarCopyWRAM - ret -; 101649 - -Function101649: ; 101649 - ld a, $05 - ld hl, w5_d800 - call Function101635 - ld a, $05 - ld de, w5_da00 - call Function10163f - ret -; 10165a - -Function10165a: ; 10165a - ld a, $05 - ld hl, w5_da00 - call Function101635 - ret -; 101663 - -Function101663: ; 101663 - ld a, $05 - ld hl, w5_d800 - call Function101635 - ld a, $05 - ld de, w5_dc00 - call Function10163f - ret -; 101674 - -Function101674: ; 101674 ; unreferenced - ld a, $05 - ld hl, w5_dc00 - call Function101635 - ret -; 10167d - -Function10167d: ; 10167d - ld a, 0 - ld [wcd26], a - ld a, [wMobileCommsJumptableIndex] - inc a - ld [wMobileCommsJumptableIndex], a - ret -; 10168a - -Function10168a: ; 10168a - call Function101418 - ret c - -Function10168e: ; 10168e - ld b, 0 - ld c, $01 - callba Function10079c - ret c - ld c, $01 - ld b, $03 - callba AdvanceMobileInactivityTimerAndCheckExpired - ret c - ld a, [wcd26] - ld hl, Jumptable_1016c3 - rst JumpTable - ld hl, wcd29 - set 6, [hl] - ld a, [wcd26] - bit 7, a - ret z - ld a, 0 - ld [wcd26], a - ld a, [wMobileCommsJumptableIndex] - inc a - ld [wMobileCommsJumptableIndex], a - ret -; 1016c3 - -Jumptable_1016c3: ; 1016c3 - dw Function1016cf - dw Function1016de - dw Function1016f8 - dw Function101705 - dw Function101719 - dw Function101724 -; 1016cf - -Function1016cf: ; 1016cf - ld hl, wcd3a - inc [hl] - call Function10176f - ld a, [wcd26] - inc a - ld [wcd26], a - ret -; 1016de - -Function1016de: ; 1016de - call Function10177b - jr nc, .asm_1016eb - ld a, [wcd26] - inc a - ld [wcd26], a - ret - -.asm_1016eb - ld a, $ff - ld [wcd39], a - ld a, [wcd26] - inc a - ld [wcd26], a - ret -; 1016f8 - -Function1016f8: ; 1016f8 - ld a, 0 - ld [wcd27], a - ld a, [wcd26] - inc a - ld [wcd26], a - ret -; 101705 - -Function101705: ; 101705 - callba Function100382 - ld a, [wcd27] - bit 7, a - ret z - ld a, [wcd26] - inc a - ld [wcd26], a - ret -; 101719 - -Function101719: ; 101719 - call Function1017c7 - ld a, [wcd26] - inc a - ld [wcd26], a - ret -; 101724 - -Function101724: ; 101724 - ld a, [wcd39] - cp $ff - jr z, .asm_101731 - ld a, 0 - ld [wcd26], a - ret - -.asm_101731 - ld a, [wcd26] - set 7, a - ld [wcd26], a - ret -; 10173a - -Unknown_10173a: - db $50 - -Function10173b: ; 10173b - push bc - push af - ld a, [hli] - ld h, [hl] - ld l, a - ld a, [Unknown_10173a] - ld c, a - ld b, 0 - pop af - call AddNTimes - pop bc - ret -; 10174c - -Function10174c: ; 10174c - ld [wcd3d], a - ld a, l - ld [wcd3e], a - ld a, h - ld [wcd3f], a - ld a, e - ld [wcd3b], a - ld a, d - ld [wcd3c], a - ld a, c - ld [wcd40], a - ld a, b - ld [wcd41], a - xor a - ld [wcd39], a - ld [wcd3a], a - ret -; 10176f - -Function10176f: ; 10176f - ld hl, wccb4 - ld bc, $54 - ld a, $11 - call ByteFill - ret -; 10177b - -Function10177b: ; 10177b - ld a, [Unknown_10173a] - ld c, a - ld b, 0 - ld a, [wcd3a] - ld hl, 0 - call AddNTimes - ld e, l - ld d, h - ld hl, wcd40 - ld a, [hli] - ld h, [hl] - ld l, a - ld a, l - sub e - ld l, a - ld a, h - sbc d - ld h, a - jr c, .asm_1017a0 - add hl, bc - call Function1017b0 - scf - ret - -.asm_1017a0 - ld a, $ff - ld [wcd39], a - add hl, bc - ld a, h - or l - ret z - ld c, l - ld b, h - call Function1017b0 - xor a - ret -; 1017b0 - -Function1017b0: ; 1017b0 - ld a, c - ld [wccb4], a - push bc - ld a, [wcd3a] - dec a - ld hl, wcd3b - call Function10173b - pop bc - ld de, wccb5 - call CopyBytes - ret -; 1017c7 - -Function1017c7: ; 1017c7 - ld a, [wcc60] - ld c, a - ld b, 0 - ld a, [wcd3a] - dec a - ld hl, wcd3e - call Function10173b - ld e, l - ld d, h - ld hl, wcc61 - ld a, [wcd3d] - call FarCopyWRAM - and a - ret -; 1017e4 - -Function1017e4: ; 1017e4 - ld a, 0 - ld [wcd27], a - ld a, [wMobileCommsJumptableIndex] - inc a - ld [wMobileCommsJumptableIndex], a - ret -; 1017f1 - -Function1017f1: ; 1017f1 - call Function101418 - ret c - -Function1017f5: ; 1017f5 - ld b, 0 - ld c, $01 - callba Function10079c - ret c - ld c, $01 - ld b, $03 - callba AdvanceMobileInactivityTimerAndCheckExpired - ret c - callba Function100382 - ld a, [wcd27] - bit 7, a - jr nz, .next - ld hl, wcd29 - set 6, [hl] - ret - -.next - ld a, [wMobileCommsJumptableIndex] - inc a - ld [wMobileCommsJumptableIndex], a - ret -; 101826 - -Function101826: ; 101826 - ld a, [wcd21] - cp $02 - jr z, .asm_101833 - cp $01 - jr z, .asm_101844 - jr .asm_101869 - -.asm_101833 - ld hl, Unknown_10186f - ld de, wccb4 - call Function1013f5 - ld a, [wMobileCommsJumptableIndex] - inc a - ld [wMobileCommsJumptableIndex], a - ret - -.asm_101844 - callba Function103654 - ld a, c - ld hl, Unknown_101882 - cp $01 - jr z, .asm_10185b - ld hl, Unknown_101895 - cp $02 - jr z, .asm_10185b - jr .asm_101869 - -.asm_10185b - ld de, wccb4 - call Function1013f5 - ld a, [wMobileCommsJumptableIndex] - inc a - ld [wMobileCommsJumptableIndex], a - ret - -.asm_101869 - ld a, $fe - ld [wcd2b], a - ret -; 10186f - - -SECTION "ascii 10186f", ROMX - - charmap " ", $20 ; revert to ascii - -Unknown_10186f: - db .end - @ - db $19, $73, $09, $13, "trade_crystal" -.end db 0 - -Unknown_101882: - db .end - @ - db $19, $67, $10, $01, "free__crystal" -.end db 0 - -Unknown_101895: - db .end - @ - db $19, $67, $10, $01, "limit_crystal" -.end db 0 -; 1018a8 - - -SECTION "bank40_3", ROMX - -Function1018a8: ; 1018a8 - ld hl, wccb5 - ld de, wcc61 - ld a, $04 - call Function101406 - jr c, .asm_1018d0 - ld hl, wccb9 - ld de, wcc65 - ld a, $06 - call Function101406 - jr c, .asm_1018ca - ld a, [wMobileCommsJumptableIndex] - inc a - ld [wMobileCommsJumptableIndex], a - ret - -.asm_1018ca - ld a, $f6 - ld [wcd2b], a - ret - -.asm_1018d0 - ld a, $f5 - ld [wcd2b], a - ret -; 1018d6 - -Function1018d6: ; 1018d6 - call Function1018ec - ld a, [wMobileCommsJumptableIndex] - inc a - ld [wMobileCommsJumptableIndex], a - ret -; 1018e1 - -Function1018e1: ; 1018e1 - call Function1018fb - ld a, [wMobileCommsJumptableIndex] - inc a - ld [wMobileCommsJumptableIndex], a - ret -; 1018ec - -Function1018ec: ; 1018ec - ld a, $0a - ld hl, wccb4 - ld [hli], a - ld c, a -.asm_1018f3 - call Random - ld [hli], a - dec c - jr nz, .asm_1018f3 - ret -; 1018fb - -Function1018fb: ; 1018fb - ld a, [wcd2f] - and a - jr z, .asm_101906 - ld hl, wcc61 - jr .asm_101909 - -.asm_101906 - ld hl, wccb5 - -.asm_101909 - ld de, LinkBattleRNs - ld bc, 10 - call CopyBytes - ret -; 101913 - -Function101913: ; 101913 - ld hl, wcd2a - set 0, [hl] - xor a - ld [wc30d], a - ld hl, wcd29 - res 4, [hl] - xor a - ld [wc305], a - ld hl, wcd29 - res 7, [hl] - ld a, $90 - ld [hWY], a - ld a, [wcd21] - cp $01 - jr z, .asm_10193f - cp $02 - jr z, .asm_101945 - ld a, $71 - ld [wMobileCommsJumptableIndex], a - ret - -.asm_10193f - ld a, $66 - ld [wMobileCommsJumptableIndex], a - ret - -.asm_101945 - ld a, $65 - ld [wMobileCommsJumptableIndex], a - ret -; 10194b - -Function10194b: ; 10194b - call DisableSpriteUpdates - call ClearSprites - callba Function1021f9 - ld hl, wcd29 - bit 3, [hl] - jr nz, .asm_101967 - call Function1013c0 - ld a, $71 - ld [wMobileCommsJumptableIndex], a - ret - -.asm_101967 - ld a, $60 - ld [wMobileCommsJumptableIndex], a - ret -; 10196d - -_SelectMonsForMobileBattle: ; 10196d - callba BlankScreen - callba Mobile_CommunicationStandby - ld hl, wcd29 - set 5, [hl] - ld hl, wcd2a - set 6, [hl] - ld a, $06 - ld [wccb4], a - ld hl, wPlayerMonSelection - ld de, wccb5 - ld bc, 3 - call CopyBytes - ld hl, wcd6c - ld a, [hli] - ld [wccb8], a - ld a, [hli] - ld [wccb9], a - ld a, [hl] - ld [wccba], a - ld a, [wMobileCommsJumptableIndex] - inc a - ld [wMobileCommsJumptableIndex], a - ret -; 1019ab - -_StartMobileBattle: ; 1019ab - call CopyOtherPlayersBattleMonSelection - callba Function100754 - xor a - ld [wdc5f], a - ld [wdc60], a - callba BlankScreen - call SpeechTextBox - callba Function100846 - ld c, 120 - call DelayFrames - callba ClearTileMap - call .CopyOTDetails - call StartMobileBattle - ld a, [wcd2b] - cp $fc - jr nz, .asm_1019e6 - xor a - ld [wcd2b], a -.asm_1019e6 - ld a, [wMobileCommsJumptableIndex] - inc a - ld [wMobileCommsJumptableIndex], a - ret -; 1019ee - -.CopyOTDetails: ; 1019ee - ld a, [rSVBK] - push af - ld a, 5 - ld [rSVBK], a - - ld bc, w5_dc0d - ld de, w5_dc11 - callba GetMobileOTTrainerClass - - pop af - ld [rSVBK], a - - ld a, c - ld [OtherTrainerClass], a - ld hl, OTPlayerName - ld de, OTClassName - ld bc, NAME_LENGTH - call CopyBytes - ld a, [wcd2f] - and a - ld a, 2 - jr z, .got_link_player_number - ld a, 1 -.got_link_player_number - ld [hLinkPlayerNumber], a - ret -; 101a21 - -StartMobileBattle: ; 101a21 - ; force stereo and fast text speed - ld hl, Options - ld a, [hl] - push af - and (1 << STEREO) - or 1 ; 1 frame per character i.e. fast text - ld [hl], a - ld a, 1 - ld [wDisableTextAcceleration], a - callba BattleIntro - callba DoBattle - callba ShowLinkBattleParticipantsAfterEnd - xor a - ld [wDisableTextAcceleration], a - ld a, $ff - ld [hLinkPlayerNumber], a - pop af - ld [Options], a - ret -; 101a4f - -Function101a4f: ; 101a4f - ld a, 1 - ld [wDisableTextAcceleration], a - callba DisplayLinkBattleResult - xor a - ld [wDisableTextAcceleration], a - callba CleanUpBattleRAM - callba LoadPokemonData - call Function1013c0 - ld a, [wMobileCommsJumptableIndex] - inc a - ld [wMobileCommsJumptableIndex], a - ret -; 101a75 - -CopyOtherPlayersBattleMonSelection: ; 101a75 - ld hl, wcc61 - ld de, wOTMonSelection - ld bc, 3 - call CopyBytes - ld de, wcc64 - callba Function100772 - callba Function101050 - callba LoadSelectedPartiesForColosseum - ret -; 101a97 - -Function101a97: ; 101a97 - callba Function115d99 - ld hl, wcd29 - set 7, [hl] - ld c, $02 - call Function10142c - ld hl, wcd29 - set 6, [hl] - ld a, [wMobileCommsJumptableIndex] - inc a - ld [wMobileCommsJumptableIndex], a - ret -; 101ab4 - -Function101ab4: ; 101ab4 - ld e, $01 - call Function101ee4 - ld hl, wcd29 - set 5, [hl] - ld a, [wMobileCommsJumptableIndex] - inc a - ld [wMobileCommsJumptableIndex], a - ret -; 101ac6 - -Function101ac6: ; 101ac6 - callba Function115d99 - ld hl, wcd29 - set 7, [hl] - ld c, $02 - call Function10142c - ld hl, wcd29 - set 6, [hl] - xor a - ld [wcd2f], a - ld de, wdc42 - call Function102068 - ld a, [wMobileCommsJumptableIndex] - inc a - ld [wMobileCommsJumptableIndex], a - ret -; 101aed - -Function101aed: ; 101aed - callba Function115d99 - ld hl, wcd29 - set 7, [hl] - ld c, $02 - call Function10142c - ld hl, wcd29 - set 6, [hl] - ld a, $01 - ld [wcd2f], a - ld a, [wMobileCommsJumptableIndex] - inc a - ld [wMobileCommsJumptableIndex], a - ret -; 101b0f - -Function101b0f: ; 101b0f - ld c, 0 - call Function10142c - ld e, $03 - call Function101ee4 - ld hl, wcd29 - set 5, [hl] - ld a, [wMobileCommsJumptableIndex] - inc a - ld [wMobileCommsJumptableIndex], a - ld a, 0 - ld [wcd26], a - ret -; 101b2b - -Function101b2b: ; 101b2b - callba Function100579 - ld hl, wcd29 - set 2, [hl] - ld a, [wcd26] - bit 7, a - ret z - call Function1013dd - ld a, 0 - ld [wcd26], a - ld a, [wMenuCursorY] - cp $01 - jr z, .asm_101b51 - ld a, $02 - ld [wcd2b], a - ret - -.asm_101b51 - ld a, [wMobileCommsJumptableIndex] - inc a - ld [wMobileCommsJumptableIndex], a - ret -; 101b59 - -Function101b59: ; 101b59 - ld c, $02 - call Function10142c - ld e, $02 - call Function101ee4 - ld hl, wcd29 - set 5, [hl] - ld a, [wMobileCommsJumptableIndex] - inc a - ld [wMobileCommsJumptableIndex], a - ret -; 101b70 - -Function101b70: ; 101b70 - ld c, $02 - call Function10142c - ld e, $04 - call Function101ee4 - ld hl, wcd29 - set 5, [hl] - call UpdateSprites - ld a, [wMobileCommsJumptableIndex] - inc a - ld [wMobileCommsJumptableIndex], a - ld a, 0 - ld [wcd26], a - ret -; 101b8f - -Function101b8f: ; 101b8f - callba Function1005c3 - ld hl, wcd29 - set 2, [hl] - ld a, [wcd26] - bit 7, a - ret z - call Function1013dd - ld a, 0 - ld [wcd26], a - ld a, [wMenuCursorY] - cp $01 - jr z, .asm_101bbc - ld a, $01 - ld [wcd2f], a - ld a, [wMobileCommsJumptableIndex] - inc a - ld [wMobileCommsJumptableIndex], a - ret - -.asm_101bbc - xor a - ld [wcd2f], a - ld a, [wMobileCommsJumptableIndex] - inc a - ld [wMobileCommsJumptableIndex], a - ret -; 101bc8 - -Function101bc8: ; 101bc8 - ld c, $02 - call Function10142c - ld e, $08 - call Function101ee4 - call Function102048 - call Function1013dd - ld a, 0 - ld [wcd26], a - ld a, [wMobileCommsJumptableIndex] - inc a - ld [wMobileCommsJumptableIndex], a - ret -; 101be5 - -Function101be5: ; 101be5 - callba Function100579 - ld hl, wcd29 - set 2, [hl] - ld a, [wcd26] - bit 7, a - ret z - call Function1013dd - ld a, 0 - ld [wcd26], a - ld a, [wMenuCursorY] - cp $01 - jr nz, .asm_101c0b - ld a, $2a - ld [wMobileCommsJumptableIndex], a - ret - -.asm_101c0b - ld a, $02 - ld [wcd2b], a - ret -; 101c11 - -Function101c11: ; 101c11 - ld a, $01 - ld [wdc5f], a - ld e, $09 - call Function101ee4 - call Function102048 - ld hl, wcd29 - set 5, [hl] - ld a, [wMobileCommsJumptableIndex] - inc a - ld [wMobileCommsJumptableIndex], a - ret -; 101c2b - -Function101c2b: ; 101c2b - ld a, $02 - ld [wdc5f], a - ld e, $07 - call Function101ee4 - ld hl, wcd29 - set 5, [hl] - ld a, [wMobileCommsJumptableIndex] - inc a - ld [wMobileCommsJumptableIndex], a - ret -; 101c42 - -Function101c42: ; 101c42 - ld hl, wcd2a - set 1, [hl] - call Function100665 - ld a, $47 - ld [wMobileCommsJumptableIndex], a - ret -; 101c50 - -Function101c50: ; 101c50 - ld e, $0a - call Function101ee4 - ld hl, wcd29 - set 2, [hl] - ld a, [wMobileCommsJumptableIndex] - inc a - ld [wMobileCommsJumptableIndex], a - ret -; 101c62 - -Function101c62: ; 101c62 - callba Function115d99 - ld hl, wcd29 - set 7, [hl] - ld c, $01 - call Function10142c - xor a - ld [wc30d], a - ld hl, wcd29 - res 4, [hl] - ld e, $0b - call Function101ee4 - ld hl, wcd29 - set 5, [hl] - ld a, [wMobileCommsJumptableIndex] - inc a - ld [wMobileCommsJumptableIndex], a - ld a, 0 - ld [wcd26], a - ret -; 101c92 - -Function101c92: ; 101c92 - callba Function100675 - ld a, [wMobileCommsJumptableIndex] - inc a - ld [wMobileCommsJumptableIndex], a - ret -; 101ca0 - -Function101ca0: ; 101ca0 - ld c, $02 - call Function10142c - ld e, $0c - call Function101ee4 - ld hl, wcd29 - set 5, [hl] - ld a, [wMobileCommsJumptableIndex] - inc a - ld [wMobileCommsJumptableIndex], a - ld a, 0 - ld [wcd26], a - ret -; 101cbc - -Function101cbc: ; 101cbc - ld a, $01 - ld [wcd2b], a - ret -; 101cc2 - -Function101cc2: ; 101cc2 ; unreferenced - ld a, $02 - ld [wcd2b], a - ret -; 101cc8 - -Function101cc8: ; 101cc8 - ld a, $01 - ld [wc314], a - ld a, $01 - ld [wc30d], a - ld hl, wcd29 - set 4, [hl] - ld a, [wMobileCommsJumptableIndex] - inc a - ld [wMobileCommsJumptableIndex], a - ret -; 101cdf - -Function101cdf: ; 101cdf - ld a, $06 - ld [wc314], a - ld a, $01 - ld [wc30d], a - ld hl, wcd29 - set 4, [hl] - ld a, [wMobileCommsJumptableIndex] - inc a - ld [wMobileCommsJumptableIndex], a - ret -; 101cf6 - -Function101cf6: ; 101cf6 - ld a, $0b - ld [wc314 + 1], a - ld a, [wMobileCommsJumptableIndex] - inc a - ld [wMobileCommsJumptableIndex], a - ret -; 101d03 - -Function101d03: ; 101d03 - ld a, $0e - ld [wc314 + 1], a - ld a, [wMobileCommsJumptableIndex] - inc a - ld [wMobileCommsJumptableIndex], a - ret -; 101d10 - -Function101d10: ; 101d10 - ld c, $01 - call Function10142c - ld a, [wMobileCommsJumptableIndex] - inc a - ld [wMobileCommsJumptableIndex], a - jr Function101d2a - -Function101d1e: ; 101d1e - ld c, $03 - call Function10142c - ld a, [wMobileCommsJumptableIndex] - inc a - ld [wMobileCommsJumptableIndex], a - -Function101d2a: ; 101d2a - call Function101418 - ret c - ld hl, wcd29 - set 6, [hl] - ld a, [wcd26] - ld hl, Jumptable_101d4d - rst JumpTable - ld a, [wcd26] - bit 7, a - ret z - ld a, 0 - ld [wcd26], a - ld a, [wMobileCommsJumptableIndex] - inc a - ld [wMobileCommsJumptableIndex], a - ret -; 101d4d - -Jumptable_101d4d: ; 101d4d - dw Function101d51 - dw Function101d5d -; 101d51 - -Function101d51: ; 101d51 - ld a, $3c - ld [wcd42], a - ld a, [wcd26] - inc a - ld [wcd26], a - -Function101d5d: ; 101d5d - ld hl, wcd42 - dec [hl] - ret nz - ld a, [wcd26] - set 7, a - ld [wcd26], a - ret -; 101d6b - -Function101d6b: ; 101d6b - ld a, [wc30d] - and a - ret nz - ld hl, wcd29 - res 4, [hl] - ld a, $64 - ld [wMobileCommsJumptableIndex], a - ret -; 101d7b - -Function101d7b: ; 101d7b - callba Function10138b - ld b, 0 - ld hl, Unknown_101d8d - add hl, bc - ld c, [hl] - ld a, c - ld [wMobileCommsJumptableIndex], a - ret -; 101d8d - -Unknown_101d8d: ; 101d8d - db $15, $15, $1f, $1f, $0c, $12, $3a, $3a -; 101d95 - -Function101d95: ; 101d95 - call Function101ee2 - call LoadStandardMenuDataHeader - ld e, $0e - call Function101ee4 - ld hl, wcd29 - set 5, [hl] - ld a, [wMobileCommsJumptableIndex] - inc a - ld [wMobileCommsJumptableIndex], a - ld a, 0 - ld [wcd26], a - ret -; 101db2 - -Function101db2: ; 101db2 - callba Function103302 - call ExitMenu - ld hl, wcd29 - set 5, [hl] - jr c, .asm_101dca - ld a, [wMobileCommsJumptableIndex] - inc a - ld [wMobileCommsJumptableIndex], a - ret - -.asm_101dca - ld a, $02 - ld [wcd2b], a - ret -; 101dd0 - -Function101dd0: ; 101dd0 - ld hl, wdc41 - bit 1, [hl] - jr nz, .asm_101ddd - ld a, $19 - ld [wMobileCommsJumptableIndex], a - ret - -.asm_101ddd - ld a, $1b - ld [wMobileCommsJumptableIndex], a - ret -; 101de3 - -Function101de3: ; 101de3 - call Function101ecc - call Function101ead - jr c, .asm_101df3 - ld a, [wMobileCommsJumptableIndex] - inc a - ld [wMobileCommsJumptableIndex], a - ret - -.asm_101df3 - call Function101e98 - jr c, .asm_101e00 - ld a, [wMobileCommsJumptableIndex] - inc a - ld [wMobileCommsJumptableIndex], a - ret - -.asm_101e00 - call Function101ed3 - ld a, $02 - ld [wcd2b], a - ret -; 101e09 - -Function101e09: ; 101e09 - call Function101ead - jr c, .asm_101e16 - ld a, [wMobileCommsJumptableIndex] - inc a - ld [wMobileCommsJumptableIndex], a - ret - -.asm_101e16 - call Function101ecc - call Function101e98 - push af - call Function101ed3 - pop af - jr c, .asm_101e2b - ld a, [wMobileCommsJumptableIndex] - inc a - ld [wMobileCommsJumptableIndex], a - ret - -.asm_101e2b - ld a, $02 - ld [wcd2b], a - ret -; 101e31 - -Function101e31: ; 101e31 - ld a, $3a - ld [wMobileCommsJumptableIndex], a - jp Function101c2b -; 101e39 - -Function101e39: ; 101e39 - call Function1020bf - push af - call Function101ed3 - pop af - jr c, .asm_101e49 - ld a, $2a - ld [wMobileCommsJumptableIndex], a - ret - -.asm_101e49 - ld a, $02 - ld [wcd2b], a - ret -; 101e4f - -Function101e4f: ; 101e4f - ld e, $06 - call Function101ee4 - call Function1013d6 - ld a, [wMobileCommsJumptableIndex] - inc a - ld [wMobileCommsJumptableIndex], a - ld a, 0 - ld [wcd26], a - ret -; 101e64 - -Function101e64: ; 101e64 - call Function101ecc - call Function1020a8 - push af - call Function101ed3 - pop af - jr c, .asm_101e77 - ld a, $24 - ld [wMobileCommsJumptableIndex], a - ret - -.asm_101e77 - ld hl, wcd29 - set 5, [hl] - ld a, $02 - ld [wcd2b], a - ret -; 101e82 - -Function101e82: ; 101e82 ; unreferenced - call Function101ecc - ld a, [wMobileCommsJumptableIndex] - inc a - ld [wMobileCommsJumptableIndex], a - ret -; 101e8d - -Function101e8d: ; 101e8d ; unreferenced - call Function101ed3 - ld a, [wMobileCommsJumptableIndex] - inc a - ld [wMobileCommsJumptableIndex], a - ret -; 101e98 - -Function101e98: ; 101e98 - call ClearSprites - callba Function8adb3 - ret c - ld hl, GameTimerPause - set 7, [hl] - ld hl, wdc41 - set 4, [hl] - ret -; 101ead - -Function101ead: ; 101ead - ld hl, GameTimerPause - bit 7, [hl] - jr nz, .asm_101ec8 - ld hl, wdc41 - bit 2, [hl] - jr z, .asm_101eca - ld a, [wcd2f] - and a - jr nz, .asm_101ec8 - ld hl, wdc41 - bit 1, [hl] - jr z, .asm_101eca - -.asm_101ec8 - xor a - ret - -.asm_101eca - scf - ret -; 101ecc - -Function101ecc: ; 101ecc - call Function101ee2 - call FadeToMenu - ret -; 101ed3 - -Function101ed3: ; 101ed3 - call Function1013aa - callba Function115d99 - ld hl, wcd29 - set 7, [hl] - ret -; 101ee2 - -Function101ee2: ; 101ee2 - ld e, 0 - -Function101ee4: ; 101ee4 - ld d, 0 - ld hl, Unknown_101ef5 - add hl, de - add hl, de - ld a, [hli] - ld d, [hl] - ld e, a - callba Function100504 - ret -; 101ef5 - -Unknown_101ef5: ; 101ef5 - dw String_101f13 - dw String_101f14 - dw String_101f32 - dw String_101f4f - dw String_101f69 - dw String_101f81 - dw String_101f93 - dw String_101faa - dw String_101fc5 - dw String_101fd2 - dw String_101fe1 - dw String_101fef - dw String_102000 - dw String_10200c - dw String_102014 - -String_101f13: ; 101f13 - db "@" - -String_101f14: ; 101f14 - db "モバイルアダプタを つかって" - next "おともだちと つうしんします@" - -String_101f32: ; 101f32 - db "でんわを かけるひとには" - next "つうわりょうきんが かかります@" - -String_101f4f: ; 101f4f - db "モバイルアダプタの じゅんびは" - next "できて いますか?@" - -String_101f69: ; 101f69 - db "あなたが おともだちに" - next "でんわを かけますか?@" - -String_101f81: ; 101f81 - db "めいしフ,ルダーを" - next "つかいますか?@" - -String_101f93: ; 101f93 - db "でんわばんごうを にゅうりょく" - next "してください@" - -String_101faa: ; 101faa - db "それでは おともだちからの" - next "でんわを おまちします…@" - -String_101fc5: ; 101fc5 - next "に でんわを かけます@" - -String_101fd2: ; 101fd2 - next "に でんわを かけています@" - -String_101fe1: ; 101fe1 - db "でんわが つながりました!@" - -String_101fef: ; 101fef - db "つうわを" - next "しゅうりょう します…@" - -String_102000: ; 102000 - db "つうしん しゅうりょう@" - -String_10200c: ; 10200c - db "つうわ じかん@" - -String_102014: ; 102014 - db "それでは つうしんの" - next "せっていを してください@" -; 10202c - -Function10202c: ; 10202c - callba Function115d99 - ld hl, wcd29 - set 7, [hl] - ld c, $02 - call Function10142c - ld e, $0d - call Function101ee4 - hlcoord 4, 4 - call Function100681 - ret -; 102048 - -Function102048: ; 102048 - call Function10204c - ret -; 10204c - -Function10204c: ; 10204c - hlcoord 3, 2 - ld c, $10 - ld de, wcd53 -.asm_102054 - ld a, [de] - inc de - and a - jr z, .asm_102067 - sub $30 - jr c, .asm_102067 - cp $0a - jr nc, .asm_102067 - add $f6 - ld [hli], a - dec c - jr nz, .asm_102054 - -.asm_102067 - ret -; 102068 - -Function102068: ; 102068 - ld hl, wcd53 - ld c, $08 -.asm_10206d - ld a, [de] - call Function102080 - jr c, .asm_10207f - ld a, [de] - swap a - call Function102080 - jr c, .asm_10207f - inc de - dec c - jr nz, .asm_10206d - -.asm_10207f - ret -; 102080 - -Function102080: ; 102080 - and $0f - cp $0f - jr z, .asm_10208a - add $30 - ld [hli], a - ret - -.asm_10208a - ld [hl], 0 - scf - ret -; 10208e - -Function10208e: ; 10208e - push de - ld h, d - ld l, e - ld de, wdc42 - ld bc, 8 - call CopyBytes - pop de - ret -; 10209c - -Function10209c: ; 10209c - ld a, $ff - ld hl, wdc42 - ld bc, 8 - call ByteFill - ret -; 1020a8 - -Function1020a8: ; 1020a8 - call Function10209c - ld c, $01 - ld de, wdc42 - callba Function17a68f - ret c - call Function10208e - call Function102068 - xor a - ret -; 1020bf - -Function1020bf: ; 1020bf - call ClearSprites - callba Function8aba9 - ld a, c - and a - jr z, .asm_1020e8 - dec a - ld hl, $a04c - ld bc, $25 - call AddNTimes - ld d, h - ld e, l - ld a, $04 - call GetSRAMBank - call Function10208e - call Function102068 - call CloseSRAM - xor a - ret - -.asm_1020e8 - scf - ret -; 1020ea - -Function1020ea: ; 1020ea - ld hl, wdc41 - bit 4, [hl] - jr z, .quit - ld hl, wdc41 - bit 2, [hl] - jr nz, .quit - call Function10218d - ld hl, wc608 - bit 4, [hl] - jr z, .quit - ld hl, wc608 - bit 2, [hl] - jr nz, .quit - call Function102112 - jr z, .quit - and a - ret - -.quit - scf - ret -; 102112 - -Function102112: ; 102112 - ld a, $04 - call GetSRAMBank - ld hl, $a041 - ld c, 40 -.outer_loop - push hl - ld de, $c60f - ld b, 31 -.inner_loop - ld a, [de] - cp [hl] - jr nz, .not_matching - inc de - inc hl - dec b - jr nz, .inner_loop - pop hl - xor a - jr .done - -.not_matching - pop hl - ld de, 37 - add hl, de - dec c - jr nz, .outer_loop - ld a, $01 - and a - jr .done ; useless jr - -.done - push af - call CloseSRAM - pop af - ret -; 102142 - -Function102142: ; 102142 - call Function10218d - call Function102180 - ld hl, UnknownText_0x1021d1 - call MenuTextBox - ld de, SFX_LEVEL_UP - call PlaySFX - call JoyWaitAorB - call ExitMenu - call Function10219f - ld hl, UnknownText_0x1021d6 - call MenuTextBox - call YesNoBox - call ExitMenu - jr c, .asm_10217c - call Function1021b8 - jr c, .asm_10217c - call Function10218d - call Function102180 - ld hl, UnknownText_0x1021db - call PrintText - -.asm_10217c - call Function1013d6 - ret -; 102180 - -Function102180: ; 102180 - ld hl, wc608 + 1 - ld de, StringBuffer2 - ld bc, 11 - call CopyBytes - ret -; 10218d - -Function10218d: ; 10218d - ld hl, w5_dc00 - ld de, wc608 - ld bc, $26 - ld a, $05 - call FarCopyWRAM - ld de, wc608 + 1 ; useless - ret -; 10219f - -Function10219f: ; 10219f - call FadeToMenu - call Function10218d - ld de, wc608 + 1 - callba Function8ac4e - call JoyWaitAorB - call PlayClickSFX - call Function1013aa - ret -; 1021b8 - -Function1021b8: ; 1021b8 - call FadeToMenu - call Function10218d - ld de, wPlayerMoveStruct - callba Function8ac70 - ld a, c - ld [StringBuffer1], a - push af - call Function1013aa - pop af - ret -; 1021d1 - -UnknownText_0x1021d1: ; 1021d1 - text_jump UnknownText_0x1bd19a - db "@" - -UnknownText_0x1021d6: ; 1021d1 - text_jump UnknownText_0x1bd1ba - db "@" - -UnknownText_0x1021db: ; 1021d1 - text_jump UnknownText_0x1bd1dd - db "@" -; 1021e0 - -Function1021e0: ; 1021e0 - call MenuTextBox - call JoyWaitAorB - call ExitMenu - ret -; 1021ea - -UnknownText_0x1021ea: ; 1021ea - text_jump UnknownText_0x1bd201 - db "@" - -UnknownText_0x1021ef: - text_jump UnknownText_0x1bd211 - db "@" - -UnknownText_0x1021f4: - text_jump UnknownText_0x1bd223 - db "@" -; 1021f9 - -Function1021f9: ; 1021f9 - call Function102233 - ld a, $0 ; Function10234b - ld [wcd49], a - ld hl, wcd29 - bit 3, [hl] - res 3, [hl] - jr z, .asm_10220f - ld a, $1 ; Function102361 - ld [wcd49], a - -.asm_10220f - call Function1022ca - ld a, [wcd49] - ld hl, Jumptable_1022f5 - rst JumpTable - call Function102241 - call Function1022d0 - jr c, .asm_102231 - ld a, [wcd49] - bit 7, a - jr z, .asm_10220f - xor a - ld hl, wcd29 - bit 3, [hl] - ret z - scf - ret - -.asm_102231 - xor a - ret -; 102233 - -Function102233: ; 102233 - ld hl, wcd49 - ld bc, 10 - xor a - call ByteFill - call Function10304f - ret -; 102241 - -Function102241: ; 102241 - call Function10226a - call Function102274 - call Function10224b - ret -; 10224b - -Function10224b: ; 10224b - ld hl, wcd4b - bit 1, [hl] - jr nz, .asm_10225e - bit 2, [hl] - jr nz, .asm_10225e - call DelayFrame - call DelayFrame - xor a - ret - -.asm_10225e - res 1, [hl] - res 2, [hl] - callba Mobile_ReloadMapPart - scf - ret -; 10226a - -Function10226a: ; 10226a - ld hl, wcd4b - bit 0, [hl] - ret z - call Function10305d - ret -; 102274 - -Function102274: ; 102274 - ld hl, wcd4b - bit 3, [hl] - ret z - res 3, [hl] - ld de, 8 - call PlaySFX - ret -; 102283 - -Function102283: ; 102283 - ld a, $01 - ld [AttrMapEnd], a - ld hl, wcd4b - set 0, [hl] - ret -; 10228e - -Function10228e: ; 10228e - xor a - ld [AttrMapEnd], a - ld hl, wcd4b - res 0, [hl] - ret -; 102298 - -Function102298: ; 102298 - ld a, e - cp $02 - ret nz - ld hl, wcd4b - bit 6, [hl] - jr z, .asm_1022b6 - ld hl, wcd4b - bit 7, [hl] - ld hl, wcd4b - set 7, [hl] - ret nz - ld de, SFX_ELEVATOR_END - call PlaySFX - jr .asm_1022c1 - -.asm_1022b6 - ld hl, wcd4b - bit 7, [hl] - ld hl, wcd4b - res 7, [hl] - ret z - -.asm_1022c1 - call Function10304f - ld a, $01 - ld [AttrMapEnd], a - ret -; 1022ca - -Function1022ca: ; 1022ca - ld a, 30 - ld [OverworldDelay], a - ret -; 1022d0 - -Function1022d0: ; 1022d0 - callba Function10032e - ld a, [wcd2b] - and a - jr nz, .asm_1022f3 - call Function102298 - ld a, [OverworldDelay] - ld c, a - ld a, 30 - sub c - ld c, a - ld b, $03 - callba AdvanceMobileInactivityTimerAndCheckExpired - jr c, .asm_1022f3 - xor a - ret - -.asm_1022f3 - scf - ret -; 1022f5 - -Jumptable_1022f5: ; 1022f5 - dw Function10234b ; 00 - dw Function102361 ; 01 - dw Function10236e ; 02 - dw Function102387 ; 03 - dw Function1023a1 ; 04 - dw Function1025c7 ; 05 - dw Function1025dc ; 06 - dw Function1024f6 ; 07 - dw Function10250c ; 08 - dw Function1024a8 ; 09 - dw Function102591 ; 0a - dw Function1024a8 ; 0b - dw Function1025b0 ; 0c - dw Function1025bd ; 0d - dw Function102814 ; 0e - dw Function10283c ; 0f - dw Function102862 ; 10 - dw Function10286f ; 11 - dw Function1024a8 ; 12 - dw Function1028a5 ; 13 - dw Function1028ab ; 14 - dw Function1023b5 ; 15 - dw Function1023c6 ; 16 - dw Function1024af ; 17 - dw Function102416 ; 18 - dw Function102423 ; 19 - dw Function10244b ; 1a - dw Function1024af ; 1b - dw Function10246a ; 1c - dw Function102652 ; 1d - dw Function10266b ; 1e - dw Function1025e9 ; 1f - dw Function1025ff ; 20 - dw Function102738 ; 21 - dw Function102754 ; 22 - dw Function1026b7 ; 23 - dw Function1026c8 ; 24 - dw Function1028bf ; 25 - dw Function1028c6 ; 26 - dw Function1028d3 ; 27 - dw Function1028da ; 28 - dw Function1024a8 ; 29 - dw Function10248d ; 2a -; 10234b - -Function10234b: ; 10234b - call Function102d9a - call Function102dd3 - call Function102dec - ld hl, wcd4b - set 1, [hl] - ld a, [wcd49] - inc a - ld [wcd49], a - ret -; 102361 - -Function102361: ; 102361 - ld a, $cc - call Function1028e8 - ld a, [wcd49] - inc a - ld [wcd49], a - ret -; 10236e - -Function10236e: ; 10236e - call Function1028fc - ret nc - ld a, [wcd51] - cp $cc - jr z, .asm_10237f - ld a, $f2 - ld [wcd2b], a - ret - -.asm_10237f - ld a, [wcd49] - inc a - ld [wcd49], a - ret -; 102387 - -Function102387: ; 102387 - ld hl, wcd4b - set 6, [hl] - xor a - ld [wdc5f], a - ld de, MUSIC_ROUTE_30 - call PlayMusic - call Function102d9a - call Function102dd3 - ld a, $01 - ld [wMenuCursorY], a - -Function1023a1: ; 1023a1 - call Function102283 - call Function102db7 - call Function102dec - ld hl, wcd4b - set 1, [hl] - ld a, $1d - ld [wcd49], a - ret -; 1023b5 - -Function1023b5: ; 1023b5 - call Function10228e - call Function102a3b - call Function102b12 - ld a, [wcd49] - inc a - ld [wcd49], a - ret -; 1023c6 - -Function1023c6: ; 1023c6 - call Function102c48 - call Function102c87 - ld a, [wcd4c] - dec a - ld [CurPartyMon], a - xor a - ld [wPokemonWithdrawDepositParameter], a - callba RemoveMonFromPartyOrBox - ld hl, PartyCount - inc [hl] - ld a, [hli] - ld c, a - ld b, 0 - add hl, bc - ld [hl], $ff - ld a, [PartyCount] - ld [wcd4c], a - call Function102c07 - call Function102d48 - call Function102b32 - call Function102f50 - ld hl, wcd4b - set 1, [hl] - ld a, $14 - ld [wcd4e], a - ld a, 0 - ld [wcd4f], a - ld a, 0 - ld [wcd4a], a - ld a, [wcd49] - inc a - ld [wcd49], a - ret -; 102416 - -Function102416: ; 102416 - ld a, $aa - call Function1028e8 - ld a, [wcd49] - inc a - ld [wcd49], a - ret -; 102423 - -Function102423: ; 102423 - call Function102921 - ret nc - callba SaveAfterLinkTrade - callba TrainerRankings_Trades - callba BackupMobileEventIndex - ld hl, wcd4b - set 1, [hl] - ld a, 0 - ld [wcd4a], a - ld a, [wcd49] - inc a - ld [wcd49], a - ret -; 10244b - -Function10244b: ; 10244b - call Function102f32 - ld hl, wcd4b - set 1, [hl] - ld a, $19 - ld [wcd4e], a - ld a, 0 - ld [wcd4f], a - ld a, 0 - ld [wcd4a], a - ld a, [wcd49] - inc a - ld [wcd49], a - ret -; 10246a - -Function10246a: ; 10246a - call Function102d9a - ld hl, wcd29 - set 3, [hl] - call Function102e07 - ld hl, wcd4b - set 1, [hl] - ld a, $2a - ld [wcd49], a - ret -; 102480 - -Function102480: ; 102480 - ld c, $32 - call DelayFrames - ld a, [wcd49] - inc a - ld [wcd49], a - ret -; 10248d - -Function10248d: ; 10248d - ld a, [wcd49] - set 7, a - ld [wcd49], a - ret -; 102496 - -Function102496: ; 102496 - ld hl, wcd4e - dec [hl] - ret nz - ld a, 0 - ld [wcd4a], a - ld a, [wcd49] - inc a - ld [wcd49], a - ret -; 1024a8 - -Function1024a8: ; 1024a8 - callba Function1009f3 - ret c - -Function1024af: ; 1024af - call GetJoypad - ld a, [wcd4a] - ld hl, Jumptable_1024ba - rst JumpTable - ret -; 1024ba - -Jumptable_1024ba: ; 1024ba - dw Function1024c0 - dw Function1024cb - dw Function1024de -; 1024c0 - -Function1024c0: ; 1024c0 - ld hl, wcd4e - inc [hl] - ld a, [wcd4a] - inc a - ld [wcd4a], a - -Function1024cb: ; 1024cb - ld hl, wcd4e - dec [hl] - ret nz - ld a, [wcd4f] - inc a - ld [wcd4e], a - ld a, [wcd4a] - inc a - ld [wcd4a], a - -Function1024de: ; 1024de - ld hl, wcd4e - dec [hl] - jr z, .asm_1024e9 - ld a, [hJoyPressed] - and A_BUTTON | B_BUTTON - ret z - -.asm_1024e9 - ld a, 0 - ld [wcd4a], a - ld a, [wcd49] - inc a - ld [wcd49], a - ret -; 1024f6 - -Function1024f6: ; 1024f6 - call PlaceHollowCursor - ld hl, wcd4b - set 1, [hl] - ld a, [wcd4c] - call Function1028e8 - ld a, [wcd49] - inc a - ld [wcd49], a - ret -; 10250c - -Function10250c: ; 10250c - call Function1028fc - ret nc - ld a, [wcd51] - cp $0f - jr z, .asm_10254b - and a - jr z, .asm_102572 - cp $aa - jr z, .asm_102572 - cp $07 - jr nc, .asm_102572 - ld [wcd4d], a - dec a - ld [wd003], a - ld a, [wcd4c] - dec a - ld [wd002], a - call Function102b9c - call Function102bdc - jr c, .asm_10256d - callba Functionfb5dd - jr c, .asm_102568 - ld hl, wcd4b - set 1, [hl] - ld a, $0e - ld [wcd49], a - ret - -.asm_10254b - call Function103021 - ld hl, wcd4b - set 1, [hl] - ld a, 0 - ld [wcd4a], a - ld a, $1e - ld [wcd4e], a - ld a, $1e - ld [wcd4f], a - ld a, $29 - ld [wcd49], a - ret - -.asm_102568 - call Function102ff5 - jr .asm_102577 - -.asm_10256d - call Function102f85 - jr .asm_102577 - -.asm_102572 - call Function102fce - jr .asm_102577 - -.asm_102577 - ld hl, wcd4b - set 1, [hl] - ld a, 0 - ld [wcd4a], a - ld a, $1e - ld [wcd4e], a - ld a, $3c - ld [wcd4f], a - ld a, $09 - ld [wcd49], a - ret -; 102591 - -Function102591: ; 102591 - call Function102ee7 - ld hl, wcd4b - set 1, [hl] - ld a, 0 - ld [wcd4a], a - ld a, $1e - ld [wcd4e], a - ld a, $3c - ld [wcd4f], a - ld a, [wcd49] - inc a - ld [wcd49], a - ret -; 1025b0 - -Function1025b0: ; 1025b0 - ld a, $09 - call Function1028e8 - ld a, [wcd49] - inc a - ld [wcd49], a - ret -; 1025bd - -Function1025bd: ; 1025bd - call Function1028fc - ret nc - ld a, $04 - ld [wcd49], a - ret -; 1025c7 - -Function1025c7: ; 1025c7 - call Function102f6d - ld hl, wcd4b - set 1, [hl] - ld a, $0f - call Function1028e8 - ld a, [wcd49] - inc a - ld [wcd49], a - ret -; 1025dc - -Function1025dc: ; 1025dc - call Function1028fc - ret nc - ld a, [wcd49] - set 7, a - ld [wcd49], a - ret -; 1025e9 - -Function1025e9: ; 1025e9 - nop - ld hl, wcd4b - set 6, [hl] - call Function102b4e - ld hl, wcd4b - set 1, [hl] - ld a, [wcd49] - inc a - ld [wcd49], a - ret -; 1025ff - -Function1025ff: ; 1025ff - ld hl, wcd4b - set 2, [hl] - callba Function1009f3 - ret c - callba MobileMenuJoypad - ld a, [wMenuJoypadFilter] - and c - ret z - bit A_BUTTON_F, c - jr nz, .a_button - bit D_UP_F, c - jr nz, .d_up - bit D_DOWN_F, c - jr nz, .d_down - ret - -.a_button - ld hl, wcd4b - set 3, [hl] - ld a, $27 ; Function1028d3 - ld [wcd49], a - ret - -.d_up - ld a, [wMenuCursorY] - ld b, a - ld a, [OTPartyCount] - cp b - ret nz - call HideCursor - ld a, [PartyCount] - ld [wMenuCursorY], a - ld a, $1d ; Function102652 - ld [wcd49], a - ret - -.d_down - ld a, [wMenuCursorY] - cp $01 - ret nz - ld a, $23 ; Function1026b7 - ld [wcd49], a - ret -; 102652 - -Function102652: ; 102652 - nop - ld hl, wcd4b - set 6, [hl] - nop - call Function102b7b - nop - ld hl, wcd4b - set 1, [hl] - nop - ld a, [wcd49] - inc a - ld [wcd49], a - ret -; 10266b - -Function10266b: ; 10266b - ld hl, wcd4b - set 2, [hl] - callba Function1009f3 - ret c - callba MobileMenuJoypad - ld a, [wMenuJoypadFilter] - and c - ret z - bit A_BUTTON_F, c - jr nz, .a_button - bit D_DOWN_F, c - jr nz, .d_down - bit D_UP_F, c - jr nz, .d_up - ret - -.a_button - ld hl, wcd4b - set 3, [hl] - ld a, $21 ; Function102738 - ld [wcd49], a - ret - -.d_down - ld a, [wMenuCursorY] - dec a - ret nz - call HideCursor - ld a, $1f ; Function1025e9 - ld [wcd49], a - ret - -.d_up - ld a, [wMenuCursorY] - ld b, a - ld a, [PartyCount] - cp b - ret nz - ld a, $23 ; Function1026b7 - ld [wcd49], a - ret -; 1026b7 - -Function1026b7: ; 1026b7 - ld hl, wcd4b - set 6, [hl] - ld a, [wcd49] - inc a - ld [wcd49], a - ld a, 0 - ld [wcd4a], a - -Function1026c8: ; 1026c8 - call GetJoypad - callba Function1009f3 - ret c - ld a, [wcd4a] - ld hl, Jumptable_1026da - rst JumpTable - ret -; 1026da - -Jumptable_1026da: ; 1026da - dw Function1026de - dw Function1026f3 -; 1026de - -Function1026de: ; 1026de - call HideCursor - hlcoord 9, 17 - ld [hl], $ed - ld a, [wcd4a] - inc a - ld [wcd4a], a - ld hl, wcd4b - set 1, [hl] - ret -; 1026f3 - -Function1026f3: ; 1026f3 - ld a, [hJoyPressed] - bit A_BUTTON_F, a - jr nz, .asm_102723 - bit D_UP_F, a - jr nz, .asm_102712 - bit D_DOWN_F, a - jr nz, .asm_102702 - ret - -.asm_102702 - hlcoord 9, 17 - ld [hl], " " - ld a, $01 - ld [wMenuCursorY], a - ld a, $1d ; Function102652 - ld [wcd49], a - ret - -.asm_102712 - hlcoord 9, 17 - ld [hl], " " - ld a, [OTPartyCount] - ld [wMenuCursorY], a - ld a, $1f ; Function1025e9 - ld [wcd49], a - ret - -.asm_102723 - hlcoord 9, 17 - ld [hl], "▷" - ld hl, wcd4b - set 3, [hl] - ld hl, wcd4b - set 2, [hl] - ld a, $5 ; Function1025c7 - ld [wcd49], a - ret -; 102738 - -Function102738: ; 102738 - ld hl, wcd4b - set 6, [hl] - call PlaceHollowCursor - call Function1027eb - ld hl, wcd4b - set 1, [hl] - ld a, [wcd49] - inc a - ld [wcd49], a - ld a, 0 - ld [wcd4a], a - -Function102754: ; 102754 - call GetJoypad - callba Function1009f3 - ret c - ld a, [wcd4a] - ld hl, Jumptable_102766 - rst JumpTable - ret -; 102766 - -Jumptable_102766: ; 102766 - dw Function102770 - dw Function102775 - dw Function10278c - dw Function1027a0 - dw Function1027b7 -; 102770 - -Function102770: ; 102770 - ld a, $01 - ld [wcd4a], a - -Function102775: ; 102775 - hlcoord 1, 16 - ld [hl], "▶" - hlcoord 11, 16 - ld [hl], " " - ld hl, wcd4b - set 2, [hl] - ld a, [wcd4a] - inc a - ld [wcd4a], a - ret -; 10278c - -Function10278c: ; 10278c - ld a, [hJoyPressed] - bit A_BUTTON_F, a - jr nz, asm_1027c6 - bit B_BUTTON_F, a - jr nz, asm_1027e2 - bit D_RIGHT_F, a - jr nz, .asm_10279b - ret - -.asm_10279b - ld a, $03 - ld [wcd4a], a -Function1027a0: ; 1027a0 - hlcoord 1, 16 - ld [hl], " " - hlcoord 11, 16 - ld [hl], "▶" - ld hl, wcd4b - set 2, [hl] - ld a, [wcd4a] - inc a - ld [wcd4a], a - ret - -Function1027b7: ; 1027b7 - ld a, [hJoyPressed] - bit A_BUTTON_F, a - jr nz, asm_1027d1 - bit B_BUTTON_F, a - jr nz, asm_1027e2 - bit D_LEFT_F, a - jr nz, Function102770 - ret - -asm_1027c6: - ld hl, wcd4b - set 3, [hl] - ld a, $25 ; Function1028bf - ld [wcd49], a - ret - -asm_1027d1: - ld hl, wcd4b - set 3, [hl] - ld a, [wMenuCursorY] - ld [wcd4c], a - ld a, $7 ; Function1024f6 - ld [wcd49], a - ret - -asm_1027e2: - call Function102db7 - ld a, $1d ; Function102652 - ld [wcd49], a - ret -; 1027eb - -Function1027eb: ; 1027eb - hlcoord 0, 14 - ld b, 2 - ld c, 18 - ld d, h - ld e, l - callba _LinkTextbox - ld de, .Stats_Trade - hlcoord 2, 16 - call PlaceString - ret -; 102804 - -.Stats_Trade: ; 102804 - db "STATS TRADE@" -; 102814 - -Function102814: ; 102814 - ld a, [wMenuCursorY] - ld [wcd52], a - ld a, [wcd4c] - dec a - ld [wd002], a - ld a, [wcd4d] - dec a - ld [wd003], a - call Function102ea8 - ld a, [wcd49] - inc a - ld [wcd49], a - ld a, 0 - ld [wcd4a], a - ld hl, wcd4b - set 1, [hl] - -Function10283c: ; 10283c - ld hl, wcd4b - set 2, [hl] - call Function1029c3 - ret z - jr c, .asm_102852 - ld a, $10 ; Function102862 - ld [wcd49], a - ld hl, wcd4b - set 1, [hl] - ret - -.asm_102852 - ld a, $14 ; Function1028ab - ld [wcd49], a - ld hl, wcd4b - set 3, [hl] - ld hl, wcd4b - set 1, [hl] - ret -; 102862 - -Function102862: ; 102862 - ld a, $08 - call Function1028e8 - ld a, [wcd49] - inc a - ld [wcd49], a - ret -; 10286f - -Function10286f: ; 10286f - call Function1028fc - ret nc - ld a, [wcd52] - ld [wMenuCursorY], a - ld a, [wcd51] - cp $08 - jr nz, .asm_102886 - ld a, $15 ; Function1023b5 - ld [wcd49], a - ret - -.asm_102886 - call Function102ee7 - ld hl, wcd4b - set 1, [hl] - ld a, $1e - ld [wcd4e], a - ld a, $3c - ld [wcd4f], a - ld a, 0 - ld [wcd4a], a - ld a, [wcd49] - inc a - ld [wcd49], a - ret -; 1028a5 - -Function1028a5: ; 1028a5 - ld a, $4 ; Function1023a1 - ld [wcd49], a - ret -; 1028ab - -Function1028ab: ; 1028ab - ld a, [wcd52] - ld [wMenuCursorY], a - call Function102f15 - ld hl, wcd4b - set 1, [hl] - ld a, $c ; Function1025b0 - ld [wcd49], a - ret -; 1028bf - -Function1028bf: ; 1028bf - ld a, [wcd49] - inc a - ld [wcd49], a - -Function1028c6: ; 1028c6 - xor a - ld [MonType], a - call Function102bac - ld a, $1d ; Function102652 - ld [wcd49], a - ret -; 1028d3 - -Function1028d3: ; 1028d3 - ld a, [wcd49] - inc a - ld [wcd49], a - -Function1028da: ; 1028da - ld a, OTPARTYMON - ld [MonType], a - call Function102bac - ld a, $1f ; Function1025e9 - ld [wcd49], a - ret -; 1028e8 - -Function1028e8: ; 1028e8 - ld hl, wcd4b - res 6, [hl] - ld [wcd50], a - callba StartMobileInactivityTimer - ld a, 0 - ld [wcd4a], a - ret -; 1028fc - -Function1028fc: ; 1028fc - call GetJoypad - callba Function1009f3 - jr nc, .asm_102909 - and a - ret - -.asm_102909 - ld a, [wcd4a] - ld hl, Jumptable_102917 - rst JumpTable - ret nc - ld a, 0 - ld [wcd4a], a - ret -; 102917 - -Jumptable_102917: ; 102917 - dw Function102933 - dw Function10294f - dw Function10295d - dw Function10296e - dw Function102996 -; 102921 - -Function102921: ; 102921 - ld a, [wcd4a] - ld hl, Jumptable_10292f - rst JumpTable - ret nc - ld a, 0 - ld [wcd4a], a - ret -; 10292f - -Jumptable_10292f: ; 10292f - dw Function10295d - dw Function102984 -; 102933 - -Function102933: ; 102933 - ld hl, MenuDataHeader_1029bb - call LoadMenuDataHeader - call Function102e07 - ld a, $32 - ld [TextDelayFrames], a - ld hl, wcd4b - set 1, [hl] - ld a, [wcd4a] - inc a - ld [wcd4a], a - and a - ret -; 10294f - -Function10294f: ; 10294f - ld a, [TextDelayFrames] - and a - ret nz - ld a, [wcd4a] - inc a - ld [wcd4a], a - and a - ret -; 10295d - -Function10295d: ; 10295d - call Function10299e - ld a, 0 - ld [wcd27], a - ld a, [wcd4a] - inc a - ld [wcd4a], a - and a - ret -; 10296e - -Function10296e: ; 10296e - callba Function100382 - and a - ld a, [wcd27] - bit 7, a - ret z - ld a, [wcd4a] - inc a - ld [wcd4a], a - and a - ret -; 102984 - -Function102984: ; 102984 - callba Function100382 - and a - ld a, [wcd27] - bit 7, a - ret z - call Function1029af - scf - ret -; 102996 - -Function102996: ; 102996 - call Function1029af - call ExitMenu - scf - ret -; 10299e - -Function10299e: ; 10299e - ld a, $01 - ld [wccb4], a - ld a, [wcd50] - ld [wccb5], a - ld a, $aa - ld [wcd51], a - ret -; 1029af - -Function1029af: ; 1029af - ld hl, wcd4b - res 7, [hl] - ld a, [wcc61] - ld [wcd51], a - ret -; 1029bb - -MenuDataHeader_1029bb: ; 1029bb - db $40 ; flags - db 10, 3 ; start coords - db 12, 15 ; end coords - dw NULL - db 1 ; default option -; 1029c3 - -Function1029c3: ; 1029c3 - ld a, [wcd4a] - ld hl, Jumptable_1029cb - rst JumpTable - ret -; 1029cb - -Jumptable_1029cb: ; 1029cb - dw Function1029cf - dw Function1029fe -; 1029cf - -Function1029cf: ; 1029cf - call LoadStandardMenuDataHeader - hlcoord 10, 7 - ld b, 3 - ld c, 8 - ld d, h - ld e, l - callba _LinkTextbox - ld de, String_102a26 - hlcoord 12, 8 - call PlaceString - ld hl, wcd4b - set 1, [hl] - ld de, MenuData3_102a33 - call SetMenuAttributes - ld a, [wcd4a] - inc a - ld [wcd4a], a - xor a - ret -; 1029fe - -Function1029fe: ; 1029fe - callba Function1009f3 - ret c - callba MobileMenuJoypad - ld a, c - ld hl, wMenuJoypadFilter - and [hl] - ret z - push af - call ExitMenu - pop af - ld a, [wMenuCursorY] - cp $01 - jr nz, .asm_102a21 - ld a, $01 - and a - ret - -.asm_102a21 - ld a, $01 - and a - scf - ret -; 102a26 - -String_102a26: ; 102a26 - db "TRADE" - next "CANCEL" - db "@" -; 102a33 - -MenuData3_102a33: - db 8, 11 - db 2, 1 - db $80, $00 - dn 2, 0 - db A_BUTTON - -Function102a3b: ; 102a3b - ld a, [wcd30] - ld [wc74e], a - ld hl, PlayerName - ld de, wPlayerTrademonSenderName - ld bc, NAME_LENGTH - call CopyBytes - ld a, [wcd4c] - dec a - ld c, a - ld b, 0 - ld hl, PartySpecies - add hl, bc - ld a, [hl] - ld [wPlayerTrademonSpecies], a - ld a, [wcd4c] - dec a - ld hl, PartyMonOT - call SkipNames - ld de, wPlayerTrademonOTName - ld bc, NAME_LENGTH - call CopyBytes - ld a, [wcd4c] - dec a - ld hl, PartyMon1ID - call GetPartyLocation - ld a, [hli] - ld [wPlayerTrademonID], a - ld a, [hl] - ld [wPlayerTrademonID + 1], a - ld a, [wcd4c] - dec a - ld hl, PartyMon1DVs - call GetPartyLocation - ld a, [hli] - ld [wPlayerTrademonDVs], a - ld a, [hl] - ld [wPlayerTrademonDVs + 1], a - ld a, [wcd4c] - dec a - ld hl, PartyMon1Species - call GetPartyLocation - ld b, h - ld c, l - callba GetCaughtGender - ld a, c - ld [wPlayerTrademonCaughtData], a - ld hl, OTPlayerName - ld de, wOTTrademonSenderName - ld bc, NAME_LENGTH - call CopyBytes - - ld a, [wcd4d] - dec a - ld c, a - ld b, 0 - ld hl, OTPartySpecies - add hl, bc - ld a, [hl] - ld [wOTTrademonSpecies], a - ld a, [wcd4d] - dec a - ld hl, OTPartyMonOT - call SkipNames - ld de, wOTTrademonOTName - ld bc, NAME_LENGTH - call CopyBytes - ld a, [wcd4d] - dec a - ld hl, OTPartyMon1ID - call GetPartyLocation - ld a, [hli] - ld [wOTTrademonID], a - ld a, [hl] - ld [wOTTrademonID + 1], a - ld a, [wcd4d] - dec a - ld hl, OTPartyMon1DVs - call GetPartyLocation - ld a, [hli] - ld [wOTTrademonDVs], a - ld a, [hl] - ld [wOTTrademonDVs + 1], a - ld a, [wcd4d] - dec a - ld hl, OTPartyMon1Species - call GetPartyLocation - ld b, h - ld c, l - callba GetCaughtGender - ld a, c - ld [wOTTrademonCaughtData], a - ret -; 102b12 - -Function102b12: ; 102b12 - ld c, 100 - call DelayFrames - call Function102d9a - call LoadFontsBattleExtra - ld a, [wcd2f] - and a - jr nz, .asm_102b2b - callba Function108026 - jr .asm_102b31 - -.asm_102b2b - callba Function10802a - -.asm_102b31 - ret -; 102b32 - -Function102b32: ; 102b32 - ld a, [wcd4c] - dec a - ld [CurPartyMon], a - ld a, $01 - ld [wForceEvolution], a - callba EvolvePokemon - call Function102d9a - call Function102dd3 - call Function102dec - ret -; 102b4e - -Function102b4e: ; 102b4e - ld a, OTPARTYMON - ld [MonType], a - ld a, [wMenuCursorY] - push af - ld de, Unknown_102b73 - call SetMenuAttributes - pop af - ld [wMenuCursorY], a - ld a, [OTPartyCount] - ld [w2DMenuNumRows], a - ret -; 102b68 - -Function102b68: ; 102b68 ; unreferenced - xor a - ld hl, wWindowStackPointer - ld bc, $10 - call ByteFill - ret -; 102b73 - -Unknown_102b73: - db 9, 6 - db 255, 1 - db $a0, $00 - dn 1, 0 - db D_UP | D_DOWN | A_BUTTON - -Function102b7b: ; 102b7b - xor a - ld [MonType], a - ld a, [wMenuCursorY] - push af - ld de, Unknown_102b94 - call SetMenuAttributes - pop af - ld [wMenuCursorY], a - ld a, [PartyCount] - ld [w2DMenuNumRows], a - ret -; 102b94 - -Unknown_102b94: - db 1, 6 - db 255, 1 - db $a0, $00 - dn 1, 0 - db D_UP | D_DOWN | A_BUTTON - -Function102b9c: ; 102b9c - ld a, [wcd4d] - dec a - hlcoord 6, 9 - ld bc, $14 - call AddNTimes - ld [hl], $ec - ret -; 102bac - -Function102bac: ; 102bac - ld a, [wMenuCursorY] - dec a - ld [CurPartyMon], a - call LowVolume - call ClearSprites - callba _MobileStatsScreenInit - ld a, [CurPartyMon] - inc a - ld [wMenuCursorY], a - call Function102d9a - call ClearPalettes - call DelayFrame - call MaxVolume - call Function102dd3 - call Function102dec - call Function102db7 - ret -; 102bdc - -Function102bdc: ; 102bdc - ld a, [wcd4d] - dec a - ld hl, OTPartyMon1Species - call GetPartyLocation - push hl - ld a, [wcd4d] - ld c, a - ld b, 0 - ld hl, OTPartyCount - add hl, bc - ld a, [hl] - pop hl - cp EGG - jr z, .asm_102bfa - cp [hl] - jr nz, .asm_102c05 - -.asm_102bfa - ld bc, MON_LEVEL - add hl, bc - ld a, [hl] - cp MAX_LEVEL + 1 - jr nc, .asm_102c05 - and a - ret - -.asm_102c05 - scf - ret -; 102c07 - -Function102c07: ; 102c07 - call Function102c14 - call Function102c3b - call Function102c21 - call Function102c2e - ret -; 102c14 - -Function102c14: ; 102c14 - ld hl, PartySpecies - ld de, OTPartySpecies - ld bc, 1 - call Function102c71 - ret -; 102c21 - -Function102c21: ; 102c21 - ld hl, PartyMonNicknames - ld de, OTPartyMonNicknames - ld bc, 11 - call Function102c71 - ret -; 102c2e - -Function102c2e: ; 102c2e - ld hl, PartyMonOT - ld de, OTPartyMonOT - ld bc, 11 - call Function102c71 - ret -; 102c3b - -Function102c3b: ; 102c3b - ld hl, PartyMon1 - ld de, OTPartyMon1 - ld bc, $30 - call Function102c71 - ret -; 102c48 - -Function102c48: ; 102c48 - callba Function10165a - ld a, 0 - call GetSRAMBank - ld hl, $a600 - ld de, wc608 - ld bc, $2f - call Function102c71 - call CloseSRAM - ld hl, wc608 - ld de, w5_da00 - ld bc, $1e0 - ld a, $05 - call FarCopyWRAM - ret -; 102c71 - -Function102c71: ; 102c71 - ld a, [wcd4c] - dec a - call AddNTimes - push hl - ld h, d - ld l, e - ld a, [wcd4d] - dec a - call AddNTimes - pop de - call SwapBytes - ret -; 102c87 - -Function102c87: ; 102c87 - ld a, [wJumptableIndex] - push af - ld a, [wcf64] - push af - ld a, [wcd4c] - ld [wJumptableIndex], a - ld a, [PartyCount] - ld [wcf64], a - ld a, 0 - ld hl, $a600 - ld de, wc608 - ld bc, $11a - call Function102d3e - call Function102cee - ld a, 0 - ld hl, wc608 - ld de, $a600 - ld bc, $11a - call Function102d3e - ld a, [wcd4d] - ld [wJumptableIndex], a - ld a, [OTPartyCount] - ld [wcf64], a - ld a, $05 - ld hl, w5_da00 - ld de, wc608 - ld bc, $11a - call FarCopyWRAM - call Function102cee - ld a, $05 - ld hl, wc608 - ld de, w5_da00 - ld bc, $11a - call FarCopyWRAM - pop af - ld [wcf64], a - pop af - ld [wJumptableIndex], a - ret -; 102cee - -Function102cee: ; 102cee - ld a, [wJumptableIndex] - dec a - call Function102d34 - ld de, wd002 - ld bc, $2f - call CopyBytes - ld a, [wJumptableIndex] - ld c, a - ld a, $06 - sub c - ret z - ld bc, $2f - ld hl, 0 - call AddNTimes - push hl - ld a, [wJumptableIndex] - dec a - call Function102d34 - ld d, h - ld e, l - ld hl, $2f - add hl, de - pop bc - call CopyBytes - ld a, [wcf64] - dec a - call Function102d34 - ld d, h - ld e, l - ld hl, wd002 - ld bc, $2f - call CopyBytes - ret -; 102d34 - -Function102d34: ; 102d34 - ld hl, wc608 - ld bc, $2f - call AddNTimes - ret -; 102d3e - -Function102d3e: ; 102d3e - call GetSRAMBank - call CopyBytes - call CloseSRAM - ret -; 102d48 - -Function102d48: ; 102d48 - ld a, [wcd4c] - ld e, a - ld d, 0 - ld hl, PartyCount - add hl, de - ld a, [hl] - ld [wd265], a - cp EGG - jr z, .asm_102d6d - dec a - call SetSeenAndCaughtMon - ld a, [wcd4c] - dec a - ld bc, PARTYMON_STRUCT_LENGTH - ld hl, PartyMon1Happiness - call AddNTimes - ld [hl], BASE_HAPPINESS - -.asm_102d6d - ld a, [wd265] - cp UNOWN - jr nz, .asm_102d98 - ld a, [wcd4c] - dec a - ld bc, PARTYMON_STRUCT_LENGTH - ld hl, PartyMon1DVs - call AddNTimes - predef GetUnownLetter - callba UpdateUnownDex - ld a, [wFirstUnownSeen] - and a - jr nz, .asm_102d98 - ld a, [UnownLetter] - ld [wFirstUnownSeen], a - -.asm_102d98 - and a - ret -; 102d9a - -Function102d9a: ; 102d9a - ld a, " " - hlcoord 0, 0 - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT - call ByteFill - ld a, $07 - hlcoord 0, 0, AttrMap - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT - call ByteFill - callba HDMATransferAttrMapAndTileMapToWRAMBank3 - ret -; 102db7 - -Function102db7: ; 102db7 - call Function102e4f - call Function102e3e - ld hl, wcd4b - set 1, [hl] - ret -; 102dc3 - -Function102dc3: ; 102dc3 - hlcoord 0, 12 - ld b, 4 - ld c, 18 - ld d, h - ld e, l - callba _LinkTextbox - ret -; 102dd3 - -Function102dd3: ; 102dd3 - call DisableLCD - ld de, GFX_1032a2 - ld hl, VTiles0 - lb bc, BANK(GFX_1032a2), 4 - call Get2bpp - callba __LoadTradeScreenBorder - call EnableLCD - ret -; 102dec - -Function102dec: ; 102dec - ld hl, Palettes_1032e2 - ld de, UnknOBPals - ld bc, 4 palettes - ld a, $05 - call FarCopyWRAM - callba Function49742 - call SetPalettes - call DelayFrame - ret -; 102e07 - -Function102e07: ; 102e07 - hlcoord 3, 10 - ld b, 1 - ld c, 11 - ld a, [wBattleMode] - and a - jr z, .link_battle - call TextBox - jr .okay - -.link_battle -; this is idiotic - hlcoord 3, 10 - ld b, 1 - ld c, 11 - ld d, h - ld e, l - callba _LinkTextbox - -.okay - ld de, .waiting - hlcoord 4, 11 - call PlaceString - ret -; 102e32 - -.waiting ; 102e32 - db "Waiting...!@" -; 102e3e - -Function102e3e: ; 102e3e - ld de, .CANCEL - hlcoord 10, 17 - call PlaceString - ret -; 102e48 - -.CANCEL: ; 102e48 - db "CANCEL@" -; 102e4f - -Function102e4f: ; 102e4f - callba Function16d42e - callba _InitMG_Mobile_LinkTradePalMap - ld de, PlayerName - hlcoord 4, 0 - call PlaceString - ld a, $14 - ld [bc], a - ld de, OTPlayerName - hlcoord 4, 8 - call PlaceString - ld a, $14 - ld [bc], a - hlcoord 7, 1 - ld de, PartySpecies - call .PlaceSpeciesNames - hlcoord 7, 9 - ld de, OTPartySpecies - call .PlaceSpeciesNames - ret -; 102e86 - -.PlaceSpeciesNames: ; 102e86 - ld c, 0 -.count_loop - ld a, [de] - cp $ff - ret z - ld [wd265], a - push bc - push hl - push de - push hl - ld a, c - ld [hDividend], a - call GetPokemonName - pop hl - call PlaceString - pop de - inc de - pop hl - ld bc, SCREEN_WIDTH - add hl, bc - pop bc - inc c - jr .count_loop -; 102ea8 - -Function102ea8: ; 102ea8 - call Function102dc3 - ld a, [wcd4c] - dec a - ld c, a - ld b, 0 - ld hl, PartySpecies - add hl, bc - ld a, [hl] - ld [wd265], a - call GetPokemonName - ld hl, StringBuffer1 - ld de, StringBuffer2 - ld bc, 11 - call CopyBytes - ld a, [wcd4d] - dec a - ld c, a - ld b, 0 - ld hl, OTPartySpecies - add hl, bc - ld a, [hl] - ld [wd265], a - call GetPokemonName - ld hl, UnknownText_0x102ee2 - call PrintTextBoxText - ret -; 102ee2 - -UnknownText_0x102ee2: ; 102ee2 - text_jump UnknownText_0x1bd286 - db "@" - -Function102ee7: ; 102ee7 - call Function102dc3 - ld de, String_102ef4 - hlcoord 1, 14 - call PlaceString - ret -; 102ef4 - -String_102ef4: ; 102ef4 - db "Too bad! The trade" - next "was canceled!" - db "@" -; 102f15 - -Function102f15: ; 102f15 - call Function102dc3 - ld de, .TooBadTheTradeWasCanceled - hlcoord 1, 14 - call PlaceString - ret -; 102f22 - -.TooBadTheTradeWasCanceled: ; 102f22 - db "こうかんを キャンセルしました@" -; 102f32 - -Function102f32: ; 102f32 - call Function102dc3 - ld de, .TradeCompleted - hlcoord 1, 14 - call PlaceString - ret -; 102f3f - -.TradeCompleted: ; 102f3f - db "Trade completed!@" -; 102f50 - -Function102f50: ; 102f50 - call Function102dc3 - ld de, .PleaseWait - hlcoord 1, 14 - call PlaceString - ret -; 102f5d - -.PleaseWait: ; 102f5d - db "しょうしょう おまち ください@" -; 102f6d - -Function102f6d: ; 102f6d - call Function102dc3 - ld de, .Finished - hlcoord 1, 14 - call PlaceString - ret -; 102f7a - -.Finished: ; 102f7a - db "しゅうりょう します@" -; 102f85 - -Function102f85: ; 102f85 - ld a, [wd003] - ld c, a - ld b, 0 - ld hl, OTPartySpecies - add hl, bc - ld a, [hl] - ld [wd265], a - call GetPokemonName - call Function102dc3 - ld de, String_102fb2 - hlcoord 1, 14 - call PlaceString - ld de, StringBuffer1 - hlcoord 13, 14 - call PlaceString - ld de, String_102fcc - call PlaceString - ret -; 102fb2 - -String_102fb2: ; 102fb2 - db "あいてがわえらんだ " - next "いじょうあるようです!!" - db "@" -; 102fcc - -String_102fcc: ; 102fcc - db "に@" -; 102fce - -Function102fce: ; 102fce - call Function102dc3 - ld de, String_102fdb - hlcoord 1, 14 - call PlaceString - ret -; 102fdb - -String_102fdb: ; 102fdb - db "あいてがわ%せんたくに" - next "いじょうあるようです!!" - done -; 102ff5 - -Function102ff5: ; 102ff5 - call Function102dc3 - ld de, String_103002 - hlcoord 1, 14 - call PlaceString - ret -; 103002 - -String_103002: ; 103002 - db "その#を こうかんすると" - next "せんとう できなく なっちゃうよ!" - db "@" -; 103021 - -Function103021: ; 103021 - call Function102dc3 - ld de, String_10302e - hlcoord 1, 14 - call PlaceString - ret -; 10302e - -String_10302e: ; 10302e - db "あいてが ちゅうしを えらんだので" - next "こうかんを ちゅうし します" - db "@" -; 10304f - -Function10304f: ; 10304f - xor a - ld [AttrMapEnd], a - ld [wcf42], a - ld [wcf44], a - ld [wcf45], a - ret -; 10305d - -Function10305d: ; 10305d - nop - ld a, [AttrMapEnd] - and a - ret z - call Function10307f - ret c - call Function103094 - call Function10306e - ret -; 10306e - -Function10306e: ; 10306e - ld a, $01 - ld [hOAMUpdate], a - call ClearSprites - ld de, Sprites - call Function1030cd - xor a - ld [hOAMUpdate], a - ret -; 10307f - -Function10307f: ; 10307f - ld c, $02 - ld hl, wcd4b - bit 7, [hl] - jr z, .asm_10308a - ld c, $01 - -.asm_10308a - ld hl, wcf45 - inc [hl] - ld a, [hl] - cp c - ret c - xor a - ld [hl], a - ret -; 103094 - -Function103094: ; 103094 - ld hl, wcd4b - bit 7, [hl] - jr nz, .asm_1030c0 - ld a, [wcf42] - bit 7, a - jr nz, .asm_1030b2 - ld a, [wcf44] - inc a - ld [wcf44], a - cp $2c - ret nz - ld hl, wcf42 - set 7, [hl] - ret - -.asm_1030b2 - ld a, [wcf44] - dec a - ld [wcf44], a - ret nz - ld hl, wcf42 - res 7, [hl] - ret - -.asm_1030c0 - ld hl, wcf44 - ld a, [hl] - and a - jr z, .asm_1030ca - dec a - ld [hl], a - ret nz - -.asm_1030ca - ld [hl], $2c - ret -; 1030cd - -Function1030cd: ; 1030cd - ld a, [wcf44] - ld l, a - ld h, 0 - add hl, hl - add hl, hl - add hl, hl - ld bc, Unknown_103112 - add hl, bc - ld b, $30 - ld c, $08 -.asm_1030de - push hl - ld hl, wcd4b - bit 7, [hl] - pop hl - ld a, 0 - jr z, .asm_1030eb - ld a, $05 -.asm_1030eb - - add [hl] - inc hl - push hl - - add a - add a - - add Unknown_10327a % $100 - ld l, a - ld a, Unknown_10327a / $100 - adc 0 - ld h, a - - ld a, b - add [hl] - inc hl - ld [de], a - inc de - ld a, $0a - 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 - pop hl - ld a, b - add $08 - ld b, a - dec c - jr nz, .asm_1030de - ret -; 103112 - -Unknown_103112: ; 103112 - db $00, $00, $00, $00, $00, $00, $00, $00 - db $00, $00, $00, $00, $00, $00, $00, $00 - db $00, $00, $00, $00, $00, $00, $00, $00 - db $00, $00, $00, $00, $00, $00, $00, $00 - db $00, $00, $00, $00, $00, $00, $00, $00 - db $00, $00, $00, $00, $00, $00, $00, $00 - db $00, $00, $00, $00, $00, $00, $00, $00 - db $00, $00, $00, $00, $00, $00, $00, $00 - db $01, $00, $00, $00, $00, $00, $00, $00 - db $02, $01, $00, $00, $00, $00, $00, $00 - db $03, $02, $01, $00, $00, $00, $00, $00 - db $04, $03, $02, $01, $00, $00, $00, $00 - db $04, $04, $03, $02, $01, $00, $00, $00 - db $04, $04, $04, $03, $02, $01, $00, $00 - db $04, $04, $04, $04, $03, $02, $01, $00 - db $04, $04, $04, $04, $04, $03, $02, $01 - db $04, $04, $04, $04, $04, $04, $03, $02 - db $04, $04, $04, $04, $04, $04, $04, $03 - db $04, $04, $04, $04, $04, $04, $04, $04 - db $04, $04, $04, $04, $04, $04, $04, $04 - db $04, $04, $04, $04, $04, $04, $04, $04 - db $04, $04, $04, $04, $04, $04, $04, $04 - db $04, $04, $04, $04, $04, $04, $04, $04 - db $04, $04, $04, $04, $04, $04, $04, $04 - db $04, $04, $04, $04, $04, $04, $04, $04 - db $04, $04, $04, $04, $04, $04, $04, $04 - db $03, $04, $04, $04, $04, $04, $04, $04 - db $02, $03, $04, $04, $04, $04, $04, $04 - db $01, $02, $03, $04, $04, $04, $04, $04 - db $00, $01, $02, $03, $04, $04, $04, $04 - db $00, $00, $01, $02, $03, $04, $04, $04 - db $00, $00, $00, $01, $02, $03, $04, $04 - db $00, $00, $00, $00, $01, $02, $03, $04 - db $00, $00, $00, $00, $00, $01, $02, $03 - db $00, $00, $00, $00, $00, $00, $01, $02 - db $00, $00, $00, $00, $00, $00, $00, $01 - db $00, $00, $00, $00, $00, $00, $00, $00 - db $00, $00, $00, $00, $00, $00, $00, $00 - db $00, $00, $00, $00, $00, $00, $00, $00 - db $00, $00, $00, $00, $00, $00, $00, $00 - db $00, $00, $00, $00, $00, $00, $00, $00 - db $00, $00, $00, $00, $00, $00, $00, $00 - db $00, $00, $00, $00, $00, $00, $00, $00 - db $00, $00, $00, $00, $00, $00, $00, $00 - db $00, $00, $00, $00, $00, $00, $00, $00 -; 10327a - -Unknown_10327a: ; 10327a - db $00, $00, $00, $00 - db $00, $00, $01, $00 - db $00, $00, $02, $00 - db $00, $00, $03, $00 - db $00, $00, $01, $01 - db $00, $00, $00, $00 - db $00, $00, $01, $02 - db $00, $00, $02, $02 - db $00, $00, $03, $02 - db $00, $00, $01, $03 - -GFX_1032a2: -INCBIN "gfx/unknown/1032a2.2bpp" - -Palettes_1032e2: - RGB 0, 0, 0 - RGB 31, 31, 7 - RGB 20, 31, 6 - RGB 13, 20, 16 - - RGB 0, 0, 0 - RGB 7, 11, 17 - RGB 0, 0, 0 - RGB 0, 0, 0 - - RGB 0, 0, 0 - RGB 31, 24, 4 - RGB 25, 12, 0 - RGB 31, 7, 4 - - RGB 0, 0, 0 - RGB 25, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - -; 103302 - -Function103302: ; 103302 - call Function103309 - call Function103362 - ret -; 103309 - -Function103309: ; 103309 - xor a - ld [hBGMapMode], a - ld hl, Buffer1 - ld bc, 10 - xor a - call ByteFill - ld a, $04 - call GetSRAMBank - ld a, [wdc41] - ld [$a60c], a - ld [Buffer1], a - call CloseSRAM - call Function1035c6 - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - ld a, [hli] - ld c, a - ld a, [hli] - ld b, a - ld a, [hli] - ld [wd1ef], a - ld a, [hli] - ld [wd1ec], a - ld a, [hli] - ld [wd1ed], a - ld h, d - ld l, e - call Function3eea - ld hl, wd1ec - ld a, [hli] - ld h, [hl] - ld l, a - ld a, [hl] - ld [wd1ee], a - call Function1034be - call UpdateSprites - callba HDMATransferAttrMapAndTileMapToWRAMBank3 - ld a, $01 - ld [wd1f0], a - call Function10339a - ret -; 103362 - -Function103362: ; 103362 -.asm_103362 - ld a, [wd1f0] - ld [wd1f1], a - call Function1033af - call Function10339a - call Function10342c - callba HDMATransferTileMapToWRAMBank3 - ld a, [Buffer2] - bit 7, a - jr z, .asm_103362 - ld hl, Buffer2 - bit 6, [hl] - jr z, .asm_103398 - ld a, $04 - call GetSRAMBank - ld a, [Buffer1] - ld [$a60c], a - ld [wdc41], a - call CloseSRAM - xor a - ret - -.asm_103398 - scf - ret -; 10339a - -Function10339a: ; 10339a - ld a, [wd1f0] - ld [wd1f2], a - ld c, a - ld b, 0 - ld hl, wd1ec - ld a, [hli] - ld h, [hl] - ld l, a - add hl, bc - ld a, [hl] - ld [wd1f3], a - ret -; 1033af - -Function1033af: ; 1033af - call GetJoypad - ld a, [hJoyPressed] - bit D_LEFT_F, a - jr nz, .left - bit D_RIGHT_F, a - jr nz, .right - bit B_BUTTON_F, a - jr nz, .b - bit A_BUTTON_F, a - jr nz, .a - bit D_UP_F, a - jr nz, .up - bit D_DOWN_F, a - jr nz, .down - ret - -.up - ld a, [wd1f0] - dec a - ld [wd1f0], a - cp 1 - ret nc - ld a, [wd1ee] - ld [wd1f0], a - ret - -.down - ld a, [wd1f0] - inc a - ld [wd1f0], a - ld c, a - ld a, [wd1ee] - cp c - ret nc - ld a, 1 - ld [wd1f0], a - ret - -.b - call PlayClickSFX - ld hl, Buffer2 - set 7, [hl] - ret - -.a - ld a, [wd1f3] - cp 3 - jr nz, .a_return - ld de, SFX_TRANSACTION - call PlaySFX - ld hl, Buffer2 - set 7, [hl] - ld hl, Buffer2 - set 6, [hl] - ret - -.left -.right -.a_return - ld a, [wd1f3] - cp 3 - ret z - ld de, SFX_PUSH_BUTTON - call PlaySFX - ld bc, 8 - call Function10350f - ld a, [Buffer1] - xor e - ld [Buffer1], a - ret -; 10342c - -Function10342c: ; 10342c - ld a, [wd1f0] - ld [wd1f2], a - call Function103490 - call Function10343c - call Function1034a7 - ret -; 10343c - -Function10343c: ; 10343c - ld a, [wd1f3] - cp $02 - jr nz, .asm_103452 - ld bc, 1 - call Function1034f7 - ld c, $12 - ld b, $01 - call Function1034e0 - jr .asm_10345f - -.asm_103452 - ld bc, $ffed - call Function1034f7 - ld c, $12 - ld b, $02 - call Function1034e0 - -.asm_10345f - ld bc, 0 - call Function10350f - ld bc, 1 - call Function103487 - ld bc, 8 - call Function10350f - ld a, [Buffer1] - and e - ld bc, 2 - jr z, .asm_10347d - ld bc, 4 - -.asm_10347d - call Function10350f - ld bc, 11 - call Function103487 - ret -; 103487 - -Function103487: ; 103487 - push de - call Function1034f7 - pop de - call PlaceString - ret -; 103490 - -Function103490: ; 103490 - hlcoord 0, 15 - ld c, $14 - ld b, $03 - call Function1034e0 - ld bc, 6 - call Function10350f - hlcoord 1, 16 - call PlaceString - ret -; 1034a7 - -Function1034a7: ; 1034a7 - ld a, [wd1f1] - ld [wd1f2], a - ld bc, 10 - call Function1034f7 - ld [hl], $7f - ld bc, 10 - call Function1034f1 - ld [hl], $ed - ret -; 1034be - -Function1034be: ; 1034be - ld a, $01 - ld [wd1f2], a - ld hl, wd1ec - ld a, [hli] - ld h, [hl] - ld l, a - ld a, [hli] -.asm_1034ca - push af - ld a, [hli] - push hl - ld [wd1f3], a - call Function10343c - ld hl, wd1f2 - inc [hl] - pop hl - pop af - dec a - jr nz, .asm_1034ca - call Function103490 - ret -; 1034e0 - -Function1034e0: ; 1034e0 - push bc - push hl - call ClearBox - pop hl - ld bc, AttrMap - TileMap - add hl, bc - pop bc - ld a, $06 - call FillBoxWithByte - ret -; 1034f1 - -Function1034f1: ; 1034f1 - ld a, [wd1f0] - ld [wd1f2], a - -Function1034f7: ; 10134f7 - hlcoord 0, 0 - add hl, bc - ld a, [wd1ef] - ld bc, SCREEN_WIDTH - call AddNTimes - ld a, [wd1f2] - dec a - ld bc, 40 - call AddNTimes - ret -; 10350f - -Function10350f: ; 10350f - ld a, [wd1f3] - push bc - ld hl, Unknown_103522 - ld bc, 9 - call AddNTimes - pop bc - add hl, bc - ld a, [hli] - ld d, [hl] - ld e, a - ret -; 103522 - -Unknown_103522: ; 103522 - dw String_103546 - dw String_103598 - dw String_1035a0 - dw String_10355f - db $01 - dw String_10354f - dw String_1035a8 - dw String_1035b1 - dw String_103571 - db $02 - dw String_103557 - dw String_1035ba - dw String_1035bd - dw String_103585 - db $04 - dw String_103545 - dw String_1035c1 - dw String_1035c1 - dw String_103545 - -String_103545: db "@" -String_103546: db "せんとう アニメ@" -String_10354f: db "でんわばんごう@" -String_103557: db "めいしこうかん@" -String_10355f: db "でんわを かけるひとが きめられる@" -String_103571: db "でんわばんごうの にゅうりょくのしかた@" -String_103585: db "あたらしいめいしが あれば こうかん@" -String_103598: db "とばして みる@" -String_1035a0: db "じっくり みる@" -String_1035a8: db "めいしからえらぶ@" -String_1035b1: db "すうじで いれる@" -String_1035ba: db "する@" -String_1035bd: db "しない@" -String_1035c1: db "けってい@" -; 1035c6 - -Function1035c6: ; 1035c6 - callba Function10138b - ld b, 0 - ld hl, Unknown_1035d7 - add hl, bc - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - ret -; 1035d7 - -Unknown_1035d7: ; 1035d7 - dw Unknown_1035e7 - dw Unknown_1035f3 - dw Unknown_103608 - dw Unknown_103608 - dw Unknown_1035fe - dw AskMobileOrCable - dw AskMobileOrCable - dw AskMobileOrCable - -Unknown_1035e7: ; 1035e7 - dwcoord 0, 6 - db $12, $07, $07 - dw .this -.this - db 4, 2, 1, 0, 3 - -Unknown_1035f3: ; 1035f3 - dwcoord 0, 7 - db $12, $06, $09 - dw .this -.this - db 3, 2, 1, 3 - -Unknown_1035fe: ; 1035fe - dwcoord 0, 9 - db $12, $04, $0b - dw .this -.this - db 2, 0, 3 - -Unknown_103608: ; 103608 - dwcoord 0, 9 - db $12, $04, $0b - dw .this -.this - db 2, 2, 3 -; 103612 - -AskMobileOrCable: ; 103612 - ld hl, MenuDataHeader_103640 - call LoadMenuDataHeader - ld a, [wMobileOrCable_LastSelection] - and $0f - jr z, .skip_load - ld [wMenuCursorBuffer], a - -.skip_load - call VerticalMenu - call CloseWindow - jr c, .pressed_b - ld a, [wMenuCursorY] - ld [ScriptVar], a - ld c, a - ld a, [wMobileOrCable_LastSelection] - and $f0 - or c - ld [wMobileOrCable_LastSelection], a - ret - -.pressed_b - xor a - ld [ScriptVar], a - ret -; 103640 - -MenuDataHeader_103640: ; 103640 - db $40 ; flags - db 6, 13 ; start coords - db 11, 19 ; end coords - dw MenuData2_103648 - db 1 ; default option - -MenuData2_103648: ; 103648 - db $80 ; flags - db 2 - db "モバイル@" - db "ケーブル@" -; 103654 - -Function103654: ; 103654 - callba Mobile_AlwaysReturnNotCarry - bit 7, c - jr nz, .asm_103666 - ld hl, wcd2a - res 5, [hl] - ld c, $02 - ret - -.asm_103666 - ld hl, wcd2a - set 5, [hl] - ld c, $01 - ret -; 10366e - -Mobile_SelectThreeMons: ; 10366e - callba Mobile_AlwaysReturnNotCarry - bit 7, c - jr z, .asm_10369b - ld hl, UnknownText_0x10375d - call PrintText - call YesNoBox - jr c, .asm_103696 - callba CheckForMobileBattleRules - jr nc, .asm_103690 - call JoyWaitAorB - jr .asm_103696 - -.asm_103690 - ld a, $01 - ld [ScriptVar], a - ret - -.asm_103696 - xor a - ld [ScriptVar], a - ret - -.asm_10369b - ld hl, wMobileOrCable_LastSelection - bit 7, [hl] - set 7, [hl] - jr nz, .asm_1036b5 - ld hl, UnknownText_0x103762 - call PrintText - call YesNoBox - jr c, .asm_1036b5 - call Function1036f9 - call JoyWaitAorB - -.asm_1036b5 - call Function103700 - jr c, .asm_1036f4 - ld hl, MenuDataHeader_103747 - call LoadMenuDataHeader - call VerticalMenu - call ExitMenu - jr c, .asm_1036f4 - ld a, [wMenuCursorY] - cp $01 - jr z, .asm_1036d9 - cp $02 - jr z, .asm_1036f4 - cp $03 - jr z, .asm_1036ec - jr .asm_1036b5 - -.asm_1036d9 - callba CheckForMobileBattleRules - jr nc, .asm_1036e6 - call JoyWaitAorB - jr .asm_1036f4 - -.asm_1036e6 - ld a, $01 - ld [ScriptVar], a - ret - -.asm_1036ec - call Function1036f9 - call JoyWaitAorB - jr .asm_1036b5 - -.asm_1036f4 - xor a - ld [ScriptVar], a - ret -; 1036f9 - -Function1036f9: ; 1036f9 - ld hl, UnknownText_0x103767 - call PrintText - ret -; 103700 - -Function103700: ; 103700 - ld c, $0a - ld hl, SwarmFlags - bit 4, [hl] - jr z, .asm_10370f - callba Function1008a6 - -.asm_10370f - ld a, c - ld [StringBuffer2], a - ld a, [StringBuffer2] - cp $05 - jr nc, .asm_103724 - cp $02 - jr nc, .asm_10372c - cp $01 - jr nc, .asm_103734 - jr .asm_10373c - -.asm_103724 - ld hl, UnknownText_0x10376c - call PrintText - and a - ret - -.asm_10372c - ld hl, UnknownText_0x103771 - call PrintText - and a - ret - -.asm_103734 - ld hl, UnknownText_0x103776 - call PrintText - and a - ret - -.asm_10373c - ld hl, UnknownText_0x10377b - call PrintText - call JoyWaitAorB - scf - ret -; 103747 - -MenuDataHeader_103747: ; 103747 - db $40 ; flags - db 5, 13 ; start coords - db 11, 19 ; end coords - dw MenuData2_10374f - db 1 ; default option - -MenuData2_10374f: ; 10374f - db $c0 ; flags - db 3 - db "はい@" - db "やめる@" - db "せつめい@" -; 10375d - -UnknownText_0x10375d: ; 0x10375d - text_jump UnknownText_0x1c422a - db "@" -; 0x103762 -UnknownText_0x103762: ; 0x103762 - text_jump UnknownText_0x1c4275 - db "@" -; 0x103767 -UnknownText_0x103767: ; 0x103767 - text_jump UnknownText_0x1c4298 - db "@" -; 0x10376c -UnknownText_0x10376c: ; 0x10376c - text_jump UnknownText_0x1c439c - db "@" -; 0x103771 -UnknownText_0x103771: ; 0x103771 - text_jump UnknownText_0x1c43dc - db "@" -; 0x103776 -UnknownText_0x103776: ; 0x103776 - text_jump UnknownText_0x1c4419 - db "@" -; 0x10377b -UnknownText_0x10377b: ; 0x10377b - text_jump UnknownText_0x1c445a - db "@" -; 0x103780 - -Function103780: ; 103780 - ld a, [wd265] - push af - call Function10378c - pop af - ld [wd265], a - ret -; 10378c - -Function10378c: ; 10378c - ld c, 0 - ld hl, SwarmFlags - bit 4, [hl] - jr nz, .already_set - ld c, $01 - ld hl, SwarmFlags - set 4, [hl] - -.already_set - push bc - callba Link_SaveGame - pop bc - jr c, .failed_to_save - ld a, $01 - ld [ScriptVar], a - ld a, c - and a - ret z - callba Function1006fd - ret - -.failed_to_save - xor a - ld [ScriptVar], a - ld a, c - and a - ret z - ld hl, SwarmFlags - res 4, [hl] - ret -; 1037c2 - -Function1037c2: ; 1037c2 - call Function103823 - jr c, .nope - ld a, [wdc5f] - and a - jr z, .nope - ld hl, UnknownText_0x1037e6 - call PrintText - call YesNoBox - jr c, .nope - ld a, $01 - ld [ScriptVar], a - ret - -.nope - xor a - ld [wdc5f], a - ld [ScriptVar], a - ret -; 1037e6 - -UnknownText_0x1037e6: ; 0x1037e6 - text_jump UnknownText_0x1c449c - db "@" -; 0x1037eb - -Function1037eb: ; 1037eb - call Function103823 - jr nc, .asm_103807 - ld hl, UnknownText_0x103819 - call PrintText - call JoyWaitAorB - ld hl, UnknownText_0x10381e - call PrintText - call JoyWaitAorB - xor a - ld [ScriptVar], a - ret - -.asm_103807 - ld a, [wdc60] - and a - jr nz, .asm_103813 - ld a, $01 - ld [ScriptVar], a - ret - -.asm_103813 - ld a, $02 - ld [ScriptVar], a - ret -; 103819 - -UnknownText_0x103819: ; 0x103819 - text_jump UnknownText_0x1c44c0 - db "@" -; 0x10381e - -UnknownText_0x10381e: ; 0x10381e - text_jump UnknownText_0x1c44e7 - db "@" -; 0x103823 - -Function103823: ; 103823 - callba Mobile_AlwaysReturnNotCarry - bit 7, c - jr nz, .asm_103838 - callba Function1008a6 - ld a, c - cp $01 - jr c, .asm_10383a - -.asm_103838 - xor a - ret - -.asm_10383a - scf - ret -; 10383c - -Function10383c: ; 10383c - ld a, $01 - ld [wdc60], a - xor a - ld hl, wPlayerMonSelection - ld [hli], a - ld [hli], a - ld [hl], a - ld hl, UnknownText_0x103876 - call PrintText - call JoyWaitAorB - callba Script_reloadmappart - callba Function4a94e - jr c, .asm_103870 - ld hl, wd002 - ld de, wPlayerMonSelection - ld bc, 3 - call CopyBytes - xor a - ld [ScriptVar], a - ret - -.asm_103870 - ld a, $01 - ld [ScriptVar], a - ret -; 103876 - -UnknownText_0x103876: ; 0x103876 - text_jump UnknownText_0x1c4508 - db "@" -; 0x10387b - -Function10387b: ; 10387b - callba Mobile_AlwaysReturnNotCarry - bit 7, c - ret nz - callba Function1008a6 - ld a, c - ld [StringBuffer2], a - ld hl, UnknownText_0x103898 - call PrintText - call JoyWaitAorB - ret -; 103898 - -UnknownText_0x103898: ; 0x103898 - text_jump UnknownText_0x1c4525 - db "@" -; 0x10389d diff --git a/misc/mobile_41.asm b/misc/mobile_41.asm deleted file mode 100755 index 37e10a01e..000000000 --- a/misc/mobile_41.asm +++ /dev/null @@ -1,1115 +0,0 @@ -SECTION "bank41_2", ROMX - -; These functions deal with miscellaneous statistics -; which were used for Trainer Rankings in Pokémon News. - -; Copies certain values at the time the player enters the Hall of Fame. -TrainerRankings_HallOfFame2:: mobile ; 0x105ef6 - ld a, BANK(sTrainerRankingGameTimeHOF) - call GetSRAMBank - - ld hl, GameTimeHours - ld de, sTrainerRankingGameTimeHOF - ld bc, 4 - call CopyBytes - - ld hl, sTrainerRankingStepCount - ld de, sTrainerRankingStepCountHOF - ld bc, 4 - call CopyBytes - - ; sTrainerRankingHealings is only a 3-byte value. - ; One extraneous byte is copied from sTrainerRankingMysteryGift. - ld hl, sTrainerRankingHealings - ld de, sTrainerRankingHealingsHOF - ld bc, 4 - call CopyBytes - - ld hl, sTrainerRankingBattles - ld de, sTrainerRankingBattlesHOF - ld bc, 3 - call CopyBytes - - call UpdateTrainerRankingsChecksum - call CloseSRAM - ret -; 105f33 - -TrainerRankings_MagikarpLength: mobile ; 105f33 - ld a, BANK(sTrainerRankingLongestMagikarp) - call GetSRAMBank - ld de, Buffer1 - ld hl, sTrainerRankingLongestMagikarp - - ; Is this Magikarp the longest measured? - ld a, [de] - cp [hl] - jr z, .isLowByteHigher - jr nc, .newRecordLongest - jr .checkShortest - -.isLowByteHigher - inc hl - inc de - ld a, [de] - cp [hl] - dec hl - dec de - jr c, .checkShortest - -.newRecordLongest - ld a, [de] - inc de - ld [hli], a - ld a, [de] - dec de - ld [hl], a - -.checkShortest - ; First, check if the record for shortest Magikarp is 0. - ; This seems unnecessary, because the value is initialized to 100.0 cm. - ld hl, sTrainerRankingShortestMagikarp - ld a, [hli] - or [hl] - dec hl - jr z, .newRecordShortest - - ; Now check if this Magikarp is the shortest - ld a, [de] - cp [hl] - jr z, .isLowByteLower - jr c, .newRecordShortest - jr .done - -.isLowByteLower - inc hl - inc de - ld a, [de] - cp [hl] - jr nc, .done - dec hl - dec de - -.newRecordShortest - ld a, [de] - inc de - ld [hli], a - ld a, [de] - ld [hl], a - -.done - call UpdateTrainerRankingsChecksum - call CloseSRAM - ret -; 105f79 - -TrainerRankings_BugContestScore: mobile ; 105f79 - ld a, BANK(sTrainerRankingBugContestScore) - call GetSRAMBank - ld a, [hProduct] - ld hl, sTrainerRankingBugContestScore - cp [hl] - jr z, .isLowByteHigher - jr nc, .newHighScore - jr .done - -.isLowByteHigher - inc hl - ld a, [hMultiplicand] - cp [hl] - jr c, .done - dec hl - -.newHighScore - ld a, [hProduct] - ld [hli], a - ld a, [hMultiplicand] - ld [hl], a - -.done - call UpdateTrainerRankingsChecksum - call CloseSRAM - ret -; 105f9f - -TrainerRankings_AddToSlotsWinStreak: mobile ; 105f9f - ld a, BANK(sTrainerRankingCurrentSlotsStreak) - call GetSRAMBank - - ; Increment the current streak - ld hl, sTrainerRankingCurrentSlotsStreak + 1 - inc [hl] - jr nz, .noCarry - dec hl - inc [hl] - inc hl - -.noCarry - dec hl - ; Now check if this is a new record for longest streak - ld a, [sTrainerRankingLongestSlotsStreak] - cp [hl] - jr z, .isLowByteHigher - jr c, .newRecordStreak - jr .done - -.isLowByteHigher - inc hl - ld a, [sTrainerRankingLongestSlotsStreak + 1] - cp [hl] - jr nc, .done - dec hl - -.newRecordStreak - ld a, [hli] - ld [sTrainerRankingLongestSlotsStreak], a - ld a, [hl] - ld [sTrainerRankingLongestSlotsStreak + 1], a - -.done - call UpdateTrainerRankingsChecksum - call CloseSRAM - ret -; 105fd0 - -TrainerRankings_EndSlotsWinStreak: mobile ; 105fd0 - ld a, BANK(sTrainerRankingCurrentSlotsStreak) - call GetSRAMBank - ld hl, sTrainerRankingCurrentSlotsStreak - xor a - ld [hli], a - ld [hl], a - call UpdateTrainerRankingsChecksum - call CloseSRAM - ret -; 105fe3 - -TrainerRankings_AddToSlotsPayouts: mobile ; 105fe3 - ld a, BANK(sTrainerRankingTotalSlotsPayouts) - call GetSRAMBank - ld hl, sTrainerRankingTotalSlotsPayouts + 3 - ld a, e - add [hl] - ld [hld], a - ld a, d - adc [hl] - ld [hld], a - jr nc, .done - inc [hl] - jr nz, .done - dec hl - inc [hl] - jr nz, .done - ld a, $ff - ld [hli], a - ld [hli], a - ld [hli], a - ld [hl], a - -.done - call UpdateTrainerRankingsChecksum - call CloseSRAM - ret -; 106008 - -TrainerRankings_AddToBattlePayouts: mobile ; 106008 - ld a, BANK(sTrainerRankingTotalBattlePayouts) - call GetSRAMBank - ld hl, sTrainerRankingTotalBattlePayouts + 3 - ld a, [bc] - dec bc - add [hl] - ld [hld], a - ld a, [bc] - dec bc - adc [hl] - ld [hld], a - ld a, [bc] - adc [hl] - ld [hld], a - jr nc, .done - inc [hl] - jr nz, .done - ld a, $ff - ld [hli], a - ld [hli], a - ld [hli], a - ld [hl], a - -.done - call UpdateTrainerRankingsChecksum - call CloseSRAM - ret -; 10602e - -TrainerRankings_StepCount: mobile ; 10602e (41:602e) - ld hl, sTrainerRankingStepCount - jp TrainerRankings_Increment4Byte - -; Unreferenced in English version. -TrainerRankings_BattleTowerWins: mobile ; 106035 - ld a, $5 - call GetSRAMBank - ld a, [$aa8d] - and a - call CloseSRAM - ret nz - ld hl, sTrainerRankingBattleTowerWins - jp TrainerRankings_Increment2Byte - -TrainerRankings_TMsHMsTaught: mobile ; 106049 - ld hl, sTrainerRankingTMsHMsTaught - jp TrainerRankings_Increment3Byte - -TrainerRankings_Battles: mobile ; 106050 - ld a, [BattleType] - cp BATTLETYPE_TUTORIAL ; Exclude the Dude’s tutorial battle - ret z - ld hl, sTrainerRankingBattles - jp TrainerRankings_Increment3Byte - -TrainerRankings_WildBattles: mobile ; 10605d - ld a, [BattleType] - cp BATTLETYPE_TUTORIAL ; Exclude the Dude’s tutorial battle - ret z - ld hl, sTrainerRankingWildBattles - jp TrainerRankings_Increment3Byte - -TrainerRankings_TrainerBattles: mobile ; 10606a - ld hl, sTrainerRankingTrainerBattles - jp TrainerRankings_Increment3Byte - -TrainerRankings_Unused1: mobile ; 106071 - ld hl, sTrainerRankingUnused1 - jp TrainerRankings_Increment3Byte - -TrainerRankings_HallOfFame:: mobile ; 0x106078 - ld hl, sTrainerRankingHOFEntries - jp TrainerRankings_Increment3Byte - -TrainerRankings_WildMonsCaught: mobile ; 10607f (41:607f) - ld hl, sTrainerRankingWildMonsCaught - jp TrainerRankings_Increment3Byte - -TrainerRankings_HookedEncounters: mobile ; 106086 - ld hl, sTrainerRankingHookedEncounters - jp TrainerRankings_Increment3Byte - -TrainerRankings_EggsHatched: mobile ; 10608d (41:608d) - ld hl, sTrainerRankingEggsHatched - jp TrainerRankings_Increment3Byte - -TrainerRankings_MonsEvolved: mobile ; 106094 - ld hl, sTrainerRankingMonsEvolved - jp TrainerRankings_Increment3Byte - -TrainerRankings_FruitPicked: mobile ; 10609b - ld hl, sTrainerRankingFruitPicked - jp TrainerRankings_Increment3Byte - -TrainerRankings_Healings: mobile ; 1060a2 - ld hl, sTrainerRankingHealings - jp TrainerRankings_Increment3Byte - -TrainerRankings_MysteryGift: mobile ; 1060a9 (41:60a9) - ld hl, sTrainerRankingMysteryGift - jr TrainerRankings_Increment3Byte - -TrainerRankings_Trades: mobile ; 1060af - ld hl, sTrainerRankingTrades - jr TrainerRankings_Increment3Byte - -TrainerRankings_Fly: mobile ; 1060b5 - ld hl, sTrainerRankingFly - jr TrainerRankings_Increment3Byte - -TrainerRankings_Surf: mobile ; 1060bb - ld hl, sTrainerRankingSurf - jr TrainerRankings_Increment3Byte - -TrainerRankings_Waterfall: mobile ; 1060c1 - ld hl, sTrainerRankingWaterfall - jr TrainerRankings_Increment3Byte - -TrainerRankings_WhiteOuts: mobile ; 1060c7 - ld hl, sTrainerRankingWhiteOuts - jr TrainerRankings_Increment3Byte - -TrainerRankings_LuckyNumberShow: mobile ; 1060cd - ld hl, sTrainerRankingLuckyNumberShow - jr TrainerRankings_Increment2Byte - -TrainerRankings_PhoneCalls: mobile ; 1060d3 - ld hl, sTrainerRankingPhoneCalls - jr TrainerRankings_Increment3Byte - -TrainerRankings_Unused2: mobile ; 1060df - ld hl, sTrainerRankingUnused2 - jr TrainerRankings_Increment3Byte - -TrainerRankings_LinkBattles: mobile ; 1060df - ld hl, sTrainerRankingLinkBattles - jr TrainerRankings_Increment3Byte - -TrainerRankings_Splash: mobile ; 1060e5 - ; Only counts if it’s the player’s turn - ld a, [hBattleTurn] - and a - ret nz - ld hl, sTrainerRankingSplash - jr TrainerRankings_Increment3Byte - -TrainerRankings_TreeEncounters: mobile ; 1060ef - ld hl, sTrainerRankingTreeEncounters - jr TrainerRankings_Increment3Byte - -TrainerRankings_Unused3: mobile ; 1060f5 - ld hl, sTrainerRankingUnused3 - jr TrainerRankings_Increment3Byte - -TrainerRankings_ColosseumWins: mobile ; win - ld hl, sTrainerRankingColosseumWins - jr TrainerRankings_Increment3Byte - -TrainerRankings_ColosseumLosses: mobile ; lose - ld hl, sTrainerRankingColosseumLosses - jr TrainerRankings_Increment3Byte -; 106107 - -TrainerRankings_ColosseumDraws: mobile ; draw - ld hl, sTrainerRankingColosseumDraws - jr TrainerRankings_Increment3Byte -; 10610d - -; Counts uses of both Selfdestruct and Explosion. -TrainerRankings_Selfdestruct: mobile ; 10610d - ; Only counts if it’s the player’s turn - ld a, [hBattleTurn] - and a - ret nz - ld hl, sTrainerRankingSelfdestruct - jr TrainerRankings_Increment3Byte -; 106117 - -TrainerRankings_Increment4Byte: ; 106117 - push bc - ld bc, 3 - jr TrainerRankings_Increment -; 10611d - -TrainerRankings_Increment3Byte: ; 10611d - push bc - ld bc, 2 - jr TrainerRankings_Increment -; 106123 - -TrainerRankings_Increment2Byte: ; 106123 - push bc - ld bc, 1 - jr TrainerRankings_Increment -; 106129 - -; unused -TrainerRankings_Increment1Byte: ; 106129 - push bc - ld bc, 0 - -; Increments a big-endian value of bc + 1 bytes at hl -TrainerRankings_Increment: ; 10612d - ld a, BANK(sTrainerRankings) - call GetSRAMBank - push hl - push de - ld e, c - inc e -.asm_106136 - ld a, [hli] - inc a - jr nz, .asm_10613d - dec e - jr nz, .asm_106136 - -.asm_10613d - pop de - pop hl - jr z, .asm_10614d - add hl, bc -.asm_106142 - inc [hl] - jr nz, .asm_10614d - ld a, c - and a - jr z, .asm_10614d - dec hl - dec c - jr .asm_106142 - -.asm_10614d - call UpdateTrainerRankingsChecksum - call CloseSRAM - pop bc - ret -; 106155 - -; Used when SRAM bank 5 isn’t already loaded — what’s the point of this? -UpdateTrainerRankingsChecksum2: mobile ; 106155 - ld a, BANK(sTrainerRankings) - call GetSRAMBank - call UpdateTrainerRankingsChecksum - call CloseSRAM - ret -; 106162 - -UpdateTrainerRankingsChecksum: ; 106162 - push de - call CalculateTrainerRankingsChecksum - ld hl, sTrainerRankingsChecksum - ld [hl], d - inc hl - ld [hl], e - pop de - ret -; 10616e - -CalculateTrainerRankingsChecksum: ; 10616e - push bc - ld hl, sTrainerRankings - ld bc, sTrainerRankingsChecksum - sTrainerRankings - xor a - ld de, 0 -.asm_106179 - ld a, e - add [hl] - ld e, a - jr nc, .asm_10617f - inc d - -.asm_10617f - inc hl - dec bc - ld a, b - or c - jr nz, .asm_106179 - pop bc - ret -; 106187 - - -BackupMobileEventIndex: ; 106187 - ld a, BANK(sMobileEventIndex) - call GetSRAMBank - ld a, [sMobileEventIndex] - push af - ld a, BANK(sMobileEventIndexBackup) - call GetSRAMBank - pop af - ld [sMobileEventIndexBackup], a - call CloseSRAM - ret -; 10619d - - -RestoreMobileEventIndex: ; 10619d (41:619d) - ld a, BANK(sMobileEventIndexBackup) - call GetSRAMBank - ld a, [sMobileEventIndexBackup] - push af - ld a, BANK(sMobileEventIndex) - call GetSRAMBank - pop af - ld [sMobileEventIndex], a - call CloseSRAM - ret -; 1061b3 (41:61b3) - -; Unreferenced in English version. -VerifyTrainerRankingsChecksum: ; 1061b3 - call CalculateTrainerRankingsChecksum - ld hl, sTrainerRankingsChecksum - ld a, d - cp [hl] - ret nz - inc hl - ld a, e - cp [hl] - ret -; 1061c0 - -DeleteMobileEventIndex: ; 1061c0 (41:61c0) - ld a, BANK(sMobileEventIndex) - call GetSRAMBank - xor a - ld [sMobileEventIndex], a - call CloseSRAM - ret -; 1061cd (41:61cd) - -; Used in the Japanese version to initialize Trainer Rankings data -; for a new save file. Unreferenced in the English version. -InitializeTrainerRankings: - ld hl, sTrainerRankings - ld bc, sTrainerRankingsEnd - sTrainerRankings - xor a - call ByteFill - - ; Initialize the shortest Magikarp to 100.0 cm - ld hl, sTrainerRankingShortestMagikarp - ld a, $3 - ld [hli], a - ld [hl], $e8 - - call UpdateTrainerRankingsChecksum - ld hl, sTrainerRankings - ld de, sTrainerRankingsBackup - ld bc, sTrainerRankingsEnd - sTrainerRankings - call CopyBytes - ret -; 1061ef - - -_MobilePrintNum:: ; 1061ef -; Supports signed 31-bit integers (up to 10 digits) -; b: Bits 0-4 = # bytes -; Bit 7 = set if negative -; c: Number of digits -; de: highest byte of number to convert -; hl: where to print the converted string - push bc - xor a - ld [hPrintNum1], a - ld [hPrintNum2], a - ld [hPrintNum3], a - ld a, b - and $f - cp $1 - jr z, .one_byte - cp $2 - jr z, .two_bytes - cp $3 - jr z, .three_bytes -; four bytes - ld a, [de] - ld [hPrintNum1], a - inc de - -.three_bytes - ld a, [de] - ld [hPrintNum2], a - inc de - -.two_bytes - ld a, [de] - ld [hPrintNum3], a - inc de - -.one_byte - ld a, [de] - ld [hPrintNum4], a - inc de - - push de - xor a - ld [hPrintNum9], a - ld a, b - ld [hPrintNum10], a - ld a, c - cp 2 - jr z, .two_digits - ld de, ._2 - cp 3 - jr z, .three_to_nine_digits - ld de, ._3 - cp 4 - jr z, .three_to_nine_digits - ld de, ._4 - cp 5 - jr z, .three_to_nine_digits - ld de, ._5 - cp 6 - jr z, .three_to_nine_digits - ld de, ._6 - cp 7 - jr z, .three_to_nine_digits - ld de, ._7 - cp 8 - jr z, .three_to_nine_digits - ld de, ._8 - cp 9 - jr z, .three_to_nine_digits - ld de, ._9 - -.three_to_nine_digits - inc de - inc de - inc de - dec a - dec a - -.digit_loop - push af - call .Function1062b2 - call .Function1062ff -rept 4 - inc de -endr - pop af - dec a - jr nz, .digit_loop - -.two_digits - ld c, 0 - ld a, [hPrintNum4] -.mod_ten_loop - cp 10 - jr c, .simple_divide_done - sub 10 - inc c - jr .mod_ten_loop - -.simple_divide_done - ld b, a - ld a, [hPrintNum9] - or c - ld [hPrintNum9], a - jr nz, .create_digit - call .LoadMinusTenIfNegative - jr .done - -.create_digit - ld a, "0" - add c - ld [hl], a - -.done - call .Function1062ff - ld a, "0" - add b - ld [hli], a - pop de - pop bc - ret -; 106292 - -._9 dd 1000000000 -._8 dd 100000000 -._7 dd 10000000 -._6 dd 1000000 -._5 dd 100000 -._4 dd 10000 -._3 dd 1000 -._2 dd 100 -; 1062b2 - -.Function1062b2: ; 1062b2 - ld c, $0 -.asm_1062b4 - ld a, [de] - dec de - ld b, a - ld a, [hPrintNum4] - sub b - ld [hPrintNum8], a - ld a, [de] - dec de - ld b, a - ld a, [hPrintNum3] - sbc b - ld [hPrintNum7], a - ld a, [de] - dec de - ld b, a - ld a, [hPrintNum2] - sbc b - ld [hPrintNum6], a - ld a, [de] - inc de - inc de - inc de - ld b, a - ld a, [hPrintNum1] - sbc b - ld [hPrintNum5], a - jr c, .asm_1062eb - ld a, [hPrintNum5] - ld [hPrintNum1], a - ld a, [hPrintNum6] - ld [hPrintNum2], a - ld a, [hPrintNum7] - ld [hPrintNum3], a - ld a, [hPrintNum8] - ld [hPrintNum4], a - inc c - jr .asm_1062b4 - -.asm_1062eb - ld a, [hPrintNum9] - or c - jr z, .LoadMinusTenIfNegative - ld a, -10 - add c - ld [hl], a - ld [hPrintNum9], a - ret - -.LoadMinusTenIfNegative: - ld a, [hPrintNum10] - bit 7, a - ret z - - ld [hl], -10 - ret -; 1062ff - -.Function1062ff: ; 1062ff - ld a, [hPrintNum10] - bit 7, a - jr nz, .asm_10630d - bit 6, a - jr z, .asm_10630d - ld a, [hPrintNum9] - and a - ret z - -.asm_10630d - inc hl - ret -; 10630f - -; functions related to the cable club and various NPC scripts referencing mobile communications - -Mobile_DummyReturnFalse: ; 10630f - xor a - ld [ScriptVar], a - ret -; 106314 - -MobileFn_106314: mobile ; 106314 - ld a, $4 - call GetSRAMBank - ld a, c - cpl - ld [$b000], a - call CloseSRAM - ld a, $7 - call GetSRAMBank - ld a, c - ld [$a800], a - call CloseSRAM - ret -; 10632f - -Mobile_AlwaysReturnNotCarry: ; 10632f - or a - ret - -Function106331: ; 106331 - called by Mobile_DummyReturnFalse in Crystal-J - ; check ~[4:b000] == [7:a800] - ld a, $4 - call GetSRAMBank - ld a, [$b000] - cpl - ld b, a - call CloseSRAM - ld a, $7 - call GetSRAMBank - ld a, [$a800] - ld c, a - call CloseSRAM - ld a, c - cp b - jr nz, .nope - - ; check [7:a800] != 0 - and a - jr z, .nope - - ; check !([7:a800] & %01110000) - and %10001111 - cp c - jr nz, .nope - - ld c, a - scf - ret - -.nope - xor a - ld c, a - ret -; 10635c - -Function10635c: ; 10635c - ld a, [wMobileCommsJumptableIndex] - bit 7, a - ret nz - ld a, [wMobileCommsJumptableIndex] - ld hl, .Jumptable - rst JumpTable - ret -; 10636a - -.Jumptable: ; 10636a - dw .init - dw Function106392 - dw Function1063cc - dw Function1063d8 - dw Function1063e5 - dw Function1063f3 - dw Function106403 - dw Function106442 - dw Function106453 -; 10637c - -.init: ; 10637c - ld de, wcd30 - ld hl, $41 - ld bc, $41 - ld a, $40 - call Function3e32 - ld a, [wMobileCommsJumptableIndex] - inc a - ld [wMobileCommsJumptableIndex], a - ret -; 106392 - -Function106392: ; 106392 - xor a - ld [wcf64], a - ld a, [wc821] - bit 1, a - jr nz, .asm_1063a2 - bit 0, a - jr z, .asm_1063bf - ret - -.asm_1063a2 - call Mobile_AlwaysReturnNotCarry - ld a, c - and a - jr nz, .asm_1063b4 - ld a, $b - ld [wcf64], a - ld a, $7 - ld [wMobileCommsJumptableIndex], a - ret - -.asm_1063b4 - ld a, $7 - ld [wcf64], a - ld a, $7 - ld [wMobileCommsJumptableIndex], a - ret - -.asm_1063bf - ld a, $1 - ld [wcf64], a - ld a, [wMobileCommsJumptableIndex] - inc a - ld [wMobileCommsJumptableIndex], a - ret -; 1063cc - -Function1063cc: ; 1063cc - ld a, $78 - ld [wcd42], a - ld a, [wMobileCommsJumptableIndex] - inc a - ld [wMobileCommsJumptableIndex], a - -Function1063d8: ; 1063d8 - ld hl, wcd42 - dec [hl] - ret nz - ld a, [wMobileCommsJumptableIndex] - inc a - ld [wMobileCommsJumptableIndex], a - ret -; 1063e5 - -Function1063e5: ; 1063e5 - ld a, [wcf64] - cp $3 - ret nz - ld a, [wMobileCommsJumptableIndex] - inc a - ld [wMobileCommsJumptableIndex], a - ret -; 1063f3 - -Function1063f3: ; 1063f3 - ld de, wcd31 - ld a, $32 - call Function3e32 - ld a, [wMobileCommsJumptableIndex] - inc a - ld [wMobileCommsJumptableIndex], a - ret -; 106403 - -Function106403: ; 106403 - ld a, [wc821] - bit 1, a - jr nz, .asm_106426 - bit 0, a - jr z, .asm_10640f - ret - -.asm_10640f - ld a, [wcd31] - and $80 - ld c, a - ld a, [wcd30] - or c - inc a - ld c, a - call MobileFn_106314 - ld a, [wMobileCommsJumptableIndex] - inc a - ld [wMobileCommsJumptableIndex], a - ret - -.asm_106426 - call Mobile_AlwaysReturnNotCarry - ld a, c - and a - jr z, .asm_106435 - ld a, [wMobileCommsJumptableIndex] - inc a - ld [wMobileCommsJumptableIndex], a - ret - -.asm_106435 - ld c, $0 - call MobileFn_106314 - ld a, [wMobileCommsJumptableIndex] - inc a - ld [wMobileCommsJumptableIndex], a - ret -; 106442 - -Function106442: ; 106442 - ld a, $36 - call Function3e32 - xor a - ld [hMobile], a - ld [hMobileReceive], a - ld a, [wMobileCommsJumptableIndex] - inc a - ld [wMobileCommsJumptableIndex], a - -Function106453: ; 106453 - ld a, [wMobileCommsJumptableIndex] - set 7, a - ld [wMobileCommsJumptableIndex], a - nop - ld a, $4 - ld [wcf64], a - ret -; 106462 - -MobileFunc_106462: mobile - ret -; 106464 - -Function106464:: ; 106464 - ld de, MobilePhoneTilesGFX - ld hl, VTiles2 tile $60 - lb bc, BANK(MobilePhoneTilesGFX), 1 - call Get2bpp - ld de, FontsExtra2_UpArrowGFX - ld hl, VTiles2 tile $61 - lb bc, BANK(FontsExtra2_UpArrowGFX), 1 - call Get2bpp - ld de, GFX_106514 - ld hl, VTiles2 tile $62 - ld c, 9 - ld b, BANK(GFX_106514) - call Get2bpp - ld de, $40b0 - ld hl, VTiles2 tile $6b - ld b, $f ; XXX no graphics at 0f:40b0 - call Get2bpp - callba LoadFrame - ret -; 10649b - -Function10649b: ; 10649b - ld a, [TextBoxFrame] - and $7 - ld bc, 3 tiles - ld hl, Frames - call AddNTimes - ld d, h - ld e, l - ld hl, VTiles2 tile $79 - ld c, 6 - ld b, BANK(Frames) - call Function1064c3 - ld hl, VTiles2 tile $7f - ld de, TextBoxSpaceGFX - ld c, 1 - ld b, BANK(TextBoxSpaceGFX) - call Function1064c3 - ret -; 1064c3 - -Function1064c3: ; 1064c3 - ld a, [rSVBK] - push af - ld a, $6 - ld [rSVBK], a - push bc - push hl - ld hl, Function3f88 - ld a, b - rst FarCall - pop hl - pop bc - pop af - ld [rSVBK], a - jr asm_1064ed - -Function1064d8: ; 1064d8 - ld a, [rSVBK] - push af - ld a, $6 - ld [rSVBK], a - push bc - push hl - ld hl, Function3f9f - ld a, b - rst FarCall - pop hl - pop bc - pop af - ld [rSVBK], a - jr asm_1064ed - -asm_1064ed - ld de, wDecompressScratch - ld b, $0 - ld a, [rSVBK] - push af - ld a, $6 - ld [rSVBK], a - ld a, [rVBK] - push af - ld a, $1 - ld [rVBK], a - call Get2bpp - pop af - ld [rVBK], a - pop af - ld [rSVBK], a - ret -; 10650a - -Function10650a: ; 10650a - ld de, MobilePhoneTilesGFX + $20 - lb bc, BANK(MobilePhoneTilesGFX), $11 - call Get2bpp - ret -; 106514 - -GFX_106514: -INCBIN "gfx/unknown/106514.2bpp" diff --git a/misc/mobile_42.asm b/misc/mobile_42.asm deleted file mode 100644 index b625d6bcf..000000000 --- a/misc/mobile_42.asm +++ /dev/null @@ -1,2009 +0,0 @@ -MobileTradeAnimation_SendGivemonToGTS: ; 108000 - ld a, $80 - ld [wcf65], a - ld de, .TradeAnimScript - jp RunMobileTradeAnim_NoFrontpics -; 10800b - -.TradeAnimScript: - mobiletradeanim_showgtsgivemon - mobiletradeanim_12 - mobiletradeanim_10 - mobiletradeanim_sendmon - mobiletradeanim_06 - mobiletradeanim_0f - mobiletradeanim_end - -MobileTradeAnimation_RetrieveGivemonFromGTS: - ld a, $80 - jr asm_108018 - -MobileTradeAnimation_ReceiveGetmonFromGTS: ; 108016 - ld a, $0 -asm_108018: - ld [wcf65], a - ld de, .TradeAnimScript - jp RunMobileTradeAnim_NoFrontpics -; 108021 - -.TradeAnimScript: - mobiletradeanim_11 - mobiletradeanim_07 - mobiletradeanim_receivemon - mobiletradeanim_showgtsgetmon - mobiletradeanim_end - -Function108026: ; 108026 - ld a, $0 - jr asm_10802c - -Function10802a: ; 10802a - ld a, $1 - -asm_10802c: - ld [wcf65], a - ld de, .TradeAnimScript - jp RunMobileTradeAnim_Frontpics -; 108035 - -.TradeAnimScript: ; trade - mobiletradeanim_showgivemon - mobiletradeanim_12 - mobiletradeanim_02 - mobiletradeanim_sendmon - mobiletradeanim_05 - mobiletradeanim_receivemon - mobiletradeanim_showgetmon - mobiletradeanim_end - -Function10803d: ; 10803d - ld a, $0 - ld [wcf65], a - ld de, .TradeAnimScript - jp RunMobileTradeAnim_NoFrontpics -; 108048 - -.TradeAnimScript: - mobiletradeanim_11 - mobiletradeanim_07 - mobiletradeanim_receivemon - mobiletradeanim_showoddegg - mobiletradeanim_end - -Function10804d: ; 10804d - ld a, $0 - ld [wcf65], a - ld de, .TradeAnimScript - jp RunMobileTradeAnim_NoFrontpics -; 108058 - -.TradeAnimScript: - mobiletradeanim_11 - mobiletradeanim_showgtsgetmon - mobiletradeanim_end - -RunMobileTradeAnim_Frontpics: ; 10805b - ld hl, wTradeAnimAddress - ld [hl], e - inc hl - ld [hl], d - ld a, [hMapAnims] - push af - xor a - ld [hMapAnims], a - ld hl, VramState - ld a, [hl] - push af - res 0, [hl] - ld hl, Options - ld a, [hl] - push af - set NO_TEXT_SCROLL, [hl] - call Function1080b7 -.loop - call MobileTradeAnim_JumptableLoop - jr nc, .loop - pop af - ld [Options], a - pop af - ld [VramState], a - pop af - ld [hMapAnims], a - ret -; 108089 - -RunMobileTradeAnim_NoFrontpics: ; 108089 - ld hl, wTradeAnimAddress - ld [hl], e - inc hl - ld [hl], d - ld a, [hMapAnims] - push af - xor a - ld [hMapAnims], a - ld hl, VramState - ld a, [hl] - push af - res 0, [hl] - ld hl, Options - ld a, [hl] - push af - set NO_TEXT_SCROLL, [hl] - call Function108157 -.loop - call MobileTradeAnim_JumptableLoop - jr nc, .loop - pop af - ld [Options], a - pop af - ld [VramState], a - pop af - ld [hMapAnims], a - ret -; 1080b7 - -Function1080b7: ; 1080b7 - xor a - ld [wJumptableIndex], a - call ClearBGPalettes - call ClearSprites - call ClearTileMap - call DisableLCD - call MobileTradeAnim_ClearVTiles - call MobileTradeAnim_ClearBGMap - call LoadStandardFont - call LoadFontsBattleExtra - - ld a, $1 - ld [rVBK], a - ld hl, LZ_108da7 - ld de, VTiles2 - call Decompress - - ld a, $0 - ld [rVBK], a - ld hl, LZ_108d27 - ld de, VTiles0 tile $20 - call Decompress - - call EnableLCD - - xor a - ld [hSCX], a - ld [hSCY], a - ld a, $7 - ld [hWX], a - ld a, $90 - ld [hWY], a - callba ClearSpriteAnims - - call DelayFrame - - ld de, TradeBallGFX - ld hl, VTiles0 - lb bc, BANK(TradeBallGFX), $06 - call Request2bpp - - ld de, TradePoofGFX - ld hl, VTiles0 tile $06 - lb bc, BANK(TradePoofGFX), $0c - call Request2bpp - - xor a - ld hl, wSpriteAnimDict - ld [hli], a - ld [hl], $0 - - ld a, [wPlayerTrademonSpecies] - ld hl, wPlayerTrademonDVs - ld de, VTiles0 tile $30 - call MobileTradeAnim_GetFrontpic - - ld a, [wOTTrademonSpecies] - ld hl, wOTTrademonDVs - ld de, VTiles2 tile $31 - call MobileTradeAnim_GetFrontpic - - ld a, [wPlayerTrademonSpecies] - ld de, wPlayerTrademonSpeciesName - call MobileTradeAnim_InitSpeciesName - - ld a, [wOTTrademonSpecies] - ld de, wOTTrademonSpeciesName - call MobileTradeAnim_InitSpeciesName - - xor a - call Function108b98 - call Function108af4 - ret -; 108157 - -Function108157: ; 108157 - xor a - ld [wJumptableIndex], a - call ClearBGPalettes - call ClearSprites - call ClearTileMap - call DisableLCD - call MobileTradeAnim_ClearVTiles - call MobileTradeAnim_ClearBGMap - call LoadStandardFont - call LoadFontsBattleExtra - call EnableLCD - xor a - ld [hSCX], a - ld [hSCY], a - ld a, $7 - ld [hWX], a - ld a, $90 - ld [hWY], a - callba ClearSpriteAnims - xor a - ld hl, wSpriteAnimDict - ld [hli], a - ld [hl], $0 - call DelayFrame - ld a, [wPlayerTrademonSpecies] - ld de, wPlayerTrademonSpeciesName - call MobileTradeAnim_InitSpeciesName - ld a, [wOTTrademonSpecies] - ld de, wOTTrademonSpeciesName - call MobileTradeAnim_InitSpeciesName - xor a - call Function108b98 - call Function108af4 - ret -; 1081ad - -MobileTradeAnim_ClearVTiles: ; 1081ad - ld a, $1 - ld [rVBK], a - ld hl, VTiles0 - ld bc, 3 * $80 tiles - xor a - call ByteFill - ld a, $0 - ld [rVBK], a - ld hl, VTiles0 - ld bc, 3 * $80 tiles - xor a - call ByteFill - ret -; 1081ca - -MobileTradeAnim_ClearBGMap: ; 1081ca - ld a, $1 - ld [rVBK], a - hlbgcoord 0, 0 - ld bc, 2 * BG_MAP_HEIGHT * BG_MAP_WIDTH - ld a, $0 - call ByteFill - ld a, $0 - ld [rVBK], a - hlbgcoord 0, 0 - ld bc, 2 * BG_MAP_HEIGHT * BG_MAP_WIDTH - ld a, $7f - call ByteFill - ret -; 1081e9 - -MobileTradeAnim_GetFrontpic: ; 1081e9 - push de - push af - predef GetUnownLetter - pop af - ld [CurPartySpecies], a - ld [CurSpecies], a - call GetBaseData - pop de - predef GetFrontpic - ret -; 108201 - -Function108201: ; 108201 - push de - push af - predef GetUnownLetter - pop af - ld [CurPartySpecies], a - ld [CurSpecies], a - call GetBaseData - pop de - predef FrontpicPredef - ret -; 108219 - -Function108219: ; 108219 - ld [CurPartySpecies], a - hlcoord 7, 2 - ld d, $0 - ld e, ANIM_MON_TRADE - predef AnimateFrontpic - ret -; 108229 - -Function108229: ; 108229 - ld [CurPartySpecies], a - hlcoord 7, 2 - ld d, $0 - ld e, ANIM_MON_TRADE - predef LoadMonAnimation - ret -; 108239 - -MobileTradeAnim_InitSpeciesName: ; 108239 - push de - ld [wd265], a - call GetPokemonName - ld hl, StringBuffer1 - pop de - ld bc, PKMN_NAME_LENGTH - call CopyBytes - ret -; 10824b - -MobileTradeAnim_JumptableLoop: ; 10824b - ld a, [wJumptableIndex] - bit 7, a - jr nz, .StopAnim - call .ExecuteMobileTradeAnimCommand - call DelayFrame - and a - ret - -.StopAnim: - xor a - ld [hSCX], a - ld [hSCY], a - ld a, $7 - ld [hWX], a - ld a, $90 - ld [hWY], a - call LoadStandardFont - call LoadFontsBattleExtra - callba MobileFunc_106462 - callba Function106464 - scf - ret -; 10827b - -.ExecuteMobileTradeAnimCommand: ; 10827b - ld a, [wJumptableIndex] - ld e, a - ld d, 0 - ld hl, .Jumptable - add hl, de - add hl, de - ld a, [hli] - ld h, [hl] - ld l, a - jp hl -; 10828a - -.Jumptable: ; 10828a - - dw GetMobileTradeAnimByte ; 00 - dw MobileTradeAnim_ShowPlayerMonToBeSent ; 01 - dw MobileTradeAnim_02 ; 02 - dw MobileTradeAnim_GiveTrademon1 ; 03 - dw MobileTradeAnim_GiveTrademon2 ; 04 - dw MobileTradeAnim_05 ; 05 - dw MobileTradeAnim_06 ; 06 - dw MobileTradeAnim_07 ; 07 - dw MobileTradeAnim_GetTrademon1 ; 08 - dw MobileTradeAnim_GetTrademon2 ; 09 - dw MobileTradeAnim_GetTrademon3 ; 0a - dw MobileTradeAnim_ShowOTMonFromTrade ; 0b - dw EndMobileTradeAnim ; 0c - dw MobileTradeAnim_ShowPlayerMonForGTS ; 0d - dw MobileTradeAnim_ShowOTMonFromGTS ; 0e - dw MobileTradeAnim_0f ; 0f - dw MobileTradeAnim_10 ; 10 - dw MobileTradeAnim_11 ; 11 - dw MobileTradeAnim_FadeToBlack ; 12 - dw MobileTradeAnim_GetOddEgg ; 13 get odd egg -; 1082b2 - -MobileTradeAnim_Next: ; 1082b2 - ld hl, wJumptableIndex - inc [hl] - ret -; 1082b7 - -GetMobileTradeAnimByte: ; 1082b7 - ld hl, wTradeAnimAddress - ld e, [hl] - inc hl - ld d, [hl] - ld a, [de] - ld [wJumptableIndex], a - inc de - ld [hl], d - dec hl - ld [hl], e - ret -; 1082c6 - -EndMobileTradeAnim: ; 1082c6 - ld hl, wJumptableIndex - set 7, [hl] - ret -; 1082cc - -WaitMobileTradeSpriteAnims: ; 1082cc -.loop - push bc - callba PlaySpriteAnimations - pop bc - call DelayFrame - dec c - jr nz, .loop - ret -; 1082db - -Function1082db: ; 1082db -.loop - callba PlaySpriteAnimations - callba SetUpPokeAnim - callba HDMATransferTileMapToWRAMBank3 - jr nc, .loop - ret -; 1082f0 - -Function1082f0: ; 1082f0 -.loop - call Function108b78 - call DelayFrame - dec c - jr nz, .loop - ret -; 1082fa - -Function1082fa: ; 1082fa -.loop - call Function108b78 - push hl - push bc - callba PlaySpriteAnimations - pop bc - pop hl - call DelayFrame - dec c - jr nz, .loop - ret -; 10830e - -MobileTradeAnim_ShowPlayerMonToBeSent: ; 10830e - ld de, MUSIC_EVOLUTION - call PlayMusic2 - ld a, $80 - ld [hSCX], a - xor a - ld [hSCY], a - ld a, $87 - ld [hWX], a - ld a, $50 - ld [hWY], a - call MobileTradeAnim_DisplayMonToBeSent - ld a, [wPlayerTrademonSpecies] - ld [CurPartySpecies], a - call Function10895e - ld a, [wPlayerTrademonDVs] - ld [TempMonDVs], a - ld a, [wPlayerTrademonDVs + 1] - ld [TempMonDVs + 1], a - ld b, SCGB_PLAYER_OR_MON_FRONTPIC_PALS - call GetSGBLayout - ld a, %11100100 ; 3,2,1,0 - call DmgToCgbBGPals - call WaitBGMap -.loop - ld a, [hWX] - cp $7 - jr z, .okay - sub $4 - ld [hWX], a - ld a, [hSCX] - sub $4 - ld [hSCX], a - call DelayFrame - jr .loop - -.okay - ld a, $7 - ld [hWX], a - xor a - ld [hSCX], a - ld a, [wPlayerTrademonSpecies] - call GetCryIndex - jr c, .skip_cry - ld e, c - ld d, b - call PlayCryHeader - -.skip_cry - ld c, 80 - call DelayFrames - call Function108bec - depixel 10, 11, 4, 0 - ld a, SPRITE_ANIM_INDEX_MOBILE_TRADE_SENT_BALL - call _InitSpriteAnimStruct - ld de, SFX_BALL_POOF - call PlaySFX - hlcoord 0, 0 - ld bc, 12 * SCREEN_WIDTH - ld a, " " - call ByteFill - ld c, 80 - call WaitMobileTradeSpriteAnims - call GetMobileTradeAnimByte - ret -; 10839b - -MobileTradeAnim_ShowOTMonFromTrade: ; 10839b - call ClearBGPalettes - call ClearSprites - call ClearTileMap - call DisableLCD - call MobileTradeAnim_ClearBGMap - ld a, [wOTTrademonSpecies] - ld [CurPartySpecies], a - ld hl, wOTTrademonDVs - ld de, VTiles2 - call Function108201 - call EnableLCD - callba DeinitializeAllSprites - xor a - ld [hSCX], a - ld [hSCY], a - ld a, $7 - ld [hWX], a - ld a, $90 - ld [hWY], a - depixel 10, 11, 4, 0 - ld a, SPRITE_ANIM_INDEX_MOBILE_TRADE_OT_BALL - call _InitSpriteAnimStruct - call Function108b45 - ld a, $1 - call Function108b98 - call Function108af4 - ld c, 48 - call WaitMobileTradeSpriteAnims - ld de, SFX_BALL_POOF - call PlaySFX - call MobileTradeAnim_DisplayReceivedMon - xor a - ld [hSCX], a - ld [hSCY], a - ld a, $7 - ld [hWX], a - ld a, $50 - ld [hWY], a - ld a, [wOTTrademonSpecies] - ld [CurPartySpecies], a - ld a, [wOTTrademonDVs] - ld [TempMonDVs], a - ld a, [wOTTrademonDVs + 1] - ld [TempMonDVs + 1], a - ld b, SCGB_PLAYER_OR_MON_FRONTPIC_PALS - call GetSGBLayout - ld a, %11100100 ; 3,2,1,0 - call DmgToCgbBGPals - call Function108963 - ld a, [wOTTrademonSpecies] - call Function108229 - call Function1082db - call Function108c16 - call GetMobileTradeAnimByte - ret -; 10842c - -MobileTradeAnim_ShowPlayerMonForGTS: ; 10842c - ld de, MUSIC_EVOLUTION - call PlayMusic2 - ld a, $80 - ld [hSCX], a - xor a - ld [hSCY], a - ld a, $87 - ld [hWX], a - ld a, $50 - ld [hWY], a - call MobileTradeAnim_DisplayMonToBeSent - ld a, [wPlayerTrademonSpecies] - ld [CurPartySpecies], a - ld hl, wPlayerTrademonDVs - call Function10898a - call DelayFrame - ld de, TradeBallGFX - ld hl, VTiles0 - lb bc, BANK(TradeBallGFX), $06 - call Request2bpp - ld de, TradePoofGFX - ld hl, VTiles0 tile $06 - lb bc, BANK(TradePoofGFX), $0c - call Request2bpp - ld a, [wPlayerTrademonDVs] - ld [TempMonDVs], a - ld a, [wPlayerTrademonDVs + 1] - ld [TempMonDVs + 1], a - ld b, SCGB_PLAYER_OR_MON_FRONTPIC_PALS - call GetSGBLayout - ld a, %11100100 ; 3,2,1,0 - call DmgToCgbBGPals - call WaitBGMap -.loop - ld a, [hWX] - cp $7 - jr z, .done - sub $4 - ld [hWX], a - ld a, [hSCX] - sub $4 - ld [hSCX], a - call DelayFrame - jr .loop - -.done - ld a, $7 - ld [hWX], a - xor a - ld [hSCX], a - ld a, [wPlayerTrademonSpecies] - call GetCryIndex - jr c, .skip_cry - ld e, c - ld d, b - call PlayCryHeader - -.skip_cry - ld c, 80 - call DelayFrames - call Function108c2b - depixel 10, 11, 4, 0 - ld a, SPRITE_ANIM_INDEX_MOBILE_TRADE_SENT_BALL - call _InitSpriteAnimStruct - ld de, SFX_BALL_POOF - call PlaySFX - hlcoord 0, 0 - ld bc, 12 * SCREEN_WIDTH - ld a, " " - call ByteFill - ld c, 80 - call WaitMobileTradeSpriteAnims - call GetMobileTradeAnimByte - ret -; 1084d7 - -MobileTradeAnim_ShowOTMonFromGTS: ; 1084d7 - call ClearBGPalettes - call ClearSprites - call ClearTileMap - call DisableLCD - call MobileTradeAnim_ClearBGMap - ld a, [wOTTrademonSpecies] - ld [CurPartySpecies], a - ld hl, wOTTrademonDVs - ld de, VTiles2 - call Function108201 - call EnableLCD - callba DeinitializeAllSprites - call DelayFrame - ld de, TradeBallGFX - ld hl, VTiles0 - lb bc, BANK(TradeBallGFX), $06 - call Request2bpp - ld de, TradePoofGFX - ld hl, VTiles0 tile $06 - lb bc, BANK(TradePoofGFX), $0c - call Request2bpp - xor a - ld [hSCX], a - ld [hSCY], a - ld a, $7 - ld [hWX], a - ld a, $90 - ld [hWY], a - depixel 10, 11, 4, 0 - ld a, SPRITE_ANIM_INDEX_MOBILE_TRADE_OT_BALL - call _InitSpriteAnimStruct - call Function108b45 - ld a, $1 - call Function108b98 - call Function108af4 - ld c, 48 - call WaitMobileTradeSpriteAnims - ld de, SFX_BALL_POOF - call PlaySFX - call MobileTradeAnim_DisplayReceivedMon - xor a - ld [hSCX], a - ld [hSCY], a - ld a, $7 - ld [hWX], a - ld a, $50 - ld [hWY], a - ld a, [wOTTrademonSpecies] - ld [CurPartySpecies], a - ld a, [wOTTrademonDVs] - ld [TempMonDVs], a - ld a, [wOTTrademonDVs + 1] - ld [TempMonDVs + 1], a - ld b, SCGB_PLAYER_OR_MON_FRONTPIC_PALS - call GetSGBLayout - ld a, %11100100 ; 3,2,1,0 - call DmgToCgbBGPals - ld a, [wOTTrademonSpecies] - ld hl, wOTTrademonDVs - call Function10898a - ld a, [wOTTrademonSpecies] - call Function108229 - call Function1082db - call Function108c40 - call GetMobileTradeAnimByte - ret -; 108589 - -MobileTradeAnim_GetOddEgg: ; 108589 - call ClearBGPalettes - call ClearSprites - call ClearTileMap - call DisableLCD - call MobileTradeAnim_ClearBGMap - ld a, [wOTTrademonSpecies] - ld [CurPartySpecies], a - ld hl, wOTTrademonDVs - ld de, VTiles2 - call Function108201 - call EnableLCD - callba DeinitializeAllSprites - call DelayFrame - ld de, TradeBallGFX - ld hl, VTiles0 - lb bc, BANK(TradeBallGFX), $06 - call Request2bpp - ld de, TradePoofGFX - ld hl, VTiles0 tile $06 - lb bc, BANK(TradePoofGFX), $0c - call Request2bpp - xor a - ld [hSCX], a - ld [hSCY], a - ld a, $7 - ld [hWX], a - ld a, $90 - ld [hWY], a - depixel 10, 11, 4, 0 - ld a, SPRITE_ANIM_INDEX_MOBILE_TRADE_OT_BALL - call _InitSpriteAnimStruct - call Function108b45 - ld a, $1 - call Function108b98 - call Function108af4 - ld c, 48 - call WaitMobileTradeSpriteAnims - ld de, SFX_BALL_POOF - call PlaySFX - call Function108a33 - xor a - ld [hSCX], a - ld [hSCY], a - ld a, $7 - ld [hWX], a - ld a, $50 - ld [hWY], a - ld a, [wOTTrademonSpecies] - ld [CurPartySpecies], a - ld a, [wOTTrademonDVs] - ld [TempMonDVs], a - ld a, [wOTTrademonDVs + 1] - ld [TempMonDVs + 1], a - ld b, SCGB_PLAYER_OR_MON_FRONTPIC_PALS - call GetSGBLayout - ld a, %11100100 ; 3,2,1,0 - call DmgToCgbBGPals - ld a, [wOTTrademonSpecies] - ld hl, wOTTrademonDVs - call Function10898a - ld a, [wOTTrademonSpecies] - call Function108229 - call Function1082db - call GetMobileTradeAnimByte - ret -; 108638 - -MobileTradeAnim_02: ; 108638 - callba DeinitializeAllSprites - call ClearBGPalettes - call ClearSprites - call ClearTileMap - xor a - ld [hBGMapMode], a - call DisableLCD - call MobileTradeAnim_ClearBGMap - call Function108c80 - call Function108c6d - call EnableLCD - ld a, $c - ld [hSCX], a - ld a, $78 - ld [hSCY], a - ld a, $7 - ld [hWX], a - ld a, $90 - ld [hWY], a - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - ld hl, Palette_109107 - ld de, UnknBGPals - ld bc, 8 palettes - call CopyBytes - pop af - ld [rSVBK], a - call Function108d07 - call Function108af4 - call GetMobileTradeAnimByte - ret -; 108689 - -MobileTradeAnim_10: ; 108689 - callba DeinitializeAllSprites - call ClearBGPalettes - call ClearSprites - call ClearTileMap - xor a - ld [hBGMapMode], a - call DisableLCD - call MobileTradeAnim_ClearBGMap - ld a, $1 - ld [rVBK], a - ld hl, LZ_108da7 - ld de, VTiles2 - call Decompress - ld a, $0 - ld [rVBK], a - ld hl, LZ_108d27 - ld de, VTiles0 tile $20 - call Decompress - call Function108c80 - call Function108c6d - call EnableLCD - ld a, $c - ld [hSCX], a - ld a, $78 - ld [hSCY], a - ld a, $7 - ld [hWX], a - ld a, $90 - ld [hWY], a - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - ld hl, Palette_109107 - ld de, UnknBGPals - ld bc, 8 palettes - call CopyBytes - pop af - ld [rSVBK], a - call Function108d07 - call Function108af4 - call GetMobileTradeAnimByte - ret -; 1086f4 - -MobileTradeAnim_11: ; 1086f4 - call ClearBGPalettes - call ClearSprites - call ClearTileMap - xor a - ld [hBGMapMode], a - call DisableLCD - ld a, $1 - ld [rVBK], a - ld hl, LZ_108da7 - ld de, VTiles2 - call Decompress - ld a, $0 - ld [rVBK], a - ld hl, LZ_108d27 - ld de, VTiles0 tile $20 - call Decompress - call Function108c80 - call Function108c6d - call EnableLCD - ld a, $80 - ld [hSCX], a - ld a, $90 - ld [hSCY], a - ld a, $7 - ld [hWX], a - ld a, $90 - ld [hWY], a - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - ld hl, Palette_109107 - ld de, UnknBGPals - ld bc, 8 palettes - call CopyBytes - pop af - ld [rSVBK], a - call Function108d07 - call Function108af4 - call Function108b5a - ld a, $e0 - ld [hSCX], a - ld de, MUSIC_EVOLUTION - call PlayMusic2 - call GetMobileTradeAnimByte - ret -; 108763 - -MobileTradeAnim_GiveTrademon1: ; 108763 - ld de, SFX_GIVE_TRADEMON - call PlaySFX - ld c, 40 - ld hl, BGPals + 6 palettes - call Function1082f0 - call Function108af4 -.loop - ld a, [hSCX] - cp $e0 - jr z, .loop2 - dec a - dec a - ld [hSCX], a - cp $f8 - jr nz, .next - depixel 10, 11, 4, 0 - ld a, SPRITE_ANIM_INDEX_MOBILE_22 - call _InitSpriteAnimStruct - -.next - ld c, 1 - call WaitMobileTradeSpriteAnims - jr .loop - -.loop2 - ld a, [hSCY] - cp $f8 - jr z, .done - dec a - dec a - ld [hSCY], a - cp $40 - jr z, .init - cp $30 - jr z, .delete - cp $68 - jr z, .replace - jr .next2 - -.init - depixel 10, 11, 4, 0 - ld a, SPRITE_ANIM_INDEX_MOBILE_22 - call _InitSpriteAnimStruct - xor a - call Function108ad4 - jr .next2 - -.delete - call MobileTradeAnim_DeleteSprites - jr .next2 - -.replace - call MobileTradeAnim_DeleteSprites - ld a, $1 - call Function108ad4 -.next2 - ld c, 1 - call WaitMobileTradeSpriteAnims - jr .loop2 - -.done - call MobileTradeAnim_Next - ret -; 1087cf - -MobileTradeAnim_GiveTrademon2: ; 1087cf - ld c, 40 - ld hl, BGPals + 1 palettes - call Function1082f0 - call Function108af4 - call Function108b5a - depixel 9, 10, 2, 0 - ld a, SPRITE_ANIM_INDEX_MOBILE_25 - call _InitSpriteAnimStruct - ld de, SFX_FORESIGHT - call PlaySFX - ld c, 10 - call WaitMobileTradeSpriteAnims - xor a - ld [wcf64], a - depixel 9, 10, 2, 0 - ld a, SPRITE_ANIM_INDEX_MOBILE_23 - call _InitSpriteAnimStruct -.loop - ld a, [hSCY] - cp $90 - jr z, .done - sub $8 - ld [hSCY], a - ld c, 1 - call WaitMobileTradeSpriteAnims - jr .loop - -.done - call GetMobileTradeAnimByte - ret -; 108811 - -MobileTradeAnim_05: ; 108811 - ld c, 40 - call WaitMobileTradeSpriteAnims - ld a, $1 - ld [wcf64], a - ld de, SFX_SHARPEN - call PlaySFX - ld c, 60 - call WaitMobileTradeSpriteAnims - depixel 30, 10, 2, 0 - ld a, SPRITE_ANIM_INDEX_MOBILE_24 - call _InitSpriteAnimStruct - call GetMobileTradeAnimByte - ld de, SFX_THROW_BALL - call PlaySFX - ret -; 108838 - -MobileTradeAnim_06: ; 108838 - ld c, 40 - call WaitMobileTradeSpriteAnims - ld a, $1 - ld [wcf64], a - ld de, SFX_SHARPEN - call PlaySFX - call GetMobileTradeAnimByte - ret -; 10884c - -MobileTradeAnim_07: ; 10884c - ld c, 80 - call DelayFrames - depixel 30, 10, 2, 0 - ld a, SPRITE_ANIM_INDEX_MOBILE_24 - call _InitSpriteAnimStruct - call GetMobileTradeAnimByte - ld de, SFX_THROW_BALL - call PlaySFX - ret -; 108863 - -MobileTradeAnim_GetTrademon1: ; 108863 - ld c, 40 - call WaitMobileTradeSpriteAnims -.loop - ld a, [hSCY] - cp $f8 - jr z, .done - add $8 - ld [hSCY], a - ld c, 1 - call WaitMobileTradeSpriteAnims - jr .loop - -.done - callba DeinitializeAllSprites - depixel 9, 10, 2, 0 - ld a, SPRITE_ANIM_INDEX_MOBILE_25 - call _InitSpriteAnimStruct - ld de, SFX_GLASS_TING_2 - call PlaySFX - call Function108af4 - call MobileTradeAnim_Next - ret -; 108894 - -MobileTradeAnim_GetTrademon2: ; 108894 - ld c, 20 - ld hl, BGPals + 1 palettes - call Function1082fa - ld de, SFX_GIVE_TRADEMON - call PlaySFX - ld c, 20 - ld hl, BGPals + 1 palettes - call Function1082fa - call Function108af4 -.asm_1088ad - ld a, [hSCY] - cp $78 - jr z, .asm_1088ee - inc a - inc a - ld [hSCY], a - cp $30 - jr z, .asm_1088c5 - cp $40 - jr z, .asm_1088dd - cp $68 - jr z, .asm_1088cf - jr .asm_1088e7 - -.asm_1088c5 - depixel 10, 11, 4, 0 - ld a, SPRITE_ANIM_INDEX_MOBILE_22 - call _InitSpriteAnimStruct - jr .asm_1088e7 - -.asm_1088cf - depixel 10, 11, 4, 0 - ld a, SPRITE_ANIM_INDEX_MOBILE_22 - call _InitSpriteAnimStruct - xor a - call Function108ad4 - jr .asm_1088e7 - -.asm_1088dd - call MobileTradeAnim_DeleteSprites - ld a, $1 - call Function108ad4 - jr .asm_1088e7 - -.asm_1088e7 - ld c, 1 - call WaitMobileTradeSpriteAnims - jr .asm_1088ad - -.asm_1088ee - ld a, [hSCX] - cp $c - jr z, .asm_108906 - inc a - inc a - ld [hSCX], a - cp -8 - jr nz, .asm_1088e7 - call MobileTradeAnim_DeleteSprites - ld c, 1 - call WaitMobileTradeSpriteAnims - jr .asm_1088ee - -.asm_108906 - call MobileTradeAnim_Next - ret -; 10890a - -MobileTradeAnim_GetTrademon3: ; 10890a - ld c, 40 - ld hl, BGPals + 6 palettes - call Function1082f0 - call Function108af4 - call GetMobileTradeAnimByte - ret -; 108919 - -MobileTradeAnim_0f: ; 108919 - ld c, 40 - call WaitMobileTradeSpriteAnims - callba DeinitializeAllSprites - call ClearBGPalettes - call ClearSprites - call ClearTileMap - call DisableLCD - call MobileTradeAnim_ClearVTiles - call MobileTradeAnim_ClearBGMap - call EnableLCD - call GetMobileTradeAnimByte - ret -; 10893d - -MobileTradeAnim_FadeToBlack: ; 10893d -.loop - ld a, [rBGP] - and a - jr z, .blank - sla a - sla a - call DmgToCgbBGPals - call DmgToCgbObjPal0 - ld c, 4 - call DelayFrames - jr .loop - -.blank - xor a - call DmgToCgbBGPals - call DmgToCgbObjPal0 - call GetMobileTradeAnimByte - ret -; 10895e - -Function10895e: ; 10895e - ld de, VTiles0 tile $30 - jr asm_108966 - -Function108963: - ld de, VTiles2 tile $31 -asm_108966 - call DelayFrame - ld hl, VTiles2 - lb bc, $a, $31 ; $a is the bank of ????? - call Request2bpp - call WaitTop - call MobileTradeAnim_ClearTilemap - hlcoord 7, 2 - xor a - ld [hGraphicStartTile], a - lb bc, 7, 7 - predef PlaceGraphic - call WaitBGMap - ret -; 10898a - -Function10898a: ; 10898a - ld de, VTiles2 - call MobileTradeAnim_GetFrontpic - call WaitTop - call MobileTradeAnim_ClearTilemap - hlcoord 7, 2 - xor a - ld [hGraphicStartTile], a - lb bc, 7, 7 - predef PlaceGraphic - call WaitBGMap - ret -; 1089a8 - -MobileTradeAnim_DisplayMonToBeSent: ; 1089a8 - ld de, wPlayerTrademonSpecies - ld a, [de] - cp EGG - jr z, MobileTradeAnim_DisplayEggData - call MobileTradeAnim_LoadMonTemplate - ld de, wPlayerTrademonSpecies - call MobileTradeAnim_MonDisplay_PrintSpeciesNumber - ld de, wPlayerTrademonSpeciesName - call MobileTradeAnim_MonDisplay_PrintSpeciesName - ld a, [wPlayerTrademonCaughtData] - ld de, wPlayerTrademonOTName - call MobileTradeAnim_MonDisplay_PrintOTNameAndGender - ld de, wPlayerTrademonID - call MobileTradeAnim_MonDisplay_PrintIDNumber - call MobileTradeAnim_MonDisplay_UpdateBGMap - ret - -MobileTradeAnim_DisplayReceivedMon: - ld de, wOTTrademonSpecies - ld a, [de] - cp EGG - jr z, MobileTradeAnim_DisplayEggData - call MobileTradeAnim_LoadMonTemplate - ld de, wOTTrademonSpecies - call MobileTradeAnim_MonDisplay_PrintSpeciesNumber - ld de, wOTTrademonSpeciesName - call MobileTradeAnim_MonDisplay_PrintSpeciesName - ld a, [wOTTrademonCaughtData] - ld de, wOTTrademonOTName - call MobileTradeAnim_MonDisplay_PrintOTNameAndGender - ld de, wOTTrademonID - call MobileTradeAnim_MonDisplay_PrintIDNumber - call MobileTradeAnim_MonDisplay_UpdateBGMap - ret - -MobileTradeAnim_DisplayEggData - call WaitTop - call MobileTradeAnim_ClearTilemap - ld a, VBGMap1 / $100 - ld [hBGMapAddress + 1], a - hlcoord 5, 0 - ld b, 6 - ld c, 9 - call TextBox - hlcoord 6, 2 - ld de, .EggTemplate - call PlaceString - call MobileTradeAnim_MonDisplay_UpdateBGMap - ret -; 108a1d - -.EggTemplate: ; 108a1d - db "タマゴ" - next "おや/?????" - next "?????" - db "@" -; 108a33 - -Function108a33: ; 108a33 - call WaitTop - call MobileTradeAnim_ClearTilemap - ld a, VBGMap1 / $100 - ld [hBGMapAddress + 1], a - hlcoord 5, 0 - ld b, 6 - ld c, 9 - call TextBox - hlcoord 7, 4 - ld de, .OddEgg - call PlaceString - call MobileTradeAnim_MonDisplay_UpdateBGMap - ret -; 108a54 - -.OddEgg: ; 108a54 - db "なぞのタマゴ@" -; 108a5b - -MobileTradeAnim_LoadMonTemplate: ; 108a5b - call WaitTop - call MobileTradeAnim_ClearTilemap - ld a, VBGMap1 / $100 - ld [hBGMapAddress + 1], a - hlcoord 4, 0 - ld b, 6 - ld c, 10 - call TextBox - hlcoord 5, 0 - ld de, .MonTemplate - call PlaceString - ret -; 108a79 - -.MonTemplate: ; 108a79 - db "─ №" - next "" - next "おや/" - next "" - db "@" -; 108a87 - -MobileTradeAnim_MonDisplay_UpdateBGMap: ; 108a87 - call WaitBGMap - call WaitTop - ld a, VBGMap0 / $100 - ld [hBGMapAddress + 1], a - ret -; 108a92 - -MobileTradeAnim_MonDisplay_PrintSpeciesNumber: ; 108a92 - hlcoord 9, 0 - lb bc, PRINTNUM_LEADINGZEROS | 1, 3 - call PrintNum - ret -; 108a9c - -MobileTradeAnim_MonDisplay_PrintSpeciesName: ; 108a9c - hlcoord 5, 2 - call PlaceString - ret -; 108aa3 - -MobileTradeAnim_MonDisplay_PrintOTNameAndGender: ; 108aa3 - cp $3 - jr c, .got_gender - xor a -.got_gender - push af - hlcoord 8, 4 - call PlaceString - inc bc - pop af - ld hl, .GenderChars - ld d, 0 - ld e, a - add hl, de - ld a, [hl] - ld [bc], a - ret -; 108abb - -.GenderChars: ; 108abb - db " " - db "♂" - db "♀" -; 108abe - -MobileTradeAnim_MonDisplay_PrintIDNumber: ; 108abe - hlcoord 8, 6 - lb bc, PRINTNUM_LEADINGZEROS | 2, 5 - call PrintNum - ret -; 108ac8 - -MobileTradeAnim_ClearTilemap: ; 108ac8 - hlcoord 0, 0 - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT - ld a, " " - call ByteFill - ret -; 108ad4 - -Function108ad4: ; 108ad4 - and a - jr z, .asm_108adc - ld de, GFX_1092c7 - jr .asm_108adf - -.asm_108adc - ld de, GFX_1091c7 -.asm_108adf - ld a, $1 - ld [rVBK], a - ld hl, VTiles2 tile $4a - lb bc, BANK(GFX_1092c7), 16 - call Get2bpp_2 - call DelayFrame - ld a, $0 - ld [rVBK], a - ret -; 108af4 - -Function108af4: ; 108af4 - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - ld a, [wcf65] - and $1 - jr z, .copy_palette_109147 - ld hl, Palette_109187 - ld de, UnknOBPals - ld bc, 8 palettes - call CopyBytes - ld hl, Palette_109187 - ld de, OBPals - ld bc, 8 palettes - call CopyBytes - jr .done_copy - -.copy_palette_109147 - ld hl, Palette_109147 - ld de, UnknOBPals - ld bc, 8 palettes - call CopyBytes - ld hl, Palette_109147 - ld de, OBPals - ld bc, 8 palettes - call CopyBytes - -.done_copy - pop af - ld [rSVBK], a - ld a, %11100100 ; 3,2,1,0 - call DmgToCgbObjPal0 - ld a, %11100100 ; 3,2,1,0 - call DmgToCgbBGPals - call DelayFrame - ret -; 108b45 - -Function108b45: ; 108b45 - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - ld de, (31 << 10) + (31 << 5) + 31 ; $7fff - ld hl, UnknBGPals - ld a, e - ld [hli], a - ld d, a - ld [hli], a - pop af - ld [rSVBK], a - ret -; 108b5a - -Function108b5a: ; 108b5a - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - ld de, (15 << 10) + (31 << 5) + 18 ; $3ff2 - ld hl, BGPals + 4 palettes - ld c, $10 -.loop - ld a, e - ld [hli], a - ld a, d - ld [hli], a - dec c - jr nz, .loop - pop af - ld [rSVBK], a - ld a, $1 - ld [hCGBPalUpdate], a - ret -; 108b78 - -Function108b78: ; 108b78 - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - ld a, c - and $2 - jr z, .Orange - ld de, (31 << 10) + (31 << 5) + 31 ; $7fff - jr .load_pal - -.Orange: - ld de, ( 1 << 10) + (15 << 5) + 31 ; $05ff -.load_pal - ld a, e - ld [hli], a - ld a, d - ld [hld], a - pop af - ld [rSVBK], a - ld a, $1 - ld [hCGBPalUpdate], a - ret -; 108b98 - -Palette_108b98: -; removed - -Function108b98: ; 108b98 - ld d, a - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - ld a, [wcf65] - and $1 - xor d - jr z, .asm_108bad - ld hl, Palette_108b98 + 1 palettes - jr .asm_108bb0 - -.asm_108bad - ld hl, Palette_108b98 -.asm_108bb0 - ld de, UnknBGPals + 7 palettes - ld bc, 8 palettes - call CopyBytes - pop af - ld [rSVBK], a - ret -; 108bbd - -MobileTradeAnim_DeleteSprites: ; 108bbd - callba DeinitializeAllSprites - call ClearSprites - ret -; 108bc7 - -Function108bc7: ; 108bc7 (42:4bc7) - ld a, [wcf64] - and a - ret z - ld hl, SPRITEANIMSTRUCT_YCOORD - add hl, bc - ld a, [hl] - cp -1 * 8 - 6 - jr z, .delete - sub 1 * 8 - ld [hl], a - ret - -.delete - callba DeinitializeSprite - ret - -Function108be0: ; 108be0 (42:4be0) - ld hl, SPRITEANIMSTRUCT_YCOORD - add hl, bc - ld a, [hl] - cp 9 * 8 + 2 - ret z - add 1 * 8 - ld [hl], a - ret -; 108bec (42:4bec) - -Function108bec: ; 108bec - ld a, $90 - ld [hWY], a - ld hl, .PlayerWillTradeMon - call PrintText - ld c, 80 - call DelayFrames - ld hl, .ForPartnersMon - call PrintText - ld c, 80 - call DelayFrames - ret -; 108c07 - -.PlayerWillTradeMon: ; 0x108c07 - text_jump UnknownText_0x1bc787 - db "@" -; 0x108c0c - -.ForPartnersMon: ; 0x108c0c - text_jump UnknownText_0x1bc79d - db "@" -; 0x108c11 - -.UnusedTextPlayersMonTrade: ; 0x108c11 - text_jump UnknownText_0x1bc7b0 - db "@" -; 0x108c16 - -Function108c16: ; 108c16 - ld a, $90 - ld [hWY], a - ld hl, .TakeGoodCareOfMon - call PrintText - ld c, 80 - call DelayFrames - ret -; 108c26 - -.TakeGoodCareOfMon: ; 0x108c26 - text_jump UnknownText_0x1bc7c3 - db "@" -; 0x108c2b - -Function108c2b: ; 108c2b - ld a, $90 - ld [hWY], a - ld hl, .PlayersMonTrade - call PrintText - ld c, 80 - call DelayFrames - ret -; 108c3b - -.PlayersMonTrade: ; 0x108c3b - text_jump UnknownText_0x1bc7dd - db "@" -; 0x108c40 - -Function108c40: ; 108c40 - ld a, $90 - ld [hWY], a - ld a, [wcf65] - and %10000000 - jr z, .Getmon - ld hl, .CameBack - call PrintText - ld c, 80 - call DelayFrames - ret - -.Getmon: - ld hl, .TakeGoodCareOf - call PrintText - ld c, 80 - call DelayFrames - ret -; 108c63 - -.TakeGoodCareOf: ; 0x108c63 - text_jump UnknownText_0x1bc7f0 - db "@" -; 0x108c68 - -.CameBack: ; 0x108c68 - text_jump UnknownText_0x1bc80a - db "@" -; 0x108c6d - -Function108c6d: ; 108c6d - ld hl, LZ_108fe7 - debgcoord 0, 0 - call Decompress - ld hl, LZ_108fe7 - debgcoord 0, 0, VBGMap1 - call Decompress - ret -; 108c80 - -Function108c80: ; 108c80 - ld a, $1 - ld [rVBK], a - ld hl, LZ_1090a7 - debgcoord 0, 0 - call Decompress - ld hl, LZ_1090a7 - debgcoord 0, 0, VBGMap1 - call Decompress - ld a, $0 - ld [rVBK], a - ret -; 108c9b - -DebugMobileTrade: ; 108c9b -; localization error: NAME_LENGTH (11) should be 6 here - - ld hl, .DebugTradeData - ld a, [hli] - ld [wPlayerTrademonSpecies], a - - ld de, wPlayerTrademonSenderName - ld c, NAME_LENGTH -.your_name_loop - ld a, [hli] - ld [de], a - inc de - dec c - jr nz, .your_name_loop - - ld de, wPlayerTrademonID - ld c, 2 -.your_id_loop - ld a, [hli] - ld [de], a - inc de - dec c - jr nz, .your_id_loop - - ld de, wPlayerTrademonOTName - ld c, NAME_LENGTH -.your_ot_loop - ld a, [hli] - ld [de], a - inc de - dec c - jr nz, .your_ot_loop - - ld a, [hli] - ld [wOTTrademonSpecies], a - - ld de, wOTTrademonSenderName - ld c, NAME_LENGTH -.their_name_loop - ld a, [hli] - ld [de], a - inc de - dec c - jr nz, .their_name_loop - - ld de, wOTTrademonID - ld c, 2 -.their_id_loop - ld a, [hli] - ld [de], a - inc de - dec c - jr nz, .their_id_loop - - ld de, wOTTrademonOTName - ld c, NAME_LENGTH -.their_ot_loop - ld a, [hli] - ld [de], a - inc de - dec c - jr nz, .their_ot_loop - - ret -; 108ce9 - -.DebugTradeData: - db VENUSAUR - db "ゲーフり@@" - dw $0123 - db "かびーん@@" - db CHARIZARD - db "クりーチャ@" - dw $0456 - db "マツミヤ@@" -; 108d07 - -Function108d07: ; 108d07 - ld a, [wc74e] - and $7f - cp $8 - jr c, .asm_108d12 - ld a, $7 - -.asm_108d12 - ld bc, 1 palettes - ld hl, Palette_1093c7 - call AddNTimes - ld a, $5 - ld de, UnknBGPals + 4 palettes - ld bc, 1 palettes - call FarCopyWRAM - ret -; 108d27 - -LZ_108d27: -INCBIN "gfx/unknown/108d27.2bpp.lz" - -LZ_108da7: -INCBIN "gfx/unknown/108da7.2bpp.lz" - -LZ_108fe7: -INCBIN "gfx/unknown/108fe7.tilemap.lz" - -LZ_1090a7: -INCBIN "gfx/unknown/1090a7.tilemap.lz" - -Palette_1090f7: -; unreferenced - RGB 31, 31, 31 - RGB 0, 0, 0 - - RGB 31, 0, 25 - RGB 0, 0, 0 - - RGB 31, 31, 31 - RGB 0, 0, 0 - - RGB 9, 19, 31 - RGB 0, 0, 0 - -Palette_109107: - RGB 18, 31, 15 - RGB 20, 20, 20 - RGB 11, 11, 11 - RGB 0, 0, 0 - - RGB 31, 15, 1 - RGB 14, 14, 31 - RGB 12, 9, 31 - RGB 0, 0, 0 - - RGB 18, 31, 15 - RGB 14, 14, 31 - RGB 12, 9, 31 - RGB 0, 0, 0 - - RGB 18, 31, 15 - RGB 20, 20, 20 - RGB 11, 11, 11 - RGB 0, 0, 0 - - RGB 18, 31, 15 - RGB 31, 7, 9 - RGB 18, 0, 1 - RGB 0, 0, 0 - - RGB 18, 31, 15 - RGB 20, 20, 20 - RGB 11, 11, 11 - RGB 0, 0, 0 - - RGB 31, 15, 1 - RGB 18, 0, 30 - RGB 9, 0, 17 - RGB 0, 0, 0 - - RGB 18, 31, 15 - RGB 18, 0, 30 - RGB 9, 0, 17 - RGB 0, 0, 0 - -Palette_109147: - RGB 31, 31, 31 - RGB 31, 31, 12 - RGB 31, 13, 12 - RGB 0, 0, 0 - - RGB 31, 31, 31 - RGB 31, 23, 15 - RGB 31, 18, 7 - RGB 31, 15, 0 - - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 11, 11, 11 - RGB 0, 0, 0 - - RGB 31, 31, 31 - RGB 31, 0, 25 - RGB 31, 0, 25 - RGB 0, 0, 0 - - RGB 31, 31, 31 - RGB 9, 19, 31 - RGB 9, 19, 31 - RGB 0, 0, 0 - - RGB 31, 31, 31 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - - RGB 31, 31, 31 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - - RGB 31, 31, 31 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - -Palette_109187: - RGB 31, 31, 31 - RGB 31, 31, 12 - RGB 31, 13, 12 - RGB 0, 0, 0 - - RGB 31, 31, 31 - RGB 31, 23, 15 - RGB 31, 18, 7 - RGB 31, 15, 0 - - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 11, 11, 11 - RGB 0, 0, 0 - - RGB 31, 31, 31 - RGB 9, 19, 31 - RGB 9, 19, 31 - RGB 0, 0, 0 - - RGB 31, 31, 31 - RGB 31, 0, 25 - RGB 31, 0, 25 - RGB 0, 0, 0 - - RGB 31, 31, 31 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - - RGB 31, 31, 31 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - - RGB 31, 31, 31 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - -GFX_1091c7: -INCBIN "gfx/unknown/1091c7.2bpp" -GFX_1092c7: -INCBIN "gfx/unknown/1092c7.2bpp" - -Palette_1093c7: - RGB 18, 31, 15 - RGB 4, 13, 31 - RGB 0, 0, 31 - RGB 0, 0, 0 - - RGB 18, 31, 15 - RGB 31, 31, 0 - RGB 31, 15, 0 - RGB 0, 0, 0 - - RGB 18, 31, 15 - RGB 9, 24, 0 - RGB 2, 16, 0 - RGB 0, 0, 0 - - RGB 18, 31, 15 - RGB 31, 7, 9 - RGB 18, 0, 1 - RGB 0, 0, 0 - - RGB 18, 31, 15 - RGB 28, 5, 31 - RGB 17, 0, 17 - RGB 0, 0, 0 - - RGB 18, 31, 15 - RGB 9, 9, 9 - RGB 4, 4, 4 - RGB 0, 0, 0 - - RGB 18, 31, 15 - RGB 31, 13, 21 - RGB 27, 7, 12 - RGB 0, 0, 0 - - RGB 18, 31, 15 - RGB 21, 20, 20 - RGB 14, 14, 31 - RGB 0, 0, 0 diff --git a/misc/mobile_45.asm b/misc/mobile_45.asm deleted file mode 100644 index d6743acc2..000000000 --- a/misc/mobile_45.asm +++ /dev/null @@ -1,7690 +0,0 @@ - -SECTION "bank45", ROMX - - charmap " ", $20 ; revert to ascii - -String_114000: - db "---", 0 -String_114004: - db "CGB-AAAA-00", 0, 0 - -Unknown_114011: ; 114011 - dw String_114033 - dw String_11403a - dw String_114043 - dw String_11404e - dw String_114053 - dw String_114058 - dw String_114062 - dw String_114074 - dw String_11408d - dw String_11409f - dw String_1140b8 - dw String_1140e6 - dw String_114110 - dw String_11413f - dw String_114160 - dw String_114160 - dw String_114163 - -String_114033: ; 114033 - db "From: ", 0 -String_11403a: ; 11403a - db "Sender: ", 0 -String_114043: ; 114043 - db "Reply-To: ", 0 -String_11404e: ; 11404e - db "To: ", 0 -String_114053: ; 114053 - db "Cc: ", 0 -String_114058: ; 114058 - db "Subject: ", 0 -String_114062: ; 114062 - db "MIME-Version: 1.0", 0 -String_114074: ; 114074 - db "X-Game-title: XXXXXXXXXX", 0 -String_11408d: ; 11408d - db "X-Game-code: CGB-", 0 -String_11409f: ; 11409f - db "X-GBmail-type: exclusive", 0 -String_1140b8: ; 1140b8 - db "Content-Type: text/plain; charset=iso-2022-jp", 0 -String_1140e6: ; 1140e6 - db "Content-Type: multipart/mixed; boundary=\"", 0 -String_114110: ; 114110 - db "Content-Type: Application/Octet-Stream; name=\"", 0 -String_11413f: ; 11413f - db "Content-Transfer-Encoding:Base64", 0 -String_114160: ; 114160 - db "--", 0 -String_114163: ; 114163 - db ".", 0 -; 114165 - -Jumptable_114165: ; 114165 - dw Function114268 - dw Function114269 - dw Function11433c - dw Function1143b7 - dw Function1144d1 - dw Function114b55 - dw Function114bbc - dw Function114cd9 - dw Function114e62 - dw Function1152b8 - dw Function1154d4 - dw Function1156cc - dw Function1159fb -; 11417f - -Unknown_11417f: ; 11417f - dw .From - dw .Sender - dw .ReplyTo - dw .To - dw .CC - dw .Subject - dw .Date - dw .ContentType - dw .MimeVersion - dw .XMailer - dw .XGameTitle - dw .XGameCode - dw .XGBMailType - -.From: ; 114199 - db "FROM:", 0 -.Sender: ; 11419f - db "SENDER:", 0 -.ReplyTo: ; 1141a7 - db "REPLY-TO:", 0 -.To: ; 1141b1 - db "TO:", 0 -.CC: ; 1141b5 - db "CC:", 0 -.Subject: ; 1141b9 - db "SUBJECT:", 0 -.Date: ; 1141c2 - db "DATE:", 0 -.ContentType: ; 1141c8 - db "CONTENT-TYPE:", 0 -.MimeVersion: ; 1141d6 - db "MIME-VERSION:", 0 -.XMailer: ; 1141e4 - db "X-MAILER:", 0 -.XGameTitle: ; 1141ee - db "X-GAME-TITLE:", 0 -.XGameCode: ; 1141fc - db "X-GAME-CODE:", 0 -.XGBMailType: ; 114209 - db "X-GBMAIL-TYPE:", 0 -; 114218 - -String_114218: ; 114218 - db "NAME=", 0 -String_11421e: ; 11421e - db "MULTIPART", 0 -String_114228: ; 114228 - db "BOUNDARY=", 0 -String_114232: ; 114232 - db "=?ISO-2022-JP?B?", 0 -; 114243 - -Function114243:: ; 114243 - ld a, SRAM_ENABLE - ld [MBC3SRamEnable], a - ld a, [hFF8C] - push af ; if [$dc02] == 0, this is popped to pc. - push de - ld a, [$dc02] - add a - ld e, a - ld d, 0 - ld hl, Jumptable_114165 - add hl, de - ld a, [hli] - ld h, [hl] - ld l, a - pop de - jp hl - -; 11425c - -Function11425c: ; 11425c - ld [$dc02], a - pop af - ld [hFF8C], a - ld [hFF8C], a - ld [MBC3SRamBank], a - ret - -; 114268 - -Function114268: mobile - -; 114269 - -Function114269: ; 114269 - ld h, d - ld l, e - xor a - ld [$dc02], a - ld [$dc03], a - ld a, [hli] - ld [$dc00], a - ld [hFF8C], a - ld [MBC3SRamBank], a - ld e, [hl] - inc hl - ld d, [hl] - inc hl - ld c, [hl] - inc hl - ld b, [hl] -.asm_114282 - ld a, [de] - and a - jr z, .asm_1142a4 - ld h, a - ld a, [$dc03] - and a - jr nz, .asm_114292 - ld a, h - cp $80 - jr nc, .asm_1142ae - -.asm_114292 - ld a, h - cp $d - jr z, .asm_1142bb - xor a - ld [$dc02], a -.asm_11429b - inc e - call z, Function114333 - dec bc - ld a, b - or c - jr nz, .asm_114282 - -.asm_1142a4 - ld a, [$dc03] - and a - jr nz, .asm_114303 - ld b, $80 - jr .asm_1142b0 - -.asm_1142ae - ld b, $81 - -.asm_1142b0 - ld a, [$dc00] - ld c, a - ld a, $1 - ld h, d - ld l, e - jp Function11425c - -.asm_1142bb - and a - jr z, .asm_1142a4 - inc e - call z, Function114333 - dec bc - ld a, b - or c - jr z, .asm_1142a4 - ld a, [de] - ld h, a - ld a, [$dc03] - and a - jr nz, .asm_1142d4 - ld a, h - cp $80 - jr nc, .asm_1142ae - -.asm_1142d4 - ld a, h - cp $a - jr nz, .asm_1142ae - ld a, [$dc03] - and a - jr nz, .asm_11430d - ld a, [$dc02] - and a - jr nz, .asm_114309 - ld a, $1 - ld [$dc02], a - inc e - call z, Function114333 - dec bc - ld a, b - or c - jr z, .asm_1142a4 - ld a, [de] - cp $20 - jr z, .asm_11429b - cp $9 - jr z, .asm_11429b - jr .asm_114282 - -.asm_1142fe - xor a - ld b, a - jp Function11425c - -.asm_114303 - xor a - ld b, $1 - jp Function11425c - -.asm_114309 - xor a - ld [$dc02], a - -.asm_11430d - ld a, [$dc02] - and a - jr nz, .asm_1142fe - ld a, $1 - ld [$dc03], a - inc e - call z, Function114333 - dec bc - ld a, b - or c - jr z, .asm_1142a4 - ld a, [de] - and a - jp z, .asm_1142a4 - cp $2e - jp nz, .asm_114282 - ld a, $1 - ld [$dc02], a - jp .asm_11429b - -; 114333 - -Function114333: ; 114333 - push bc - ld bc, $dc00 - call Function115d80 - pop bc - ret - -; 11433c - -Function11433c: ; 11433c - push de - ld h, d - ld l, e - ld c, [hl] - inc hl - ld e, [hl] - inc hl - ld d, [hl] - ld b, $b - call Function1143f3 - cp $2 - jr z, .asm_114358 - and a - jr z, .asm_114360 - pop hl -.asm_114351 - xor a - ld b, $3 - jp Function11425c - -.asm_114357 - pop hl - -.asm_114358 - pop hl - ld a, $1 - ld b, $82 - jp Function11425c - -.asm_114360 - ld a, h - ld [$dc03], a - pop hl - push bc - push de - ld c, [hl] - inc hl - ld e, [hl] - inc hl - ld d, [hl] - inc hl - ld b, $c - call Function1143f3 - cp $2 - jr z, .asm_114357 - and a - jr z, .asm_114381 - xor a - ld b, $2 - pop hl - pop hl - jp Function11425c - -.asm_114381 - pop de - pop bc - ld a, [$dc03] - ld [$dc00], a - ld [hFF8C], a - ld [MBC3SRamBank], a - call Function114c0b - ld hl, String_114004 -.asm_114394 - ld de, $dc24 -.asm_114397 - ld a, [hli] - and a - jr z, .asm_1143ad - ld b, a - ld a, [de] - inc de - cp b - jr z, .asm_114397 -.asm_1143a1 - ld a, [hli] - and a - jr nz, .asm_1143a1 - ld a, [hl] - and a - jr nz, .asm_114394 - ld b, a - jp Function11425c - -.asm_1143ad - ld a, [de] - and a - jr nz, .asm_114351 - xor a - ld b, $1 - jp Function11425c - -; 1143b7 - -Function1143b7: ; 1143b7 - ld a, [de] - ld b, a - inc de - ld a, [de] - ld c, a - inc de - ld a, [de] - ld h, a - inc de - ld a, [de] - inc de - push de - ld d, a - ld e, h - call Function1143f3 - cp $2 - jr z, .asm_1143eb - and a - jr nz, .asm_1143ed - ld a, h - pop hl - push af - ld a, [hli] - ld [wCurrentMapSignpostCount], a - ld [hFF8C], a - ld [MBC3SRamBank], a - ld a, [hli] - ld h, [hl] - ld l, a - pop af - ld [hli], a - ld a, e - ld [hli], a - ld a, d - ld [hli], a - ld a, c - ld [hli], a - ld [hl], b - xor a - jp Function11425c - -.asm_1143eb - ld b, $82 - -.asm_1143ed - ld a, $1 - pop hl - jp Function11425c - -; 1143f3 - -Function1143f3: ; 1143f3 - call Function114412 - and a - jr nz, .asm_11440d - ld a, $4 - cp b - jr c, .asm_114407 - jr z, .asm_114402 -.asm_114400 - xor a - ret - -.asm_114402 - ld a, $0 - cp c - jr nc, .asm_114400 - -.asm_114407 - lb bc, $4, $0 - ld a, $2 - ret - -.asm_11440d - ld a, $1 - ld b, $84 - ret - -; 114412 - -Function114412: ; 114412 - ld a, c - ld [$dc00], a - ld [hFF8C], a - ld [MBC3SRamBank], a - ld hl, Unknown_11417f - ld a, b - add a - ld c, a - ld b, $0 - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - ld c, $0 - jr .asm_11444a - -.asm_11442b - ld a, [de] - and a - jp z, .asm_1144c2 - inc e - call z, Function1144c8 - cp $d ; CR - jr nz, .asm_11442b - ld a, [de] - inc e - call z, Function1144c8 - cp $a ; NL - jr nz, .asm_11442b - ld a, [de] - cp $2e ; . - jr z, .asm_1144ae - cp $d ; CR - jr z, .asm_1144b8 - -.asm_11444a - ld a, [$dc00] - ld [$dc02], a - ld a, [de] - and a - jr z, .asm_1144c2 - inc e - call z, Function1144c8 - cp $61 ; "a" - jr c, .asm_114462 - cp $7b ; "z" + 1 - jr nc, .asm_114462 - sub $20 - -.asm_114462 - ld b, a - ld a, [hl] - and a - jr z, .asm_114476 - cp b - jr nz, .asm_11446e - inc c - inc hl - jr .asm_11444a - -.asm_11446e - ld a, c - and a - jr z, .asm_11442b - dec c - dec hl - jr .asm_11446e - -.asm_114476 - ld a, $20 ; " " - cp b - jr z, .asm_114481 - ld a, $a ; NL - cp b - jr z, .asm_114481 - dec de - -.asm_114481 - ld h, d - ld l, e - ld bc, NULL -.asm_114486 - ld a, [de] - and a - jr z, .asm_1144c2 - inc bc - inc e - call z, Function1144c8 - cp $d ; CR - jr nz, .asm_114486 - ld a, [de] - inc bc - inc e - call z, Function1144c8 - cp $a ; NL - jr nz, .asm_114486 - ld a, [de] - cp $20 ; " " - jr z, .asm_114486 - cp $9 ; TAB - jr z, .asm_114486 - ld d, h - ld e, l - ld a, [$dc02] - ld h, a - xor a - ret - -.asm_1144ae - inc e - call z, Function1144c8 - ld a, [de] - cp $d ; CR - jp nz, .asm_11442b - -.asm_1144b8 - inc e - call z, Function1144c8 - ld a, [de] - cp $a ; NL - jp nz, .asm_11442b - -.asm_1144c2 - ld a, $0 - ld [hl], a - ld a, $1 - ret - -; 1144c8 - -Function1144c8: ; 1144c8 - push bc - ld bc, $dc00 - call Function115d80 - pop bc - ret - -; 1144d1 - -Function1144d1: ; 1144d1 - call Function114561 - dec de - dec de - push de - inc de - inc de - inc de - inc hl - ld a, [de] - ld [hli], a - inc de - ld a, [de] - ld [hli], a - inc hl - ld a, [de] - ld [hld], a - dec de - ld a, [de] - ld [hl], a - xor a - ld [BigDoll], a - ld [$dc17], a - ld a, $2 - ld [$dc0e], a - ld hl, $dc03 - ld c, [hl] - inc hl - ld e, [hl] - inc hl - ld d, [hl] - call Function114576 - cp $2 - jr z, .asm_11455b - and a - jr z, .asm_114511 - ld a, $1 - ld [$dc0d], a - call Function1146fa - and a - jr nz, .asm_11455b - jr .asm_11451c - -.asm_114511 - call Function1146a4 - and a - jr nz, .asm_11455b - ld a, $2 - ld [$dc0d], a - -.asm_11451c - pop hl - ld a, [hli] - ld [wCurrentMapSignpostCount], a - ld [hFF8C], a - ld [MBC3SRamBank], a - ld e, [hl] - inc hl - ld d, [hl] - ld a, [$dc0d] - ld [de], a - ld b, $0 - ld a, [BigDoll] - and a - jr z, .asm_114537 - ld b, $1 - -.asm_114537 - ld hl, $dc06 - ld a, [hl] - ld [wCurrentMapSignpostCount], a - ld [hFF8C], a - ld [MBC3SRamBank], a - ld hl, $dc09 - ld e, [hl] - inc hl - ld d, [hl] - dec de - ld a, d - or e - jr z, .asm_114559 - ld hl, wCurrMapTriggerCount - ld e, [hl] - inc hl - ld d, [hl] - xor a - ld [de], a - jp Function11425c - -.asm_114559 - ld b, $83 - -.asm_11455b - pop hl - ld a, $1 - jp Function11425c - -; 114561 - -Function114561: ; 114561 - ld hl, $dc03 - ld a, [de] - ld [hli], a - inc de - ld a, [de] - ld [hli], a - inc de - ld a, [de] - ld [hli], a - inc de - ld a, [de] - ld [hli], a - inc de - ld a, [de] - ld [hli], a - inc de - ld a, [de] - ld [hl], a - ret - -; 114576 - -Function114576: ; 114576 - xor a - ld [Bed], a - ld b, $7 - call Function1143f3 - cp $2 - jr z, .asm_1145b6 - and a - jr nz, .asm_1145b4 - ld a, h - ld [$dc00], a - ld [hFF8C], a - ld [MBC3SRamBank], a - push hl - push de - push bc - ld hl, $dc24 - call Function115d53 - call Function1145c5 - pop bc - pop de - pop hl - and a - jr z, .asm_1145bf - ld a, b - and a - jr nz, .asm_1145ba - ld a, h - ld [$dc00], a - ld [hFF8C], a - ld [MBC3SRamBank], a - ld hl, String_114218 - call Function114acf - -.asm_1145b4 - xor a - ret - -.asm_1145b6 - ld b, $82 - jr .asm_1145bc - -.asm_1145ba - ld b, $81 - -.asm_1145bc - ld a, $2 - ret - -.asm_1145bf - ld a, $1 - ld [Bed], a - ret - -; 1145c5 - -Function1145c5: ; 1145c5 - ld hl, $dc24 - ld de, String_11421e - ld c, $0 -.asm_1145cd - ld a, [hli] - and a - jr z, .asm_1145ef - cp $20 - jr z, .asm_1145cd - cp $d - jr z, .asm_1145f8 - cp $61 - jr c, .asm_1145e3 - cp $7b - jr nc, .asm_1145e3 - sub $20 - -.asm_1145e3 - ld b, a - ld a, [de] - and a - jr z, .asm_11460e - inc de - cp b - jr z, .asm_1145cd - dec de - jr .asm_1145cd - -.asm_1145ef - ld b, $0 - jr .asm_1145f5 - -.asm_1145f3 - ld b, $81 - -.asm_1145f5 - ld a, $1 - ret - -.asm_1145f8 - ld a, [hli] - and a - jr z, .asm_1145f3 - cp $a - jr nz, .asm_1145f3 - ld a, [hli] - and a - jr z, .asm_1145f3 - cp $20 - jr z, .asm_1145cd - cp $9 - jr z, .asm_1145cd - jr .asm_1145f3 - -.asm_11460e - ld a, c - and a - jr nz, .asm_114619 - ld c, $1 - ld de, String_114228 - jr .asm_1145cd - -.asm_114619 - dec hl - ld a, [hl] - cp $22 - jr nz, .asm_114620 - inc hl - -.asm_114620 - ld de, $ddc8 - ld b, $0 - ld c, $40 -.asm_114627 - ld a, [hli] - cp $22 - jr z, .asm_114636 - cp $d - jr z, .asm_114636 - ld [de], a - inc de - inc b - dec c - jr nz, .asm_114627 - -.asm_114636 - ld a, b - ld [PartyMon5Defense], a - xor a - ret - -; 11463c - -Function11463c: ; 11463c - ld a, [$dc00] - push af - push de - ld hl, $ddc8 - ld a, [PartyMon5Defense] - ld b, a -.asm_114648 - ld a, [de] - ld c, a - ld a, [hli] - cp c - jr nz, .asm_11468a - inc e - call z, Function11469b - dec b - jr nz, .asm_114648 - ld a, [de] - cp $2d - jr z, .asm_114673 - cp $d - jr nz, .asm_11468a - xor a - ld [Carpet], a -.asm_114662 - inc e - call z, Function11469b - ld a, [de] - cp $a - jr nz, .asm_11468a - inc e - call z, Function11469b - xor a - pop hl - pop hl - ret - -.asm_114673 - inc e - call z, Function11469b - ld a, [de] - cp $2d - jr nz, .asm_11468a - inc e - call z, Function11469b - ld a, $1 - ld [Carpet], a - ld a, [de] - cp $d - jr z, .asm_114662 - -.asm_11468a - pop de - pop af - ld [$dc00], a - ld [hFF8C], a - ld [MBC3SRamBank], a - xor a - ld [Carpet], a - ld a, $1 - ret - -; 11469b - -Function11469b: ; 11469b - push bc - ld bc, $dc00 - call Function115d80 - pop bc - ret - -; 1146a4 - -Function1146a4: ; 1146a4 - call Function114867 - and a - jr nz, .asm_1146e4 - ld hl, $dc03 - ld a, [hli] - ld [$dc00], a - ld [hFF8C], a - ld [MBC3SRamBank], a - ld e, [hl] - inc hl - ld d, [hl] - call Function114a18 - and a - jr nz, .asm_1146e8 - call Function1148c2 - and a - jr nz, .asm_1146e4 - ld hl, $dc03 - ld a, [hli] - ld [$dc00], a - ld [hFF8C], a - ld [MBC3SRamBank], a - ld e, [hl] - inc hl - ld d, [hl] - call Function114a7a - and a - jr nz, .asm_1146e8 -.asm_1146da - dec bc - dec bc - call Function1149cc - and a - jr nz, .asm_1146e4 - xor a - ret - -.asm_1146e4 - ld b, $83 - jr .asm_1146f7 - -.asm_1146e8 - ld a, [$dc17] - and a - jr z, .asm_1146f5 - ld a, $1 - ld [BigDoll], a - jr .asm_1146da - -.asm_1146f5 - ld b, $81 - -.asm_1146f7 - ld a, $1 - ret - -; 1146fa - -Function1146fa: ; 1146fa - call Function114867 - and a - jp nz, .asm_11478a - ld hl, $dc03 - ld a, [hli] - ld [$dc00], a - ld [hFF8C], a - ld [MBC3SRamBank], a - ld e, [hl] - inc hl - ld d, [hl] - call Function114a18 - and a - jp nz, .asm_11478e - call Function1149cc - and a - jp nz, .asm_11478a - ld a, $1 - ld [$dc0e], a - ld a, [$dc00] - ld [hFF8C], a - ld [MBC3SRamBank], a - ld a, $1 - ld [RightOrnament], a - call Function1147cd - and a - jp nz, .asm_1147b7 -.asm_114737 - call Function114843 - cp $1 - jr nz, .asm_114749 - ld a, [$dc17] - and a - jr z, .asm_114794 - ld a, $1 - ld [BigDoll], a - -.asm_114749 - call Function11494d - and a - jr nz, .asm_11478a - ld a, [BigDoll] - and a - jr nz, .asm_114786 - ld hl, $dc03 - ld a, [hli] - ld [$dc00], a - ld [hFF8C], a - ld [MBC3SRamBank], a - ld e, [hl] - inc hl - ld d, [hl] - call Function1147cd - and a - jr nz, .asm_1147b7 - ld a, [$dc0e] - cp $3 - jr nz, .asm_114773 - dec bc - dec bc - -.asm_114773 - call Function1149cc - and a - jr nz, .asm_11478a - ld a, [$dc0d] - inc a - ld [$dc0d], a - ld a, [BigDoll] - and a - jr z, .asm_114799 - -.asm_114786 - ld b, $1 - jr .asm_1147cb - -.asm_11478a - ld b, $83 - jr .asm_114796 - -.asm_11478e - ld a, [$dc17] - and a - jr nz, .asm_114796 - -.asm_114794 - ld b, $81 - -.asm_114796 - ld a, $1 - ret - -.asm_114799 - ld a, [Carpet] - and a - jr z, .asm_114737 - jr .asm_1147cb - - ld hl, $dc03 - ld a, [hli] - ld [$dc00], a - ld [hFF8C], a - ld [MBC3SRamBank], a - call Function114a7a - and a - jr z, .asm_1147cb - xor a - ld [BigDoll], a - -.asm_1147b7 - ld a, [$dc17] - and a - jr z, .asm_114794 - ld a, $1 - ld [BigDoll], a - ld a, [$dc0d] - cp $1 - jr nz, .asm_114773 - ld b, $1 - -.asm_1147cb - xor a - ret - -; 1147cd - -Function1147cd: ; 1147cd - ld bc, NULL - ld a, [RightOrnament] - and a - jr nz, .asm_11480c -.asm_1147d6 - ld a, [de] - and a - jr z, .asm_11482f - inc e - call z, Function11483a - inc bc - cp $d - jr nz, .asm_1147d6 - ld a, [de] - cp $a - jr nz, .asm_11482f -.asm_1147e8 - inc bc - inc e - call z, Function11483a - ld a, [de] - cp $20 - jr z, .asm_114827 - cp $9 - jr z, .asm_114827 - cp $d - jr nz, .asm_11482b - inc e - call z, Function11483a - ld a, [de] - cp $a - jr nz, .asm_11482f - inc e - call z, Function11483a - ld a, h - and a - jr z, .asm_11480c - dec bc - -.asm_11480c - ld a, [de] - cp $2d - jr nz, .asm_1147d6 - inc e - call z, Function11483a - ld a, [de] - cp $2d - jr nz, .asm_1147d6 - inc e - call z, Function11483a - push bc - call Function11463c - pop bc - and a - jr nz, .asm_1147d6 - ret - -.asm_114827 - ld h, $1 - jr .asm_1147e8 - -.asm_11482b - ld h, $0 - jr .asm_11480c - -.asm_11482f - and a - jr nz, .asm_114837 - ld a, $1 - ld [$dc17], a - -.asm_114837 - ld a, $1 - ret - -; 11483a - -Function11483a: ; 11483a - push bc - ld bc, $dc00 - call Function115d80 - pop bc - ret - -; 114843 - -Function114843: ; 114843 - ld a, [$dc00] - push af - push de - ld [hFF8C], a - ld [MBC3SRamBank], a - call Function114a18 - and a - jr nz, .asm_11485f - pop de - pop af - ld [$dc00], a - ld hl, String_114218 - call Function114acf - ret - -.asm_11485f - pop de - pop af - ld [$dc00], a - ld a, $1 - ret - -; 114867 - -Function114867: ; 114867 - ld hl, $dc06 - ld a, [hli] - ld [wCurrentMapSignpostCount], a - ld [hFF8C], a - ld [MBC3SRamBank], a - ld e, [hl] - inc hl - ld d, [hl] - ld a, $2 - ld [de], a - inc e - call z, Function1148b9 - ld a, $1 - ld [de], a - inc e - call z, Function1148b9 - ld hl, $dc03 - ld a, [hli] - ld [de], a - inc e - call z, Function1148b9 - ld a, [hli] - ld [de], a - inc e - call z, Function1148b9 - ld a, [hli] - ld [de], a - inc e - call z, Function1148b9 - ld hl, $dc06 - ld a, [wCurrentMapSignpostCount] - ld [hli], a - ld [hl], e - inc hl - ld [hl], d - inc hl - ld c, [hl] - inc hl - ld b, [hl] - ld d, $5 -.asm_1148a9 - dec bc - ld a, b - or c - jr z, .asm_1148b6 - dec d - jr nz, .asm_1148a9 - ld [hl], b - dec hl - ld [hl], c - xor a - ret - -.asm_1148b6 - ld a, $1 - ret - -; 1148b9 - -Function1148b9: ; 1148b9 - push bc - ld bc, wCurrentMapSignpostCount - call Function115d80 - pop bc - ret - -; 1148c2 - -Function1148c2: ; 1148c2 - ld hl, $dc06 - ld a, [hli] - ld [wCurrentMapSignpostCount], a - ld [hFF8C], a - ld [MBC3SRamBank], a - ld e, [hl] - inc hl - ld d, [hl] - ld a, c - ld [de], a - inc e - call z, Function114944 - ld a, b - ld [de], a - inc e - call z, Function114944 - ld a, [$dc0e] - ld [de], a - inc e - call z, Function114944 - cp $3 - jr nz, .asm_114904 - ld hl, Plant - ld a, [hli] - ld [de], a - inc e - call z, Function114944 - ld a, [hli] - ld [de], a - inc e - call z, Function114944 - ld a, [hli] - ld [de], a - inc e - call z, Function114944 - ld a, [hli] - ld [de], a - inc e - call z, Function114944 - -.asm_114904 - ld hl, $dc03 - ld a, [hli] - ld [de], a - inc e - call z, Function114944 - ld a, [hli] - ld [de], a - inc e - call z, Function114944 - ld a, [hli] - ld [de], a - inc e - call z, Function114944 - ld hl, $dc06 - ld a, [wCurrentMapSignpostCount] - ld [hli], a - ld [hl], e - inc hl - ld [hl], d - inc hl - ld c, [hl] - inc hl - ld b, [hl] - ld a, [$dc0e] - cp $3 - jr z, .asm_114932 - ld d, $6 - jr .asm_114934 - -.asm_114932 - ld d, $a - -.asm_114934 - dec bc - ld a, b - or c - jr z, .asm_114941 - dec d - jr nz, .asm_114934 - ld [hl], b - dec hl - ld [hl], c - xor a - ret - -.asm_114941 - ld a, $1 - ret - -; 114944 - -Function114944: ; 114944 - push bc - ld bc, wCurrentMapSignpostCount - call Function115d80 - pop bc - ret - -; 11494d - -Function11494d: ; 11494d - ld hl, $dc06 - ld a, [hli] - ld [wCurrentMapSignpostCount], a - ld [hFF8C], a - ld [MBC3SRamBank], a - ld e, [hl] - inc hl - ld d, [hl] - ld a, [$dc0e] - ld [de], a - inc e - call z, Function1149c3 - cp $3 - jr nz, .asm_114983 - ld hl, Plant - ld a, [hli] - ld [de], a - inc e - call z, Function1149c3 - ld a, [hli] - ld [de], a - inc e - call z, Function1149c3 - ld a, [hli] - ld [de], a - inc e - call z, Function1149c3 - ld a, [hli] - ld [de], a - inc e - call z, Function1149c3 - -.asm_114983 - ld hl, $dc03 - ld a, [hli] - ld [de], a - inc e - call z, Function1149c3 - ld a, [hli] - ld [de], a - inc e - call z, Function1149c3 - ld a, [hli] - ld [de], a - inc e - call z, Function1149c3 - ld hl, $dc06 - ld a, [wCurrentMapSignpostCount] - ld [hli], a - ld [hl], e - inc hl - ld [hl], d - inc hl - ld c, [hl] - inc hl - ld b, [hl] - ld a, [$dc0e] - cp $3 - jr z, .asm_1149b1 - ld d, $4 - jr .asm_1149b3 - -.asm_1149b1 - ld d, $8 - -.asm_1149b3 - dec bc - ld a, b - or c - jr z, .asm_1149c0 - dec d - jr nz, .asm_1149b3 - ld [hl], b - dec hl - ld [hl], c - xor a - ret - -.asm_1149c0 - ld a, $1 - ret - -; 1149c3 - -Function1149c3: ; 1149c3 - push bc - ld bc, wCurrentMapSignpostCount - call Function115d80 - pop bc - ret - -; 1149cc - -Function1149cc: ; 1149cc - ld hl, $dc06 - ld a, [hl] - ld [wCurrentMapSignpostCount], a - ld [hFF8C], a - ld [MBC3SRamBank], a - push de - ld hl, $dc09 - ld e, [hl] - inc hl - ld d, [hl] - dec de - ld a, d - or e - jr z, .asm_114a0b - dec de - ld a, d - or e - jr z, .asm_114a0b - ld [hl], d - dec hl - ld [hl], e - ld hl, wCurrMapTriggerCount - ld e, [hl] - inc hl - ld d, [hl] - ld a, c - ld [de], a - inc e - call z, Function114a0f - ld a, b - ld [de], a - inc e - call z, Function114a0f - ld hl, $dc06 - ld a, [wCurrentMapSignpostCount] - ld [hli], a - ld [hl], e - inc hl - ld [hl], d - pop de - xor a - ret - -.asm_114a0b - pop de - ld a, $1 - ret - -; 114a0f - -Function114a0f: ; 114a0f - push bc - ld bc, wCurrentMapSignpostCount - call Function115d80 - pop bc - ret - -; 114a18 - -Function114a18: ; 114a18 - ld bc, NULL - ld h, b -.asm_114a1c - inc bc - ld a, [de] - and a - jr z, .asm_114a66 - inc e - call z, Function114a71 - cp $d - jr nz, .asm_114a1c - ld a, [de] - cp $a - jr nz, .asm_114a66 -.asm_114a2e - inc bc - inc e - call z, Function114a71 - ld a, [de] - cp $20 - jr z, .asm_114a5e - cp $9 - jr z, .asm_114a5e - cp $d - jr nz, .asm_114a62 - inc e - call z, Function114a71 - ld a, [de] - cp $a - jr nz, .asm_114a66 - inc e - call z, Function114a71 - ld a, h - and a - jr z, .asm_114a52 - dec bc - -.asm_114a52 - ld hl, $dc03 - ld a, [$dc00] - ld [hli], a - ld [hl], e - inc hl - ld [hl], d - xor a - ret - -.asm_114a5e - ld h, $1 - jr .asm_114a2e - -.asm_114a62 - ld h, $0 - jr .asm_114a1c - -.asm_114a66 - and a - jr nz, .asm_114a6e - ld a, $1 - ld [$dc17], a - -.asm_114a6e - ld a, $1 - ret - -; 114a71 - -Function114a71: ; 114a71 - push bc - ld bc, $dc00 - call Function115d80 - pop bc - ret - -; 114a7a - -Function114a7a: ; 114a7a - ld bc, NULL -.asm_114a7d - inc bc - ld a, [de] - and a - jr z, .asm_114abb - inc e - call z, Function114ac6 - cp $d - jr nz, .asm_114a7d - ld a, [de] - cp $a - jr nz, .asm_114abb - inc e - call z, Function114ac6 - inc bc - ld a, [de] - cp $2e - jr nz, .asm_114a7d - inc e - call z, Function114ac6 - ld a, [de] - cp $d - jr nz, .asm_114a7d - inc e - call z, Function114ac6 - ld a, [de] - cp $a - jr nz, .asm_114abb - inc e - call z, Function114ac6 - ld hl, $dc03 - ld a, [$dc00] - ld [hli], a - ld [hl], e - inc hl - ld [hl], d - xor a - ret - -.asm_114abb - and a - jr nz, .asm_114ac3 - ld a, $1 - ld [$dc17], a - -.asm_114ac3 - ld a, $1 - ret - -; 114ac6 - -Function114ac6: ; 114ac6 - push bc - ld bc, $dc00 - call Function115d80 - pop bc - ret - -; 114acf - -Function114acf: ; 114acf -.asm_114acf - push hl - push bc -.asm_114ad1 - ld a, [hl] - ld b, a - ld a, [de] - inc e - call z, Function114b4c - cp $61 - jr c, .asm_114ae2 - cp $7b - jr nc, .asm_114ae2 - sub $20 - -.asm_114ae2 - cp b - jr z, .asm_114af4 - pop bc - dec bc - push bc - ld a, b - or c - jr nz, .asm_114ad1 -.asm_114aec - ld a, $2 - ld [$dc0e], a - pop bc - pop hl - ret - -.asm_114af4 - inc hl -.asm_114af5 - ld a, [hli] - and a - jr z, .asm_114b19 - ld b, a - ld a, [de] - inc e - call z, Function114b4c - cp $61 - jr c, .asm_114b09 - cp $7b - jr nc, .asm_114b09 - sub $20 - -.asm_114b09 - cp b - jr nz, .asm_114b15 - pop bc - dec bc - push bc - ld a, b - or c - jr nz, .asm_114af5 - jr .asm_114aec - -.asm_114b15 - pop bc - pop hl - jr .asm_114acf - -.asm_114b19 - ld b, $0 - ld c, $40 - ld a, [de] - cp $22 - jr nz, .asm_114b26 - inc e - call z, Function114b4c - -.asm_114b26 - ld hl, Plant - ld a, [$dc00] - ld [hli], a - ld [hl], e - inc hl - ld [hl], d - inc hl -.asm_114b31 - ld a, [de] - cp $22 - jr z, .asm_114b42 - cp $d - jr z, .asm_114b42 - inc e - call z, Function114b4c - inc b - dec c - jr nz, .asm_114b31 - -.asm_114b42 - ld [hl], b - pop bc - pop hl - ld a, $3 - ld [$dc0e], a - xor a - ret - -; 114b4c - -Function114b4c: ; 114b4c - push bc - ld bc, $dc00 - call Function115d80 - pop bc - ret - -; 114b55 - -Function114b55: ; 114b55 - call Function114561 - ld b, $0 - ld hl, $dc03 - ld c, [hl] - inc hl - ld e, [hl] - inc hl - ld d, [hl] - ld hl, $dc24 -.asm_114b65 - push de - push bc - push hl - call Function1143f3 - cp $2 - jr z, .asm_114bb2 - and a - jr nz, .asm_114b8c - ld a, h - pop hl - inc hl - ld [hld], a - ld a, $1 - ld [hli], a - inc hl - ld [hl], e - inc hl - ld [hl], d - inc hl - ld [hl], c - inc hl - ld [hl], b - inc hl -.asm_114b82 - pop bc - pop de - inc b - ld a, b - cp $d - jr z, .asm_114b96 - jr .asm_114b65 - -.asm_114b8c - pop hl - xor a -rept 6 - ld [hli], a -endr - jr .asm_114b82 - -.asm_114b96 - ld hl, $dc06 - ld a, [hli] - ld [wCurrentMapSignpostCount], a - ld [hFF8C], a - ld [MBC3SRamBank], a - ld e, [hl] - inc hl - ld d, [hl] - inc hl - ld bc, $004e - ld hl, $dc24 - call Function115d6a - jp Function11425c - -.asm_114bb2 - ld a, $1 - pop bc - pop bc - pop bc - ld b, $82 - jp Function11425c - -; 114bbc - -Function114bbc: ; 114bbc - ld h, d - ld l, e - ld a, [hli] - ld b, a - ld a, [hli] - ld c, a - ld a, [hli] - ld e, a - ld d, [hl] - inc hl - push hl - call Function1143f3 - cp $2 - jr z, .asm_114c03 - and a - jr nz, .asm_114bff - ld a, h - ld [$dc00], a - ld [hFF8C], a - ld [MBC3SRamBank], a - call Function114c0b - ld hl, $dc24 - call Function114c5e - ld a, b - or c - jr z, .asm_114bff - pop hl - ld a, [hli] - ld [wCurrentMapSignpostCount], a - ld [hFF8C], a - ld [MBC3SRamBank], a - ld a, [hli] - ld e, a - ld d, [hl] - ld hl, $dc24 - push bc - call Function115d6a - pop hl - jp Function11425c - -.asm_114bff - ld b, $84 - jr .asm_114c05 - -.asm_114c03 - ld b, $82 - -.asm_114c05 - ld a, $1 - pop hl - jp Function11425c - -; 114c0b - -Function114c0b: ; 114c0b - ld hl, $dc24 - push bc - call Function115d53 - pop bc - ld hl, $dc24 - ld d, h - ld e, l -.asm_114c18 - ld a, [hli] - cp $d - jr z, .asm_114c34 - ld [de], a - inc de - dec bc - ld a, b - or c - jr nz, .asm_114c18 -.asm_114c24 - xor a - ld [de], a - ld hl, $dc24 - ld bc, NULL -.asm_114c2c - ld a, [hli] - inc bc - and a - jr nz, .asm_114c2c - dec bc - xor a - ret - -.asm_114c34 - dec bc - ld a, b - or c - jr z, .asm_114c24 - ld a, [hli] - cp $a - jr nz, .asm_114c18 - dec bc - ld a, b - or c - jr z, .asm_114c24 - ld a, [hli] - cp $20 - jr z, .asm_114c4e - cp $9 - jr z, .asm_114c4e - jr .asm_114c24 - -.asm_114c4e - dec bc - ld a, b - or c - jr z, .asm_114c24 - jr .asm_114c18 - -; 114c55 - -Function114c55: ; 114c55 - push bc - ld bc, $dc00 - call Function115d80 - pop bc - ret - -; 114c5e - -Function114c5e: ; 114c5e - ld de, PartyMon5Defense - push hl -.asm_114c62 - ld a, [hli] - ld [de], a - inc de - and a - jr z, .asm_114cc6 - cp $3d - jr nz, .asm_114c62 - ld a, [hli] - ld [de], a - inc de - cp $3f - jr nz, .asm_114c62 - dec de - dec de -.asm_114c75 - ld a, [hli] - cp $3f - jr nz, .asm_114c75 - ld a, [hli] - cp $42 - jr nz, .asm_114cb8 - inc hl - ld bc, NULL - push hl -.asm_114c84 - inc bc - ld a, [hli] - cp $3f - jr nz, .asm_114c84 - inc bc - ld a, [hli] - cp $3d - jr nz, .asm_114c84 - dec bc - dec bc - ld a, l - ld [$dc03], a - ld a, h - ld [$dc04], a - pop hl - push de - call Function115c49 - pop de - ld h, d - ld l, e - ld a, [hli] - ld c, a - ld a, [hli] - ld b, a -.asm_114ca6 - ld a, [hli] - ld [de], a - inc de - dec bc - ld a, b - or c - jr nz, .asm_114ca6 - ld a, [$dc03] - ld l, a - ld a, [$dc04] - ld h, a - jr .asm_114c62 - -.asm_114cb8 - ld a, $3d - ld [de], a - inc de - ld a, $3f - ld [de], a - inc de -.asm_114cc0 - ld a, [hli] - ld [de], a - inc de - and a - jr nz, .asm_114cc0 - -.asm_114cc6 - ld [de], a - pop hl - ld de, PartyMon5Defense - ld bc, NULL -.asm_114cce - inc bc - ld a, [de] - ld [hli], a - inc de - and a - jr z, .asm_114cd7 - jr .asm_114cce - -.asm_114cd7 - dec bc - ret - -; 114cd9 - -Function114cd9: ; 114cd9 - ld h, d - ld l, e - ld b, [hl] - inc hl - ld c, [hl] - inc hl - ld e, [hl] - inc hl - ld d, [hl] - inc hl - push hl - call Function1143f3 - and a - jr nz, .asm_114d33 - ld [$dc03], a - ld [$dc04], a - ld a, h - ld [$dc00], a - ld [hFF8C], a - ld [MBC3SRamBank], a - ld hl, $dc24 - call Function114d39 - ld hl, $dc24 - call Function114d99 - pop hl - push hl -rept 4 - inc hl -endr - ld a, [hld] - cp b - jr c, .asm_114d2d - jr z, .asm_114d29 -.asm_114d11 - pop hl - ld a, [hli] - ld [wCurrentMapSignpostCount], a - ld [hFF8C], a - ld [MBC3SRamBank], a - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - ld hl, PartyMon5Defense - call Function115d6a - xor a - jp Function11425c - -.asm_114d29 - ld a, [hli] - cp c - jr nc, .asm_114d11 - -.asm_114d2d - ld b, $83 - jr .asm_114d33 - - ld b, $82 - -.asm_114d33 - pop hl - ld a, $1 - jp Function11425c - -; 114d39 - -Function114d39: ; 114d39 -.asm_114d39 - ld a, [$dc04] - and a - jr nz, .asm_114d4a - ld a, [de] - cp $28 - jr z, .asm_114d55 - cp $22 - jr z, .asm_114d55 - jr .asm_114d7f - -.asm_114d4a - ld a, [de] - cp $29 - jr z, .asm_114d5f - cp $22 - jr z, .asm_114d6f - jr .asm_114d84 - -.asm_114d55 - ld [$dc03], a - ld a, $1 - ld [$dc04], a - jr .asm_114d84 - -.asm_114d5f - ld a, [$dc03] - cp $28 - jr nz, .asm_114d84 - xor a - ld [$dc03], a - ld [$dc04], a - jr .asm_114d84 - -.asm_114d6f - ld a, [$dc03] - cp $22 - jr nz, .asm_114d84 - xor a - ld [$dc03], a - ld [$dc04], a - jr .asm_114d84 - -.asm_114d7f - cp $20 - jr z, .asm_114d84 - ld [hli], a - -.asm_114d84 - dec bc - ld a, b - or c - jr z, .asm_114d96 - inc e - jr nz, .asm_114d39 - push bc - ld bc, $dc00 - call Function115d80 - pop bc - jr .asm_114d39 - -.asm_114d96 - xor a - ld [hli], a - ret - -; 114d99 - -Function114d99: ; 114d99 - ld de, PartyMon5Defense - xor a - ld [de], a -.asm_114d9e - ld a, [hli] - call Function114df1 - and a - jr z, .asm_114dde - cp $40 - jr nz, .asm_114d9e - dec hl -.asm_114daa - dec hl - ld a, [hl] - call Function114e2d - and a - jr z, .asm_114daa - inc hl - push hl - ld b, $0 -.asm_114db6 - ld a, [hli] - cp $40 - jr z, .asm_114dc1 - call Function114e2d - and a - jr nz, .asm_114dc4 - -.asm_114dc1 - inc b - jr .asm_114db6 - -.asm_114dc4 - pop hl - ld a, [PartyMon5Defense] - and a - jr z, .asm_114dd2 - ld a, $2c - inc de - ld [de], a - ld a, [PartyMon5Defense] - -.asm_114dd2 - inc a - ld [PartyMon5Defense], a -.asm_114dd6 - inc de - ld a, [hli] - ld [de], a - dec b - jr nz, .asm_114dd6 - jr .asm_114d9e - -.asm_114dde - inc de - xor a - ld [de], a - ld a, $dd - cpl - ld h, a - ld a, $c8 - cpl - ld l, a - inc hl - add hl, de - ld b, h - ld c, l - inc bc - inc bc - xor a - ret - -; 114df1 - -Function114df1: ; 114df1 - cp $1b - ret nz - ld a, [hli] - and a - jr z, .asm_114e2b - cp $24 - jr nz, .asm_114e09 - ld a, [hli] - and a - jr z, .asm_114e2b - cp $42 - jr z, .asm_114e0b - cp $40 - jr z, .asm_114e0b - dec hl - -.asm_114e09 - dec hl - ret - -.asm_114e0b - ld a, [hli] - and a - jr z, .asm_114e2b - cp $1b - jr nz, .asm_114e0b - ld a, [hli] - and a - jr z, .asm_114e2b - cp $28 - jr nz, .asm_114e0b - ld a, [hli] - and a - jr z, .asm_114e2b - cp $42 - jr z, .asm_114e29 - cp $4a - jr z, .asm_114e29 - jr .asm_114e0b - -.asm_114e29 - ld a, [hli] - ret - -.asm_114e2b - xor a - ret - -; 114e2d - -Function114e2d: ; 114e2d - cp $30 - jr c, .asm_114e45 - cp $40 - jr c, .asm_114e58 - cp $41 - jr c, .asm_114e45 - cp $5b - jr c, .asm_114e58 - cp $61 - jr c, .asm_114e45 - cp $7b - jr c, .asm_114e58 - -.asm_114e45 - cp $20 - jr z, .asm_114e58 - cp $2d - jr z, .asm_114e58 - cp $2e - jr z, .asm_114e58 - cp $5f - jr z, .asm_114e58 -.asm_114e55 - ld a, $1 - ret - -.asm_114e58 - cp $3c - jr z, .asm_114e55 - cp $3e - jr z, .asm_114e55 - xor a - ret - -; 114e62 - -Function114e62: ; 114e62 - ld a, c - and a - jr nz, .asm_114e6f - ld a, [wStartDay] - and a - jp z, Function11425c - jr .asm_114e76 - -.asm_114e6f - xor a - ld [wStartDay], a - call Function114ee9 - -.asm_114e76 - call Function114f0a - cp $ff - jp z, Function11425c - and a - jr nz, .asm_114e99 - call Function114ea0 - and a - jr nz, .asm_114e99 - ld hl, $dc09 - ld a, [hli] - cpl - ld e, a - ld a, [hli] - cpl - ld d, a - inc de - ld a, [hli] - ld h, [hl] - ld l, a - add hl, de - xor a - jp Function11425c - -.asm_114e99 - ld a, $1 - ld b, $83 - jp Function11425c - -; 114ea0 - -Function114ea0: ; 114ea0 - ld hl, $dc06 - ld a, [hli] - ld [wCurrentMapSignpostCount], a - ld [hFF8C], a - ld [MBC3SRamBank], a - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - ld a, [hli] - ld c, a - ld a, [hli] - ld b, a - ld a, $d - ld [de], a - dec bc - ld a, b - or c - jr z, .asm_114edb - inc e - call z, Function114ee0 - ld a, $a - ld [de], a - dec bc - inc e - call z, Function114ee0 - ld hl, $dc06 - ld a, [wCurrentMapSignpostCount] - ld [hli], a - ld a, e - ld [hli], a - ld a, d - ld [hli], a - ld a, c - ld [hli], a - ld [hl], b - xor a - ld [wStartDay], a - ret - -.asm_114edb - ld a, $1 - ld b, $83 - ret - -; 114ee0 - -Function114ee0: ; 114ee0 - push bc - ld bc, wCurrentMapSignpostCount - call Function115d80 - pop bc - ret - -; 114ee9 - -Function114ee9: ; 114ee9 - ld hl, $dc03 - ld a, b - ld [hli], a - ld a, c - ld [hli], a - ld [hli], a - ld a, [de] - ld [hli], a - inc de - ld a, [de] - ld [hli], a - inc de - ld a, [de] - ld [hli], a - inc de - ld a, [de] - ld c, a - ld [hli], a - inc de - ld a, [de] - ld b, a - ld [hli], a - inc de - ld a, c - ld [hli], a - ld a, b - ld [hli], a - ld a, e - ld [hli], a - ld [hl], d - ret - -; 114f0a - -Function114f0a: ; 114f0a - call Function114f39 - and a - jr nz, .asm_114f26 - ld a, [$dc03] - cp $6 - jr c, .asm_114f21 - cp $c - jr z, .asm_114f23 - call Function114f59 - and a - jr nz, .asm_114f23 - -.asm_114f21 - xor a - ret - -.asm_114f23 - ld a, $1 - ret - -.asm_114f26 - call Function114f59 - and a - jr nz, .asm_114f23 - ld hl, $dc0d - ld e, [hl] - inc hl - ld d, [hl] - ld a, [de] - and a - jr z, .asm_114f21 - ld a, $ff - ret - -; 114f39 - -Function114f39: ; 114f39 - ld hl, $dc0d - ld e, [hl] - inc hl - ld d, [hl] - inc hl - ld a, [de] - and a - jr z, .asm_114f58 - ld [hli], a - inc de - ld a, [de] - ld [hli], a - inc de - ld a, [de] - ld [hli], a - inc de - ld a, [de] - ld [hli], a - inc de - ld hl, $dc0d - ld [hl], e - inc hl - ld [hl], d - ld a, $1 - ret - -.asm_114f58 - ret - -; 114f59 - -Function114f59: ; 114f59 - ld a, [wStartDay] - and a - jr nz, .asm_114f7c - ld a, [$dc03] - cp $11 - jr z, .asm_114fa7 - add a - ld e, a - ld d, 0 - ld hl, Unknown_114011 - add hl, de - ld a, [hli] - ld h, [hl] - ld l, a - call Function115020 - and a - jr nz, .asm_114fe7 - ld a, $1 - ld [wStartDay], a - -.asm_114f7c - ld a, [$dc03] - cp $5 - jr c, .asm_114fc9 - jr z, .asm_114fec - cp $8 - jr c, .asm_114fa5 - jr z, .asm_114ff4 - cp $b - jr c, .asm_114fa5 - jr z, .asm_114ffc - cp $c - jr z, .asm_115007 - cp $d - jr z, .asm_114fa5 - cp $10 - jr c, .asm_115015 - jr z, .asm_114fa5 - cp $12 - jr c, .asm_114fa5 - jr .asm_114fe7 - -.asm_114fa5 - xor a - ret - -.asm_114fa7 - ld hl, Bed - ld c, [hl] - inc hl - ld a, [hli] - ld [$dc00], a - ld [hFF8C], a - ld [MBC3SRamBank], a - ld e, [hl] - inc hl - ld d, [hl] - ld hl, $dc24 - call Function115d53 - ld hl, $dc24 - call Function115020 - and a - jr nz, .asm_114fe7 - jr .asm_11501e - -.asm_114fc9 - call Function115062 - and a - jr nz, .asm_114fe7 - ld a, [$dc04] - dec a - ld [$dc04], a - and a - jr z, .asm_114fdf - call Function114f39 - and a - jr nz, .asm_114fc9 - -.asm_114fdf - ld a, [$dc05] - ld [$dc04], a - jr .asm_11501e - -.asm_114fe7 - ld a, $1 - ld b, $83 - ret - -.asm_114fec - call Function115062 - and a - jr nz, .asm_114fe7 - jr .asm_11501e - -.asm_114ff4 - call Function115179 - and a - jr nz, .asm_114fe7 - jr .asm_11501e - -.asm_114ffc - ld hl, String_114000 - call Function115217 - and a - jr nz, .asm_114fe7 - jr .asm_11501e - -.asm_115007 - call Function11528f - ld hl, $dc24 - call Function115217 - and a - jr nz, .asm_114fe7 - jr .asm_11501e - -.asm_115015 - ld hl, String_114000 - call Function115217 - and a - jr nz, .asm_114fe7 - -.asm_11501e - xor a - ret - -; 115020 - -Function115020: ; 115020 - push hl - ld hl, $dc06 - ld a, [hli] - ld [wCurrentMapSignpostCount], a - ld [hFF8C], a - ld [MBC3SRamBank], a - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - ld a, [hli] - ld c, a - ld a, [hli] - ld b, a - pop hl -.asm_115036 - ld a, [hli] - and a - jr z, .asm_115046 - ld [de], a - dec bc - ld a, b - or c - jr z, .asm_115056 - inc e - call z, Function115059 - jr .asm_115036 - -.asm_115046 - ld hl, $dc06 - ld a, [wCurrentMapSignpostCount] - ld [hli], a - ld a, e - ld [hli], a - ld a, d - ld [hli], a - ld a, c - ld [hli], a - ld [hl], b - xor a - ret - -.asm_115056 - ld a, $1 - ret - -; 115059 - -Function115059: ; 115059 - push bc - ld bc, wCurrentMapSignpostCount - call Function115d80 - pop bc - ret - -; 115062 - -Function115062: ; 115062 - ld hl, Bed - ld a, [hli] - and a - jr z, .asm_1150ae - ld c, a - ld a, [hli] - ld [$dc00], a - ld [hFF8C], a - ld [MBC3SRamBank], a - ld e, [hl] - inc hl - ld d, [hl] - ld b, $0 - ld hl, $dc24 - ld a, [wStartDay] - cp $1 - jr z, .asm_11509b - cp $2 - jr z, .asm_115098 - cp $3 - jr nz, .asm_1150b2 - ld a, $2c - ld [hli], a - ld a, $d - ld [hli], a - ld a, $a - ld [hli], a - ld a, $9 - ld [hli], a - jr .asm_11509b - -.asm_115098 - ld a, $2c - ld [hli], a - -.asm_11509b - call Function115d53 - call Function1150b3 - call Function115136 - ld a, [wStartDay] - inc a - cp $4 - jr nz, .asm_1150ae - ld a, $2 - -.asm_1150ae - ld [wStartDay], a - xor a - -.asm_1150b2 - ret - -; 1150b3 - -Function1150b3: ; 1150b3 - ld hl, $dc24 - ld de, PartyMon5Defense - ld b, $0 -.asm_1150bb - ld c, $0 - ld a, [hli] - cp $1b - jr z, .asm_1150c9 - ld [de], a - inc de - and a - jr z, .asm_115133 - jr .asm_1150bb - -.asm_1150c9 - inc c - ld a, [hl] - cp $24 - jr nz, .asm_1150bb - inc hl - inc c - ld a, [hl] - cp $42 - jr z, .asm_1150dc - cp $40 - jr z, .asm_1150dc - jr .asm_1150bb - -.asm_1150dc - push hl -.asm_1150dd - inc c - ld a, [hli] - and a - jr z, .asm_115133 - cp $1b - jr nz, .asm_1150dd - inc c - ld a, [hli] - cp $28 - jr nz, .asm_1150dd - inc c - ld a, [hli] - cp $42 - jr z, .asm_1150f8 - cp $4a - jr z, .asm_1150f8 - jr .asm_1150dd - -.asm_1150f8 - ld a, l - ld [Console], a - ld a, h - ld [LeftOrnament], a - ld hl, String_114232 -.asm_115103 - ld a, [hli] - and a - jr z, .asm_11510b - ld [de], a - inc de - jr .asm_115103 - -.asm_11510b - pop hl - dec hl - dec hl - push de - call Function1158c2 - pop de - ld h, d - ld l, e - ld c, [hl] - inc hl - ld b, [hl] - inc hl -.asm_115119 - ld a, [hli] - ld [de], a - inc de - dec bc - ld a, b - or c - jr nz, .asm_115119 - ld a, $3f - ld [de], a - inc de - ld a, $3d - ld [de], a - inc de - ld a, [Console] - ld l, a - ld a, [LeftOrnament] - ld h, a - jr .asm_1150bb - -.asm_115133 - xor a - ld [de], a - ret - -; 115136 - -Function115136: ; 115136 - ld hl, $dc06 - ld a, [hli] - ld [wCurrentMapSignpostCount], a - ld [hFF8C], a - ld [MBC3SRamBank], a - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - ld a, [hli] - ld c, a - ld a, [hli] - ld b, a - ld hl, PartyMon5Defense -.asm_11514d - ld a, [hli] - and a - jr z, .asm_11515d - ld [de], a - dec bc - ld a, b - or c - jr z, .asm_11516d - inc e - call z, Function115170 - jr .asm_11514d - -.asm_11515d - ld hl, $dc06 - ld a, [wCurrentMapSignpostCount] - ld [hli], a - ld a, e - ld [hli], a - ld a, d - ld [hli], a - ld a, c - ld [hli], a - ld [hl], b - xor a - ret - -.asm_11516d - ld a, $1 - ret - -; 115170 - -Function115170: ; 115170 - push bc - ld bc, wCurrentMapSignpostCount - call Function115d80 - pop bc - ret - -; 115179 - -Function115179: ; 115179 - ld hl, $dc06 - ld a, [hli] - ld [wCurrentMapSignpostCount], a - ld [hFF8C], a - ld [MBC3SRamBank], a - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - ld a, [hli] - ld c, a - ld a, [hli] - ld b, a - ld hl, $013f - ld a, [hli] - ld [de], a - dec bc - ld a, b - or c - jr z, .asm_1151ef - inc e - call z, Function11520e - ld a, [hli] - ld [de], a - dec bc - ld a, b - or c - jr z, .asm_1151ef - inc e - call z, Function11520e - ld a, [hli] - ld [de], a - dec bc - ld a, b - or c - jr z, .asm_1151ef - inc e - call z, Function11520e - ld a, [hli] - ld [de], a - dec bc - ld a, b - or c - jr z, .asm_1151ef - inc e - call z, Function11520e - ld a, $2d - ld [de], a - dec bc - ld a, b - or c - jr z, .asm_1151ef - inc e - call z, Function11520e - ld a, [$014c] - ld h, a - and $f0 - swap a - cp $a - jr nc, .asm_1151d8 - add $30 - jr .asm_1151da - -.asm_1151d8 - add $37 - -.asm_1151da - ld [de], a - dec bc - ld a, b - or c - jr z, .asm_1151ef - inc e - call z, Function11520e - ld a, h - and $f - cp $a - jr nc, .asm_1151f2 - add $30 - jr .asm_1151f4 - -.asm_1151ef - ld a, $1 - ret - -.asm_1151f2 - add $37 - -.asm_1151f4 - ld [de], a - dec bc - ld a, b - or c - jr z, .asm_1151ef - inc e - call z, Function11520e - ld hl, $dc06 - ld a, [wCurrentMapSignpostCount] - ld [hli], a - ld a, e - ld [hli], a - ld a, d - ld [hli], a - ld a, c - ld [hli], a - ld [hl], b - xor a - ret - -; 11520e - -Function11520e: ; 11520e - push bc - ld bc, wCurrentMapSignpostCount - call Function115d80 - pop bc - ret - -; 115217 - -Function115217: ; 115217 - push hl - ld hl, $dc06 - ld a, [hli] - ld [wCurrentMapSignpostCount], a - ld [hFF8C], a - ld [MBC3SRamBank], a - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - ld a, [hli] - ld c, a - ld a, [hli] - ld b, a - pop hl -.asm_11522d - ld a, [hli] - and a - jr z, .asm_11523d - ld [de], a - dec bc - ld a, b - or c - jr z, .asm_115262 - inc e - call z, Function115286 - jr .asm_11522d - -.asm_11523d - ld a, [$dc03] - cp $b - jr z, .asm_115278 - cp $c - jr z, .asm_115278 - cp $e - jr z, .asm_115252 - cp $f - jr z, .asm_115265 - jr .asm_115262 - -.asm_115252 - ld hl, $dc06 - ld a, [wCurrentMapSignpostCount] - ld [hli], a - ld a, e - ld [hli], a - ld a, d - ld [hli], a - ld a, c - ld [hli], a - ld [hl], b - xor a - ret - -.asm_115262 - ld a, $1 - ret - -.asm_115265 - ld h, $2 -.asm_115267 - ld a, $2d - ld [de], a - dec bc - ld a, b - or c - jr z, .asm_115262 - inc e - call z, Function115286 - dec h - jr nz, .asm_115267 - jr .asm_115252 - -.asm_115278 - ld a, $22 - ld [de], a - dec bc - ld a, b - or c - jr z, .asm_115262 - inc e - call z, Function115286 - jr .asm_115252 - -; 115286 - -Function115286: ; 115286 - push bc - ld bc, wCurrentMapSignpostCount - call Function115d80 - pop bc - ret - -; 11528f - -Function11528f: ; 11528f - ld hl, Bed - ld c, [hl] - inc hl - ld a, [hli] - ld [$dc00], a - ld [hFF8C], a - ld [MBC3SRamBank], a - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - ld hl, $dc24 -.asm_1152a4 - ld a, [de] - ld [hli], a - inc e - call z, Function1152af - dec c - jr nz, .asm_1152a4 - ld [hl], c - ret - -; 1152af - -Function1152af: ; 1152af - push bc - ld bc, $dc00 - call Function115d80 - pop bc - ret - -; 1152b8 - -Function1152b8: ; 1152b8 - push bc - call Function11537d - push de - ld h, d - ld l, e - ld a, [hli] - ld b, a - ld c, $1 - call Function1153d2 - pop de - and a - jr nz, .asm_1152f9 -.asm_1152ca - ld hl, $dc0d - ld e, [hl] - inc hl - ld d, [hl] -.asm_1152d0 - ld a, [$dc03] - cp $3 - jr nz, .asm_1152d8 - push de - -.asm_1152d8 - cp $5 - jr nz, .asm_1152e7 - pop hl - ld a, [hli] - ld b, a - ld c, $3 - call Function1153d2 - and a - jr nz, .asm_1152f9 - -.asm_1152e7 - ld a, [de] - inc de - and a - jr nz, .asm_115301 - ld a, [$dc03] - cp $6 - jr z, .asm_115335 - inc a - ld [$dc03], a - jr .asm_1152d0 - -.asm_1152f9 - pop hl - ld a, $1 - ld b, $83 - jp Function11425c - -.asm_115301 - ld hl, $dc0d - ld [hl], e - inc hl - ld [hl], d -.asm_115307 - ld [$dc05], a - ld a, $1 - ld [$dc04], a - call Function1153b5 - call Function114f59 - and a - jr nz, .asm_1152f9 - ld a, [$dc05] - dec a - jr nz, .asm_115307 - ld a, [$dc03] - inc a - ld [$dc03], a - call Function114ea0 - and a - jr nz, .asm_1152f9 - ld [wStartDay], a - ld a, [$dc03] - cp $6 - jr nz, .asm_1152ca - -.asm_115335 - call Function1153b5 - xor a - ld [wStartDay], a - call Function114f59 - and a - jr nz, .asm_1152f9 - call Function114ea0 - and a - jr nz, .asm_1152f9 - ld a, [$dc03] - inc a - ld [$dc03], a - cp $9 - jr nz, .asm_115335 - pop bc - ld a, b - and a - jr z, .asm_11536b - call Function1153b5 - xor a - ld [wStartDay], a - call Function114f59 - and a - jr nz, .asm_1152f9 - call Function114ea0 - and a - jr nz, .asm_1152f9 - -.asm_11536b - ld hl, $dc09 - ld a, [hli] - cpl - ld e, a - ld a, [hli] - cpl - ld d, a - inc de - ld a, [hli] - ld h, [hl] - ld l, a - add hl, de - xor a - jp Function11425c - -; 11537d - -Function11537d: ; 11537d - ld hl, $dc06 - ld a, [de] - ld [hli], a - inc de - ld a, [de] - ld [hli], a - inc de - ld a, [de] - ld [hli], a - inc de - ld a, [de] - ld [hli], a - ld b, a - inc de - ld a, [de] - ld [hli], a - inc hl - ld a, [de] - ld [hld], a - ld a, b - ld [hli], a - inc de - ld hl, RightOrnament - ld a, [de] - ld [hli], a - inc de - ld a, [de] - ld [hli], a - inc de - ld a, [de] - ld [hli], a - inc de - ld a, [de] - ld [hli], a - inc de - ld a, [de] - ld [hli], a - inc de - ld hl, $dc0d - ld [hl], e - inc hl - ld [hl], d - xor a - ld [$dc03], a - ld [wStartDay], a - ret - -; 1153b5 - -Function1153b5: ; 1153b5 - ld hl, $dc0d - ld e, [hl] - inc hl - ld d, [hl] - inc hl - inc hl - ld a, [de] - ld [hli], a - inc de - ld a, [de] - ld [hli], a - inc de - ld a, [de] - ld [hl], a - inc de - ld a, [de] - ld [Bed], a - inc de - ld hl, $dc0d - ld [hl], e - inc hl - ld [hl], d - ret - -; 1153d2 - -Function1153d2: ; 1153d2 - ld a, [$dc03] - ld d, a - ld a, [$dc04] - ld e, a - push de - xor a - ld [$dc03], a - ld [$dc04], a - ld a, $24 - ld [Console], a - ld a, $dc - ld [LeftOrnament], a - push bc - jr .asm_1153f4 - -.asm_1153ef - ld a, [hli] - and a - jr z, .asm_115426 - ld b, a - -.asm_1153f4 - push bc -.asm_1153f5 - ld a, [hli] - ld [$dc00], a - ld [hFF8C], a - ld [MBC3SRamBank], a - ld e, [hl] - inc hl - ld d, [hl] - inc hl - ld c, [hl] - inc hl - push hl - ld a, [Console] - ld l, a - ld a, [LeftOrnament] - ld h, a - push bc - ld b, $0 - call Function115d53 - inc hl - ld [hl], a - pop bc - ld a, l - ld e, a - ld [Console], a - ld a, h - ld d, a - ld [LeftOrnament], a - dec b - jr z, .asm_11542b - pop hl - jr .asm_1153f5 - -.asm_115426 - dec c - jr nz, .asm_1153ef - jr .asm_115430 - -.asm_11542b - pop hl - pop bc - dec c - jr nz, .asm_1153ef - -.asm_115430 - ld a, l - ld [Console], a - ld a, h - ld [LeftOrnament], a - xor a - ld [de], a - ld hl, $dc24 -.asm_11543d - ld a, [hli] - and a - jr nz, .asm_11543d - ld a, [hl] - and a - jr z, .asm_115457 - dec hl - ld a, $2c - ld [hli], a - jr .asm_11543d - -.asm_11544b - pop hl - ld a, h - ld [$dc03], a - ld a, l - ld [$dc04], a - ld a, $1 - ret - -.asm_115457 - ld hl, $dc24 - call Function114d99 - ld hl, $ddc8 -.asm_115460 - ld a, [hli] - and a - jr z, .asm_11546d - cp $2c - jr nz, .asm_115460 - dec hl - xor a - ld [hli], a - jr .asm_115460 - -.asm_11546d - pop de - ld a, e - cp $1 - jr z, .asm_115477 - xor a - ld [hli], a - jr .asm_115478 - -.asm_115477 - dec bc - -.asm_115478 - ld hl, $dc18 - ld a, [hli] - ld h, [hl] - ld l, a - ld a, b - cp h - jr c, .asm_11548c - jr nz, .asm_11544b - ld a, c - cp l - jr c, .asm_11548c - jr z, .asm_11548c - jr .asm_11544b - -.asm_11548c - ld hl, $dc18 - ld a, c - cpl - ld e, a - ld a, b - cpl - ld d, a - inc de - ld a, [hli] - ld h, [hl] - ld l, a - add hl, de - ld de, $dc18 - ld a, l - ld [de], a - inc de - ld a, h - ld [de], a - ld hl, RightOrnament - ld a, [hli] - ld [wCurrentMapSignpostCount], a - ld [hFF8C], a - ld [MBC3SRamBank], a - ld e, [hl] - inc hl - ld d, [hl] - ld hl, $ddc8 - call Function115d6a - ld hl, RightOrnament - ld a, [wCurrentMapSignpostCount] - ld [hli], a - ld [hl], e - inc hl - ld [hl], d - ld a, [Console] - ld e, a - ld a, [LeftOrnament] - ld d, a - pop hl - ld a, h - ld [$dc03], a - ld a, l - ld [$dc04], a - xor a - ret - -; 1154d4 - -Function1154d4: ; 1154d4 - xor a - ld [wStartDay], a - call Function1155af - call Function11560a - and a - jr nz, .asm_11552c - call Function1155d1 - ld a, [RightOrnament] - dec a - ld [RightOrnament], a - and a - jp z, .asm_115577 - cp $1 - jr nz, .asm_115531 - xor a - ld [wDailyResetTimer], a -.asm_1154f7 - ld a, [BigDoll] - cp $2 - jr z, .asm_115502 - cp $3 - jr z, .asm_11550f - -.asm_115502 - ld a, $a - ld [$dc03], a - call Function114f59 - and a - jr z, .asm_11551a - jr .asm_11552c - -.asm_11550f - ld a, $c - ld [$dc03], a - call Function114f59 - and a - jr nz, .asm_11552c - -.asm_11551a - call Function114ea0 - and a - jr nz, .asm_11552c - call Function114ea0 - and a - jr nz, .asm_11552c - call Function11560a - and a - jr z, .asm_1155a0 - -.asm_11552c - ld a, $1 - jp Function11425c - -.asm_115531 - ld a, $1 - ld [wDailyResetTimer], a - ld a, $b - ld [$dc03], a - call Function114f59 - and a - jr nz, .asm_11552c - call Function114ea0 - and a - jr nz, .asm_11552c -.asm_115547 - call Function114ea0 - and a - jr nz, .asm_11552c - ld a, $e - ld [$dc03], a - call Function114f59 - and a - jr nz, .asm_11552c - call Function114ea0 - and a - jr nz, .asm_11552c - jr .asm_1154f7 - -.asm_115560 - call Function114ea0 - and a - jr nz, .asm_11552c - ld a, [wDailyResetTimer] - and a - jr z, .asm_11557d - ld a, $f - ld [$dc03], a - call Function114f59 - and a - jr nz, .asm_11552c - -.asm_115577 - call Function114ea0 - and a - jr nz, .asm_11552c - -.asm_11557d - ld a, $10 - ld [$dc03], a - call Function114f59 - and a - jr nz, .asm_11552c - call Function114ea0 - and a - jr nz, .asm_11552c - ld hl, $dc09 - ld a, [hli] - cpl - ld e, a - ld a, [hli] - cpl - ld d, a - inc de - ld a, [hli] - ld h, [hl] - ld l, a - add hl, de - xor a - jp Function11425c - -.asm_1155a0 - ld a, [RightOrnament] - dec a - ld [RightOrnament], a - and a - jr z, .asm_115560 - call Function1155d1 - jr .asm_115547 - -; 1155af - -Function1155af: ; 1155af - ld hl, $dc06 - ld a, [de] - ld [hli], a - inc de - ld a, [de] - ld [hli], a - inc de - ld a, [de] - ld [hli], a - inc de - ld a, [de] - ld [hli], a - ld b, a - inc de - ld a, [de] - ld [hli], a - ld [hl], b - inc hl - ld [hli], a - inc de - ld a, [de] - ld [RightOrnament], a - inc de - ld a, e - ld [hli], a - ld [hl], d - call Function1155d1 - ret - -; 1155d1 - -Function1155d1: ; 1155d1 - ld a, [$dc0d] - ld l, a - ld a, [$dc0e] - ld h, a - ld a, [hli] - ld [BigDoll], a - cp $3 - jr nz, .asm_1155f0 - ld de, Carpet - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - ld a, [hli] - ld [Bed], a - -.asm_1155f0 - ld de, $dc17 - ld a, [hli] - 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 - ld a, [hli] - ld [de], a - ld a, l - ld [$dc0d], a - ld a, h - ld [$dc0e], a - ret - -; 11560a - -Function11560a: ; 11560a - ld a, [$dc06] - ld [wCurrentMapSignpostCount], a - ld a, [$dc17] - ld [$dc00], a - ld [hFF8C], a - ld [MBC3SRamBank], a - ld hl, $dc1a - ld c, [hl] - inc hl - ld b, [hl] - ld a, [wCurrMapCallbackCount] - cp b - jp c, .asm_1156b1 - jr nz, .asm_115631 - ld a, [$dc09] - cp c - jp c, .asm_1156b1 - -.asm_115631 - ld a, b - or c - jr z, .asm_1156a9 - ld a, [$dc09] - ld l, a - ld a, [wCurrMapCallbackCount] - ld h, a - ld a, c - cpl - ld e, a - ld a, b - cpl - ld d, a - inc de - add hl, de - ld a, l - ld [$dc09], a - ld a, h - ld [wCurrMapCallbackCount], a -.asm_11564d - ld a, $3 - cp b - jr c, .asm_1156b6 - jr nz, .asm_115659 - ld a, $db - cp c - jr c, .asm_1156b6 - -.asm_115659 - ld a, [$dc1a] - ld e, a - ld a, [$dc1b] - ld d, a - ld a, c - cpl - ld l, a - ld a, b - cpl - ld h, a - inc hl - add hl, de - ld a, l - ld [$dc1a], a - ld a, h - ld [$dc1b], a - push bc - ld hl, $dc18 - ld e, [hl] - inc hl - ld d, [hl] - ld hl, $dc24 - call Function115d53 - ld hl, $dc18 - ld [hl], e - inc hl - ld [hl], d - pop bc - ld a, [wCurrentMapSignpostCount] - ld [hFF8C], a - ld [MBC3SRamBank], a - ld hl, wCurrMapTriggerCount - ld e, [hl] - inc hl - ld d, [hl] - ld hl, $dc24 - call Function115d6a - ld hl, wCurrMapTriggerCount - ld [hl], e - inc hl - ld [hl], d - ld hl, $dc1a - ld c, [hl] - inc hl - ld b, [hl] - ld a, b - or c - jr nz, .asm_11564d - -.asm_1156a9 - ld a, [wCurrentMapSignpostCount] - ld [$dc06], a - xor a - ret - -.asm_1156b1 - ld a, $1 - ld b, $83 - ret - -.asm_1156b6 - ld a, $3 - cpl - ld h, a - ld a, $db - cpl - ld l, a - add hl, bc - ld de, $dc1a - ld a, l - ld [de], a - inc de - ld a, h - ld [de], a - ld bc, $03db - jr .asm_115659 - -; 1156cc - -Function1156cc: ; 1156cc - ld a, [wStartDay] - and a - jp z, Function11425c - cp $2 - jr z, .asm_1156fa - cp $3 - jr z, .asm_1156fd - cp $4 - jr z, .asm_1156fd - cp $5 - jr z, .asm_115716 - cp $ff - jr z, .asm_11572b - cp $1 - jp nz, Function11425c - call Function115732 - call Function11575c - ld a, h - ld [Poster], a - ld a, l - ld [Plant], a - -.asm_1156fa - call Function1157d0 - -.asm_1156fd - call Function11581e - and a - jr nz, .asm_11572b - ld a, [wStartDay] - cp $5 - jr z, .asm_115716 - ld a, [Poster] - ld h, a - ld a, [Plant] - ld l, a - xor a - jp Function11425c - -.asm_115716 - ld hl, wCurrMapCallbackCount - ld a, [hli] - cpl - ld e, a - ld a, [hli] - cpl - ld d, a - inc de - ld a, [hli] - ld h, [hl] - ld l, a - add hl, de - xor a - ld [wStartDay], a - jp Function11425c - -.asm_11572b - ld a, $1 - ld b, $83 - jp Function11425c - -; 115732 - -Function115732: ; 115732 - ld hl, $dc02 - ld a, [de] - ld [hli], a - inc de - ld a, [de] - ld [hli], a - inc de - ld a, [de] - ld [hli], a - inc de - ld a, [de] - ld [hli], a - inc de - ld a, [de] - ld [hli], a - inc de - ld a, [de] - ld [hli], a - inc de - ld a, [de] - ld [hli], a - inc de - ld a, [de] - ld [hli], a - inc de - ld a, [de] - ld [hli], a - inc de - ld a, [de] - ld [hli], a - dec de - ld a, [de] - ld [hli], a - inc de - ld a, [de] - ld [hli], a - ld a, c - ld [hli], a - ld [hl], b - ret - -; 11575c - -Function11575c: ; 11575c - ld hl, $dc05 - ld a, [hli] - ld h, [hl] - ld l, a - ld e, $10 - ld b, $0 - ld c, b - ld d, b - ld a, $3 -.asm_11576a - rl l - rl h - rl d - cp d - jr c, .asm_11577c - rl c - rl b - dec e - jr nz, .asm_11576a - jr .asm_11578a - -.asm_11577c - ld a, d - sub $3 - ld d, a - ld a, $3 - scf - rl c - rl b - dec e - jr nz, .asm_11576a - -.asm_11578a - ld a, d - and a - jr z, .asm_11578f - inc bc - -.asm_11578f - sla c - rl b - sla c - rl b - ld h, b - ld l, c - push hl - ld e, $10 - ld b, $0 - ld c, b - ld d, b - ld a, $40 -.asm_1157a2 - rl l - rl h - rl d - cp d - jr c, .asm_1157b4 - rl c - rl b - dec e - jr nz, .asm_1157a2 - jr .asm_1157c3 - -.asm_1157b4 - ld a, d - sub $40 - ld d, a - ld a, $40 - scf - rl c - rl b - dec e - jr nz, .asm_1157a2 - inc bc - -.asm_1157c3 - and a - sla c - rl b - pop hl - add hl, bc - ld a, $2 - ld [wStartDay], a - ret - -; 1157d0 - -Function1157d0: ; 1157d0 - ld hl, $dc05 - ld a, [hli] - ld h, [hl] - ld l, a - ld a, [$dc0e] - ld c, a - ld a, [Bed] - ld b, a - cp h - jr c, .asm_1157eb - jr nz, .asm_1157e9 - ld a, c - cp l - jr c, .asm_1157eb - jr z, .asm_1157eb - -.asm_1157e9 - ld b, h - ld c, l - -.asm_1157eb - push bc - ld a, b - cpl - ld b, a - ld a, c - cpl - ld c, a - inc bc - add hl, bc - ld a, l - ld [$dc05], a - ld a, h - ld [$dc06], a - ld a, h - or l - jr nz, .asm_11580f - pop bc - ld a, c - ld [$dc0e], a - ld a, b - ld [Bed], a - ld a, $4 - ld [wStartDay], a - ret - -.asm_11580f - pop bc - ld a, c - ld [$dc0e], a - ld a, b - ld [Bed], a - ld a, $3 - ld [wStartDay], a - ret - -; 11581e - -Function11581e: ; 11581e - ld a, [wStartDay] - and a - ret z - ld a, [$dc0e] - ld c, a - ld a, [Bed] - ld b, a - ld hl, $dc02 - ld a, [hli] - ld [$dc00], a - ld [hFF8C], a - ld [MBC3SRamBank], a - ld e, [hl] - inc hl - ld d, [hl] - ld hl, $dc24 - push bc - call Function115d53 - pop bc - ld hl, $dc02 - ld a, [$dc00] - ld [hli], a - ld [hl], e - inc hl - ld [hl], d - ld hl, $dc24 - ld de, PartyMon5Defense - call Function1158c2 - ld hl, PartyMon5Defense - ld c, [hl] - inc hl - ld b, [hl] - inc hl - push hl - ld a, [wCurrMapCallbackCount] - ld l, a - ld a, [wCurrMapCallbackHeaderPointer] - ld h, a - cp b - jr c, .asm_1158bb - jr nz, .asm_11586e - ld a, l - cp c - jr c, .asm_1158bb - -.asm_11586e - push bc - ld a, b - cpl - ld b, a - ld a, c - cpl - ld c, a - inc bc - add hl, bc - ld a, l - ld [wCurrMapCallbackCount], a - ld a, h - ld [wCurrMapCallbackHeaderPointer], a - pop bc - pop hl - ld hl, wCurrMapTriggerCount - ld a, [hli] - ld [wCurrentMapSignpostCount], a - ld [hFF8C], a - ld [MBC3SRamBank], a - ld e, [hl] - inc hl - ld d, [hl] - ld hl, PartyMon5Speed - call Function115d6a - ld hl, wCurrMapTriggerCount - ld a, [wCurrentMapSignpostCount] - ld [hli], a - ld a, e - ld [hli], a - ld [hl], d - ld a, [wStartDay] - cp $3 - jr z, .asm_1158b4 - cp $4 - jr z, .asm_1158ad - jr .asm_1158bc - -.asm_1158ad - ld a, $5 - ld [wStartDay], a - jr .asm_1158b9 - -.asm_1158b4 - ld a, $2 - ld [wStartDay], a - -.asm_1158b9 - xor a - ret - -.asm_1158bb - pop hl - -.asm_1158bc - ld a, $ff - ld [wStartDay], a - ret - -; 1158c2 - -Function1158c2: ; 1158c2 - ld a, e - ld [SwarmFlags], a - ld a, d - ld [$dc21], a - xor a - ld [$dc22], a - xor a - ld [de], a - inc de - ld [de], a - inc de - ld a, c - ld [$dc19], a - ld a, b - ld [$dc1a], a - ld c, e - ld b, d - ld e, l - ld d, h - ld l, c - ld h, b - xor a - ld [WeeklyFlags], a - -.asm_1158e5 - ld b, $3 - push hl - ld hl, $dc1b -.asm_1158eb - ld a, [de] - inc de - ld [hli], a - dec b - jr nz, .asm_1158eb - ld a, [$dc19] - ld c, a - ld a, [$dc1a] - ld b, a - xor a - or b - jr nz, .asm_115914 - ld a, $2 - cp c - jr c, .asm_115914 - push hl - dec hl - ld a, c - ld [WeeklyFlags], a -.asm_115908 - xor a - ld [hld], a - inc c - ld a, $3 - cp c - jr nz, .asm_115908 - pop hl - ld bc, $0003 - -.asm_115914 - dec bc - dec bc - dec bc - ld a, c - ld [$dc19], a - ld a, b - ld [$dc1a], a - push de - push hl - ld hl, SwarmFlags - ld a, [hli] - ld h, [hl] - ld l, a - ld e, [hl] - inc hl - ld d, [hl] -rept 4 - inc de -endr - ld [hl], d - dec hl - ld [hl], e - pop hl - dec hl - ld c, [hl] - dec hl - ld b, [hl] - dec hl - ld a, [hl] - ld d, a - srl a - srl a - ld [hli], a - ld a, $3 - and d - ld d, a - ld a, $f0 - and b - or d - swap a - ld [hli], a - ld a, $f - and b - ld d, a - ld a, c - and $c0 - or d - rlca - rlca - ld [hli], a - ld a, $3f - and c - ld [hld], a - dec hl - dec hl - pop de - ld b, h - ld c, l - pop hl - ld a, [bc] - inc bc - call Function1159dc - ld [hli], a - ld a, [bc] - inc bc - call Function1159dc - ld [hli], a - ld a, [bc] - inc bc - call Function1159dc - ld [hli], a - ld a, [bc] - inc bc - call Function1159dc - ld [hli], a - ld a, [$dc22] - inc a - cp $10 - jr nz, .asm_1159b1 - push af - push bc - ld a, [$dc19] - ld b, a - ld a, [$dc1a] - or b - jr nz, .asm_115998 - ld a, [$dc05] - ld b, a - ld a, [$dc06] - or b - jr nz, .asm_115998 - pop bc - pop af - jr .asm_1159c4 - -.asm_115998 - pop bc - pop af - ld a, $d - ld [hli], a - ld a, $a - ld [hli], a - push hl - ld hl, SwarmFlags - ld a, [hli] - ld h, [hl] - ld l, a - ld a, [hli] - ld c, a - ld b, [hl] - inc bc - inc bc - ld a, b - ld [hld], a - ld [hl], c - pop hl - xor a - -.asm_1159b1 - ld [$dc22], a - ld a, [$dc19] - cp $0 - jp nz, .asm_1158e5 - ld a, [$dc1a] - cp $0 - jp nz, .asm_1158e5 - -.asm_1159c4 - ld a, [WeeklyFlags] - cp $0 - jr z, .asm_1159d8 - push hl - dec hl - ld b, a -.asm_1159ce - ld a, $3d - ld [hld], a - inc b - ld a, $3 - cp b - jr nz, .asm_1159ce - pop hl - -.asm_1159d8 - ld a, $0 - ld [hl], a - ret - -; 1159dc - -Function1159dc: ; 1159dc - cp $1a - jr c, .asm_1159ef - cp $34 - jr c, .asm_1159f2 - cp $3e - jr c, .asm_1159f5 - cp $3e - jr z, .asm_1159f8 - ld a, $2f - ret - -.asm_1159ef - add $41 - ret - -.asm_1159f2 - add $47 - ret - -.asm_1159f5 - sub $4 - ret - -.asm_1159f8 - ld a, $2b - ret - -; 1159fb - -Function1159fb: ; 1159fb - ld a, [wStartDay] - and a - jp z, Function11425c - cp $2 - jr z, .asm_115a29 - cp $3 - jr z, .asm_115a2c - cp $4 - jr z, .asm_115a2c - cp $5 - jr z, .asm_115a45 - cp $ff - jr z, .asm_115a5a - cp $1 - jp nz, Function11425c - call Function115732 - call Function115a5f - ld a, h - ld [Plant], a - ld a, l - ld [Poster], a - -.asm_115a29 - call Function115ab0 - -.asm_115a2c - call Function115b00 - and a - jr nz, .asm_115a5a - ld a, [wStartDay] - cp $5 - jr z, .asm_115a45 - ld a, [Poster] - ld h, a - ld a, [Plant] - ld l, a - xor a - jp Function11425c - -.asm_115a45 - ld hl, wCurrMapCallbackCount - ld a, [hli] - cpl - ld e, a - ld a, [hli] - cpl - ld d, a - inc de - ld a, [hli] - ld h, [hl] - ld l, a - add hl, de - xor a - ld [wStartDay], a - jp Function11425c - -.asm_115a5a - ld a, $1 - jp Function11425c - -; 115a5f - -Function115a5f: ; 115a5f - ld hl, $dc05 - ld a, [hli] - ld h, [hl] - ld l, a - push hl - ld e, $10 - ld b, $0 - ld c, b - ld d, b - ld a, $42 -.asm_115a6e - rl l - rl h - rl d - cp d - jr c, .asm_115a80 - rl c - rl b - dec e - jr nz, .asm_115a6e - jr .asm_115a8e - -.asm_115a80 - ld a, d - sub $42 - ld d, a - ld a, $42 - scf - rl c - rl b - dec e - jr nz, .asm_115a6e - -.asm_115a8e - sla c - rl b - pop hl - ld a, b - cpl - ld b, a - ld a, c - cpl - ld c, a - inc bc - add hl, bc - srl h - rr l - srl h - rr l - ld b, h - ld c, l - sla c - rl b - add hl, bc - ld a, $2 - ld [wStartDay], a - ret - -; 115ab0 - -Function115ab0: ; 115ab0 - ld hl, $dc05 - ld a, [hli] - ld h, [hl] - ld l, a - ld a, [$dc0e] - ld c, a - ld a, [Bed] - ld b, a - cp h - jr c, .asm_115acb - jr nz, .asm_115ac9 - ld a, c - cp l - jr c, .asm_115acb - jr z, .asm_115acb - -.asm_115ac9 - ld b, h - ld c, l - -.asm_115acb - push bc - ld a, b - cpl - ld b, a - ld a, c - cpl - ld c, a - inc bc - add hl, bc - ld a, l - ld [$dc05], a - ld a, h - ld [$dc06], a - ld a, h - or l - jr nz, .asm_115af0 - pop bc - ld a, c - ld [$dc0e], a - ld a, b - ld [Bed], a - ld a, $4 - ld [wStartDay], a - xor a - ret - -.asm_115af0 - pop bc - ld a, c - ld [$dc0e], a - ld a, b - ld [Bed], a - ld a, $3 - ld [wStartDay], a - xor a - ret - -; 115b00 - -Function115b00: ; 115b00 - ld a, [wStartDay] - and a - ret z - ld a, [$dc0e] - ld c, a - ld a, [Bed] - ld b, a - ld hl, $dc02 - ld a, [hli] - ld [$dc00], a - ld [hFF8C], a - ld [MBC3SRamBank], a - ld e, [hl] - inc hl - ld d, [hl] - ld hl, PartyMon5Defense - push bc - call Function115bc8 - pop hl - and a - jr z, .asm_115b43 - cp $2 - jr z, .asm_115b3b - ld a, [wStartDay] - cp $4 - jr z, .asm_115b43 - inc hl - inc hl - jr .asm_115b43 - -.asm_115b36 - pop hl - ld b, $83 - jr .asm_115b3d - -.asm_115b3b - ld b, $81 - -.asm_115b3d - ld a, $ff - ld [wStartDay], a - ret - -.asm_115b43 - ld a, [Carpet] - add a - cpl - ld c, a - ld b, $ff - inc bc - add hl, bc - ld b, h - ld c, l - ld hl, $dc02 - ld a, [$dc00] - ld [hli], a - ld [hl], e - inc hl - ld [hl], d - ld hl, PartyMon5Defense - ld de, $dc24 - call Function115c49 - ld hl, $dc24 - ld c, [hl] - inc hl - ld b, [hl] - inc hl - push hl - ld a, [wCurrMapCallbackCount] - ld l, a - ld a, [wCurrMapCallbackHeaderPointer] - ld h, a - cp b - jr c, .asm_115b36 - jr nz, .asm_115b7b - ld a, l - cp c - jr c, .asm_115b36 - -.asm_115b7b - push bc - ld a, b - cpl - ld b, a - ld a, c - cpl - ld c, a - inc bc - add hl, bc - ld a, l - ld [wCurrMapCallbackCount], a - ld a, h - ld [wCurrMapCallbackHeaderPointer], a - pop bc - pop hl - ld hl, wCurrMapTriggerCount - ld a, [hli] - ld [wCurrentMapSignpostCount], a - ld [hFF8C], a - ld [MBC3SRamBank], a - ld e, [hl] - inc hl - ld d, [hl] - ld hl, $dc26 - call Function115d6a - ld hl, wCurrMapTriggerCount - ld a, [wCurrentMapSignpostCount] - ld [hli], a - ld a, e - ld [hli], a - ld [hl], d - ld a, [wStartDay] - cp $3 - jr z, .asm_115bc1 - cp $4 - jr z, .asm_115bba - jr .asm_115b3b - -.asm_115bba - ld a, $5 - ld [wStartDay], a - jr .asm_115bc6 - -.asm_115bc1 - ld a, $2 - ld [wStartDay], a - -.asm_115bc6 - xor a - ret - -; 115bc8 - -Function115bc8: ; 115bc8 - xor a - ld [Carpet], a -.asm_115bcc - ld a, [de] - ld [hli], a - inc e - call z, .Function115c3d - dec bc - ld a, b - or c - jr z, .asm_115c46 - ld a, [de] - ld [hli], a - inc e - call z, .Function115c3d - dec bc - ld a, b - or c - jr z, .asm_115c1b - ld a, [de] - ld [hli], a - inc e - call z, .Function115c3d - dec bc - ld a, b - or c - jr z, .asm_115c46 - ld a, [de] - ld [hli], a - inc e - call z, .Function115c3d - dec bc - ld a, b - or c - jr z, .asm_115c3a - ld a, [de] - cp $d - jr nz, .asm_115bcc - inc e - call z, .Function115c3d - ld a, [de] - cp $a - jr nz, .asm_115c46 - inc e - call z, .Function115c3d - dec bc - ld a, b - or c - jr z, .asm_115c46 - ld a, [Carpet] - inc a - ld [Carpet], a - dec bc - ld a, b - or c - jr nz, .asm_115bcc - -.asm_115c1b - ld a, [wStartDay] - cp $4 - jr z, .asm_115c33 - ld a, [de] - ld [hli], a - inc e - call z, .Function115c3d - ld a, [de] - ld [hli], a - inc e - call z, .Function115c3d - xor a - ld [hl], a - ld a, $1 - ret - -.asm_115c33 - dec hl - dec hl - xor a - ld [hl], a - ld a, $1 - ret - -.asm_115c3a - xor a - ld [hl], a - ret - -.Function115c3d: - push bc - ld bc, $dc00 - call Function115d80 - pop bc - ret - -.asm_115c46 - ld a, $2 - ret - -; 115c49 - -Function115c49: ; 115c49 - ld a, e - ld [WeeklyFlags], a - ld a, d - ld [SwarmFlags], a - xor a - ld [de], a - inc de - ld [de], a - inc de - - ld a, c - ld [$dc19], a - ld a, b - ld [$dc1a], a - ld c, e - ld b, d - ld e, l - ld d, h - ld l, c - ld h, b - -.asm_115c64 - ld a, [$dc1a] - or a - jr nz, .asm_115c71 - ld a, [$dc19] - cp $4 - jr c, .asm_115c99 - -.asm_115c71 - ld b, $4 - push hl - ld hl, $dc1b -.asm_115c77 - ld a, [de] - inc de - call Function115cfd - ld [hli], a - dec b - jr nz, .asm_115c77 - ld a, [$dc19] - ld c, a - ld a, [$dc1a] - ld b, a -rept 4 - dec bc -endr -.asm_115c8c - ld a, [de] - cp $d - jr z, .asm_115c95 - cp $a - jr nz, .asm_115c9f - -.asm_115c95 - inc de - dec bc - jr .asm_115c8c - -.asm_115c99 - ld a, $ff - ld [wStartDay], a - ret - -.asm_115c9f - ld a, c - ld [$dc19], a - ld a, b - ld [$dc1a], a - push de - push hl - ld hl, WeeklyFlags - ld a, [hli] - ld h, [hl] - ld l, a - ld e, [hl] - inc hl - ld d, [hl] - inc de - inc de - inc de - ld [hl], d - dec hl - ld [hl], e - pop hl - dec hl - ld d, [hl] - dec hl - ld c, [hl] - dec hl - ld b, [hl] - dec hl - ld a, [hl] - sla b - sla b - sla b - rla - sla b - rla - ld [hli], a - ld [hl], b - inc hl - rrc c - rrc c - ld [hl], c - dec hl - ld a, $f - and c - or [hl] - ld [hli], a - ld a, [hli] - and $c0 - or [hl] - dec hl - ld [hld], a - dec hl - pop de - ld b, h - ld c, l - pop hl - ld a, [bc] - ld [hli], a - inc bc - ld a, [bc] - ld [hli], a - inc bc - ld a, [bc] - ld [hli], a - ld a, [$dc19] - cp $0 - jp nz, .asm_115c64 - ld a, [$dc1a] - cp $0 - jp nz, .asm_115c64 - ret - -; 115cfd - -Function115cfd: ; 115cfd - cp $2b - jr c, .asm_115d27 - jr z, .asm_115d2f - cp $2f - jr c, .asm_115d27 - jr z, .asm_115d32 - cp $30 - jr c, .asm_115d27 - cp $3a - jr c, .asm_115d35 - cp $3d - jr c, .asm_115d27 - jr z, .asm_115d38 - cp $41 - jr c, .asm_115d27 - cp $5b - jr c, .asm_115d4d - cp $61 - jr c, .asm_115d27 - cp $7b - jr c, .asm_115d50 - -.asm_115d27 - pop hl - pop hl - ld a, $ff - ld [wStartDay], a - ret - -.asm_115d2f - ld a, $3e - ret - -.asm_115d32 - ld a, $3f - ret - -.asm_115d35 - add $4 - ret - -.asm_115d38 - push de - push hl - ld a, [WeeklyFlags] - ld l, a - ld a, [SwarmFlags] - ld h, a - ld e, [hl] - inc hl - ld d, [hl] - dec de - ld [hl], d - dec hl - ld [hl], e - pop hl - pop de - xor a - ret - -.asm_115d4d - sub $41 - ret - -.asm_115d50 - sub $47 - ret - -; 115d53 - -Function115d53: ; 115d53 -.asm_115d53 - ld a, [de] - ld [hli], a - inc e - call z, Function115d61 - dec bc - ld a, b - or c - jr nz, .asm_115d53 - xor a - ld [hl], a - ret - -; 115d61 - -Function115d61: ; 115d61 - push bc - ld bc, $dc00 - call Function115d80 - pop bc - ret - -; 115d6a - -Function115d6a: ; 115d6a -.asm_115d6a - ld a, [hli] - ld [de], a - inc e - call z, Function115d77 - dec bc - ld a, b - or c - jr nz, .asm_115d6a - xor a - ret - -; 115d77 - -Function115d77: ; 115d77 - push bc - ld bc, wCurrentMapSignpostCount - call Function115d80 - pop bc - ret - -; 115d80 - -Function115d80: ; 115d80 - ld e, a - ld a, d - cp $bf - jr z, .asm_115d8b - inc d - ld a, e - ld e, $0 - ret - -.asm_115d8b - ld a, [bc] - inc a - ld [bc], a - ld [hFF8C], a - ld [MBC3SRamBank], a - ld a, e - ld d, $a0 - ld e, $0 - ret - -; 115d99 - -INCLUDE "misc/mobile_45_sprite_engine.asm" - -; 116567 - -Function116567: ; 116567 - ld hl, wc3f7 - dec [hl] - ret nz - ld hl, wc3f6 - inc [hl] -.asm_116570 - ld a, $7 - sla a - ld c, a - ld b, 0 - ld hl, Unknown_1167eb - add hl, bc - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - push de - pop hl - ld a, [wc3f6] - sla a - ld c, a - ld b, $0 - add hl, bc - ld a, [hli] - cp $fe - jr nz, .asm_116595 - xor a - ld [wc3f6], a - jr .asm_116570 - -.asm_116595 - ld [wc3f5], a - ld a, [hl] - ld [wc3f7], a - ret - -; 11659d - -Function11659d: ; 11659d - ld a, [wc314] - cp $12 - ret nc - ld e, a - ld d, 0 - ld hl, Jumptable_1165af - add hl, de - add hl, de - ld a, [hli] - ld h, [hl] - ld l, a - jp hl - -; 1165af - -Jumptable_1165af: ; 1165af - dw Function11677e - dw Function1165d5 - dw Function1165d8 - dw Function1165e3 - dw Function1165f5 - dw Function116600 - dw Function116615 - dw Function116618 - dw Function116623 - dw Function116635 - dw Function116640 - dw Function116655 - dw Function11665c - dw Function11668d - dw Function11669f - dw Function1166a2 - dw Function1166c4 - dw Function1166d6 - dw Function1166d6 -; 1165d5 - -Function1165d5: ; 1165d5 - call Function11678e - -Function1165d8: - ld a, $0 - ld c, a - ld a, $ff - ld b, a - ld a, $a8 - call Function1166f4 - -Function1165e3: - call Function116747 - ld a, [wc30e] - cp $e8 - ret nz - ld a, $1 - call Function116780 - ret c - jp Function116797 - -; 1165f5 - -Function1165f5: ; 1165f5 - ld a, $1 - ld c, a - ld a, $1 - ld b, a - ld a, $e8 - call Function1166f4 - -Function116600: - call Function116747 - ld a, [wc30e] - cp $a8 - ret nz - ld a, $1 - call Function116780 - ret c - ld a, $2 - ld [wc314], a - ret - -; 116615 - -Function116615: ; 116615 - call Function11678e - -Function116618: - ld a, $3 - ld c, a - ld a, $1 - ld b, a - ld a, $28 - call Function11671f - -Function116623: - call Function116747 - ld a, [wc30f] - cp $a0 - ret nz - ld a, $6 - call Function116780 - ret c - jp Function116797 - -; 116635 - -Function116635: ; 116635 - ld a, $2 - ld c, a - ld a, $ff - ld b, a - ld a, $a0 - call Function11671f - -Function116640: - call Function116747 - ld a, [wc30f] - cp $28 - ret nz - ld a, $6 - call Function116780 - ret c - ld a, $7 - ld [wc314], a - ret - -; 116655 - -Function116655: ; 116655 - xor a - ld [wc314 + 3], a - call Function11678e - -Function11665c: - ld hl, wc314 + 3 - ld a, $1 - xor [hl] - ld [hl], a - add $4 - ld c, a - call Function11679c - ld a, [wc314 + 3] - and a - jr nz, .asm_116673 - ld a, $48 - jr .asm_116675 - -.asm_116673 - ld a, $78 - -.asm_116675 - ld [wc30f], a - call Random - ld a, [hRandomAdd] - and $7 - sla a - sla a - sla a - add $30 - ld [wc30e], a - call Function116797 - -Function11668d: - ld a, [wc311] - cp $ff - ret nz - ld a, $b - call Function116780 - ret c - ld a, $c - ld [wc314], a - ret - -; 11669f - -Function11669f: ; 11669f - call Function11678e - -Function1166a2: - ld a, $a8 - ld [wc30e], a - ld [wc3f1], a - ld a, $60 - ld [wc30f], a - ld [wc3f3], a - ld a, $ff - ld [wc314 + 2], a - xor a - ld [wc314 + 3], a - ld a, $0 - ld c, a - call Function11679c - call Function116797 - -Function1166c4: - call Function116747 - ld a, [wc30e] - cp $58 - ret nz - ld a, $6 - ld c, a - call Function11679c - call Function116797 - -Function1166d6: - call Function116747 - ld a, [wc30e] - cp $48 - jr nz, .asm_1166e4 - xor a - ld [wc314 + 2], a - -.asm_1166e4 - ld a, [wc311] - cp $ff - ret nz - ld a, $4 - ld [$c319], a - xor a - ld [wc314], a - ret - -; 1166f4 - -Function1166f4: ; 1166f4 - ld [wc30e], a - ld a, b - ld [wc314 + 2], a - xor a - ld [wc314 + 3], a - ld hl, wc30f -.asm_116702 - call Random - ld a, [hRandomAdd] - and $7 - jr z, .asm_11670c - dec a - -.asm_11670c - sla a - sla a - sla a - add $48 - cp [hl] - jr z, .asm_116702 - ld [hl], a - call Function11679c - call Function116797 - ret - -; 11671f - -Function11671f: ; 11671f - ld [wc30f], a - ld a, b - ld [wc314 + 3], a - xor a - ld [wc314 + 2], a - ld hl, wc30e -.asm_11672d - call Random - ld a, [hRandomAdd] - and $7 - sla a - sla a - sla a - add $30 - cp [hl] - jr z, .asm_11672d - ld [hl], a - call Function11679c - call Function116797 - ret - -; 116747 - -Function116747: ; 116747 - ld hl, wc30e - ld a, [wc314 + 2] - add [hl] - ld [hl], a - ld hl, wc30f - ld a, [wc314 + 3] - add [hl] - ld [hl], a - ret - -; 116758 - -Function116758: ; 116758 - ld a, [wc30f] - cp $30 - jr c, .asm_116770 - jr z, .asm_116770 - cp $38 - jr c, .asm_116774 - jr z, .asm_116774 - cp $40 - jr c, .asm_116778 - jr z, .asm_116778 - xor a - jr .asm_11677a - -.asm_116770 - ld a, $c - jr .asm_11677a - -.asm_116774 - ld a, $8 - jr .asm_11677a - -.asm_116778 - ld a, $4 - -.asm_11677a - ld [wc314 + 4], a - ret - -; 11677e - -Function11677e: ; 11677e - ld a, $0 - -Function116780: - ld hl, wc314 + 1 - cp [hl] - jr z, .asm_11678c - ld a, [hl] - ld [wc314], a - scf - ret - -.asm_11678c - and a - ret - -; 11678e - -Function11678e: ; 11678e - ld hl, wc314 - ld a, [hl] - ld [wc314 + 1], a - inc [hl] - ret - -; 116797 - -Function116797: ; 116797 - ld hl, wc314 - inc [hl] - ret - -; 11679c - -Function11679c: - ld a, c - ld [wc311], a - xor a - ld [wc312], a - jr asm_1167af - -Function1167a6: ; 1167a6 - ld hl, wc313 - dec [hl] - ret nz - ld hl, wc312 - inc [hl] - -asm_1167af -.asm_1167af - ld a, [wc311] - cp $ff - ret z - sla a - ld c, a - ld b, 0 - ld hl, Unknown_1167eb - add hl, bc - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - push de - pop hl - ld a, [wc312] - sla a - ld c, a - ld b, $0 - add hl, bc - ld a, [hli] - cp $ff - jr z, .asm_1167dc - cp $fe - jr nz, .asm_1167e3 - xor a - ld [wc312], a - jr .asm_1167af - -.asm_1167dc - ld a, $ff - ld [wc311], a - ld a, $fd - -.asm_1167e3 - ld [wc310], a - ld a, [hl] - ld [wc313], a - ret - -; 1167eb - -Unknown_1167eb: - dw Unknown_1167fb - dw Unknown_116808 - dw Unknown_116867 - dw Unknown_116870 - dw Unknown_116815 - dw Unknown_11683e - dw Unknown_116881 - dw Unknown_1168ae - -Unknown_1167fb: ; 1167fb - db $0, $6 - db $1, $4 - db $2, $4 - db $3, $6 - db $2, $4 - db $1, $4 - db $fe - -Unknown_116808: ; 116808 - db $4, $6 - db $5, $4 - db $6, $4 - db $7, $6 - db $6, $4 - db $5, $4 - db $fe - -Unknown_116815: ; 116815 - db $fd, $20 - db $8, $c - db $9, $24 - db $a, $4 - db $b, $8 - db $a, $4 - db $9, $6 - db $c, $4 - db $d, $8 - db $c, $5 - db $9, $24 - db $a, $4 - db $b, $8 - db $a, $4 - db $9, $6 - db $c, $4 - db $d, $8 - db $c, $5 - db $9, $8 - db $8, $4 - db $ff - -Unknown_11683e: ; 11683e - db $fd, $20 - db $e, $c - db $f, $24 - db $10, $4 - db $11, $8 - db $10, $4 - db $f, $6 - db $12, $4 - db $13, $8 - db $12, $5 - db $f, $24 - db $10, $4 - db $11, $8 - db $10, $4 - db $f, $6 - db $12, $4 - db $13, $8 - db $12, $5 - db $f, $8 - db $e, $4 - db $ff - -Unknown_116867: ; 116867 - db $14, $8 - db $15, $8 - db $16, $8 - db $15, $8 - db $fe - -Unknown_116870: ; 116870 - db $17, $5 - db $18, $5 - db $19, $5 - db $1a, $5 - db $1b, $5 - db $1a, $5 - db $19, $5 - db $18, $5 - db $fe - -Unknown_116881: ; 116881 - db $1c, $7 - db $1d, $7 - db $1e, $a - db $1f, $a - db $20, $5 - db $21, $5 - db $20, $5 - db $21, $5 - db $20, $18 - db $22, $4 - db $23, $2 - db $22, $2 - db $23, $2 - db $22, $1 - db $23, $1 - db $22, $1 - db $23, $4 - db $fd, $1 - db $23, $1 - db $fd, $2 - db $23, $2 - db $fd, $40 - db $ff - -Unknown_1168ae: ; 1168ae - db $24, $4 - db $25, $4 - db $26, $4 - db $27, $4 - db $28, $4 - db $29, $4 - db $2a, $4 - db $2b, $4 - db $2c, $4 - db $2d, $4 - db $2e, $4 - db $fe -; 1168c5 - -Unknown_1168c5: - dw Unknown_116923 - dw Unknown_116960 - dw Unknown_1169a1 - dw Unknown_1169de - dw Unknown_116a1b - dw Unknown_116a58 - dw Unknown_116a99 - dw Unknown_116ad6 - dw Unknown_116d1b - dw Unknown_116d4c - dw Unknown_116d85 - dw Unknown_116dbe - dw Unknown_116df7 - dw Unknown_116e30 - dw Unknown_116e69 - dw Unknown_116e9a - dw Unknown_116ed3 - dw Unknown_116f0c - dw Unknown_116f45 - dw Unknown_116f7e - dw Unknown_116b13 - dw Unknown_116b54 - dw Unknown_116b95 - dw Unknown_116bd6 - dw Unknown_116c17 - dw Unknown_116c58 - dw Unknown_116c99 - dw Unknown_116cda - dw Unknown_116fb7 - dw Unknown_116fec - dw Unknown_117025 - dw Unknown_117056 - dw Unknown_117083 - dw Unknown_1170c0 - dw Unknown_1170fd - dw Unknown_11713a - dw Unknown_117177 - dw Unknown_11719c - dw Unknown_1171c1 - dw Unknown_1171e6 - dw Unknown_11720b - dw Unknown_117230 - dw Unknown_117255 - dw Unknown_11727a - dw Unknown_11729f - dw Unknown_1172c4 - dw Unknown_1172e9 - -Unknown_116923: ; 116923 - db $f - db $0, $0, $1, $a - db $0, $8, $2, $d - db $0, $10, $3, $d - db $0, $18, $4, $d - db $8, $0, $11, $a - db $8, $8, $12, $a - db $8, $10, $13, $a - db $8, $18, $14, $d - db $10, $0, $21, $a - db $10, $8, $22, $a - db $10, $10, $23, $a - db $10, $18, $24, $a - db $18, $0, $31, $a - db $18, $8, $32, $a - db $18, $10, $33, $a - -Unknown_116960: ; 116960 - db $10 - db $1, $0, $1, $a - db $1, $8, $2, $d - db $1, $10, $3, $d - db $1, $18, $4, $d - db $9, $0, $11, $a - db $9, $8, $12, $a - db $9, $10, $13, $a - db $9, $18, $14, $d - db $11, $0, $5, $a - db $11, $8, $6, $a - db $11, $10, $7, $a - db $11, $18, $34, $a - db $19, $0, $15, $a - db $19, $8, $16, $a - db $19, $10, $17, $a - db $19, $18, $35, $a - -Unknown_1169a1: ; 1169a1 - db $f - db $1, $0, $1, $a - db $1, $8, $2, $d - db $1, $10, $3, $d - db $1, $18, $4, $d - db $9, $0, $11, $a - db $9, $8, $12, $a - db $9, $10, $13, $a - db $9, $18, $14, $d - db $11, $0, $25, $a - db $11, $8, $26, $a - db $11, $10, $27, $a - db $11, $18, $34, $a - db $19, $8, $36, $a - db $19, $10, $37, $a - db $19, $18, $35, $a - -Unknown_1169de: ; 1169de - db $f - db $0, $0, $1, $a - db $0, $8, $2, $d - db $0, $10, $3, $d - db $0, $18, $4, $d - db $8, $0, $11, $a - db $8, $8, $12, $a - db $8, $10, $13, $a - db $8, $18, $14, $d - db $10, $0, $10, $a - db $10, $8, $20, $a - db $10, $10, $30, $a - db $10, $18, $24, $a - db $18, $0, $31, $a - db $18, $8, $32, $a - db $18, $10, $33, $a - -Unknown_116a1b: ; 116a1b - db $f - db $0, $0, $4, $2d - db $0, $8, $3, $2d - db $0, $10, $2, $2d - db $0, $18, $1, $2a - db $8, $0, $14, $2d - db $8, $8, $13, $2a - db $8, $10, $12, $2a - db $8, $18, $11, $2a - db $10, $0, $24, $2a - db $10, $8, $23, $2a - db $10, $10, $22, $2a - db $10, $18, $21, $2a - db $18, $8, $33, $2a - db $18, $10, $32, $2a - db $18, $18, $31, $2a - -Unknown_116a58: ; 116a58 - db $10 - db $1, $0, $4, $2d - db $1, $8, $3, $2d - db $1, $10, $2, $2d - db $1, $18, $1, $2a - db $9, $0, $14, $2d - db $9, $8, $13, $2a - db $9, $10, $12, $2a - db $9, $18, $11, $2a - db $11, $0, $34, $2a - db $11, $8, $7, $2a - db $11, $10, $6, $2a - db $11, $18, $5, $2a - db $19, $0, $35, $2a - db $19, $8, $17, $2a - db $19, $10, $16, $2a - db $19, $18, $15, $2a - -Unknown_116a99: ; 116a99 - db $f - db $1, $0, $4, $2d - db $1, $8, $3, $2d - db $1, $10, $2, $2d - db $1, $18, $1, $2a - db $9, $0, $14, $2d - db $9, $8, $13, $2a - db $9, $10, $12, $2a - db $9, $18, $11, $2a - db $11, $0, $34, $2a - db $11, $8, $27, $2a - db $11, $10, $26, $2a - db $11, $18, $25, $2a - db $19, $0, $35, $2a - db $19, $8, $37, $2a - db $19, $10, $36, $2a - -Unknown_116ad6: ; 116ad6 - db $f - db $0, $0, $4, $2d - db $0, $8, $3, $2d - db $0, $10, $2, $2d - db $0, $18, $1, $2a - db $8, $0, $14, $2d - db $8, $8, $13, $2a - db $8, $10, $12, $2a - db $8, $18, $11, $2a - db $10, $0, $24, $2a - db $10, $8, $30, $2a - db $10, $10, $20, $2a - db $10, $18, $10, $2a - db $18, $8, $33, $2a - db $18, $10, $32, $2a - db $18, $18, $31, $2a - -Unknown_116b13: ; 116b13 - db $10 - db $18, $0, $0, $b - db $18, $8, $8, $b - db $18, $10, $5c, $b - db $18, $18, $0, $b - db $10, $0, $0, $b - db $10, $8, $5d, $b - db $10, $10, $5e, $b - db $10, $18, $0, $b - db $8, $0, $50, $b - db $8, $8, $51, $b - db $8, $10, $52, $b - db $8, $18, $50, $2b - db $0, $0, $43, $b - db $0, $8, $44, $b - db $0, $10, $44, $2b - db $0, $18, $43, $2b - -Unknown_116b54: ; 116b54 - db $10 - db $19, $0, $0, $b - db $19, $8, $18, $b - db $19, $10, $c, $b - db $19, $18, $0, $b - db $11, $0, $42, $b - db $11, $8, $3a, $b - db $11, $10, $3a, $2b - db $11, $18, $42, $2b - db $9, $0, $58, $b - db $9, $8, $45, $b - db $9, $10, $45, $2b - db $9, $18, $58, $2b - db $1, $0, $d, $b - db $1, $8, $44, $b - db $1, $10, $44, $2b - db $1, $18, $d, $2b - -Unknown_116b95: ; 116b95 - db $10 - db $18, $0, $0, $b - db $18, $8, $5c, $2b - db $18, $10, $8, $2b - db $18, $18, $0, $b - db $10, $0, $0, $b - db $10, $8, $5e, $2b - db $10, $10, $5d, $2b - db $10, $18, $0, $b - db $8, $0, $50, $b - db $8, $8, $52, $2b - db $8, $10, $51, $2b - db $8, $18, $50, $2b - db $0, $0, $43, $b - db $0, $8, $44, $b - db $0, $10, $44, $2b - db $0, $18, $43, $2b - -Unknown_116bd6: ; 116bd6 - db $10 - db $18, $0, $0, $a - db $18, $8, $56, $a - db $18, $10, $57, $a - db $18, $18, $0, $a - db $10, $0, $64, $a - db $10, $8, $4a, $a - db $10, $10, $4b, $a - db $10, $18, $71, $a - db $8, $0, $54, $a - db $8, $8, $55, $a - db $8, $10, $55, $2a - db $8, $18, $54, $2a - db $0, $0, $48, $a - db $0, $8, $49, $a - db $0, $10, $49, $2a - db $0, $18, $48, $2a - -Unknown_116c17: ; 116c17 - db $10 - db $19, $0, $0, $a - db $19, $8, $76, $a - db $19, $10, $77, $a - db $19, $18, $0, $a - db $11, $0, $64, $a - db $11, $8, $69, $a - db $11, $10, $6a, $a - db $11, $18, $6b, $a - db $9, $0, $6f, $a - db $9, $8, $70, $a - db $9, $10, $70, $2a - db $9, $18, $6f, $2a - db $1, $0, $63, $a - db $1, $8, $19, $a - db $1, $10, $19, $2a - db $1, $18, $63, $2a - -Unknown_116c58: ; 116c58 - db $10 - db $1a, $0, $6c, $a - db $1a, $8, $6d, $a - db $1a, $10, $6e, $a - db $1a, $18, $0, $a - db $12, $0, $5f, $a - db $12, $8, $60, $a - db $12, $10, $61, $a - db $12, $18, $62, $a - db $a, $0, $53, $a - db $a, $8, $55, $a - db $a, $10, $55, $2a - db $a, $18, $53, $2a - db $2, $0, $46, $a - db $2, $8, $47, $a - db $2, $10, $47, $2a - db $2, $18, $46, $2a - -Unknown_116c99: ; 116c99 - db $10 - db $19, $0, $0, $2a - db $19, $8, $77, $2a - db $19, $10, $76, $2a - db $19, $18, $0, $2a - db $11, $0, $6b, $2a - db $11, $8, $6a, $2a - db $11, $10, $69, $2a - db $11, $18, $64, $2a - db $9, $0, $6f, $a - db $9, $8, $70, $a - db $9, $10, $70, $2a - db $9, $18, $6f, $2a - db $1, $0, $63, $a - db $1, $8, $19, $a - db $1, $10, $19, $2a - db $1, $18, $63, $2a - -Unknown_116cda: ; 116cda - db $10 - db $18, $0, $0, $a - db $18, $8, $57, $2a - db $18, $10, $56, $2a - db $18, $18, $0, $a - db $10, $0, $71, $2a - db $10, $8, $4b, $2a - db $10, $10, $4a, $2a - db $10, $18, $64, $2a - db $8, $0, $54, $a - db $8, $8, $55, $a - db $8, $10, $55, $2a - db $8, $18, $54, $2a - db $0, $0, $48, $a - db $0, $8, $49, $a - db $0, $10, $49, $2a - db $0, $18, $48, $2a - -Unknown_116d1b: ; 116d1b - db $c - db $0, $0, $38, $4a - db $0, $8, $39, $4a - db $0, $10, $39, $6a - db $0, $18, $38, $6a - db $8, $0, $28, $4a - db $8, $8, $29, $4a - db $8, $10, $29, $6a - db $8, $18, $28, $6a - db $10, $0, $9, $4d - db $10, $8, $19, $4a - db $10, $10, $19, $6a - db $10, $18, $9, $6d - -Unknown_116d4c: ; 116d4c - db $e - db $0, $8, $3b, $4a - db $0, $10, $3b, $6a - db $8, $0, $2a, $4a - db $8, $8, $2b, $4a - db $8, $10, $2b, $6a - db $8, $18, $2a, $6a - db $10, $0, $1a, $4a - db $10, $8, $1b, $4a - db $10, $10, $1b, $6a - db $10, $18, $1a, $6a - db $18, $0, $a, $4a - db $18, $8, $b, $4a - db $18, $10, $b, $6a - db $18, $18, $a, $6a - -Unknown_116d85: ; 116d85 - db $e - db $0, $0, $35, $2a - db $0, $8, $3c, $4a - db $0, $10, $3d, $4a - db $0, $18, $3e, $4a - db $8, $0, $2c, $4a - db $8, $8, $2d, $4a - db $8, $10, $2e, $4a - db $8, $18, $2f, $4a - db $10, $0, $1c, $4a - db $10, $8, $1d, $4a - db $10, $10, $1e, $4d - db $10, $18, $1f, $4d - db $18, $10, $e, $4d - db $18, $18, $f, $4a - -Unknown_116dbe: ; 116dbe - db $e - db $0, $0, $65, $4a - db $0, $8, $66, $4a - db $0, $10, $67, $4a - db $0, $18, $68, $4a - db $8, $8, $59, $4a - db $8, $10, $5a, $4a - db $8, $18, $5b, $4a - db $10, $0, $4c, $4a - db $10, $8, $4d, $4d - db $10, $10, $4e, $4d - db $10, $18, $4f, $4a - db $18, $0, $3f, $4d - db $18, $8, $40, $4d - db $18, $10, $41, $4d - -Unknown_116df7: ; 116df7 - db $e - db $0, $0, $3e, $6a - db $0, $8, $3d, $6a - db $0, $10, $3c, $6a - db $0, $18, $35, $a - db $8, $0, $2f, $6a - db $8, $8, $2e, $6a - db $8, $10, $2d, $6a - db $8, $18, $2c, $6a - db $10, $0, $1f, $6d - db $10, $8, $1e, $6d - db $10, $10, $1d, $6a - db $10, $18, $1c, $6a - db $18, $0, $f, $6a - db $18, $8, $e, $6d - -Unknown_116e30: ; 116e30 - db $e - db $0, $0, $68, $6a - db $0, $8, $67, $6a - db $0, $10, $66, $6a - db $0, $18, $65, $6a - db $8, $0, $5b, $6a - db $8, $8, $5a, $6a - db $8, $10, $59, $6a - db $10, $0, $4f, $6a - db $10, $8, $4e, $6d - db $10, $10, $4d, $6d - db $10, $18, $4c, $6a - db $18, $8, $41, $6d - db $18, $10, $40, $6d - db $18, $18, $3f, $6d - -Unknown_116e69: ; 116e69 - db $c - db $8, $0, $9, $d - db $8, $8, $19, $a - db $8, $10, $19, $2a - db $8, $18, $9, $2d - db $10, $0, $28, $a - db $10, $8, $29, $a - db $10, $10, $29, $2a - db $10, $18, $28, $2a - db $18, $0, $38, $a - db $18, $8, $39, $a - db $18, $10, $39, $2a - db $18, $18, $38, $2a - -Unknown_116e9a: ; 116e9a - db $e - db $0, $0, $a, $a - db $0, $8, $b, $a - db $0, $10, $b, $2a - db $0, $18, $a, $2a - db $8, $0, $1a, $a - db $8, $8, $1b, $a - db $8, $10, $1b, $2a - db $8, $18, $1a, $2a - db $10, $0, $2a, $a - db $10, $8, $2b, $a - db $10, $10, $2b, $2a - db $10, $18, $2a, $2a - db $18, $8, $3b, $a - db $18, $10, $3b, $2a - -Unknown_116ed3: ; 116ed3 - db $e - db $0, $10, $e, $d - db $0, $18, $f, $a - db $8, $0, $1c, $a - db $8, $8, $1d, $a - db $8, $10, $1e, $d - db $8, $18, $1f, $d - db $10, $0, $2c, $a - db $10, $8, $2d, $a - db $10, $10, $2e, $a - db $10, $18, $2f, $a - db $18, $0, $35, $6a - db $18, $8, $3c, $a - db $18, $10, $3d, $a - db $18, $18, $3e, $a - -Unknown_116f0c: ; 116f0c - db $e - db $0, $0, $3f, $d - db $0, $8, $40, $d - db $0, $10, $41, $d - db $8, $0, $4c, $a - db $8, $8, $4d, $d - db $8, $10, $4e, $d - db $8, $18, $4f, $a - db $10, $8, $59, $a - db $10, $10, $5a, $a - db $10, $18, $5b, $a - db $18, $0, $65, $a - db $18, $8, $66, $a - db $18, $10, $67, $a - db $18, $18, $68, $a - -Unknown_116f45: ; 116f45 - db $e - db $0, $0, $f, $2a - db $0, $8, $e, $2d - db $8, $0, $1f, $2d - db $8, $8, $1e, $2d - db $8, $10, $1d, $2a - db $8, $18, $1c, $2a - db $10, $0, $2f, $2a - db $10, $8, $2e, $2a - db $10, $10, $2d, $2a - db $10, $18, $2c, $2a - db $18, $0, $3e, $2a - db $18, $8, $3d, $2a - db $18, $10, $3c, $2a - db $18, $18, $35, $4a - -Unknown_116f7e: ; 116f7e - db $e - db $0, $8, $41, $2d - db $0, $10, $40, $2d - db $0, $18, $3f, $2d - db $8, $0, $4f, $2a - db $8, $8, $4e, $2d - db $8, $10, $4d, $2d - db $8, $18, $4c, $2a - db $10, $0, $5b, $2a - db $10, $8, $5a, $2a - db $10, $10, $59, $2a - db $18, $0, $68, $2a - db $18, $8, $67, $2a - db $18, $10, $66, $2a - db $18, $18, $65, $2a - -Unknown_116fb7: ; 116fb7 - db $d - db $fa, $0, $72, $a - db $fa, $8, $73, $d - db $fa, $10, $74, $d - db $fa, $18, $75, $d - db $2, $0, $81, $a - db $2, $8, $82, $a - db $2, $10, $83, $a - db $2, $18, $84, $a - db $a, $0, $91, $a - db $a, $8, $92, $a - db $a, $10, $93, $a - db $a, $18, $94, $a - db $12, $10, $a3, $a - -Unknown_116fec: ; 116fec - db $e - db $fd, $0, $85, $d - db $fd, $8, $86, $d - db $5, $0, $95, $d - db $5, $8, $96, $a - db $5, $10, $97, $a - db $5, $18, $98, $a - db $d, $0, $a5, $a - db $d, $8, $a6, $a - db $d, $10, $a7, $a - db $d, $18, $a8, $a - db $15, $0, $b3, $a - db $15, $8, $b4, $a - db $15, $10, $b5, $a - db $15, $18, $b6, $a - -Unknown_117025: ; 117025 - db $c - db $8, $0, $79, $d - db $8, $8, $7a, $d - db $8, $10, $7b, $a - db $8, $18, $7c, $a - db $10, $0, $89, $d - db $10, $8, $8a, $a - db $10, $10, $8b, $a - db $10, $18, $8c, $a - db $18, $0, $99, $a - db $18, $8, $9a, $a - db $18, $10, $9b, $a - db $18, $18, $9c, $a - -Unknown_117056: ; 117056 - db $b - db $8, $0, $7d, $a - db $8, $8, $7e, $d - db $8, $10, $7f, $d - db $8, $18, $80, $a - db $10, $0, $8d, $a - db $10, $8, $8e, $a - db $10, $10, $8f, $a - db $10, $18, $90, $a - db $18, $8, $9e, $a - db $18, $10, $9f, $a - db $18, $18, $a0, $a - -Unknown_117083: ; 117083 - db $f - db $0, $0, $a1, $a - db $0, $8, $a2, $a - db $0, $10, $a2, $2a - db $0, $18, $a1, $2a - db $8, $0, $b1, $a - db $8, $8, $b2, $d - db $8, $10, $b2, $2d - db $8, $18, $b1, $2a - db $10, $0, $ab, $a - db $10, $8, $ac, $a - db $10, $10, $ac, $2a - db $10, $18, $ab, $2a - db $18, $8, $a4, $a - db $18, $10, $87, $a - db $18, $18, $88, $a - -Unknown_1170c0: ; 1170c0 - db $f - db $0, $0, $a1, $a - db $0, $8, $a2, $d - db $0, $10, $a2, $2a - db $0, $18, $a1, $2a - db $8, $0, $b1, $a - db $8, $8, $78, $d - db $8, $10, $78, $2d - db $8, $18, $b1, $2a - db $10, $0, $ab, $a - db $10, $8, $ac, $a - db $10, $10, $ac, $2a - db $10, $18, $ab, $2a - db $18, $8, $a4, $a - db $18, $10, $87, $a - db $18, $18, $88, $a - -Unknown_1170fd: ; 1170fd - db $f - db $0, $0, $a9, $a - db $0, $8, $aa, $a - db $0, $10, $aa, $2a - db $0, $18, $a9, $2a - db $8, $0, $b7, $a - db $8, $8, $b8, $a - db $8, $10, $b8, $2a - db $8, $18, $b7, $2a - db $10, $0, $ab, $a - db $10, $8, $ac, $a - db $10, $10, $ac, $2a - db $10, $18, $ad, $a - db $18, $8, $a4, $a - db $18, $10, $ba, $a - db $18, $18, $bb, $a - -Unknown_11713a: ; 11713a - db $f - db $0, $0, $ae, $c - db $0, $8, $af, $c - db $0, $10, $af, $2c - db $0, $18, $ae, $2c - db $8, $0, $bc, $c - db $8, $8, $bd, $c - db $8, $10, $bd, $2c - db $8, $18, $bc, $2c - db $10, $0, $bf, $c - db $10, $8, $9d, $c - db $10, $10, $9d, $2c - db $10, $18, $b0, $c - db $18, $8, $b9, $c - db $18, $10, $c0, $c - db $18, $18, $be, $c - -Unknown_117177: ; 117177 - db $9 - db $14, $0, $1f, $6 - db $14, $8, $20, $6 - db $14, $10, $21, $6 - db $c, $0, $10, $6 - db $c, $8, $11, $6 - db $c, $10, $12, $6 - db $4, $0, $1, $6 - db $4, $8, $2, $6 - db $4, $10, $3, $6 - -Unknown_11719c: ; 11719c - db $9 - db $14, $0, $22, $6 - db $14, $8, $23, $6 - db $14, $10, $24, $6 - db $c, $0, $13, $6 - db $c, $8, $14, $6 - db $c, $10, $15, $6 - db $4, $0, $4, $6 - db $4, $8, $5, $6 - db $4, $10, $6, $6 - -Unknown_1171c1: ; 1171c1 - db $9 - db $14, $0, $25, $6 - db $14, $8, $26, $6 - db $14, $10, $27, $6 - db $c, $0, $16, $6 - db $c, $8, $17, $6 - db $c, $10, $18, $6 - db $4, $0, $7, $6 - db $4, $8, $8, $6 - db $4, $10, $9, $6 - -Unknown_1171e6: ; 1171e6 - db $9 - db $14, $0, $28, $6 - db $14, $8, $29, $6 - db $14, $10, $2a, $6 - db $c, $0, $19, $6 - db $c, $8, $1a, $6 - db $c, $10, $1b, $6 - db $4, $0, $a, $6 - db $4, $8, $b, $6 - db $4, $10, $c, $6 - -Unknown_11720b: ; 11720b - db $9 - db $14, $0, $2b, $6 - db $14, $8, $2c, $6 - db $14, $10, $2d, $6 - db $c, $0, $1c, $6 - db $c, $8, $1d, $6 - db $c, $10, $1e, $6 - db $4, $0, $d, $6 - db $4, $8, $e, $6 - db $4, $10, $f, $6 - -Unknown_117230: ; 117230 - db $9 - db $14, $0, $47, $6 - db $14, $8, $48, $6 - db $14, $10, $49, $6 - db $c, $0, $3b, $6 - db $c, $8, $3c, $6 - db $c, $10, $3b, $26 - db $4, $0, $2e, $6 - db $4, $8, $2f, $6 - db $4, $10, $30, $6 - -Unknown_117255: ; 117255 - db $9 - db $14, $0, $35, $6 - db $14, $8, $4a, $6 - db $14, $10, $35, $6 - db $c, $0, $3d, $6 - db $c, $8, $35, $6 - db $c, $10, $3d, $26 - db $4, $0, $31, $6 - db $4, $8, $32, $6 - db $4, $10, $31, $26 - -Unknown_11727a: ; 11727a - db $9 - db $14, $0, $4b, $6 - db $14, $8, $4c, $6 - db $14, $10, $4d, $6 - db $c, $0, $3e, $6 - db $c, $8, $3f, $6 - db $c, $10, $40, $6 - db $4, $0, $33, $6 - db $4, $8, $34, $6 - db $4, $10, $35, $6 - -Unknown_11729f: ; 11729f - db $9 - db $14, $0, $4e, $6 - db $14, $8, $4f, $6 - db $14, $10, $50, $6 - db $c, $0, $41, $6 - db $c, $8, $42, $6 - db $c, $10, $43, $6 - db $4, $0, $35, $6 - db $4, $8, $36, $6 - db $4, $10, $37, $6 - -Unknown_1172c4: ; 1172c4 - db $9 - db $14, $0, $51, $6 - db $14, $8, $52, $6 - db $14, $10, $35, $6 - db $c, $0, $44, $6 - db $c, $8, $45, $6 - db $c, $10, $46, $6 - db $4, $0, $38, $6 - db $4, $8, $39, $6 - db $4, $10, $3a, $6 - -Unknown_1172e9: ; 1172e9 - db $9 - db $10, $0, $0, $2 - db $10, $8, $0, $2 - db $10, $10, $0, $2 - db $8, $0, $0, $2 - db $8, $8, $0, $2 - db $c, $10, $1f, $6 - db $0, $0, $0, $2 - db $0, $8, $0, $2 - db $4, $10, $10, $6 -; 11730e - -Palette_11730e: - RGB 31, 31, 31 - RGB 7, 5, 4 - RGB 31, 28, 4 - RGB 31, 5, 5 - RGB 31, 31, 31 - RGB 7, 5, 4 - RGB 31, 23, 0 - RGB 31, 28, 4 - RGB 31, 31, 31 - RGB 16, 19, 31 - RGB 17, 31, 31 - RGB 31, 31, 31 - RGB 5, 5, 5 - RGB 7, 5, 4 - RGB 31, 28, 4 - RGB 19, 11, 6 - RGB 31, 31, 31 - RGB 3, 15, 31 - RGB 4, 25, 25 - RGB 0, 7, 12 - RGB 31, 31, 31 - RGB 0, 16, 0 - RGB 0, 16, 0 - RGB 0, 16, 0 - RGB 4, 11, 22 - RGB 0, 16, 0 - RGB 0, 16, 0 - RGB 0, 16, 0 - RGB 22, 11, 8 - RGB 0, 16, 0 - RGB 0, 16, 0 - RGB 0, 16, 0 - -Palette_11734e: - RGB 31, 30, 30 - RGB 2, 0, 0 - RGB 10, 9, 9 - RGB 15, 14, 14 - -Unknown_117356: ; 117356 - db $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9 - db $c9, $c9, $c9, $c9, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1 - db $c5, $c6, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2 - db $c2, $c2, $c6, $c5, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1 - db $c3, $c4, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2 - db $c2, $c2, $c4, $c3, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1 - db $c3, $c4, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2 - db $c2, $c2, $c4, $c3, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1 - db $c3, $c4, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2 - db $c2, $c2, $c4, $c3, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1 - db $c3, $c4, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2 - db $c2, $c2, $c4, $c3, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1 - db $c3, $c4, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2 - db $c2, $c2, $c4, $c3, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1 - db $c3, $c4, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2 - db $c2, $c2, $c4, $c3, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1 - db $c3, $c4, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2 - db $c2, $c2, $c4, $c3, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1 - db $c3, $c4, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $d8, $c2, $c2, $d8, $c2, $c2, $c2 - db $c2, $c2, $c4, $c3, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1 - db $c7, $c8, $ca, $cb, $cc, $cd, $ce, $c2, $cf, $d0, $d1, $d2, $d3, $c2, $d4, $d5 - db $d6, $d7, $c8, $c7, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1 - db $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9 - db $c9, $c9, $c9, $c9, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1 - - db $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f - db $8f, $8f, $8f, $8f, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08 - db $8f, $8f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f - db $0f, $0f, $af, $af, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08 - db $8f, $8f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f - db $0f, $0f, $af, $af, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08 - db $8f, $8f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f - db $0f, $0f, $af, $af, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08 - db $8f, $8f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f - db $0f, $0f, $af, $af, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08 - db $8f, $8f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f - db $0f, $0f, $af, $af, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08 - db $8f, $8f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f - db $0f, $0f, $af, $af, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08 - db $8f, $8f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f - db $0f, $0f, $af, $af, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08 - db $8f, $8f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f - db $0f, $0f, $af, $af, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08 - db $8f, $8f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $8f, $0f, $0f, $8f, $0f, $0f, $0f - db $0f, $0f, $af, $af, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08 - db $8f, $8f, $8f, $8f, $8f, $8f, $8f, $0f, $8f, $8f, $8f, $8f, $8f, $0f, $8f, $8f - db $8f, $8f, $af, $af, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08 - db $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f - db $8f, $8f, $8f, $8f, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08 -; 117656 - - -SECTION "Mobile Stadium", ROMX - -Special_GiveOddEgg: ; 117656 - callba GiveOddEgg - ret - -; 11765d - -Function11765d: ; 11765d (45:765d) - ld a, [hInMenu] - push af - ld a, $1 - ld [hInMenu], a - call Function11766b - pop af - ld [hInMenu], a - ret - -Function11766b: ; 11766b (45:766b) - call Function117699 - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - call Function1176ee - ld a, $5 - call GetSRAMBank - ld hl, $b1f3 - ld de, wcd49 - ld bc, $8 - call CopyBytes - ld de, $c708 - ld bc, $11 - call CopyBytes - call CloseSRAM - pop af - ld [rSVBK], a - ret - -Function117699: ; 117699 (45:7699) - ld a, $5 - call GetSRAMBank - ld hl, wcd49 - ld de, $b1f3 - ld bc, $8 - call CopyBytes - ld hl, $c708 - ld bc, $11 - call CopyBytes - call CloseSRAM - xor a - ld [wcd49], a - ld [wcd4a], a - ld [wcd4b], a - ld [wcd4c], a - ld [wcd4d], a - ld [wcd4e], a - ld [wcd4f], a - ld hl, $c708 - ld bc, $11 - call ByteFill - call ClearBGPalettes - call ClearSprites - callba Function171c87 - callba ReloadMapPart - callba ClearSpriteAnims - ret - -Function1176ee: ; 1176ee (45:76ee) -.loop - call JoyTextDelay - ld a, [wcd49] - bit 7, a - jr nz, .quit - call Function117719 - callba PlaySpriteAnimations - callba ReloadMapPart - jr .loop - -.quit - callba ClearSpriteAnims - call ClearBGPalettes - call ClearScreen - call ClearSprites - ret - -Function117719: ; 117719 (45:7719) - ld a, [wcd49] - ld e, a - ld d, 0 - ld hl, Jumptable_117728 - add hl, de - add hl, de - ld a, [hli] - ld h, [hl] - ld l, a - jp hl - -Jumptable_117728: ; 117728 (45:7728) - dw Function117738 - dw Function117764 - dw Function1178aa - dw Function1178e8 - dw Function117942 - dw Function117976 - dw Function117984 - dw Function1179a7 - - -Function117738: ; 117738 (45:7738) - callba Function171ccd - depixel 6, 3 - ld a, $1d - call _InitSpriteAnimStruct - ld hl, $c - add hl, bc - ld a, $6 - ld [hl], a - depixel 9, 4 - ld a, $1d - call _InitSpriteAnimStruct - ld hl, $c - add hl, bc - ld a, $7 - ld [hl], a - ld a, $3 - ld [wcd23], a - jp MobilePassword_IncrementJumptable - -Function117764: ; 117764 (45:7764) - ld a, [wcd4a] - cp $10 - jr nz, .asm_11776f - ld a, $1 - jr .asm_117770 - -.asm_11776f - xor a -.asm_117770 - ld [wcd24], a - ld hl, hJoyPressed ; $ffa7 - ld a, [hl] - and SELECT - jr nz, Function117764_select - ld a, [hl] - and START - jr nz, Function117764_start - ld a, [hl] - and A_BUTTON - jp nz, Function117764_a_button - ld a, [hl] - and B_BUTTON - jr nz, Function117764_b_button - ld hl, hJoyLast - ld a, [hl] - and D_UP - jr nz, Function117764_d_up - ld a, [hl] - and D_DOWN - jr nz, Function117764_d_down - ld a, [hl] - and D_LEFT - jp nz, Function117764_d_left - ld a, [hl] - and D_RIGHT - jp nz, Function117764_d_right - ret - -Function117764_select: ; 1177a5 (45:77a5) - callba Function171cf0 - ret - -Function117764_start: ; 1177ac (45:77ac) - ld a, $2 - ld [wcd4c], a - ld a, $4 - ld [wcd4d], a - ret - -Function1177b7: ; 1177b7 (45:77b7) - ld a, $3 - ld [wcd24], a - ld a, [wcd4a] - and a - jr z, .asm_1177c5 - jp MobilePassword_IncrementJumptable - -.asm_1177c5 - ld a, $6 - ld [wcd49], a - ret - -Function1177cb: ; 1177cb (45:77cb) - ld a, $80 - ld [wcd49], a - ld [ScriptVar], a - jp MobilePassword_IncrementJumptable - -Function117764_b_button: ; 1177d6 (45:77d6) - call PlayClickSFX - ld a, [wcd4a] - and a - ret z - dec a - ld [wcd4a], a - ld e, a - ld d, $0 - ld hl, $c708 - add hl, de - xor a - ld [hl], a - hlcoord 2, 4 - add hl, de - ld [hl], a - ret - -Function117764_d_up: ; 1177f1 (45:77f1) - ld a, [wcd4d] - and a - ret z - dec a - ld [wcd4d], a - cp $3 - ret nz - ld a, [wcd4c] - ld e, a - sla a - sla a - add e -Function117764_d_vertical_load: ; 117806 (45:7806) - ld [wcd4c], a - ret - -Function117764_d_down: ; 11780a (45:780a) - ld a, [wcd4d] - cp $4 - ret z - inc a - ld [wcd4d], a - cp $4 - ret nz - ld a, [wcd4c] - cp $a - jr nc, .asm_117825 - cp $5 - jr nc, .asm_117829 - xor a - jr Function117764_d_vertical_load - -.asm_117825 - ld a, $2 - jr Function117764_d_vertical_load - -.asm_117829 - ld a, $1 - jr Function117764_d_vertical_load - -Function117764_d_left: ; 11782d (45:782d) - ld a, [wcd4c] - and a - ret z - dec a - ld [wcd4c], a - ret - -Function117764_d_right: ; 117837 (45:7837) - ld e, $d - ld a, [wcd4d] - cp $4 - jr nz, .wrap - ld e, $2 -.wrap - ld a, [wcd4c] - cp e - ret z - inc a - ld [wcd4c], a - ret - -Function117764_a_button: ; 11784c (45:784c) - call PlayClickSFX - ld a, [wcd4d] - cp $4 - jr nz, .not_4 - ld a, [wcd4c] - cp $2 - jp z, Function1177b7 - cp $1 - jp z, Function1177cb - jp Function117764_select - -.not_4 - ld a, [wcd4a] - ld e, a - cp $10 - jp z, Function117764_start - inc a - ld [wcd4a], a - ld d, $0 - ld a, [wcd4b] - and a - jr nz, .ascii_symbols - ld hl, Unknown_117a0f - jr .got_ascii - -.ascii_symbols - ld hl, Unknown_117a47 -.got_ascii - push de - ld a, [wcd4c] - ld b, a - ld a, [wcd4d] - ld c, $e - call SimpleMultiply - add b - ld c, a - ld b, $0 - add hl, bc - ld a, [hl] - ld hl, $c708 - add hl, de - ld [hl], a - pop de - hlcoord 2, 4 - add hl, de - sub $20 - ld [hl], a - ld a, e - cp $f - ret nz - jp Function117764_start - -Function1178aa: ; 1178aa (45:78aa) - ld hl, MenuDataHeader_1179b5 - call LoadMenuDataHeader - call MenuBox - call MenuBoxCoord2Tile - ld hl, MenuDataHeader_1179bd - call LoadMenuDataHeader - call MenuBox - call MenuBoxCoord2Tile - callba ReloadMapPart - hlcoord 16, 8 - ld de, YessNoString_1179c5 - call PlaceString - hlcoord 15, 10 - ld a, "▶" - ld [hl], a - hlcoord 1, 14 - ld de, AskSavePasswordString - call PlaceString - ld a, $1 - ld [wcd4e], a - jp MobilePassword_IncrementJumptable - -Function1178e8: ; 1178e8 (45:78e8) - ld a, [hJoyPressed] - cp B_BUTTON - jr z, .b_button - cp A_BUTTON - jr z, .a_button - cp D_DOWN - jr z, .d_down - cp D_UP - ret nz - ld a, [wcd4e] - and a - ret z - dec a - ld [wcd4e], a - hlcoord 15, 8 - ld a, "▶" - ld [hl], a - hlcoord 15, 10 - ld a, " " - ld [hl], a - ret - -.d_down - ld a, [wcd4e] - and a - ret nz - inc a - ld [wcd4e], a - hlcoord 15, 8 - ld a, " " - ld [hl], a - hlcoord 15, 10 - ld a, "▶" - ld [hl], a - ret - -.a_button - call PlayClickSFX - ld a, [wcd4e] - and a - jr nz, .b_button - call ExitMenu - ld a, $1 - ld [wcd4f], a - jp MobilePassword_IncrementJumptable - -.b_button - call ExitMenu - call ExitMenu - jp MobilePassword_IncrementJumptable - -Function117942: ; 117942 (45:7942) - call SpeechTextBox - hlcoord 1, 14 - ld de, SavedPasswordString - call PlaceString - ld a, $1e - ld [wcd4e], a - ld a, BANK(sMobileLoginPassword) - call GetSRAMBank - ld a, [wcd4f] - ld [sMobileLoginPassword], a - ld hl, $c708 - ld de, sMobileLoginPassword + 1 - ld bc, MOBILE_LOGIN_PASSWORD_LENGTH - call CopyBytes - call CloseSRAM - ld a, [wcd4f] - and a - jr z, asm_11797e - call MobilePassword_IncrementJumptable - -Function117976: ; 117976 (45:7976) - ld hl, wcd4e - dec [hl] - ret nz - call ExitMenu -asm_11797e: ; 11797e (45:797e) - ld a, $80 - ld [wcd49], a - ret - -Function117984: ; 117984 (45:7984) - ld hl, MenuDataHeader_1179b5 - call LoadMenuDataHeader - call MenuBox - call MenuBoxCoord2Tile - callba ReloadMapPart - hlcoord 1, 14 - ld de, NotAPokemonPasswordString - call PlaceString - ld a, $1e - ld [wcd4e], a - call MobilePassword_IncrementJumptable - -Function1179a7: ; 1179a7 (45:79a7) - ld hl, wcd4e - dec [hl] - ret nz - call ExitMenu - ld a, $1 - ld [wcd49], a - ret - -; 1179b5 (45:79b5) - -MenuDataHeader_1179b5: ; 1179b5 - db $40 ; flags - db 12, 0 ; start coords - db 17, 19 ; end coords - dw NULL - db 0 ; default option -; 1179bd - -MenuDataHeader_1179bd: ; 1179bd - db $40 ; flags - db 7, 14 ; start coords - db 11, 19 ; end coords - dw NULL - db 0 ; default option -; 1179c5 - - -YessNoString_1179c5: ; 1179c5 - db "はい" - next "いいえ@" -; 1179cc - -AskSavePasswordString: ; 1179cc - db "こ%パスワード¯ほぞんして" - line "おきますか?@" -; 1179e1 - -NotAPokemonPasswordString: ; 1179e1 - db "パスワードにゅうりょく" - line "されていません!@" -; 1179f7 - -SavedPasswordString: ; 1179f7 - db "ログインパスワード¯ほぞん" - line "しました@" -; 117a0a - -MobilePassword_IncrementJumptable: ; 117a0a (45:7a0a) - ld hl, wcd49 - inc [hl] - ret - -; 117a0f (45:7a0f) - -Unknown_117a0f: -INCBIN "data/mobile/ascii-alpha.txt" - -Unknown_117a47: -INCBIN "data/mobile/ascii-sym.txt" -; 117a7f - - -; everything from here to the end of the bank is related to the -; Mobile Stadium option from the continue/newgame menu. -; XXX better function names -MobileStudium: ; 0x117a7f - ld a, [hInMenu] - push af - ld a, $1 - ld [hInMenu], a - call Function117a8d - pop af - ld [hInMenu], a - ret - -; 0x117a8d - -Function117a8d: ; 0x117a8d - call Function117a94 - call Function117acd - ret - -; 0x117a94 - -Function117a94: ; 0x117a94 - xor a - ld [wJumptableIndex], a - ld [wcf64], a - ld [wcf65], a - ld [wcf66], a - call ClearBGPalettes - call ClearSprites - callba Function172e78 - callba HDMATransferAttrMapAndTileMapToWRAMBank3 - ret - -; 0x117ab4 - -Function117ab4: ; 0x117ab4 - call ClearBGPalettes - call ClearSprites - callba Function172e78 - callba Function172eb9 - callba ReloadMapPart - ret - -; 0x117acd - -Function117acd: ; 0x117acd - call JoyTextDelay - ld a, [wJumptableIndex] - bit 7, a - jr nz, .asm_117ae2 - call Function117ae9 - callba HDMATransferAttrMapAndTileMapToWRAMBank3 - jr Function117acd - -.asm_117ae2 - call ClearBGPalettes - call ClearSprites - ret - -Function117ae9: ; 0x117ae9 - ld a, [wJumptableIndex] - ld e, a - ld d, $0 - ld hl, .Jumptable - add hl, de - add hl, de - ld a, [hli] - ld h, [hl] - ld l, a - jp hl - -.Jumptable: ; 0x117af8 - dw Function117b06 - dw Function117b14 - dw Function117b28 - dw Function117b31 - dw Function117b4f - dw Function117bb6 - dw Function117c4a - -Function117b06: - callba Function172eb9 - ld a, $10 - ld [wcf64], a - jp MobileStudium_JumptableIncrement - -Function117b14: - ld hl, wcf64 - dec [hl] - ret nz - ld hl, MenuDataHeader_117cbc - call LoadMenuDataHeader - call MenuBox - call MenuBoxCoord2Tile - jp MobileStudium_JumptableIncrement - -Function117b28: - ld hl, MobileStadiumEntryText - call PrintText - jp MobileStudium_JumptableIncrement - -Function117b31: - ld hl, MenuDataHeader_117cc4 - call LoadMenuDataHeader - call MenuBox - call MenuBoxCoord2Tile - hlcoord 16, 8 - ld de, YesNo117ccc - call PlaceString - hlcoord 15, 8 - ld a, "▶" - ld [hl], a - jp MobileStudium_JumptableIncrement - -Function117b4f: - ld a, [hJoyPressed] - cp B_BUTTON - jr z, .b_button - cp A_BUTTON - jr z, .a_button - cp D_DOWN - jr z, .d_down - cp D_UP - ret nz - ld a, [wcf64] - and a - ret z - dec a - ld [wcf64], a - hlcoord 15, 8 - ld a, "▶" - ld [hl], a - hlcoord 15, 10 - ld a, " " - ld [hl], a - ret - -.d_down - ld a, [wcf64] - and a - ret nz - inc a - ld [wcf64], a - hlcoord 15, 8 - ld a, " " - ld [hl], a - hlcoord 15, 10 - ld a, "▶" - ld [hl], a - ret - -.a_button - call PlayClickSFX - ld a, [wcf64] - and a - jr nz, .b_button - call ExitMenu - call ExitMenu - callba ReloadMapPart - jp MobileStudium_JumptableIncrement - -.b_button - call ExitMenu - call ExitMenu - callba ReloadMapPart - ld a, $80 - ld [wJumptableIndex], a - ret - -Function117bb6: - call Function117c89 - ld a, $1 - ld [hBGMapMode], a - callba Function118284 - call ClearSprites - ld a, [wc300] - and a - jr z, .asm_117be7 - cp $a - jr z, .asm_117be1 -.asm_117bd0 - ld a, $2 - ld [wc303], a - callba DisplayMobileError - ld a, $80 - ld [wJumptableIndex], a - ret - -.asm_117be1 - ld a, $80 - ld [wJumptableIndex], a - ret - -.asm_117be7 - ld a, [rSVBK] - push af - ld a, $3 - ld [rSVBK], a - ld a, [wcd89] - and $1 - jr nz, .asm_117c16 - ld a, [w3_d000] - cp $fe - jr nz, .asm_117c16 - ld a, [w3_d001] - cp $f - jr nz, .asm_117c16 - ld hl, w3_dfec - ld de, wcd69 - ld c, $10 -.asm_117c0b - ld a, [de] - inc de - cp [hl] - jr nz, .asm_117c16 - inc hl - dec c - jr nz, .asm_117c0b - jr .asm_117c20 - -.asm_117c16 - pop af - ld [rSVBK], a - ld a, $d3 - ld [wc300], a - jr .asm_117bd0 - -.asm_117c20 - pop af - ld [rSVBK], a - callba Function172eb9 - ld a, [rSVBK] - push af - ld a, $3 - ld [rSVBK], a - ld a, $7 - call GetSRAMBank - ld hl, w3_d002 - ld de, $b000 - ld bc, $1000 - call CopyBytes - call CloseSRAM - pop af - ld [rSVBK], a - jp MobileStudium_JumptableIncrement - -Function117c4a: - ld hl, MenuDataHeader_117cbc - call LoadMenuDataHeader - call MenuBox - call MenuBoxCoord2Tile - callba ReloadMapPart - ld hl, MobileStadiumSuccessText - call PrintText - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - ld hl, UnknBGPals - ld de, 1 palettes - ld c, 8 -.loop - push hl - ld a, $7fff % $100 - ld [hli], a - ld a, $7fff / $100 - ld [hl], a - pop hl - add hl, de - dec c - jr nz, .loop - call RotateThreePalettesRight - pop af - ld [rSVBK], a - ld a, $80 - ld [wJumptableIndex], a - ret - -Function117c89: - ld a, $7 - call GetSRAMBank - ld l, $0 - ld h, l - ld de, $b000 - ld bc, $0ffc -.asm_117c97 - push bc - ld a, [de] - inc de - ld c, a - ld b, $0 - add hl, bc - pop bc - dec bc - ld a, b - or c - jr nz, .asm_117c97 - ld a, l - ld [wcd83], a - ld a, h - ld [wcd84], a - ld hl, $bfea - ld de, wcd69 - ld bc, $10 - call CopyBytes - call CloseSRAM - ret - -MenuDataHeader_117cbc: ; 0x117cbc - db $40 ; flags - db 12, 0 ; start coords - db 17, 19 ; end coords - dw NULL ; menu data 2 - db 0 ; default option - -MenuDataHeader_117cc4: ; 0x117cc4 - db $40 ; flags - db 7, 14 ; start coords - db 11, 19 ; end coords - dw NULL ; menu data 2 - db 0 ; default item - -YesNo117ccc: ; 0x117ccc - db "はい" - next "いいえ@" - -MobileStadiumEntryText: ; 0x117cd3 - text_jump _MobileStadiumEntryText - db "@" - -MobileStadiumSuccessText: ; 0x117cd8 - text_jump _MobileStadiumSuccessText - db "@" - -MobileStudium_JumptableIncrement: ; 0x117cdd - ld hl, wJumptableIndex - inc [hl] - ret diff --git a/misc/mobile_45_sprite_engine.asm b/misc/mobile_45_sprite_engine.asm deleted file mode 100755 index a85e7fce4..000000000 --- a/misc/mobile_45_sprite_engine.asm +++ /dev/null @@ -1,922 +0,0 @@ -Function115d99: ; 115d99 - ld de, GFX_11601a - ld hl, VTiles0 tile $60 - lb bc, BANK(GFX_11601a), $14 - call Get2bpp - xor a - ld [wc305], a - ld [wc306], a - ld [wc309], a - ld [wc30a], a - ld [wc30b], a - ld [wc30c], a - ld a, $10 - ld [wc307], a - ld a, $18 - ld [wc308], a - ret - -; 115dc3 - -Function115dc3: ; 115dc3 - xor a - ld [wc305], a - ld a, $a0 - ld hl, Sprites + 31 * 4 - ld bc, 8 * 4 - call ByteFill - ret - -; 115dd3 - -Function115dd3: ; 115dd3 - ld a, [wc305] - and a - ret z - ld a, $a0 - ld hl, Sprites + 31 * 4 - ld bc, 8 * 4 - call ByteFill - call Function115e22 - ld a, [wc309] - sla a - ld c, a - ld b, 0 - ld hl, Unknown_115e86 - add hl, bc - ld a, [hli] - ld e, a - ld a, [hl] - ld d, a - push de - pop hl - ld de, Sprites + 31 * 4 - ld a, [wc307] - ld c, a - ld a, [wc308] - ld b, a - ld a, [hli] -.asm_115e04 - 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_115e04 - ret - -; 115e18 - -Function115e18: ; 115e18 - ld a, c - ld [wc30a], a - xor a - ld [wc30b], a - jr Function115e2b - -; 115e22 - -Function115e22: ; 115e22 - ld hl, wc30c - dec [hl] - ret nz - ld hl, wc30b - inc [hl] - -Function115e2b: ; 115e2b - ld a, [wc30a] - sla a - ld c, a - ld b, 0 - ld hl, Unknown_115e59 - add hl, bc - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - push de - pop hl - ld a, [wc30b] - sla a - ld c, a - ld b, $0 - add hl, bc - ld a, [hli] - cp $ff - jr nz, .not_end - xor a - ld [wc30b], a - jr Function115e2b - -.not_end - ld [wc309], a - ld a, [hl] - ld [wc30c], a - ret - -; 115e59 - -Unknown_115e59: - dw Unknown_115e61 - dw Unknown_115e6c - dw Unknown_115e76 - dw Unknown_115e79 - -; OAM idx (see Unknown_115e86), flip flags/duration -Unknown_115e61: ; 115e61 - db $04, $08 - db $05, $08 - db $06, $08 - db $07, $08 - db $08, $08 - db -1 - -Unknown_115e6c: ; 115e6c - db $01, $08 - db $02, $08 - db $03, $08 - db $09, $08 - db $0a, $08 -Unknown_115e76: ; 115e76 - db $00, $08 - db -1 - -Unknown_115e79: ; 115e79 - db $0b, $08 - db $0c, $08 - db $0d, $08 - db $0e, $08 - db $0f, $08 - db $00, $08 - db -1 -; 115e86 - -Unknown_115e86: - dw Unknown_115ea6 - dw Unknown_115eb7 - dw Unknown_115ecc - dw Unknown_115ee1 - dw Unknown_115ef6 - dw Unknown_115f13 - dw Unknown_115f30 - dw Unknown_115f4d - dw Unknown_115f6a - dw Unknown_115f87 - dw Unknown_115f9c - dw Unknown_115fb1 - dw Unknown_115fc6 - dw Unknown_115fdb - dw Unknown_115ff0 - dw Unknown_116005 - -Unknown_115ea6: ; 115ea6 - db 4 - dsprite 1, 0, 0, 0, $60, $01 - dsprite 1, 0, 1, 0, $61, $01 - dsprite 2, 0, 0, 0, $62, $01 - dsprite 2, 0, 1, 0, $63, $01 - -Unknown_115eb7: ; 115eb7 - db 5 - dsprite 0, 0, 1, 0, $64, $00 - dsprite 1, 0, 0, 0, $60, $01 - dsprite 1, 0, 1, 0, $61, $01 - dsprite 2, 0, 0, 0, $62, $01 - dsprite 2, 0, 1, 0, $63, $01 - -Unknown_115ecc: ; 115ecc - db 5 - dsprite 0, 0, 1, 0, $65, $00 - dsprite 1, 0, 0, 0, $60, $01 - dsprite 1, 0, 1, 0, $61, $01 - dsprite 2, 0, 0, 0, $62, $01 - dsprite 2, 0, 1, 0, $63, $01 - -Unknown_115ee1: ; 115ee1 - db 5 - dsprite 0, 0, 1, 0, $66, $00 - dsprite 1, 0, 0, 0, $60, $01 - dsprite 1, 0, 1, 0, $61, $01 - dsprite 2, 0, 0, 0, $62, $01 - dsprite 2, 0, 1, 0, $63, $01 - -Unknown_115ef6: ; 115ef6 - db 7 - dsprite 0, 0, 0, 0, $67, $01 - dsprite 1, 0, 0, 0, $68, $01 - dsprite 2, 0, 0, 0, $6d, $00 - dsprite 2, 0, 1, 0, $69, $00 - dsprite 2, 0, 2, 0, $6a, $00 - dsprite 3, 0, 1, 0, $6b, $00 - dsprite 3, 0, 2, 0, $6c, $00 - -Unknown_115f13: ; 115f13 - db 7 - dsprite 0, 0, 0, 0, $67, $01 - dsprite 1, 0, 0, 0, $68, $01 - dsprite 2, 0, 0, 0, $6e, $00 - dsprite 2, 0, 1, 0, $69, $00 - dsprite 2, 0, 2, 0, $6a, $00 - dsprite 3, 0, 1, 0, $6b, $00 - dsprite 3, 0, 2, 0, $6c, $00 - -Unknown_115f30: ; 115f30 - db 7 - dsprite 0, 0, 0, 0, $67, $01 - dsprite 1, 0, 0, 0, $68, $01 - dsprite 2, 0, 0, 0, $6f, $00 - dsprite 2, 0, 1, 0, $69, $00 - dsprite 2, 0, 2, 0, $6a, $00 - dsprite 3, 0, 1, 0, $6b, $00 - dsprite 3, 0, 2, 0, $6c, $00 - -Unknown_115f4d: ; 115f4d - db 7 - dsprite 0, 0, 0, 0, $67, $01 - dsprite 1, 0, 0, 0, $68, $01 - dsprite 2, 0, 0, 0, $70, $00 - dsprite 2, 0, 1, 0, $69, $00 - dsprite 2, 0, 2, 0, $6a, $00 - dsprite 3, 0, 1, 0, $6b, $00 - dsprite 3, 0, 2, 0, $6c, $00 - -Unknown_115f6a: ; 115f6a - db 7 - dsprite 0, 0, 0, 0, $67, $01 - dsprite 1, 0, 0, 0, $68, $01 - dsprite 2, 0, 0, 0, $71, $00 - dsprite 2, 0, 1, 0, $69, $00 - dsprite 2, 0, 2, 0, $6a, $00 - dsprite 3, 0, 1, 0, $6b, $00 - dsprite 3, 0, 2, 0, $6c, $00 - -Unknown_115f87: ; 115f87 - db 5 - dsprite 0, 0, 1, 0, $72, $00 - dsprite 1, 0, 0, 0, $60, $01 - dsprite 1, 0, 1, 0, $61, $01 - dsprite 2, 0, 0, 0, $62, $01 - dsprite 2, 0, 1, 0, $63, $01 - -Unknown_115f9c: ; 115f9c - db 5 - dsprite 0, 0, 1, 0, $73, $00 - dsprite 1, 0, 0, 0, $60, $01 - dsprite 1, 0, 1, 0, $61, $01 - dsprite 2, 0, 0, 0, $62, $01 - dsprite 2, 0, 1, 0, $63, $01 - -Unknown_115fb1: ; 115fb1 - db 5 - dsprite 0, 1, 1, 0, $64, $60 - dsprite 1, 0, 0, 0, $60, $01 - dsprite 1, 0, 1, 0, $61, $01 - dsprite 2, 0, 0, 0, $62, $01 - dsprite 2, 0, 1, 0, $63, $01 - -Unknown_115fc6: ; 115fc6 - db 5 - dsprite 0, 1, 1, 0, $65, $60 - dsprite 1, 0, 0, 0, $60, $01 - dsprite 1, 0, 1, 0, $61, $01 - dsprite 2, 0, 0, 0, $62, $01 - dsprite 2, 0, 1, 0, $63, $01 - -Unknown_115fdb: ; 115fdb - db 5 - dsprite 0, 1, 1, 0, $66, $60 - dsprite 1, 0, 0, 0, $60, $01 - dsprite 1, 0, 1, 0, $61, $01 - dsprite 2, 0, 0, 0, $62, $01 - dsprite 2, 0, 1, 0, $63, $01 - -Unknown_115ff0: ; 115ff0 - db 5 - dsprite 0, 1, 1, 0, $72, $60 - dsprite 1, 0, 0, 0, $60, $01 - dsprite 1, 0, 1, 0, $61, $01 - dsprite 2, 0, 0, 0, $62, $01 - dsprite 2, 0, 1, 0, $63, $01 - -Unknown_116005: ; 116005 - db 5 - dsprite 0, 1, 1, 0, $73, $60 - dsprite 1, 0, 0, 0, $60, $01 - dsprite 1, 0, 1, 0, $61, $01 - dsprite 2, 0, 0, 0, $62, $01 - dsprite 2, 0, 1, 0, $63, $01 -; 11601a - -GFX_11601a:: ; 11601a -INCBIN "gfx/unknown/11601a.2bpp" - - -Function11615a: ; 11615a - xor a - ld [wc30d], a - ld [$c319], a - ld [wc310], a - ld [wc311], a - ld [wc312], a - ld [wc313], a - ld [wc314], a - ld [wc314 + 1], a - ld [wc314 + 4], a - ld [wc3f6], a - ld [wc3f8], a - ld [wc3f2], a - ld [wc3f4], a - ld a, $24 - ld [wc3f5], a - ld a, $7 - ld [wc3f7], a - ld a, $b0 - ld [wc30e], a - ld [wc3f1], a - ld a, $48 - ld [wc30f], a - ld [wc3f3], a - ret - -; 11619d - -Function11619d: ; 11619d - ld a, [wc30d] - and a - ret z - ld a, [$c319] - cp $2 - jr c, .asm_1161b4 - ld a, $a0 - ld hl, Sprites - ld bc, $0064 - call ByteFill - -.asm_1161b4 - call Function1161b8 - ret - -; 1161b8 - -Function1161b8: ; 1161b8 - ld a, [$c319] - ld e, a - ld d, 0 - ld hl, .Jumptable - add hl, de - add hl, de - ld a, [hli] - ld h, [hl] - ld l, a - jp hl - -; 1161c7 - -.Jumptable: ; 1161c7 - dw Function1161d5 - dw Function116294 - dw Function1162cb - dw Function1162f2 - dw Function1163c0 - dw Function11636e - dw Function116441 -; 1161d5 - -Function1161d5: ; 1161d5 - ld a, [rSVBK] - push af - - ld a, $6 - ld [rSVBK], a - - ld hl, Unknown_117356 - ld de, wDecompressScratch - ld bc, $0300 - call CopyBytes - - di - -.wait_for_vblank -; Wait until a vblank would occur had interrupts not just been disabled. - ld a, [rLY] - cp $91 - jr nz, .wait_for_vblank - - ld a, $d0 - ld [rHDMA1], a - ld a, $0 - ld [rHDMA2], a - ld a, $1c - ld [rHDMA3], a - xor a - ld [rHDMA4], a - ld a, $8 - ld [rHDMA5], a - - ld a, $d0 - ld [rHDMA1], a - ld a, $80 - ld [rHDMA2], a - ld a, $1c - ld [rHDMA3], a - ld a, $80 - ld [rHDMA4], a - ld a, $8 - ld [rHDMA5], a - - ld a, $d1 - ld [rHDMA1], a - ld a, $0 - ld [rHDMA2], a - ld a, $1d - ld [rHDMA3], a - xor a - ld [rHDMA4], a - ld a, $8 - ld [rHDMA5], a - - ld a, $1 - ld [rVBK], a - - ld a, $d1 - ld [rHDMA1], a - ld a, $80 - ld [rHDMA2], a - ld a, $1c - ld [rHDMA3], a - xor a - ld [rHDMA4], a - ld a, $8 - ld [rHDMA5], a - - ld a, $d2 - ld [rHDMA1], a - ld a, $0 - ld [rHDMA2], a - ld a, $1c - ld [rHDMA3], a - ld a, $80 - ld [rHDMA4], a - ld a, $8 - ld [rHDMA5], a - - ld a, $d2 - ld [rHDMA1], a - ld a, $80 - ld [rHDMA2], a - ld a, $1d - ld [rHDMA3], a - xor a - ld [rHDMA4], a - ld a, $8 - ld [rHDMA5], a - - xor a - ld [rVBK], a - - ei - - pop af - ld [rSVBK], a - - callba ReloadMapPart - ld a, $8 - ld [MusicFade], a - ld de, MUSIC_MOBILE_ADAPTER - ld a, e - ld [MusicFadeID], a - ld a, d - ld [MusicFadeID + 1], a - ld a, [$c319] - inc a - ld [$c319], a - ret - -; 11628c - -MenuDataHeader_11628c: ; 11628c - db $40 ; flags - db 6, 0 ; start coords - db 17, 19 ; end coords - dw NULL - db 0 ; default option -; 116294 - -Function116294: ; 116294 - callba Function170d02 - ld a, [$c319] - inc a - ld [$c319], a - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - ld hl, UnknBGPals + 8 * 6 - ld de, $c320 - ld bc, 2 palettes - call CopyBytes - ld hl, Palette_11734e - ld de, UnknBGPals + 8 * 7 - ld bc, 1 palettes - call CopyBytes - call SetPalettes - pop af - ld [rSVBK], a - ld a, $30 - ld [hWY], a - ret - -; 1162cb - -Function1162cb: ; 1162cb - callba Function170cc6 - ld a, [$c319] - inc a - ld [$c319], a - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - ld hl, Palette_11730e - ld de, UnknOBPals + 2 palettes - ld bc, 6 palettes - call CopyBytes - call SetPalettes - pop af - ld [rSVBK], a - ret - -; 1162f2 - -Function1162f2: ; 1162f2 - call Function11659d - call Function116758 - call Function1167a6 - ld a, [wc310] - cp EGG - ret z - sla a - ld c, a - ld b, 0 - ld hl, Unknown_1168c5 - add hl, bc - ld a, [hli] - ld e, a - ld a, [hl] - ld d, a - push de - pop hl - ld a, [wc30e] - ld c, a - ld a, [wc30f] - ld b, a - ld a, [wc314 + 4] - ld e, a - ld a, [hli] - sub e - ld de, Sprites + $24 -.asm_116321 - 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_116321 - call Function116468 - ld a, [wc3f5] - sla a - ld c, a - ld b, 0 - ld hl, Unknown_1168c5 - add hl, bc - ld a, [hli] - ld e, a - ld a, [hl] - ld d, a - push de - pop hl - ld a, [wc3f1] - ld c, a - ld a, [wc3f3] - ld b, a - ld a, [wc3f8] - ld e, a - ld a, [hli] - sub e - ld de, Sprites -.asm_11635a - 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_11635a - ret - -; 11636e - -Function11636e: ; 11636e - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - ld hl, BGPals - ld de, UnknBGPals - ld bc, $0040 - call CopyBytes - pop af - ld [rSVBK], a - call SetPalettes - ld a, [rSVBK] - push af - ld a, $1 - ld [rSVBK], a - ld a, $a0 - ld hl, Sprites - ld bc, 16 * 4 - call ByteFill - ld a, $90 - ld [hWY], a - call UpdateSprites - pop af - ld [rSVBK], a - callba ReloadMapPart - ld a, $8 - ld [MusicFade], a - ld a, [wMapMusic] - ld [MusicFadeID], a - xor a - ld [MusicFadeID + 1], a - xor a - ld [$c319], a - ld [wc30d], a - ret - -; 1163c0 - -Function1163c0: ; 1163c0 - ld a, [rSVBK] - push af - ld a, $1 - ld [rSVBK], a - ld a, $a0 - ld hl, Sprites - ld bc, 16 * 4 - call ByteFill - call DelayFrame - callba Function14146 - ld b, SCGB_MAPPALS - call GetSGBLayout - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - ld hl, $c320 - ld de, wd030 - ld bc, $0010 - call CopyBytes - pop af - ld [rSVBK], a - call SetPalettes - call DelayFrame - ld a, $90 - ld [hWY], a - call UpdateSprites - callba Function14157 - pop af - ld [rSVBK], a - callba ReloadMapPart - ld a, [wLinkMode] - cp $4 - jr z, .asm_11642a - ld a, $8 - ld [MusicFade], a - ld a, [wMapMusic] - ld [MusicFadeID], a - xor a - ld [MusicFadeID + 1], a - jr .asm_116439 - -.asm_11642a - ld a, $8 - ld [MusicFade], a - ld a, $0 - ld [MusicFadeID], a - ld a, $0 - ld [MusicFadeID + 1], a - -.asm_116439 - xor a - ld [$c319], a - ld [wc30d], a - ret - -; 116441 - -Function116441: ; 116441 - callba Function17d405 - ld a, $90 - ld [hWY], a - callba ReloadMapPart - ld a, $8 - ld [MusicFade], a - ld a, [wMapMusic] - ld [MusicFadeID], a - xor a - ld [MusicFadeID + 1], a - xor a - ld [$c319], a - ld [wc30d], a - ret - -; 116468 - -Function116468: ; 116468 - call Function116567 - ld a, [wc314] - cp $d - jr nz, .asm_1164a8 - ld hl, wc30e - ld a, [hl] - cp $50 - jr nc, .asm_116484 - ld a, $50 - sub [hl] - add $50 - ld [wc3f1], a - jr .asm_11648d - -.asm_116484 - sub $50 - ld c, a - ld a, $50 - sub c - ld [wc3f1], a - -.asm_11648d - ld hl, wc30f - ld a, [hl] - cp $60 - jr nc, .asm_11649e - ld a, $60 - sub [hl] - add $60 - ld [wc3f3], a - ret - -.asm_11649e - sub $60 - ld c, a - ld a, $60 - sub c - ld [wc3f3], a - ret - -.asm_1164a8 - ld hl, wc30e - ld a, $b0 - cp [hl] - jr nc, .asm_1164b8 - ld a, [wc3f1] - and a - jr z, .asm_11650b - jr .asm_1164f2 - -.asm_1164b8 - ld a, [wc3f1] - sub [hl] - jr nc, .asm_1164c1 - xor $ff - inc a - -.asm_1164c1 - ld b, a - ld c, $0 - ld a, $5 -.asm_1164c6 - srl b - rr c - dec a - jr nz, .asm_1164c6 - ld a, c - ld [wc3fa], a - ld a, b - ld [wc3f9], a - ld a, [wc3f1] - sub [hl] - jr c, .asm_1164f2 - ld c, $0 - ld a, [wc3fa] - xor $ff - add $1 - rl c - ld [wc3fa], a - ld a, [wc3f9] - xor $ff - add c - ld [wc3f9], a - -.asm_1164f2 - ld a, [wc3f2] - ld l, a - ld a, [wc3f1] - ld h, a - ld a, [wc3fa] - ld e, a - ld a, [wc3f9] - ld d, a - add hl, de - ld a, l - ld [wc3f2], a - ld a, h - ld [wc3f1], a - -.asm_11650b - ld hl, wc30f - ld a, $b0 - cp [hl] - jr c, .asm_11654d - ld a, [wc3f3] - sub [hl] - jr nc, .asm_11651c - xor $ff - inc a - -.asm_11651c - ld b, a - ld c, $0 - ld a, $5 -.asm_116521 - srl b - rr c - dec a - jr nz, .asm_116521 - ld a, c - ld [wc3fc], a - ld a, b - ld [wc3fb], a - ld a, [wc3f3] - sub [hl] - jr c, .asm_11654d - ld c, $0 - ld a, [wc3fc] - xor $ff - add $1 - rl c - ld [wc3fc], a - ld a, [wc3fb] - xor $ff - add c - ld [wc3fb], a - -.asm_11654d - ld a, [wc3f4] - ld l, a - ld a, [wc3f3] - ld h, a - ld a, [wc3fc] - ld e, a - ld a, [wc3fb] - ld d, a - add hl, de - ld a, l - ld [wc3f4], a - ld a, h - ld [wc3f3], a - ret diff --git a/misc/mobile_46.asm b/misc/mobile_46.asm deleted file mode 100755 index 48fed0f33..000000000 --- a/misc/mobile_46.asm +++ /dev/null @@ -1,7986 +0,0 @@ -SECTION "bank46", ROMX - -Function118000: ; 118000 - ld a, $1 - ld [wcd38], a - jr asm_11800b - -Function118007: ; 118007 - xor a - ld [wcd38], a - -asm_11800b - call BattleTowerRoomMenu_InitRAM - ld a, $18 - ld [wcd33], a - ld a, $19 - ld [wcd34], a - ld a, $4 - ld [wc3f0], a - ld a, [rSVBK] - push af - ld a, $3 - ld [rSVBK], a -.loop - call JoyTextDelay - call Function118473 - ld a, [wcf66] - cp $1b - jr c, .skip - ld a, [wcd34] - ld [wcf66], a - -.skip - call Function1184a5 - call BattleTowerRoomMenu_WriteMessage - callba Function115dd3 - callba Function11619d - call DelayFrame - ld a, [wcf66] - ld hl, wcd33 - cp [hl] - jr nz, .loop - pop af - ld [rSVBK], a - call BattleTowerRoomMenu_Cleanup - call ReturnToMapFromSubmenu -BattleTowerRoomMenu_DoNothing: ; 11805e (46:405e) - ret -; 11805f - -Function11805f: ; 11805f - ld a, $1 - ld [wcd38], a - call BattleTowerRoomMenu_InitRAM - ld a, $18 - ld [wcd33], a - ld a, $19 - ld [wcd34], a - ld a, $4 - ld [wc3f0], a - ld a, [rSVBK] - push af - ld a, $3 - ld [rSVBK], a -.asm_11807d - call JoyTextDelay - call Function118473 - ld a, [wcf66] - cp $1b - jr c, .asm_118090 - ld a, [wcd34] - ld [wcf66], a - -.asm_118090 - call Function11857c - call BattleTowerRoomMenu_WriteMessage - callba Function115dd3 - callba Function11619d - call DelayFrame - ld a, [wcf66] - ld hl, wcd33 - cp [hl] - jr nz, .asm_11807d - pop af - ld [rSVBK], a - call BattleTowerRoomMenu_Cleanup - call ReturnToMapFromSubmenu - ret -; 1180b8 - -Function1180b8: ; 1180b8 - call BattleTowerRoomMenu_InitRAM - ld a, $22 - ld [wcd33], a - ld a, $23 - ld [wcd34], a - ld a, $4 - ld [wc3f0], a - ld a, [rSVBK] - push af - ld a, $3 - ld [rSVBK], a -.asm_1180d1 - call JoyTextDelay - call Function118473 - ld a, [wcf66] - cp $28 - jr c, .asm_1180e4 - ld a, [wcd34] - ld [wcf66], a - -.asm_1180e4 - ld a, [wcf66] - cp $10 - jr c, .asm_1180f2 - cp $16 - jr nc, .asm_1180f2 - call Function11884c - -.asm_1180f2 - call Function1184ec - call BattleTowerRoomMenu_WriteMessage - callba Function115dd3 - callba Function11619d - call DelayFrame - ld a, [wcf66] - ld hl, wcd33 - cp [hl] - jr nz, .asm_1180d1 - pop af - ld [rSVBK], a - call BattleTowerRoomMenu_Cleanup - call ReturnToMapFromSubmenu - ret -; 11811a - -Function11811a: ; 11811a - ld a, 1 - ld [wcd38], a - jr Function118125 - -_BattleTowerRoomMenu: ; 118121 - xor a - ld [wcd38], a -Function118125: ; 118125 - call BattleTowerRoomMenu_InitRAM - ld a, $3 - ld [wcd33], a - ld a, $d - ld [wcd34], a - ld a, $4 - ld [wc3f0], a - ld a, [rSVBK] - push af - ld a, $3 - ld [rSVBK], a -.loop - call JoyTextDelay - call Function118473 - ld a, [wcf66] - cp $f - jr c, .skip - ld a, [wcd34] - ld [wcf66], a -.skip - call BattleTowerRoomMenu_Jumptable - call BattleTowerRoomMenu_WriteMessage - callba Function115dd3 - callba Function11619d - call DelayFrame - ld a, [wcf66] - ld hl, wcd33 - cp [hl] - jr nz, .loop - xor a - ld [w3_d000], a - pop af - ld [rSVBK], a - call BattleTowerRoomMenu_Cleanup - call Function118180 - call ReturnToMapFromSubmenu - ret -; 118180 - -Function118180: ; 118180 - ld a, [ScriptVar] - and a - ret nz - ld a, [wcd38] - and a - ret z - ld a, $5 - call GetSRAMBank - ld hl, wcd69 - ld de, $a89c - ld bc, $0016 - call CopyBytes - - ld a, [rSVBK] - push af - ld a, $3 - ld [rSVBK], a - - ld de, w3_d202 - ld c, $96 - callba CheckStringForErrors_IgnoreTerminator - jr c, .return_d3 - - ld de, w3_d202 - lb bc, 1, $96 - callba CheckStringContainsLessThanBNextCharacters - jr c, .return_d3 - - ld hl, w3_d202 - ld de, $a8b2 - ld bc, $0096 - call CopyBytes -.reset_banks - pop af - ld [rSVBK], a - call CloseSRAM - ret - -.return_d3 - ld a, $d3 - ld [wc300], a - ld [ScriptVar], a - jr .reset_banks -; 1181da - -Function1181da: ; 1181da - call BattleTowerRoomMenu_InitRAM - ld a, $2 - ld [wcd38], a - ld a, $21 - ld [wcd33], a - ld a, $22 - ld [wcd34], a - ld a, $4 - ld [wc3f0], a - ld a, [rSVBK] - push af - ld a, $3 - ld [rSVBK], a -.asm_1181f8 - call JoyTextDelay - call Function118473 - ld a, [wcf66] - cp $28 - jr c, .asm_11820b - ld a, [wcd34] - ld [wcf66], a - -.asm_11820b - call Function1185c3 - call BattleTowerRoomMenu_WriteMessage - callba Function115dd3 - callba Function11619d - call DelayFrame - ld a, [wcf66] - ld hl, wcd33 - cp [hl] - jr nz, .asm_1181f8 - pop af - ld [rSVBK], a - call BattleTowerRoomMenu_Cleanup - call ReturnToMapFromSubmenu - ret -; 118233 - -Function118233: ; 118233 - call BattleTowerRoomMenu_InitRAM - ld a, $1b - ld [wcd33], a - ld a, $1c - ld [wcd34], a - ld a, $6 - ld [wc3f0], a - ld a, [rSVBK] - push af - ld a, $3 - ld [rSVBK], a -.asm_11824c - call JoyTextDelay - call Function118473 - ld a, [wcf66] - cp $1e - jr c, .asm_11825f - ld a, [wcd34] - ld [wcf66], a - -.asm_11825f - call Function118624 - call BattleTowerRoomMenu_WriteMessage - callba Function115dd3 - callba Function11619d - call DelayFrame - ld a, [wcf66] - ld hl, wcd33 - cp [hl] - jr nz, .asm_11824c - pop af - ld [rSVBK], a - call BattleTowerRoomMenu_Cleanup - ret -; 118284 - -Function118284: ; 118284 - call BattleTowerRoomMenu_InitRAM - ld a, $19 - ld [wcd33], a - ld a, $1e - ld [wcd34], a - ld a, $5 - ld [wc3f0], a - ld a, [rSVBK] - push af - ld a, $3 - ld [rSVBK], a -.asm_11829d - call JoyTextDelay - call Function118473 - ld a, [wcf66] - cp $20 - jr c, .asm_1182b0 - ld a, [wcd34] - ld [wcf66], a -.asm_1182b0 - call Function1186f5 - call BattleTowerRoomMenu_WriteMessage - callba Function115dd3 - callba Function11619d - call DelayFrame - ld a, [wcf66] - ld hl, wcd33 - cp [hl] - jr nz, .asm_11829d - pop af - ld [rSVBK], a - call BattleTowerRoomMenu_Cleanup - ret -; 1182d5 (46:42d5) - - -Function1182d5: ; 1182d5 - call BattleTowerRoomMenu_InitRAM - ld a, $18 - ld [wcd33], a - ld a, $19 - ld [wcd34], a - ld a, $4 - ld [wc3f0], a - ld a, [rSVBK] - push af - ld a, $3 - ld [rSVBK], a -.asm_1182ee - call JoyTextDelay - call Function118473 - ld a, [wcf66] - cp $1b - jr c, .asm_118301 - ld a, [wcd34] - ld [wcf66], a - -.asm_118301 - call Function118746 - call BattleTowerRoomMenu_WriteMessage - callba Function115dd3 - callba Function11619d - call DelayFrame - ld a, [wcf66] - ld hl, wcd33 - cp [hl] - jr nz, .asm_1182ee - pop af - ld [rSVBK], a - call BattleTowerRoomMenu_Cleanup - call ReturnToMapFromSubmenu - ret -; 118329 - -Function118329: ; 118329 - call BattleTowerRoomMenu_InitRAM - ld a, $15 - ld [wcd33], a - ld a, $16 - ld [wcd34], a - ld a, $6 - ld [wc3f0], a - ld a, [rSVBK] - push af - ld a, $3 - ld [rSVBK], a -.asm_118342 - call JoyTextDelay - call Function118473 - ld a, [wcf66] - cp $18 - jr c, .asm_118355 - ld a, [wcd34] - ld [wcf66], a - -.asm_118355 - call Function118671 - call BattleTowerRoomMenu_WriteMessage - callba Function115dd3 - callba Function11619d - call DelayFrame - ld a, [wcf66] - ld hl, wcd33 - cp [hl] - jr nz, .asm_118342 - pop af - ld [rSVBK], a - call BattleTowerRoomMenu_Cleanup - ret -; 11837a - -Function11837a: ; 11837a - call BattleTowerRoomMenu_InitRAM - ld a, $16 - ld [wcd33], a - ld a, $17 - ld [wcd34], a - ld a, $6 - ld [wc3f0], a - ld a, [rSVBK] - push af - ld a, $3 - ld [rSVBK], a -.asm_118393 - call JoyTextDelay - call Function118473 - ld a, [wcf66] - cp $19 - jr c, .asm_1183a6 - ld a, [wcd34] - ld [wcf66], a - -.asm_1183a6 - call Function1186b2 - call BattleTowerRoomMenu_WriteMessage - callba Function115dd3 - callba Function11619d - call DelayFrame - ld a, [wcf66] - ld hl, wcd33 - cp [hl] - jr nz, .asm_118393 - pop af - ld [rSVBK], a - call BattleTowerRoomMenu_Cleanup - ret -; 1183cb - -BattleTowerRoomMenu_InitRAM: ; 1183cb - di - ld a, [rIE] - ld [wcd32], a - call DoubleSpeed - xor a - ld [rIF], a - ld [wc300], a - ld [wc301], a - ld [wc302], a - ld [wcd80], a - ld [wcd65], a - ld [wcd66], a - ld [wcd67], a - ld [wcd68], a - ld [$c31a], a - ld [wcd89], a - ld [wcd8a], a - ld [wcd8b], a - ld [wc3ec], a - ld [wc3ed], a - ld [wc3ee], a - ld [wc3ef], a - ld hl, VramState - ld a, [hl] - ld [wcd7f], a - set 1, [hl] - ld a, $f - ld [rIE], a - ld a, $1 - ld [hMobileReceive], a - ld [hMobile], a - ei - callba MobileFunc_106462 - callba Function106464 - callba Function115d99 - callba Function11615a - ld a, $5 - call GetSRAMBank - xor a - ld [$bfff], a - call CloseSRAM - ret -; 118440 - -Function118440: ; 118440 - push af - ld a, $5 - call GetSRAMBank - ld a, [$bfff] - inc a - ld [$bfff], a - call CloseSRAM - pop af - ret -; 118452 - -BattleTowerRoomMenu_Cleanup: ; 118452 - di - xor a - ld [hMobileReceive], a - ld [hMobile], a - ld [hVBlank], a - call NormalSpeed - xor a - ld [rIF], a - ld a, [wcd32] - ld [rIE], a - ei - ld a, [wcd7f] - ld [VramState], a - ld a, [wc300] - ld [ScriptVar], a - ret -; 118473 - -Function118473: ; 118473 - ld a, [wcd65] - and a - ret z - ld a, [wcd66] - inc a - ld [wcd66], a - cp 60 - ret nz - xor a - ld [wcd66], a - ld a, [wcd67] - inc a - ld [wcd67], a - cp 60 - ret nz - ld a, [wcd68] - inc a - ld [wcd68], a - cp 99 - jr z, .ninety_nine - xor a - ld [wcd67], a - ret - -.ninety_nine - xor a - ld [wcd65], a - ret -; 1184a5 - -Function1184a5: ; 1184a5 - jumptable .Jumptable, wcf66 -; 1184b4 - -.Jumptable: ; 1184b4 - dw Function11886e - dw Function118880 - dw Function11878d - dw Function1188b0 - dw Function11878d - dw Function1188b8 - dw Function11878d - dw Function1188c0 - dw Function11878d - dw Function1188c8 - dw Function11878d - dw Function118903 - dw Function118a8f - dw Function11878d - dw Function118d80 - dw Function118d9b - dw Function11878d - dw Function118ded - dw Function118e6d - dw Function11878d - dw Function11984e - dw Function118e76 - dw Function118e7e - dw Function11878d - dw BattleTowerRoomMenu_DoNothing - dw Function118e76 - dw BattleTowerRoomMenu_CallRoomMenu2 - dw Function118e76 -; 1184ec - -Function1184ec: ; 1184ec - jumptable .Jumptable, wcf66 -; 1184fb - -.Jumptable: ; 1184fb - dw Function11886e - dw Function118880 - dw Function11878d - dw Function1188b0 - dw Function11878d - dw Function1188b8 - dw Function11878d - dw Function1188c0 - dw Function11878d - dw Function1188c8 - dw Function11878d - dw Function118903 - dw Function119954 - dw Function11878d - dw Function119973 - dw Function11878d - dw Function119987 - dw Function11878d - dw Function1199b4 - dw Function1199ca - dw Function11878d - dw Function1199e2 - dw Function119b0d - dw Function11878d - dw Function119b6b - dw Function119b3b - dw Function11878d - dw Function119b52 - dw Function11878d - dw Function118e6d - dw Function11878d - dw Function118e76 - dw Function118e7e - dw Function11878d - dw BattleTowerRoomMenu_DoNothing - dw Function118e76 - dw BattleTowerRoomMenu_CallRoomMenu2 - dw Function119b45 - dw Function11878d - dw Function119ac9 - dw Function118e76 -; 11854d - -BattleTowerRoomMenu_Jumptable: ; 11854d - jumptable .Jumptable, wcf66 -; 11855c - -.Jumptable: ; 11855c - dw BattleTowerRoomMenu_PickLevelMessage - dw BattleTowerRoomMenu_PlacePickLevelMenu - dw BattleTowerRoomMenu_UpdatePickLevelMenu - dw BattleTowerRoomMenu_DoNothing - dw BattleTowerRoomMenu_PartyMonTopsThisLevelMessage - dw BattleTowerRoomMenu_WaitForMessage - dw BattleTowerRoomMenu_DelayRestartMenu - dw BattleTowerRoomMenu_QuitMessage - dw BattleTowerRoomMenu_PlaceYesNoMenu - dw BattleTowerRoomMenu_UpdateYesNoMenu - dw BattleTowerRoomMenu_UberRestrictionMessage - dw BattleTowerRoomMenu_WaitForMessage - dw BattleTowerRoomMenu_DelayRestartMenu - dw Function118e76 ; mobile - dw BattleTowerRoomMenu_CallRoomMenu2 ; mobile - dw Function118e76 ; mobile -; 11857c - -Function11857c: ; 11857c - jumptable .Jumptable, wcf66 -; 11858b - -.Jumptable: ; 11858b - dw Function11886e - dw Function118880 - dw Function11878d - dw Function1188b0 - dw Function11878d - dw Function1188b8 - dw Function11878d - dw Function1188c0 - dw Function11878d - dw Function1188c8 - dw Function11878d - dw Function118903 - dw Function118a7a - dw Function11878d - dw Function11891c - dw Function1198ee - dw Function1198f7 - dw Function11878d - dw Function119937 - dw Function118e6d - dw Function11878d - dw Function118e76 - dw Function118e7e - dw Function11878d - dw BattleTowerRoomMenu_DoNothing - dw Function118e76 - dw BattleTowerRoomMenu_CallRoomMenu2 - dw Function118e76 -; 1185c3 - -Function1185c3: ; 1185c3 - jumptable .Jumptable, wcf66 -; 1185d2 - -.Jumptable: ; 1185d2 - dw Function11886e - dw Function118880 - dw Function11878d - dw Function1188b0 - dw Function11878d - dw Function1188b8 - dw Function11878d - dw Function1188c0 - dw Function11878d - dw Function1188c8 - dw Function11878d - dw Function118903 - dw Function118aa4 - dw Function11878d - dw Function118e92 - dw Function11878d - dw Function118eb0 - dw Function118ec6 - dw Function118f0d - dw Function118f14 - dw Function118f5e - dw Function11878d - dw Function118fc0 - dw Function11878d - dw Function119054 - dw Function1190d0 - dw Function11878d - dw Function1190ec - dw Function118e6d - dw Function11878d - dw Function118e76 - dw Function118e7e - dw Function11878d - dw BattleTowerRoomMenu_DoNothing - dw Function118e76 - dw BattleTowerRoomMenu_CallRoomMenu2 - dw BattleTowerRoomMenu_QuitMessage - dw BattleTowerRoomMenu_PlaceYesNoMenu - dw BattleTowerRoomMenu_UpdateYesNoMenu - dw Function11914e - dw Function118e76 -; 118624 - -Function118624: ; 118624 - jumptable .Jumptable, wcf66 -; 118633 - -.Jumptable: ; 118633 - dw Function118866 - dw Function118880 - dw Function11878d - dw Function1188b0 - dw Function11878d - dw Function1188b8 - dw Function11878d - dw Function1188c0 - dw Function11878d - dw Function1188c8 - dw Function11878d - dw Function118903 - dw Function118aa4 - dw Function11878d - dw Function118e92 - dw Function11878d - dw Function11915d - dw Function118f68 - dw Function11878d - dw Function119009 - dw Function11878d - dw Function119054 - dw Function118e6d - dw Function11878d - dw Function118e76 - dw Function118e7e - dw Function11878d - dw BattleTowerRoomMenu_DoNothing - dw Function118e76 - dw BattleTowerRoomMenu_CallRoomMenu2 - dw Function118e76 -; 118671 - -Function118671: ; 118671 - jumptable .Jumptable, wcf66 -; 118680 - -.Jumptable: ; 118680 - dw Function118866 - dw Function118880 - dw Function11878d - dw Function1188b0 - dw Function11878d - dw Function1188b8 - dw Function11878d - dw Function1188c0 - dw Function11878d - dw Function1188c8 - dw Function11878d - dw Function118903 - dw Function119380 - dw Function119388 - dw Function1193a0 - dw Function11878d - dw Function118e6d - dw Function11878d - dw Function118e76 - dw Function118e7e - dw Function11878d - dw BattleTowerRoomMenu_DoNothing - dw Function118e76 - dw BattleTowerRoomMenu_CallRoomMenu2 - dw Function118e76 -; 1186b2 - -Function1186b2: ; 1186b2 - jumptable .Jumptable, wcf66 -; 1186c1 - -.Jumptable: ; 1186c1 - dw Function118866 - dw Function118880 - dw Function11878d - dw Function1188b0 - dw Function11878d - dw Function1188b8 - dw Function11878d - dw Function1188c0 - dw Function11878d - dw Function1188c8 - dw Function11878d - dw Function118903 - dw Function119380 - dw Function1193e3 - dw Function1193fb - dw Function11878d - dw Function119413 - dw Function118e6d - dw Function11878d - dw Function118e76 - dw Function118e7e - dw Function11878d - dw BattleTowerRoomMenu_DoNothing - dw Function118e76 - dw BattleTowerRoomMenu_CallRoomMenu2 - dw Function118e76 -; 1186f5 - -Function1186f5: ; 1186f5 (46:46f5) - jumptable .Jumptable, wcf66 -; 118704 (46:4704) - -.Jumptable: ; 118704 (46:4704) - dw Function11886a - dw Function118880 - dw Function11878d - dw Function1188b0 - dw Function11878d - dw Function1188b8 - dw Function11878d - dw Function1188c0 - dw Function11878d - dw Function1188c8 - dw Function11878d - dw Function118903 - dw Function118abc - dw Function11878d - dw Function119451 - dw Function1195f8 - dw Function119612 - dw Function119629 - dw Function119648 - dw Function11878d - dw Function118e6d - dw Function11878d - dw Function118e76 - dw Function118e7e - dw Function11878d - dw BattleTowerRoomMenu_DoNothing - dw Function11967d - dw Function119685 - dw Function119665 - dw Function11966d - dw Function118e76 - dw BattleTowerRoomMenu_CallRoomMenu2 - dw Function118e76 -; 118746 (46:4746) - -Function118746: ; 118746 - jumptable .Jumptable, wcf66 -; 118755 - -.Jumptable: ; 118755 - dw Function11886e - dw Function118880 - dw Function11878d - dw Function1188b0 - dw Function11878d - dw Function1188b8 - dw Function11878d - dw Function1188c0 - dw Function11878d - dw Function1188c8 - dw Function11878d - dw Function118903 - dw Function118ad0 - dw Function11878d - dw Function1196f2 - dw Function1197c9 - dw Function1197dc - dw Function11878d - dw Function118e6d - dw Function11878d - dw Function119800 - dw Function118e76 - dw Function118e7e - dw Function11878d - dw BattleTowerRoomMenu_DoNothing - dw Function118e76 - dw BattleTowerRoomMenu_CallRoomMenu2 - dw Function118e76 -; 11878d - -Function11878d: ; 11878d (46:478d) - ld a, [wc821] - bit 1, a - jr nz, .asm_1187af - bit 2, a - jr nz, .asm_1187d1 - bit 0, a - jr nz, .asm_1187aa - ld a, [wcd89] - and $1 - jr z, .asm_1187a7 - ld a, $3 - ld [rSVBK], a -.asm_1187a7 - jp BattleTowerRoomMenu_IncrementJumptable -.asm_1187aa - call Function118821 - ret c - ret -.asm_1187af - ld a, $0 - call Function3e32 - ld [wc300], a - ld a, l - ld [wc301], a - ld a, h - ld [wc302], a - ld a, $a - call Function3e32 - ld a, [wc3f0] - ld [$c319], a - ld a, [wcd34] - ld [wcf66], a - ret -.asm_1187d1 - ld hl, wcd89 - bit 0, [hl] - jr nz, .asm_118803 - set 0, [hl] - ld a, $6 - ld [rSVBK], a - ld de, w3_d000 - ld bc, $1000 - ld a, [hl] - sla a - jr c, .asm_1187f9 - sla a - jr c, .asm_1187fd - sla a - jr c, .asm_1187f5 - ld a, $24 - jr .asm_1187ff -.asm_1187f5 - ld a, $28 - jr .asm_1187ff -.asm_1187f9 - ld a, $2a - jr .asm_1187ff -.asm_1187fd - ld a, $2c -.asm_1187ff - call Function3e32 - ret -.asm_118803 - ld a, $d3 - -Function118805: ; 118805 (46:4805) - ld [wc300], a - xor a - ld [wc301], a - ld [wc302], a - ld a, $a - call Function3e32 - ld a, [wc3f0] - ld [$c319], a - ld a, [wcd34] - ld [wcf66], a - ret - -Function118821: ; 118821 (46:4821) - ld a, [$c319] - cp $3 - jr c, .asm_11884a - cp $4 - jr z, .asm_11884a - ld a, [hJoyDown] - cp $5 - jr nz, .asm_11884a - ld a, $a - call Function3e32 - ld a, $a - ld [wc300], a - ld a, [wc3f0] - ld [$c319], a - ld a, [wcd34] - ld [wcf66], a - scf - ret -.asm_11884a - and a - ret -; 11884c (46:484c) - -Function11884c: ; 11884c - ld a, [hJoyDown] - cp $5 - jr nz, .asm_118864 - ld a, $a - call Function3e32 - ld a, $a - ld [wc300], a - ld a, [wcd34] - ld [wcf66], a - scf - ret - -.asm_118864 - and a - ret -; 118866 - -Function118866: - ld a, 2 - jr asm_11886f - -Function11886a: ; 11886a (46:486a) - ld a, 1 - jr asm_11886f -; 11886e (46:486e) - -Function11886e: - xor a - -asm_11886f - ld [BGMapPalBuffer], a - ld a, $0 - ld [wcd3c], a - call BattleTowerRoomMenu_IncrementJumptable - ld a, [wcd33] - ld [wMobileInactivityTimerSeconds], a - -Function118880: ; 118880 (46:4880) - call BattleTowerRoomMenu2 - ret c - xor a - ld [wcf64], a - ld [wc807], a - ld de, wcd81 - ld hl, $46 - ld a, $2 - jp Function119e2b -; 118896 (46:4896) - -Function118896: ; 118896 - ld a, [wc821] - bit 1, a - jr nz, .asm_1188a5 - bit 2, a - jr nz, .asm_1188a5 - bit 0, a - jr z, .asm_1188aa - -.asm_1188a5 - ld a, $34 - jp Function119e2b - -.asm_1188aa - call BattleTowerRoomMenu_IncrementJumptable - jp BattleTowerRoomMenu_IncrementJumptable -; 1188b0 - -Function1188b0: ; 1188b0 (46:48b0) - ld de, $c346 - ld a, $c - jp Function119e2b - -Function1188b8: ; 1188b8 (46:48b8) - ld de, wc3ac - ld a, $e - jp Function119e2b - -Function1188c0: ; 1188c0 (46:48c0) - ld de, wc3cd - ld a, $10 - jp Function119e2b - -Function1188c8: ; 1188c8 (46:48c8) - ld a, $1 - ld [wcd65], a - call Function1188e7 - ld hl, $c708 -.asm_1188d3 - ld a, [de] - inc de - ld [hli], a - and a - jr nz, .asm_1188d3 - call Function119eb4 - call Function119ec2 - ld hl, $c708 - ld a, $6 - jp Function119e2b - -Function1188e7: ; 1188e7 (46:48e7) - ld de, $c346 - ld a, $5 - call GetSRAMBank - ld a, [$aa4a] - call CloseSRAM - and a - ret z - sla a - ld c, a -.asm_1188fa - ld a, [de] - inc de - and a - jr nz, .asm_1188fa - dec c - jr nz, .asm_1188fa - ret - -Function118903: ; 118903 (46:4903) - ld a, [wc3f0] - ld [$c319], a - ld c, $1 - callba Function115e18 - ld a, $8 - ld [wcd3c], a - call BattleTowerRoomMenu2 - jp BattleTowerRoomMenu_IncrementJumptable - - -Function11891c: ; 11891c - call Function118b42 - jp BattleTowerRoomMenu_IncrementJumptable - - -BattleTowerRoomMenu_PickLevelMessage: ; 118922 - ld a, [wcd38] - and a - jr nz, .asm_11892d - ld hl, Text_WhatLevelDoYouWantToChallenge - jr .asm_118930 - -.asm_11892d - ld hl, Text_CheckBattleRoomListByMaxLevel - -.asm_118930 - call BattleTowerRoomMenu_SetMessage - call BattleTowerRoomMenu_IncrementJumptable - -BattleTowerRoomMenu_PlacePickLevelMenu: - ld a, [$c31a] - and a - ret nz - ld hl, MenuDataHeader_119cf7 - call LoadMenuDataHeader - call MenuBox - call MenuBoxCoord2Tile - call ApplyTilemap - hlcoord 16, 8, AttrMap - ld a, $40 - or [hl] - ld [hl], a - call WaitBGMap2 - ld a, $1 - ld [wcd4f], a - ld a, $1 - ld [rSVBK], a - ld a, [StatusFlags] - bit 6, a ; Hall Of Fame - jr nz, .asm_11896b - ld hl, Strings_Ll0ToL40 ; Address to list of strings with the choosable levels - ld a, 5 ; 4 levels to choose from, including 'Cancel'-option - jr .asm_118970 - -.asm_11896b - ld hl, Strings_L10ToL100 ; Address to list of strings with the choosable levels - ld a, 11 ; 10 levels to choose from, including 'Cancel'-option - -.asm_118970 - ld [wcd4a], a - ld a, l - ld [wcd4b], a - ld a, h - ld [wcd4c], a - ld a, $3 - ld [rSVBK], a - call BattleTowerRoomMenu_IncrementJumptable - -BattleTowerRoomMenu_UpdatePickLevelMenu: - hlcoord 13, 8 - ld de, String_119d07 - call PlaceString - hlcoord 13, 10 - ld de, String_119d07 - call PlaceString - ld a, [wcd4b] - ld l, a - ld a, [wcd4c] - ld h, a - ld d, $0 - ld a, [wcd4f] - dec a - rlca - rlca - rlca - ld e, a - add hl, de - ld a, l - ld e, a - ld a, h - ld d, a - ld a, [rSVBK] - push af - ld a, $1 - ld [rSVBK], a - ld bc, StringBuffer3 -.asm_1189b5 - ld a, [hli] - cp $50 - jr z, .asm_1189c4 - cp $7f - jr z, .asm_1189c2 - ld [bc], a - inc bc - jr .asm_1189b5 - -.asm_1189c2 - ld a, $50 - -.asm_1189c4 - ld [bc], a - pop af - ld [rSVBK], a - hlcoord 13, 9 - call PlaceString - ld hl, hJoyPressed - ld a, [hl] - and B_BUTTON - jr nz, .b_button - ld a, [hl] - and A_BUTTON - jr nz, .a_button - ld a, [hl] - and D_DOWN - jr nz, .d_down - ld a, [hl] - and D_UP - jr nz, .d_up -.asm_1189e5 - ret - -.d_down - ld hl, wcd4f - dec [hl] - jr nz, .asm_1189e5 - ld a, [wcd4a] - ld [hl], a - jr .asm_1189e5 - -.d_up - ld a, [wcd4a] - ld hl, wcd4f - inc [hl] - cp [hl] - jr nc, .asm_1189e5 - ld a, $1 - ld [hl], a - jr .asm_1189e5 - -.a_button - call PlayClickSFX - ld a, [wcd4f] - ld hl, wcd4a - cp [hl] - jr z, .asm_118a3c - dec a - and $fe - srl a - ld [wcf65], a - ld a, [rSVBK] - push af - ld a, $1 - ld [rSVBK], a - call CloseWindow - pop af - ld [rSVBK], a - ld a, [wcd38] - and a - jr nz, .asm_118a30 - call BattleTower_LevelCheck - ret c - call BattleTower_UbersCheck - ret c - -.asm_118a30 - ld a, [wcd4f] - ld [w3_d800], a - jp BattleTowerRoomMenu_IncrementJumptable - -.b_button - call PlayClickSFX - -.asm_118a3c - ld a, [rSVBK] - push af - ld a, $1 - ld [rSVBK], a - call CloseWindow - pop af - ld [rSVBK], a - ld a, $7 - ld [wcf66], a - ld a, $0 - ld [wMobileInactivityTimerFrames], a - ret - - - -Function118a54: ; 118a54 - ld a, [wcd55] - ld l, a - ld a, [wcd56] - ld h, a - ld de, wc3ec - ld bc, $0004 - jp Function118ae4 -; 118a65 - -Function118a65: ; 118a65 - ld hl, BattleDownloadURL - ld de, wcc60 - ld bc, $80 - call CopyBytes - ld de, w3_d000 - ld bc, $1000 - jp Function118b10 -; 118a7a - -Function118a7a: ; 118a7a - ld hl, BattleDownloadURL - ld de, wcc60 - ld bc, $80 - call CopyBytes - ld de, w3_d000 - ld bc, $1000 - jp Function118b10 -; 118a8f - -Function118a8f: ; 118a8f - ld hl, ExchangeDownloadURL - ld de, wcc60 - ld bc, $80 - call CopyBytes - ld de, w3_d000 - ld bc, $1000 - jp Function118b10 -; 118aa4 - -Function118aa4: ; 118aa4 - ld hl, NewsDownloadURL - ld de, wcc60 - ld bc, $80 - call CopyBytes - ld a, $5 - ld [rSVBK], a - ld de, w3_d100 - ld bc, $e00 - jr Function118b10 -; 118abc - -Function118abc: ; 118abc (46:4abc) - ld hl, MenuDownloadURL - ld de, wcc60 - ld bc, $80 - call CopyBytes - ld de, w3_d000 - ld bc, $1000 - jr Function118b10 -; 118ad0 (46:4ad0) - -Function118ad0: - ld hl, IndexDownloadURL - ld de, wcc60 - ld bc, $80 - call CopyBytes - ld de, w3_d000 - ld bc, $1000 - jr Function118b10 - -Function118ae4: - push bc - push de - push hl - ld a, $8 - ld [wcd3c], a - call BattleTowerRoomMenu2 - pop hl - ld c, $0 - ld de, wcc60 -.asm_118af5 - ld a, [hli] - ld [de], a - inc de - and a - jr z, .asm_118b06 - inc c - ld a, c - cp $a6 - jr c, .asm_118af5 - ld a, $da - jp Function118805 - -.asm_118b06 - call Function118b24 - pop de - pop bc - ld a, $2a - jp Function119e2b -; 118b10 - -Function118b10: - push de - push bc - ld a, $8 - ld [wcd3c], a - call BattleTowerRoomMenu2 - call Function118b24 - pop bc - pop de - ld a, $2a - jp Function119e2b - -Function118b24: ; 118b24 (46:4b24) - ld hl, $c346 - ld a, $8 - ld [hli], a - ld a, $c7 - ld [hli], a - ld a, $60 - ld [hli], a - ld a, $cc - ld [hli], a - call Function119eb4 - call Function119ec2 - ld a, $80 - ld [wcd89], a - ld hl, $c346 - ret -; 118b42 (46:4b42) - -Function118b42: ; 118b42 - ld hl, wd002 - ld a, l - ld [wcd51], a - ld a, h - ld [wcd52], a - call Function118b8c - ld a, l - ld [wcd55], a - ld [wcd59], a - ld a, h - ld [wcd56], a - ld [wcd5a], a - call Function118b8c - ld a, l - ld [wcd53], a - ld [wcd5d], a - ld a, h - ld [wcd54], a - ld [wcd5e], a - call Function118b8c - ld a, l - ld [wcd57], a - ld [wcd5b], a - ld a, h - ld [wcd58], a - ld [wcd5c], a - call Function118b8c - ld a, l - ld [wcd5f], a - ld a, h - ld [wcd60], a - ret -; 118b8c - -Function118b8c: ; 118b8c -.asm_118b8c - call Function118b9a - ret nc - ld a, [hli] - cp $d - jr nz, .asm_118b8c - dec hl - xor a - ld [hli], a - ld [hli], a - ret -; 118b9a - -Function118b9a: ; 118b9a - ld a, h - cp $e0 - ret c - ld a, $d3 - call Function118805 - and a - ret -; 118ba5 - - - charmap " ", $20 ; revert to ascii - -ExchangeDownloadURL: ; 0x118ba5 - db "http://gameboy.datacenter.ne.jp/cgb/download?name=/01/CGB-BXTJ/exchange/index.txt", 0 - -BattleDownloadURL: ; 0x118bf7 - db "http://gameboy.datacenter.ne.jp/cgb/download?name=/01/CGB-BXTJ/battle/index.txt", 0 - -NewsDownloadURL: ; 0x118c47 - db "http://gameboy.datacenter.ne.jp/cgb/download?name=/01/CGB-BXTJ/news/index.txt", 0 - -MenuDownloadURL: ; 0x118c95 - db "http://gameboy.datacenter.ne.jp/cgb/download?name=/01/CGB-BXTJ/POKESTA/menu.cgb", 0 - -IndexDownloadURL: ; 0x118ce5 - db "http://gameboy.datacenter.ne.jp/cgb/download?name=/01/CGB-BXTJ/tamago/index.txt", 0 - - -Function118d35: ; 118d35 -; unreferenced - ld hl, $d200 - ld a, [wcd38] - and a - jr nz, .asm_118d6e - ld a, [hli] - cp $94 - jr nz, .asm_118d7b - ld a, [hl] - cp $5 - jr nz, .asm_118d7b - ld a, [wcd4f] - sla a - ld b, a - sla a - sla a - add b - ld b, a - ld a, $5 - call GetSRAMBank - ld a, b - ld [$b2fb], a - call CloseSRAM - callba Function170be4 - callba Function1700c4 - jr .asm_118d78 - -.asm_118d6e - ld a, [hli] - cp $96 - jr nz, .asm_118d7b - ld a, [hl] - cp $0 - jr nz, .asm_118d7b - -.asm_118d78 - jp BattleTowerRoomMenu_IncrementJumptable - -.asm_118d7b - ld a, $d3 - jp Function118805 -; 118d80 - -Function118d80: ; 118d80 - call Function118e06 - ld a, [wcd38] - and a - jr z, .asm_118d8e - call BattleTowerRoomMenu_IncrementJumptable - jr asm_118d9f - -.asm_118d8e - ld a, $9 - ld [wcd3c], a - ld a, $12 - ld [wMobileInactivityTimerSeconds], a - call BattleTowerRoomMenu_IncrementJumptable - -Function118d9b: - call BattleTowerRoomMenu2 - ret c - -asm_118d9f - ld hl, $c608 - call Function119940 - ld a, [wcd38] - and a - jr nz, .asm_118db2 - ld a, $8f - ld [wcd3b], a - jr .asm_118db7 - -.asm_118db2 - ld a, $26 - ld [wcd3b], a - -.asm_118db7 - ld hl, w3_d800 - ld a, $8 - ld [hli], a - ld a, $c6 - ld [hli], a - ld a, [wcd3b] - ld [hli], a - xor a - ld [hli], a - ld a, $8 - ld [hli], a - ld a, $c7 - ld [hli], a - ld a, [wcd39] - ld [hli], a - ld a, [wcd3a] - ld [hli], a - call Function119eb4 - call Function119ec2 - ld a, $40 - ld [wcd89], a - ld hl, w3_d800 - ld de, $de00 - ld bc, $0200 - ld a, $2c - jp Function119e2b -; 118ded - -Function118ded: ; 118ded - ld a, [wcd38] - and a - jr z, .asm_118e03 - ld a, [rSVBK] - push af - ld a, $1 - ld [rSVBK], a - callba Function11b93b - pop af - ld [rSVBK], a - -.asm_118e03 - jp BattleTowerRoomMenu_IncrementJumptable -; 118e06 - -Function118e06: ; 118e06 - ld hl, wd002 - ld a, [wcd38] - and a - jr z, .asm_118e1d -.asm_118e0f - call Function118b9a - ret nc - ld a, [hli] - cp $d - jr nz, .asm_118e0f - ld a, [hli] - cp $a - jr nz, .asm_118e0f - -.asm_118e1d - ld a, l - ld [wcd39], a - ld a, h - ld [wcd3a], a -.asm_118e25 - call Function118b9a - ret nc - ld a, [hli] - cp $d - jr nz, .asm_118e25 - ld a, [hli] - cp $a - jr nz, .asm_118e25 - dec hl - xor a - ld [hld], a - ld [hl], a - jr asm_118e3e - -Function118e39: ; 118e39 (46:4e39) -.asm_118e39 - ld a, [hli] - and a - jr nz, .asm_118e39 - dec hl -asm_118e3e -.asm_118e3e - ld a, [hld] - cp $2f - jr nz, .asm_118e3e - inc hl - inc hl - ld de, wcd85 - ld c, $4 -.asm_118e4a - ld a, [hli] - cp $2e - jr z, .asm_118e63 - cp $30 - jr c, .asm_118e67 - cp $3a - jr nc, .asm_118e67 - sub $30 - add $f6 - ld [de], a - inc de - dec c - jr nz, .asm_118e4a - ld de, wcd85 -.asm_118e63 - ld a, $50 - ld [de], a - ret -.asm_118e67 - ld a, $f3 - ld [de], a - inc de - jr .asm_118e63 - -Function118e6d: ; 118e6d (46:4e6d) - xor a - ld [wcd65], a - ld a, $a - jp Function119e2b - -Function118e76: ; 118e76 (46:4e76) - ; Call $c in BattleTowerRoomMenu2 - ld a, $c - ld [wcd3c], a - jp BattleTowerRoomMenu_IncrementJumptable - -Function118e7e: ; 118e7e (46:4e7e) - call BattleTowerRoomMenu2 - ret c - ld a, $36 - jp Function119e2b - -BattleTowerRoomMenu_CallRoomMenu2: ; 118e87 (46:4e87) - call BattleTowerRoomMenu2 - ret c - ld a, [wcd33] - ld [wcf66], a - ret -; 118e92 (46:4e92) - -Function118e92: ; 118e92 - call Function118440 - call Function1191d3 - ld a, [wcd53] - ld l, a - ld a, [wcd54] - ld h, a - ld de, wcc60 - call Function1191ad - ret c - ld de, w3_d800 - ld bc, $0800 - jp Function118b10 -; 118eb0 - -Function118eb0: ; 118eb0 - call Function118440 - ld hl, $d802 - ld de, BGMapBuffer - ld bc, $000c - call CopyBytes - call Function1192cc - ret c - jp BattleTowerRoomMenu_IncrementJumptable -; 118ec6 - -Function118ec6: ; 118ec6 - call Function118440 - call SpeechTextBox - ld hl, $d80e - ld de, $c320 - ld bc, $0026 - call CopyBytes - xor a - ld [$c31f], a - ld a, $20 - ld [$c31b], a - ld a, $c3 - ld [$c31c], a - hlcoord 1, 14 - ld a, l - ld [$c31d], a - ld a, h - ld [$c31e], a - ld a, $2 - ld [$c31a], a - ld a, $1d - ld [wcd3c], a - ld a, $24 - ld [wMobileInactivityTimerSeconds], a - ld a, $11 - ld [wMobileInactivityTimerFrames], a - ld a, $1c - ld [wcd47], a - jp BattleTowerRoomMenu_IncrementJumptable -; 118f0d - -Function118f0d: ; 118f0d - call BattleTowerRoomMenu2 - ret c - call Function118440 - -Function118f14: - call Function118440 - ld a, [wcd51] - ld l, a - ld a, [wcd52] - ld h, a - ld de, wcc60 - call Function1191ad - ret c - ld a, [wcc60] - and a - jr z, .DontSendSaveFile - ld hl, Text_SaveFileWillBeSent - call BattleTowerRoomMenu_SetMessage - -.DontSendSaveFile: - ld a, [wcd57] - ld l, a - ld a, [wcd58] - ld h, a - ld de, wcc60 - call Function1191ad - ret c - ld hl, wcc60 - call Function118e39 - ld a, $9 - ld [wcd3c], a - ld a, $24 - ld [wMobileInactivityTimerSeconds], a - ld a, $13 - ld [wMobileInactivityTimerFrames], a - ld a, $1c - ld [wcd47], a - jp BattleTowerRoomMenu_IncrementJumptable -; 118f5e - -Function118f5e: ; 118f5e - call BattleTowerRoomMenu2 - ret c - call Function118440 - call DelayFrame - -Function118f68: - call Function119223 - ret c - call Function118440 - ld a, [wcd51] - ld l, a - ld a, [wcd52] - ld h, a - ld de, wcc60 - call Function1191ad - ret c - ld a, [wcc60] - and a - jr z, .asm_118fba - ld hl, $c346 - ld a, $c608 % $100 - ld [hli], a - ld a, $c608 / $100 - ld [hli], a - ld a, [wcd4b] - ld [hli], a - ld a, [wcd4c] - ld [hli], a - ld a, $c708 % $100 - ld [hli], a - ld a, $c708 / $100 - ld [hli], a - ld a, $60 - ld [hli], a - ld a, $cc - ld [hli], a - call Function119eb4 - call Function119ec2 - ld a, $40 - ld [wcd89], a - ld hl, $c346 - ld de, $de00 - ld bc, $0200 - ld a, $2c - jp Function119e2b - -.asm_118fba - call BattleTowerRoomMenu_IncrementJumptable - jp BattleTowerRoomMenu_IncrementJumptable -; 118fc0 - -Function118fc0: ; 118fc0 - call Function118440 - ld a, [wcd55] - ld l, a - ld a, [wcd56] - ld h, a - ld de, wcc60 - call Function1191ad - ret c - ld a, [wcc60] - and a - jr z, .asm_118ffa - ld a, [wcd51] - ld l, a - ld a, [wcd52] - ld h, a - ld de, wcc60 - call Function1191ad - ret c - ld a, [wcc60] - and a - jr z, .asm_118ff2 - ld hl, Text_SentSaveFileReadingNews - jr .asm_118ff5 - -.asm_118ff2 - ld hl, Text_ReadingNews - -.asm_118ff5 - call BattleTowerRoomMenu_SetMessage - jr Function119009 - -.asm_118ffa - ld hl, Text_ReadingNews - call BattleTowerRoomMenu_SetMessage - call BattleTowerRoomMenu_IncrementJumptable - call BattleTowerRoomMenu_IncrementJumptable - jp BattleTowerRoomMenu_IncrementJumptable - -Function119009: - call Function118440 - call Function119300 - ld a, [wcd55] - ld l, a - ld a, [wcd56] - ld h, a - ld de, wcc60 - call Function1191ad - ret c - ld hl, $c346 - ld a, $8 - ld [hli], a - ld a, $c6 - ld [hli], a - ld a, [wcd4b] - ld [hli], a - ld a, [wcd4c] - ld [hli], a - ld a, $8 - ld [hli], a - ld a, $c7 - ld [hli], a - ld a, $60 - ld [hli], a - ld a, $cc - ld [hli], a - call Function119eb4 - call Function119ec2 - ld a, $40 - ld [wcd89], a - ld hl, $c346 - ld de, w3_d000 - ld bc, $1000 - ld a, $2c - jp Function119e2b -; 119054 - -Function119054: ; 119054 - ld a, $6 - call GetSRAMBank - ld hl, wd002 - ld a, [wcd4f] - ld e, a - ld a, [wcd50] - ld d, a - ld a, [w3_d000] - ld c, a - ld a, [w3_d000 + 1] - ld b, a - call Function119192 - ret c - ld a, [wcd89] - and $1 - jr z, .asm_11908a - ld a, $6 - ld [rSVBK], a - ld hl, wd002 - ld a, [w3_d000] - ld c, a - ld a, [w3_d000 + 1] - ld b, a - call Function119192 - ret c - -.asm_11908a - call CloseSRAM - ld a, $3 - ld [rSVBK], a - ld a, $5 - call GetSRAMBank - ld a, [wcd4f] - ld [$b1b3], a - ld a, [wcd50] - ld [$b1b4], a - ld hl, BGMapBuffer - ld de, $aa7f - ld bc, $000c - call CopyBytes - ld a, [rSVBK] - push af - ld a, $1 - ld [rSVBK], a - ld a, [wd474] - ld [$b2f3], a - ld hl, wd475 - ld de, $b2f4 - ld bc, $0004 - call CopyBytes - pop af - ld [rSVBK], a - call CloseSRAM - jp BattleTowerRoomMenu_IncrementJumptable -; 1190d0 - -Function1190d0: ; 1190d0 - ld a, $3 - ld [rSVBK], a - ld a, [wcd57] - ld l, a - ld a, [wcd58] - ld h, a - ld de, wcc60 - call Function1191ad - ret c - ld de, w3_d000 - ld bc, $1000 - jp Function118b10 -; 1190ec - -Function1190ec: ; 1190ec - ld a, $5 - call GetSRAMBank - ld hl, BGMapBuffer - ld de, $aa73 - ld bc, $000c - call CopyBytes - call CloseSRAM - ld a, $5 - call GetSRAMBank - ld a, $1 - ld [$aa72], a - call CloseSRAM - ld a, $6 - call GetSRAMBank - ld a, [w3_d000] - ld c, a - ld a, [w3_d000 + 1] - ld b, a - ld hl, wd002 - ld de, $a000 - call Function119192 - ret c - ld a, [wcd89] - and $1 - jr z, .asm_11913e - ld a, $6 - ld [rSVBK], a - ld a, [w3_d000] - ld c, a - ld a, [w3_d000 + 1] - ld b, a - ld hl, wd002 - call Function119192 - ret c - -.asm_11913e - ld a, $3 - ld [rSVBK], a - call CloseSRAM - ld hl, Text_ReceivedNews - call BattleTowerRoomMenu_SetMessage - jp BattleTowerRoomMenu_IncrementJumptable -; 11914e - -Function11914e: ; 11914e - call BattleTowerRoomMenu2 - ret c - ld a, $1c - ld [wcf66], a - ld a, $a - ld [wc300], a - ret -; 11915d - -Function11915d: ; 11915d - ld hl, $d802 - ld de, BGMapBuffer - ld bc, $000c - call CopyBytes - ld a, $5 - call GetSRAMBank - ld hl, BGMapBuffer - ld de, $aa7f - ld c, $c -.asm_119176 - ld a, [de] - inc de - cp [hl] - jr nz, .asm_119184 - inc hl - dec c - jr nz, .asm_119176 - call BattleTowerRoomMenu_IncrementJumptable - jr .asm_11918e - -.asm_119184 - ld a, $16 - ld [wcf66], a - ld a, $b - ld [wc300], a - -.asm_11918e - call CloseSRAM - ret -; 119192 - -Function119192: ; 119192 - inc b - inc c - jr .asm_11919e - -.asm_119196 - ld a, [hli] - ld [de], a - inc de - ld a, $bf - cp d - jr c, .asm_1191a6 - -.asm_11919e - dec c - jr nz, .asm_119196 - dec b - jr nz, .asm_119196 - and a - ret - -.asm_1191a6 - ld a, $d3 - call Function118805 - scf - ret -; 1191ad - -Function1191ad: ; 1191ad - push bc - ld c, $0 - ld a, $5 - ld [rSVBK], a -.asm_1191b4 - ld a, [hli] - ld [de], a - inc de - and a - jr z, .asm_1191cc - inc c - ld a, c - cp $a6 - jr c, .asm_1191b4 - ld a, $da - call Function118805 - ld a, $3 - ld [rSVBK], a - pop bc - scf - ret - -.asm_1191cc - ld a, $3 - ld [rSVBK], a - pop bc - and a - ret -; 1191d3 - -Function1191d3: ; 1191d3 - ld hl, w3_d100 + 2 - ld a, l - ld [wcd53], a - ld a, h - ld [wcd54], a - call Function11920f - ld a, l - ld [wcd51], a - ld a, [wcd4a] - ld a, h - ld [wcd52], a - call Function11920f - ld a, l - ld [wcd55], a - ld a, [wcd4a] - ld a, h - ld [wcd56], a - call Function11920f - ld a, [wcd49] - ld a, l - ld [wcd57], a - ld a, [wcd4a] - ld a, h - ld [wcd58], a - call Function11920f - ret -; 11920f - -Function11920f: ; 11920f -.asm_11920f - call Function118b9a - ret nc - ld a, [hli] - cp $d - jr nz, .asm_11920f - ld a, [hli] - cp $a - jr nz, .asm_11920f - dec hl - xor a - ld [hld], a - ld [hli], a - inc hl - ret -; 119223 - -Function119223: ; 119223 - xor a - ld [wcd4b], a - ld [wcd4c], a - ld a, $5 - call GetSRAMBank - ld hl, wc3cd - ld de, $b092 - ld bc, $001f - call CopyBytes - dec de - xor a - ld [de], a - ld hl, $d810 -.asm_119241 - ld a, [hli] - cp $50 - jr nz, .asm_119241 - ld a, [hli] - ld [wcd4f], a - ld a, [hli] - ld [wcd50], a - ld a, [hli] - ld [$b1b1], a - ld c, a - ld a, [hli] - ld [$b1b2], a - ld b, a - ld de, $b1d3 - call CopyBytes - call CloseSRAM - ld e, l - ld d, h - ld hl, $c608 -.asm_119266 - ld a, [de] - inc de - cp $ff - jr z, .asm_1192c2 - cp $fe - jr z, .asm_1192a5 - call GetSRAMBank - ld a, [de] - inc de - ld c, a - ld a, [de] - inc de - ld b, a - ld a, [de] - inc de - push de - push af - ld a, [wcd4b] - ld e, a - ld a, [wcd4c] - ld d, a - pop af -.asm_119286 - push af - ld a, [bc] - inc bc - ld [hli], a - inc de - pop af - dec a - jr nz, .asm_119286 - call CloseSRAM - ld a, e - ld [wcd4b], a - ld a, d - ld [wcd4c], a - pop de -.asm_11929b - and a - jr z, .asm_119266 - ld a, $d3 - call Function118805 - scf - ret - -.asm_1192a5 - ld a, [wcd4b] - ld c, a - ld a, [wcd4c] - ld b, a - ld a, [de] - inc de -.asm_1192af - push af - ld a, [de] - inc de - ld [hli], a - inc bc - pop af - dec a - jr nz, .asm_1192af - ld a, c - ld [wcd4b], a - ld a, b - ld [wcd4c], a - jr .asm_11929b - -.asm_1192c2 - ld a, e - ld [wcd4d], a - ld a, d - ld [wcd4e], a - and a - ret -; 1192cc - -Function1192cc: ; 1192cc - ld a, $5 - call GetSRAMBank - ld hl, $aa73 - ld de, $c608 - ld bc, $000c - call CopyBytes - call CloseSRAM - ld hl, $c608 - ld de, BGMapBuffer - ld c, $c -.asm_1192e8 - ld a, [de] - inc de - ld b, a - ld a, [hli] - cp b - jr nz, .asm_1192fe - dec c - jr nz, .asm_1192e8 - ld a, $1f - ld [wcd3c], a - ld a, $27 - ld [wcf66], a - scf - ret - -.asm_1192fe - and a - ret -; 119300 - -Function119300: ; 119300 - xor a - ld [wcd4b], a - ld [wcd4c], a - ld a, [wcd4d] - ld e, a - ld a, [wcd4e] - ld d, a - ld hl, $c608 - ld a, [wcd4b] - ld c, a - ld a, [wcd4c] - ld b, a -.asm_11931a - ld a, [de] - inc de - cp $50 - jr z, .asm_119324 - ld [hli], a - inc bc - jr .asm_11931a - -.asm_119324 - ld a, $3d - ld [hli], a - inc bc - ld a, c - ld [wcd4b], a - ld a, b - ld [wcd4c], a - ld a, [de] - inc de - call GetSRAMBank - ld a, [de] - inc de - ld c, a - ld a, [de] - inc de - ld b, a - ld a, [de] - inc de - push de - push af - ld a, [wcd4b] - ld e, a - ld a, [wcd4c] - ld d, a - pop af -.asm_119348 - push af - ld a, [bc] - and $f0 - swap a - call Function1197bf - ld [hli], a - inc de - ld a, [bc] - inc bc - and $f - call Function1197bf - ld [hli], a - inc de - pop af - dec a - jr nz, .asm_119348 - call CloseSRAM - ld a, e - ld [wcd4b], a - ld a, d - ld [wcd4c], a - pop de - ld a, [de] - cp $50 - jr z, .asm_11937f - ld a, [wcd4b] - ld c, a - ld a, [wcd4c] - ld b, a - ld a, $26 - ld [hli], a - inc bc - jr .asm_11931a - -.asm_11937f - ret -; 119380 - -Function119380: ; 119380 - ld a, $80 - ld [wcd49], a - jp BattleTowerRoomMenu_IncrementJumptable -; 119388 - -Function119388: ; 119388 - ld hl, wcd49 - dec [hl] - ret nz - ld hl, wcc60 - call Function118e39 - ld a, $9 - ld [wcd3c], a - ld a, $10 - ld [wMobileInactivityTimerSeconds], a - call BattleTowerRoomMenu_IncrementJumptable - -Function1193a0: - call BattleTowerRoomMenu2 - ret c - call DelayFrame - ld a, $8 - ld [wcd3c], a - call BattleTowerRoomMenu2 - ld hl, $c346 - ld a, wd000 % $100 - ld [hli], a - ld a, wd000 / $100 - ld [hli], a - ld a, [wcd3b] - ld [hli], a - xor a - ld [hli], a - ld a, $c708 % $100 - ld [hli], a - ld a, $c708 / $100 - ld [hli], a - ld a, $60 - ld [hli], a - ld a, $cc - ld [hli], a - call Function119eb4 - call Function119ec2 - ld a, $40 - ld [wcd89], a - ld hl, $c346 - ld de, $de00 - ld bc, $0200 - ld a, $2c - jp Function119e2b -; 1193e3 - -Function1193e3: ; 1193e3 - ld hl, wcd49 - dec [hl] - ret nz - ld hl, wcc60 - call Function118e39 - ld a, $9 - ld [wcd3c], a - ld a, $11 - ld [wMobileInactivityTimerSeconds], a - call BattleTowerRoomMenu_IncrementJumptable - -Function1193fb: - call BattleTowerRoomMenu2 - ret c - call DelayFrame - ld a, $8 - ld [wcd3c], a - call BattleTowerRoomMenu2 - ld de, w3_d000 - ld bc, $1000 - jp Function118b10 -; 119413 - -Function119413: ; 119413 - ld a, $6 - call GetSRAMBank - ld a, [w3_d000] - ld c, a - ld a, [w3_d000 + 1] - ld b, a - dec bc - dec bc - ld hl, wd002 - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - call Function119192 - ret c - ld a, [wcd89] - and $1 - jr z, .asm_119447 - ld a, $6 - ld [rSVBK], a - ld a, [wd000] - ld c, a - ld a, [w3_d000 + 1] - ld b, a - ld hl, wd002 - call Function119192 - ret c - -.asm_119447 - ld a, $3 - ld [rSVBK], a - call CloseSRAM - jp BattleTowerRoomMenu_IncrementJumptable -; 119451 - -Function119451: ; 119451 (46:5451) - ld a, [wcd89] - and $1 - jr z, .asm_11945d - ld a, $d3 - jp Function118805 -.asm_11945d - xor a - ld [wcd50], a - call Function119694 - ld a, b - ld [wcd49], a - call Function1196cd - ld a, [wd002] - ld hl, wd003 - -Function119471: ; 119471 (46:5471) - push af - ld a, [hli] - ld [$c608], a - ld a, [hli] - ld [$c608 + 3], a - ld a, [hli] - ld [$c608 + 1], a - ld a, [hli] - ld [$c608 + 2], a - ld a, [hli] - ld [$c608 + 4], a - ld a, [hli] - ld [$c608 + 5], a ; $c608 + 5 - push hl - ld a, [$c608] - cp $ff - jr z, .asm_1194a7 - ld a, [$c608 + 2] - cp $ff - jr z, .asm_1194a7 - ld a, [$c608 + 1] - cp $ff - jr nz, .asm_1194a7 - call Function119584 - jr c, .asm_11950c - jr .asm_1194f0 -.asm_1194a7 - ld hl, $c608 - ld de, $c608 + 3 - ld c, $3 -.asm_1194af - ld a, [de] - inc de - cp [hl] - inc hl - jr c, .asm_1194f3 - jr z, .asm_1194b9 - jr nc, .asm_1194bc -.asm_1194b9 - dec c - jr nz, .asm_1194af -.asm_1194bc - ld c, $3 - ld hl, wcd49 - ld de, $c608 -.asm_1194c4 - ld a, [de] - inc de - cp $ff - jr z, .asm_1194d1 - cp [hl] - jr z, .asm_1194d1 - jr c, .asm_1194d5 - jr nc, .asm_1194f0 -.asm_1194d1 - inc hl - dec c - jr nz, .asm_1194c4 -.asm_1194d5 - ld c, $3 - ld hl, wcd49 - ld de, $c608 + 3 -.asm_1194dd - ld a, [de] - inc de - cp $ff - jr z, .asm_1194ea - cp [hl] - jr c, .asm_1194f0 - jr z, .asm_1194ea - jr nc, .asm_11950c -.asm_1194ea - inc hl - dec c - jr nz, .asm_1194dd - jr .asm_11950c -.asm_1194f0 - pop hl - jr .asm_119557 -.asm_1194f3 - ld c, $3 - ld hl, wcd49 - ld de, $c608 -.asm_1194fb - ld a, [de] - inc de - cp $ff - jr z, .asm_119508 - cp [hl] - jr c, .asm_11950c - jr z, .asm_119508 - jr nc, .asm_1194d5 -.asm_119508 - inc hl - dec c - jr nz, .asm_1194fb -.asm_11950c - pop hl - ld a, $1 - ld [wcd50], a - ld a, l - ld [$c608], a - ld a, h - ld [$c608 + 1], a - ld de, wcd69 - ld c, $10 - ld b, $0 -.asm_119521 - ld a, [de] - inc de - cp [hl] - inc hl - jr nz, .asm_119528 - inc b -.asm_119528 - dec c - jr nz, .asm_119521 - ld a, $10 - cp b - jr z, .asm_119536 -rept 4 - inc hl -endr - jr .asm_11957a -.asm_119536 - ld a, [hli] - cp $50 - jr nz, .asm_119552 - ld a, [hli] - cp $33 - jr nz, .asm_119553 - ld a, [hli] - ld c, a - ld a, [hli] - ld b, a - ld a, [wcd83] - cp c - jr nz, .asm_119576 - ld a, [wcd84] - cp b - jr nz, .asm_119576 - jr .asm_11955b -.asm_119552 - inc hl -.asm_119553 - inc hl - inc hl - jr .asm_11955b -.asm_119557 - ld de, $14 - add hl, de -.asm_11955b - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - add hl, de - pop af - dec a - jp nz, Function119471 - ld a, [wcd50] - and a - jr z, .asm_119571 - ld a, $1a - ld [wcf66], a - ret -.asm_119571 - ld a, $d8 - jp Function118805 -.asm_119576 - ld a, $10 - jr .asm_11957c -.asm_11957a - ld a, $f -.asm_11957c - ld [wcf66], a - pop af - call Function1195c4 - ret - -Function119584: ; 119584 (46:5584) - ld a, [$c608] - ld b, a - ld a, [$c608 + 3] - ld c, a - cp b - jr c, .asm_11959c - ld a, [wcd49] - cp b - jr c, .asm_1195c2 -.asm_119595 - cp c - jr c, .asm_1195a2 - jr z, .asm_1195a2 - jr .asm_1195c2 -.asm_11959c - ld a, [wcd49] - cp b - jr c, .asm_119595 -.asm_1195a2 - ld a, [$c608 + 2] - ld b, a - ld a, [$c608 + 5] ; $c608 + 5 - ld c, a - cp b - jr c, .asm_1195ba - ld a, [wcd4b] - cp b - jr c, .asm_1195c2 -.asm_1195b3 - cp c - jr c, .asm_1195c0 - jr z, .asm_1195c0 - jr .asm_1195c2 -.asm_1195ba - ld a, [wcd4b] - cp b - jr c, .asm_1195b3 -.asm_1195c0 - scf - ret -.asm_1195c2 - and a - ret - -Function1195c4: ; 1195c4 (46:55c4) - ld a, [hli] - ld c, a - ld a, [hli] - ld b, a - ld de, $a5 - ld a, b - cp d - jr c, .asm_1195d9 - jr z, .asm_1195d3 - jr nc, .asm_1195f3 -.asm_1195d3 - ld a, c - cp e - jr z, .asm_1195d9 - jr nc, .asm_1195f3 -.asm_1195d9 - ld de, wcc60 - call CopyBytes - xor a - ld [de], a - ld a, [$c608] - ld l, a - ld a, [$c608 + 1] - ld h, a - ld de, wcd69 - ld bc, $10 - call CopyBytes - ret -.asm_1195f3 - ld a, $d8 - jp Function118805 - -Function1195f8: ; 1195f8 (46:55f8) - ld a, $11 - ld [wcd3c], a - ld a, $1c - ld [wMobileInactivityTimerSeconds], a - ld a, $f - ld [wMobileInactivityTimerFrames], a - ld a, $14 - ld [wcd47], a - call BattleTowerRoomMenu_IncrementJumptable - jp BattleTowerRoomMenu_IncrementJumptable - -Function119612: ; 119612 (46:5612) - ld a, $14 - ld [wcd3c], a - ld a, $1c - ld [wMobileInactivityTimerSeconds], a - ld a, $10 - ld [wMobileInactivityTimerFrames], a - ld a, $14 - ld [wcd47], a - jp BattleTowerRoomMenu_IncrementJumptable - -Function119629: ; 119629 (46:5629) - call BattleTowerRoomMenu2 - ret c - ld a, $60 - ld l, a - ld a, $cc - ld h, a - call Function118e39 - ld a, $9 - ld [wcd3c], a - ld a, $1c - ld [wMobileInactivityTimerSeconds], a - ld a, $14 - ld [wcd47], a - call BattleTowerRoomMenu_IncrementJumptable - -Function119648: ; 119648 (46:5648) - call BattleTowerRoomMenu2 - ret c - call DelayFrame - ld a, $8 - ld [wcd3c], a - call BattleTowerRoomMenu2 - call Function118b24 - ld de, w3_d000 - ld bc, $1000 - ld a, $2a - jp Function119e2b - -Function119665: ; 119665 (46:5665) - ld a, $1a - ld [wcd3c], a - call BattleTowerRoomMenu_IncrementJumptable - -Function11966d: ; 11966d (46:566d) - call BattleTowerRoomMenu2 - ret c - ld a, [wcd47] - ld [wcf66], a - ld a, $a - ld [wc300], a - ret - -Function11967d: ; 11967d (46:567d) - ld a, $18 - ld [wcd3c], a - call BattleTowerRoomMenu_IncrementJumptable - -Function119685: ; 119685 (46:5685) - call BattleTowerRoomMenu2 - ret c - ld a, $14 - ld [wcf66], a - ld a, $a - ld [wc300], a - ret - -Function119694: ; 119694 (46:5694) - ld b, 0 - ld hl, Unknown_1196b8 -.asm_119699 - ld de, $c708 - ld a, [de] - inc de - cp [hl] - inc hl - jr nz, .asm_1196af - ld a, [de] - inc de - cp [hl] - inc hl - jr nz, .asm_1196b0 - ld a, [de] - inc de - cp [hl] - inc hl - jr nz, .asm_1196b1 - ret -.asm_1196af - inc hl -.asm_1196b0 - inc hl -.asm_1196b1 - inc b - ld a, b - cp $7 - jr nz, .asm_119699 - ret -; 1196b8 (46:56b8) - -Unknown_1196b8: ; 1196b8 - db "Mon" - db "Tue" - db "Wed" - db "Thu" - db "Fri" - db "Sat" - db "Sun" -; 1196cd - -SECTION "bank46_2", ROMX -; A hack to use ascii above. - -Function1196cd: ; 1196cd (46:56cd) - ld de, $c719 - call Function1196de - ld [wcd4a], a - inc de - call Function1196de - ld [wcd4b], a - ret - -Function1196de: ; 1196de (46:56de) - ld a, [de] - inc de - ; b = ([de] - 48) * 2 - ; c = ([de] - 48) * 10 - sub $30 - sla a - ld b, a - sla a - sla a - add b - ld c, a - add hl, bc - ld a, [de] - inc de - sub $30 - add c - ret -; 1196f2 (46:56f2) - -Function1196f2: ; 1196f2 - ld hl, wd002 -.asm_1196f5 - call Function118b9a - ret nc - ld a, [hli] - cp $d - jr nz, .asm_1196f5 - ld a, [hl] - cp $a - jr nz, .asm_1196f5 - xor a - ld [hld], a - ld [hli], a - ld a, l - ld [wcd5b], a - ld a, h - ld [wcd5c], a - inc hl - ld e, l - ld d, h - ld a, [de] - inc de - cp $d - jr nz, .asm_119722 - ld a, [de] - inc de - cp $a - jr nz, .asm_119722 - ld a, $b - jp Function118805 - -.asm_119722 - call Random - ld c, $0 - ld b, c -.asm_119728 - call Function119798 - ld a, d - cp $ff - jr nz, .asm_119735 - ld a, e - cp $ff - jr z, .asm_11974c - -.asm_119735 - ld a, [hRandomSub] - cp d - jr c, .asm_11974c - jr z, .asm_11973e - jr .asm_119745 - -.asm_11973e - ld a, [hRandomAdd] - cp e - jr c, .asm_11974c - jr z, .asm_11974c - -.asm_119745 - inc bc - ld a, c - or b - jr z, .asm_119770 - jr .asm_119728 - -.asm_11974c - ld a, [wcd5b] - ld l, a - ld a, [wcd5c] - ld h, a -.asm_119754 - ld a, [hld] - cp $58 - jr nz, .asm_119754 - ld d, $0 -.asm_11975b - inc d - ld a, [hld] - cp $58 - jr z, .asm_11975b - inc hl - inc hl - ld a, d - dec a - jr z, .asm_11978e - dec a - jr z, .asm_119785 - dec a - jr z, .asm_11977e - dec a - jr z, .asm_119775 - -.asm_119770 - ld a, $d3 - jp Function118805 - -.asm_119775 - ld a, b - and $f0 - swap a - call Function1197bf - ld [hli], a - -.asm_11977e - ld a, b - and $f - call Function1197bf - ld [hli], a - -.asm_119785 - ld a, c - and $f0 - swap a - call Function1197bf - ld [hli], a - -.asm_11978e - ld a, c - and $f - call Function1197bf - ld [hli], a - jp BattleTowerRoomMenu_IncrementJumptable -; 119798 - -Function119798: ; 119798 - ld d, $0 - ld e, d - call Function1197b4 - swap a - or d - ld d, a - call Function1197b4 - or d - ld d, a - call Function1197b4 - swap a - or e - ld e, a - call Function1197b4 - or e - ld e, a - ret -; 1197b4 - -Function1197b4: ; 1197b4 - ld a, [hli] - cp $61 - jr nc, .asm_1197bc - sub $30 - ret - -.asm_1197bc - sub $57 - ret -; 1197bf - -Function1197bf: ; 1197bf - cp $a - jr nc, .asm_1197c6 - add $30 - ret - -.asm_1197c6 - add $57 - ret -; 1197c9 - -Function1197c9: ; 1197c9 - ld hl, wd002 - call Function118e39 - ld a, $9 - ld [wcd3c], a - ld a, $12 - ld [wMobileInactivityTimerSeconds], a - call BattleTowerRoomMenu_IncrementJumptable - -Function1197dc: - call BattleTowerRoomMenu2 - ret c - call DelayFrame - ld hl, wd002 - ld de, wcc60 - ld bc, $0080 - call CopyBytes - dec de - xor a - ld [de], a - call Function118b24 - ld de, w3_d000 - ld bc, $1000 - ld a, $2a - jp Function119e2b -; 119800 - -Function119800: ; 119800 - ld a, $fd - ld [$c6d0], a - ld [wOTTrademonSpecies], a - ld a, [wcd81] - ld [wc74e], a - ld a, [wJumptableIndex] - push af - ld a, [wcf64] - push af - ld a, [wcf65] - push af - ld a, [wcf66] - push af - ld a, $1 - ld [rSVBK], a - call FadeToMenu - callba Function10803d - call Function11a9ce - call RestartMapMusic - ld a, $3 - ld [rSVBK], a - pop af - ld [wcf66], a - pop af - ld [wcf65], a - pop af - ld [wcf64], a - pop af - ld [wJumptableIndex], a - callba Function115dc3 - jp BattleTowerRoomMenu_IncrementJumptable -; 11984e - -Function11984e: ; 11984e - ld a, [wcd80] - and a - jr nz, .asm_1198a0 - ld a, [wcd38] - and a - jr nz, .asm_1198a8 - callba Function170000 - ld a, [wJumptableIndex] - push af - ld a, [wcf64] - push af - ld a, [wcf65] - push af - ld a, [wcf66] - push af - ld a, $1 - ld [rSVBK], a - call FadeToMenu - callba MobileTradeAnimation_SendGivemonToGTS - call Function11a9ce - call RestartMapMusic - ld a, $3 - ld [rSVBK], a - pop af - ld [wcf66], a - pop af - ld [wcf65], a - pop af - ld [wcf64], a - pop af - ld [wJumptableIndex], a - callba Function115dc3 - jp BattleTowerRoomMenu_IncrementJumptable - -.asm_1198a0 - ld a, $a - ld [wc300], a - jp BattleTowerRoomMenu_IncrementJumptable - -.asm_1198a8 - callba Function17005a - ld a, [wJumptableIndex] - push af - ld a, [wcf64] - push af - ld a, [wcf65] - push af - ld a, [wcf66] - push af - ld a, $1 - ld [rSVBK], a - call FadeToMenu - callba MobileTradeAnimation_RetrieveGivemonFromGTS - call Function11a9ce - call RestartMapMusic - ld a, $3 - ld [rSVBK], a - pop af - ld [wcf66], a - pop af - ld [wcf65], a - pop af - ld [wcf64], a - pop af - ld [wJumptableIndex], a - callba Function115dc3 - jp BattleTowerRoomMenu_IncrementJumptable -; 1198ee - -Function1198ee: ; 1198ee - ld hl, Text_RegisteringRecord - call BattleTowerRoomMenu_SetMessage - call BattleTowerRoomMenu_IncrementJumptable - -Function1198f7: - ld a, [$c31a] - and a - ret nz - ld hl, $c608 + 2 - call Function119940 - ld hl, w3_d800 - ld a, $c608 % $100 - ld [hli], a - ld a, $c608 / $100 - ld [hli], a - ld a, $f6 - ld [hli], a - xor a - ld [hli], a - ld a, $c708 % $100 - ld [hli], a - ld a, $c708 / $100 - ld [hli], a - ld a, [wcd51] - ld [hli], a - ld a, [wcd52] - ld [hli], a - call Function119eb4 - call Function119ec2 - ld a, $40 - ld [wcd89], a - ld hl, w3_d800 - ld de, $de00 - ld bc, $0200 - ld a, $2c - jp Function119e2b -; 119937 - -Function119937: ; 119937 - callba Function1707f4 - jp BattleTowerRoomMenu_IncrementJumptable -; 119940 - -Function119940: ; 119940 - ld de, wc3cd - ld c, $1e -.asm_119945 - ld a, [de] - inc de - ld [hli], a - dec c - jr z, .asm_119953 - and a - jr nz, .asm_119945 - xor a -.asm_11994f - ld [hli], a - dec c - jr nz, .asm_11994f - -.asm_119953 - ret -; 119954 - -Function119954: ; 119954 - ld a, $1c - ld [wcd3c], a - call BattleTowerRoomMenu2 - ld hl, $c608 - ld de, wc3cd -.asm_119962 - ld a, [de] - inc de - ld [hli], a - and a - jr nz, .asm_119962 - call Function119ec2 - ld hl, $c608 - ld a, $1e - jp Function119e2b -; 119973 - -Function119973: ; 119973 - ld a, $1 - ld [wcf64], a - xor a - ld [wcf65], a - ld [w3_d090], a - ld de, w3_d000 - ld a, $20 - jp Function119e2b -; 119987 - -Function119987: ; 119987 - ld hl, w3_d000 + 1 - ld a, [w3_d000] - or [hl] - jr z, .asm_1199a0 - ld a, [wcf64] - ld l, a - ld a, [wcf65] - ld h, a - ld de, BGPals - ld a, $22 - jp Function119e2b - -.asm_1199a0 - ld a, [w3_d090] - and a - jr z, .asm_1199ae - ld a, $16 - ld [wcf66], a - jp Function119b0d - -.asm_1199ae - ld a, $1b - ld [wcf66], a - ret -; 1199b4 - -Function1199b4: ; 1199b4 - ld a, [wd000 + 130] - and a - jr nz, .asm_1199c7 - ld a, [wd000 + 129] - cp $7 - jr nc, .asm_1199c7 - call BattleTowerRoomMenu_IncrementJumptable - jp Function1199ca - -.asm_1199c7 - jp Function119ac9 -; 1199ca - -Function1199ca: ; 1199ca - ld a, $20 - ld [wcd89], a - ld a, [wcf64] - ld l, a - ld a, [wcf65] - ld h, a - ld de, w3_d100 - ld bc, $0700 - ld a, $28 - jp Function119e2b -; 1199e2 - -Function1199e2: ; 1199e2 - ld c, $c - ld de, XGameCodePrefix - call Function119e4f - jp c, Function119ac9 - ld a, c - cp $1 - jp nz, Function119ac9 - ld hl, w3_d880 - ld bc, XGameCode -.loop - ld a, [bc] - and a - jr z, .game_result_prefix - cp [hl] - jp nz, Function119ac9 - inc bc - inc hl - jr .loop - -.game_result_prefix - ld c, $17 - ld de, XGameResultPrefix - call Function119e4f - jp c, .asm_119aa7 - ld a, c - cp $1 - jp nz, .asm_119aa7 - ld a, [w3_d880] - cp $31 - jp nz, .asm_119aa7 - ld a, [w3_d881] - cp $20 - jp nz, .asm_119aa7 - ld a, [w3_d88a] - cp $20 - jp nz, .asm_119aa7 - ld a, [w3_d894] - cp $20 - jp nz, .asm_119aa7 - xor a - ld [w3_d8a0], a - ld [w3_d8a1], a - ld [w3_d8a2], a - ld [w3_d8a3], a - ld hl, $d8a0 - ld bc, $d889 - call Function119e98 - call Function119e98 - ld hl, $d8a0 - ld a, [wcd2d] - cp [hl] - jr nz, Function119ac9 - inc hl - ld a, [wcd2c] - cp [hl] - jr nz, Function119ac9 - inc hl - ld a, [wcd2b] - cp [hl] - jr nz, Function119ac9 - inc hl - ld a, [wcd2a] - cp [hl] - jr nz, Function119ac9 - xor a - ld [w3_d8a0], a - ld [w3_d8a1], a - ld [w3_d8a2], a - ld [w3_d8a3], a - ld hl, $d8a0 - ld bc, $d88e - call Function119e98 - ld bc, $d893 - call Function119e98 - ld hl, $d8a0 - ld a, [wcd2f] - cp [hl] - jr nz, .asm_119aa7 - inc hl - ld a, [wcd2e] - cp [hl] - jr nz, .asm_119aa7 - inc hl - ld a, [wcd31] - cp [hl] - jr nz, .asm_119aa7 - inc hl - ld a, [wcd30] - cp [hl] - jr z, .asm_119aaf - -.asm_119aa7 - ld a, $25 - ld [wcf66], a - jp Function119b45 - -.asm_119aaf - ld a, [w3_d090] - and a - jr nz, .asm_119aa7 - ld a, [w3_d895] - sub $30 - ld [w3_d090], a - ld a, [wcf64] - ld [w3_d090 + 1], a - ld a, [wcf65] - ld [w3_d090 + 2], a - -Function119ac9: - ld a, [w3_d000] - ld l, a - ld a, [w3_d000 + 1] - ld h, a - dec hl - ld a, l - ld [w3_d000], a - ld a, h - ld [w3_d000 + 1], a - ld a, [wcf64] - ld l, a - ld a, [wcf65] - ld h, a - inc hl - ld a, l - ld [wcf64], a - ld a, h - ld [wcf65], a - ld a, $10 - ld [wcf66], a - ret -; 119af1 - -XGameCode: -INCBIN "data/mobile/x-game-code.txt" -XGameResult: -INCBIN "data/mobile/x-game-result.txt" -; 119b0d - -Function119b0d: ; 119b0d - ld a, $8 - ld [wcd3c], a - call BattleTowerRoomMenu2 - ld a, [w3_d090] - cp $1 - jr z, .asm_119b23 - ld a, $19 - ld [wcf66], a - jr Function119b3b - -.asm_119b23 - ld a, $10 - ld [wcd89], a - ld a, [w3_d090 + 1] - ld l, a - ld a, [w3_d090 + 2] - ld h, a - ld de, w3_d100 - ld bc, $0700 - ld a, $24 - jp Function119e2b - -Function119b3b: - ld a, [w3_d090 + 1] - ld l, a - ld a, [w3_d090 + 2] - ld h, a - jr asm_119b4d - -Function119b45: - ld a, [wcf64] - ld l, a - ld a, [wcf65] - ld h, a - -asm_119b4d - ld a, $26 - jp Function119e2b -; 119b52 - -Function119b52: ; 119b52 - ld a, [w3_d090] - cp $1 - jr nz, .asm_119b66 - ld a, $5 - call GetSRAMBank - ld a, $4 - ld [$a800], a - call CloseSRAM - -.asm_119b66 - ld a, $1c - jp Function119e2b -; 119b6b - -Function119b6b: ; 119b6b - ld a, [w3_d090] - cp $1 - jr z, .asm_119b75 - jp BattleTowerRoomMenu_IncrementJumptable - -.asm_119b75 - ld a, [w3_d100] - ld b, a - ld a, [w3_d100 + 1] - or b - jr z, .asm_119be3 - ld hl, w3_d800 - ld de, w3_d100 + 2 -.asm_119b85 - ld a, [de] - inc de - cp $d - jr nz, .asm_119b85 - inc de - ld a, [de] - cp $d - jr nz, .asm_119b85 - inc de - inc de -.asm_119b93 - ld a, [de] - inc de - cp $d - jr z, .asm_119bfa - call Function119c3e - ret c - ld [hli], a - ld a, [de] - inc de - call Function119c3e - ret c - ld [hli], a - ld a, [de] - inc de - call Function119c3e - ret c - ld [hli], a - ld a, [de] - inc de - call Function119c3e - ret c - ld [hl], a - push de - ld d, [hl] - dec hl - ld c, [hl] - dec hl - ld b, [hl] - dec hl - ld a, [hl] - sla b - sla b - sla b - rla - sla b - rla - ld [hli], a - ld [hl], b - inc hl - rrc c - rrc c - ld [hl], c - dec hl - ld a, $f - and c - or [hl] - ld [hli], a - ld a, [hli] - and $c0 - or [hl] - dec hl - ld [hld], a - dec hl - pop de - inc hl - inc hl - inc hl - ld a, h - cp $e0 - jr c, .asm_119b93 - -.asm_119be3 - ld a, $19 - ld [wcf66], a - ld a, $5 - call GetSRAMBank - ld a, $1 - ld [$a800], a - call CloseSRAM - xor a - ld [w3_d090], a - ret - -.asm_119bfa - inc de - ld a, [de] - cp $d - jr nz, .asm_119b93 - ld a, l - cp (w3_d869) % $100 - jr nz, .asm_119be3 - ld a, h - cp (w3_d869) / $100 - jr nz, .asm_119be3 - ld a, $5 - call GetSRAMBank - ld a, [wcf64] - ld [$b090], a - ld a, [wcf65] - ld [$b091], a - ld hl, w3_d800 - ld de, $b023 - ld bc, $0069 - call CopyBytes - ld a, $3 - ld [$a800], a - call CloseSRAM - ld hl, w3_d800 - ld de, $c608 - ld bc, $0069 - call CopyBytes - jp BattleTowerRoomMenu_IncrementJumptable -; 119c3e - -Function119c3e: ; 119c3e - cp $2b - jr c, .asm_119c68 - jr z, .asm_119c80 - cp $2f - jr c, .asm_119c68 - jr z, .asm_119c84 - cp $30 - jr c, .asm_119c68 - cp $3a - jr c, .asm_119c88 - cp $3d - jr c, .asm_119c68 - jr z, .asm_119c8c - cp $41 - jr c, .asm_119c68 - cp $5b - jr c, .asm_119c8f - cp $61 - jr c, .asm_119c68 - cp $7b - jr c, .asm_119c93 - -.asm_119c68 - ld a, $19 - ld [wcf66], a - ld a, $5 - call GetSRAMBank - ld a, $1 - ld [$a800], a - call CloseSRAM - xor a - ld [w3_d090], a - scf - ret - -.asm_119c80 - ld a, $3e - and a - ret - -.asm_119c84 - ld a, $3f - and a - ret - -.asm_119c88 - add $4 - and a - ret - -.asm_119c8c - xor a - and a - ret - -.asm_119c8f - sub $41 - and a - ret - -.asm_119c93 - sub $47 - and a - ret -; 119c97 - -BattleTowerRoomMenu_UberRestrictionMessage: ; 119c97 - ld hl, Text_UberRestriction - call BattleTowerRoomMenu_SetMessage - call BattleTowerRoomMenu_IncrementJumptable - jr BattleTowerRoomMenu_WaitForMessage - -BattleTowerRoomMenu_PartyMonTopsThisLevelMessage: - ld hl, Text_PartyMonTopsThisLevel - call BattleTowerRoomMenu_SetMessage - call BattleTowerRoomMenu_IncrementJumptable - -BattleTowerRoomMenu_WaitForMessage: - ld a, [$c31a] - and a - ret nz - ld a, $80 - ld [wcd50], a - call BattleTowerRoomMenu_IncrementJumptable - -BattleTowerRoomMenu_DelayRestartMenu: - ; Loops while (--[wcd50] != 0), - ; to create some sort of "delay" after the message is written on the screen, - ; before starting the menu again. - ld hl, wcd50 - dec [hl] - ret nz - ld a, $0 - ld [wcf66], a - ret -; 119cc3 - -BattleTowerRoomMenu_QuitMessage: ; 119cc3 - ld a, [wcd38] - and a - jr z, .asm_119cd1 - dec a - jr z, .asm_119cd6 - ld hl, Text_QuitReadingNews - jr .asm_119cd9 - -.asm_119cd1 - ld hl, Text_CancelBattleRoomChallenge - jr .asm_119cd9 - -.asm_119cd6 - ld hl, Text_ExitGymLeaderHonorRoll - -.asm_119cd9 - call BattleTowerRoomMenu_SetMessage - call BattleTowerRoomMenu_IncrementJumptable - -BattleTowerRoomMenu_PlaceYesNoMenu: - ld a, [$c31a] - and a - ret nz - ld a, $f - ld [wcd3c], a - call BattleTowerRoomMenu_IncrementJumptable - -BattleTowerRoomMenu_UpdateYesNoMenu: - ; Only ever called when [wcd3c] is $10 - call BattleTowerRoomMenu2 - ret c - ld a, [wMobileInactivityTimerFrames] - ld [wcf66], a - ret -; 119cf7 - -MenuDataHeader_119cf7: ; 119cf7 - db $40 ; flags - db 7, 12 ; start coords - db 11, 19 ; end coords - dw NULL - db 0 ; default option -; 119cff - -MenuData_119cff: ; 119cff - db $40 ; flags - db 7, 15 ; start coords - db 11, 19 ; end coords - dw NULL - db 0 ; default option -; 119d07 - -String_119d07: - db " ▼@" - -Strings_L10ToL100: ; 119d0c - db " L:10 @@" - db " L:20 @@" - db " L:30 @@" - db " L:40 @@" - db " L:50 @@" - db " L:60 @@" - db " L:70 @@" - db " L:80 @@" - db " L:90 @@" - db " L:100@@" - db "CANCEL@@" - -Strings_Ll0ToL40: ; 119d64 - db " L:10 @@" - db " L:20 @@" - db " L:30 @@" - db " L:40 @@" - db "CANCEL@@" - -String_119d8c: - db "CANCEL@" -; 119d93 - -BattleTower_LevelCheck: ; 119d93 (46:5d93) - ld a, [rSVBK] - push af - ld a, $1 - ld [rSVBK], a - ld a, [wcd4f] - ld c, 10 - call SimpleMultiply - ld hl, wcd50 - ld [hl], a - ld bc, PARTYMON_STRUCT_LENGTH - ld de, PartyMon1Level - ld a, [PartyCount] -.party_loop - push af - ld a, [de] - push hl - push de - pop hl - add hl, bc - push hl - pop de - pop hl - cp [hl] - jr z, .equal - jr nc, .exceeds -.equal - pop af - dec a - jr nz, .party_loop - pop af - ld [rSVBK], a - and a - ret - -.exceeds - pop af - ld a, $4 - ld [wcf66], a - pop af - ld [rSVBK], a - scf - ret - -BattleTower_UbersCheck: ; 119dd1 (46:5dd1) - ld a, [rSVBK] - push af - ld a, [wcd4f] - cp 70 / 10 - jr nc, .level_70_or_more - ld a, $1 - ld [rSVBK], a - ld hl, PartyMon1Level - ld bc, PARTYMON_STRUCT_LENGTH - ld de, PartySpecies - ld a, [PartyCount] -.loop - push af - ld a, [de] - cp MEWTWO - jr z, .uber - cp MEW - jr z, .uber - cp LUGIA - jr c, .next - cp NUM_POKEMON + 1 - jr nc, .next -.uber - ld a, [hl] - cp 70 - jr c, .uber_under_70 -.next - add hl, bc - inc de - pop af - dec a - jr nz, .loop -.level_70_or_more - pop af - ld [rSVBK], a - and a - ret - -.uber_under_70 - pop af - ld a, [de] - ld [wd265], a - call GetPokemonName - ld hl, StringBuffer1 - ld de, wcd49 - ld bc, PKMN_NAME_LENGTH - call CopyBytes - ld a, $a - ld [wcf66], a - pop af - ld [rSVBK], a - scf - ret -; 119e2b (46:5e2b) - -Function119e2b: ; 119e2b (46:5e2b) - call Function3e32 - -BattleTowerRoomMenu_IncrementJumptable: ; 119e2e (46:5e2e) - ld hl, wcf66 - inc [hl] - ret -; 119e33 (46:5e33) - -XGameCodePrefix: ; 119e33 -INCBIN "data/mobile/x-game-code-prefix.txt" -XGameCodePrefixEnd: -;119e40 - -XGameResultPrefix: ; 119e40 -INCBIN "data/mobile/x-game-result-prefix.txt" -XGameResultPrefixEnd: -; 119e4f - -Function119e4f: ; 119e4f - push bc - ld hl, w3_d100 - ld a, [hli] - ld c, a - ld a, [hli] - ld b, a -.loop - ld a, [de] - cp [hl] - jr z, .found_equality -.next - inc hl - dec bc - ld a, b - or c - jr nz, .loop -.return_carry - pop bc - scf - ret - -.found_equality - push de -.loop2 - ld a, [de] - inc de - cp "\n" - jr z, .newline - cp [hl] - jr nz, .unequal - inc hl - dec bc - ld a, b - or c - jr nz, .loop2 - pop de - jr .return_carry - -.unequal - pop de - jr .next - -.newline - pop de - pop bc - inc hl - ld de, w3_d880 -.loop3 - ld a, [hli] - ld [de], a - inc de - cp $d - jr z, .finish - dec c - jr nz, .loop3 - scf - ret - -.finish - and a - ret -; 119e8e - -Function119e8e: ; 119e8e - cp $60 - jr c, .less_than_0x60 - sub $57 - ret - -.less_than_0x60 - sub $30 - ret -; 119e98 - -Function119e98: ; 119e98 - ld a, $2 -.loop - push af - ld a, [bc] - dec bc - call Function119e8e - or [hl] - ld [hl], a - ld a, [bc] - dec bc - call Function119e8e - rlca - rlca - rlca - rlca - or [hl] - ld [hl], a - inc hl - pop af - dec a - and a - jr nz, .loop - ret -; 119eb4 - -Function119eb4: ; 119eb4 (46:5eb4) - xor a - ld [wc3cc], a - ld de, wc3ac -.loop - ld a, [de] - inc de - ld [hli], a - and a - jr nz, .loop - ret - -Function119ec2: ; 119ec2 (46:5ec2) - ld a, BANK(sMobileLoginPassword) - call GetSRAMBank - xor a - ld [sMobileLoginPassword + MOBILE_LOGIN_PASSWORD_LENGTH], a - ld de, sMobileLoginPassword + 1 -.loop - ld a, [de] - inc de - ld [hli], a - and a - jr nz, .loop - call CloseSRAM - ret - -BattleTowerRoomMenu2: ; 119ed8 (46:5ed8) - ld a, [rSVBK] - ld [wcd8c], a - ld a, $1 - ld [rSVBK], a - - call .RunJumptable - - ld a, [wcd8c] - ld [rSVBK], a - ld a, $1 - ld [hBGMapMode], a - ret - -.RunJumptable: - jumptable .Jumptable, wcd3c - -.Jumptable: - dw Function119f3f - dw Function119f45 - dw Function119f56 - dw Function119f76 - dw Function119f98 - dw Function11a113 - dw Function11a129 - dw Function11a131 - dw Function11a13d - dw Function11a14b - dw Function11a16d - dw Function11a192 - dw Function11a2e6 - dw Function11a302 - dw Function11a33a - dw BattleTowerRoomMenu2_PlaceYesNoMenu - dw BattleTowerRoomMenu2_UpdateYesNoMenu - dw Function11a357 - dw Function11a36b - dw Function11a38d - dw Function11a3c5 - dw Function11a3d9 - dw Function11a3f9 - dw Function11a41b - dw Function11a452 - dw Function11a47a - dw Function11a488 - dw Function11a49e - dw Function11a4db - dw Function11a4e8 - dw Function11a4fe - dw Function11a466 - dw Function11a47a -; 119f3f - -Function119f3f: ; 119f3f - call Function11a5b9 - jp BattleTowerRoomMenu2_IncrementJumptable -; 119f45 - -Function119f45: ; 119f45 - hlcoord 4, 2 - ld de, String_11a661 - call PlaceString - ld a, $80 - ld [wMobileInactivityTimerMinutes], a - jp BattleTowerRoomMenu2_IncrementJumptable -; 119f56 - -Function119f56: ; 119f56 - ld a, [wMobileInactivityTimerMinutes] - and a - jr z, .asm_119f62 - dec a - ld [wMobileInactivityTimerMinutes], a - scf - ret - -.asm_119f62 - call Function11a63c - hlcoord 4, 2 - ld de, String_11a6aa - call PlaceString - ld a, $80 - ld [wMobileInactivityTimerMinutes], a - jp BattleTowerRoomMenu2_IncrementJumptable -; 119f76 - -Function119f76: ; 119f76 - ld a, [wMobileInactivityTimerMinutes] - and a - jr z, .asm_119f82 - dec a - ld [wMobileInactivityTimerMinutes], a - scf - ret - -.asm_119f82 - call Function11a63c - hlcoord 4, 2 - ld de, String_11a679 - call PlaceString - call Function11a5f5 - xor a - ld [wMobileInactivityTimerMinutes], a - jp BattleTowerRoomMenu2_IncrementJumptable -; 119f98 - -Function119f98: ; 119f98 - call Function11a536 - ret c - call PlayClickSFX - ld a, [wMobileInactivityTimerMinutes] - and a - jr nz, .asm_119fef - call ExitMenu - call Function11a63c - xor a - ld [ScriptVar], a - call Function11a00e - ld a, [ScriptVar] - and a - jr z, .asm_119fd4 - call ExitMenu - callba ReloadMapPart - callba Function115dc3 - ld a, [wcd33] - ld [wcf66], a - ld a, $a - ld [wc300], a - scf - ret - -.asm_119fd4 - hlcoord 4, 2 - ld de, String_11a692 - call PlaceString - ld a, $1 - ld [wc30d], a - ld a, $1 - ld [wc314], a - callba ReloadMapPart - and a - ret - -.asm_119fef - call ExitMenu - call ExitMenu - callba ReloadMapPart - ld a, [wMobileInactivityTimerSeconds] - ld [wcf66], a - callba Function115dc3 - ld a, $a - ld [wc300], a - scf - ret -; 11a00e - -Function11a00e: ; 11a00e - ld a, BANK(sMobileLoginPassword) - call GetSRAMBank - ld a, [sMobileLoginPassword] - and a - jr z, .asm_11a02a - ld a, [sMobileLoginPassword + 1] - call CloseSRAM - and a - ret nz - ld a, BANK(sMobileLoginPassword) - call GetSRAMBank - xor a - ld [sMobileLoginPassword], a - -.asm_11a02a - call CloseSRAM - ld a, [BGMapPalBuffer] - and a - jr z, .asm_11a039 - dec a - jr z, .asm_11a081 - jp Function11a0ca - -.asm_11a039 - ld a, $3 - ld [rSVBK], a - ld hl, $c608 - ld de, w3_d800 - ld bc, $00f6 - call CopyBytes - ld a, $1 - ld [rSVBK], a - call FadeToMenu - callba Function11765d - call Function11a9ce - ld a, $3 - ld [rSVBK], a - ld hl, w3_d800 - ld de, $c608 - ld bc, $00f6 - call CopyBytes - ld a, $1 - ld [rSVBK], a - callba Function115d99 - ld c, $0 - callba Function115e18 - ld a, $1 - ld [wc305], a - ret - -.asm_11a081 - xor a - ld [wMenuBorderLeftCoord], a - ld [wMenuBorderTopCoord], a - ld a, $13 - ld [wMenuBorderRightCoord], a - ld a, $5 - ld [wMenuBorderBottomCoord], a - call PushWindow - callba Function11765d - callba Function117ab4 - callba MobileFunc_106462 - callba Function106464 - call ExitMenu - callba ReloadMapPart - callba Function115d99 - ld c, $0 - callba Function115e18 - ld a, $1 - ld [wc305], a - ret -; 11a0ca - -Function11a0ca: ; 11a0ca - xor a - ld [wMenuBorderLeftCoord], a - ld [wMenuBorderTopCoord], a - ld a, $13 - ld [wMenuBorderRightCoord], a - ld a, $11 - ld [wMenuBorderBottomCoord], a - call PushWindow - callba Function11765d - callba Function17d3f6 - callba MobileFunc_106462 - callba Function106464 - call ExitMenu - callba ReloadMapPart - callba Function115d99 - ld c, $0 - callba Function115e18 - ld a, $1 - ld [wc305], a - ret -; 11a113 - -Function11a113: ; 11a113 - call Function11a63c - ld c, $1 - callba Function115e18 - hlcoord 4, 2 - ld de, String_11a6c8 - call PlaceString - and a - ret -; 11a129 - -Function11a129: ; 11a129 - ld a, $80 - ld [wMobileInactivityTimerMinutes], a - jp BattleTowerRoomMenu2_IncrementJumptable -; 11a131 - -Function11a131: ; 11a131 - ld hl, wMobileInactivityTimerMinutes - dec [hl] - ret nz - ld a, [wcd3c] - inc a - ld [wcd3c], a - -Function11a13d: - call Function11a63c - hlcoord 4, 2 - ld de, String_11a6d2 - call PlaceString - and a - ret -; 11a14b - -Function11a14b: ; 11a14b - ld hl, wcd85 - ld a, [hl] - cp $f3 - jr nz, .asm_11a155 - and a - ret - -.asm_11a155 - call Function11a1d6 - ret c - call Function11a63c - hlcoord 4, 2 - ld de, String_11a6f1 - call PlaceString - ld a, $80 - ld [wMobileInactivityTimerMinutes], a - jp BattleTowerRoomMenu2_IncrementJumptable -; 11a16d - -Function11a16d: ; 11a16d - ld a, [wMobileInactivityTimerMinutes] - and a - jr z, .asm_11a179 - dec a - ld [wMobileInactivityTimerMinutes], a - scf - ret - -.asm_11a179 - call Function11a63c - call Function11a1e6 - hlcoord 4, 2 - ld de, $c346 - call PlaceString - call Function11a5f5 - xor a - ld [wMobileInactivityTimerMinutes], a - jp BattleTowerRoomMenu2_IncrementJumptable -; 11a192 - -Function11a192: ; 11a192 - call Function11a536 - ret c - call PlayClickSFX - ld a, [wMobileInactivityTimerMinutes] - and a - jr nz, .asm_11a1b6 - call ExitMenu - callba ReloadMapPart - call Function11a63c - hlcoord 4, 2 - ld de, String_11a6d2 - call PlaceString - and a - ret - -.asm_11a1b6 - call ExitMenu - callba ReloadMapPart - ld a, [wMobileInactivityTimerSeconds] - ld [wcf66], a - ld [wcd80], a - call Function11a63c - hlcoord 4, 2 - ld de, String_11a6d2 - call PlaceString - scf - ret -; 11a1d6 - -Function11a1d6: ; 11a1d6 - ld a, [wcd85] - cp $50 - jr nz, .asm_11a1e4 - ld a, $d3 - call Function118805 - scf - ret - -.asm_11a1e4 - and a - ret -; 11a1e6 - -Function11a1e6: ; 11a1e6 - ld hl, String_11a706 - ld de, $c346 - call Function11a1ff - ld hl, wcd85 - call Function11a1ff - ld hl, String_11a70b - call Function11a1ff - ld a, $50 - ld [de], a - ret -; 11a1ff - -Function11a1ff: ; 11a1ff -.asm_11a1ff - ld a, [hli] - cp $50 - ret z - ld [de], a - inc de - jr .asm_11a1ff -; 11a207 - -BattleTowerRoomMenu2_PlaceYesNoMenu: ; 11a207 - ld hl, MenuDataHeader_11a2de - call LoadMenuDataHeader - call MenuBox - call MenuBoxCoord2Tile - call ApplyTilemap - hlcoord 16, 8 - ld de, String_11a2cf - call PlaceString - hlcoord 16, 10 - ld de, String_11a2d3 - call PlaceString - hlcoord 15, 8 - ld a, $ed - ld [hl], a - xor a - ld [wMobileInactivityTimerMinutes], a - jp BattleTowerRoomMenu2_IncrementJumptable -; 11a235 - -BattleTowerRoomMenu2_UpdateYesNoMenu: ; 11a235 - ld hl, hJoyPressed - ld a, [hl] - and A_BUTTON - jr nz, .a_button - ld a, [hl] - and B_BUTTON - jr nz, .b_button - ld a, [hl] - and D_UP - jr nz, .d_up - ld a, [hl] - and D_DOWN - jr nz, .d_down -.asm_11a24c - call Function11a9f0 - scf - ret - -.d_up - xor a - ld [wcd8a], a - ld [wcd8b], a - ld a, [wMobileInactivityTimerMinutes] - and a - jr z, .asm_11a24c - xor a - ld [wMobileInactivityTimerMinutes], a - hlcoord 15, 8 - ld a, $ed - ld [hl], a - hlcoord 15, 10 - ld a, $7f - ld [hl], a - jr .asm_11a24c - -.d_down - xor a - ld [wcd8a], a - ld [wcd8b], a - ld a, [wMobileInactivityTimerMinutes] - and a - jr nz, .asm_11a24c - inc a - ld [wMobileInactivityTimerMinutes], a - hlcoord 15, 8 - ld a, $7f - ld [hl], a - hlcoord 15, 10 - ld a, $ed - ld [hl], a - jr .asm_11a24c - -.a_button - xor a - ld [wcd8a], a - ld [wcd8b], a - call PlayClickSFX - ld a, [wMobileInactivityTimerMinutes] - and a - jr nz, .exit_no_carry - call ExitMenu - callba ReloadMapPart - ld a, [wMobileInactivityTimerFrames] - cp $0 - jr z, .asm_11a2b4 - ld a, [wcd47] - jr .exit_carry - -.asm_11a2b4 - ld a, [wcd33] - -.exit_carry - ld [wcf66], a - ld a, $a - ld [wc300], a - scf - ret - -.b_button - call PlayClickSFX - -.exit_no_carry - call ExitMenu - callba ReloadMapPart - and a - ret -; 11a2cf - -String_11a2cf: ; 11a2cf - db "YES@" -; 11a2d3 - -String_11a2d3: ; 11a2d3 - db "NO@" -; 11a2d6 - -MenuDataHeader_11a2d6: ; 11a2d6 - db $40 ; flags - db 6, 14 ; start coords - db 10, 19 ; end coords - dw NULL - db 0 ; default option -; 11a2de - -MenuDataHeader_11a2de: ; 11a2de - db $40 ; flags - db 7, 14 ; start coords - db 11, 19 ; end coords - dw NULL - db 0 ; default option -; 11a2e6 - -Function11a2e6: ; 11a2e6 - call Function11a63c - ld c, $2 - callba Function115e18 - hlcoord 4, 2 - ld de, String_11a71e - call PlaceString - ld a, $80 - ld [wMobileInactivityTimerMinutes], a - jp BattleTowerRoomMenu2_IncrementJumptable -; 11a302 - -Function11a302: ; 11a302 - ld a, [wMobileInactivityTimerMinutes] - and a - jr z, .asm_11a30e - dec a - ld [wMobileInactivityTimerMinutes], a - scf - ret - -.asm_11a30e - call Function11a63c - hlcoord 4, 2 - ld de, String_11a72a - call PlaceString - hlcoord 9, 4 - ld de, wcd68 - lb bc, PRINTNUM_LEADINGZEROS | 1, 2 - call PrintNum - hlcoord 14, 4 - ld de, wcd67 - lb bc, PRINTNUM_LEADINGZEROS | 1, 2 - call PrintNum - ld a, $80 - ld [wMobileInactivityTimerMinutes], a - jp BattleTowerRoomMenu2_IncrementJumptable -; 11a33a - -Function11a33a: ; 11a33a - ld a, [wMobileInactivityTimerMinutes] - and a - jr z, .asm_11a346 - dec a - ld [wMobileInactivityTimerMinutes], a - scf - ret - -.asm_11a346 - call ExitMenu - callba ReloadMapPart - callba Function115dc3 - and a - ret -; 11a357 - -Function11a357: ; 11a357 - call Function11a63c - hlcoord 4, 2 - ld de, String_11a743 - call PlaceString - ld a, $80 - ld [wMobileInactivityTimerMinutes], a - jp BattleTowerRoomMenu2_IncrementJumptable -; 11a36b - -Function11a36b: ; 11a36b - ld a, [wMobileInactivityTimerMinutes] - and a - jr z, .asm_11a377 - dec a - ld [wMobileInactivityTimerMinutes], a - scf - ret - -.asm_11a377 - call Function11a63c - hlcoord 4, 2 - ld de, String_11a755 - call PlaceString - call Function11a5f5 - xor a - ld [wMobileInactivityTimerMinutes], a - jp BattleTowerRoomMenu2_IncrementJumptable -; 11a38d - -Function11a38d: ; 11a38d - call Function11a536 - ret c - call PlayClickSFX - ld a, [wMobileInactivityTimerMinutes] - and a - jr nz, .asm_11a3b1 - call ExitMenu - callba ReloadMapPart - call Function11a63c - hlcoord 4, 2 - ld de, String_11a6d2 - call PlaceString - and a - ret - -.asm_11a3b1 - call ExitMenu - callba ReloadMapPart - ld a, [wMobileInactivityTimerSeconds] - ld [wcf66], a - ld [wcd80], a - scf - ret -; 11a3c5 - -Function11a3c5: ; 11a3c5 - call Function11a63c - hlcoord 4, 2 - ld de, String_11a762 - call PlaceString - ld a, $80 - ld [wMobileInactivityTimerMinutes], a - jp BattleTowerRoomMenu2_IncrementJumptable -; 11a3d9 - -Function11a3d9: ; 11a3d9 - ld a, [wMobileInactivityTimerMinutes] - and a - jr z, .asm_11a3e5 - dec a - ld [wMobileInactivityTimerMinutes], a - scf - ret - -.asm_11a3e5 - call Function11a63c - hlcoord 4, 2 - ld de, String_11a779 - call PlaceString - ld a, $80 - ld [wMobileInactivityTimerMinutes], a - jp BattleTowerRoomMenu2_IncrementJumptable -; 11a3f9 - -Function11a3f9: ; 11a3f9 - ld a, [wMobileInactivityTimerMinutes] - and a - jr z, .asm_11a405 - dec a - ld [wMobileInactivityTimerMinutes], a - scf - ret - -.asm_11a405 - call Function11a63c - hlcoord 4, 2 - ld de, String_11a755 - call PlaceString - call Function11a5f5 - xor a - ld [wMobileInactivityTimerMinutes], a - jp BattleTowerRoomMenu2_IncrementJumptable -; 11a41b - -Function11a41b: ; 11a41b - call Function11a536 - ret c - call PlayClickSFX - ld a, [wMobileInactivityTimerMinutes] - and a - jr nz, .asm_11a43f - call ExitMenu - callba ReloadMapPart - call Function11a63c - hlcoord 4, 2 - ld de, String_11a6d2 - call PlaceString - and a - ret - -.asm_11a43f - call ExitMenu - callba ReloadMapPart - ld a, $1c - ld [wcf66], a - ld [wcd80], a - scf - ret -; 11a452 - -Function11a452: ; 11a452 - call Function11a63c - hlcoord 4, 2 - ld de, String_11a791 - call PlaceString - ld a, $80 - ld [wMobileInactivityTimerMinutes], a - jp BattleTowerRoomMenu2_IncrementJumptable -; 11a466 - -Function11a466: ; 11a466 - call Function11a63c - hlcoord 4, 2 - ld de, String_11a7c1 - call PlaceString - ld a, $80 - ld [wMobileInactivityTimerMinutes], a - jp BattleTowerRoomMenu2_IncrementJumptable -; 11a47a - -Function11a47a: ; 11a47a - ld a, [wMobileInactivityTimerMinutes] - and a - jr z, .asm_11a486 - dec a - ld [wMobileInactivityTimerMinutes], a - scf - ret - -.asm_11a486 - and a - ret -; 11a488 - -Function11a488: ; 11a488 - call Function11a63c - hlcoord 4, 2 - ld de, String_11a7ac - call PlaceString - call Function11a5f5 - xor a - ld [wMobileInactivityTimerMinutes], a - jp BattleTowerRoomMenu2_IncrementJumptable -; 11a49e - -Function11a49e: ; 11a49e - call Function11a536 - ret c - call PlayClickSFX - ld a, [wMobileInactivityTimerMinutes] - and a - jr nz, .asm_11a4c7 - call ExitMenu - callba ReloadMapPart - call Function11a63c - hlcoord 4, 2 - ld de, String_11a6d2 - call PlaceString - ld a, $14 - ld [wcf66], a - and a - ret - -.asm_11a4c7 - call ExitMenu - callba ReloadMapPart - ld a, [wMobileInactivityTimerFrames] - ld [wcf66], a - ld [wcd80], a - scf - ret -; 11a4db - -Function11a4db: ; 11a4db - call Function11a63c - ld de, String_11a6db - hlcoord 4, 2 - call PlaceString - ret -; 11a4e8 - -Function11a4e8: ; 11a4e8 - call Function11a63c - hlcoord 4, 2 - ld de, String_11a7d7 - call PlaceString - call Function11a5f5 - xor a - ld [wMobileInactivityTimerMinutes], a - jp BattleTowerRoomMenu2_IncrementJumptable -; 11a4fe - -Function11a4fe: ; 11a4fe - call Function11a536 - ret c - call PlayClickSFX - ld a, [wMobileInactivityTimerMinutes] - and a - jr nz, .asm_11a522 - call ExitMenu - callba ReloadMapPart - call Function11a63c - hlcoord 4, 2 - ld de, String_11a6d2 - call PlaceString - and a - ret - -.asm_11a522 - call ExitMenu - callba ReloadMapPart - ld a, [wMobileInactivityTimerSeconds] - ld [wcf66], a - ld [wcd80], a - scf - ret -; 11a536 - -Function11a536: ; 11a536 - ld hl, hJoyPressed - ld a, [hl] - and $1 - jr nz, .asm_11a5a7 - ld a, [hl] - and $2 - jr nz, .asm_11a5a2 - ld a, [hl] - and $40 - jr nz, .asm_11a564 - ld a, [hl] - and $80 - jr nz, .asm_11a583 -.asm_11a54d - ld a, [wcd3c] - cp $4 - jr z, .asm_11a562 - call Function11a9f0 - jr nz, .asm_11a562 - call ExitMenu - callba ReloadMapPart - -.asm_11a562 - scf - ret - -.asm_11a564 - xor a - ld [wcd8a], a - ld [wcd8b], a - ld a, [wMobileInactivityTimerMinutes] - and a - jr z, .asm_11a54d - xor a - ld [wMobileInactivityTimerMinutes], a - hlcoord 15, 7 - ld a, $ed - ld [hl], a - hlcoord 15, 9 - ld a, $7f - ld [hl], a - jr .asm_11a54d - -.asm_11a583 - xor a - ld [wcd8a], a - ld [wcd8b], a - ld a, [wMobileInactivityTimerMinutes] - and a - jr nz, .asm_11a54d - inc a - ld [wMobileInactivityTimerMinutes], a - hlcoord 15, 7 - ld a, $7f - ld [hl], a - hlcoord 15, 9 - ld a, $ed - ld [hl], a - jr .asm_11a54d - -.asm_11a5a2 - ld a, $1 - ld [wMobileInactivityTimerMinutes], a - -.asm_11a5a7 - xor a - ld [wcd8a], a - ld [wcd8b], a - and a - ret -; 11a5b0 - -BattleTowerRoomMenu2_IncrementJumptable: ; 11a5b0 - ld a, [wcd3c] - inc a - ld [wcd3c], a - scf - ret -; 11a5b9 - -Function11a5b9: ; 11a5b9 - xor a - ld [wMenuBorderLeftCoord], a - ld [wMenuBorderTopCoord], a - ld a, $13 - ld [wMenuBorderRightCoord], a - ld a, $5 - ld [wMenuBorderBottomCoord], a - call PushWindow - hlcoord 0, 0, AttrMap - ld b, $6 - ld c, $14 - hlcoord 0, 0 - ld b, $4 - ld c, $12 - call Function3eea - callba ReloadMapPart - call UpdateSprites - ld c, $0 - callba Function115e18 - ld a, $1 - ld [wc305], a - ret -; 11a5f5 - -Function11a5f5: ; 11a5f5 - ld a, $e - ld [wMenuBorderLeftCoord], a - ld a, $13 - ld [wMenuBorderRightCoord], a - ld a, $6 - ld [wMenuBorderTopCoord], a - ld a, $a - ld [wMenuBorderBottomCoord], a - call PushWindow - hlcoord 14, 6, AttrMap - ld b, $5 - ld c, $6 - hlcoord 14, 6 - ld b, $3 - ld c, $4 - call Function3eea - hlcoord 16, 7 - ld de, String_11a2cf - call PlaceString - hlcoord 16, 9 - ld de, String_11a2d3 - call PlaceString - hlcoord 15, 7 - ld a, $ed - ld [hl], a - callba ReloadMapPart - ret -; 11a63c - -Function11a63c: ; 11a63c - hlcoord 4, 1 - ld de, String_11a7f4 - call PlaceString - hlcoord 4, 2 - ld de, String_11a7f4 - call PlaceString - hlcoord 4, 3 - ld de, String_11a7f4 - call PlaceString - hlcoord 4, 4 - ld de, String_11a7f4 - call PlaceString - ret -; 11a661 - -String_11a661: ; 11a661 - db "これから モバイルセンターに" - next "でんわ", $1f, "かけます@" -; 11a679 - -String_11a679: ; 11a679 - db "モバイルアダプタ", $25, "じゅんびは" - next "できて いますか?@" -; 11a692 - -String_11a692: ; 11a692 - db "でんわ", $1f, "かけています" - next "しばらく おまちください@" -; 11a6aa - -String_11a6aa: ; 11a6aa - db "でんわをかけると つうわりょう" - next "せつぞくりょう", $4a, "かかります@" -; 11a6c8 - -String_11a6c8: ; 11a6c8 - db "せつぞく しました@" -; 11a6d2 - -String_11a6d2: ; 11a6d2 - db "つうしん ちゅう@" -; 11a6db - -String_11a6db: ; 11a6db - db "つうしん ちゅう" - next "セレクト エーでちゅうし@" -; 11a6f1 - -String_11a6f1: ; 11a6f1 - db "この サービスには" - next "つうわりょう", $25, "ほかに@" -; 11a706 - -String_11a706: ; 11a706 - db "おかね", $4a, "@" -; 11a70b - -String_11a70b: ; 11a70b - db "えん" - next "かかります よろしい ですか?@" -; 11a71e - -String_11a71e: ; 11a71e - db "つうしん しゅうりょう@" -; 11a72a - -String_11a72a: ; 11a72a - db "つないだ じかん" - next " やく ふん びょう@" -; 11a743 - -String_11a743: ; 11a743 - db "もっていない データが" - next "あります!@" -; 11a755 - -String_11a755: ; 11a755 - db "データ", $1f, "よみこみますか?@" -; 11a762 - -String_11a762: ; 11a762 - db "おなじ データ", $1f, "よみこんだ" - next "こと", $4a, "ありますが@" -; 11a779 - -String_11a779: ; 11a779 - db "そのデータ", $24, "なくなっているか" - next "こわれて います@" -; 11a791 - -String_11a791: ; 11a791 - db "もっている データと" - next "おなじデータしか ありません!@" -; 11a7ac - -String_11a7ac: ; 11a7ac - db "データ", $25, "よみこみを" - next "ちゅうし しますか?@" -; 11a7c1 - -String_11a7c1: ; 11a7c1 ; new news? - db "あたらしい ニュースは" - next "ありません でした@" -; 11a7d7 - -String_11a7d7: ; 11a7d7 - db "あたらしいニュース", $4a, "あります" - next "ニュース", $1f, "よみこみますか?@" -; 11a7f4 - -String_11a7f4: ; 11a7f4 - db " @" -; 11a804 - -MenuDataHeader_11a804: ; 11a804 - db $40 ; flags - db 0, 0 ; start coords - db 5, 19 ; end coords - dw NULL - db 0 ; default option -; 11a80c - -Function11a80c: ; 11a80c - ld de, hDivisor - ld bc, hDividend - ld hl, Unknown_11a89a - call Function11a88c - ld bc, hQuotient - ld hl, Unknown_11a8ba - call Function11a88c - ld bc, hPrintNum3 - ld hl, Unknown_11a8da - call Function11a88c - xor a - ld b, a - ld a, [hDivisor] - and $f - ld e, a - ld a, [hPrintNum7] - and $f - call Function11a884 - ld e, a - ld a, [hPrintNum9] - and $f - call Function11a884 - ld [wcd62], a - ld e, b - xor a - ld b, a - ld a, [hDivisor] - and $f0 - swap a - call Function11a884 - ld e, a - ld a, [hPrintNum7] - and $f0 - swap a - call Function11a884 - ld e, a - ld a, [hPrintNum9] - and $f0 - swap a - call Function11a884 - ld [wcd63], a - ld e, b - xor a - ld b, a - ld a, [hMathBuffer] - and $f - call Function11a884 - ld e, a - ld a, [hPrintNum8] - and $f - call Function11a884 - ld e, a - ld a, [hPrintNum10] - and $f - call Function11a884 - ld [wcd64], a - ret -; 11a884 - -Function11a884: ; 11a884 - add e - cp $a - ret c - sub $a - inc b - ret -; 11a88c - -Function11a88c: ; 11a88c - ld a, [bc] - sla a - ld c, a - xor a - ld b, a - add hl, bc - ld a, [hli] - ld [de], a - inc de - ld a, [hl] - ld [de], a - inc de - ret -; 11a89a - -Unknown_11a89a: ; 11a89a -x = 0 -rept 16 - bcd x % 100, x / 100 -x = x + 1 -endr - -Unknown_11a8ba: ; 11a8ba -x = 0 -rept 16 - bcd x % 100, x / 100 -x = x + 16 -endr - -Unknown_11a8da: ; 11a8da -x = 0 -rept 16 - bcd x % 100, x / 100 -x = x + 256 -endr -; 11a8fa - -BattleTowerRoomMenu_WriteMessage: ; 11a8fa - jumptable .Jumptable, $c31a -; 11a909 - -.Jumptable: ; 11a909 - dw BattleTowerRoomMenu_WriteMessage_DoNothing - dw Function11a90f - dw Function11a971 -; 11a90f - -Function11a90f: ; 11a90f - ld a, $1 - ld [rSVBK], a - call SpeechTextBox - ld a, $50 - ld hl, $c320 - ld bc, $008c - call ByteFill - ld a, [$c31b] - ld l, a - ld a, [$c31c] - ld h, a - ld de, $c320 -.asm_11a92c - ld a, [hli] - cp $57 - jr z, .asm_11a94f - cp $0 - jr z, .asm_11a92c - cp $50 - jr z, .asm_11a92c - cp $1 - jr z, .asm_11a941 - ld [de], a - inc de - jr .asm_11a92c - -.asm_11a941 - ld a, [hli] - ld c, a - ld a, [hli] - ld b, a -.asm_11a945 - ld a, [bc] - inc bc - cp $50 - jr z, .asm_11a92c - ld [de], a - inc de - jr .asm_11a945 - -.asm_11a94f - xor a - ld [$c31f], a - ld a, $c320 % $100 - ld [$c31b], a - ld a, $c320 / $100 - ld [$c31c], a - hlcoord 1, 14 - ld a, l - ld [$c31d], a - ld a, h - ld [$c31e], a - ld hl, $c31a - inc [hl] - ld a, $3 - ld [rSVBK], a - -BattleTowerRoomMenu_WriteMessage_DoNothing: - ret -; 11a971 - -Function11a971: ; 11a971 - ld hl, $c31f - ld a, [hJoyDown] - and a - jr nz, .asm_11a97f - ld a, [hl] - and a - jr z, .asm_11a97f - dec [hl] - ret - -.asm_11a97f - ld a, [Options] - and $7 - ld [hl], a - ld hl, wcd8d - ld a, [$c31b] - ld e, a - ld a, [$c31c] - ld d, a - ld a, [de] - inc de - ld [hli], a - ld a, e - ld [$c31b], a - ld a, d - ld [$c31c], a - ld a, $50 - ld [hl], a - ld a, [$c31d] - ld l, a - ld a, [$c31e] - ld h, a - ld de, wcd8d - call PlaceString - ld a, c - ld [$c31d], a - ld a, b - ld [$c31e], a - ld a, [wcd8d] - cp $50 - jr nz, .asm_11a9bf - xor a - ld [$c31a], a - -.asm_11a9bf - ret -; 11a9c0 - -BattleTowerRoomMenu_SetMessage: ; 11a9c0 - ld a, l - ld [$c31b], a - ld a, h - ld [$c31c], a - ld a, $1 - ld [$c31a], a - ret -; 11a9ce - -Function11a9ce: ; 11a9ce - call ClearBGPalettes - call ReloadTilesetAndPalettes - call Call_ExitMenu - callba MobileFunc_106462 - callba Function106464 - call ret_d90 - callba FinishExitMenu - call UpdateSprites - ret -; 11a9f0 - -Function11a9f0: ; 11a9f0 - ld a, $1 - and a - ret -; 11a9f4 - -Function11a9f4: ; 11a9f4 - ld a, [wcd8a] - ld l, a - ld a, [wcd8b] - ld h, a - inc hl - ld a, l - ld [wcd8a], a - ld a, h - ld [wcd8b], a - ld de, $d5d0 - add hl, de - bit 7, h - ret nz - ld a, $d6 - call Function118805 - and a - ret -; 11aa13 - -Text_SaveFileWillBeSent: ; 0x11aa13 - text "SAVE FILE will be" - line "sent." - done -; 0x11aa2c - -Text_SentSaveFileReadingNews: ; 0x11aa2c - text "Sent SAVE FILE." - line "Reading NEWS…" - done -; 0x11aa4b - -Text_ReadingNews: ; 0x11aa4b - text "Reading NEWS…" - done -; 0x11aa5a - -Text_ReceivedNews: ; 0x11aa5a - text "Received NEWS!" - done -; 0x11aa6a - -Text_QuitReadingNews: ; 0x11aa6a - text "Quit reading NEWS?" - done -; 0x11aa7e - -Text_CanceledSendingSaveFile: ; 0x11aa7e - text "Canceled sending" - line "SAVE FILE." - done -; 0x11aa9b - -Text_ReceivedOddEgg: ; 0x11aa9b - text "ODD EGG" - line "was received!" - done -; 0x11aab2 - -Text_RegisteringRecord: ; 0x11aab2 - text "Registering your" - line "record…" - done -; 0x11aacc - -Text_BattleRoomVisitLimit: ; 0x11aacc - text "One visit per day" - line "per BATTLE ROOM!" - done -; 0x11aaf0 - -Text_PartyMonTopsThisLevel: ; 0x11aaf0 - text "A party #MON" - line "tops this level." - done -; 0x11ab0f - -Text_UberRestriction: ; 0x11ab0f - text_from_ram wcd49 - text " may go" - line "only to BATTLE" - - para "ROOMS that are" - line "Lv.70 or higher." - done -; 0x11ab4a - -Text_CancelBattleRoomChallenge: ; 0x11ab4a - text "Cancel your BATTLE" - line "ROOM challenge?" - done -; 0x11ab6e - -Text_ExitGymLeaderHonorRoll: ; 0x11ab6e - text "Exit GYM LEADER" - line "HONOR ROLL?" - done -; 0x11ab8b - -Text_LinkingWithCenter: ; 0x11ab8b - text "Linking with the" - line "CENTER…" - done -; 0x11aba5 - -Text_WhatLevelDoYouWantToChallenge: ; 0x11aba5 - text "What level do you" - line "want to challenge?" - done -; 0x11abcb - -Text_CheckBattleRoomListByMaxLevel: ; 0x11abcb - text "Check BATTLE ROOM" - line "list by max level?" - done -; 0x11abf1 - -Text_EnterWhichBattleRoom: ; 0x11abf1 - text "Enter which" - line "BATTLE ROOM?" - done -; 0x11ac0b - -Text_WhichBattleRoom: ; 0x11ac0b - text "Which BATTLE ROOM?" - done -; 0x11ac1f - -Text_ThisBattleRoomPleaseWait: ; 0x11ac1f - text_from_ram StringBuffer3 - text "'s ROOM" - line "@" - text_from_ram StringBuffer4 - text "?" - cont "Please wait…" - done -; 0x11ac3e - -Function11ac3e: ; 11ac3e - call SpeechTextBox - call FadeToMenu - callab ClearSpriteAnims2 - call Function11ac51 - call CloseSubmenu - ret -; 11ac51 - -Function11ac51: ; 11ac51 - xor a - ld [hBGMapMode], a - 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 - ld [wcd49], a - ld [wcd4a], a - ld [wcd4c], a - ld [wcd4d], a - ld [wcd4e], a - call Function11ad1b - call DelayFrame -.loop - call JoyTextDelay - ld a, [wJumptableIndex] - bit 7, a - jr nz, .asm_11aca8 - call Function11b314 - call Function11acb7 - call Function11ad6e - ld a, 30 * 4 - ld [wCurrSpriteOAMAddr], a - callba DoNextFrameForAllSprites - callba ReloadMapPart - jr .loop - -.asm_11aca8 - call ClearSprites - pop af - ld [hInMenu], a - pop af - ld [VramState], a - pop af - ld [Options], a - ret -; 11acb7 - -Function11acb7: ; 11acb7 - ld hl, TilemapPack_11ba44 - ld a, [wcd49] - ld c, a - ld b, $0 - sla c - rl b - sla c - rl b - sla c - rl b - add hl, bc - decoord 6, 6 - ld a, [hli] - ld [de], a - decoord 0, 7 - ld bc, 7 - call CopyBytes - ld a, [wcd49] - inc a - ld [wcd49], a - ld a, [hl] - cp $ff - jr nz, .get_the_other - xor a - ld [wcd49], a -.get_the_other - ld hl, TilemapPack_11bb7d - ld a, [wcd4a] - ld c, a - ld b, $0 - sla c - rl b - sla c - rl b - sla c - rl b - add hl, bc - decoord 3, 9 - ld bc, 7 - call CopyBytes - ld a, [wcd4a] - inc a - ld [wcd4a], a - inc hl - ld a, [hl] - cp $ff - ret nz - xor a - ld [wcd4a], a - ret -; 11ad1b - -Function11ad1b: ; 11ad1b - call ClearBGPalettes - call ClearSprites - call ClearTileMap - callba Function17c000 - ld a, [wMenuCursorY] - ld [wcd82], a - dec a - ld [hObjectStructIndexBuffer], a - ld a, $10 - ld [wCurIconTile], a - ld hl, LoadMenuMonIcon - ld a, BANK(LoadMenuMonIcon) - ld e, $4 - rst FarCall - ld hl, LoadMenuMonIcon - ld a, BANK(LoadMenuMonIcon) - ld e, $5 - rst FarCall - ld hl, $c6d0 - ld bc, $0115 - xor a - call ByteFill - xor a - ld [wJumptableIndex], a - ld [wcf64], a - ld [wcf65], a - ld [wcf66], a - ld [wcd30], a - ld a, $2 - ld [wc7d4], a - callba Pokedex_OrderMonsByMode - ret -; 11ad6e - -Function11ad6e: ; 11ad6e - ld a, [wJumptableIndex] - ld hl, Jumptable_11ad78 - call Function11b239 - jp hl -; 11ad78 - -Jumptable_11ad78: ; 11ad78 - dw Function11b082 - dw Function11b0ff - dw Function11ad95 - dw Function11adc4 - dw Function11ae4e - dw Function11ae98 - dw Function11ad8f - dw Function11af04 - dw Function11af4e -; 11ad8a - -Function11ad8a: ; 11ad8a - ld hl, wJumptableIndex - inc [hl] - ret -; 11ad8f - -Function11ad8f: ; 11ad8f - ld hl, wJumptableIndex - set 7, [hl] - ret -; 11ad95 - -Function11ad95: ; 11ad95 - ld hl, MenuDataHeader_11ae38 - call LoadMenuDataHeader - call MenuBox - hlcoord 12, 12 - ld de, String_11ae40 - call PlaceString - hlcoord 10, 10, AttrMap - lb bc, 8, 8 - call Function11afd6 - callba ReloadMapPart - call Function11ad8a - ld a, $1 - ld [wMenuCursorY], a - ld hl, Unknown_11afcc - call Function11afb7 - -Function11adc4: - ld hl, hJoyPressed - ld a, [hl] - and a - ret z - ld a, [hl] - and $40 - jr nz, .asm_11ade6 - ld a, [hl] - and $80 - jr nz, .asm_11aded - ld a, [hl] - and $1 - jr nz, .asm_11ae06 - ld a, [hl] - and $2 - ret z - call PlayClickSFX - xor a - ld [wJumptableIndex], a - jr .asm_11ae2e - -.asm_11ade6 - ld a, [wMenuCursorY] - dec a - ret z - jr .asm_11adf4 - -.asm_11aded - ld a, [wMenuCursorY] - inc a - cp $4 - ret z - -.asm_11adf4 - push af - ld hl, Unknown_11afcc - call Function11afbb - pop af - ld [wMenuCursorY], a - ld hl, Unknown_11afcc - call Function11afb7 - ret - -.asm_11ae06 - call PlayClickSFX - ld a, [wMenuCursorY] - dec a - ld hl, wcd30 - ld [hl], a - and a - jr z, .asm_11ae28 - hlcoord 2, 14 - ld a, [wMenuCursorY] - cp $2 - jr z, .asm_11ae23 - call Function11b272 - jr .asm_11ae2b - -.asm_11ae23 - call Function11b267 - jr .asm_11ae2b - -.asm_11ae28 - ld a, $3 - ld [hl], a - -.asm_11ae2b - call Function11ad8a - -.asm_11ae2e - call ExitMenu - callba ReloadMapPart - ret -; 11ae38 - -MenuDataHeader_11ae38: ; 11ae38 - db $40 ; flags - db 10, 10 ; start coords - db 17, 17 ; end coords - dw NULL - db 0 ; default option -; 11ae40 - -String_11ae40: ; 11ae40 - db "どちらでも" - next "♂ォス" - next "♀メス" - db "@" -; 11ae4e - -Function11ae4e: ; 11ae4e - ld hl, MenuDataHeader_11afe8 - call LoadMenuDataHeader - call MenuBox - hlcoord 10, 14 - ld de, String_11aff0 - call PlaceString - ld hl, MenuDataHeader_11b013 - call LoadMenuDataHeader - call MenuBox - hlcoord 16, 8 - ld de, String_11b01b - call PlaceString - hlcoord 14, 7, AttrMap - lb bc, 5, 6 - call Function11afd6 - hlcoord 9, 12, AttrMap - lb bc, 6, 11 - call Function11afd6 - callba ReloadMapPart - call Function11ad8a - ld a, $1 - ld [wMenuCursorY], a - ld hl, Unknown_11afd2 - call Function11afb7 - -Function11ae98: - ld hl, hJoyPressed - ld a, [hl] - and a - ret z - ld a, [hl] - and D_UP - jr nz, .asm_11aec1 - ld a, [hl] - and D_DOWN - jr nz, .asm_11aec8 - ld a, [hl] - and A_BUTTON - jr nz, .asm_11aee1 - ld a, [hl] - and B_BUTTON - ret z - call PlayClickSFX -.asm_11aeb4 - hlcoord 2, 14 - ld a, $7f - ld [hl], a - ld a, $1 - ld [wJumptableIndex], a - jr .asm_11aef7 - -.asm_11aec1 - ld a, [wMenuCursorY] - dec a - ret z - jr .asm_11aecf - -.asm_11aec8 - ld a, [wMenuCursorY] - inc a - cp $3 - ret z - -.asm_11aecf - push af - ld hl, Unknown_11afd2 - call Function11afbb - pop af - ld [wMenuCursorY], a - ld hl, Unknown_11afd2 - call Function11afb7 - ret - -.asm_11aee1 - call PlayClickSFX - ld a, [wMenuCursorY] - cp $2 - jr z, .asm_11aeb4 - ld a, [wcd4b] - ld [ScriptVar], a - call Function11b022 - call Function11ad8a - -.asm_11aef7 - call ExitMenu - call ExitMenu - callba ReloadMapPart - ret -; 11af04 - -Function11af04: ; 11af04 - ld hl, MenuDataHeader_11afe8 - call LoadMenuDataHeader - call MenuBox - hlcoord 10, 14 - ld de, String_11b003 - call PlaceString - ld hl, MenuDataHeader_11b013 - call LoadMenuDataHeader - call MenuBox - hlcoord 16, 8 - ld de, String_11b01b - call PlaceString - hlcoord 14, 7, AttrMap - lb bc, 5, 6 - call Function11afd6 - hlcoord 9, 12, AttrMap - lb bc, 6, 11 - call Function11afd6 - callba ReloadMapPart - call Function11ad8a - ld a, $2 - ld [wMenuCursorY], a - ld hl, Unknown_11afd2 - call Function11afb7 - -Function11af4e: - ld hl, hJoyPressed - ld a, [hl] - and a - ret z - ld a, [hl] - and D_UP - jr nz, .asm_11af77 - ld a, [hl] - and D_DOWN - jr nz, .asm_11af7e - ld a, [hl] - and A_BUTTON - jr nz, .asm_11af97 - ld a, [hl] - and B_BUTTON - ret z - call PlayClickSFX -.asm_11af6a - hlcoord 2, 14 - ld a, $7f - ld [hl], a - ld a, $1 - ld [wJumptableIndex], a - jr .asm_11afaa - -.asm_11af77 - ld a, [wMenuCursorY] - dec a - ret z - jr .asm_11af85 - -.asm_11af7e - ld a, [wMenuCursorY] - inc a - cp $3 - ret z - -.asm_11af85 - push af - ld hl, Unknown_11afd2 - call Function11afbb - pop af - ld [wMenuCursorY], a - ld hl, Unknown_11afd2 - call Function11afb7 - ret - -.asm_11af97 - call PlayClickSFX - ld a, [wMenuCursorY] - cp $2 - jr z, .asm_11af6a - ld a, $6 - ld [wJumptableIndex], a - xor a - ld [ScriptVar], a - -.asm_11afaa - call ExitMenu - call ExitMenu - callba ReloadMapPart - ret -; 11afb7 - -Function11afb7: ; 11afb7 - ld e, $ed - jr asm_11afbd - -Function11afbb: - ld e, $7f - -asm_11afbd: - ld a, [wMenuCursorY] - dec a - ld c, a - ld b, 0 - add hl, bc - add hl, bc - ld a, e - ld e, [hl] - inc hl - ld d, [hl] - ld [de], a - ret -; 11afcc - -Unknown_11afcc: - dwcoord 11, 12 - dwcoord 11, 14 - dwcoord 11, 16 - -Unknown_11afd2: - dwcoord 15, 8 - dwcoord 15, 10 -; 11afd6 - -Function11afd6: ; 11afd6 - ld de, SCREEN_WIDTH - ld a, $3 -.row - push bc - push hl -.col - ld [hli], a - dec c - jr nz, .col - pop hl - add hl, de - pop bc - dec b - jr nz, .row - ret -; 11afe8 - -MenuDataHeader_11afe8: ; 11afe8 - db $40 ; flags - db 12, 9 ; start coords - db 17, 19 ; end coords - dw NULL - db 0 ; default option -; 11aff0 - -String_11aff0: ; 11aff0 - db "この じょうけんで" - next "よろしいですか?@" -; 11b003 - -String_11b003: ; 11b003 - db "こうかんを" - next "ちゅうししますか?@" -; 11b013 - -MenuDataHeader_11b013: ; 11b013 - db $40 ; flags - db 7, 14 ; start coords - db 11, 19 ; end coords - dw NULL - db 1 ; default option -; 11b01b - -String_11b01b: - db "はい" - next "いいえ@" -; 11b022 - -Function11b022: ; 11b022 - ld a, [wcd2e] - and a - jr z, .asm_11b02e - ld hl, StringBuffer3 - call Function11b03d - -.asm_11b02e - ld a, [wcd30] - and a - ret z - cp $3 - ret z - ld hl, StringBuffer4 - call Function11b03d - ret -; 11b03d - -Function11b03d: ; 11b03d - push hl - push af - ld c, $1 -.loop - ld a, [hli] - cp "♂" - jr z, .gender - cp "♀" - jr z, .gender - cp "@" - jr z, .done - inc c - jr .loop - -.gender - dec hl - ld a, "@" - ld [hli], a - -.done - dec hl - push hl - ld e, 4 - ld d, 0 - add hl, de - ld e, l - ld d, h - pop hl -.loop2 - ld a, [hld] - ld [de], a - dec de - dec c - jr nz, .loop2 - pop af - pop de - cp $1 - jr nz, .female - ld hl, .MaleString - jr .got_string - -.female - ld hl, .FemaleString - -.got_string - ld bc, 4 ; string length - call CopyBytes - ret -; 11b07a - -.MaleString: db "ォスの " -.FemaleString: db "メスの " - -Function11b082: ; 11b082 - call Function11b242 - ld a, $7 - ld [wc7d3], a - call Function11b099 - call Function11b295 - call Function11b275 - call SetPalettes - jp Function11ad8a -; 11b099 - -Function11b099: ; 11b099 - ld c, $6 - hlcoord 11, 1 - ld a, [wc7d3] - add a - ld b, a - xor a - call Function11b236 - ld a, [wc7d0] - ld e, a - ld d, $0 - ld hl, wc6d0 - add hl, de - ld e, l - ld d, h - hlcoord 11, 2 - ld a, [wc7d3] -.loop - push af - ld a, [de] - ld [wd265], a - push de - push hl - call .PlaceMonNameOrPlaceholderString - pop hl - ld de, 2 * SCREEN_WIDTH - add hl, de - pop de - inc de - pop af - dec a - jr nz, .loop - ret -; 11b0cf - -.PlaceMonNameOrPlaceholderString: ; 11b0cf - and a - ret z - - call .CheckSeenFlag - ret c - - call .SetCaughtFlag - push hl - call GetPokemonName - pop hl - call PlaceString - ret -; 11b0e1 - -.SetCaughtFlag: ; 11b0e1 - call CheckCaughtMemMon - jr nz, .okay - inc hl - ret - -.okay - ld a, $1 - ld [hli], a - ret -; 11b0ec - -.CheckSeenFlag: ; 11b0ec - call CheckSeenMemMon - ret nz - - inc hl - ld de, .EmptySlot - call PlaceString - scf - ret -; 11b0f9 - -.EmptySlot: ; 11b0f9 - db "ーーーーー@" -; 11b0ff - -Function11b0ff: ; 11b0ff - ld hl, hJoyPressed - ld a, [hl] - and $2 - jr nz, .asm_11b141 - ld a, [hl] - and $1 - jr nz, .asm_11b131 - call Function11b175 - jr nc, .asm_11b125 - ld a, [wcd4c] - inc a - and $3 - ld [wcd4c], a - xor a - ld [hBGMapMode], a - call Function11b099 - ld a, $1 - ld [hBGMapMode], a - ret - -.asm_11b125 - ld a, [wcd4c] - and a - ret z - inc a - and $3 - ld [wcd4c], a - ret - -.asm_11b131 - call Function11b20b - call CheckSeenMemMon - jr z, .asm_11b13d - ld a, $1 - jr .asm_11b148 - -.asm_11b13d - ld a, $2 - jr .asm_11b148 - -.asm_11b141 - ld hl, wJumptableIndex - ld a, $7 - ld [hl], a - ret - -.asm_11b148 - call PlayClickSFX - ld [wcd4b], a - and a - jr z, .asm_11b16c - ld a, [wcf65] - cp $0 - jr z, .asm_11b163 - cp $fe - jr z, .asm_11b167 - cp $ff - jr z, .asm_11b16b - jp Function11ad8a - -.asm_11b163 - ld a, $1 - jr .asm_11b16c - -.asm_11b167 - ld a, $2 - jr .asm_11b16c - -.asm_11b16b - xor a - -.asm_11b16c - ld [wcd30], a - ld a, $4 - ld [wJumptableIndex], a - ret -; 11b175 - -Function11b175: ; 11b175 - ld a, [wc7d3] - ld d, a - ld a, [wc7d2] - ld e, a - ld hl, hJoyLast - ld a, [hl] - and $40 - jr nz, .asm_11b19a - ld a, [hl] - and $80 - jr nz, .asm_11b1ae - ld a, d - cp e - jr nc, .asm_11b1ed - ld a, [hl] - and $20 - jr nz, .asm_11b1c6 - ld a, [hl] - and $10 - jr nz, .asm_11b1d8 - jr .asm_11b1ed - -.asm_11b19a - ld hl, wc7d1 - ld a, [hl] - and a - jr z, .asm_11b1a4 - dec [hl] - jr .asm_11b1ef - -.asm_11b1a4 - ld hl, wc7d0 - ld a, [hl] - and a - jr z, .asm_11b1ed - dec [hl] - jr .asm_11b1ef - -.asm_11b1ae - ld hl, wc7d1 - ld a, [hl] - inc a - cp e - jr nc, .asm_11b1ed - cp d - jr nc, .asm_11b1bc - inc [hl] - jr .asm_11b1ef - -.asm_11b1bc - ld hl, wc7d0 - add [hl] - cp e - jr nc, .asm_11b1ed - inc [hl] - jr .asm_11b1ef - -.asm_11b1c6 - ld hl, wc7d0 - ld a, [hl] - and a - jr z, .asm_11b1ed - cp d - jr nc, .asm_11b1d4 - xor a - ld [hl], a - jr .asm_11b1ef - -.asm_11b1d4 - sub d - ld [hl], a - jr .asm_11b1ef - -.asm_11b1d8 - ld hl, wc7d0 - ld a, d - add a - add [hl] - jr c, .asm_11b1e3 - cp e - jr c, .asm_11b1e8 - -.asm_11b1e3 - ld a, e - sub d - ld [hl], a - jr .asm_11b1ef - -.asm_11b1e8 - ld a, [hl] - add d - ld [hl], a - jr .asm_11b1ef - -.asm_11b1ed - and a - ret - -.asm_11b1ef - call Function11b295 - call Function11b275 - scf - ret -; 11b1f7 - -Function11b1f7: ; 11b1f7 - hlcoord 0, 0 - ld a, $32 - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT - call ByteFill - ret -; 11b203 - -Function11b203: ; 11b203 -.asm_11b203 - ld a, [de] - cp $ff - ret z - inc de - ld [hli], a - jr .asm_11b203 -; 11b20b - -Function11b20b: ; 11b20b - ld a, [wc7d1] - ld hl, wc7d0 - add [hl] - ld e, a - ld d, $0 - ld hl, $c6d0 - add hl, de - ld a, [hl] - ld [wd265], a - ret -; 11b21e - -CheckCaughtMemMon: ; 11b21e - push de - push hl - ld a, [wd265] - dec a - call CheckCaughtMon - pop hl - pop de - ret -; 11b22a - -CheckSeenMemMon: ; 11b22a - push de - push hl - ld a, [wd265] - dec a - call CheckSeenMon - pop hl - pop de - ret -; 11b236 - -Function11b236: ; 11b236 - jp FillBoxWithByte -; 11b239 - -Function11b239: ; 11b239 - ld e, a - ld d, 0 - add hl, de - add hl, de - ld a, [hli] - ld h, [hl] - ld l, a - ret -; 11b242 - -Function11b242: ; 11b242 - hlcoord 3, 4 - ld de, StringBuffer3 - call PlaceString - xor a - ld [MonType], a - callba GetGender - hlcoord 1, 4 - ld a, [CurPartySpecies] - ld bc, wcd2f - ld [bc], a - dec bc - jr c, asm_11b26a - jr z, asm_11b26f - ld a, $1 - ld [bc], a - -Function11b267: - ld [hl], $ef - ret - -asm_11b26a - xor a - ld [bc], a - ld [hl], $7f - ret - -asm_11b26f - ld a, $2 - ld [bc], a - -Function11b272: - ld [hl], $f5 - ret -; 11b275 - -Function11b275: ; 11b275 - call Function11b279 - ret -; 11b279 - -Function11b279: ; 11b279 - ld a, [wd265] - ld [CurSpecies], a - call CheckSeenMemMon - jr z, .asm_11b28f - call GetBaseData - ld a, [BaseGender] - ld [wcf65], a - jr .asm_11b294 - -.asm_11b28f - ld a, $ff - ld [wcf65], a - -.asm_11b294 - ret -; 11b295 - -Function11b295: ; 11b295 - hlcoord 4, 13 - ld de, String_11b308 - call PlaceString - hlcoord 4, 14 - ld de, String_11b308 - call PlaceString - call Function11b20b - call CheckSeenMemMon - jr z, .asm_11b2d1 - ld a, [$c608] - ld c, a - ld a, [$c608 + 1] - ld b, a - ld hl, $0007 - add hl, bc - xor a - ld [hl], a - ld hl, $0003 - add hl, bc - ld e, [hl] - callba FlyFunction_GetMonIcon - hlcoord 4, 14 - push hl - call GetPokemonName - jr .asm_11b2e7 - -.asm_11b2d1 - ld a, [$c608] - ld c, a - ld a, [$c608 + 1] - ld b, a - ld hl, $0007 - add hl, bc - ld a, $50 - ld [hl], a - hlcoord 4, 13 - push hl - ld de, String_11b30e - -.asm_11b2e7 - ld a, $6 - ld bc, StringBuffer4 -.asm_11b2ec - push af - ld a, [de] - ld [bc], a - inc de - inc bc - pop af - dec a - and a - jr nz, .asm_11b2ec - pop hl - ld de, StringBuffer4 - call PlaceString - ret -; 11b2fe - -String_11b2fe: ; 11b2fe - db "あげる#@" -; 11b303 - -String_11b303: ; 11b303 - db "ほしい#@" -; 11b308 - -String_11b308: ; 11b308 - db " @" -; 11b30e - -String_11b30e: ; 11b30e - db "みはっけん@" -; 11b314 - -Function11b314: ; 11b314 - call Function11b31b - call Function11b3d9 - ret -; 11b31b - -Function11b31b: ; 11b31b - ld hl, .Coords - ld a, [wJumptableIndex] - cp 2 - jr c, .tilemap_1 - ld a, [wc7d1] - cp 4 - jr nc, .tilemap_3 - cp 3 - jr c, .tilemap_1 - ld a, [wJumptableIndex] - cp 2 - jr z, .tilemap_1 - cp 3 - jr z, .tilemap_1 - cp 6 - jr z, .tilemap_1 - - ld bc, .Tilemap2 - jr .load_sprites - -.tilemap_3 - ld bc, .Tilemap3 - jr .load_sprites - -.tilemap_1 - ld bc, .Tilemap1 - -.load_sprites - call Function11b397 - ret -; 11b350 - -.Coords: - dbpixel 3, 11, 2, 6 ; 0 - dbpixel 3, 12, 2, 6 ; 1 - dbpixel 3, 13, 2, 6 ; 2 - dbpixel 3, 14, 2, 6 ; 3 - dbpixel 3, 15, 2, 6 ; 4 - dbpixel 3, 16, 2, 6 ; 5 - dbpixel 3, 17, 2, 6 ; 6 - dbpixel 4, 11, 2, 6 ; 7 - dbpixel 4, 12, 2, 6 ; 8 - dbpixel 4, 13, 2, 6 ; 9 - dbpixel 4, 14, 2, 6 ; 10 - dbpixel 4, 15, 2, 6 ; 11 - dbpixel 4, 16, 2, 6 ; 12 - dbpixel 4, 17, 2, 6 ; 13 - db -1 - -.Tilemap1: ; vtiles - db $30 ; 0 - db $31 ; 1 - db $31 ; 2 - db $31 ; 3 - db $31 ; 4 - db $31 ; 5 - db $32 ; 6 - db $40 ; 7 - db $41 ; 8 - db $41 ; 9 - db $41 ; 10 - db $41 ; 11 - db $41 ; 12 - db $42 ; 13 - -.Tilemap2: ; vtiles - db $30 ; 0 - db $31 ; 1 - db $31 ; 2 - db $39 ; 3 - db $39 ; 4 - db $39 ; 5 - db $39 ; 6 - db $40 ; 7 - db $41 ; 8 - db $41 ; 9 - db $39 ; 10 - db $39 ; 11 - db $39 ; 12 - db $39 ; 13 - -.Tilemap3: ; vtiles - db $39 ; 0 - db $39 ; 1 - db $39 ; 2 - db $39 ; 3 - db $39 ; 4 - db $39 ; 5 - db $39 ; 6 - db $39 ; 7 - db $39 ; 8 - db $39 ; 9 - db $39 ; 10 - db $39 ; 11 - db $39 ; 12 - db $39 ; 13 - -Function11b397: ; 11b397 - ld de, Sprites -.loop - ld a, [hl] - cp $ff - ret z - ld a, [wc7d1] - and $7 - swap a - add [hl] - inc hl ; 1 - ld [de], a - inc de - - ld a, [hli] ; 2 - ld [de], a - inc de - - ld a, [bc] - inc bc - ld [de], a - inc de - ld a, $5 ; OBPal 5 - ld [de], a - inc de - jr .loop -; 11b3b6 - -Function11b3b6: ; 11b3b6 -; unreferenced -.loop - ld a, [hl] - cp -1 - ret z - ld a, [wcd4d] - and $7 - swap a - add [hl] - inc hl - ld [de], a - inc de - ld a, [hli] - ld [de], a - inc de - push hl - ld l, c - ld h, b - ld a, [wcd4e] - add [hl] - inc bc - ld [de], a - inc de - pop hl - ld a, $5 - ld [de], a - inc de - jr .loop -; 11b3d9 - -Function11b3d9: ; 11b3d9 - ld de, Sprites + 28 * 4 - push de - ld a, [wc7d2] - dec a - ld e, a - ld a, [wc7d1] - ld hl, wc7d0 - add [hl] - cp e - jr z, .skip - ld hl, 0 - ld bc, $70 - call AddNTimes - ld e, l - ld d, h - ld b, 0 - ld a, d - or e - jr z, .load_sprites - ld a, [wc7d2] - ld c, a -.loop1 - ld a, e - sub c - ld e, a - ld a, d - sbc $0 - ld d, a - jr c, .load_sprites - inc b - jr .loop1 - -.skip - ld b, 14 * 8 - -.load_sprites - ld a, 2 * 8 + 5 - add b - pop hl - ld [hli], a - cp $41 - jr c, .version1 - ld a, [wJumptableIndex] - cp 4 - jr z, .version2 - cp 5 - jr z, .version2 - cp 7 - jr z, .version2 - cp 8 - jr z, .version2 - -.version1 - ld a, 19 * 8 + 3 - ld [hli], a - ld a, [wcd4c] - add $3c - ld [hli], a - ld a, [wcd4c] - add $1 - ld [hl], a - ret - -.version2 - ld a, 19 * 8 + 3 - ld [hli], a - ld a, $39 - ld [hli], a - xor a - ld [hl], a - ret -; 11b444 - -Function11b444: ; 11b444 -; special - call Mobile46_InitJumptable - call Mobile46_RunJumptable - ret -; 11b44b - -Mobile46_InitJumptable: ; 11b44b - xor a - ld [wJumptableIndex], a - ld [wcf64], a - ld [wcf65], a - ld [wcf66], a - call UpdateTime - ret -; 11b45c - -Mobile46_RunJumptable: ; 11b45c -.loop - call .IterateJumptable - call DelayFrame - ld a, [wJumptableIndex] - cp 4 - jr nz, .loop - ret -; 11b46a - -.IterateJumptable: ; 11b46a - jumptable .Jumptable, wJumptableIndex - -.Jumptable: - dw Function11b483 - dw Function11b570 - dw Function11b5c0 - dw Function11b5e0 - dw Function11b5e7 ; unused -; 11b483 - -Function11b483: ; 11b483 - call .InitRAM - ld hl, PlayerName - ld a, $5 ; Japanese Name Length -.loop1 - push af - ld a, [hli] - ld [bc], a - inc bc - pop af - dec a - and a - jr nz, .loop1 - - ld de, PARTYMON_STRUCT_LENGTH - ld hl, PartyMon1Species - ld a, [wcd82] - dec a - push af -.loop2 - and a - jr z, .okay - add hl, de - dec a - jr .loop2 - -.okay - push bc - ld a, PARTYMON_STRUCT_LENGTH -.loop3 - push af - ld a, [hli] - ld [bc], a - inc bc - pop af - dec a - and a - jr nz, .loop3 - - pop de - push bc - ld a, [de] - ld [CurSpecies], a - call GetBaseData - ld hl, MON_LEVEL - add hl, de - ld a, [hl] - ld [CurPartyLevel], a - ld hl, MON_MAXHP - add hl, de - push hl - ld hl, MON_STAT_EXP - 1 - add hl, de - pop de - push de - ld b, OTPARTYMON - predef CalcPkmnStats - pop de - ld h, d - ld l, e - dec hl - dec hl - ld a, [de] - ld [hli], a - inc de - ld a, [de] - ld [hl], a - pop bc - ld de, NAME_LENGTH - ld hl, PartyMonOT - pop af - push af -.loop4 - and a - jr z, .okay2 - add hl, de - dec a - jr .loop4 - -.okay2 - ld a, NAME_LENGTH - 1 -.loop5 - push af - ld a, [hli] - ld [bc], a - inc bc - pop af - dec a - and a - jr nz, .loop5 - ld de, NAME_LENGTH - ld hl, PartyMonNicknames - pop af - push af -.loop6 - and a - jr z, .okay3 - add hl, de - dec a - jr .loop6 - -.okay3 - ld a, NAME_LENGTH - 1 -.loop7 - push af - ld a, [hli] - ld [bc], a - inc bc - pop af - dec a - and a - jr nz, .loop7 - ld de, MAIL_STRUCT_LENGTH - ld hl, sPartyMail - pop af -.loop8 - and a - jr z, .okay4 - add hl, de - dec a - jr .loop8 - -.okay4 - ld a, $0 ; BANK(sPartyMail) - call GetSRAMBank - ld a, MAIL_STRUCT_LENGTH -.loop9 - push af - ld a, [hli] - ld [bc], a - inc bc - pop af - dec a - and a - jr nz, .loop9 - call CloseSRAM - jp Function11ad8a - -.InitRAM: - ld bc, $c626 - ld a, [PlayerID] - ld [wcd2a], a - ld [bc], a - inc bc - - ld a, [PlayerID + 1] - ld [wcd2b], a - ld [bc], a - inc bc - - ld a, [wSecretID] - ld [wcd2c], a - ld [bc], a - inc bc - - ld a, [wSecretID + 1] - ld [wcd2d], a - ld [bc], a - inc bc - - ld a, [wcd2e] - ld [bc], a - inc bc - - ld a, [wcd2f] - ld [bc], a - inc bc - - ld a, [wcd30] - ld [bc], a - inc bc - - ld a, [wd265] - ld [bc], a - inc bc - ret -; 11b570 - -Function11b570: ; 11b570 - call Function118007 - ld a, [ScriptVar] - and a - jr nz, .exit - call .SaveData - jp Function11ad8a - -.exit - ld a, $4 - ld [wJumptableIndex], a - ret - -.SaveData: - ld a, $3 - ld [rSVBK], a - - ld hl, w3_d800 - ld de, $c608 - ld bc, w3_d88f - w3_d800 - call CopyBytes - - ld a, $1 - ld [rSVBK], a - ld a, $5 - call GetSRAMBank - - ld de, $a800 - ld a, $1 - ld [de], a - inc de - ld hl, $c608 - ld bc, w3_d88f - w3_d800 - call CopyBytes - - push de - pop hl - - ld a, [hRTCMinutes] - ld [hli], a - ld a, [hRTCHours] - ld [hli], a - ld a, [hRTCDayLo] - ld [hli], a - ld a, [hRTCDayHi] - ld [hl], a - - call CloseSRAM - ret -; 11b5c0 - -Function11b5c0: ; 11b5c0 - ld a, [wcd82] - dec a - ld [CurPartyMon], a - xor a - ld [wPokemonWithdrawDepositParameter], a - callba RemoveMonFromPartyOrBox - callba Function170807 - callba SaveAfterLinkTrade - jp Function11ad8a -; 11b5e0 - -Function11b5e0: ; 11b5e0 - xor a - ld [ScriptVar], a - jp Function11ad8a -; 11b5e7 - -Function11b5e7: ; 11b5e7 - ret -; 11b5e8 - -Function11b5e8: ; 11b5e8 - ld a, $0 - call GetSRAMBank - ld hl, wRTC - ld de, $c608 - ld bc, 4 - call CopyBytes - call CloseSRAM - ld a, $5 - call GetSRAMBank - ld hl, $c608 - ld de, $b08c - ld bc, 4 - call CopyBytes - ld a, $2 - ld [$a800], a - ld a, [$a81f] - ld [wcd2a], a - ld a, [$a820] - ld [wcd2b], a - ld a, [$a821] - ld [wcd2c], a - ld a, [$a822] - ld [wcd2d], a - ld a, [$a823] - ld [wcd2e], a - ld a, [$a824] - ld [wcd2f], a - ld a, [$a825] - ld [wcd30], a - ld a, [$a826] - ld [wcd31], a - call CloseSRAM - call Mobile46_InitJumptable - call .loop - ret - -.loop - call .RunJumptable - call DelayFrame - ld a, [wJumptableIndex] - cp $1 - jr nz, .loop - ret - -.RunJumptable: - jumptable .Jumptable, wJumptableIndex -.Jumptable: - dw Function11b66d - dw Function11b6b3 -; 11b66d - -Function11b66d: ; 11b66d - call Function1180b8 - ld a, [ScriptVar] - and a - jr nz, .asm_11b6b0 - ld a, [rSVBK] - push af - ld a, $3 - ld [rSVBK], a - ld a, [w3_d090] - ld b, a - pop af - ld [rSVBK], a - ld a, b - and a - jr z, .asm_11b691 - cp $1 - jr nz, .asm_11b6b0 - call Function11b6b4 - jr .asm_11b6b0 - -.asm_11b691 - callba Function17081d - ld a, [ScriptVar] - and a - jr z, .asm_11b6b0 - xor a - ld [ScriptVar], a - ld a, [rSVBK] - push af - ld a, $3 - ld [rSVBK], a - ld a, $2 - ld [w3_d090], a - pop af - ld [rSVBK], a - -.asm_11b6b0 - jp Function11ad8a -; 11b6b3 - -Function11b6b3: ; 11b6b3 - ret -; 11b6b4 - -Function11b6b4: ; 11b6b4 - ld a, $5 - call GetSRAMBank - ld a, [wcd30] - ld [$c708], a - ld a, [wcd31] - ld [$c709], a - - ld a, $c708 % $100 - ld [wMobileMonSpeciesPointerBuffer], a - ld a, $c708 / $100 - ld [wMobileMonSpeciesPointerBuffer + 1], a - - ld a, $c60d % $100 ; Partymon Struct - ld [wMobileMonStructurePointerBuffer], a - ld a, $c60d / $100 - ld [wMobileMonStructurePointerBuffer + 1], a - - ld a, $c63d % $100 ; OT - ld [wMobileMonOTNamePointerBuffer], a - ld a, $c63d / $100 - ld [wMobileMonOTNamePointerBuffer + 1], a - - ld a, $c642 % $100 ; Nickname - ld [wMobileMonNicknamePointerBuffer], a - ld a, $c642 / $100 - ld [wMobileMonNicknamePointerBuffer + 1], a - - ld a, $c647 % $100 ; ??? - ld [wMobileMonMailPointerBuffer], a - ld a, $c647 / $100 - ld [wMobileMonMailPointerBuffer + 1], a - - ld a, $46 - ld [$c628], a - - ld de, $c63d - ld c, 5 - callba CheckStringForErrors - jr nc, .length_check_OT - callba Mobile_CopyDefaultOTName - -.length_check_OT - ld de, $c63d - lb bc, 1, 5 - callba CheckStringContainsLessThanBNextCharacters - jr nc, .error_check_nick - callba Mobile_CopyDefaultOTName - -.error_check_nick - ld de, $c642 - ld c, 5 - callba CheckStringForErrors - jr nc, .length_check_nick - callba Mobile_CopyDefaultNickname - -.length_check_nick - ld de, $c642 - lb bc, 1, 5 - callba CheckStringContainsLessThanBNextCharacters - jr nc, .error_check_mail - callba Mobile_CopyDefaultNickname - -.error_check_mail - ld de, $c647 - ld c, MAIL_MSG_LENGTH + 1 - callba CheckStringForErrors - jr nc, .length_check_mail - callba Mobile_CopyDefaultMail - -.length_check_mail - ld de, $c647 - lb bc, 2, MAIL_MSG_LENGTH + 1 - callba CheckStringContainsLessThanBNextCharacters - jr c, .fix_mail - ld a, b - cp $2 - jr nz, .mail_ok - -.fix_mail - callba Mobile_CopyDefaultMail - -.mail_ok - ld de, $c668 - ld c, $5 - callba CheckStringForErrors - jr nc, .length_check_author - callba Mobile_CopyDefaultMailAuthor - -.length_check_author - ld de, $c668 - lb bc, 1, 5 - callba CheckStringContainsLessThanBNextCharacters - jr nc, .author_okay - callba Mobile_CopyDefaultMailAuthor - -.author_okay - ld a, [$c60e] - cp -1 - jr nz, .item_okay - xor a - ld [$c60e], a - -.item_okay - ld a, [wcd31] - ld [$c60d], a - ld [CurSpecies], a - call GetBaseData - - ld hl, $c60d + MON_LEVEL - ld a, [hl] - cp MIN_LEVEL - ld a, MIN_LEVEL - jr c, .replace_level - ld a, [hl] - cp MAX_LEVEL - jr c, .done_level - ld a, MAX_LEVEL -.replace_level - ld [hl], a -.done_level - ld [CurPartyLevel], a - - ld hl, $c60d + MON_STAT_EXP - 1 - ld de, $c60d + MON_MAXHP - ld b, $1 - predef CalcPkmnStats - ld de, $c60d + MON_MAXHP - ld hl, $c60d + MON_HP - ld a, [de] - ld [hli], a - inc de - ld a, [de] - ld [hl], a - call AddMobileMonToParty - ret -; 11b7e5 - -Function11b7e5: ; 11b7e5 - ld a, [$c60d] ; species - ld [wOTTrademonSpecies], a - ld [CurPartySpecies], a - ld a, [wcd81] - ld [wc74e], a - ld hl, $c63d ; OT - ld de, wOTTrademonOTName - ld bc, 5 - call CopyBytes - ld a, "@" - ld [de], a - ld a, [$c60d + MON_ID] ; id - ld [wOTTrademonID], a - ld a, [$c60d + MON_ID + 1] - ld [wOTTrademonID + 1], a - ld hl, $c60d + MON_DVS ; dvs - ld a, [hli] - ld [wOTTrademonDVs], a - ld a, [hl] - ld [wOTTrademonDVs + 1], a - ld bc, $c60d ; pokemon_data_start - callba GetCaughtGender - ld a, c - ld [wOTTrademonCaughtData], a - call SpeechTextBox - call FadeToMenu - callba MobileTradeAnimation_ReceiveGetmonFromGTS - callba Function17d1f1 - ld a, $1 - ld [wForceEvolution], a - ld a, $2 - ld [wLinkMode], a - callba EvolvePokemon - xor a - ld [wLinkMode], a - callba SaveAfterLinkTrade - ld a, $5 - call GetSRAMBank - ld a, $5 - ld [$a800], a - call CloseSRAM - ld a, [MapGroup] - ld b, a - ld a, [MapNumber] - ld c, a - call GetMapTrigger - ld a, d - or e - jr z, .asm_11b872 - ld a, $1 - ld [de], a - -.asm_11b872 - call CloseSubmenu - call RestartMapMusic - ret -; 11b879 - -Function11b879: ; 11b879 - callba BattleTower_CheckSaveFileExistsAndIsYours - ld a, [ScriptVar] - and a - ret z - ld a, $5 - call GetSRAMBank - ld a, [$a800] - ld [ScriptVar], a - ld a, [$a890] - ld [wcd49], a - ld a, [$a891] - ld [wcd4a], a - ld a, [$a892] - ld [wcd4b], a - ld a, [$a893] - ld [wcd4c], a - call CloseSRAM - ld a, [ScriptVar] - and a - ret z - ld hl, wcd4c - ld a, [hRTCDayHi] - cp [hl] - ret nz - dec hl - ld a, [hRTCDayLo] - cp [hl] - ret nz - ld hl, wcd4a - ld a, [hRTCHours] - cp [hl] - jr nc, .asm_11b8d8 - ld a, $18 - sub [hl] - ld hl, hRTCHours - add [hl] - ld [wcd4c], a - ld a, [hRTCMinutes] - ld [wcd4b], a - xor a - ld [wcd4a], a - jr .asm_11b8e2 - -.asm_11b8d8 - ld a, [hRTCMinutes] - ld [wcd4b], a - ld a, [hRTCHours] - ld [wcd4c], a - -.asm_11b8e2 - xor a - ld l, a - ld h, a - ld b, a - ld d, a - ld a, [wcd4b] - ld e, a - ld a, [wcd4c] - ld c, $3c - call AddNTimes - add hl, de - push hl - xor a - ld l, a - ld h, a - ld b, a - ld d, a - ld a, [wcd49] - ld e, a - ld a, [wcd4a] - ld c, $3c - call AddNTimes - add hl, de - ld a, l - cpl - add $1 - ld e, a - ld a, h - cpl - adc $0 - ld d, a - pop hl - add hl, de - ld de, $ff88 - add hl, de - bit 7, h - ret z - ld a, $2 - ld [ScriptVar], a - ret -; 11b920 - -Function11b920: ; 11b920 - call Mobile46_InitJumptable - ld a, $5 - call GetSRAMBank - ld hl, $a81f - ld de, $c626 - ld bc, 8 - call CopyBytes - call CloseSRAM - call Function118000 - ret -; 11b93b - -Function11b93b: ; 11b93b - ld a, $5 - call GetSRAMBank - xor a - ld [$a800], a - ld hl, $a823 - ld de, $c608 - ld bc, $008f - call CopyBytes - call CloseSRAM - - ld a, $c608 % $100 - ld [wMobileMonSpeciesPointerBuffer], a - ld a, $c608 / $100 - ld [wMobileMonSpeciesPointerBuffer + 1], a - - ld a, $c611 % $100 - ld [wMobileMonStructurePointerBuffer], a - ld a, $c611 / $100 - ld [wMobileMonStructurePointerBuffer + 1], a - - ld a, $c641 % $100 - ld [wMobileMonOTNamePointerBuffer], a - ld a, $c641 / $100 - ld [wMobileMonOTNamePointerBuffer + 1], a - - ld a, $c646 % $100 - ld [wMobileMonNicknamePointerBuffer], a - ld a, $c646 / $100 - ld [wMobileMonNicknamePointerBuffer + 1], a - - ld a, $c64b % $100 - ld [wMobileMonMailPointerBuffer], a - ld a, $c64b / $100 - ld [wMobileMonMailPointerBuffer + 1], a - call AddMobileMonToParty - callba SaveAfterLinkTrade - ret -; 11b98f - -AddMobileMonToParty: ; 11b98f - ld hl, PartyCount - ld a, [hl] - ld e, a - inc [hl] - - ld a, [wMobileMonSpeciesPointerBuffer] - ld l, a - ld a, [wMobileMonSpeciesPointerBuffer + 1] - ld h, a - inc hl - ld bc, PartySpecies - ld d, e -.loop1 - inc bc - dec d - jr nz, .loop1 - ld a, e - ld [CurPartyMon], a - ld a, [hl] - ld [bc], a - inc bc - ld a, -1 - ld [bc], a - - ld hl, PartyMon1Species - ld bc, PARTYMON_STRUCT_LENGTH - ld a, e - ld [wMobileMonSpeciesBuffer], a -.loop2 - add hl, bc - dec a - and a - jr nz, .loop2 - ld e, l - ld d, h - ld a, [wMobileMonStructurePointerBuffer] - ld l, a - ld a, [wMobileMonStructurePointerBuffer + 1] - ld h, a - ld bc, PARTYMON_STRUCT_LENGTH - call CopyBytes - - ld hl, PartyMonOT - ld bc, NAME_LENGTH - ld a, [wMobileMonSpeciesBuffer] -.loop3 - add hl, bc - dec a - and a - jr nz, .loop3 - ld e, l - ld d, h - ld a, [wMobileMonOTNamePointerBuffer] - ld l, a - ld a, [wMobileMonOTNamePointerBuffer + 1] - ld h, a - ld bc, PKMN_NAME_LENGTH - 1 - call CopyBytes - ld a, "@" - ld [de], a - - ld hl, PartyMonNicknames - ld bc, PKMN_NAME_LENGTH - ld a, [wMobileMonSpeciesBuffer] -.loop4 - add hl, bc - dec a - and a - jr nz, .loop4 - ld e, l - ld d, h - ld a, [wMobileMonNicknamePointerBuffer] - ld l, a - ld a, [wMobileMonNicknamePointerBuffer + 1] - ld h, a - ld bc, PKMN_NAME_LENGTH - 1 - call CopyBytes - ld a, "@" - ld [de], a - - ld hl, sPartyMail - ld bc, MAIL_STRUCT_LENGTH - ld a, [wMobileMonSpeciesBuffer] -.loop5 - add hl, bc - dec a - and a - jr nz, .loop5 - ld a, BANK(sPartyMail) - call GetSRAMBank - ld e, l - ld d, h - ld a, [wMobileMonMailPointerBuffer] - ld l, a - ld a, [wMobileMonMailPointerBuffer + 1] - ld h, a - ld bc, MAIL_STRUCT_LENGTH - call CopyBytes - - call CloseSRAM - ret -; 11ba38 - -Function11ba38: ; 11ba38 - callba CheckCurPartyMonFainted - ret c - xor a - ld [ScriptVar], a - ret -; 11ba44 - -TilemapPack_11ba44: - db $47, $30, $0a, $0a, $0a, $0a, $0a, $56 ; 00 - db $46, $2f, $0a, $0a, $0a, $0a, $0a, $55 ; 01 - db $45, $3d, $0a, $0a, $0a, $0a, $0a, $54 ; 02 - db $44, $30, $0a, $0a, $0a, $0a, $0a, $53 ; 03 - db $43, $2f, $0a, $0a, $0a, $0a, $0a, $52 ; 04 - db $4a, $3d, $0a, $0a, $0a, $0a, $0a, $51 ; 05 - db $4a, $30, $0a, $0a, $0a, $0a, $0a, $50 ; 06 - db $4a, $2f, $0a, $0a, $0a, $0a, $0a, $4f ; 07 - db $4a, $3d, $0a, $0a, $0a, $0a, $0a, $4e ; 08 - db $4a, $30, $0a, $0a, $0a, $0a, $4d, $42 ; 09 - db $4a, $2f, $0a, $0a, $0a, $0a, $6b, $58 ; 0a - db $4a, $3d, $0a, $0a, $0a, $0a, $6a, $58 ; 0b - db $4a, $30, $0a, $0a, $0a, $0a, $69, $58 ; 0c - db $4a, $2f, $0a, $0a, $0a, $0a, $68, $58 ; 0d - db $4a, $3d, $0a, $0a, $0a, $66, $67, $58 ; 0e - db $4a, $30, $0a, $0a, $0a, $65, $0a, $58 ; 0f - db $4a, $2f, $0a, $0a, $0a, $64, $0a, $58 ; 10 - db $4a, $3d, $0a, $0a, $0a, $63, $0a, $58 ; 11 - db $4a, $30, $0a, $0a, $61, $62, $0a, $58 ; 12 - db $4a, $2f, $0a, $0a, $5f, $60, $0a, $58 ; 13 - db $4a, $3d, $0a, $61, $62, $0a, $0a, $58 ; 14 - db $4a, $30, $0a, $63, $0a, $0a, $0a, $58 ; 15 - db $4a, $2f, $69, $0a, $0a, $0a, $0a, $58 ; 16 - db $4a, $3d, $81, $0a, $0a, $0a, $0a, $58 ; 17 - db $4a, $30, $80, $0a, $0a, $0a, $0a, $58 ; 18 - db $4a, $2f, $7f, $0a, $0a, $0a, $0a, $58 ; 19 - db $4a, $3d, $0a, $0a, $0a, $0a, $0a, $58 ; 1a - db $4a, $30, $0a, $0a, $0a, $0a, $0a, $58 ; 1b - db $4a, $2f, $68, $87, $88, $89, $0a, $58 ; 1c - db $4a, $3d, $6e, $6f, $70, $75, $76, $58 ; 1d - db $4a, $30, $75, $76, $5c, $5d, $5e, $58 ; 1e - db $4a, $2f, $71, $72, $73, $74, $6d, $58 ; 1f - db $4a, $3d, $75, $76, $77, $8a, $8b, $58 ; 20 - db $4a, $30, $66, $67, $65, $0a, $6a, $58 ; 21 - db $4a, $2f, $83, $84, $0a, $83, $84, $58 ; 22 - db $4a, $3d, $0a, $85, $82, $84, $0a, $58 ; 23 - db $4a, $30, $41, $80, $40, $0a, $0a, $58 ; 24 - db $4a, $2f, $83, $0a, $0a, $0a, $0a, $58 ; 25 - db $4a, $3d, $40, $0a, $0a, $0a, $0a, $58 ; 26 - db -1 - -TilemapPack_11bb7d: - db $0a, $0a, $0a, $0a, $0a, $0a, $16, $00 ; 00 - db $78, $0a, $0a, $0a, $0a, $0a, $8c, $00 ; 01 - db $79, $0a, $0a, $0a, $0a, $0a, $8d, $00 ; 02 - db $7a, $0a, $0a, $0a, $0a, $0a, $8e, $00 ; 03 - db $7b, $0a, $0a, $0a, $0a, $0a, $8c, $00 ; 04 - db $7c, $0a, $0a, $0a, $0a, $0a, $8d, $00 ; 05 - db $7d, $0a, $0a, $0a, $0a, $0a, $8e, $00 ; 06 - db $2e, $7e, $0a, $0a, $0a, $0a, $8c, $00 ; 07 - db $2e, $80, $0a, $0a, $0a, $0a, $8d, $00 ; 08 - db $2e, $81, $0a, $0a, $0a, $0a, $8e, $00 ; 09 - db $2e, $82, $0a, $0a, $0a, $0a, $8c, $00 ; 0a - db $2e, $69, $0a, $0a, $0a, $0a, $8d, $00 ; 0b - db $2e, $6a, $0a, $0a, $0a, $0a, $8e, $00 ; 0c - db $2e, $6b, $0a, $0a, $0a, $0a, $8c, $00 ; 0d - db $2e, $0a, $68, $0a, $0a, $0a, $8d, $00 ; 0e - db $2e, $0a, $69, $0a, $0a, $0a, $8e, $00 ; 0f - db $2e, $0a, $0a, $6a, $0a, $0a, $8c, $00 ; 10 - db $2e, $0a, $0a, $6b, $0a, $0a, $8d, $00 ; 11 - db $2e, $0a, $0a, $0a, $80, $0a, $8e, $00 ; 12 - db $2e, $0a, $0a, $0a, $82, $0a, $8c, $00 ; 13 - db $2e, $0a, $0a, $0a, $6c, $0a, $8d, $00 ; 14 - db $2e, $0a, $0a, $0a, $0a, $83, $8e, $00 ; 15 - db $2e, $0a, $6b, $0a, $0a, $0a, $8c, $00 ; 16 - db $2e, $0a, $0a, $69, $0a, $0a, $8d, $00 ; 17 - db $2e, $0a, $0a, $6a, $0a, $0a, $8e, $00 ; 18 - db $2e, $0a, $0a, $0a, $68, $0a, $8c, $00 ; 19 - db $2e, $0a, $0a, $0a, $63, $0a, $8d, $00 ; 1a - db $2e, $0a, $0a, $61, $62, $0a, $8e, $00 ; 1b - db $2e, $0a, $0a, $0a, $5f, $60, $8c, $00 ; 1c - db $2e, $0a, $0a, $0a, $63, $0a, $8d, $00 ; 1d - db $2e, $0a, $0a, $0a, $0a, $69, $8c, $00 ; 1e - db $2e, $0a, $0a, $0a, $0a, $6b, $8d, $00 ; 1f - db $2e, $0a, $0a, $0a, $0a, $83, $8e, $00 ; 20 - db $2e, $0a, $0a, $0a, $0a, $86, $8c, $00 ; 21 - db $2e, $0a, $85, $0a, $0a, $0a, $8d, $00 ; 22 - db $2e, $0a, $0a, $84, $0a, $0a, $8e, $00 ; 23 - db -1 - - diff --git a/misc/mobile_5b.asm b/misc/mobile_5b.asm deleted file mode 100755 index 679f04342..000000000 --- a/misc/mobile_5b.asm +++ /dev/null @@ -1,833 +0,0 @@ -Function16c000: ; 16c000 -; unreferenced - ; Only for CGB - ld a, [hCGB] - and a - ret z - ; Only do this once per boot cycle - ld a, [hFFEA] - and a - ret z - ; Set some flag, preserving the old state - ld a, [wcfbe] - push af - set 7, a - ld [wcfbe], a - ; Do stuff - call MobileSystemSplashScreen_InitGFX ; Load GFX - callba SetRAMStateForMobile - callba EnableMobile - call .RunJumptable - callba DisableMobile - ; Prevent this routine from running again - ; until the next time the syatem is turned on - xor a - ld [hFFEA], a - ; Restore the flag state - pop af - ld [wcfbe], a - ret -; 16c031 - -.RunJumptable: ; 16c031 - xor a - ld [wJumptableIndex], a - ld [wcf64], a - ld [wd002], a - ld [wd003], a -.loop - call DelayFrame - callba Function10635c - ld a, [wd002] - ld hl, .Jumptable - rst JumpTable - call Function16cb2e - call Function16cbae - ld a, [wd002] - cp $ff - jr nz, .loop - ret -; 16c05c - -.Jumptable: ; 16c05c - dw .init - dw Function16c0ba - dw Function16c089 - dw Function16c09e - dw Function16c0a8 - dw Function16c0dc - dw Function16c0ec - dw Function16c0ba - dw Function16c0ca - dw Function16c0dc - dw Function16c0ec - dw .quit -; 16c074 - -.init ; 16c074 - ld a, [wcf64] - and a - ret z - ld [wd002], a - xor a - ld [wd003], a - ret -; 16c081 - -.quit ; 16c081 - push af - ld a, $ff - ld [wd002], a - pop af - ret -; 16c089 - -Function16c089: ; 16c089 - ld a, $1 - ld [Buffer2], a - ld [wd1f1], a - xor a - ld [hWY], a - call Function16c0fa - ld a, [wd002] - ld [wcf64], a - ret -; 16c09e - -Function16c09e: ; 16c09e - ld a, [wcf64] - cp $4 - ret nz - call Function16c0fa - ret -; 16c0a8 - -Function16c0a8: ; 16c0a8 - xor a - ld [Buffer2], a - ld [wd1f1], a - call ClearSprites - ld a, $90 - ld [hWY], a - call Function16c0fa - ret -; 16c0ba - -Function16c0ba: ; 16c0ba - call Function16c943 - push af - ld a, [wd003] - inc a - ld [wd003], a - pop af - call c, Function16c0fa - ret -; 16c0ca - -Function16c0ca: ; 16c0ca - ld a, [wd003] - cp $28 - push af - ld a, [wd003] - inc a - ld [wd003], a - pop af - call z, Function16c0fa - ret -; 16c0dc - -Function16c0dc: ; 16c0dc - call Function16ca11 - push af - ld a, [wd003] - inc a - ld [wd003], a - pop af - call c, Function16c0fa - ret -; 16c0ec - -Function16c0ec: ; 16c0ec - call ClearBGPalettes - call ClearScreen - push af - ld a, $ff - ld [wd002], a - pop af - ret -; 16c0fa - -Function16c0fa: ; 16c0fa - push af - ld a, [wd002] - inc a - ld [wd002], a - xor a - ld [wd003], a - pop af - ret -; 16c108 - -MobileSystemSplashScreen_InitGFX: ; 16c108 - call DisableLCD - ld hl, VTiles2 - ld de, .Tiles - lb bc, BANK(.Tiles), $68 - call Get2bpp - call .LoadPals - call .LoadTileMap - call .LoadAttrMap - hlbgcoord 0, 0 - call Function16cc73 - call Function16cc02 - xor a - ld [hBGMapMode], a - call EnableLCD - ret -; 16c130 - -.LoadPals: ; 16c130 - ld de, UnknBGPals - ld hl, UnknownMobilePalettes_16c903 - ld bc, 8 - ld a, $5 - call FarCopyWRAM - callba ApplyPals - ret -; 16c145 - -.LoadTileMap: ; 16c145 - hlcoord 0, 0 - ld bc, 20 - xor a - call ByteFill - ld hl, .TileMap - decoord 0, 1 - ld bc, $0154 - call CopyBytes - ret -; 16c15c - -.LoadAttrMap: ; 16c15c - hlcoord 0, 0, AttrMap - ld bc, SCREEN_WIDTH - xor a - call ByteFill - ld hl, .AttrMap - decoord 0, 1, AttrMap - ld bc, 17 * SCREEN_WIDTH - call CopyBytes - ret -; 16c173 - -.Tiles: -INCBIN "gfx/unknown/mobile_splash.2bpp" - -.TileMap: -INCBIN "gfx/unknown/mobile_splash.tilemap" - -.AttrMap: -INCBIN "gfx/unknown/mobile_splash.attrmap" - -UnknownMobilePalettes_16c903: ; 16c903 -INCLUDE "gfx/unknown/16c903.pal" - -; 16c943 - -Function16c943: ; 16c943 - ld a, [wd003] - and a - jr nz, .asm_16c95e - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - ld a, $ff - ld bc, $0008 - ld hl, UnknBGPals - call ByteFill - pop af - ld [rSVBK], a - -.asm_16c95e - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - ld e, $0 - ld a, $0 -.asm_16c969 - ld hl, UnknownMobilePalettes_16c903 - call Function16cab6 - call Function16cabb - ld d, a - ld hl, UnknBGPals - call Function16cab6 - call Function16cabb - cp d - jr z, .asm_16c991 - ld b, $1 -.asm_16c981 - dec a - cp d - jr z, .asm_16c988 - dec b - jr nz, .asm_16c981 - -.asm_16c988 - ld hl, UnknBGPals - call Function16cab6 - call Function16cadc - -.asm_16c991 - ld hl, UnknownMobilePalettes_16c903 - call Function16cab6 - call Function16cad8 - ld d, a - ld hl, UnknBGPals - call Function16cab6 - call Function16cad8 - cp d - jr z, .asm_16c9b9 - ld b, $1 -.asm_16c9a9 - dec a - cp d - jr z, .asm_16c9b0 - dec b - jr nz, .asm_16c9a9 - -.asm_16c9b0 - ld hl, UnknBGPals - call Function16cab6 - call Function16cb08 - -.asm_16c9b9 - ld hl, UnknownMobilePalettes_16c903 - call Function16cab6 - call Function16cac4 - ld d, a - ld hl, UnknBGPals - call Function16cab6 - call Function16cac4 - cp d - jr z, .asm_16c9e1 - ld b, $1 -.asm_16c9d1 - dec a - cp d - jr z, .asm_16c9d8 - dec b - jr nz, .asm_16c9d1 - -.asm_16c9d8 - ld hl, UnknBGPals - call Function16cab6 - call Function16cae8 - -.asm_16c9e1 - inc e - inc e - ld a, e - cp $8 - jr nz, .asm_16c969 - callba ApplyPals - call SetPalettes - ld a, [rSVBK] - push af - ld a, $1 - ld [rSVBK], a - ld a, [wd003] - cp $1f - jr z, .asm_16ca09 - pop af - ld [rSVBK], a - ld e, $0 - pop af - ld [rSVBK], a - and a - ret - -.asm_16ca09 - pop af - ld [rSVBK], a - pop af - ld [rSVBK], a - scf - ret -; 16ca11 - -Function16ca11: ; 16ca11 - ld a, [wd003] - and a - jr nz, .asm_16ca1d - callba ApplyPals - -.asm_16ca1d - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - ld e, $0 - ld a, $0 -.asm_16ca28 - ld hl, UnknBGPals - call Function16cab6 - call Function16cabb - cp $1f - jr z, .asm_16ca48 - ld b, $1 -.asm_16ca37 - inc a - cp $1f - jr z, .asm_16ca3f - dec b - jr nz, .asm_16ca37 - -.asm_16ca3f - ld hl, UnknBGPals - call Function16cab6 - call Function16cadc - -.asm_16ca48 - ld hl, UnknBGPals - call Function16cab6 - call Function16cad8 - cp $1f - jr z, .asm_16ca68 - ld b, $1 -.asm_16ca57 - inc a - cp $1f - jr z, .asm_16ca5f - dec b - jr nz, .asm_16ca57 - -.asm_16ca5f - ld hl, UnknBGPals - call Function16cab6 - call Function16cb08 - -.asm_16ca68 - ld hl, UnknBGPals - call Function16cab6 - call Function16cac4 - cp $1f - jr z, .asm_16ca88 - ld b, $1 -.asm_16ca77 - inc a - cp $1f - jr z, .asm_16ca7f - dec b - jr nz, .asm_16ca77 - -.asm_16ca7f - ld hl, UnknBGPals - call Function16cab6 - call Function16cae8 - -.asm_16ca88 - inc e - inc e - ld a, e - cp $8 - jr nz, .asm_16ca28 - callba ApplyPals - call SetPalettes - ld a, [rSVBK] - push af - ld a, $1 - ld [rSVBK], a - ld a, [wd003] - cp $1f - jr z, .asm_16caae - pop af - ld [rSVBK], a - pop af - ld [rSVBK], a - and a - ret - -.asm_16caae - pop af - ld [rSVBK], a - pop af - ld [rSVBK], a - scf - ret -; 16cab6 - -Function16cab6: ; 16cab6 - ld b, $0 - ld c, e - add hl, bc - ret -; 16cabb - -Function16cabb: ; 16cabb - inc hl - ld a, [hl] - srl a - srl a - and $1f - ret -; 16cac4 - -Function16cac4: ; 16cac4 - inc hl - ld a, [hld] - and $3 - ld b, a - ld a, [hl] - sla a - rl b - sla a - rl b - sla a - rl b - ld a, b - ret -; 16cad8 - -Function16cad8: ; 16cad8 - ld a, [hl] - and $1f - ret -; 16cadc - -Function16cadc: ; 16cadc - sla a - sla a - ld b, a - inc hl - ld a, [hl] - and $83 - or b - ld [hl], a - ret -; 16cae8 - -Function16cae8: ; 16cae8 - ld c, a - srl a - srl a - srl a - ld b, a - inc hl - ld a, [hl] - and $fc - or b - ld [hld], a - ld a, c - sla a - sla a - sla a - sla a - sla a - ld b, a - ld a, [hl] - and $1f - or b - ld [hl], a - ret -; 16cb08 - -Function16cb08: ; 16cb08 - ld b, a - ld a, [hl] - and $e0 - or b - ld [hl], a - ret -; 16cb0f - -Function16cb0f: ; 16cb0f - xor a - ld [Buffer1], a - ld [Buffer2], a - xor a - ld [wd1ec], a - ld a, $70 - ld [wd1ee], a - ld a, $4 - ld [wd1ed], a - ld a, $a0 - ld [wd1ef], a - xor a - ld [wd1f0], a - ret -; 16cb2e - -Function16cb2e: ; 16cb2e - ld a, [Buffer2] - and a - ret z - call Function16cb40 - ld hl, Unknown_16cb86 - ld de, Sprites - call Function16cb5d - ret -; 16cb40 - -Function16cb40: ; 16cb40 - ld hl, wd1ec - inc [hl] - ld a, [hl] - cp $18 - ret c - xor a - ld [hl], a - ld a, [wd1ef] - cp $a0 - jr nz, .asm_16cb57 - ld a, $a7 - ld [wd1ef], a - ret - -.asm_16cb57 - ld a, $a0 - ld [wd1ef], a - ret -; 16cb5d - -Function16cb5d: ; 16cb5d - ld a, [hli] - and a - ret z -.asm_16cb60 - push af - ld a, [wd1ee] - add [hl] - add $10 - ld [de], a - inc hl - inc de - ld a, [wd1ed] - add [hl] - add $8 - ld [de], a - inc hl - inc de - ld a, [wd1ef] - add [hl] - ld [de], a - inc hl - inc de - ld a, [wd1f0] - or [hl] - ld [de], a - inc hl - inc de - pop af - dec a - jr nz, .asm_16cb60 - ret -; 16cb86 - -Unknown_16cb86: - db 7 - db 0, 0, 0, 1 - db 8, 0, 1, 1 - db 8, 8, 2, 0 - db 8, 16, 3, 0 - db 16, 0, 4, 1 - db 16, 8, 5, 0 - db 16, 16, 6, 0 -; 16cba3 - -Function16cba3: ; 16cba3 - xor a - ld [wd1f1], a - ld [wd1f2], a - ld [wd1f3], a - ret -; 16cbae - -Function16cbae: ; 16cbae - ld a, [wd1f1] - and a - ret z - call Function16cbba - call Function16cbd1 - ret -; 16cbba - -Function16cbba: ; 16cbba - ld hl, wd1f2 - inc [hl] - ld a, [hl] - cp $c - ret c - xor a - ld [hl], a - ld a, [wd1f3] - inc a - cp $4 - jr c, .asm_16cbcd - xor a - -.asm_16cbcd - ld [wd1f3], a - ret -; 16cbd1 - -Function16cbd1: ; 16cbd1 - ld a, [wd1f3] - ld c, a - ld b, 0 - ld hl, Unknown_16cbfb - add hl, bc - ld a, [hl] - ld bc, 2 - ld hl, Unknown_16cfa3 - call AddNTimes - ld de, UnknBGPals + 1 palettes + 4 - ld bc, 2 - ld a, $5 - call FarCopyWRAM - callba ApplyPals - ld a, $1 - ld [hCGBPalUpdate], a - ret -; 16cbfb - -Unknown_16cbfb: - db 0, 1, 2, 1, 0, 1, 2 -; 16cc02 - -Function16cc02: ; 16cc02 - call Function16cc18 - call Function16cc49 - call Function16cc62 - call Function16cc25 - call Function16cc6e - call Function16cb0f - call Function16cba3 - ret -; 16cc18 - -Function16cc18: ; 16cc18 - ld hl, VTiles1 - ld de, GFX_16cca3 - lb bc, BANK(GFX_16cca3), $2e - call Get2bpp - ret -; 16cc25 - -Function16cc25: ; 16cc25 - ld hl, Unknown_16cfa9 - ld de, UnknBGPals + 1 palettes - call .CopyPal - ld hl, Unknown_16cfb1 - ld de, UnknOBPals - call .CopyPal - ld hl, Unknown_16cfb9 - ld de, UnknOBPals + 1 palettes - call .CopyPal - ret -; 16cc41 - -.CopyPal: ; 16cc41 - ld bc, 1 palettes - ld a, $5 - jp FarCopyWRAM -; 16cc49 - -Function16cc49: ; 16cc49 - hlcoord 4, 15 - ld a, $80 - call Function16cc5a - hlcoord 4, 16 - ld a, $90 - call Function16cc5a - ret -; 16cc5a - -Function16cc5a: ; 16cc5a - ld c, $10 -.asm_16cc5c - ld [hli], a - inc a - dec c - jr nz, .asm_16cc5c - ret -; 16cc62 - -Function16cc62: ; 16cc62 - hlcoord 0, 15, AttrMap - ld bc, $0028 - ld a, $1 - call ByteFill - ret -; 16cc6e - -Function16cc6e: ; 16cc6e - hlbgcoord 0, 0, VBGMap1 - jr Function16cc73 - -Function16cc73: - ld a, [rVBK] - push af - ld a, $0 - ld [rVBK], a - push hl - decoord 0, 0 - call Function16cc90 - pop hl - ld a, $1 - ld [rVBK], a - decoord 0, 0, AttrMap - call Function16cc90 - pop af - ld [rVBK], a - ret -; 16cc90 - -Function16cc90: ; 16cc90 - ld bc, $1214 -.asm_16cc93 - push bc -.asm_16cc94 - ld a, [de] - inc de - ld [hli], a - dec c - jr nz, .asm_16cc94 - ld bc, $000c - add hl, bc - pop bc - dec b - jr nz, .asm_16cc93 - ret -; 16cca3 - -GFX_16cca3: -INCBIN "gfx/unknown/16cca3.2bpp" - -Unknown_16cfa3: - RGB 31, 31, 31 - RGB 25, 27, 29 - RGB 16, 19, 25 - -Unknown_16cfa9: - RGB 31, 31, 31 - RGB 25, 27, 29 - RGB 31, 31, 31 - RGB 07, 07, 07 - - -Unknown_16cfb1: - RGB 31, 31, 31 - RGB 13, 09, 18 - RGB 26, 21, 16 - RGB 07, 07, 07 - - -Unknown_16cfb9: - RGB 31, 31, 31 - RGB 18, 05, 02 - RGB 27, 11, 12 - RGB 07, 07, 07 - -; 16cfc1 diff --git a/misc/mobile_5c.asm b/misc/mobile_5c.asm deleted file mode 100755 index 5b7418a0f..000000000 --- a/misc/mobile_5c.asm +++ /dev/null @@ -1,944 +0,0 @@ -Function170000: ; 170000 - ld a, [$c62b] - ld [wPlayerTrademonSpecies], a - ld hl, $c62e - ld de, wPlayerTrademonSenderName - ld bc, $0005 - call CopyBytes - ld a, $50 - ld [de], a - ld hl, $c663 - ld de, wPlayerTrademonOTName - ld bc, $0005 - call CopyBytes - ld a, $50 - ld [de], a - ld hl, $c648 - ld a, [hli] - ld [wPlayerTrademonDVs], a - ld a, [hl] - ld [wPlayerTrademonDVs + 1], a - ld hl, $c639 - ld a, [hli] - ld [wPlayerTrademonID], a - ld a, [hl] - ld [wPlayerTrademonID + 1], a - ld bc, $c633 - callba GetCaughtGender - ld a, c - ld [wPlayerTrademonCaughtData], a - ld a, [wcd81] - ld [wc74e], a - ld hl, $c608 - ld de, $d800 - ld bc, $008f - call CopyBytes - ret - -; 17005a - -Function17005a: ; 17005a - ld a, $5 - call GetSRAMBank - ld a, [$a824] - ld [wOTTrademonSpecies], a - ld hl, $a827 - ld de, wOTTrademonSenderName - ld bc, 5 ; Japanese Name Length - call CopyBytes - ld a, "@" - ld [de], a - ld hl, $a85c - ld de, wOTTrademonOTName - ld bc, 5 ; Japanese Name Length - call CopyBytes - ld a, "@" - ld [de], a - ld hl, $a841 - ld a, [hli] - ld [wOTTrademonDVs], a - ld a, [hl] - ld [wOTTrademonDVs + 1], a - ld hl, $a832 - ld a, [hli] - ld [wOTTrademonID], a - ld a, [hl] - ld [wOTTrademonID + 1], a - ld bc, $a82c - callba GetCaughtGender - ld a, c - ld [wOTTrademonCaughtData], a - ld a, [wcd81] - ld [wc74e], a - call CloseSRAM - ret - -; 1700b0 - -INCLUDE "misc/battle_tower_5c.asm" - -Function170be4: ; 170be4 - ld a, $5 - call GetSRAMBank - xor a - ld hl, $a894 - ld bc, $0008 - call ByteFill - call CloseSRAM - ret - -; 170bf7 - -Clears5_a89a: ; 170bf7 - ld a, $5 - call GetSRAMBank - ld hl, $a89a - xor a - ld [hli], a - ld [hl], a - call CloseSRAM - ret - -; 170c06 - -Function170c06: ; 170c06 - ld a, $5 - call GetSRAMBank - ld hl, $a894 - ld a, [wBattleResult] - and a - jr nz, .asm_170c15 - inc [hl] - -.asm_170c15 - inc hl - inc hl - ld a, [$a89b] - add [hl] - ld [hld], a - ld a, [$a89a] - adc [hl] - ld [hli], a - jr nc, .asm_170c27 - ld a, $ff - ld [hld], a - ld [hli], a - -.asm_170c27 - inc hl - push hl - ld de, 0 - xor a - ld [wd265], a -.asm_170c30 - ld hl, PartyMon1HP - ld a, [wd265] - call GetPartyLocation - ld a, [hli] - ld b, a - ld c, [hl] - inc hl - inc hl - ld a, [hld] - sub c - ld c, a - ld a, [hl] - sbc b - ld b, a - push de - pop hl - add hl, bc - push hl - pop de - jr c, .asm_170c58 - ld a, [wd265] - inc a - ld [wd265], a - cp $3 - jr c, .asm_170c30 - jr .asm_170c5b - -.asm_170c58 - ld de, -1 - -.asm_170c5b - pop hl - inc hl - ld a, e - add [hl] - ld [hld], a - ld a, d - adc [hl] - ld [hli], a - jr nc, .asm_170c69 - ld a, $ff - ld [hld], a - ld [hli], a - -.asm_170c69 - inc hl - push hl - ld b, $0 - ld c, $0 -.asm_170c6f - ld hl, PartyMon1HP - ld a, b - push bc - call GetPartyLocation - pop bc - ld a, [hli] - or [hl] - jr nz, .asm_170c7d - inc c - -.asm_170c7d - inc b - ld a, b - cp $3 - jr c, .asm_170c6f - pop hl - ld a, [hl] - add c - ld [hl], a - call CloseSRAM - ret - -; 170c8b - -Function170c8b: ; 170c8b - ld hl, LastEnemyCounterMove - ld b, $5 -.asm_170c90 - ld a, [hl] - xor $ff - ld [hli], a - dec b - jr nz, .asm_170c90 - ret - -; 170c98 - -CheckBTMonMovesForErrors: ; 170c98 - ld c, BATTLETOWER_NROFPKMNS - ld hl, wBT_OTTempPkmn1Moves -.loop - push hl - ld a, [hl] - cp NUM_ATTACKS + 1 - jr c, .okay - ld a, POUND - ld [hl], a - -.okay - inc hl - ld b, NUM_MOVES - 1 -.loop2 - ld a, [hl] - and a - jr z, .loop3 - cp NUM_ATTACKS + 1 - jr c, .next - -.loop3 - xor a - ld [hl], a - inc hl - dec b - jr nz, .loop3 - jr .done - -.next - inc hl - dec b - jr nz, .loop2 - -.done - pop hl - ld de, PARTYMON_STRUCT_LENGTH + PKMN_NAME_LENGTH - add hl, de - dec c - jr nz, .loop - ret - -; 170cc6 - -Function170cc6: ; 170cc6 - ld a, [rSVBK] - push af - ld a, $6 - ld [rSVBK], a - ld hl, LZ_170d16 - ld de, wDecompressScratch - call Decompress - ld a, $1 - ld [rVBK], a - ld de, wd000 - ld hl, VTiles0 - lb bc, $6, $c1 - call Get2bpp - xor a - ld [rVBK], a - ld hl, LZ_1715a4 - ld de, wd000 - call Decompress - ld de, UnknBGPals - ld hl, VTiles0 - lb bc, $6, $53 - call Get2bpp - pop af - ld [rSVBK], a - ret - -; 170d02 - -Function170d02: ; 170d02 - ld a, $1 - ld [rVBK], a - ld de, GFX_171848 - ld hl, VTiles1 tile $41 - lb bc, BANK(GFX_171848), $18 - call Get2bpp - xor a - ld [rVBK], a - ret - -; 170d16 - -LZ_170d16: -INCBIN "gfx/unknown/pichu_animated.2bpp.lz" - -LZ_1715a4: -INCBIN "gfx/unknown/egg_animated.2bpp.lz" - -GFX_171848: -INCBIN "gfx/unknown/171848.2bpp" - -Function1719c8: ; 1719c8 (5c:59c8) - ld a, [hInMenu] - push af - ld a, $1 - ld [hInMenu], a - call Function1719d6 - pop af - ld [hInMenu], a - ret - -Function1719d6: ; 1719d6 (5c:59d6) - callba BattleTowerRoomMenu_InitRAM - call Function1719ed - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - call Function171a11 - pop af - ld [rSVBK], a - ret - -Function1719ed: ; 1719ed (5c:59ed) - xor a - ld [wcd49], a - ld [wcd4a], a - dec a - ld [wcd4b], a - call ClearBGPalettes - call ClearSprites - callba Function171d2b - callba ReloadMapPart - callba ClearSpriteAnims - ret - -Function171a11: ; 171a11 (5c:5a11) -.loop - call JoyTextDelay - ld a, [wcd49] - bit 7, a - jr nz, .done - call Function171a36 - callba PlaySpriteAnimations - callba ReloadMapPart - jr .loop -.done - callba ClearSpriteAnims - call ClearSprites - ret - -Function171a36: ; 171a36 (5c:5a36) - ld a, [wcd49] - ld e, a - ld d, 0 - ld hl, Jumptable_171a45 - add hl, de - add hl, de - ld a, [hli] - ld h, [hl] - ld l, a - jp hl - -Jumptable_171a45: ; 171a45 (5c:5a45) - dw Function171a95 - dw Function171ac9 - dw Function171a5d - dw Function171ad7 - dw Function171a5d - dw Function171aec - dw Function171b4b - dw Function171b85 - dw Function171bcc - dw Function171c2c - dw Function171c39 - dw Function171c41 - - -Function171a5d: ; 171a5d (5c:5a5d) - ld a, [wc821] - bit 1, a - jr nz, .asm_171a6a - bit 0, a - ret nz - jp Function171c66 - -.asm_171a6a - ld a, $0 - call Function3e32 - ld [wc300], a - ld a, l - ld [wc301], a - ld a, h - ld [wc302], a - ld a, $a - call Function3e32 - ld a, [rSVBK] - push af - ld a, $1 - ld [rSVBK], a - callba BattleTowerRoomMenu_Cleanup - pop af - ld [rSVBK], a - ld a, $a - ld [wcd49], a - ret - -Function171a95: ; 171a95 (5c:5a95) - callba Function171ccd - hlcoord 2, 8 - ld de, String_171aa7 - call PlaceString - jp Function171c66 - -; 171aa7 (5c:5aa7) - -String_171aa7: ; 171aa7 - db "モバイルアダプタに" - next "せつぞく しています" - next "しばらく おまちください" - db "@" -; 171ac9 - -Function171ac9: ; 171ac9 (5c:5ac9) - ld de, wcd81 - ld hl, $5c - ld a, $2 - call Function3e32 - jp Function171c66 - -Function171ad7: ; 171ad7 (5c:5ad7) - xor a - ld hl, $c608 - ld bc, $66 - call ByteFill - ld de, $c608 - ld a, $c - call Function3e32 - jp Function171c66 - -Function171aec: ; 171aec (5c:5aec) - ld a, [rSVBK] - push af - ld a, $1 - ld [rSVBK], a - callba BattleTowerRoomMenu_Cleanup - pop af - ld [rSVBK], a - hlcoord 2, 6 - ld a, $8 -.asm_171b01 - push af - push hl - xor a - ld bc, $10 - call ByteFill - pop hl - ld de, $14 - add hl, de - pop af - dec a - jr nz, .asm_171b01 - hlcoord 2, 7 - ld a, $3 - ld de, $c608 -.asm_171b1b - push af - push hl - ld a, [de] - and a - jr z, .asm_171b34 - ld a, [wcd4b] - inc a - ld [wcd4b], a - push hl - call Function171b42 - pop hl - ld bc, $ffec - add hl, bc - call Function171b42 -.asm_171b34 - pop hl - ld bc, $14 - add hl, bc - add hl, bc - add hl, bc - pop af - dec a - jr nz, .asm_171b1b - jp Function171c66 - -Function171b42: ; 171b42 (5c:5b42) - ld a, [de] - inc de - and a - ret z - sub $20 - ld [hli], a - jr Function171b42 - -Function171b4b: ; 171b4b (5c:5b4b) - depixel 8, 2 - ld a, SPRITE_ANIM_INDEX_1D - call _InitSpriteAnimStruct - ld hl, SPRITEANIMSTRUCT_0C - add hl, bc - ld a, $8 - ld [hl], a - - depixel 8, 19 - ld a, SPRITE_ANIM_INDEX_1D - call _InitSpriteAnimStruct - ld hl, SPRITEANIMSTRUCT_0C - add hl, bc - ld a, $9 - ld [hl], a - - depixel 17, 14, 2, 0 - ld a, SPRITE_ANIM_INDEX_1D - call _InitSpriteAnimStruct - ld hl, SPRITEANIMSTRUCT_0C - add hl, bc - ld a, $a - ld [hl], a - - ld a, $4 - ld [wcd23], a - ld a, $8 - ld [wcd24], a - jp Function171c66 - -Function171b85: ; 171b85 (5c:5b85) - ld hl, hJoyPressed ; $ffa7 - ld a, [hl] - and $2 - jp nz, Function171b9f - ld a, [hl] - and $1 - jp nz, Function171bbd - ld a, [hl] - and $40 - jr nz, asm_171ba5 - ld a, [hl] - and $80 - jr nz, asm_171baf - ret - -Function171b9f: ; 171b9f (5c:5b9f) - ld a, $80 - ld [wcd49], a - ret - -asm_171ba5: ; 171ba5 (5c:5ba5) - ld a, [wcd4a] - and a - ret z - dec a - ld [wcd4a], a - ret - -asm_171baf: ; 171baf (5c:5baf) - ld a, [wcd4b] - ld c, a - ld a, [wcd4a] - cp c - ret z - inc a - ld [wcd4a], a - ret - -Function171bbd: ; 171bbd (5c:5bbd) - call PlayClickSFX - ld a, $8 - ld [wcd23], a - xor a - ld [wcd24], a - jp Function171c66 - -Function171bcc: ; 171bcc (5c:5bcc) - ld hl, hJoyPressed ; $ffa7 - ld a, [hl] - and $2 - jp nz, Function171bdc - ld a, [hl] - and $1 - jp nz, Function171beb - ret - -Function171bdc: ; 171bdc (5c:5bdc) - ld a, $4 - ld [wcd23], a - ld a, $8 - ld [wcd24], a - ld hl, wcd49 - dec [hl] - ret - -Function171beb: ; 171beb (5c:5beb) - ld a, $5 - call GetSRAMBank - ld a, [wcd4a] - ld [$aa4a], a - call CloseSRAM - ld hl, MenuDataHeader_171c6b - call LoadMenuDataHeader - call MenuBox - call MenuBoxCoord2Tile - callba ReloadMapPart - hlcoord 1, 14 - ld de, String_171c73 - call PlaceString - ld a, [wcd4a] - cp $2 - jr z, .asm_171c1f - ld a, $8 - jr .asm_171c21 -.asm_171c1f - ld a, $c -.asm_171c21 - ld [wcd24], a - ld a, $1e - ld [wcd4c], a - call Function171c66 - -Function171c2c: ; 171c2c (5c:5c2c) - ld hl, wcd4c - dec [hl] - ret nz - call ExitMenu - call ClearBGPalettes - jr asm_171c60 - -Function171c39: ; 171c39 (5c:5c39) - ld a, $28 - ld [wcd4c], a - call Function171c66 - -Function171c41: ; 171c41 (5c:5c41) - ld hl, wcd4c - dec [hl] - ret nz - call ClearBGPalettes - callba MobileFunc_106462 - callba Function106464 - ld a, $2 - ld [wc303], a - callba DisplayMobileError -asm_171c60: ; 171c60 (5c:5c60) - ld a, $80 - ld [wcd49], a - ret - -Function171c66: ; 171c66 (5c:5c66) - ld hl, wcd49 - inc [hl] - ret - -; 171c6b (5c:5c6b) - -MenuDataHeader_171c6b: ; 171c6b - db $40 ; flags - db 12, 0 ; start coords - db 17, 19 ; end coords - dw NULL - db 0 ; default option -; 171c73 - -String_171c73: ; 171c73 - db "モバイルセンターを けってい" - next "しました@" -; 171c87 - -Function171c87: ; 171c87 (5c:5c87) - call DisableLCD - ld hl, GFX_171db1 - ld de, VTiles2 tile $00 - ld bc, $6e0 - call CopyBytes - ld hl, LZ_172abd - ld de, VTiles0 tile $00 - call Decompress - call EnableLCD - ld hl, Tilemap_172491 - decoord 0, 0 - ld bc, $168 - call CopyBytes - ld hl, Attrmap_1727ed - decoord 0, 0, AttrMap - ld bc, $168 - call CopyBytes - hlcoord 3, 2 - ld de, String_172e31 - call PlaceString - hlcoord 3, 16 - ld de, String_172e3f - call PlaceString - ret - -Function171ccd: ; 171ccd (5c:5ccd) - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - ld hl, Palette_171d71 - ld de, UnknBGPals - ld bc, $40 - call CopyBytes - ld hl, EngineBuffer5 - ld a, $ff - ld [hli], a - ld a, $7f - ld [hl], a - call SetPalettes - pop af - ld [rSVBK], a - ret - -Function171cf0: ; 171cf0 (5c:5cf0) - xor a - hlcoord 4, 15 - ld [hli], a - ld [hli], a - ld a, [wcd4b] - xor $1 - ld [wcd4b], a - and a - jr nz, .asm_171d16 - ld hl, Tilemap_17251d - decoord 0, 7 - ld bc, $8c - call CopyBytes - hlcoord 3, 16 - ld de, String_172e3f - jp PlaceString - -.asm_171d16 - ld hl, Tilemap_1725f9 - decoord 0, 7 - ld bc, $8c - call CopyBytes - hlcoord 3, 16 - ld de, String_172e4e - jp PlaceString - -Function171d2b: ; 171d2b (5c:5d2b) - call DisableLCD - ld hl, GFX_171db1 - ld de, VTiles2 tile $00 - ld bc, $6e0 - call CopyBytes - ld hl, LZ_172abd - ld de, VTiles0 tile $00 - call Decompress - call EnableLCD - ld hl, Tilemap_172685 - decoord 0, 0 - ld bc, $168 - call CopyBytes - ld hl, Attrmap_172955 - decoord 0, 0, AttrMap - ld bc, $168 - call CopyBytes - hlcoord 2, 2 - ld de, String_172e5d - call PlaceString - hlcoord 14, 16 - ld de, String_172e58 - call PlaceString - ret - -; 171d71 (5c:5d71) - -Palette_171d71: - RGB 0, 0, 0 - RGB 3, 0, 0 - RGB 5, 0, 0 - RGB 31, 31, 29 - RGB 0, 2, 10 - RGB 2, 10, 21 - RGB 0, 0, 0 - RGB 10, 26, 31 - RGB 0, 0, 0 - RGB 0, 7, 8 - RGB 31, 8, 0 - RGB 1, 17, 15 - RGB 31, 16, 0 - RGB 31, 22, 0 - RGB 31, 27, 0 - RGB 31, 31, 0 - RGB 31, 18, 6 - RGB 0, 3, 0 - RGB 0, 9, 0 - RGB 0, 12, 0 - RGB 0, 16, 0 - RGB 0, 22, 0 - RGB 0, 25, 0 - RGB 0, 27, 0 - RGB 5, 5, 16 - RGB 8, 19, 28 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 31, 31, 29 - RGB 21, 21, 20 - RGB 11, 11, 10 - RGB 0, 0, 0 - -GFX_171db1: -INCBIN "gfx/unknown/ascii_font.2bpp" -Tilemap_172491: -INCBIN "gfx/unknown/172491.tilemap" -Tilemap_17251d: -INCBIN "gfx/unknown/17251d.tilemap" -Tilemap_1725f9: -INCBIN "gfx/unknown/1725f9.tilemap" -Tilemap_172685: -INCBIN "gfx/unknown/172685.tilemap" -Attrmap_1727ed: -INCBIN "gfx/unknown/1727ed.attrmap" -Attrmap_172955: -INCBIN "gfx/unknown/172955.attrmap" -LZ_172abd: -INCBIN "gfx/pokedex/slowpoke.2bpp.lz" - -String_172e31: ; 172e31 - db "パスワード", $1f, "いれてください@" -String_172e3f: ; 172e3f - db "きりかえ やめる けってい@" -String_172e4e: ; 172e4e - db "きりかえ やめる " -String_172e58: - db "けってい@" -String_172e5d: ; 172e5d - db "せつぞくする モバイルセンターを" - next "えらんで ください@" -; 172e78 - - -Function172e78: ; 172e78 (5c:6e78) - ld a, $7f - hlcoord 0, 0 - ld bc, $168 - call ByteFill - ld a, $7 - hlcoord 0, 0, AttrMap - ld bc, $168 - call ByteFill - call DisableLCD - ld hl, GameBoyN64GFX - ld de, VTiles2 tile $00 - ld bc, $610 - call CopyBytes - call EnableLCD - ld hl, Tilemap_1733af - decoord 0, 0 - ld bc, $168 - call CopyBytes - ld hl, Attrmap_173517 - decoord 0, 0, AttrMap - ld bc, $168 - call CopyBytes - ret - -; 172eb9 (5c:6eb9) - -Function172eb9: - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - ld hl, Palette_172edf - ld de, UnknBGPals - ld bc, $40 - call CopyBytes - ld hl, Palette_172edf - ld de, BGPals - ld bc, $40 - call CopyBytes - call SetPalettes - pop af - ld [rSVBK], a - ret - -; 172edf (5c:6edf) - -Palette_172edf: - RGB 5, 12, 17 - RGB 31, 31, 31 - RGB 18, 25, 28 - RGB 10, 17, 21 - RGB 6, 13, 18 - RGB 31, 31, 31 - RGB 20, 26, 28 - RGB 12, 19, 23 - RGB 3, 10, 16 - RGB 31, 31, 31 - RGB 6, 13, 18 - RGB 20, 26, 28 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 5, 5, 16 - RGB 8, 19, 28 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - -GameBoyN64GFX: -INCBIN "gfx/trade/game_boy_n64.2bpp" - -Tilemap_1733af: -IF DEF(CRYSTAL11) -INCBIN "gfx/unknown/1733af_corrupt.tilemap" -ELSE -INCBIN "gfx/unknown/1733af.tilemap" -ENDC - -Attrmap_173517: -INCBIN "gfx/unknown/173517.attrmap" diff --git a/misc/mobile_5f.asm b/misc/mobile_5f.asm deleted file mode 100644 index 816e23394..000000000 --- a/misc/mobile_5f.asm +++ /dev/null @@ -1,5310 +0,0 @@ - -SECTION "bank5F", ROMX - -Function17c000: ; 17c000 - - call DisableLCD - - ld hl, VTiles2 - ld bc, $31 tiles - xor a - call ByteFill - - call LoadStandardFont - call LoadFontsExtra - - ld hl, HaveWantMap - decoord 0, 0 - bccoord 0, 0, AttrMap - - ld a, SCREEN_HEIGHT -.y - push af - ld a, SCREEN_WIDTH - - push hl -.x - push af - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [bc], a - inc bc - pop af - dec a - jr nz, .x - pop hl - - push bc - ld bc, BG_MAP_WIDTH * 2 - add hl, bc - pop bc - - pop af - dec a - jr nz, .y - - ld a, [rSVBK] - push af - - ld a, 5 ; BANK(UnknBGPals) - ld [rSVBK], a - - ld hl, HaveWantPals - ld de, UnknBGPals - ld bc, $80 - call CopyBytes - - pop af - ld [rSVBK], a - - ld hl, MobileSelectGFX - ld de, VTiles0 tile $30 - ld bc, $20 tiles - call CopyBytes - - ld a, 1 - ld [rVBK], a - - ld hl, HaveWantGFX - ld de, VTiles2 - ld bc, $80 tiles - call CopyBytes - - ld hl, HaveWantGFX + $800 - ld de, VTiles1 - ld bc, $10 tiles - call CopyBytes - - xor a - ld [rVBK], a - - call EnableLCD - callba ReloadMapPart - ret -; 17c083 - -HaveWantGFX: ; 17c083 -INCBIN "gfx/mobile/havewant.2bpp" - -MobileSelectGFX: ; 17c983 -INCBIN "gfx/mobile/select.2bpp" - -HaveWantMap: ; 17cb83 -; Interleaved tile/palette map. -INCBIN "gfx/mobile/havewant_map.bin" - -HaveWantPals: ; 17cff3 -; BG and OBJ palettes. - RGB 0, 0, 0 - RGB 21, 21, 21 - RGB 0, 0, 0 - RGB 0, 0, 0 - - RGB 0, 0, 0 - RGB 4, 17, 29 - RGB 6, 19, 31 - RGB 31, 31, 31 - - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - - RGB 0, 0, 0 - RGB 2, 13, 18 - RGB 6, 19, 31 - RGB 31, 31, 31 - - RGB 0, 0, 0 - RGB 31, 5, 5 - RGB 29, 21, 21 - RGB 31, 31, 31 - - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - - RGB 0, 0, 0 - RGB 4, 17, 29 - RGB 6, 19, 31 - RGB 2, 15, 27 - - RGB 0, 0, 0 - RGB 28, 19, 18 - RGB 25, 9, 0 - RGB 0, 0, 0 - - RGB 0, 0, 0 - RGB 31, 27, 27 - RGB 31, 10, 4 - RGB 29, 0, 0 - - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 26, 8, 23 - RGB 22, 0, 16 - - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 20, 8, 31 - RGB 15, 1, 26 - - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 17, 12, 31 - RGB 12, 6, 31 - - RGB 0, 16, 0 - RGB 11, 11, 14 - RGB 5, 5, 7 - RGB 31, 31, 31 - - RGB 0, 31, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - - RGB 16, 31, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - - -CheckStringForErrors: ; 17d073 -; Valid character ranges: -; $0, $5 - $13, $19 - $1c, $26 - $34, $3a - $3e, $40 - $48, $60 - $ff -.loop - ld a, [de] - inc de - and a - jr z, .NextChar - cp $60 - jr nc, .NextChar - cp $4e - jr z, .NextChar - cp "@" - jr z, .Done - cp $5 - jr c, .Fail - cp "" - jr c, .NextChar - cp $19 - jr c, .Fail - cp $1d - jr c, .NextChar - cp $26 - jr c, .Fail - cp $35 - jr c, .NextChar - cp $3a - jr c, .Fail - cp $3f - jr c, .NextChar - cp $40 - jr c, .Fail - cp $49 - jr c, .NextChar - -.Fail: - scf - ret - -.NextChar: - dec c - jr nz, .loop - -.Done: - and a - ret -; 17d0b3 - -CheckStringForErrors_IgnoreTerminator: ; 17d0b3 -; Find control chars -.loop - ld a, [de] - inc de - and a - jr z, .next - cp "" + 1 - jr nc, .next - cp "" - jr z, .next - cp "@" - jr z, .next - - cp $5 - jr c, .end - cp "" - jr c, .next - cp $19 - jr c, .end - cp $1d - jr c, .next - cp "%" + 1 - jr c, .end - cp $35 - jr c, .next - cp "" + 1 - jr c, .end - cp "" - jr c, .next - cp "" + 1 - jr c, .end - cp "" - jr c, .next - -.end - scf - ret - -.next - dec c - jr nz, .loop - and a - ret -; 17d0f3 - -Function17d0f3: ; 17d0f3 - ld a, [$c608 + 5] - ld [wOTTrademonSpecies], a - ld [CurPartySpecies], a - ld a, [wcd81] - ld [$c74e], a - ld hl, $c63d - ld de, wOTTrademonOTName - ld bc, 5 - call CopyBytes - ld a, "@" - ld [de], a - ld a, [$c608 + 11] - ld [wOTTrademonID], a - ld a, [$c608 + 12] - ld [wOTTrademonID + 1], a - ld hl, $c608 + 26 - ld a, [hli] - ld [wOTTrademonDVs], a - ld a, [hl] - ld [wOTTrademonDVs + 1], a - ld bc, $c608 + 5 - callba GetCaughtGender - ld a, c - ld [wOTTrademonCaughtData], a - call SpeechTextBox - call FadeToMenu - callba Function10804d - callba Function17d1f1 - ld a, $1 - ld [wForceEvolution], a - ld a, $2 - ld [wLinkMode], a - callba EvolvePokemon - xor a - ld [wLinkMode], a - callba SaveAfterLinkTrade - ld a, $5 - call GetSRAMBank - ld a, $5 - ld [$a800], a - call CloseSRAM - ld a, [MapGroup] - ld b, a - ld a, [MapNumber] - ld c, a - call GetMapTrigger - ld a, d - or e - jr z, .asm_17d180 - ld a, $1 - ld [de], a - -.asm_17d180 - call CloseSubmenu - call RestartMapMusic - ret -; 17d187 - -Mobile_CopyDefaultOTName: ; 17d187 - ld hl, Mobile5F_KrissName - ld de, $c63d - ld bc, 5 - call CopyBytes - ret -; 17d194 - -Mobile5F_KrissName: - db "クりス@@" -; 17d198 - -Mobile_CopyDefaultNickname: ; 17d199 - ld hl, .DefaultNickname - ld de, $c642 - ld bc, 5 - call CopyBytes - ret -; 17d1a6 - -.DefaultNickname: - db "?????" - -Mobile_CopyDefaultMail: ; 17d1ab - ld a, "@" - ld hl, $c647 - ld bc, MAIL_MSG_LENGTH + 1 - call ByteFill - ld hl, .DefaultMessage - ld de, $c647 - ld bc, 6 - call CopyBytes - ret -; 17d1c3 - -.DefaultMessage: - db "こんにちは@" -; 17d1c9 - -Mobile_CopyDefaultMailAuthor: ; 17d1c9 - ld a, "@" - ld de, $c668 - ld bc, 5 - call ByteFill - ld hl, Mobile5F_KrissName - ld de, $c668 - ld bc, 5 - call CopyBytes - ret -; 17d1e1 - -CheckStringContainsLessThanBNextCharacters: ; 17d1e1 -.loop - ld a, [de] - inc de - cp "" - jr nz, .next_char - dec b - jr z, .done - -.next_char - dec c - jr nz, .loop - and a - ret - -.done - scf - ret -; 17d1f1 - -Function17d1f1: ; 17d1f1 - ld a, [CurPartySpecies] - dec a - call SetSeenAndCaughtMon - - ld a, [CurPartySpecies] - cp UNOWN - jr nz, .asm_17d223 - - ld hl, PartyMon1DVs - ld a, [PartyCount] - dec a - ld bc, PARTYMON_STRUCT_LENGTH - call AddNTimes - predef GetUnownLetter - callab UpdateUnownDex - ld a, [wFirstUnownSeen] - and a - jr nz, .asm_17d223 - - ld a, [UnownLetter] - ld [wFirstUnownSeen], a - -.asm_17d223 - ret -; 17d224 - - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; Parameter: [ScriptVar] = 0..1 -; -; if [ScriptVar] == 0 -; Show japanese menu options -; - News - News - ??? - Cancel -; if [ScriptVar] == 1 -; Show BattleTower-Menu with 3 options in english language -; - Challenge - Explanation - Cancel -Special_Menu_ChallengeExplanationCancel: ; 17d224 - ld a, [ScriptVar] - and a - jr nz, .English - ld a, $4 - ld [ScriptVar], a - ld hl, MenuDataHeader_17d26a ; Japanese Menu, where you can choose 'News' as an option - jr .Load_Interpret - -.English: - ld a, $4 - ld [ScriptVar], a - ld hl, MenuDataHeader_ChallengeExplanationCancel ; English Menu - -.Load_Interpret: - call LoadMenuDataHeader - call Function17d246 - call CloseWindow - ret -; 17d246 - -Function17d246: ; 17d246 - call VerticalMenu - jr c, .Exit - ld a, [ScriptVar] - cp $5 - jr nz, .UsewMenuCursorY - ld a, [wMenuCursorY] - cp $3 - ret z - jr c, .UsewMenuCursorY - dec a - jr .LoadToScriptVar - -.UsewMenuCursorY: - ld a, [wMenuCursorY] - -.LoadToScriptVar: - ld [ScriptVar], a - ret - -.Exit: - ld a, $4 - ld [ScriptVar], a - ret -; 17d26a - -MenuDataHeader_17d26a: ; 17d26a - db $40 ; flags - db 0, 0 ; start coords - db 9, 14 ; end coords - dw MenuData2_17d272 - db 1 ; default option - -MenuData2_17d272: ; 17d272 - db $a0 ; flags - db 4 - db "ニュース¯よみこむ@" - db "ニュース¯みる@" - db "せつめい@" - db "やめる@" -; 17d28f - -MenuDataHeader_ChallengeExplanationCancel: ; 17d28f - db $40 ; flags - db 0, 0 ; start coords - db 7, 14 ; end coords - dw MenuData2_ChallengeExplanationCancel - db 1 ; default option - -MenuData2_ChallengeExplanationCancel: ; 17d297 - db $a0 ; flags - db 3 - db "Challenge@" - db "Explanation@" - db "Cancel@" -; 17d2b6 - -Function17d2b6: ; 17d2b6 - call Function17d2c0 - callba Function1181da - ret -; 17d2c0 - -Function17d2c0: ; 17d2c0 - xor a - ld [wJumptableIndex], a - ld [wcf64], a - ld [wcf65], a - ld [wcf66], a - ret -; 17d2ce - -Function17d2ce: ; 17d2ce - ld a, $5 - call GetSRAMBank - ld a, [$aa72] - call CloseSRAM - and a - jr nz, .asm_17d2e2 - ld a, $1 - ld [ScriptVar], a - ret - -.asm_17d2e2 - call Function17d314 - ret c - call SpeechTextBox - call FadeToMenu - ld a, [rSVBK] - push af - ld a, $4 - ld [rSVBK], a - call Function17d370 - call Function17d45a - pop af - ld [rSVBK], a - ld de, MUSIC_MOBILE_CENTER - ld a, e - ld [wMapMusic], a - ld [MusicFadeID], a - ld a, d - ld [MusicFadeID + 1], a - call PlayMusic - call ReturnToMapFromSubmenu - call CloseSubmenu - ret -; 17d314 - -Function17d314: ; 17d314 - ld a, $5 - call GetSRAMBank - ld a, [$b1b1] - call CloseSRAM - cp $21 - jr nc, .asm_17d354 - ld a, $6 - call GetSRAMBank - ld l, $0 - ld h, l - ld de, $a006 - ld a, [$a004] - ld c, a - ld a, [$a005] - ld b, a -.asm_17d336 - push bc - ld a, [de] - inc de - ld c, a - ld b, $0 - add hl, bc - pop bc - dec bc - ld a, b - or c - jr nz, .asm_17d336 - ld a, [$a002] - cp l - jr nz, .asm_17d354 - ld a, [$a003] - cp h - jr nz, .asm_17d354 - call CloseSRAM - and a - ret - -.asm_17d354 - call CloseSRAM - ld a, $5 - call GetSRAMBank - xor a - ld hl, $aa73 - ld bc, $c - call ByteFill - call CloseSRAM - ld a, $2 - ld [ScriptVar], a - scf - ret -; 17d370 - -Function17d370: ; 17d370 - xor a - ld [wcd77], a - ld [wcd78], a - ld [wcd79], a - dec a - ld [wcd6c], a - call ClearBGPalettes - call ClearSprites - call ClearScreen - callba ReloadMapPart - call DisableLCD - ld hl, VTiles1 tile $6e - ld de, $c608 - ld bc, 1 tiles - call CopyBytes - ld a, $1 - ld [rVBK], a - ld hl, PokemonNewsGFX - ld de, VTiles1 - ld bc, $48 tiles - call CopyBytes - xor a - ld hl, VTiles2 tile $7f - ld bc, 1 tiles - call ByteFill - ld hl, $c608 - ld de, VTiles1 tile $6e - ld bc, 1 tiles - call CopyBytes - xor a - ld [rVBK], a - ld hl, GFX_17eb7e - ld de, VTiles2 tile $60 - ld bc, 1 tiles - call CopyBytes - call EnableLCD - call Function17d60b - ld a, $0 - ld [BGMapBuffer], a - ld a, $d0 - ld [wcd21], a - ld a, $6 - call GetSRAMBank - ld hl, $a006 - ld de, UnknBGPals - ld bc, $1000 - call CopyBytes - call CloseSRAM - ret -; 17d3f6 - -Function17d3f6: ; 17d3f6 - call ClearBGPalettes - call ClearSprites - call ClearScreen - callba ReloadMapPart - -Function17d405: - call DisableLCD - ld hl, VTiles1 tile $6e - ld de, $c608 - ld bc, 1 tiles - call CopyBytes - ld a, $1 - ld [rVBK], a - ld hl, PokemonNewsGFX - ld de, VTiles1 - ld bc, $48 tiles - call CopyBytes - xor a - ld hl, VTiles2 tile $7f - ld bc, 1 tiles - call ByteFill - ld hl, $c608 - ld de, VTiles1 tile $6e - ld bc, 1 tiles - call CopyBytes - xor a - ld [rVBK], a - call EnableLCD - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - ld hl, Palette_17eff6 - ld de, UnknBGPals - ld bc, 8 palettes - call CopyBytes - call SetPalettes - pop af - ld [rSVBK], a - ret -; 17d45a - -Function17d45a: ; 17d45a -.asm_17d45a - call JoyTextDelay - ld a, [wcd77] - bit 7, a - jr nz, .asm_17d46f - call Function17d474 - callba ReloadMapPart - jr .asm_17d45a - -.asm_17d46f - xor a - ld [ScriptVar], a - ret -; 17d474 - -Function17d474: ; 17d474 - jumptable Jumptable_17d483, wcd77 -; 17d483 - -Jumptable_17d483: ; 17d483 - dw Function17d48d - dw Function17d5be - dw Function17d5c4 - dw Function17d6fd - dw Function17e427 -; 17d48d - -Function17d48d: ; 17d48d - ld hl, Palette_17eff6 - ld de, $c608 - ld bc, $40 - call CopyBytes - ld hl, TileAttrmap_17eb8e - decoord 0, 0 - bccoord 0, 0, AttrMap - ld a, $12 -.asm_17d4a4 - push af - ld a, $14 - push hl -.asm_17d4a8 - push af - ld a, [hli] - cp $7f - jr z, .asm_17d4b0 - add $80 - -.asm_17d4b0 - ld [de], a - inc de - ld a, [hli] - ld [bc], a - inc bc - pop af - dec a - jr nz, .asm_17d4a8 - pop hl - push bc - ld bc, $40 - add hl, bc - pop bc - pop af - dec a - jr nz, .asm_17d4a4 - ld a, [BGMapBuffer] - ld l, a - ld a, [wcd21] - ld h, a - ld a, [hli] - ld e, a - ld a, [wcd6c] - cp e - jr z, .asm_17d4e0 - ld a, e - ld [wcd6c], a - ld [wMapMusic], a - ld d, $0 - call PlayMusic2 - -.asm_17d4e0 - ld a, [hli] - ld de, $c608 - ld c, $8 -.asm_17d4e6 - srl a - jr nc, .asm_17d4f6 - ld b, $8 - push af -.asm_17d4ed - ld a, [hli] - ld [de], a - inc de - dec b - jr nz, .asm_17d4ed - pop af - jr .asm_17d4fc - -.asm_17d4f6 - push af - ld a, e - add $8 - ld e, a - pop af - -.asm_17d4fc - dec c - jr nz, .asm_17d4e6 - push hl - call Function17d5f6 - pop hl - ld a, [hli] - and a - jr z, .asm_17d539 -.asm_17d508 - push af - ld a, [hli] - ld [wcd4f], a - ld a, [hli] - ld [wcd50], a - ld a, [hli] - ld [wcd51], a - ld a, [hli] - ld [wcd52], a - ld a, [hli] - sla a - sla a - sla a - add $98 - ld [wcd53], a - ld de, wcd4f - call Function17e613 - ld a, [hli] - ld [wcd53], a - ld de, wcd4f - call Function17e691 - pop af - dec a - jr nz, .asm_17d508 - -.asm_17d539 - ld a, [hli] -.asm_17d53a - push af - ld a, [hli] - ld c, a - ld a, [hli] - ld b, a - push hl - pop de - hlcoord 0, 0 - add hl, bc - call PlaceString - push de - pop hl - inc hl - pop af - dec a - jr nz, .asm_17d53a - ld de, CreditsTimer - ld bc, $c - call CopyBytes - xor a - ld [wcd2e], a - ld [wcd2f], a - inc a - ld [wcd30], a - ld [wcd31], a - ld de, wcd32 - ld bc, $10 - call CopyBytes - ld a, [hli] - ld [wcd42], a - ld a, [hli] - ld [wcd43], a - ld a, [hli] - ld [wMobileInactivityTimerMinutes], a - ld a, [hli] - ld [wMobileInactivityTimerSeconds], a - ld a, [hli] - ld [wMobileInactivityTimerFrames], a - ld a, [hli] - and a - jr z, .asm_17d58a - call Function17d6a1 - -.asm_17d58a - ld a, l - ld [wcd49], a - ld a, h - ld [wcd4a], a - ld a, [wcd42] - ld c, a - ld b, $0 - add hl, bc - add hl, bc - ld a, l - ld [wcd4b], a - ld a, h - ld [wcd4c], a - add hl, bc - add hl, bc - ld a, l - ld [wcd4d], a - ld a, h - ld [wcd4e], a - call Function17e451 - call Function17e55b - call Function17e5af - callba ReloadMapPart - jp Function17e438 -; 17d5be - -Function17d5be: ; 17d5be - call SetPalettes - call Function17e438 - -Function17d5c4: - ld a, [hJoyPressed] - and a - ret z - ld c, 0 - ld b, c - ld hl, wcd32 -.loop - srl a - jr c, .got_button - inc c - inc c - jr .loop - -.got_button - add hl, bc - ld a, [hli] - ld c, a - ld a, [hli] - ld b, a - and c - cp $ff - ret z - ld a, [wcd20] - ld l, a - ld a, [wcd21] - ld h, a - add hl, bc - ld a, l - ld [wcd78], a - ld a, h - ld [wcd79], a - ld a, $3 - ld [wcd77], a - ret -; 17d5f6 - -Function17d5f6: ; 17d5f6 - ld a, $5 - ld [rSVBK], a - ld hl, $c608 - ld de, UnknBGPals - ld bc, 8 palettes - call CopyBytes - ld a, $4 - ld [rSVBK], a - ret -; 17d60b - -Function17d60b: ; 17d60b - ld a, $5 - call GetSRAMBank - ld hl, $b1d3 - ld de, $c608 - ld bc, $20 - call CopyBytes - ld a, [$b1b1] - ld c, a - ld a, [$b1b2] - ld b, a - ld a, [$b1b3] - ld l, a - ld a, [$b1b4] - ld h, a - call CloseSRAM - ld a, $6 - call GetSRAMBank - ld de, $c708 - ld a, c - and a - jr z, .asm_17d684 -.asm_17d63b - push bc - ld a, l - ld [de], a - inc de - ld a, h - ld [de], a - inc de - ld bc, $a - add hl, bc - pop bc - ld a, [hli] - ld [wcd4a], a - ld a, [hli] - ld [wcd49], a - push hl - push de - ld hl, $c608 - ld e, b - ld d, $0 - add hl, de - ld a, [hli] - ld [wcd4b], a - ld a, [hl] - ld [wcd4c], a - pop de - pop hl - inc b - inc b - dec c - dec c - jr z, .asm_17d684 - push bc - push de - ld a, [wcd49] - ld c, a - ld a, [wcd4a] - ld b, a - ld a, [wcd4b] - ld e, a - ld a, [wcd4c] - ld d, a -.asm_17d67a - add hl, de - dec bc - ld a, c - or b - jr nz, .asm_17d67a - pop de - pop bc - jr .asm_17d63b - -.asm_17d684 - call CloseSRAM - ld a, $5 - call GetSRAMBank - ld hl, $c708 - ld de, $b1b3 - ld a, [$b1b1] - ld c, a - ld a, [$b1b2] - ld b, a - call CopyBytes - call CloseSRAM - ret -; 17d6a1 - - -Function17d6a1: ; 17d6a1 - push hl - ld a, [wcd6e] - ld c, a - ld b, $0 - ld a, $5 - call GetSRAMBank - ld hl, $b1d3 - add hl, bc - add hl, bc - ld a, [hli] - ld [wcd47], a - ld a, [hl] - ld [BGMapPalBuffer], a - ld hl, $b1b3 - add hl, bc - add hl, bc - ld a, [hli] - ld c, a - ld a, [hl] - ld h, a - ld l, c - call CloseSRAM - ld a, $6 - call GetSRAMBank - ld a, l - ld [wcd5e], a - ld a, h - ld [wcd5f], a - ld de, wcd60 - ld bc, $4 - call CopyBytes - inc hl - inc hl - ld de, wcd64 - ld bc, $4 - call CopyBytes - ld a, [hli] - ld [wcd69], a - ld a, [hli] - ld [wcd68], a - ld a, l - ld [wcd6a], a - ld a, h - ld [wcd6b], a - call CloseSRAM - pop hl - ret -; 17d6fd - -Function17d6fd: ; 17d6fd - ld a, [wcd77] - bit 7, a - jr nz, asm_17d721 - ld a, [wcd78] - ld l, a - ld a, [wcd79] - ld h, a - ld a, [hl] - cp $ff - jr z, asm_17d721 - -Function17d711: -.crash_loop - cp $31 - jr nc, .crash_loop - ld e, a - ld d, 0 - ld hl, Jumptable17d72a - add hl, de - add hl, de - ld a, [hli] - ld h, [hl] - ld l, a - jp hl - -asm_17d721 - call Function17e5af - ld a, $2 - ld [wcd77], a - ret -; 17d72a - -Jumptable17d72a: ; 17d72a - dw Function17d78c - dw Function17d78d - dw Function17d7b4 - dw Function17d7c2 - dw Function17d7d3 - dw Function17d7e5 - dw Function17d818 - dw Function17d833 - dw Function17d85d - dw Function17d902 - dw Function17d93a - dw Function17d98b - dw Function17d9e3 - dw Function17da31 - dw Function17da9c - dw Function17dadc - dw Function17db2d - dw Function17db56 - dw Function17db77 - dw Function17dbe9 - dw Function17dc1f - dw Function17dc9f - dw Function17dca9 - dw Function17dccf - dw Function17dd13 - dw Function17dd30 - dw Function17dd49 - dw Function17ddcd - dw Function17de32 - dw Function17de91 - dw Function17ded9 - dw Function17e0fd - dw Function17e133 - dw Function17e165 - dw Function17e1a1 - dw Function17e254 - dw Function17e261 - dw Function17e270 - dw Function17e27f - dw Function17e293 - dw Function17e2a7 - dw Function17e367 - dw Function17e37e - dw Function17e395 - dw Function17e3ac - dw Function17e3c3 - dw Function17e3e0 - dw Function17e3f0 - dw Function17e409 -; 17d78c - -Function17d78c: ; 17d78c - ret -; 17d78d - -Function17d78d: ; 17d78d - call Function17e415 - ld a, [hli] - ld c, a - ld a, [hli] - ld b, a - call Function17e41e - ld a, $6 - call GetSRAMBank - ld hl, $a006 - add hl, bc - ld de, UnknBGPals - ld bc, $1000 - call CopyBytes - call CloseSRAM - xor a - ld [wcd77], a - call ClearBGPalettes - ret -; 17d7b4 - -Function17d7b4: ; 17d7b4 - call Function17e415 - ld a, [hli] - ld e, a - ld d, $0 - call PlayMusic2 - call Function17e41e - ret -; 17d7c2 - -Function17d7c2: ; 17d7c2 - call Function17e415 - ld a, [hli] - ld e, a - ld d, $0 - call PlaySFX - call WaitSFX - call Function17e41e - ret -; 17d7d3 - -Function17d7d3: ; 17d7d3 - call Function17e415 - ld a, [hli] - dec a - ld e, a - ld d, $0 - call PlayCryHeader - call WaitSFX - call Function17e41e - ret -; 17d7e5 - -Function17d7e5: ; 17d7e5 - call Function17e415 - ld a, [hli] - ld [wcd4f], a - ld a, [hli] - ld [wcd50], a - ld a, [hli] - ld [wcd51], a - ld a, [hli] - ld [wcd52], a - ld a, [hli] - sla a - sla a - sla a - add $98 - ld [wcd53], a - ld de, wcd4f - call Function17e613 - ld a, [hli] - ld [wcd53], a - ld de, wcd4f - call Function17e691 - call Function17e41e - ret -; 17d818 - -Function17d818: ; 17d818 - call Function17e415 - ld a, [hli] - ld c, a - ld a, [hli] - ld b, a - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - call Function17e41e - call Function17e447 - ld e, l - ld d, h - hlcoord 0, 0 - add hl, bc - call PlaceString - ret -; 17d833 - -Function17d833: ; 17d833 - call Function17e415 - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - ld a, [hli] - ld c, a - ld a, [hli] - ld b, a - call Function17e41e - push de - push bc - call Function17e32b - pop bc - pop de - call Function17e43d - ld c, l - ld b, h - hlcoord 0, 0 - add hl, de - ld e, l - ld d, h - callba Function11c08f - call Function17e349 - ret -; 17d85d - -Function17d85d: ; 17d85d - call Function17e415 - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - push hl - ld hl, UnknBGPals - add hl, de - ld de, wcc60 -.asm_17d86c - ld a, [hli] - ld [de], a - inc de - and a - jr nz, .asm_17d86c - pop hl - ld de, $c608 - ld c, $0 -.asm_17d878 - ld a, [hli] - cp $ff - jr z, .asm_17d8c7 - ld [wcd4f], a - ld a, [hli] - ld [wcd50], a - ld a, [hli] - ld [wcd51], a - ld a, [hli] - ld [wcd52], a - ld a, [wcd51] - push af - cp $c0 - jr c, .asm_17d89b - ld a, [wcd4f] - ld [rSVBK], a - jr .asm_17d8a1 - -.asm_17d89b - ld a, [wcd4f] - call GetSRAMBank - -.asm_17d8a1 - push hl - ld a, [wcd50] - ld l, a - ld a, [wcd51] - ld h, a - ld a, [wcd52] -.asm_17d8ad - push af - ld a, [hli] - ld [de], a - inc de - inc c - pop af - dec a - jr nz, .asm_17d8ad - pop hl - pop af - cp $c0 - jr c, .asm_17d8c2 - ld a, $4 - ld [rSVBK], a - jr .asm_17d878 - -.asm_17d8c2 - call CloseSRAM - jr .asm_17d878 - -.asm_17d8c7 - call Function17e41e - push bc - ld a, $3 - ld [rSVBK], a - ld hl, $c608 - ld de, UnknBGPals - ld b, $0 - call CopyBytes - ld a, $4 - ld [rSVBK], a - call Function17e32b - pop bc - ld a, c - ld [wcd3b], a - xor a - ld [wcf66], a - callba Function118329 - ld a, [wc300] - and a - jr z, .asm_17d8fe - cp $a - jr z, .asm_17d8fe - call Function17e309 - ret - -.asm_17d8fe - call Function17e349 - ret -; 17d902 - -Function17d902: ; 17d902 - call Function17e415 - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - push de - call Function17e41e - call Function17e32b - pop de - ld hl, UnknBGPals - add hl, de - ld de, wcc60 -.asm_17d918 - ld a, [hli] - ld [de], a - inc de - and a - jr nz, .asm_17d918 - xor a - ld [wcf66], a - callba Function11837a - ld a, [wc300] - and a - jr z, .asm_17d936 - cp $a - jr z, .asm_17d936 - call Function17e309 - ret - -.asm_17d936 - call Function17e349 - ret -; 17d93a - -Function17d93a: ; 17d93a - call Function17e415 - ld de, $c708 - ld bc, $5 - call CopyBytes - call Function17e41e - call Function17e32b - ld a, [rSVBK] - push af - ld a, $1 - ld [rSVBK], a - ld a, [$c70c] - call Function17e6de - ld a, [$c70a] - ld [CurPartySpecies], a - ld a, [$c70c] - ld e, a - callba LoadMonPaletteAsNthBGPal - call SetPalettes - ld a, [$c708] - ld l, a - ld a, [$c709] - ld h, a - ld a, [$c70b] - ld c, a - decoord 0, 0 - add hl, de - ld e, l - ld d, h - callba HOF_AnimateFrontpic - pop af - ld [rSVBK], a - call Function17e349 - ret -; 17d98b - -Function17d98b: ; 17d98b - call Function17e415 - ld de, $c708 - ld bc, $4 - call CopyBytes - call Function17e41e - call Function17e32b - ld a, [rSVBK] - push af - ld a, $1 - ld [rSVBK], a - ld a, [$c70b] - call Function17e6de - ld a, [$c70a] - ld [TrainerClass], a - ld a, [$c70b] - ld e, a - callba LoadTrainerClassPaletteAsNthBGPal - call SetPalettes - ld a, [$c708] - ld e, a - ld a, [$c709] - ld d, a - push de - ld de, VTiles2 - callba GetTrainerPic - pop hl - decoord 0, 0 - add hl, de - ld bc, $707 - predef PlaceGraphic - pop af - ld [rSVBK], a - call Function17e349 - ret -; 17d9e3 - -Function17d9e3: ; 17d9e3 - call Function17e415 - ld de, $c708 - ld bc, $7 - call CopyBytes - call Function17e41e - ld a, [$c70b] - push af - cp $c0 - jr c, .asm_17da01 - ld a, [$c70c] - ld [rSVBK], a - jr .asm_17da07 - -.asm_17da01 - ld a, [$c70c] - call GetSRAMBank - -.asm_17da07 - ld a, [$c708] - ld l, a - ld a, [$c709] - ld h, a - ld a, [$c70a] - ld e, a - ld a, [$c70b] - ld d, a - ld a, [$c70d] - ld c, a - ld a, [$c70e] - ld b, a - call CopyBytes - pop af - cp $c0 - jr c, .asm_17da2d - ld a, $4 - ld [rSVBK], a - jr .asm_17da30 - -.asm_17da2d - call CloseSRAM - -.asm_17da30 - ret -; 17da31 - -Function17da31: ; 17da31 - call Function17e415 - ld de, $c708 - ld bc, $4 - call CopyBytes - call Function17e41e - ld a, [$c709] - push af - cp $c0 - jr c, .asm_17da4f - ld a, [$c70a] - ld [rSVBK], a - jr .asm_17da55 - -.asm_17da4f - ld a, [$c70a] - call GetSRAMBank - -.asm_17da55 - ld a, [$c708] - ld e, a - ld a, [$c709] - ld d, a - ld a, [$c70b] - ld c, a - bit 7, c - jr nz, .asm_17da70 - ld hl, Unknown_17da8c - ld b, $0 - add hl, bc - ld a, [de] - or [hl] - ld [de], a - jr .asm_17da7d - -.asm_17da70 - ld hl, Unknown_17da94 - ld a, c - and $7f - ld c, a - ld b, $0 - add hl, bc - ld a, [de] - and [hl] - ld [de], a - -.asm_17da7d - pop af - cp $c0 - jr c, .asm_17da88 - ld a, $4 - ld [rSVBK], a - jr .asm_17da8b - -.asm_17da88 - call CloseSRAM - -.asm_17da8b - ret -; 17da8c - -Unknown_17da8c: -x = 0 - rept 8 - db 1 << x -x = x + 1 - endr - -Unknown_17da94: -x = 0 - rept 8 - db (1 << x) ^ $ff -x = x + 1 - endr -; 17da9c - -Function17da9c: ; 17da9c - ld a, [wcd31] - dec a - jr z, .asm_17dabd - push af - call Function17e566 - pop af - ld [wcd31], a - ld hl, wcd24 - ld a, [wcd2e] - sub [hl] - ld [wcd2e], a - call Function17e55b - call Function17e5af -.asm_17daba - jp Function17e415 - -.asm_17dabd - ld a, [wcd2f] - and a - jr z, .asm_17daba - ld hl, wcd24 - sub [hl] - ld [wcd2f], a - ld a, [wcd2e] - sub [hl] - ld [wcd2e], a - call Function17e451 - call Function17e55b - call Function17e5af - jr .asm_17daba -; 17dadc - -Function17dadc: ; 17dadc - ld a, [wcd2e] - ld hl, wcd24 - add [hl] - ld hl, wcd42 - cp [hl] - jr z, .asm_17db0e - jr nc, .asm_17db0e - ld hl, wcd31 - ld a, [wcd2b] - cp [hl] - jr z, .asm_17db11 - call Function17e566 - ld a, [wcd31] - inc a - ld [wcd31], a - ld hl, wcd24 - ld a, [wcd2e] - add [hl] - ld [wcd2e], a - call Function17e55b - call Function17e5af - -.asm_17db0e - jp Function17e415 - -.asm_17db11 - ld hl, wcd24 - ld a, [wcd2f] - add [hl] - ld [wcd2f], a - ld a, [wcd2e] - add [hl] - ld [wcd2e], a - call Function17e451 - call Function17e55b - call Function17e5af - jr .asm_17db0e -; 17db2d - -Function17db2d: ; 17db2d - ld a, [wcd30] - ld hl, wcd24 - cp [hl] - jr z, .asm_17db53 - ld hl, wcd42 - ld a, [wcd2e] - inc a - cp [hl] - jr z, .asm_17db53 - ld [wcd2e], a - call Function17e566 - ld a, [wcd30] - inc a - ld [wcd30], a - call Function17e55b - call Function17e5af - -.asm_17db53 - jp Function17e415 -; 17db56 - -Function17db56: ; 17db56 - ld a, [wcd30] - cp $1 - jr z, .asm_17db74 - call Function17e566 - ld a, [wcd30] - dec a - ld [wcd30], a - ld a, [wcd2e] - dec a - ld [wcd2e], a - call Function17e55b - call Function17e5af - -.asm_17db74 - jp Function17e415 -; 17db77 - -Function17db77: ; 17db77 - ld hl, wcd2d - ld a, [wcd2f] - add [hl] - ld hl, wcd42 - cp [hl] - jr z, .asm_17dbae - jr nc, .asm_17dbae - call Function17e566 - ld hl, wcd2d - ld a, [wcd2f] - add [hl] - ld [wcd2f], a - ld a, [wcd2e] - add [hl] - ld hl, wcd42 - cp [hl] - jr c, .asm_17db9f - ld a, [hl] - dec a - -.asm_17db9f - ld [wcd2e], a - call Function17dbb1 - call Function17e451 - call Function17e55b - call Function17e5af - -.asm_17dbae - jp Function17e415 -; 17dbb1 - -Function17dbb1: ; 17dbb1 - ld hl, wcd2f - ld a, [wcd42] - sub [hl] - ld hl, wcd2d - cp [hl] - ret nc - ld a, $1 - ld [wcd30], a - ld [wcd31], a - ld a, [wcd24] - ld c, a - ld a, [wcd24] - ld b, a - ld a, [wcd2e] - ld hl, wcd2f - sub [hl] -.asm_17dbd4 - and a - ret z - push af - ld hl, wcd30 - ld a, b - cp [hl] - jr nz, .asm_17dbe4 - ld a, $1 - ld [hl], a - ld hl, wcd31 - -.asm_17dbe4 - inc [hl] - pop af - dec a - jr .asm_17dbd4 -; 17dbe9 - -Function17dbe9: ; 17dbe9 - ld hl, wcd2d - ld a, [wcd2f] - sub [hl] - bit 7, a - jr z, .asm_17dbf5 - xor a - -.asm_17dbf5 - ld [wcd2f], a - ld a, [wcd30] - dec a - ld c, a - ld a, [wcd31] - ld b, a - xor a - ld hl, wcd24 -.asm_17dc05 - dec b - jr z, .asm_17dc0b - add [hl] - jr .asm_17dc05 - -.asm_17dc0b - add c - ld hl, wcd2f - add [hl] - ld [wcd2e], a - call Function17e451 - call Function17e55b - call Function17e5af - jp Function17e415 -; 17dc1f - -Function17dc1f: ; 17dc1f - call Function17e415 - ld de, $c688 - ld bc, $6 - call CopyBytes - call Function17e32b - ld a, [rSVBK] - push af - ld a, $1 - ld [rSVBK], a - ld hl, $c688 - ld a, $40 - ld [$c708], a - ld a, [hli] - ld [$c70a], a - add $5 - ld [$c70c], a - ld a, [hli] - ld [$c709], a - add $4 - ld [$c70b], a - ld a, $96 - ld [$c70d], a - ld a, $5c - ld [$c70e], a - ld a, $1 - ld [$c70f], a - ld hl, $c708 - call LoadMenuDataHeader - call VerticalMenu - jr nc, .asm_17dc6e - ld a, $2 - ld [wMenuCursorY], a - -.asm_17dc6e - call CloseWindow - pop af - ld [rSVBK], a - ld a, [wMenuCursorY] - cp $1 - jr nz, .asm_17dc85 - ld a, [$c68a] - ld l, a - ld a, [$c68a + 1] - ld h, a - jr .asm_17dc8d - -.asm_17dc85 - ld a, [$c68a + 2] - ld l, a - ld a, [$c68a + 3] - ld h, a - -.asm_17dc8d - push hl - call Function17e349 - pop hl - call Function17e40f - ret -; 17dc96 - -MenuData2_17dc96: - db $e0 ; flags - db 2 - db "はい@" - db "いいえ@" -; 17dc9f - -Function17dc9f: ; 17dc9f - call Function17e415 - call Function17e41e - call RotateFourPalettesLeft - ret -; 17dca9 - -Function17dca9: ; 17dca9 - call Function17e415 - call Function17e41e - -Function17dcaf: - ld a, $5 - ld [rSVBK], a - ld hl, UnknBGPals - ld de, $8 - ld c, $8 -.asm_17dcbb - push hl - ld a, $ff - ld [hli], a - ld a, $7f - ld [hl], a - pop hl - add hl, de - dec c - jr nz, .asm_17dcbb - call RotateThreePalettesRight - ld a, $4 - ld [rSVBK], a - ret -; 17dccf - -Function17dccf: ; 17dccf - call Function17e415 - push hl - ld a, [wcd4b] - ld l, a - ld a, [wcd4c] - ld h, a - ld a, [wcd2e] - ld c, a - ld b, $0 - add hl, bc - add hl, bc - ld a, [hli] - ld c, a - ld a, [hl] - ld b, a - call Function17e43d - call Function17e41e -.asm_17dced - ld a, [wcd78] - ld l, a - ld a, [wcd79] - ld h, a - ld a, [hl] - cp $ff - jr z, .asm_17dd0d -.crash_loop - cp $31 - jr nc, .crash_loop - call Function17d711 - ld a, [wcd77] - bit 7, a - jr nz, .asm_17dd0d - and a - jr z, .asm_17dd11 - jr .asm_17dced - -.asm_17dd0d - pop hl - jp Function17e41e - -.asm_17dd11 - pop hl - ret -; 17dd13 - -Function17dd13: ; 17dd13 - call Function17e415 - ld a, [hli] - ld c, a - ld a, [hli] - ld b, a - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - call Function17e41e - call Function17e447 - push hl - hlcoord 0, 0 - add hl, bc - push hl - pop bc - pop hl - call PlaceHLTextAtBC - ret -; 17dd30 - -Function17dd30: ; 17dd30 - call Function17e415 - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - ld a, [hli] - ld c, a - ld b, $0 - ld a, [hli] - push af - call Function17e41e - pop af - hlcoord 0, 0 - add hl, de - call Function17e600 - ret -; 17dd49 - -Function17dd49: ; 17dd49 - call Function17e415 - ld de, $c708 - ld bc, $a - call CopyBytes - ld a, [$c711] - ld c, a - ld b, $0 - call CopyBytes - ld a, [$c70a] - cp $c0 - jr c, .sram - ld a, [$c708] - ld [rSVBK], a - jr .got_bank - -.sram - ld a, [$c708] - call GetSRAMBank - -.got_bank - ld a, [$c709] - ld l, a - ld a, [$c70a] - ld h, a - ld de, $c688 - ld a, [$c711] - ld c, a - ld b, $0 - call CopyBytes - ld a, [$c70a] - cp $c0 - jr c, .close_sram - ld a, $4 - ld [rSVBK], a - jr .exited_bank - -.close_sram - call CloseSRAM - -.exited_bank - ld a, [$c711] - ld c, a - ld hl, $c712 - ld de, $c688 -.loop - ld a, [de] - inc de - cp [hl] - inc hl - jr z, .next - jr c, .load - jr .load2 - -.next - dec c - jr nz, .loop - ld a, [$c70d] - ld l, a - ld a, [$c70e] - ld h, a - jr .done - -.load2 - ld a, [$c70f] - ld l, a - ld a, [$c710] - ld h, a - jr .done - -.load - ld a, [$c70b] - ld l, a - ld a, [$c70c] - ld h, a - -.done - call Function17e40f - ret -; 17ddcd - -Function17ddcd: ; 17ddcd - call Function17e415 - ld de, $c708 - ld bc, $8 - call CopyBytes - ld a, [$c70a] - cp $c0 - jr c, .asm_17dde7 - ld a, [$c708] - ld [rSVBK], a - jr .asm_17dded - -.asm_17dde7 - ld a, [$c708] - call GetSRAMBank - -.asm_17dded - ld a, [$c709] - ld e, a - ld a, [$c70a] - ld d, a - ld a, [de] - ld [$c710], a - ld a, [$c70b] - ld c, a - ld b, $0 - ld a, [$c70a] - cp $c0 - jr c, .asm_17de0c - ld a, $4 - ld [rSVBK], a - jr .asm_17de0f - -.asm_17de0c - call CloseSRAM - -.asm_17de0f - push hl - ld hl, Unknown_17da8c - add hl, bc - ld a, [hl] - ld hl, $c710 - and [hl] - pop hl - jr nz, .asm_17de26 - ld a, [$c70e] - ld l, a - ld a, [$c70f] - ld h, a - jr .asm_17de2e - -.asm_17de26 - ld a, [$c70c] - ld l, a - ld a, [$c70d] - ld h, a - -.asm_17de2e - call Function17e40f - ret -; 17de32 - -Function17de32: ; 17de32 - call Function17e415 - ld de, $c708 - ld bc, $9 - call CopyBytes - ld a, [$c710] - ld c, a - ld b, $0 - call CopyBytes - ld a, $6 - call GetSRAMBank - call Function17f4f6 - ld a, [$c708] - ld e, a - ld a, [$c709] - ld d, a - add hl, de - ld e, l - ld d, h - ld a, [$c710] - ld c, a - ld hl, $c711 -.asm_17de61 - ld a, [de] - inc de - cp [hl] - inc hl - jr z, .asm_17de6b - jr c, .asm_17de82 - jr .asm_17de78 - -.asm_17de6b - dec c - jr nz, .asm_17de61 - ld a, [$c70c] - ld l, a - ld a, [$c70d] - ld h, a - jr .asm_17de8a - -.asm_17de78 - ld a, [$c70e] - ld l, a - ld a, [$c70f] - ld h, a - jr .asm_17de8a - -.asm_17de82 - ld a, [$c70a] - ld l, a - ld a, [$c70b] - ld h, a - -.asm_17de8a - call CloseSRAM - call Function17e40f - ret -; 17de91 - -Function17de91: ; 17de91 - call Function17e415 - ld de, $c708 - ld bc, $7 - call CopyBytes - ld a, $6 - call GetSRAMBank - call Function17f4f6 - ld a, [$c708] - ld e, a - ld a, [$c709] - ld d, a - add hl, de - ld e, l - ld d, h - ld a, [$c70a] - ld c, a - ld b, $0 - ld hl, Unknown_17da8c - add hl, bc - ld a, [hl] - ld l, e - ld h, d - and [hl] - jr nz, .asm_17deca - ld a, [$c70d] - ld l, a - ld a, [$c70e] - ld h, a - jr .asm_17ded2 - -.asm_17deca - ld a, [$c70b] - ld l, a - ld a, [$c70c] - ld h, a - -.asm_17ded2 - call CloseSRAM - call Function17e40f - ret -; 17ded9 - -Function17ded9: ; 17ded9 - call Function17e415 - ld de, $c708 - ld bc, $1f - call CopyBytes - call Function17e32b - ld a, [rSVBK] - push af - ld a, $1 - ld [rSVBK], a - ld hl, $c708 - ld a, [hli] - ld [CurPartySpecies], a - ld [TempEnemyMonSpecies], a - ld a, [hli] - ld [CurPartyLevel], a - ld a, [hli] - ld b, a - ld a, [PartyCount] - cp $6 - jp nc, Function17e026 - xor a - ld [MonType], a - push hl - push bc - predef TryAddMonToParty - callba SetCaughtData - pop bc - pop hl - bit 1, b - jr z, .asm_17df33 - push bc - push hl - ld a, [PartyCount] - dec a - ld hl, PartyMonNicknames - call SkipNames - ld d, h - ld e, l - pop hl - call CopyBytes - pop bc - jr .asm_17df37 - -.asm_17df33 - ld de, $6 - add hl, de - -.asm_17df37 - bit 2, b - jr z, .asm_17df5a - push bc - push hl - ld a, [PartyCount] - dec a - ld hl, PartyMonOT - call SkipNames - ld d, h - ld e, l - pop hl - call CopyBytes - ld a, [hli] - ld b, a - push hl - callba SetGiftPartyMonCaughtData - pop hl - pop bc - jr .asm_17df5e - -.asm_17df5a - ld de, $7 - add hl, de - -.asm_17df5e - bit 3, b - jr z, .asm_17df79 - push bc - push hl - ld a, [PartyCount] - dec a - ld hl, PartyMon1ID - call GetPartyLocation - ld d, h - ld e, l - pop hl - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - pop bc - jr .asm_17df7b - -.asm_17df79 - inc hl - inc hl - -.asm_17df7b - bit 4, b - jr z, .asm_17dfd0 - push bc - push hl - ld a, [PartyCount] - dec a - ld hl, PartyMon1DVs - call GetPartyLocation - ld d, h - ld e, l - pop hl - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - push hl - ld a, [PartyCount] - dec a - ld hl, PartyMon1Species - call GetPartyLocation - ld a, [hl] - ld [CurSpecies], a - call GetBaseData - ld a, [PartyCount] - dec a - ld hl, PartyMon1MaxHP - call GetPartyLocation - ld d, h - ld e, l - push hl - ld b, $0 - callba CalcPkmnStats - ld a, [PartyCount] - dec a - ld hl, PartyMon1HP - call GetPartyLocation - ld d, h - ld e, l - pop hl - ld a, [hli] - ld [de], a - inc de - ld a, [hl] - ld [de], a - pop hl - pop bc - jr .asm_17dfd2 - -.asm_17dfd0 - inc hl - inc hl - -.asm_17dfd2 - bit 5, b - jr z, .asm_17dfea - push bc - push hl - ld a, [PartyCount] - dec a - ld hl, PartyMon1Item - call GetPartyLocation - ld d, h - ld e, l - pop hl - ld a, [hli] - ld [de], a - pop bc - jr .asm_17dfeb - -.asm_17dfea - inc hl - -.asm_17dfeb - bit 6, b - jr z, .asm_17e01f - push bc - push hl - ld a, [PartyCount] - dec a - ld hl, PartyMon1Moves - call GetPartyLocation - ld d, h - ld e, l - pop hl - push de - ld bc, $4 - call CopyBytes - pop de - push hl - push de - ld a, [PartyCount] - dec a - ld hl, PartyMon1PP - call GetPartyLocation - ld d, h - ld e, l - pop hl - predef FillPP - pop hl - pop bc - jp asm_17e0ee - -.asm_17e01f - ld de, $4 - add hl, de - jp asm_17e0ee -; 17e026 - -Function17e026: ; 17e026 - ld a, BANK(sBoxCount) - call GetSRAMBank - ld a, [sBoxCount] - call CloseSRAM - cp $14 - jp nc, .asm_17e0ea - bit 0, b - jp z, .asm_17e0ea - push bc - push hl - callba LoadEnemyMon - callba SentPkmnIntoBox - callba SetBoxMonCaughtData - pop hl - pop bc - ld a, BANK(sBoxMonNicknames) - call GetSRAMBank - bit 1, b - jr z, .asm_17e067 - push bc - ld bc, $b - ld de, sBoxMonNicknames - call CopyBytes - pop bc - jr .asm_17e06b - -.asm_17e067 - ld de, $6 - add hl, de - -.asm_17e06b - bit 2, b - jr z, .asm_17e08e - push bc - ld bc, $6 - ld de, sBoxMonOT - call CopyBytes - ld a, [hli] - ld b, a - push hl - call CloseSRAM - callba SetGiftBoxMonCaughtData - ld a, $1 - call GetSRAMBank - pop hl - pop bc - jr .asm_17e092 - -.asm_17e08e - ld de, $7 - add hl, de - -.asm_17e092 - bit 3, b - jr z, .asm_17e0a2 - push bc - ld de, sBoxMon1ID - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - pop bc - jr .asm_17e0a4 - -.asm_17e0a2 - inc hl - inc hl - -.asm_17e0a4 - bit 4, b - jr z, .asm_17e0b4 - push bc - ld de, sBoxMon1DVs - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - pop bc - jr .asm_17e0b6 - -.asm_17e0b4 - inc hl - inc hl - -.asm_17e0b6 - bit 5, b - ld a, [hli] - jr z, .asm_17e0be - ld [sBoxMon1Item], a - -.asm_17e0be - bit 6, b - jr z, .asm_17e0e1 - push bc - ld de, sBoxMon1Moves - ld bc, $4 - call CopyBytes - push hl - ld hl, sBoxMon1Moves - ld de, sBoxMon1PP - predef FillPP - call CloseSRAM - pop hl - pop bc - inc hl - inc hl - jr asm_17e0ee - -.asm_17e0e1 - call CloseSRAM - ld de, $6 - add hl, de - jr asm_17e0ee - -.asm_17e0ea - ld bc, $1a - add hl, bc - -asm_17e0ee - ld a, [hli] - ld h, [hl] - ld l, a - pop af - ld [rSVBK], a - push hl - call Function17e349 - pop hl - call Function17e40f - ret -; 17e0fd - -Function17e0fd: ; 17e0fd - call Function17e415 - ld de, $c708 - ld bc, $6 - call CopyBytes - ld a, [rSVBK] - push af - ld a, $1 - ld [rSVBK], a - ld hl, $c708 - ld a, [hli] - ld [CurItem], a - ld a, [hli] - ld [wItemQuantityChangeBuffer], a - push hl - ld hl, NumItems - call ReceiveItem - pop hl - jr c, .asm_17e127 - inc hl - inc hl - -.asm_17e127 - ld a, [hli] - ld b, a - ld a, [hl] - ld h, a - ld l, b - pop af - ld [rSVBK], a - call Function17e40f - ret -; 17e133 - -Function17e133: ; 17e133 - call Function17e415 - ld de, $c708 - ld bc, $5 - call CopyBytes - ld a, [rSVBK] - push af - ld a, $1 - ld [rSVBK], a - ld hl, $c708 - ld a, [hli] - ld [ScriptVar], a - push hl - callba MobileCheckOwnMonAnywhere - pop hl - jr c, .asm_17e159 - inc hl - inc hl - -.asm_17e159 - ld a, [hli] - ld b, a - ld a, [hl] - ld h, a - ld l, b - pop af - ld [rSVBK], a - call Function17e40f - ret -; 17e165 - -Function17e165: ; 17e165 - call Function17e415 - ld de, $c708 - ld bc, $5 - call CopyBytes - ld a, [rSVBK] - push af - ld a, $1 - ld [rSVBK], a - ld hl, $c708 - ld a, [hli] - ld [CurItem], a - push hl - ld hl, NumItems - call CheckItem - pop hl - jr c, .asm_17e195 - push hl - ld hl, PCItems - call CheckItem - pop hl - jr c, .asm_17e195 - inc hl - inc hl - -.asm_17e195 - ld a, [hli] - ld b, a - ld a, [hl] - ld h, a - ld l, b - pop af - ld [rSVBK], a - call Function17e40f - ret -; 17e1a1 - -Function17e1a1: ; 17e1a1 - call Function17e415 - ld de, $c708 - ld bc, $d - call CopyBytes - ld a, [$c70a] - cp $c0 - jr c, .asm_17e1bb - ld a, [$c708] - ld [rSVBK], a - jr .asm_17e1c1 - -.asm_17e1bb - ld a, [$c708] - call GetSRAMBank - -.asm_17e1c1 - ld a, [$c709] - ld l, a - ld a, [$c70a] - ld h, a - ld de, $c608 - ld a, [$c70b] - ld c, a - ld b, $0 - call CopyBytes - ld a, [$c70a] - cp $c0 - jr c, .asm_17e1e2 - ld a, $4 - ld [rSVBK], a - jr .asm_17e1e5 - -.asm_17e1e2 - call CloseSRAM - -.asm_17e1e5 - ld a, [$c70e] - cp $c0 - jr c, .asm_17e1f3 - ld a, [$c70c] - ld [rSVBK], a - jr .asm_17e1f9 - -.asm_17e1f3 - ld a, [$c70c] - call GetSRAMBank - -.asm_17e1f9 - ld a, [$c70d] - ld l, a - ld a, [$c70e] - ld h, a - ld de, $c688 - ld a, [$c70b] - ld c, a - ld b, $0 - call CopyBytes - ld a, [$c70e] - cp $c0 - jr c, .asm_17e21a - ld a, $4 - ld [rSVBK], a - jr .asm_17e21d - -.asm_17e21a - call CloseSRAM - -.asm_17e21d - ld a, [$c70b] - ld c, a - ld hl, $c688 - ld de, $c608 -.asm_17e227 - ld a, [de] - inc de - cp [hl] - inc hl - jr z, .asm_17e231 - jr c, .asm_17e23e - jr .asm_17e248 - -.asm_17e231 - dec c - jr nz, .asm_17e227 - ld a, [$c711] - ld l, a - ld a, [$c712] - ld h, a - jr .asm_17e250 - -.asm_17e23e - ld a, [$c70f] - ld l, a - ld a, [$c710] - ld h, a - jr .asm_17e250 - -.asm_17e248 - ld a, [$c712 + 1] - ld l, a - ld a, [$c712 + 2] - ld h, a - -.asm_17e250 - call Function17e40f - ret -; 17e254 - -Function17e254: ; 17e254 - call Function17e415 - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - ld a, [hli] - ld [de], a - call Function17e41e - ret -; 17e261 - -Function17e261: ; 17e261 - call Function17e415 - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - ld a, [de] - add [hl] - ld [de], a - inc hl - call Function17e41e - ret -; 17e270 - -Function17e270: ; 17e270 - call Function17e415 - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - ld a, [de] - sub [hl] - ld [de], a - inc hl - call Function17e41e - ret -; 17e27f - -Function17e27f: ; 17e27f - call Function17e415 - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - ld a, [hli] - ld c, a - ld a, [hli] - ld b, a - call Function17e41e - ld l, c - ld h, b - ld a, [de] - add [hl] - ld [de], a - ret -; 17e293 - -Function17e293: ; 17e293 - call Function17e415 - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - ld a, [hli] - ld c, a - ld a, [hli] - ld b, a - call Function17e41e - ld l, c - ld h, b - ld a, [de] - sub [hl] - ld [de], a - ret -; 17e2a7 - -Function17e2a7: ; 17e2a7 - call Function17e415 - call Function17e41e - call Function17e32b - xor a - ld [wcf66], a - callba Function118233 - ld de, GFX_17eb7e - ld hl, VTiles2 tile $60 - lb bc, BANK(GFX_17eb7e), 1 - call Get2bpp - ld a, [wc300] - and a - jr z, .asm_17e2d8 - cp $a - jr z, .asm_17e2f7 - cp $b - jr z, .asm_17e300 - call Function17e309 - ret - -.asm_17e2d8 - call Function17d60b - call Function17e349 - xor a - ld [wcd7a], a - ld a, $5 - call GetSRAMBank - ld hl, $aa73 - ld de, $aa7f - ld bc, $c - call CopyBytes - call CloseSRAM - ret - -.asm_17e2f7 - call Function17e349 - ld a, $1 - ld [wcd7a], a - ret - -.asm_17e300 - call Function17e349 - ld a, $2 - ld [wcd7a], a - ret -; 17e309 - -Function17e309: ; 17e309 - ld a, $2 - ld [wc303], a - call Function17dcaf - call ClearScreen - call Function17e349 - call Function17d5f6 - callba DisplayMobileError - call Function17e349 - call Function17dcaf - xor a - ld [wcd77], a - ret -; 17e32b - -Function17e32b: ; 17e32b - ld a, $5 - call GetSRAMBank - ld hl, $c608 - ld de, $b0b1 - ld bc, $40 - call CopyBytes - ld hl, BGMapBuffer - ld bc, $5b - call CopyBytes - call CloseSRAM - ret -; 17e349 - -Function17e349: ; 17e349 - ld a, $5 - call GetSRAMBank - ld hl, $b0b1 - ld de, $c608 - ld bc, $40 - call CopyBytes - ld de, BGMapBuffer - ld bc, $5b - call CopyBytes - call CloseSRAM - ret -; 17e367 - -Function17e367: ; 17e367 - call Function17e415 - call Function17e41e - ld a, [rSVBK] - push af - ld a, $1 - ld [rSVBK], a - callba SaveGameData_ - pop af - ld [rSVBK], a - ret -; 17e37e - -Function17e37e: ; 17e37e - call Function17e415 - call Function17e41e - ld a, [rSVBK] - push af - ld a, $1 - ld [rSVBK], a - callba SaveAfterLinkTrade - pop af - ld [rSVBK], a - ret -; 17e395 - -Function17e395: ; 17e395 - call Function17e415 - call Function17e41e - ld a, [rSVBK] - push af - ld a, $1 - ld [rSVBK], a - callba SaveBox - pop af - ld [rSVBK], a - ret -; 17e3ac - -Function17e3ac: ; 17e3ac - call Function17e415 - call Function17e41e - ld a, [rSVBK] - push af - ld a, $1 - ld [rSVBK], a - callba SaveChecksum - pop af - ld [rSVBK], a - ret -; 17e3c3 - -Function17e3c3: ; 17e3c3 - call Function17e415 - call Function17e41e - ld a, [rSVBK] - push af - ld a, $1 - ld [rSVBK], a - callba UpdateTrainerRankingsChecksum2 - callba BackupMobileEventIndex - pop af - ld [rSVBK], a - ret -; 17e3e0 - -Function17e3e0: ; 17e3e0 - call Function17e415 - ld a, [hli] - ld c, a - call Function17e41e - ld a, $1 - ld [hBGMapMode], a - call DelayFrames - ret -; 17e3f0 - -Function17e3f0: ; 17e3f0 - call Function17e415 - call Function17e41e -.asm_17e3f6 - call JoyTextDelay - ld hl, hJoyPressed - ld a, [hl] - and $1 - ret nz - ld a, [hl] - and $2 - ret nz - call WaitBGMap - jr .asm_17e3f6 -; 17e409 - -Function17e409: ; 17e409 - ld hl, wcd77 - set 7, [hl] - ret -; 17e40f - -Function17e40f: ; 17e40f - ld de, UnknBGPals - add hl, de - jr Function17e41e - -Function17e415: - ld a, [wcd78] - ld l, a - ld a, [wcd79] - ld h, a - inc hl - -Function17e41e: - ld a, l - ld [wcd78], a - ld a, h - ld [wcd79], a - ret -; 17e427 - -Function17e427: ; 17e427 - ld hl, hJoyPressed - ld a, [hl] - and $1 - jr nz, .asm_17e432 - and $2 - ret z - -.asm_17e432 - ld a, $3 - ld [wcd77], a - ret -; 17e438 - -Function17e438: ; 17e438 - ld hl, wcd77 - inc [hl] - ret -; 17e43d - -Function17e43d: ; 17e43d - ld a, [BGMapBuffer] - ld l, a - ld a, [wcd21] - ld h, a - add hl, bc - ret -; 17e447 - -Function17e447: ; 17e447 - ld a, [BGMapBuffer] - ld l, a - ld a, [wcd21] - ld h, a - add hl, de - ret -; 17e451 - -Function17e451: ; 17e451 - ld a, [wcd42] - and a - ret z - call Function17e51b - call Function17e4dd - ld a, [wcd2e] - push af - ld a, [wcd49] - ld l, a - ld a, [wcd4a] - ld h, a - ld a, [wcd2f] - ld [wcd2e], a - ld c, a - ld b, $0 - add hl, bc - add hl, bc - push hl - hlcoord 0, 0 - ld bc, $14 - ld a, [wcd23] - call AddNTimes - ld a, [CreditsTimer] - ld c, a - ld b, $0 - add hl, bc - pop bc - ld a, [wMobileCommsJumptableIndex] -.asm_17e48b - push af - push hl - ld a, [wcd24] -.asm_17e490 - push af - push hl - ld a, [bc] - inc bc - ld e, a - ld a, [bc] - inc bc - ld d, a - push bc - push hl - ld a, [BGMapBuffer] - ld l, a - ld a, [wcd21] - ld h, a - add hl, de - push hl - pop de - pop hl - call PlaceString - pop bc - pop hl - ld a, [wcd26] - ld e, a - ld d, $0 - add hl, de - ld a, [wcd2e] - inc a - ld [wcd2e], a - ld e, a - ld a, [wcd42] - cp e - jr z, .asm_17e4d5 - pop af - dec a - jr nz, .asm_17e490 - pop hl - ld a, [wcd27] - ld de, $14 -.asm_17e4cb - add hl, de - dec a - jr nz, .asm_17e4cb - pop af - dec a - jr nz, .asm_17e48b - jr .asm_17e4d8 - -.asm_17e4d5 - pop af - pop hl - pop af - -.asm_17e4d8 - pop af - ld [wcd2e], a - ret -; 17e4dd - -Function17e4dd: ; 17e4dd - ld a, [wcd2c] - and $1 - ret z - ld a, [wcd29] - hlcoord 0, 0 - ld bc, $14 - call AddNTimes - ld a, [wcd28] - ld c, a - ld b, $0 - add hl, bc - ld a, [wcd2f] - and a - jr z, .asm_17e4ff - ld a, $61 - ld [hl], a - -.asm_17e4ff - ld a, [wcd2a] - ld bc, $14 - call AddNTimes - ld a, [wcd42] - ld c, a - ld a, [wcd2e] - ld b, a - ld a, [wcd24] - add b - cp c - ret z - ret nc - ld a, $ee - ld [hl], a - ret -; 17e51b - -Function17e51b: ; 17e51b - ld a, [wcd28] - ld hl, CreditsTimer - sub [hl] - inc a - ld [wcd4f], a - hlcoord 0, 0 - ld bc, $14 - ld a, [wcd23] - dec a - call AddNTimes - ld a, [CreditsTimer] - ld c, a - ld b, $0 - add hl, bc - ld a, [wMobileCommsJumptableIndex] - ld c, a - ld a, [wcd27] - call SimpleMultiply -.asm_17e544 - push af - push hl - ld a, [wcd4f] - ld c, a - ld b, $0 - ld a, $7f - call ByteFill - pop hl - ld bc, $14 - add hl, bc - pop af - dec a - jr nz, .asm_17e544 - ret -; 17e55b - -Function17e55b: ; 17e55b - ld a, [wcd42] - and a - ret z - ld a, $ed - call Function17e571 - ret -; 17e566 - -Function17e566: ; 17e566 - ld a, [wcd42] - and a - ret z - ld a, $7f - call Function17e571 - ret -; 17e571 - -Function17e571: ; 17e571 - push af - hlcoord 0, 0 - ld bc, $14 - ld a, [wcd23] - call AddNTimes - ld a, [CreditsTimer] - ld c, a - ld b, $0 - add hl, bc - dec hl - push hl - ld a, [wcd31] - dec a - ld c, a - ld a, [wcd27] - call SimpleMultiply - ld l, $0 - ld h, l - ld bc, $14 - call AddNTimes - ld a, [wcd30] - dec a - ld c, a - ld a, [wcd26] - call SimpleMultiply - ld c, a - ld b, $0 - add hl, bc - pop bc - add hl, bc - pop af - ld [hl], a - ret -; 17e5af - -Function17e5af: ; 17e5af - ld a, [wcd2c] - and $2 - ret z - ld a, [wcd43] - ld l, a - ld a, [wMobileInactivityTimerMinutes] - ld h, a - bccoord 0, 0 - add hl, bc - ld bc, $ffec - add hl, bc - ld a, [wMobileInactivityTimerSeconds] - ld c, a - ld b, $0 - ld a, [wMobileInactivityTimerFrames] - call Function17e600 - ld a, [wcd2e] - ld c, a - ld b, $0 - ld a, [wcd4d] - ld l, a - ld a, [wcd4e] - ld h, a - add hl, bc - add hl, bc - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - ld a, [BGMapBuffer] - ld l, a - ld a, [wcd21] - ld h, a - add hl, de - push hl - pop de - ld a, [wcd43] - ld l, a - ld a, [wMobileInactivityTimerMinutes] - ld h, a - bccoord 0, 0 - add hl, bc - call PlaceString - ret -; 17e600 - -Function17e600: ; 17e600 -.asm_17e600 - push af - push hl - push bc - ld a, $7f - call ByteFill - pop bc - pop hl - ld de, $14 - add hl, de - pop af - dec a - jr nz, .asm_17e600 - ret -; 17e613 - -Function17e613: ; 17e613 - push hl - hlcoord 0, 0 - ld bc, $14 - ld a, [de] - inc de - push af - ld a, [de] - inc de - and a -.asm_17e620 - jr z, .asm_17e626 - add hl, bc - dec a - jr .asm_17e620 - -.asm_17e626 - pop af - ld c, a - ld b, $0 - add hl, bc - push hl - ld a, [wcd53] - ld [hli], a - ld a, [de] - inc de - dec a - dec a - jr z, .asm_17e63f - ld c, a - ld a, [wcd53] - inc a -.asm_17e63b - ld [hli], a - dec c - jr nz, .asm_17e63b - -.asm_17e63f - ld a, [wcd53] - add $2 - ld [hl], a - pop hl - ld bc, $14 - add hl, bc - ld a, [de] - dec de - dec a - dec a - jr z, .asm_17e674 - ld b, a -.asm_17e651 - push hl - ld a, [wcd53] - add $3 - ld [hli], a - ld a, [de] - dec a - dec a - jr z, .asm_17e664 - ld c, a - ld a, $7f -.asm_17e660 - ld [hli], a - dec c - jr nz, .asm_17e660 - -.asm_17e664 - ld a, [wcd53] - add $4 - ld [hl], a - pop hl - push bc - ld bc, $14 - add hl, bc - pop bc - dec b - jr nz, .asm_17e651 - -.asm_17e674 - ld a, [wcd53] - add $5 - ld [hli], a - ld a, [de] - dec a - dec a - jr z, .asm_17e689 - ld c, a - ld a, [wcd53] - add $6 -.asm_17e685 - ld [hli], a - dec c - jr nz, .asm_17e685 - -.asm_17e689 - ld a, [wcd53] - add $7 - ld [hl], a - pop hl - ret -; 17e691 - -Function17e691: ; 17e691 - push hl - ld hl, NULL - ld bc, $14 - ld a, [de] - inc de - push af - ld a, [de] - inc de - inc de - and a -.asm_17e69f - jr z, .asm_17e6a5 - add hl, bc - dec a - jr .asm_17e69f - -.asm_17e6a5 - pop af - ld c, a - ld b, $0 - add hl, bc - ld a, [de] - dec de -.asm_17e6ac - push af - push hl - ld a, [de] -.asm_17e6af - push af - push hl - push hl - bccoord 0, 0 - add hl, bc - ld a, [hl] - cp $7f - jr z, .asm_17e6c2 - ld a, [wcd53] - add $8 - jr .asm_17e6c7 - -.asm_17e6c2 - ld a, [wcd53] - jr .asm_17e6c7 - -.asm_17e6c7 - pop hl - bccoord 0, 0, AttrMap - add hl, bc - ld [hl], a - pop hl - inc hl - pop af - dec a - jr nz, .asm_17e6af - pop hl - ld bc, $14 - add hl, bc - pop af - dec a - jr nz, .asm_17e6ac - pop hl - ret -; 17e6de - -Function17e6de: ; 17e6de - push af - ld a, [$c708] - ld l, a - ld a, [$c709] - ld h, a - decoord 0, 0, AttrMap - add hl, de - pop af - ld b, $7 -.asm_17e6ee - push hl - ld c, $7 -.asm_17e6f1 - ld [hli], a - dec c - jr nz, .asm_17e6f1 - pop hl - ld de, $14 - add hl, de - dec b - jr nz, .asm_17e6ee - ret -; 17e6fe - - -PokemonNewsGFX: ; 17e6fe -INCBIN "gfx/mobile/pokemon_news.2bpp" - -GFX_17eb7e: -INCBIN "gfx/unknown/17eb7e.2bpp" - -TileAttrmap_17eb8e: -INCBIN "gfx/unknown/17eb8e.attrmap" - -Palette_17eff6: - RGB 24, 9, 8 - RGB 4, 9, 18 - RGB 18, 18, 12 - RGB 0, 0, 0 - RGB 24, 24, 18 - RGB 18, 18, 12 - RGB 4, 9, 18 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 23, 11, 10 - RGB 13, 6, 5 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 15, 25, 5 - RGB 10, 20, 0 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 20, 28, 20 - RGB 10, 18, 15 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 22, 22, 12 - RGB 17, 12, 5 - RGB 0, 0, 0 - RGB 5, 5, 16 - RGB 8, 19, 28 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 27, 24, 0 - RGB 24, 16, 3 - RGB 0, 0, 0 - - -Function17f036:: ; 17f036 - ld a, $6 - call GetSRAMBank - inc de -.asm_17f03c - call Function17f047 - jr c, .asm_17f043 - jr .asm_17f03c - -.asm_17f043 - call CloseSRAM - ret -; 17f047 - -Function17f047: ; 17f047 - ld a, [de] - inc de - cp $50 - jr z, .finished - cp $10 - jr nc, .finished - dec a - push de - ld e, a - ld d, 0 - ld hl, .Jumptable - add hl, de - add hl, de - ld a, [hli] - ld h, [hl] - ld l, a - jp hl - -.finished - scf - ret -; 17f061 - -.Jumptable: ; 17f061 - dw Function17f081 ; 0 - dw Function17f0f8 ; 1 - dw Function17f154 ; 2 - dw Function17f181 ; 3 - dw Function17f1d0 ; 4 - dw Function17f220 ; 5 - dw Function17f27b ; 6 - dw Function17f2cb ; 7 - dw Function17f2ff ; 8 - dw Function17f334 ; 9 - dw Function17f382 ; a - dw Function17f3c9 ; b - dw Function17f3f0 ; c - dw Function17f41d ; d - dw Function17f44f ; e - dw Function17f44f ; f -; 17f081 - -Function17f081: ; 17f081 - pop hl - call Function17f524 - jr c, .asm_17f09f - ld de, 4 - add hl, de - ld a, [hli] - inc hl - inc hl - ld e, l - ld d, h - ld l, c - ld h, b - ld c, a - ld b, $0 - add hl, bc - ld a, [de] - cp $50 - jr z, .asm_17f09d - and a - ret - -.asm_17f09d - scf - ret - -.asm_17f09f - push bc - ld de, wcd54 - ld bc, 7 - call CopyBytes - pop bc - push hl - push bc - call Function17f4f6 - pop bc - ld a, [wcd54] - ld e, a - ld a, [wcd55] - ld d, a - add hl, de - ld e, l - ld d, h - ld l, c - ld h, b - push hl - ld a, [wcd56] - ld b, a - ld a, [wcd57] - ld c, a - call MobilePrintNum - ld a, l - ld [wcd52], a - ld a, h - ld [wcd53], a - ld a, [wcd59] - and a - jr z, .asm_17f0ee - ld c, a - ld a, [wcd57] - inc a - ld b, a - ld e, l - ld d, h - dec de -.asm_17f0e0 - ld a, c - cp b - jr z, .asm_17f0ea - ld a, [de] - dec de - ld [hld], a - dec b - jr .asm_17f0e0 - -.asm_17f0ea - ld a, [wcd5a] - ld [hl], a - -.asm_17f0ee - pop hl - ld a, [wcd58] - call Function17f50f - pop de - and a - ret -; 17f0f8 - -Function17f0f8: ; 17f0f8 - pop hl - call Function17f524 - jr c, .asm_17f114 - ld de, $3 - add hl, de - ld a, [hli] - ld e, l - ld d, h - ld l, c - ld h, b - ld c, a - ld b, $0 - add hl, bc - ld a, [de] - cp $50 - jr z, .asm_17f112 - and a - ret - -.asm_17f112 - scf - ret - -.asm_17f114 - push bc - ld de, wcd54 - ld bc, $4 - call CopyBytes - pop bc - push hl - push bc - call Function17f4f6 - ld a, [wcd54] - ld e, a - ld a, [wcd55] - ld d, a - add hl, de - ld de, $c608 - ld a, [wcd56] - ld c, a - ld b, $0 - call CopyBytes - ld a, $50 - ld [de], a - pop hl - ld de, $c608 - call PlaceString - ld a, c - ld [wcd52], a - ld a, b - ld [wcd53], a - ld a, [wcd57] - call Function17f50f - pop de - and a - ret -; 17f154 - -Function17f154: ; 17f154 - pop hl - call Function17f524 - jr c, .asm_17f167 - inc hl - inc hl - ld e, l - ld d, h - ld a, [de] - cp $50 - jr z, .asm_17f165 - and a - ret - -.asm_17f165 - scf - ret - -.asm_17f167 - push bc - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - pop bc - push hl - push bc - call Function17f4f6 - add hl, de - ld c, l - ld b, h - pop de - callba Function11c08f - ld c, l - ld b, h - pop de - and a - ret -; 17f181 - -Function17f181: ; 17f181 - pop hl - call Function17f524 - jr c, .asm_17f19d - ld de, $2 - add hl, de - ld a, [hli] - ld e, l - ld d, h - ld l, c - ld h, b - ld c, a - ld b, $0 - add hl, bc - ld a, [de] - cp $50 - jr z, .asm_17f19b - and a - ret - -.asm_17f19b - scf - ret - -.asm_17f19d - push bc - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - ld a, [hli] - ld [wcd54], a - pop bc - push hl - push bc - call Function17f4f6 - add hl, de - ld a, [hl] - ld c, a - ld de, $c608 - callba Function48c63 - pop hl - ld de, $c608 - call PlaceString - ld a, c - ld [wcd52], a - ld a, b - ld [wcd53], a - ld a, [wcd54] - call Function17f50f - pop de - and a - ret -; 17f1d0 - -Function17f1d0: ; 17f1d0 - pop hl - call Function17f524 - jr c, .asm_17f1ec - ld de, $2 - add hl, de - ld a, [hli] - ld e, l - ld d, h - ld l, c - ld h, b - ld c, a - ld b, $0 - add hl, bc - ld a, [de] - cp $50 - jr z, .asm_17f1ea - and a - ret - -.asm_17f1ea - scf - ret - -.asm_17f1ec - push bc - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - ld a, [hli] - ld [wcd54], a - pop bc - push hl - push bc - call Function17f4f6 - add hl, de - ld a, [hl] - ld a, $1 - ld [rSVBK], a - ld [wd265], a - call GetPokemonName - pop hl - call PlaceString - ld a, c - ld [wcd52], a - ld a, b - ld [wcd53], a - ld a, $4 - ld [rSVBK], a - ld a, [wcd54] - call Function17f50f - pop de - and a - ret -; 17f220 - -Function17f220: ; 17f220 - pop hl - call Function17f524 - jr c, .asm_17f23c - ld de, $2 - add hl, de - ld a, [hli] - ld e, l - ld d, h - ld l, c - ld h, b - ld c, a - ld b, $0 - add hl, bc - ld a, [de] - cp $50 - jr z, .asm_17f23a - and a - ret - -.asm_17f23a - scf - ret - -.asm_17f23c - push bc - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - ld a, [hli] - ld [wcd54], a - pop bc - push hl - push bc - call Function17f4f6 - add hl, de - ld a, [hl] - ld e, a - ld d, 0 - ld hl, .Genders - add hl, de - add hl, de - ld a, [hli] - ld e, a - ld a, [hl] - ld d, a - pop hl - call PlaceString - ld a, c - ld [wcd52], a - ld a, b - ld [wcd53], a - ld a, [wcd54] - call Function17f50f - pop de - and a - ret -; 17f26e - -.Genders: dw .Boy, .Girl -.Boy: db "Boy@" -.Girl: db "Girl@" - -Function17f27b: ; 17f27b - pop hl - call Function17f524 - jr c, .asm_17f297 - ld de, $2 - add hl, de - ld a, [hli] - ld e, l - ld d, h - ld l, c - ld h, b - ld c, a - ld b, $0 - add hl, bc - ld a, [de] - cp $50 - jr z, .asm_17f295 - and a - ret - -.asm_17f295 - scf - ret - -.asm_17f297 - push bc - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - ld a, [hli] - ld [wcd54], a - pop bc - push hl - push bc - call Function17f4f6 - add hl, de - ld a, [hl] - ld a, $1 - ld [rSVBK], a - ld [wd265], a - call GetItemName - pop hl - call PlaceString - ld a, c - ld [wcd52], a - ld a, b - ld [wcd53], a - ld a, $4 - ld [rSVBK], a - ld a, [wcd54] - call Function17f50f - pop de - and a - ret -; 17f2cb - -Function17f2cb: ; 17f2cb - pop hl - push bc - ld a, [hli] - ld [wcd54], a - ld a, [hli] - ld [wcd55], a - ld a, [wcd2e] - inc a - ld [wcd56], a - pop bc - push hl - ld l, c - ld h, b - push hl - ld de, wcd56 - ld b, $1 - ld a, [wcd54] - ld c, a - call MobilePrintNum - ld a, l - ld [wcd52], a - ld a, h - ld [wcd53], a - pop hl - ld a, [wcd55] - call Function17f50f - pop de - and a - ret -; 17f2ff - -Function17f2ff: ; 17f2ff - pop hl - push bc - ld a, [hli] - ld [wcd54], a - pop bc - push hl - push bc - ld a, $1 - ld [rSVBK], a - ld hl, PlayerName - ld de, $c608 - ld bc, $6 - call CopyBytes - ld a, $4 - ld [rSVBK], a - pop hl - ld de, $c608 - call PlaceString - ld a, c - ld [wcd52], a - ld a, b - ld [wcd53], a - ld a, [wcd54] - call Function17f50f - pop de - and a - ret -; 17f334 - -Function17f334: ; 17f334 - pop hl - push bc - ld a, [hli] - ld [wcd55], a - and $f - ld [wcd54], a - pop bc - push hl - ld l, c - ld h, b - push hl - ld a, [wcd55] - bit 7, a - jr nz, .asm_17f355 - ld a, BANK(sCrystalData) - call GetSRAMBank - ld a, [sCrystalData + 2] - jr .asm_17f35d - -.asm_17f355 - ld a, $5 - call GetSRAMBank - ld a, [$b2f3] - -.asm_17f35d - ld c, a - call CloseSRAM - ld de, $c608 - callba Function48c63 - pop hl - ld de, $c608 - call PlaceString - ld a, c - ld [wcd52], a - ld a, b - ld [wcd53], a - ld a, [wcd54] - call Function17f50f - pop de - and a - ret -; 17f382 - -Function17f382: ; 17f382 - pop hl - push bc - ld a, [hli] - ld [wcd55], a - and $f - ld [wcd54], a - pop bc - push hl - push bc - ld l, c - ld h, b - ld a, [wcd55] - bit 7, a - jr nz, .asm_17f3a3 - ld a, BANK(sCrystalData) - call GetSRAMBank - ld de, sCrystalData + 3 - jr .asm_17f3ab - -.asm_17f3a3 - ld a, $5 - call GetSRAMBank - ld de, $b2f4 - -.asm_17f3ab - ld a, PRINTNUM_LEADINGZEROS | 2 - ld b, a - ld a, 3 - ld c, a - call PrintNum - call CloseSRAM - ld a, l - ld [wcd52], a - ld a, h - ld [wcd53], a - pop hl - ld a, [wcd54] - call Function17f50f - pop de - and a - ret -; 17f3c9 - -Function17f3c9: ; 17f3c9 - push bc - ld hl, wcd36 - ld de, $c708 - ld bc, 12 - call CopyBytes - pop de - ld c, $0 - callba Function11c075 - push hl - ld hl, $c708 - ld de, wcd36 - ld bc, $c - call CopyBytes - pop bc - pop de - and a - ret -; 17f3f0 - -Function17f3f0: ; 17f3f0 - pop hl - push hl - ld a, [hli] - push af - push bc - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - ld a, [de] - ld c, a - ld b, $0 - add hl, bc - add hl, bc - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - ld hl, UnknBGPals - add hl, de - ld e, l - ld d, h - pop hl - call PlaceString - pop af - ld e, a - ld d, $0 - pop hl - add hl, de - add hl, de - inc hl - inc hl - inc hl - ld e, l - ld d, h - ld l, c - ld h, b - scf - ret -; 17f41d - -Function17f41d: ; 17f41d - pop hl - ld a, [hli] - push hl - push af - ld l, c - ld h, b - ld bc, -TileMap + $10000 - add hl, bc - ld de, -SCREEN_WIDTH - ld c, $1 -.asm_17f42c - ld a, h - and a - jr nz, .asm_17f435 - ld a, l - cp SCREEN_WIDTH - jr c, .asm_17f439 - -.asm_17f435 - add hl, de - inc c - jr .asm_17f42c - -.asm_17f439 - hlcoord 0, 0 - ld de, SCREEN_WIDTH - ld a, c -.asm_17f440 - and a - jr z, .asm_17f447 - add hl, de - dec a - jr .asm_17f440 - -.asm_17f447 - pop af - ld e, a - ld d, 0 - add hl, de - pop de - and a - ret -; 17f44f - -Function17f44f: ; 17f44f - pop hl - call Function17f524 - jr c, .asm_17f46d - ld de, $5 - add hl, de - ld a, [hli] - inc hl - inc hl - ld e, l - ld d, h - ld l, c - ld h, b - ld c, a - ld b, 0 - add hl, bc - ld a, [de] - cp $50 - jr z, .asm_17f46b - and a - ret - -.asm_17f46b - scf - ret - -.asm_17f46d - push bc - ld de, wcd54 - ld bc, $8 - call CopyBytes - pop bc - push hl - push bc - ld a, [wcd56] - cp $c0 - jr c, .asm_17f488 - ld a, [wcd54] - ld [rSVBK], a - jr .asm_17f48e - -.asm_17f488 - ld a, [wcd54] - call GetSRAMBank - -.asm_17f48e - ld a, [wcd55] - ld l, a - ld a, [wcd56] - ld h, a - ld de, $c608 - ld a, [wcd57] - ld c, a - ld b, $0 - call CopyBytes - ld a, [wcd56] - cp $c0 - jr c, .asm_17f4af - ld a, $4 - ld [rSVBK], a - jr .asm_17f4b7 - -.asm_17f4af - call CloseSRAM - ld a, $6 - call GetSRAMBank - -.asm_17f4b7 - ld de, $c608 - pop hl - push hl - ld a, [wcd57] - ld b, a - ld a, [wcd58] - ld c, a - call MobilePrintNum - ld a, l - ld [wcd52], a - ld a, h - ld [wcd53], a - ld a, [wcd5a] - and a - jr z, .asm_17f4ec - ld c, a - ld a, [wcd58] - inc a - ld b, a - ld e, l - ld d, h - dec de -.asm_17f4de - ld a, c - cp b - jr z, .asm_17f4e8 - ld a, [de] - dec de - ld [hld], a - dec b - jr .asm_17f4de - -.asm_17f4e8 - ld a, [wcd5b] - ld [hl], a - -.asm_17f4ec - pop hl - ld a, [wcd59] - call Function17f50f - pop de - and a - ret -; 17f4f6 - -Function17f4f6: ; 17f4f6 - ld a, [wcd6a] - ld l, a - ld a, [wcd6b] - ld h, a - ld a, [wcd47] - ld c, a - ld a, [BGMapPalBuffer] - ld b, a - ld a, [wcd2e] -.asm_17f509 - and a - ret z - dec a - add hl, bc - jr .asm_17f509 -; 17f50f - -Function17f50f: ; 17f50f - and a - jr z, .asm_17f519 - ld c, a - ld b, $0 - add hl, bc - ld c, l - ld b, h - ret - -.asm_17f519 - ld a, [wcd52] - ld c, a - ld l, a - ld a, [wcd53] - ld b, a - ld h, a - ret -; 17f524 - -Function17f524: ; 17f524 - push hl - push bc - push de - ld a, [wcd42] - dec a - ld b, a - ld a, [wcd2e] - cp b - jr z, .asm_17f53a - ld hl, wcd68 - cp [hl] -.asm_17f536 - pop de - pop bc - pop hl - ret - -.asm_17f53a - scf - jr .asm_17f536 -; 17f53d - -BattleTowerMobileError: ; 17f53d - call FadeToMenu - xor a - ld [wc303], a - ld a, [rSVBK] - push af - ld a, $1 - ld [rSVBK], a - - call DisplayMobileError - - pop af - ld [rSVBK], a - call ExitAllMenus - ret -; 17f555 - -DisplayMobileError: ; 17f555 -.loop - call JoyTextDelay - call .RunJumptable - ld a, [wc303] - bit 7, a - jr nz, .quit - callba HDMATransferAttrMapAndTileMapToWRAMBank3 - jr .loop - -.quit - call .deinit - ret - -.deinit - ld a, [wc300] - cp $22 - jr z, .asm_17f597 - cp $31 - jr z, .asm_17f58a - cp $33 - ret nz - ld a, [wc301] - cp $1 - ret nz - ld a, [wc302] - cp $2 - ret nz - jr .asm_17f5a1 - -.asm_17f58a - ld a, [wc301] - cp $3 - ret nz - ld a, [wc302] - and a - ret nz - jr .asm_17f5a1 - -.asm_17f597 - ld a, [wc301] - and a - ret nz - ld a, [wc302] - and a - ret nz - -.asm_17f5a1 - ld a, BANK(sMobileLoginPassword) - call GetSRAMBank - xor a - ld [sMobileLoginPassword], a - call CloseSRAM - ret -; 17f5ae - -.RunJumptable: ; 17f5ae - jumptable .Jumptable, wc303 -; 17f5bd - -.Jumptable: ; 17f5bd - dw Function17f5c3 - dw Function17ff23 - dw Function17f5d2 -; 17f5c3 - -Function17f5c3: ; 17f5c3 - call Function17f5e4 - callba FinishExitMenu - ld a, $1 - ld [wc303], a - ret -; 17f5d2 - -Function17f5d2: ; 17f5d2 - call Function17f5e4 - callba HDMATransferAttrMapAndTileMapToWRAMBank3 - call SetPalettes - ld a, $1 - ld [wc303], a - ret -; 17f5e4 - -Function17f5e4: ; 17f5e4 - ld a, $8 - ld [MusicFade], a - ld de, MUSIC_NONE - ld a, e - ld [MusicFadeID], a - ld a, d - ld [MusicFadeID + 1], a - ld a, " " - hlcoord 0, 0 - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT - call ByteFill - ld a, $6 - hlcoord 0, 0, AttrMap - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT - call ByteFill - hlcoord 2, 1 - ld b, $1 - ld c, $e - call Function3eea - hlcoord 1, 4 - ld b, $c - ld c, $10 - call Function3eea - hlcoord 3, 2 - ld de, String_17f6dc - call PlaceString - call Function17ff3c - jr nc, .asm_17f632 - hlcoord 11, 2 - call Function17f6b7 - -.asm_17f632 - ld a, [wc300] - cp $d0 - jr nc, .asm_17f684 - cp $10 - jr c, .asm_17f679 - sub $10 - cp $24 - jr nc, .asm_17f679 - ld e, a - ld d, $0 - ld hl, Table_17f706 - add hl, de - add hl, de - ld a, [wc301] - ld e, a - ld a, [wc302] - ld d, a - ld a, [hli] - ld c, a - ld a, [hl] - ld h, a - ld l, c - ld a, [hli] - and a - jr z, .asm_17f679 - ld c, a -.asm_17f65d - ld a, [hli] - ld b, a - ld a, [hli] - cp $ff - jr nz, .asm_17f667 - cp b - jr z, .asm_17f66e - -.asm_17f667 - xor d - jr nz, .asm_17f674 - ld a, b - xor e - jr nz, .asm_17f674 - -.asm_17f66e - ld a, [hli] - ld e, a - ld a, [hl] - ld d, a - jr .asm_17f67d - -.asm_17f674 - inc hl - inc hl - dec c - jr nz, .asm_17f65d - -.asm_17f679 - ld a, $d9 - jr .asm_17f684 - -.asm_17f67d - hlcoord 2, 6 - call PlaceString - ret - -.asm_17f684 - sub $d0 - ld e, a - ld d, 0 - ld hl, Table_17f699 - add hl, de - add hl, de - ld a, [hli] - ld e, a - ld a, [hl] - ld d, a - hlcoord 2, 6 - call PlaceString - ret -; 17f699 - -Table_17f699: ; 17f699 - dw String_17fedf - dw String_17fdd9 - dw String_17fdd9 - dw String_17fe03 - dw String_17fd84 - dw String_17fe63 - dw String_17fdb2 - dw String_17fe4b - dw String_17fe03 - dw String_17fe03 - dw String_17fe03 -; 17f6af - -Palette_17f6af: ; 17f6af - RGB 5, 5, 16 - RGB 8, 19, 28 - RGB 0, 0, 0 - RGB 31, 31, 31 -; 17f6b7 - -Function17f6b7: ; 17f6b7 - ld a, [wc300] - call .bcd_two_digits - inc hl - ld a, [wc302] - and $f - call .bcd_digit - ld a, [wc301] - call .bcd_two_digits - ret -; 17f6cd - -.bcd_two_digits ; 17f6cd - ld c, a - and $f0 - swap a - call .bcd_digit - ld a, c - and $f - -.bcd_digit ; 17f6d8 - add "0" - ld [hli], a - ret -; 17f6dc - -String_17f6dc: ; 17f6dc - db "つうしんエラー ー@" -; 17f6e8 - -String_17f6e8: ; 17f6e8 - db "みていぎ", $25, "エラーです" - next "プログラム", $1f - next "かくにん してください" - db "@" -; 17f706 - -Table_17f706: - dw Unknown_17f74e - dw Unknown_17f753 - dw Unknown_17f758 - dw Unknown_17f75d - dw Unknown_17f762 - dw Unknown_17f767 - dw Unknown_17f778 - dw Unknown_17f77d - dw Unknown_17f782 - dw Unknown_17f782 - dw Unknown_17f782 - dw Unknown_17f782 - dw Unknown_17f782 - dw Unknown_17f782 - dw Unknown_17f782 - dw Unknown_17f782 - dw Unknown_17f782 - dw Unknown_17f787 - dw Unknown_17f78c - dw Unknown_17f791 - dw Unknown_17f796 - dw Unknown_17f79b - dw Unknown_17f7a0 - dw Unknown_17f7a5 - dw Unknown_17f7a5 - dw Unknown_17f7a5 - dw Unknown_17f7a5 - dw Unknown_17f7a5 - dw Unknown_17f7a5 - dw Unknown_17f7a5 - dw Unknown_17f7a5 - dw Unknown_17f7a5 - dw Unknown_17f7a5 - dw Unknown_17f7ea - dw Unknown_17f7ff - dw Unknown_17f844 - -Unknown_17f74e: db 1 - dbbw $0, $0, String_17f891 - -Unknown_17f753: db 1 - dbbw $0, $0, String_17f8d1 - -Unknown_17f758: db 1 - dbbw $0, $0, String_17f913 - -Unknown_17f75d: db 1 - dbbw $0, $0, String_17f8d1 - -Unknown_17f762: db 1 - dbbw $0, $0, String_17fa71 - -Unknown_17f767: db 4 - dbbw $0, $0, String_17f946 - dbbw $1, $0, String_17f946 - dbbw $2, $0, String_17f946 - dbbw $3, $0, String_17f946 - -Unknown_17f778: db 1 - dbbw $0, $0, String_17f98e - -Unknown_17f77d: db 1 - dbbw $0, $0, String_17f98e - -Unknown_17f782: db 1 - dbbw $0, $0, String_17f98e - -Unknown_17f787: db 1 - dbbw $0, $0, String_17f98e - -Unknown_17f78c: db 1 - dbbw $0, $0, String_17f9d0 - -Unknown_17f791: db 1 - dbbw $0, $0, String_17fa14 - -Unknown_17f796: db 1 - dbbw $0, $0, String_17fcbf - -Unknown_17f79b: db 1 - dbbw $0, $0, String_17fa71 - -Unknown_17f7a0: db 1 - dbbw $0, $0, String_17fbfe - -Unknown_17f7a5: db 17 - dbbw $0, $0, String_17f98e - dbbw $21, $2, String_17fcbf - dbbw $21, $4, String_17fcbf - dbbw $50, $4, String_17faf9 - dbbw $51, $4, String_17fcbf - dbbw $52, $4, String_17fcbf - dbbw $0, $5, String_17f98e - dbbw $1, $5, String_17f98e - dbbw $2, $5, String_17f98e - dbbw $3, $5, String_17f98e - dbbw $4, $5, String_17f98e - dbbw $50, $5, String_17faf9 - dbbw $51, $5, String_17faf9 - dbbw $52, $5, String_17fcbf - dbbw $53, $5, String_17faf9 - dbbw $54, $5, String_17fcbf - dbbw $ff, $ff, String_17fcbf - -Unknown_17f7ea: db 5 - dbbw $0, $0, String_17f98e - dbbw $2, $0, String_17fb2a - dbbw $3, $0, String_17fb6e - dbbw $4, $0, String_17f98e - dbbw $ff, $ff, String_17fcbf - -Unknown_17f7ff: db 17 - dbbw $0, $0, String_17f98e - dbbw $1, $3, String_17f98e - dbbw $2, $3, String_17f98e - dbbw $0, $4, String_17f98e - dbbw $1, $4, String_17f98e - dbbw $3, $4, String_17fbb6 - dbbw $4, $4, String_17fbb6 - dbbw $5, $4, String_17f98e - dbbw $6, $4, String_17f98e - dbbw $7, $4, String_17f98e - dbbw $8, $4, String_17fbfe - dbbw $0, $5, String_17fa49 - dbbw $1, $5, String_17f98e - dbbw $2, $5, String_17fa49 - dbbw $3, $5, String_17fab0 - dbbw $4, $5, String_17fa49 - dbbw $ff, $ff, String_17fa49 - -Unknown_17f844: db 19 - dbbw $1, $1, String_17fc3e - dbbw $2, $1, String_17fc88 - dbbw $3, $1, String_17fcff - dbbw $4, $1, String_17fd84 - dbbw $5, $1, String_17fd84 - dbbw $6, $1, String_17fd47 - dbbw $1, $2, String_17fb6e - dbbw $2, $2, String_17f98e - dbbw $3, $2, String_17fd84 - dbbw $4, $2, String_17f98e - dbbw $5, $2, String_17fa49 - dbbw $6, $2, String_17fd84 - dbbw $99, $2, String_17fc88 - dbbw $1, $3, String_17fa49 - dbbw $1, $4, String_17fa49 - dbbw $2, $4, String_17fa49 - dbbw $3, $4, String_17fa49 - dbbw $4, $4, String_17fa49 - dbbw $ff, $ff, String_17fa49 - -String_17f891: ; 17f891 - db "モバイルアダプタが ただしく" - next "さしこまれていません" - next "とりあつかいせつめいしょを" - next "ごらんのうえ しっかりと" - next "さしこんで ください" - db "@" - -String_17f8d1: ; 17f8d1 - db "でんわが うまく かけられないか" - next "でんわかいせんが こんでいるので" - next "つうしん できません" - next "しばらく まって" - next "かけなおして ください" - db "@" - -String_17f913: ; 17f913 - db "でんわかいせんが こんでいるため" - next "でんわが かけられません" - next "しばらく まって" - next "かけなおして ください" - db "@" - -String_17f946: ; 17f946 - db "モバイルアダプタの エラーです" - next "しばらく まって" - next "かけなおして ください" - next "なおらない ときは" - next "モバイルサポートセンターへ" - next "おといあわせください" - db "@" - -String_17f98e: ; 17f98e - db "つうしんエラーです" - next "しばらく まって" - next "かけなおして ください" - next "なおらない ときは" - next "モバイルサポートセンターへ" - next "おといあわせください" - db "@" - -String_17f9d0: ; 17f9d0 - db "ログインパスワードか" - next "ログイン アイディーに" - next "まちがいがあります" - next "パスワードを かくにんして" - next "しばらく まって" - next "かけなおして ください" - db "@" - -String_17fa14: ; 17fa14 - db "でんわが きれました" - next "とりあつかいせつめいしょを" - next "ごらんのうえ" - next "しばらく まって" - next "かけなおして ください" - db "@" - -String_17fa49: ; 17fa49 - db "モバイルセンターの" - next "つうしんエラーです" - next "しばらくまって" - next "かけなおして ください" - db "@" - -String_17fa71: ; 17fa71 - db "モバイルアダプタに" - next "とうろくされた じょうほうが" - next "ただしく ありません" - next "モバイルトレーナーで" - next "しょきとうろくを してください" - db "@" - -String_17fab0: ; 17fab0 - db "モバイルセンターが" - next "こんでいて つながりません" - next "しばらくまって" - next "かけなおして ください" - next "くわしくは とりあつかい" - next "せつめいしょを ごらんください" - db "@" - -String_17faf9: ; 17faf9 - db "あてさき メールアドレスに" - next "まちがいがあります" - next "ただしい メールアドレスを" - next "いれなおしてください" - db "@" - -String_17fb2a: ; 17fb2a - db "メールアドレスに" - next "まちがいが あります" - next "とりあつかいせつめいしょを" - next "ごらんのうえ" - next "モバイルトレーナーで" - next "しょきとうろくを してください" - db "@" - -String_17fb6e: ; 17fb6e - db "ログインパスワードに" - next "まちがいが あるか" - next "モバイルセンターの エラーです" - next "パスワードを かくにんして" - next "しばらく まって" - next "かけなおして ください" - db "@" - -String_17fbb6: ; 17fbb6 - db "データの よみこみが できません" - next "しばらくまって" - next "かけなおして ください" - next "なおらない ときは" - next "モバイルサポートセンターへ" - next "おといあわせください" - db "@" - -String_17fbfe: ; 17fbfe - db "じかんぎれです" - next "でんわが きれました" - next "でんわを かけなおしてください" - next "くわしくは とりあつかい" - next "せつめいしょを ごらんください" - db "@" - -String_17fc3e: ; 17fc3e - db "ごりよう りょうきんの " - next "おしはらいが おくれたばあいには" - next "ごりようが できなくなります" - next "くわしくは とりあつかい" - next "せつめいしょを ごらんください" - db "@" - -String_17fc88: ; 17fc88 - db "おきゃくさまの ごつごうにより" - next "ごりようできません" - next "くわしくは とりあつかい" - next "せつめいしょを ごらんください" - db "@" - -String_17fcbf: ; 17fcbf - db "でんわかいせんが こんでいるか" - next "モバイルセンターの エラーで" - next "つうしんが できません" - next "しばらく まって" - next "かけなおして ください" - db "@" - -String_17fcff: ; 17fcff - db "ごりよう りょうきんが" - next "じょうげんを こえているため" - next "こんげつは ごりようできません" - next "くわしくは とりあつかい" - next "せつめいしょを ごらんください" - db "@" - -String_17fd47: ; 17fd47 - db "げんざい モバイルセンターの" - next "てんけんを しているので" - next "つうしんが できません" - next "しばらく まって" - next "かけなおして ください" - db "@" - -String_17fd84: ; 17fd84 - db "データの よみこみが できません" - next "くわしくは とりあつかい" - next "せつめいしょを ごらんください" - db "@" - - -String_17fdb2: ; 17fdb2 - db "3ぷん いじょう なにも" - next "にゅうりょく しなかったので" - next "でんわが きれました" - db "@" - -String_17fdd9: ; 17fdd9 - db "つうしんが うまく" - next "できませんでした" - next "もういちど はじめから" - next "やりなおしてください" - db "@" - -String_17fe03: ; 17fe03 - db "データの よみこみが できません" - next "しばらくまって" - next "かけなおして ください" - next "なおらない ときは" - next "モバイルサポートセンターへ" - next "おといあわせください" - db "@" - -String_17fe4b: ; 17fe4b - db "まちじかんが ながいので" - next "でんわが きれました" - db "@" - -String_17fe63: ; 17fe63 - db "あいての モバイルアダプタと" - next "タイプが ちがいます" - next "くわしくは とりあつかい" - next "せつめいしょを ごらんください" - db "@" - -String_17fe9a: ; 17fe9a ; unreferenced - db "ポケモンニュースが" - next "あたらしくなっているので" - next "レポートを おくれません" - next "あたらしい ポケモンニュースの" - next "よみこみを さきに してください" - db "@" - -String_17fedf: ; 17fedf - db "つうしんの じょうきょうが" - next "よくないか かけるあいてが" - next "まちがっています" - next "もういちど かくにんをして" - next "でんわを かけなおして ください" - db "@" -; 17ff23 - -Function17ff23: ; 17ff23 - ld a, [hJoyPressed] - and a - ret z - ld a, $8 - ld [MusicFade], a - ld a, [wMapMusic] - ld [MusicFadeID], a - xor a - ld [MusicFadeID + 1], a - ld hl, wc303 - set 7, [hl] - ret -; 17ff3c - -Function17ff3c: ; 17ff3c - nop - ld a, [wc300] - cp $d0 - ret c - hlcoord 10, 2 - ld de, String_17ff68 - call PlaceString - ld a, [wc300] - push af - sub $d0 - inc a - ld [wc300], a - hlcoord 14, 2 - ld de, wc300 - lb bc, PRINTNUM_LEADINGZEROS | 1, 3 - call PrintNum - pop af - ld [wc300], a - and a - ret -; 17ff68 - -String_17ff68: ; 17ff68 - db "101@" -; 17ff6c diff --git a/misc/mobile_menu.asm b/misc/mobile_menu.asm deleted file mode 100755 index 1bee0cced..000000000 --- a/misc/mobile_menu.asm +++ /dev/null @@ -1,879 +0,0 @@ -MainMenu_Mobile: ; 49efc - call ClearBGPalettes - ld a, MUSIC_MOBILE_ADAPTER_MENU - ld [wMapMusic], a - ld de, MUSIC_MOBILE_ADAPTER_MENU - call Function4a6c5 -Function49f0a: ; 49f0a - call ClearBGPalettes - call Function4a3a7 - call Function4a492 - call ClearBGPalettes -Function49f16: ; 49f16 - call MobileMenu_InitMenuBuffers - ld c, 12 - call DelayFrames - hlcoord 4, 0 - ld b, 10 - ld c, 10 - call Function48cdc - hlcoord 6, 2 - ld de, MobileString1 - call PlaceString - hlcoord 0, 12 - ld b, 4 - ld c, SCREEN_HEIGHT - call TextBox - xor a - ld de, String_0x49fe9 - hlcoord 1, 14 - call PlaceString - call WaitBGMap2 - call SetPalettes - call StaticMenuJoypad - ld hl, wMenuCursorY - ld b, [hl] - push bc - jr .check_buttons - -.joy_loop - call ScrollingMenuJoypad - ld hl, wMenuCursorY - ld b, [hl] - push bc - -.check_buttons - bit A_BUTTON_F, a - jr nz, .a_button - bit B_BUTTON_F, a - jr nz, .b_button - jr .next - -.a_button - ld hl, wMenuCursorY - ld a, [hl] - cp 1 - jp z, Function4a098 - cp 2 - jp z, Function4a0b9 - cp 3 - jp z, Function4a0c2 - cp 4 - jp z, Function4a100 - ld a, 1 - call MenuClickSound -.b_button - pop bc - call ClearBGPalettes - call ClearTileMap - ld a, MUSIC_MAIN_MENU - ld [wMapMusic], a - ld de, MUSIC_MAIN_MENU - call Function4a6c5 - ret - -.next - ld hl, wMenuCursorY - ld a, [hl] - dec a - ld hl, MobileStrings2 - call GetNthString - ld d, h - ld e, l - hlcoord 1, 13 - ld b, 4 - ld c, SCREEN_HEIGHT - call ClearBox - hlcoord 1, 14 - call PlaceString - jp .useless_jump - -.useless_jump - call MobileMenu_InitMenuBuffers - pop bc - ld hl, wMenuCursorY - ld [hl], b - ld b, $a - ld c, $1 - hlcoord 5, 1 - call ClearBox - jp .joy_loop -; 49fcc - - -MobileString1: ; 49fcc - db "めいしフ,ルダー" - next "あいさつ" - next "プロフィール" - next "せ", $1e, "い" - next "もどる" - db "@" -; 49fe9 - - -MobileStrings2: - -String_0x49fe9: ; 49fe9 - db "めいし¯つくったり" - next "ほぞんしておける フ,ルダーです@" -; 4a004 - -String_0x4a004: ; 4a004 - db "モバイルたいせんや じぶんのめいしで" - next "つかう あいさつ¯つくります@" -; 4a026 - -String_0x4a026: ; 4a026 - db "あなた%じゅうしょや ねんれいの" - next "せ", $1e, "い¯かえられます@" -; 4a042 - -String_0x4a042: ; 4a042 - db "モバイルセンター", $1d, "せつぞくするとき" - next "ひつような こと¯きめます@" -; 4a062 - -String_0x4a062: ; 4a062 - db "まえ%がめん ", $1d, "もどります" - next "@" -; 4a071 - -MobileMenu_InitMenuBuffers: ; 4a071 (12:6071) - ld hl, w2DMenuCursorInitY - ld a, 2 - ld [hli], a - ld a, 5 ; w2DMenuCursorInitX - ld [hli], a - ld a, 5 ; w2DMenuNumRows - ld [hli], a - ld a, 1 ; w2DMenuNumCols - ld [hli], a - ld [hl], $0 ; w2DMenuFlags1 - set 5, [hl] - inc hl - xor a ; w2DMenuFlags2 - ld [hli], a - ld a, $20 ; w2DMenuCursorOffsets - ld [hli], a - ; this is a stupid way to load $c3 - ld a, A_BUTTON - add D_UP - add D_DOWN - add B_BUTTON - ld [hli], a ; wMenuJoypadFilter - ld a, 1 - ld [hli], a ; wMenuCursorY, wMenuCursorX - ld [hli], a ; wMenuCursorY, wMenuCursorX - ret - -Function4a098: ; 4a098 (12:6098) - ld a, 2 - call MenuClickSound - call PlaceHollowCursor - call WaitBGMap - call LoadStandardMenuDataHeader - callba Function89de0 - call Call_ExitMenu - call MG_Mobile_Layout_LoadPals - call Function4a485 - pop bc - jp Function49f16 - -Function4a0b9: ; 4a0b9 (12:60b9) - ld a, 2 - call MenuClickSound - pop bc - jp Function4a4c4 - -Function4a0c2: ; 4a0c2 (12:60c2) - ld a, 2 - call MenuClickSound - ld a, BANK(sPlayerData) - call GetSRAMBank - ld hl, sPlayerData + PlayerName - wPlayerData - ld de, PlayerName - ld bc, 6 ; japanese name length - call CopyBytes - call CloseSRAM - callba _LoadData - ld c, 2 - call DelayFrames - ld c, $1 - call InitMobileProfile - push af - call ClearBGPalettes - pop af - and a - jr nz, .skip_save - callba _SaveData -.skip_save - ld c, 5 - call DelayFrames - jr asm_4a111 - -Function4a100: ; 4a100 (12:6100) - ld a, 2 - call MenuClickSound - call ClearBGPalettes - call Function4a13b - call ClearBGPalettes - call ClearTileMap - -asm_4a111: ; 4a111 (12:6111) - pop bc - call LoadFontsExtra - jp Function49f0a - -Function4a118: ; 4a118 (12:6118) - ld hl, w2DMenuCursorInitY - ld a, $1 - ld [hli], a - ld a, $d - ld [hli], a - ld a, $3 - ld [hli], a - ld a, $1 - ld [hli], a - ld [hl], $0 - set 5, [hl] - inc hl - xor a - ld [hli], a - ld a, $20 - ld [hli], a - ld a, $1 - add $2 - ld [hli], a - ld a, $1 - ld [hli], a - ld [hli], a - ret - -Function4a13b: ; 4a13b (12:613b) - call Function4a3a7 - call Function4a492 - call Function4a373 - ld c, 10 - call DelayFrames - -Function4a149: ; 4a149 (12:6149) - hlcoord 1, 2 - ld b, $6 - ld c, $10 - call Function48cdc - hlcoord 3, 4 - ld de, String_4a1ef - call PlaceString - hlcoord 0, 12 - ld b, $4 - ld c, $12 - call TextBox - ld a, [wMenuCursorY] - dec a - ld hl, Strings_4a23d - call GetNthString - ld d, h - ld e, l - hlcoord 1, 13 - ld b, $4 - ld c, $12 - call ClearBox - hlcoord 1, 14 - call PlaceString - callba Mobile_OpenAndCloseMenu_HDMATransferTileMapAndAttrMap - call SetPalettes - call StaticMenuJoypad - ld hl, wMenuCursorY - ld b, [hl] - push bc - jr asm_4a19d - -Function4a195: ; 4a195 (12:6195) - call ScrollingMenuJoypad - ld hl, wMenuCursorY - ld b, [hl] - push bc - -asm_4a19d: ; 4a19d (12:619d) - bit 0, a - jr nz, .asm_4a1a7 - bit 1, a - jr nz, .asm_4a1ba - jr .asm_4a1bc -.asm_4a1a7 - ld hl, wMenuCursorY - ld a, [hl] - cp $1 - jp z, Function4a20e - cp $2 - jp z, Function4a221 - ld a, $1 - call MenuClickSound -.asm_4a1ba - pop bc - ret -.asm_4a1bc - ld hl, wMenuCursorY - ld a, [hl] - dec a - ld hl, Strings_4a23d - call GetNthString - ld d, h - ld e, l - hlcoord 1, 13 - ld b, $4 - ld c, $12 - call ClearBox - hlcoord 1, 14 - call PlaceString - jr .asm_4a1db -.asm_4a1db - call Function4a373 - pop bc - ld hl, wMenuCursorY - ld [hl], b - lb bc, 6, 1 - hlcoord 2, 3 - call ClearBox - jp Function4a195 -; 4a1ef (12:61ef) - -String_4a1ef: ; 4a1ef - db "モバイルセンター¯えらぶ" - next "ログインパスワード¯いれる" - next "もどる@" -; 4a20e - -Function4a20e: ; 4a20e (12:620e) - ld a, $1 - call MenuClickSound - callba Function1719c8 - call ClearBGPalettes - call DelayFrame - jr Function4a239 - -Function4a221: ; 4a221 (12:6221) - ld a, $1 - call MenuClickSound - call Function4a28a - jr c, Function4a239 - call Function4a373 - ld a, $2 - ld [wMenuCursorY], a - jr .asm_4a235 -.asm_4a235 - pop bc - jp Function4a149 - -Function4a239: ; 4a239 (12:6239) - pop bc - jp Function4a13b -; 4a23d (12:623d) - -Strings_4a23d: ; 4a23d - db "いつも せつぞく¯する" - next "モバイルセンター¯えらびます@" - - db "モバイルセンター", $1d, "せつぞくするとき" - next "つかうパスワード¯ほぞんできます@" - - db "まえ%がめん ", $1d, "もどります@" - - db "@" -; 4a28a - -Function4a28a: ; 4a28a (12:628a) - hlcoord 2, 3 - lb bc, 6, 1 - ld a, " " - call Function4a6d8 - call PlaceHollowCursor - call WaitBGMap - call LoadStandardMenuDataHeader - ld a, $5 - call GetSRAMBank - ld a, [$aa4b] - call CloseSRAM - and a - jr z, .asm_4a2df - hlcoord 12, 0 - ld b, $5 - ld c, $6 - call Function48cdc - hlcoord 14, 1 - ld de, String_4a34b - call PlaceString - callba Mobile_OpenAndCloseMenu_HDMATransferTileMapAndAttrMap - call Function4a118 - call ScrollingMenuJoypad - push af - call PlayClickSFX - pop af - bit B_BUTTON_F, a - jr nz, .quit - ld a, [wMenuCursorY] - cp $2 - jr z, .DeleteLoginPassword - cp $3 - jr z, .quit -.asm_4a2df - callba Function11765d - call ClearBGPalettes - call Call_ExitMenu - call LoadFontsExtra - scf - ret - -.DeleteLoginPassword: - call PlaceHollowCursor - ld hl, UnknownText_0x4a358 - call PrintText - hlcoord 14, 7 - ld b, 3 - ld c, 4 - call TextBox - callba Mobile_OpenAndCloseMenu_HDMATransferTileMapAndAttrMap - ld hl, DeletePassword_YesNo_MenuDataHeader - call LoadMenuDataHeader - call VerticalMenu - bit B_BUTTON_F, a - jr nz, .dont_delete_password - ld a, [wMenuCursorY] - cp $2 - jr z, .dont_delete_password - ld a, BANK(sMobileLoginPassword) - call GetSRAMBank - ld hl, sMobileLoginPassword - xor a - ld bc, MOBILE_LOGIN_PASSWORD_LENGTH - call ByteFill - call CloseSRAM - ld hl, UnknownText_0x4a35d - call PrintText - call JoyWaitAorB -.dont_delete_password - call ExitMenu -.quit - call Call_ExitMenu - callba Mobile_OpenAndCloseMenu_HDMATransferTileMapAndAttrMap - xor a - ret -; 4a346 (12:6346) - -MenuDataHeader_0x4a346: ; 0x4a346 - db $40 ; flags - db 00, 12 ; start coords - db 06, 19 ; end coords - -String_4a34b: ; 4a34b - db "いれなおす" - next "けす" - next "もどる@" -; 4a358 - -UnknownText_0x4a358: ; 0x4a358 - ; Delete the saved LOG-IN PASSWORD? - text_jump UnknownText_0x1c5196 - db "@" -; 0x4a35d - -UnknownText_0x4a35d: ; 0x4a35d - ; Deleted the LOG-IN PASSWORD. - text_jump UnknownText_0x1c51b9 - db "@" -; 0x4a362 - -DeletePassword_YesNo_MenuDataHeader: ; 0x4a362 - db $40 ; flags - db 07, 14 ; start coords - db 11, 19 ; end coords - dw MenuData2_0x4a36a - db 2 ; default option -; 0x4a36a - -MenuData2_0x4a36a: ; 0x4a36a - db $e0 ; flags - db 2 ; items - db "はい@" - db "いいえ@" -; 0x4a373 - -Function4a373: ; 4a373 (12:6373) - ld hl, w2DMenuCursorInitY - ld a, $4 - ld [hli], a - ld a, $2 - ld [hli], a - ld a, $3 - ld [hli], a - ld a, $1 - ld [hli], a - ld [hl], $0 - set 5, [hl] - inc hl - xor a - ld [hli], a - ld a, $20 - ld [hli], a - ld a, $1 - add $40 - add $80 - add $2 - ld [hli], a - ld a, $1 - ld [hli], a - ld [hli], a - ret -; 4a39a (12:639a) - -Function4a39a: ; 4a39a - call Function4a485 - call Function4a492 - call Function4a3aa - call SetPalettes - ret -; 4a3a7 - -Function4a3a7: ; 4a3a7 (12:63a7) - call Function4a485 -Function4a3aa: ; 4a3aa - hlcoord 0, 0 - lb bc, 3, 1 - xor a - call Function4a6d8 - lb bc, 1, 1 - ld a, $1 - call Function4a6d8 - lb bc, 1, 1 - xor a - call Function4a6d8 - lb bc, 1, 1 - ld a, $1 - call Function4a6d8 - lb bc, 4, 1 - ld a, $2 - call Function4a6d8 - lb bc, 1, 1 - ld a, $3 - call Function4a6d8 - lb bc, 1, 1 - ld a, " " - call Function4a6d8 - hlcoord 1, 0 - ld a, $1 - lb bc, 3, 18 - call Function4a6d8 - lb bc, 1, 18 - ld a, $0 - call Function4a6d8 - lb bc, 1, 18 - ld a, $1 - call Function4a6d8 - lb bc, 1, 18 - ld a, $2 - call Function4a6d8 - lb bc, 11, 18 - ld a, " " - call Function4a6d8 - hlcoord 19, 0 - lb bc, 3, 1 - ld a, $0 - call Function4a6d8 - lb bc, 1, 1 - ld a, $1 - call Function4a6d8 - lb bc, 1, 1 - xor a - call Function4a6d8 - lb bc, 1, 1 - ld a, $1 - call Function4a6d8 - lb bc, 4, 1 - ld a, $2 - call Function4a6d8 - lb bc, 1, 1 - ld a, $3 - call Function4a6d8 - lb bc, 1, 1 - ld a, " " - call Function4a6d8 - ret -; 4a449 (12:6449) - -Function4a449: ; 4a449 - ld bc, 3 * SCREEN_WIDTH - ld a, $0 - hlcoord 0, 0 - call ByteFill - ld bc, 2 * SCREEN_WIDTH - ld a, $1 - call ByteFill - ld bc, 2 * SCREEN_WIDTH - ld a, $0 - call ByteFill - ld bc, 2 * SCREEN_WIDTH - ld a, $1 - call ByteFill - ld bc, SCREEN_WIDTH - ld a, $2 - call ByteFill - ld bc, SCREEN_WIDTH - ld a, $3 - call ByteFill - ld bc, SCREEN_WIDTH - ld a, " " - call ByteFill - ret -; 4a485 - -Function4a485: ; 4a485 (12:6485) - ld de, GFX_49c0c - ld hl, VTiles2 tile $00 - lb bc, BANK(GFX_49c0c), 13 - call Get2bpp - ret - -Function4a492: ; 4a492 (12:6492) - call MG_Mobile_Layout00 - ret - - -MainMenu_MobileStudium: ; 4a496 - ld a, [StartDay] - ld b, a - ld a, [StartHour] - ld c, a - ld a, [StartMinute] - ld d, a - ld a, [StartSecond] - ld e, a - push bc - push de - callba MobileStudium - call ClearBGPalettes - pop de - pop bc - ld a, b - ld [StartDay], a - ld a, c - ld [StartHour], a - ld a, d - ld [StartMinute], a - ld a, e - ld [StartSecond], a - ret -; 4a4c4 - - -Function4a4c4: ; 4a4c4 (12:64c4) - call ClearBGPalettes - call Function4a3a7 - call Function4a492 - call Function4a680 - call ClearBGPalettes - ld c, 20 - call DelayFrames - hlcoord 2, 0 - ld b, $a - ld c, $e - call Function48cdc - hlcoord 4, 2 - ld de, String_4a5c5 - call PlaceString - hlcoord 4, 4 - ld de, String_4a5cd - call PlaceString - hlcoord 4, 6 - ld de, String_4a5da - call PlaceString - hlcoord 4, 8 - ld de, String_4a5e6 - call PlaceString - hlcoord 4, 10 - ld de, String_4a5f2 - call PlaceString - hlcoord 0, 12 - ld b, $4 - ld c, $12 - call TextBox - xor a - ld hl, Strings_4a5f6 - ld d, h - ld e, l - hlcoord 1, 14 - call PlaceString - ld a, $1 - ld hl, Strings_4a5f6 - call GetNthString - ld d, h - ld e, l - hlcoord 1, 16 - call PlaceString - call WaitBGMap2 - call SetPalettes - call StaticMenuJoypad - ld hl, wMenuCursorY - ld b, [hl] - push bc - jr asm_4a54d - -Function4a545: ; 4a545 (12:6545) - call ScrollingMenuJoypad - ld hl, wMenuCursorY - ld b, [hl] - push bc - -asm_4a54d: ; 4a54d (12:654d) - bit 0, a - jr nz, .asm_4a557 - bit 1, a - jr nz, .asm_4a574 - jr .asm_4a57e -.asm_4a557 - ld hl, wMenuCursorY - ld a, [hl] - cp $1 - jp z, Function4a6ab - cp $2 - jp z, Function4a6ab - cp $3 - jp z, Function4a6ab - cp $4 - jp z, Function4a6ab - ld a, $1 - call MenuClickSound -.asm_4a574 - pop bc - call ClearBGPalettes - call ClearTileMap - jp Function49f0a -.asm_4a57e - ld hl, wMenuCursorY - ld a, [hl] - dec a - add a - push af - ld hl, Strings_4a5f6 - call GetNthString - ld d, h - ld e, l - hlcoord 1, 13 - ld b, $4 - ld c, $12 - call ClearBox - hlcoord 1, 14 - call PlaceString - pop af - inc a - ld hl, Strings_4a5f6 - call GetNthString - ld d, h - ld e, l - hlcoord 1, 16 - call PlaceString - jp Function4a5b0 - -Function4a5b0: ; 4a5b0 (12:65b0) - call Function4a680 - pop bc - ld hl, wMenuCursorY - ld [hl], b - ld b, $a - ld c, $1 - hlcoord 3, 1 - call ClearBox - jp Function4a545 -; 4a5c5 (12:65c5) - -String_4a5c5: ; 4a5c5 - db "じこしょうかい@" -String_4a5cd: ; 4a5cd - db "たいせん ", $4a, "はじまるとき@" -String_4a5da: ; 4a5da - db "たいせん ", $1d, "かったとき@" -String_4a5e6: ; 4a5e6 - db "たいせん ", $1d, "まけたとき@" -String_4a5f2: ; 4a5f2 - db "もどる@" -; 4a5f6 - -Strings_4a5f6: ; 4a5f6 - db "めいし や ニュース ", $1d, "のせる@" - db "あなた%あいさつです@" - db "モバイル たいせん", $4a, "はじまるとき@" - db "あいて", $1d, "みえる あいさつです@" - db "モバイル たいせんで かったとき@" - db "あいて", $1d, "みえる あいさつです@" - db "モバイル たいせんで まけたとき@" - db "あいて", $1d, "みえる あいさつです@" - db "まえ%がめん ", $1d, "もどります@" - db "@" -; 4a680 - -Function4a680: ; 4a680 (12:6680) - ld hl, w2DMenuCursorInitY - ld a, $2 - ld [hli], a - ld a, $3 - ld [hli], a - ld a, $5 - ld [hli], a - ld a, $1 - ld [hli], a - ld [hl], $0 - set 5, [hl] - inc hl - xor a - ld [hli], a - ld a, $20 - ld [hli], a - ld a, $1 - add $40 - add $80 - add $2 - ld [hli], a - ld a, $1 - ld [hli], a - ld [hli], a - xor a - ld [hli], a - ld [hli], a - ld [hli], a - ret - -Function4a6ab: ; 4a6ab (12:66ab) - ld a, $2 - call MenuClickSound - call ClearBGPalettes - ld b, SCGB_DIPLOMA - call GetSGBLayout - callba Function11c1ab - pop bc - call LoadFontsExtra - jp Function4a4c4 - -Function4a6c5: ; 4a6c5 (12:66c5) - ld a, $5 - ld [MusicFade], a - ld a, e - ld [MusicFadeID], a - ld a, d - ld [MusicFadeID + 1], a - ld c, 22 - call DelayFrames - ret - -Function4a6d8: ; 4a6d8 (12:66d8) - push bc - push hl -.asm_4a6da - ld [hli], a - dec c - jr nz, .asm_4a6da - pop hl - ld bc, SCREEN_WIDTH - add hl, bc - pop bc - dec b - jr nz, Function4a6d8 - ret diff --git a/misc/printer_77.asm b/misc/printer_77.asm deleted file mode 100755 index 4f67909b0..000000000 --- a/misc/printer_77.asm +++ /dev/null @@ -1,356 +0,0 @@ -PrintPage1: ; 1dc1b0 - hlcoord 0, 0 - decoord 0, 0, wPrinterTileMapBuffer - ld bc, 17 * SCREEN_WIDTH - call CopyBytes - hlcoord 17, 1, wPrinterTileMapBuffer - ld a, $62 - ld [hli], a - inc a - ld [hl], a - hlcoord 17, 2, wPrinterTileMapBuffer - ld a, $64 - ld [hli], a - inc a - ld [hl], a - hlcoord 1, 9, wPrinterTileMapBuffer - ld a, " " - ld [hli], a - ld [hl], a - hlcoord 1, 10, wPrinterTileMapBuffer - ld a, $61 - ld [hli], a - ld [hl], a - hlcoord 2, 11, wPrinterTileMapBuffer - lb bc, 5, 18 - call ClearBox - ld a, [wd265] - dec a - call CheckCaughtMon - push af - ld a, [wd265] - ld b, a - ld c, 1 ; get page 1 - callba GetDexEntryPagePointer - pop af - ld a, b - hlcoord 1, 11, wPrinterTileMapBuffer - call nz, FarString - hlcoord 19, 0, wPrinterTileMapBuffer - ld [hl], $35 - ld de, SCREEN_WIDTH - add hl, de - ld b, $f -.column_loop - ld [hl], $37 - add hl, de - dec b - jr nz, .column_loop - ld [hl], $3a - ret -; 1dc213 - -PrintPage2: ; 1dc213 - hlcoord 0, 0, wPrinterTileMapBuffer - ld bc, 8 * SCREEN_WIDTH - ld a, " " - call ByteFill - hlcoord 0, 0, wPrinterTileMapBuffer - ld a, $36 - ld b, 6 - call .FillColumn - hlcoord 19, 0, wPrinterTileMapBuffer - ld a, $37 - ld b, 6 - call .FillColumn - hlcoord 0, 6, wPrinterTileMapBuffer - ld [hl], $38 - inc hl - ld a, $39 - ld bc, SCREEN_HEIGHT - call ByteFill - ld [hl], $3a - hlcoord 0, 7, wPrinterTileMapBuffer - ld bc, SCREEN_WIDTH - ld a, $32 - call ByteFill - ld a, [wd265] - dec a - call CheckCaughtMon - push af - ld a, [wd265] - ld b, a - ld c, 2 ; get page 2 - callba GetDexEntryPagePointer - pop af - hlcoord 1, 1, wPrinterTileMapBuffer - ld a, b - call nz, FarString - ret -; 1dc26a - -.FillColumn: ; 1dc26a - push de - ld de, SCREEN_WIDTH -.column_loop - ld [hl], a - add hl, de - dec b - jr nz, .column_loop - pop de - ret -; 1dc275 - -GBPrinterStrings: -GBPrinterString_Null: db "@" -GBPrinterString_CheckingLink: next " CHECKING LINK...@" -GBPrinterString_Transmitting: next " TRANSMITTING...@" -GBPrinterString_Printing: next " PRINTING...@" -GBPrinterString_PrinterError1: - db " Printer Error 1" - next "" - next "Check the Game Boy" - next "Printer Manual." - db "@" -GBPrinterString_PrinterError2: - db " Printer Error 2" - next "" - next "Check the Game Boy" - next "Printer Manual." - db "@" -GBPrinterString_PrinterError3: - db " Printer Error 3" - next "" - next "Check the Game Boy" - next "Printer Manual." - db "@" -GBPrinterString_PrinterError4: - db " Printer Error 4" - next "" - next "Check the Game Boy" - next "Printer Manual." - db "@" -; 1dc381 - -PrintPartyMonPage1: ; 1dc381 - call ClearBGPalettes - call ClearTileMap - call ClearSprites - xor a - ld [hBGMapMode], a - call LoadFontsBattleExtra - - ld de, MobileHPIcon - ld hl, VTiles2 tile $71 - lb bc, BANK(MobileHPIcon), 1 - call Request1bpp - - ld de, MobileLvIcon - ld hl, VTiles2 tile $6e - lb bc, BANK(MobileLvIcon), 1 - call Request1bpp - - ld de, ShinyIconGFX - ld hl, VTiles2 tile $3f - lb bc, BANK(ShinyIconGFX), 1 - call Get2bpp - - xor a - ld [MonType], a - callba CopyPkmnToTempMon - hlcoord 0, 7 - ld b, 9 - ld c, 18 - call TextBox - hlcoord 8, 2 - ld a, [TempMonLevel] - call PrintLevel_Force3Digits - hlcoord 12, 2 - ld [hl], "◀" ; Filled left triangle - inc hl - ld de, TempMonMaxHP - lb bc, 2, 3 - call PrintNum - ld a, [CurPartySpecies] - ld [wd265], a - ld [CurSpecies], a - ld hl, PartyMonNicknames - call Function1dc50e - hlcoord 8, 4 - call PlaceString - hlcoord 9, 6 - ld [hl], "/" - call GetPokemonName - hlcoord 10, 6 - call PlaceString - hlcoord 8, 0 - ld [hl], "№" - inc hl - ld [hl], "." - inc hl - ld de, wd265 - lb bc, PRINTNUM_LEADINGZEROS | 1, 3 - call PrintNum - hlcoord 1, 9 - ld de, String1dc550 - call PlaceString - ld hl, PartyMonOT - call Function1dc50e - hlcoord 4, 9 - call PlaceString - hlcoord 1, 11 - ld de, String1dc559 - call PlaceString - hlcoord 4, 11 - ld de, TempMonID - lb bc, PRINTNUM_LEADINGZEROS | 2, 5 - call PrintNum - hlcoord 1, 14 - ld de, String1dc554 - call PlaceString - hlcoord 7, 14 - ld a, [TempMonMoves + 0] - call Function1dc51a - call Function1dc52c - ld hl, TempMonDVs - predef GetUnownLetter - ld hl, wBoxAlignment - xor a - ld [hl], a - ld a, [CurPartySpecies] - cp UNOWN - jr z, .asm_1dc469 - inc [hl] - -.asm_1dc469 - hlcoord 0, 0 - call _PrepMonFrontpic - call WaitBGMap - ld b, SCGB_STATS_SCREEN_HP_PALS - call GetSGBLayout - call SetPalettes - ret -; 1dc47b - -PrintPartyMonPage2: ; 1dc47b - call ClearBGPalettes - call ClearTileMap - call ClearSprites - xor a - ld [hBGMapMode], a - call LoadFontsBattleExtra - xor a - ld [MonType], a - callba CopyPkmnToTempMon - hlcoord 0, 0 - ld b, 15 - ld c, 18 - call TextBox - ld bc, SCREEN_WIDTH - decoord 0, 0 - hlcoord 0, 1 - call CopyBytes - hlcoord 7, 0 - ld a, [TempMonMoves + 1] - call Function1dc51a - hlcoord 7, 2 - ld a, [TempMonMoves + 2] - call Function1dc51a - hlcoord 7, 4 - ld a, [TempMonMoves + 3] - call Function1dc51a - hlcoord 7, 7 - ld de, String1dc55d - call PlaceString - hlcoord 16, 7 - ld de, TempMonAttack - call .PrintTempMonStats - hlcoord 16, 9 - ld de, TempMonDefense - call .PrintTempMonStats - hlcoord 16, 11 - ld de, TempMonSpclAtk - call .PrintTempMonStats - hlcoord 16, 13 - ld de, TempMonSpclDef - call .PrintTempMonStats - hlcoord 16, 15 - ld de, TempMonSpeed - call .PrintTempMonStats - call WaitBGMap - ld b, SCGB_STATS_SCREEN_HP_PALS - call GetSGBLayout - call SetPalettes - ret -; 1dc507 - -.PrintTempMonStats: ; 1dc507 - lb bc, 2, 3 - call PrintNum - ret -; 1dc50e - -Function1dc50e: ; 1dc50e - ld bc, NAME_LENGTH - ld a, [CurPartyMon] - call AddNTimes - ld e, l - ld d, h - ret -; 1dc51a - -Function1dc51a: ; 1dc51a - and a - jr z, .no_move - - ld [wd265], a - call GetMoveName - jr .got_string - -.no_move - ld de, String1dc584 - -.got_string - call PlaceString - ret -; 1dc52c - -Function1dc52c: ; 1dc52c - callba GetGender - ld a, " " - jr c, .got_gender - ld a, "♂" - jr nz, .got_gender - ld a, "♀" - -.got_gender - hlcoord 17, 2 - ld [hl], a - ld bc, TempMonDVs - callba CheckShininess - ret nc - hlcoord 18, 2 - ld [hl], "" - ret -; 1dc550 - -String1dc550: ; 1dc550 - db "OT/@" - -String1dc554: ; 1dc554 - db "MOVE@" - -String1dc559: ; 1dc559 - db "№.@" - -String1dc55d: ; 1dc55d - db "ATTACK" - next "DEFENSE" - next "SPCL.ATK" - next "SPCL.DEF" - next "SPEED" - db "@" - -String1dc584: ; 1dc584 - db "------------@" -; 1dc591 diff --git a/misc/unused_title.asm b/misc/unused_title.asm deleted file mode 100644 index 6cd79237b..000000000 --- a/misc/unused_title.asm +++ /dev/null @@ -1,556 +0,0 @@ -UnusedTitleScreen: ; 10c000 - - call ClearBGPalettes - call ClearTileMap - call DisableLCD - xor a - ld [hBGMapMode], a - - ld hl, wJumptableIndex - ld [hli], a - ld [hli], a - ld [hli], a - ld [hl], a - - ld hl, UnusedTitleBG_GFX - ld de, VTiles2 - ld bc, VBGMap0 - VTiles2 - call CopyBytes - - ld hl, UnusedTitleBG_GFX + $800 - ld de, VTiles1 - ld bc, VTiles2 - VTiles1 - call CopyBytes - - ld hl, UnusedTitleFG_GFX - ld de, VTiles0 - ld bc, VTiles1 - VTiles0 - call CopyBytes - - ld hl, UnusedTitleBG_Tilemap - debgcoord 0, 0 - ld bc, 32 * 32 -.copy - ld a, 0 - ld [rVBK], a - ld a, [hli] - ld [de], a - ld a, 1 - ld [rVBK], a - ld a, [hli] - ld [de], a - inc de - dec bc - ld a, b - or c - jr nz, .copy - - ld hl, UnusedTitleFG_OAM - ld de, Sprites - ld bc, $a0 - call CopyBytes - - call EnableLCD - ld a, [rLCDC] - set 1, a - set 2, a - ld [rLCDC], a - - call DelayFrame - - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - - ld hl, UnusedTitleBG_Palettes - ld de, UnknBGPals - ld bc, $40 - call CopyBytes - - ld hl, UnusedTitleFG_Palettes - ld de, UnknOBPals - ld bc, $40 - call CopyBytes - - ld hl, UnusedTitleBG_Palettes - ld de, BGPals - ld bc, $40 - call CopyBytes - - ld hl, UnusedTitleFG_Palettes - ld de, OBPals - ld bc, $40 - call CopyBytes - - pop af - ld [rSVBK], a - - ld a, $1 - ld [hCGBPalUpdate], a - - ld de, MUSIC_TITLE - call PlayMusic - - ret -; 10c0b1 - -UnusedTitleBG_GFX: ; 10c0b1 -INCBIN "gfx/title/old_bg.2bpp" -; 10d0b1 - -UnusedTitleBG_Tilemap: ; 10d0b1 -; 32x32 (tile, attributes) - db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $01,$00, $02,$01, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00 - db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $03,$00, $04,$00, $05,$01, $06,$01, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00 - db $00,$00, $00,$00, $07,$05, $08,$05, $09,$05, $0a,$05, $0b,$00, $0c,$00, $0d,$00, $0e,$00, $0f,$01, $10,$01, $11,$01, $12,$01, $13,$05, $14,$05, $15,$05, $16,$05, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00 - db $00,$00, $00,$00, $17,$04, $18,$04, $19,$04, $1a,$04, $1b,$00, $1c,$00, $1d,$02, $1e,$02, $1f,$07, $20,$07, $21,$01, $22,$01, $23,$04, $24,$04, $25,$04, $26,$04, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00 - db $00,$00, $00,$00, $27,$04, $28,$04, $29,$04, $2a,$04, $2b,$00, $2c,$00, $2d,$03, $2e,$01, $2f,$01, $30,$01, $31,$01, $32,$01, $33,$04, $34,$04, $35,$04, $36,$04, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00 - db $00,$00, $00,$00, $37,$04, $38,$04, $39,$04, $3a,$04, $3b,$00, $3c,$00, $3d,$01, $00,$00, $00,$00, $3e,$07, $3f,$01, $40,$01, $41,$04, $42,$04, $43,$04, $44,$04, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00 - db $00,$00, $00,$00, $45,$04, $46,$04, $47,$04, $48,$04, $49,$00, $3c,$00, $4a,$01, $00,$00, $00,$00, $4b,$07, $3f,$01, $4c,$01, $4d,$06, $4e,$06, $4f,$06, $50,$06, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00 - db $00,$00, $00,$00, $51,$04, $52,$06, $53,$06, $54,$06, $55,$00, $3c,$00, $56,$01, $00,$00, $00,$00, $57,$07, $58,$01, $59,$01, $5a,$06, $5b,$06, $5c,$06, $5d,$06, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00 - db $00,$00, $00,$00, $5e,$06, $5f,$06, $60,$06, $61,$06, $62,$00, $63,$00, $64,$03, $65,$01, $66,$01, $67,$07, $68,$01, $69,$01, $26,$04, $6a,$06, $26,$04, $26,$04, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00 - db $00,$00, $00,$00, $6b,$00, $6c,$05, $6d,$05, $6e,$05, $6f,$00, $70,$02, $71,$02, $72,$01, $73,$00, $74,$02, $75,$01, $76,$01, $77,$05, $78,$05, $79,$05, $6b,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00 - db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $7a,$00, $7b,$00, $7c,$00, $7d,$00, $0f,$01, $7e,$01, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00 - db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $a2,$00, $80,$00, $81,$00, $82,$00, $83,$00, $84,$07, $85,$01, $86,$01, $87,$01, $88,$01, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00 - db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $89,$00, $8a,$00, $8b,$00, $8c,$07, $8d,$01, $8e,$01, $8f,$01, $90,$01, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00 - db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $91,$01, $92,$01, $93,$01, $94,$01, $95,$01, $00,$00, $00,$00, $00,$00, $96,$05, $97,$05, $98,$05, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00 - db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $99,$05, $9a,$05, $9b,$05, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00 - db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $9c,$05, $9d,$05, $9e,$05, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00 - db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $9f,$05, $a0,$05, $a1,$05, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00 - db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00 - db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00 - db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00 - db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00 - db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00 - db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00 - db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00 - db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00 - db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00 - db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $6b,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00 - db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00 - db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00 - db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00 - db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00 - db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00 -; 10d8b1 - -UnusedTitleBG_Palettes: ; 10d8b1 - RGB 00, 00, 00 - RGB 25, 15, 28 - RGB 22, 11, 28 - RGB 19, 08, 26 - - RGB 00, 00, 00 - RGB 17, 07, 22 - RGB 13, 07, 16 - RGB 19, 08, 26 - - RGB 25, 15, 28 - RGB 22, 11, 28 - RGB 19, 08, 26 - RGB 17, 07, 22 - - RGB 22, 11, 28 - RGB 19, 08, 26 - RGB 17, 07, 22 - RGB 13, 07, 16 - - RGB 00, 00, 00 - RGB 31, 31, 31 - RGB 16, 16, 24 - RGB 02, 13, 21 - - RGB 00, 00, 00 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 12, 12, 12 - - RGB 00, 00, 00 - RGB 01, 11, 23 - RGB 16, 16, 24 - RGB 02, 13, 21 - - RGB 00, 00, 00 - RGB 22, 10, 31 - RGB 19, 08, 26 - RGB 17, 07, 22 - - - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - - RGB 31, 31, 31 - RGB 20, 04, 20 - RGB 16, 08, 16 - RGB 24, 00, 24 - - rept 54 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - endr -; 10dab1 - -UnusedTitleFG_GFX: ; 10dab1 -INCBIN "gfx/title/old_fg.2bpp" -; 10eab1 - -UnusedTitleFG_Palettes: ; 10eab1 - RGB 00, 00, 00 - RGB 31, 31, 31 - RGB 16, 16, 24 - RGB 02, 13, 21 - - RGB 00, 00, 00 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 12, 12, 12 - - RGB 00, 00, 00 - RGB 01, 11, 23 - RGB 16, 16, 24 - RGB 02, 13, 21 - - RGB 00, 00, 00 - RGB 31, 22, 00 - RGB 31, 27, 00 - RGB 31, 31, 00 - - RGB 00, 00, 00 - RGB 31, 31, 31 - RGB 16, 16, 24 - RGB 02, 13, 21 - - RGB 00, 00, 00 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 12, 12, 12 - - RGB 00, 00, 00 - RGB 01, 11, 23 - RGB 16, 16, 24 - RGB 02, 13, 21 - - RGB 16, 31, 00 - RGB 22, 31, 00 - RGB 27, 31, 00 - RGB 31, 31, 00 - - - RGB 31, 00, 18 - RGB 31, 31, 31 - RGB 16, 16, 24 - RGB 02, 13, 21 - - RGB 00, 00, 00 - RGB 31, 31, 31 - RGB 20, 20, 20 - RGB 12, 12, 12 - - RGB 00, 00, 00 - RGB 01, 11, 23 - RGB 16, 16, 24 - RGB 02, 13, 21 - - RGB 16, 31, 00 - RGB 22, 31, 00 - RGB 27, 31, 00 - RGB 31, 31, 00 - - RGB 24, 18, 31 - RGB 31, 31, 00 - RGB 31, 31, 01 - RGB 31, 31, 03 - - RGB 31, 31, 05 - RGB 31, 31, 08 - RGB 31, 31, 10 - RGB 31, 31, 12 - - RGB 31, 31, 14 - RGB 31, 31, 16 - RGB 31, 31, 18 - RGB 31, 31, 20 - - RGB 31, 31, 22 - RGB 31, 31, 25 - RGB 31, 31, 27 - RGB 31, 31, 29 - - RGB 24, 06, 06 - RGB 01, 01, 01 - RGB 03, 03, 03 - RGB 05, 05, 05 - - RGB 08, 08, 08 - RGB 10, 10, 10 - RGB 12, 12, 12 - RGB 14, 14, 14 - - RGB 16, 16, 16 - RGB 18, 18, 18 - RGB 20, 20, 20 - RGB 22, 22, 22 - - RGB 25, 25, 25 - RGB 27, 27, 27 - RGB 29, 29, 29 - RGB 31, 31, 31 - - RGB 18, 24, 18 - RGB 31, 29, 01 - RGB 31, 27, 03 - RGB 31, 25, 05 - - RGB 31, 22, 08 - RGB 31, 20, 10 - RGB 31, 18, 12 - RGB 31, 16, 14 - - RGB 31, 14, 16 - RGB 31, 12, 18 - RGB 31, 10, 20 - RGB 31, 08, 22 - - RGB 31, 05, 25 - RGB 31, 03, 27 - RGB 31, 01, 29 - RGB 31, 00, 31 - - RGB 18, 06, 31 - RGB 00, 31, 31 - RGB 00, 31, 29 - RGB 00, 31, 27 - - RGB 00, 31, 25 - RGB 00, 31, 22 - RGB 00, 31, 20 - RGB 00, 31, 18 - - RGB 00, 31, 16 - RGB 00, 31, 14 - RGB 00, 31, 12 - RGB 00, 31, 10 - - RGB 00, 31, 08 - RGB 00, 31, 05 - RGB 00, 31, 03 - RGB 00, 31, 01 - - RGB 12, 31, 06 - RGB 00, 00, 31 - RGB 00, 01, 31 - RGB 00, 03, 31 - - RGB 00, 05, 31 - RGB 00, 08, 31 - RGB 00, 10, 31 - RGB 00, 12, 31 - - RGB 00, 14, 31 - RGB 00, 16, 31 - RGB 00, 18, 31 - RGB 00, 20, 31 - - RGB 00, 22, 31 - RGB 00, 25, 31 - RGB 00, 27, 31 - RGB 00, 29, 31 - - RGB 00, 00, 00 - RGB 06, 00, 04 - RGB 19, 02, 09 - RGB 28, 04, 11 - - RGB 31, 07, 16 - RGB 31, 17, 23 - RGB 31, 26, 30 - RGB 07, 05, 10 - - RGB 14, 10, 18 - RGB 20, 20, 25 - RGB 25, 27, 31 - RGB 09, 05, 06 - - RGB 23, 16, 13 - RGB 30, 23, 22 - RGB 31, 28, 28 - RGB 31, 31, 31 - - RGB 06, 31, 31 - RGB 04, 00, 04 - RGB 11, 02, 04 - RGB 17, 02, 04 - - RGB 24, 05, 04 - RGB 28, 07, 04 - RGB 31, 11, 04 - RGB 02, 01, 15 - - RGB 04, 11, 22 - RGB 12, 25, 25 - RGB 20, 31, 31 - RGB 09, 04, 03 - - RGB 22, 11, 08 - RGB 27, 19, 16 - RGB 30, 28, 26 - RGB 31, 31, 31 - - RGB 06, 18, 06 - RGB 04, 04, 02 - RGB 07, 07, 02 - RGB 18, 18, 04 - - RGB 24, 24, 06 - RGB 27, 27, 11 - RGB 31, 31, 20 - RGB 02, 03, 10 - - RGB 04, 05, 13 - RGB 06, 10, 25 - RGB 08, 15, 31 - RGB 04, 00, 06 - - RGB 11, 07, 14 - RGB 21, 16, 23 - RGB 29, 26, 31 - RGB 31, 31, 31 - - RGB 06, 00, 18 - RGB 00, 04, 03 - RGB 02, 09, 05 - RGB 11, 19, 07 - - RGB 16, 24, 08 - RGB 22, 31, 09 - RGB 24, 31, 18 - RGB 03, 01, 03 - - RGB 10, 04, 10 - RGB 20, 08, 20 - RGB 31, 17, 31 - RGB 01, 03, 06 - - RGB 05, 09, 10 - RGB 15, 21, 21 - RGB 23, 25, 25 - RGB 31, 31, 31 - - RGB 00, 18, 31 - RGB 00, 05, 07 - RGB 00, 08, 13 - RGB 00, 12, 17 - - RGB 01, 20, 24 - RGB 04, 27, 31 - RGB 14, 31, 31 - RGB 04, 02, 02 - - RGB 15, 01, 03 - RGB 26, 04, 07 - RGB 31, 13, 16 - RGB 00, 05, 02 - - RGB 01, 11, 03 - RGB 06, 21, 06 - RGB 13, 31, 16 - RGB 31, 31, 31 - - RGB 00, 06, 06 - RGB 00, 01, 08 - RGB 00, 05, 14 - RGB 00, 08, 19 - - RGB 02, 14, 26 - RGB 04, 21, 31 - RGB 06, 26, 31 - RGB 13, 00, 00 - - RGB 27, 07, 00 - RGB 31, 17, 05 - RGB 31, 25, 16 - RGB 02, 04, 00 - - RGB 07, 11, 03 - RGB 17, 19, 05 - RGB 27, 31, 16 - RGB 31, 31, 31 - - RGB 02, 00, 00 - RGB 04, 01, 06 - RGB 11, 03, 14 - RGB 16, 04, 19 - - RGB 20, 07, 22 - RGB 26, 12, 27 - RGB 26, 20, 31 - RGB 04, 07, 00 - - RGB 16, 20, 07 - RGB 24, 28, 15 - RGB 29, 31, 24 - RGB 05, 02, 02 - - RGB 15, 04, 02 - RGB 24, 11, 10 - RGB 31, 22, 20 - RGB 31, 31, 31 - - RGB 00, 00, 14 - RGB 12, 00, 00 - RGB 27, 05, 00 - RGB 31, 15, 05 - - RGB 31, 26, 13 - RGB 31, 30, 21 - RGB 05, 07, 16 - RGB 04, 16, 20 - - RGB 04, 24, 26 - RGB 08, 31, 31 - RGB 23, 31, 31 - RGB 00, 00, 00 - - RGB 05, 05, 05 - RGB 17, 17, 15 - RGB 28, 28, 24 - RGB 31, 31, 31 -; 10ecb1 - -UnusedTitleFG_OAM: ; 10ecb1 - db $18, $38, $00, $01, $18, $40, $02, $01, $18, $48, $04, $01, $18, $50, $06, $01 - db $18, $58, $08, $01, $18, $60, $0a, $01, $18, $68, $0c, $01, $18, $70, $0e, $01 - - db $28, $38, $10, $00, $28, $40, $12, $00, $28, $48, $14, $00, $28, $50, $16, $00 - db $28, $58, $18, $00, $28, $60, $1a, $00, $28, $68, $1c, $00, $28, $70, $1e, $00 - - db $38, $38, $20, $00, $38, $40, $22, $00, $38, $48, $24, $00, $38, $50, $26, $00 - db $38, $58, $28, $00, $38, $60, $2a, $00, $38, $68, $2c, $00, $38, $70, $2e, $00 - - db $48, $38, $30, $02, $48, $40, $32, $02, $48, $48, $34, $02, $48, $50, $36, $02 - db $48, $58, $38, $02, $48, $60, $3a, $02, $48, $68, $3c, $02, $48, $70, $3e, $02 - - db $58, $38, $40, $01, $58, $40, $42, $01, $58, $48, $44, $01, $58, $50, $46, $01 - db $58, $58, $48, $01, $58, $60, $4a, $01, $58, $68, $4c, $01, $58, $70, $4e, $01 -; 10ed51 - - -Function10ed51: ; 10ed51 - call _TitleScreen -.loop - call JoyTextDelay - ld a, [hJoyLast] - ld b, a - and 1 - jr nz, .done - call SuicuneFrameIterator - call DelayFrame - jr .loop -.done - ret -; 10ed67 diff --git a/mobile/fixed_words.asm b/mobile/fixed_words.asm new file mode 100755 index 000000000..56e53da91 --- /dev/null +++ b/mobile/fixed_words.asm @@ -0,0 +1,4294 @@ +; These functions seem to be related to the selection of preset phrases +; for use in mobile communications. Annoyingly, they separate the +; Battle Tower function above from the data it references. +Function11c05d: ; 11c05d + ld a, e + or d + jr z, .error + ld a, e + and d + cp $ff + jr z, .error + push hl + call CopyMobileEZChatToC608 + pop hl + call PlaceString + and a + ret + +.error + ld c, l + ld b, h + scf + ret +; 11c075 + +Function11c075: ; 11c075 + push de + ld a, c + call Function11c254 + pop de + ld bc, wcd36 + call Function11c08f + ret +; 11c082 + +Function11c082: ; 11c082 +; XXX + push de + ld a, c + call Function11c254 + pop de + ld bc, wcd36 + call PrintEZChatBattleMessage + ret +; 11c08f + +Function11c08f: ; 11c08f + ld l, e + ld h, d + push hl + ld a, 3 +.loop + push af + ld a, [bc] + ld e, a + inc bc + ld a, [bc] + ld d, a + inc bc + push bc + call Function11c05d + jr c, .okay + inc bc + +.okay + ld l, c + ld h, b + pop bc + pop af + dec a + jr nz, .loop + pop hl + ld de, 2 * SCREEN_WIDTH + add hl, de + ld a, $3 +.loop2 + push af + ld a, [bc] + ld e, a + inc bc + ld a, [bc] + ld d, a + inc bc + push bc + call Function11c05d + jr c, .okay2 + inc bc + +.okay2 + ld l, c + ld h, b + pop bc + pop af + dec a + jr nz, .loop2 + ret +; 11c0c6 + +PrintEZChatBattleMessage: ; 11c0c6 +; Use up to 6 words from bc to print text starting at de. + ; Preserve $cf63, $cf64 + ld a, [wJumptableIndex] + ld l, a + ld a, [wcf64] + ld h, a + push hl + ; reset value at c618 (not preserved) + ld hl, $c618 + ld a, $0 + ld [hli], a + ; preserve de + push de + ; $cf63 keeps track of which line we're on (0, 1, or 2) + ; $cf64 keeps track of how much room we have left in the current line + xor a + ld [wJumptableIndex], a + ld a, 18 + ld [wcf64], a + ld a, $6 ; up to 6 times +.loop + push af + ; load the 2-byte word data pointed to by bc + ld a, [bc] + ld e, a + inc bc + ld a, [bc] + ld d, a + inc bc + ; if $0000, we're done + or e + jr z, .done + ; preserving hl and bc, get the length of the word + push hl + push bc + call CopyMobileEZChatToC608 + call GetLengthOfWordAtC608 + ld e, c + pop bc + pop hl + ; if the functions return 0, we're done + ld a, e + or a + jr z, .done +.loop2 + ; e contains the length of the word + ; add 1 for the space, unless we're at the start of the line + ld a, [wcf64] + cp 18 + jr z, .skip_inc + inc e + +.skip_inc + ; if the word fits, put it on the same line + cp e + jr nc, .same_line + ; otherwise, go to the next line + ld a, [wJumptableIndex] + inc a + ld [wJumptableIndex], a + ; if we're on line 2, insert "" + ld [hl], "" + rra + jr c, .got_line_terminator + ; else, insert "" + ld [hl], "" + +.got_line_terminator + inc hl + ; init the next line, holding on to the same word + ld a, 18 + ld [wcf64], a + dec e + jr .loop2 + +.same_line + ; add the space, unless we're at the start of the line + cp 18 + jr z, .skip_space + ld [hl], " " + inc hl + +.skip_space + ; deduct the length of the word + sub e + ld [wcf64], a + ld de, $c608 +.place_string_loop + ; load the string from de to hl + ld a, [de] + cp "@" + jr z, .done + inc de + ld [hli], a + jr .place_string_loop + +.done + ; next word? + pop af + dec a + jr nz, .loop + ; we're finished, place "" + ld [hl], "" + ; now, let's place the string from c618 to bc + pop bc + ld hl, $c618 + call PlaceHLTextAtBC + ; restore the original values of $cf63 and $cf64 + pop hl + ld a, l + ld [wJumptableIndex], a + ld a, h + ld [wcf64], a + ret +; 11c14a + +GetLengthOfWordAtC608: ; 11c14a + ld c, $0 + ld hl, $c608 +.loop + ld a, [hli] + cp "@" + ret z + inc c + jr .loop +; 11c156 + +CopyMobileEZChatToC608: ; 11c156 + ld a, [rSVBK] + push af + ld a, $1 + ld [rSVBK], a + ld a, "@" + ld hl, $c608 + ld bc, NAME_LENGTH + call ByteFill + ld a, d + and a + jr z, .get_name + ld hl, MobileEZChatCategoryPointers + dec d + sla d + ld c, d + ld b, $0 + add hl, bc + ld a, [hli] + ld c, a + ld a, [hl] + ld b, a + push bc + pop hl + ld c, e + ld b, $0 + sla c + rl b + sla c + rl b + sla c + rl b + add hl, bc + ld bc, 5 ; length of a string +.copy_string + ld de, $c608 + call CopyBytes + ld de, $c608 + pop af + ld [rSVBK], a + ret + +.get_name + ld a, e + ld [wd265], a + call GetPokemonName + ld hl, StringBuffer1 + ld bc, PKMN_NAME_LENGTH - 1 + jr .copy_string +; 11c1ab + +Function11c1ab: ; 11c1ab + ld a, [hInMenu] + push af + ld a, $1 + ld [hInMenu], a + call Function11c1b9 + pop af + ld [hInMenu], a + ret +; 11c1b9 + +Function11c1b9: ; 11c1b9 + call .InitKanaMode + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + call EZChat_MasterLoop + pop af + ld [rSVBK], a + ret +; 11c1ca + +.InitKanaMode: ; 11c1ca + xor a + ld [wJumptableIndex], a + ld [wcf64], a + ld [wcf65], a + ld [wcf66], a + ld [wcd23], a + ld [wcd20], a + ld [wcd21], a + ld [wcd22], a + ld [wcd35], a + ld [wcd2b], a + ld a, $ff + ld [wcd24], a + ld a, [wMenuCursorY] + dec a + call Function11c254 + call ClearBGPalettes + call ClearSprites + call ClearScreen + call Function11d323 + call SetPalettes + call DisableLCD + ld hl, GFX_11d67e + ld de, VTiles2 + ld bc, $60 + call CopyBytes + ld hl, LZ_11d6de + ld de, VTiles0 + call Decompress + call EnableLCD + callba ReloadMapPart + callba ClearSpriteAnims + callba LoadPokemonData + callba Pokedex_ABCMode + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + ld hl, $c6d0 + ld de, LYOverrides + ld bc, $100 + call CopyBytes + pop af + ld [rSVBK], a + call EZChat_GetCategoryWordsByKana + call EZChat_GetSeenPokemonByKana + ret +; 11c254 + +Function11c254: ; 11c254 + push af + ld a, $4 + call GetSRAMBank + ld hl, $a007 + pop af + sla a + sla a + ld c, a + sla a + add c + ld c, a + ld b, $0 + add hl, bc + ld de, wcd36 + ld bc, 12 + call CopyBytes + call CloseSRAM + ret +; 11c277 + +EZChat_ClearBottom12Rows: ; 11c277 (47:4277) + ld a, " " + hlcoord 0, 6 + ld bc, (SCREEN_HEIGHT - 6) * SCREEN_WIDTH + call ByteFill + ret + +EZChat_MasterLoop: ; 11c283 +.loop + call JoyTextDelay + ld a, [hJoyPressed] + ld [hJoypadPressed], a + ld a, [wJumptableIndex] + bit 7, a + jr nz, .exit + call .DoJumptableFunction + callba PlaySpriteAnimations + callba ReloadMapPart + jr .loop + +.exit + callba ClearSpriteAnims + call ClearSprites + ret +; 11c2ac + +.DoJumptableFunction: ; 11c2ac + jumptable .Jumptable, wJumptableIndex +; 11c2bb + +.Jumptable: ; 11c2bb (47:42bb) + dw .SpawnObjects ; 00 + dw .InitRAM ; 01 + dw Function11c35f ; 02 + dw Function11c373 ; 03 + dw Function11c3c2 ; 04 + dw Function11c3ed ; 05 + dw Function11c52c ; 06 + dw Function11c53d ; 07 + dw Function11c658 ; 08 + dw Function11c675 ; 09 + dw Function11c9bd ; 0a + dw Function11c9c3 ; 0b + dw Function11caad ; 0c + dw Function11cab3 ; 0d + dw Function11cb52 ; 0e + dw Function11cb66 ; 0f + dw Function11cbf5 ; 10 + dw Function11ccef ; 11 + dw Function11cd04 ; 12 + dw Function11cd20 ; 13 + dw Function11cd54 ; 14 + dw Function11ce0b ; 15 + dw Function11ce2b ; 16 + +.SpawnObjects: ; 11c2e9 (47:42e9) + depixel 3, 1, 2, 5 + ld a, SPRITE_ANIM_INDEX_1D + call _InitSpriteAnimStruct + depixel 8, 1, 2, 5 + + ld a, SPRITE_ANIM_INDEX_1D + call _InitSpriteAnimStruct + ld hl, SPRITEANIMSTRUCT_0C + add hl, bc + ld a, $1 + ld [hl], a + + depixel 9, 2, 2, 0 + ld a, SPRITE_ANIM_INDEX_1D + call _InitSpriteAnimStruct + ld hl, SPRITEANIMSTRUCT_0C + add hl, bc + ld a, $3 + ld [hl], a + + depixel 10, 16 + ld a, SPRITE_ANIM_INDEX_1D + call _InitSpriteAnimStruct + ld hl, SPRITEANIMSTRUCT_0C + add hl, bc + ld a, $4 + ld [hl], a + + depixel 10, 4 + ld a, SPRITE_ANIM_INDEX_1D + call _InitSpriteAnimStruct + ld hl, SPRITEANIMSTRUCT_0C + add hl, bc + ld a, $5 + ld [hl], a + + depixel 10, 2 + ld a, SPRITE_ANIM_INDEX_1D + call _InitSpriteAnimStruct + ld hl, SPRITEANIMSTRUCT_0C + add hl, bc + ld a, $2 + ld [hl], a + + ld hl, wcd23 + set 1, [hl] + set 2, [hl] + jp Function11cfb5 + +.InitRAM: ; 11c346 (47:4346) + ld a, $9 + ld [wcd2d], a + ld a, $2 + ld [wcd2e], a + ld [wcd2f], a + ld [wcd30], a + ld de, wcd2d + call Function11cfce + jp Function11cfb5 + +Function11c35f: ; 11c35f (47:435f) + ld hl, wcd2f + inc [hl] + inc [hl] + dec hl + dec hl + dec [hl] + push af + ld de, wcd2d + call Function11cfce + pop af + ret nz + jp Function11cfb5 + +Function11c373: ; 11c373 (47:4373) + ld hl, wcd30 + inc [hl] + inc [hl] + dec hl + dec hl + dec [hl] + push af + ld de, wcd2d + call Function11cfce + pop af + ret nz + call Function11c38a + jp Function11cfb5 + +Function11c38a: ; 11c38a (47:438a) + ld hl, Unknown_11c986 + ld bc, wcd36 + ld a, $6 +.asm_11c392 + push af + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + push hl + push de + pop hl + ld a, [bc] + inc bc + ld e, a + ld a, [bc] + inc bc + ld d, a + push bc + or e + jr z, .asm_11c3af + ld a, e + and d + cp $ff + jr z, .asm_11c3af + call Function11c05d + jr .asm_11c3b5 +.asm_11c3af + ld de, String_11c3bc + call PlaceString +.asm_11c3b5 + pop bc + pop hl + pop af + dec a + jr nz, .asm_11c392 + ret +; 11c3bc (47:43bc) + +String_11c3bc: ; 11c3bc + db "ーーーーー@" +; 11c3c2 + +Function11c3c2: ; 11c3c2 (47:43c2) + call EZChat_ClearBottom12Rows + ld de, Unknown_11cfbe + call Function11d035 + hlcoord 1, 7 + ld de, String_11c4db + call PlaceString + hlcoord 1, 16 + ld de, String_11c51b + call PlaceString + call Function11c4be + ld hl, wcd23 + set 0, [hl] + ld hl, wcd24 + res 0, [hl] + call Function11cfb5 + +Function11c3ed: ; 11c3ed (47:43ed) + ld hl, wcd20 ; wcd20 + ld de, hJoypadPressed ; $ffa3 + ld a, [de] + and $8 + jr nz, .asm_11c426 + ld a, [de] + and $2 + jr nz, .asm_11c41a + ld a, [de] + and $1 + jr nz, .asm_11c42c + ld de, hJoyLast + ld a, [de] + and $40 + jr nz, .asm_11c47c + ld a, [de] + and $80 + jr nz, .asm_11c484 + ld a, [de] + and $20 + jr nz, .asm_11c48c + ld a, [de] + and $10 + jr nz, .asm_11c498 + ret + +.asm_11c41a + call PlayClickSFX +.asm_11c41d + ld hl, wcd24 + set 0, [hl] + ld a, $c + jr .asm_11c475 +.asm_11c426 + ld a, $8 + ld [wcd20], a ; wcd20 + ret + +.asm_11c42c + ld a, [wcd20] ; wcd20 + cp $6 + jr c, .asm_11c472 + sub $6 + jr z, .asm_11c469 + dec a + jr z, .asm_11c41d + ld hl, wcd36 + ld c, $c + xor a +.asm_11c440 + or [hl] + inc hl + dec c + jr nz, .asm_11c440 + and a + jr z, .asm_11c460 + ld de, Unknown_11cfba + call Function11cfce + decoord 1, 2 + ld bc, wcd36 + call Function11c08f + ld hl, wcd24 + set 0, [hl] + ld a, $e + jr .asm_11c475 +.asm_11c460 + ld hl, wcd24 + set 0, [hl] + ld a, $11 + jr .asm_11c475 +.asm_11c469 + ld hl, wcd24 + set 0, [hl] + ld a, $a + jr .asm_11c475 +.asm_11c472 + call Function11c4a5 +.asm_11c475 + ld [wJumptableIndex], a + call PlayClickSFX + ret + +.asm_11c47c + ld a, [hl] + cp $3 + ret c + sub $3 + jr .asm_11c4a3 +.asm_11c484 + ld a, [hl] + cp $6 + ret nc + add $3 + jr .asm_11c4a3 +.asm_11c48c + ld a, [hl] + and a + ret z + cp $3 + ret z + cp $6 + ret z + dec a + jr .asm_11c4a3 +.asm_11c498 + ld a, [hl] + cp $2 + ret z + cp $5 + ret z + cp $8 + ret z + inc a +.asm_11c4a3 + ld [hl], a + ret + +Function11c4a5: ; 11c4a5 (47:44a5) + ld hl, wcd23 + res 0, [hl] + ld a, [wcd2b] + and a + jr nz, .asm_11c4b7 + xor a + ld [wcd21], a + ld a, $6 + ret + +.asm_11c4b7 + xor a + ld [wcd22], a + ld a, $15 + ret + +Function11c4be: ; 11c4be (47:44be) + ld a, $1 + hlcoord 0, 6, AttrMap + ld bc, $a0 + call ByteFill + ld a, $7 + hlcoord 0, 14, AttrMap + ld bc, $28 + call ByteFill + callba ReloadMapPart + ret +; 11c4db (47:44db) + +String_11c4db: ; 11c4db + db "6つのことば¯くみあわせます" + next "かえたいところ¯えらぶと でてくる" + next "ことばのグループから いれかえたい" + next "たんご¯えらんでください" + db "@" +; 11c51b + +String_11c51b: ; 11c51b + db "ぜんぶけす やめる けってい@" +; 11c52c + +Function11c52c: ; 11c52c (47:452c) + call EZChat_ClearBottom12Rows + call EZChat_PlaceCategoryNames + call Function11c618 + ld hl, wcd24 + res 1, [hl] + call Function11cfb5 + +Function11c53d: ; 11c53d (47:453d) + ld hl, wcd21 + ld de, hJoypadPressed ; $ffa3 + + ld a, [de] + and START + jr nz, .start + + ld a, [de] + and SELECT + jr nz, .select + + ld a, [de] + and B_BUTTON + jr nz, .b + + ld a, [de] + and A_BUTTON + jr nz, .a + + ld de, hJoyLast + + ld a, [de] + and D_UP + jr nz, .up + + ld a, [de] + and D_DOWN + jr nz, .down + + ld a, [de] + and D_LEFT + jr nz, .left + + ld a, [de] + and D_RIGHT + jr nz, .right + + ret + +.a + ld a, [wcd21] + cp 15 + jr c, .got_category + sub $f + jr z, .done + dec a + jr z, .mode + jr .b + +.start + ld hl, wcd24 + set 0, [hl] + ld a, $8 + ld [wcd20], a ; wcd20 + +.b + ld a, $4 + jr .go_to_function + +.select + ld a, [wcd2b] + xor $1 + ld [wcd2b], a + ld a, $15 + jr .go_to_function + +.mode + ld a, $13 + jr .go_to_function + +.got_category + ld a, $8 + +.go_to_function + ld hl, wcd24 + set 1, [hl] + ld [wJumptableIndex], a + call PlayClickSFX + ret + +.done + ld a, [wcd20] ; wcd20 + call Function11ca6a + call PlayClickSFX + ret + +.up + ld a, [hl] + cp $3 + ret c + sub $3 + jr .finish_dpad + +.down + ld a, [hl] + cp $f + ret nc + add $3 + jr .finish_dpad + +.left + ld a, [hl] + and a + ret z + cp $3 + ret z + cp $6 + ret z + cp $9 + ret z + cp $c + ret z + cp $f + ret z + dec a + jr .finish_dpad + +.right + ld a, [hl] + cp $2 + ret z + cp $5 + ret z + cp $8 + ret z + cp $b + ret z + cp $e + ret z + cp $11 + ret z + inc a + +.finish_dpad + ld [hl], a + ret +; 11c5f0 + +EZChat_PlaceCategoryNames: ; 11c5f0 (47:45f0) + ld de, MobileEZChatCategoryNames + ld bc, Coords_11c63a + ld a, 15 +.loop + push af + ld a, [bc] + inc bc + ld l, a + ld a, [bc] + inc bc + ld h, a + push bc + call PlaceString + ; The category names are padded with "@". + ; To find the next category, the system must + ; find the first character at de that is not "@". +.find_next_string_loop + inc de + ld a, [de] + cp "@" + jr z, .find_next_string_loop + pop bc + pop af + dec a + jr nz, .loop + hlcoord 1, 17 + ld de, EZChatString_Stop_Mode_Cancel + call PlaceString + ret + +Function11c618: ; 11c618 (47:4618) + ld a, $2 + hlcoord 0, 6, AttrMap + ld bc, $c8 + call ByteFill + callba ReloadMapPart + ret +; 11c62a (47:462a) + +EZChatString_Stop_Mode_Cancel: ; 11c62a + db "けす モード やめる@" +; 11c63a + +Coords_11c63a: ; 11c63a + dwcoord 1, 7 + dwcoord 7, 7 + dwcoord 13, 7 + dwcoord 1, 9 + dwcoord 7, 9 + dwcoord 13, 9 + dwcoord 1, 11 + dwcoord 7, 11 + dwcoord 13, 11 + dwcoord 1, 13 + dwcoord 7, 13 + dwcoord 13, 13 + dwcoord 1, 15 + dwcoord 7, 15 + dwcoord 13, 15 +; 11c658 + +Function11c658: ; 11c658 (47:4658) + call EZChat_ClearBottom12Rows + call Function11c770 + ld de, Unknown_11cfc2 + call Function11d035 + call Function11c9ab + call Function11c7bc + call Function11c86e + ld hl, wcd24 + res 3, [hl] + call Function11cfb5 + +Function11c675: ; 11c675 (47:4675) + ld hl, wMobileCommsJumptableIndex + ld de, hJoypadPressed ; $ffa3 + ld a, [de] + and A_BUTTON + jr nz, .a + ld a, [de] + and B_BUTTON + jr nz, .b + ld a, [de] + and START + jr nz, .start + ld a, [de] + and SELECT + jr z, .select + + ld a, [wcd26] + and a + ret z + sub $c + jr nc, .asm_11c699 + xor a +.asm_11c699 + ld [wcd26], a + jr .asm_11c6c4 + +.start + ld hl, wcd28 + ld a, [wcd26] + add $c + cp [hl] + ret nc + ld [wcd26], a + ld a, [hl] + ld b, a + ld hl, wMobileCommsJumptableIndex + ld a, [wcd26] + add [hl] + jr c, .asm_11c6b9 + cp b + jr c, .asm_11c6c4 +.asm_11c6b9 + ld a, [wcd28] + ld hl, wcd26 + sub [hl] + dec a + ld [wMobileCommsJumptableIndex], a +.asm_11c6c4 + call Function11c992 + call Function11c7bc + call Function11c86e + ret + +.select + ld de, hJoyLast + ld a, [de] + and D_UP + jr nz, .asm_11c708 + ld a, [de] + and D_DOWN + jr nz, .asm_11c731 + ld a, [de] + and D_LEFT + jr nz, .asm_11c746 + ld a, [de] + and D_RIGHT + jr nz, .asm_11c755 + ret + +.a + call Function11c8f6 + ld a, $4 + ld [wcd35], a + jr .asm_11c6fc +.b + ld a, [wcd2b] + and a + jr nz, .asm_11c6fa + ld a, $6 + jr .asm_11c6fc +.asm_11c6fa + ld a, $15 +.asm_11c6fc + ld [wJumptableIndex], a + ld hl, wcd24 + set 3, [hl] + call PlayClickSFX + ret + +.asm_11c708 + ld a, [hl] + cp $3 + jr c, .asm_11c711 + sub $3 + jr .asm_11c76e +.asm_11c711 + ld a, [wcd26] + sub $3 + ret c + ld [wcd26], a + jr .asm_11c6c4 +.asm_11c71c + ld hl, wcd28 + ld a, [wcd26] + add $c + ret c + cp [hl] + ret nc + ld a, [wcd26] + add $3 + ld [wcd26], a + jr .asm_11c6c4 +.asm_11c731 + ld a, [wcd28] + ld b, a + ld a, [wcd26] + add [hl] + add $3 + cp b + ret nc + ld a, [hl] + cp $9 + jr nc, .asm_11c71c + add $3 + jr .asm_11c76e +.asm_11c746 + ld a, [hl] + and a + ret z + cp $3 + ret z + cp $6 + ret z + cp $9 + ret z + dec a + jr .asm_11c76e +.asm_11c755 + ld a, [wcd28] + ld b, a + ld a, [wcd26] + add [hl] + inc a + cp b + ret nc + ld a, [hl] + cp $2 + ret z + cp $5 + ret z + cp $8 + ret z + cp $b + ret z + inc a +.asm_11c76e + ld [hl], a + ret + +Function11c770: ; 11c770 (47:4770) + xor a + ld [wMobileCommsJumptableIndex], a + ld [wcd26], a + ld [wcd27], a + ld a, [wcd2b] + and a + jr nz, .cd2b_is_nonzero + ld a, [wcd21] + and a + jr z, .cd21_is_zero + ; load from data array + dec a + sla a + ld hl, MobileEZChatData_WordAndPageCounts + ld c, a + ld b, 0 + add hl, bc + ld a, [hli] + ld [wcd28], a + ld a, [hl] +.load + ld [wcd29], a + ret + +.cd21_is_zero + ; compute from [wc7d2] + ld a, [wc7d2] + ld [wcd28], a +.div_12 + ld c, 12 + call SimpleDivide + and a + jr nz, .no_need_to_floor + dec b +.no_need_to_floor + ld a, b + jr .load + +.cd2b_is_nonzero + ; compute from [c6a8 + 2 * [cd22]] + ld hl, $c6a8 ; $c68a + 30 + ld a, [wcd22] + ld c, a + ld b, 0 + add hl, bc + add hl, bc + ld a, [hl] + ld [wcd28], a + jr .div_12 + +Function11c7bc: ; 11c7bc (47:47bc) + ld bc, Unknown_11c854 + ld a, [wcd2b] + and a + jr nz, .asm_11c814 + ld a, [wcd21] + ld d, a + and a + jr z, .asm_11c7e9 + ld a, [wcd26] + ld e, a +.asm_11c7d0 + ld a, [bc] + ld l, a + inc bc + ld a, [bc] + ld h, a + inc bc + and l + cp $ff + ret z + push bc + push de + call Function11c05d + pop de + pop bc + inc e + ld a, [wcd28] + cp e + jr nz, .asm_11c7d0 + ret + +.asm_11c7e9 + ld hl, wListPointer + ld a, [wcd26] + ld e, a + add hl, de +.asm_11c7f1 + push de + ld a, [hli] + ld e, a + ld d, $0 + push hl + ld a, [bc] + ld l, a + inc bc + ld a, [bc] + ld h, a + inc bc + and l + cp $ff + jr z, .asm_11c811 + push bc + call Function11c05d + pop bc + pop hl + pop de + inc e + ld a, [wcd28] + cp e + jr nz, .asm_11c7f1 + ret + +.asm_11c811 + pop hl + pop de + ret + +.asm_11c814 + ld hl, $c648 + ld a, [wcd22] + ld e, a + ld d, $0 + add hl, de + add hl, de + ld a, [hli] + ld e, a + ld a, [hl] + ld d, a + push de + pop hl + ld a, [wcd26] + ld e, a + ld d, $0 + add hl, de + add hl, de + ld a, [wcd26] + ld e, a +.asm_11c831 + push de + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + push hl + ld a, [bc] + ld l, a + inc bc + ld a, [bc] + ld h, a + inc bc + and l + cp $ff + jr z, .asm_11c851 + push bc + call Function11c05d + pop bc + pop hl + pop de + inc e + ld a, [wcd28] + cp e + jr nz, .asm_11c831 + ret + +.asm_11c851 + pop hl + pop de + ret +; 11c854 (47:4854) + +Unknown_11c854: ; 11c854 + dwcoord 2, 8 + dwcoord 8, 8 + dwcoord 14, 8 + dwcoord 2, 10 + dwcoord 8, 10 + dwcoord 14, 10 + dwcoord 2, 12 + dwcoord 8, 12 + dwcoord 14, 12 + dwcoord 2, 14 + dwcoord 8, 14 + dwcoord 14, 14 + dw -1 +; 11c86e + +Function11c86e: ; 11c86e (47:486e) + ld a, [wcd26] + and a + jr z, .asm_11c88a + hlcoord 2, 17 + ld de, MobileString_Prev + call PlaceString + hlcoord 6, 17 + ld c, $3 + xor a +.asm_11c883 + ld [hli], a + inc a + dec c + jr nz, .asm_11c883 + jr .asm_11c895 +.asm_11c88a + hlcoord 2, 17 + ld c, $7 + ld a, $7f +.asm_11c891 + ld [hli], a + dec c + jr nz, .asm_11c891 +.asm_11c895 + ld hl, wcd28 + ld a, [wcd26] + add $c + jr c, .asm_11c8b7 + cp [hl] + jr nc, .asm_11c8b7 + hlcoord 16, 17 + ld de, MobileString_Next + call PlaceString + hlcoord 11, 17 + ld a, $3 + ld c, a +.asm_11c8b1 + ld [hli], a + inc a + dec c + jr nz, .asm_11c8b1 + ret + +.asm_11c8b7 + hlcoord 17, 16 + ld a, $7f + ld [hl], a + hlcoord 11, 17 + ld c, $7 +.asm_11c8c2 + ld [hli], a + dec c + jr nz, .asm_11c8c2 + ret +; 11c8c7 (47:48c7) + +BCD2String: ; 11c8c7 + inc a + push af + and $f + ld [hDividend], a + pop af + and $f0 + swap a + ld [hDividend + 1], a + xor a + ld [hDividend + 2], a + push hl + callba Function11a80c + pop hl + ld a, [wcd63] + add "0" + ld [hli], a + ld a, [wcd62] + add "0" + ld [hli], a + ret +; 11c8ec + +MobileString_Page: ; 11c8ec + db "ぺージ@" +; 11c8f0 + +MobileString_Prev: ; 11c8f0 + db "まえ@" +; 11c8f3 + +MobileString_Next: ; 11c8f3 + db "つぎ@" +; 11c8f6 + +Function11c8f6: ; 11c8f6 (47:48f6) + ld a, [wcd20] ; wcd20 + call Function11c95d + push hl + ld a, [wcd2b] + and a + jr nz, .asm_11c938 + ld a, [wcd21] + ld d, a + and a + jr z, .asm_11c927 + ld hl, wcd26 + ld a, [wMobileCommsJumptableIndex] + add [hl] +.asm_11c911 + ld e, a +.asm_11c912 + pop hl + push de + call Function11c05d + pop de + ld a, [wcd20] ; wcd20 + ld c, a + ld b, $0 + ld hl, wcd36 + add hl, bc + add hl, bc + ld [hl], e + inc hl + ld [hl], d + ret + +.asm_11c927 + ld hl, wcd26 + ld a, [wMobileCommsJumptableIndex] + add [hl] + ld c, a + ld b, $0 + ld hl, wListPointer + add hl, bc + ld a, [hl] + jr .asm_11c911 +.asm_11c938 + ld hl, $c648 + ld a, [wcd22] + ld e, a + ld d, $0 + add hl, de + add hl, de + ld a, [hli] + ld e, a + ld a, [hl] + ld d, a + push de + pop hl + ld a, [wcd26] + ld e, a + ld d, $0 + add hl, de + add hl, de + ld a, [wMobileCommsJumptableIndex] + ld e, a + add hl, de + add hl, de + ld a, [hli] + ld e, a + ld a, [hl] + ld d, a + jr .asm_11c912 + +Function11c95d: ; 11c95d (47:495d) + sla a + ld c, a + ld b, 0 + ld hl, Unknown_11c986 + add hl, bc + ld a, [hli] + ld c, a + ld a, [hl] + ld b, a + push bc + push bc + pop hl + ld a, $5 + ld c, a + ld a, $7f +.asm_11c972 + ld [hli], a + dec c + jr nz, .asm_11c972 + dec hl + ld bc, -20 + add hl, bc + ld a, $5 + ld c, a + ld a, $7f +.asm_11c980 + ld [hld], a + dec c + jr nz, .asm_11c980 + pop hl + ret +; 11c986 (47:4986) + +Unknown_11c986: + dwcoord 1, 2 + dwcoord 7, 2 + dwcoord 13, 2 + dwcoord 1, 4 + dwcoord 7, 4 + dwcoord 13, 4 +; 11c992 + +Function11c992: ; 11c992 (47:4992) + ld a, $8 + hlcoord 2, 7 +.asm_11c997 + push af + ld a, $7f + push hl + ld bc, $11 + call ByteFill + pop hl + ld bc, $14 + add hl, bc + pop af + dec a + jr nz, .asm_11c997 + ret + +Function11c9ab: ; 11c9ab (47:49ab) + ld a, $7 + hlcoord 0, 6, AttrMap + ld bc, $c8 + call ByteFill + callba ReloadMapPart + ret + +Function11c9bd: ; 11c9bd (47:49bd) + ld de, String_11ca38 + call Function11ca7f + +Function11c9c3: ; 11c9c3 (47:49c3) + ld hl, wcd2a + ld de, hJoypadPressed ; $ffa3 + ld a, [de] + and $1 + jr nz, .asm_11c9de + ld a, [de] + and $2 + jr nz, .asm_11c9e9 + ld a, [de] + and $40 + jr nz, .asm_11c9f7 + ld a, [de] + and $80 + jr nz, .asm_11c9fc + ret + +.asm_11c9de + ld a, [hl] + and a + jr nz, .asm_11c9e9 + call Function11ca5e + xor a + ld [wcd20], a ; wcd20 +.asm_11c9e9 + ld hl, wcd24 + set 4, [hl] + ld a, $4 + ld [wJumptableIndex], a + call PlayClickSFX + ret + +.asm_11c9f7 + ld a, [hl] + and a + ret z + dec [hl] + ret + +.asm_11c9fc + ld a, [hl] + and a + ret nz + inc [hl] + ret + +Function11ca01: ; 11ca01 (47:4a01) + hlcoord 14, 7, AttrMap + ld de, $14 + ld a, $5 + ld c, a +.asm_11ca0a + push hl + ld a, $6 + ld b, a + ld a, $7 +.asm_11ca10 + ld [hli], a + dec b + jr nz, .asm_11ca10 + pop hl + add hl, de + dec c + jr nz, .asm_11ca0a + +Function11ca19: ; 11ca19 (47:4a19) + hlcoord 0, 12, AttrMap + ld de, $14 + ld a, $6 + ld c, a +.asm_11ca22 + push hl + ld a, $14 + ld b, a + ld a, $7 +.asm_11ca28 + ld [hli], a + dec b + jr nz, .asm_11ca28 + pop hl + add hl, de + dec c + jr nz, .asm_11ca22 + callba ReloadMapPart + ret +; 11ca38 (47:4a38) + +String_11ca38: ; 11ca38 + db "とうろくちゅう", $25, "あいさつ¯ぜんぶ" + next "けしても よろしいですか?@" +; 11ca57 + +String_11ca57: ; 11ca57 + db "はい" + next "いいえ@" +; 11ca5e + +Function11ca5e: ; 11ca5e (47:4a5e) + xor a +.loop + push af + call Function11ca6a + pop af + inc a + cp $6 + jr nz, .loop + ret + +Function11ca6a: ; 11ca6a (47:4a6a) + ld hl, wcd36 + ld c, a + ld b, $0 + add hl, bc + add hl, bc + ld [hl], b + inc hl + ld [hl], b + call Function11c95d + ld de, String_11c3bc + call PlaceString + ret + +Function11ca7f: ; 11ca7f (47:4a7f) + push de + ld de, Unknown_11cfc6 + call Function11cfce + ld de, Unknown_11cfca + call Function11cfce + hlcoord 1, 14 + pop de + call PlaceString + hlcoord 16, 8 + ld de, String_11ca57 + call PlaceString + call Function11ca01 + ld a, $1 + ld [wcd2a], a + ld hl, wcd24 + res 4, [hl] + call Function11cfb5 + ret + +Function11caad: ; 11caad (47:4aad) + ld de, String_11cb1c + call Function11ca7f + +Function11cab3: ; 11cab3 (47:4ab3) + ld hl, wcd2a + ld de, hJoypadPressed ; $ffa3 + ld a, [de] + and $1 + jr nz, .asm_11cace + ld a, [de] + and $2 + jr nz, .asm_11caf9 + ld a, [de] + and $40 + jr nz, .asm_11cb12 + ld a, [de] + and $80 + jr nz, .asm_11cb17 + ret + +.asm_11cace + call PlayClickSFX + ld a, [hl] + and a + jr nz, .asm_11cafc + ld a, [wcd35] + and a + jr z, .asm_11caf3 + cp $ff + jr z, .asm_11caf3 + ld a, $ff + ld [wcd35], a + hlcoord 1, 14 + ld de, String_11cb31 + call PlaceString + ld a, $1 + ld [wcd2a], a + ret + +.asm_11caf3 + ld hl, wJumptableIndex + set 7, [hl] + ret + +.asm_11caf9 + call PlayClickSFX +.asm_11cafc + ld hl, wcd24 + set 4, [hl] + ld a, $4 + ld [wJumptableIndex], a + ld a, [wcd35] + cp $ff + ret nz + ld a, $1 + ld [wcd35], a + ret + +.asm_11cb12 + ld a, [hl] + and a + ret z + dec [hl] + ret + +.asm_11cb17 + ld a, [hl] + and a + ret nz + inc [hl] + ret +; 11cb1c (47:4b1c) + +String_11cb1c: ; 11cb1c + db "あいさつ", $25, "とうろく¯ちゅうし" + next "しますか?@" +; 11cb31 + +String_11cb31: ; 11cb31 + db "とうろくちゅう", $25, "あいさつ", $24, "ほぞん" + next "されません", $4a, "よろしい ですか?@" +; 11cb52 + +Function11cb52: ; 11cb52 (47:4b52) + ld hl, Unknown_11cc01 + ld a, [wMenuCursorY] +.asm_11cb58 + dec a + jr z, .asm_11cb5f + inc hl + inc hl + jr .asm_11cb58 +.asm_11cb5f + ld a, [hli] + ld e, a + ld a, [hl] + ld d, a + call Function11ca7f + +Function11cb66: ; 11cb66 (47:4b66) + ld hl, wcd2a + ld de, hJoypadPressed ; $ffa3 + ld a, [de] + and $1 + jr nz, .asm_11cb81 + ld a, [de] + and $2 + jr nz, .asm_11cbd7 + ld a, [de] + and $40 + jr nz, .asm_11cbeb + ld a, [de] + and $80 + jr nz, .asm_11cbf0 + ret + +.asm_11cb81 + ld a, [hl] + and a + jr nz, .asm_11cbd4 + ld a, $4 + call GetSRAMBank + ld hl, $a007 + ld a, [wMenuCursorY] + dec a + sla a + sla a + ld c, a + sla a + add c + ld c, a + ld b, $0 + add hl, bc + ld de, wcd36 + ld c, $c +.asm_11cba2 + ld a, [de] + ld [hli], a + inc de + dec c + jr nz, .asm_11cba2 + call CloseSRAM + call PlayClickSFX + ld de, Unknown_11cfc6 + call Function11cfce + ld hl, Unknown_11cc7e + ld a, [wMenuCursorY] +.asm_11cbba + dec a + jr z, .asm_11cbc1 + inc hl + inc hl + jr .asm_11cbba +.asm_11cbc1 + ld a, [hli] + ld e, a + ld a, [hl] + ld d, a + hlcoord 1, 14 + call PlaceString + ld hl, wJumptableIndex + inc [hl] + inc hl + ld a, $10 + ld [hl], a + ret + +.asm_11cbd4 + call PlayClickSFX +.asm_11cbd7 + ld de, Unknown_11cfba + call Function11cfce + call Function11c38a + ld hl, wcd24 + set 4, [hl] + ld a, $4 + ld [wJumptableIndex], a + ret + +.asm_11cbeb + ld a, [hl] + and a + ret z + dec [hl] + ret + +.asm_11cbf0 + ld a, [hl] + and a + ret nz + inc [hl] + ret + +Function11cbf5: ; 11cbf5 (47:4bf5) + call WaitSFX + ld hl, wcf64 + dec [hl] + ret nz + dec hl + set 7, [hl] + ret +; 11cc01 (47:4c01) + +Unknown_11cc01: ; 11cc01 + dw String_11cc09 + dw String_11cc23 + dw String_11cc42 + dw String_11cc60 + +String_11cc09: ; 11cc09 + db "じこしょうかい は" + next "この あいさつで いいですか?@" + +String_11cc23: ; 11cc23 + db "たいせん ", $4a, "はじまるとき は" + next "この あいさつで いいですか?@" + +String_11cc42: ; 11cc42 + db "たいせん ", $1d, "かったとき は" + next "この あいさつで いいですか?@" + +String_11cc60: ; 11cc60 + db "たいせん ", $1d, "まけたとき は" + next "この あいさつで いいですか?@" +; 11cc7e + +Unknown_11cc7e: ; 11cc7e + dw String_11cc86 + dw String_11cc9d + dw String_11ccb9 + dw String_11ccd4 + +String_11cc86: ; 11cc86 + db "じこしょうかい の" + next "あいさつ¯とうろくした!@" + +String_11cc9d: ; 11cc9d + db "たいせん ", $4a, "はじまるとき の" + next "あいさつ¯とうろくした!@" + +String_11ccb9: ; 11ccb9 + db "たいせん ", $1d, "かったとき の" + next "あいさつ¯とうろくした!@" + +String_11ccd4: ; 11ccd4 + db "たいせん ", $1d, "まけたとき の" + next "あいさつ¯とうろくした!@" +; 11ccef + +Function11ccef: ; 11ccef (47:4cef) + ld de, Unknown_11cfc6 + call Function11cfce + hlcoord 1, 14 + ld de, String_11cd10 + call PlaceString + call Function11ca19 + call Function11cfb5 + +Function11cd04: ; 11cd04 (47:4d04) + ld de, hJoypadPressed ; $ffa3 + ld a, [de] + and a + ret z + ld a, $4 + ld [wJumptableIndex], a + ret +; 11cd10 (47:4d10) + +String_11cd10: ; 11cd10 + db "なにか ことば¯いれてください@" +; 11cd20 + +Function11cd20: ; 11cd20 (47:4d20) + call EZChat_ClearBottom12Rows + ld de, Unknown_11cfc6 + call Function11cfce + hlcoord 1, 14 + ld a, [wcd2b] + ld [wcd2c], a + and a + jr nz, .asm_11cd3a + ld de, String_11cdc7 + jr .asm_11cd3d +.asm_11cd3a + ld de, String_11cdd9 +.asm_11cd3d + call PlaceString + hlcoord 4, 8 + ld de, String_11cdf5 + call PlaceString + call Function11cdaa + ld hl, wcd24 + res 5, [hl] + call Function11cfb5 + +Function11cd54: ; 11cd54 (47:4d54) + ld hl, wcd2c + ld de, hJoypadPressed ; $ffa3 + ld a, [de] + and A_BUTTON + jr nz, .asm_11cd6f + ld a, [de] + and B_BUTTON + jr nz, .asm_11cd73 + ld a, [de] + and D_UP + jr nz, .asm_11cd8b + ld a, [de] + and D_DOWN + jr nz, .asm_11cd94 + ret + +.asm_11cd6f + ld a, [hl] + ld [wcd2b], a +.asm_11cd73 + ld a, [wcd2b] + and a + jr nz, .asm_11cd7d + ld a, $6 + jr .asm_11cd7f + +.asm_11cd7d + ld a, $15 +.asm_11cd7f + ld [wJumptableIndex], a + ld hl, wcd24 + set 5, [hl] + call PlayClickSFX + ret + +.asm_11cd8b + ld a, [hl] + and a + ret z + dec [hl] + ld de, String_11cdc7 + jr .asm_11cd9b + +.asm_11cd94 + ld a, [hl] + and a + ret nz + inc [hl] + ld de, String_11cdd9 +.asm_11cd9b + push de + ld de, Unknown_11cfc6 + call Function11cfce + pop de + hlcoord 1, 14 + call PlaceString + ret + +Function11cdaa: ; 11cdaa (47:4daa) + ld a, $2 + hlcoord 0, 6, AttrMap + ld bc, 6 * SCREEN_WIDTH + call ByteFill + ld a, $7 + hlcoord 0, 12, AttrMap + ld bc, 4 * SCREEN_WIDTH + call ByteFill + callba ReloadMapPart + ret +; 11cdc7 (47:4dc7) + +String_11cdc7: ; 11cdc7 +; Words will be displayed by category + db "ことば¯しゅるいべつに" + next "えらべます@" +; 11cdd9 + +String_11cdd9: ; 11cdd9 +; Words will be displayed in alphabetical order + db "ことば¯アイウエォ の" + next "じゅんばんで ひょうじ します@" +; 11cdf5 + +String_11cdf5: ; 11cdf5 + db "しゅるいべつ モード" ; Category mode + next "アイウエォ モード@" ; ABC mode +; 11ce0b + +Function11ce0b: ; 11ce0b (47:4e0b) + call EZChat_ClearBottom12Rows + hlcoord 1, 7 + ld de, String_11cf79 + call PlaceString + hlcoord 1, 17 + ld de, EZChatString_Stop_Mode_Cancel + call PlaceString + call Function11c618 + ld hl, wcd24 + res 2, [hl] + call Function11cfb5 + +Function11ce2b: ; 11ce2b (47:4e2b) + ld a, [wcd22] + sla a + sla a + ld c, a + ld b, 0 + ld hl, Unknown_11ceb9 + add hl, bc + + ld de, hJoypadPressed ; $ffa3 + ld a, [de] + and START + jr nz, .start + ld a, [de] + and SELECT + jr nz, .select + ld a, [de] + and A_BUTTON + jr nz, .a + ld a, [de] + and B_BUTTON + jr nz, .b + + ld de, hJoyLast + ld a, [de] + and D_UP + jr nz, .up + ld a, [de] + and D_DOWN + jr nz, .down + ld a, [de] + and D_LEFT + jr nz, .left + ld a, [de] + and D_RIGHT + jr nz, .right + + ret + +.a + ld a, [wcd22] + cp NUM_KANA + jr c, .place + sub NUM_KANA + jr z, .done + dec a + jr z, .mode + jr .b + +.start + ld hl, wcd24 + set 0, [hl] + ld a, $8 + ld [wcd20], a ; wcd20 +.b + ld a, $4 + jr .load + +.select + ld a, [wcd2b] + xor $1 + ld [wcd2b], a + ld a, $6 + jr .load + +.place + ld a, $8 + jr .load + +.mode + ld a, $13 +.load + ld [wJumptableIndex], a + ld hl, wcd24 + set 2, [hl] + call PlayClickSFX + ret + +.done + ld a, [wcd20] ; wcd20 + call Function11ca6a + call PlayClickSFX + ret + +.left + inc hl +.down + inc hl +.right + inc hl +.up + ld a, [hl] + cp $ff + ret z + ld [wcd22], a + ret +; 11ceb9 (47:4eb9) + +Unknown_11ceb9: ; 11ceb9 + ; up left down right + db $ff, $01 + db $05, $ff + db $ff, $02 + db $06, $00 + db $ff, $03 + db $07, $01 + db $ff, $04 + db $08, $02 + db $ff, $14 + db $09, $03 + db $00, $06 + db $0a, $ff + db $01, $07 + db $0b, $05 + db $02, $08 + db $0c, $06 + db $03, $09 + db $0d, $07 + db $04, $19 + db $0e, $08 + db $05, $0b + db $0f, $ff + db $06, $0c + db $10, $0a + db $07, $0d + db $11, $0b + db $08, $0e + db $12, $0c + db $09, $1e + db $13, $0d + db $0a, $10 + db $2d, $ff + db $0b, $11 + db $2d, $0f + db $0c, $12 + db $2d, $10 + db $0d, $13 + db $2d, $11 + db $0e, $26 + db $2d, $12 + db $ff, $15 + db $19, $04 + db $ff, $16 + db $1a, $14 + db $ff, $17 + db $1b, $15 + db $ff, $18 + db $1c, $16 + db $ff, $23 + db $1d, $17 + db $14, $1a + db $1e, $09 + db $15, $1b + db $1f, $19 + db $16, $1c + db $20, $1a + db $17, $1d + db $21, $1b + db $18, $2b + db $22, $1c + db $19, $1f + db $26, $0e + db $1a, $20 + db $27, $1e + db $1b, $21 + db $28, $1f + db $1c, $22 + db $29, $20 + db $1d, $2c + db $2a, $21 + db $ff, $24 + db $2b, $18 + db $ff, $25 + db $2b, $23 + db $ff, $ff + db $2b, $24 + db $1e, $27 + db $2e, $13 + db $1f, $28 + db $2e, $26 + db $20, $29 + db $2e, $27 + db $21, $2a + db $2e, $28 + db $22, $ff + db $2e, $29 + db $23, $ff + db $2c, $1d + db $2b, $ff + db $2f, $22 + db $0f, $2e + db $ff, $ff + db $26, $2f + db $ff, $2d + db $2c, $ff + db $ff, $2e +; 11cf79 + +String_11cf79: ; 11cf79 +; Hiragana table + db "あいうえお なにぬねの や ゆ よ" + next "かきくけこ はひふへほ わ" + next "さしすせそ まみむめも そのた" + next "たちつてと らりるれろ" + db "@" +; 11cfb5 + +Function11cfb5: ; 11cfb5 (47:4fb5) + ld hl, wJumptableIndex + inc [hl] + ret +; 11cfba (47:4fba) + +Unknown_11cfba: + db 0, 0 ; start coords + db 20, 6 ; end coords + +Unknown_11cfbe: + db 0, 14 ; start coords + db 20, 4 ; end coords + +Unknown_11cfc2: + db 0, 6 ; start coords + db 20, 10 ; end coords + +Unknown_11cfc6: + db 0, 12 ; start coords + db 20, 6 ; end coords + +Unknown_11cfca: + db 14, 7 ; start coords + db 6, 5 ; end coords +; 11cfce + +Function11cfce: ; 11cfce (47:4fce) + hlcoord 0, 0 + ld bc, SCREEN_WIDTH + ld a, [de] + inc de + push af + ld a, [de] + inc de + and a +.add_n_times + jr z, .done_add_n_times + add hl, bc + dec a + jr .add_n_times +.done_add_n_times + pop af + ld c, a + ld b, 0 + add hl, bc + push hl + ld a, $79 + ld [hli], a + ld a, [de] + inc de + dec a + dec a + jr z, .skip_fill + ld c, a + ld a, $7a +.fill_loop + ld [hli], a + dec c + jr nz, .fill_loop +.skip_fill + ld a, $7b + ld [hl], a + pop hl + ld bc, SCREEN_WIDTH + add hl, bc + ld a, [de] + dec de + dec a + dec a + jr z, .skip_section + ld b, a +.loop + push hl + ld a, $7c + ld [hli], a + ld a, [de] + dec a + dec a + jr z, .skip_row + ld c, a + ld a, $7f +.row_loop + ld [hli], a + dec c + jr nz, .row_loop +.skip_row + ld a, $7c + ld [hl], a + pop hl + push bc + ld bc, SCREEN_WIDTH + add hl, bc + pop bc + dec b + jr nz, .loop +.skip_section + ld a, $7d + ld [hli], a + ld a, [de] + dec a + dec a + jr z, .skip_remainder + ld c, a + ld a, $7a +.final_loop + ld [hli], a + dec c + jr nz, .final_loop +.skip_remainder + ld a, $7e + ld [hl], a + ret + +Function11d035: ; 11d035 (47:5035) + hlcoord 0, 0 + ld bc, SCREEN_WIDTH + ld a, [de] + inc de + push af + ld a, [de] + inc de + and a +.add_n_times + jr z, .done_add_n_times + add hl, bc + dec a + jr .add_n_times +.done_add_n_times + pop af + ld c, a + ld b, $0 + add hl, bc + push hl + ld a, $79 + ld [hl], a + pop hl + push hl + ld a, [de] + dec a + inc de + ld c, a + add hl, bc + ld a, $7b + ld [hl], a + call .AddNMinusOneTimes + ld a, $7e + ld [hl], a + pop hl + push hl + call .AddNMinusOneTimes + ld a, $7d + ld [hl], a + pop hl + push hl + inc hl + push hl + call .AddNMinusOneTimes + pop bc + dec de + ld a, [de] + cp $2 + jr z, .skip + dec a + dec a +.loop + push af + ld a, $7a + ld [hli], a + ld [bc], a + inc bc + pop af + dec a + jr nz, .loop +.skip + pop hl + ld bc, $14 + add hl, bc + push hl + ld a, [de] + dec a + ld c, a + ld b, $0 + add hl, bc + pop bc + inc de + ld a, [de] + cp $2 + ret z + push bc + dec a + dec a + ld c, a + ld b, a + ld de, $14 +.loop2 + ld a, $7c + ld [hl], a + add hl, de + dec c + jr nz, .loop2 + pop hl +.loop3 + ld a, $7c + ld [hl], a + add hl, de + dec b + jr nz, .loop3 + ret + +.AddNMinusOneTimes: ; 11d0ac (47:50ac) + ld a, [de] + dec a + ld bc, SCREEN_WIDTH +.add_n_minus_one_times + add hl, bc + dec a + jr nz, .add_n_minus_one_times + ret + +AnimateEZChatCursor: ; 11d0b6 (47:50b6) + ld hl, SPRITEANIMSTRUCT_0C + add hl, bc + ld a, [hl] + ld e, a + ld d, 0 + ld hl, .Jumptable + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp hl + +.Jumptable: + dw .zero + dw .one + dw .two + dw .three + dw .four + dw .five + dw .six + dw .seven + dw .eight + dw .nine + dw .ten + +.zero ; 11d0dd (47:50dd) + ld a, [wcd20] ; wcd20 + sla a + ld hl, .Coords_Zero + ld e, $1 + jr .load + +.one ; 11d0e9 (47:50e9) + ld a, [wcd21] + sla a + ld hl, .Coords_One + ld e, $2 + jr .load + +.two ; 11d0f5 (47:50f5) + ld hl, .FramesetsIDs_Two + ld a, [wcd22] + ld e, a + ld d, $0 + add hl, de + ld a, [hl] + call ReinitSpriteAnimFrame + + ld a, [wcd22] + sla a + ld hl, .Coords_Two + ld e, $4 + jr .load + +.three ; 11d10f (47:510f) + ld a, SPRITE_ANIM_FRAMESET_27 + call ReinitSpriteAnimFrame + ld a, [wMobileCommsJumptableIndex] + sla a + ld hl, .Coords_Three + ld e, $8 +.load ; 11d11e (47:511e) + push de + ld e, a + ld d, $0 + add hl, de + push hl + pop de + ld hl, SPRITEANIMSTRUCT_XCOORD + add hl, bc + ld a, [de] + inc de + ld [hli], a + ld a, [de] + ld [hl], a + pop de + ld a, e + call .UpdateObjectFlags + ret + +.four ; 11d134 (47:5134) + ld a, SPRITE_ANIM_FRAMESET_27 + call ReinitSpriteAnimFrame + ld a, [wcd2a] + sla a + ld hl, .Coords_Four + ld e, $10 + jr .load + +.five ; 11d145 (47:5145) + ld a, SPRITE_ANIM_FRAMESET_27 + call ReinitSpriteAnimFrame + ld a, [wcd2c] + sla a + ld hl, .Coords_Five + ld e, $20 + jr .load + +.six ; 11d156 (47:5156) + ld a, SPRITE_ANIM_FRAMESET_2A + call ReinitSpriteAnimFrame + ; X = [wcd4a] * 8 + 24 + ld a, [wcd4a] + sla a + sla a + sla a + add $18 + ld hl, SPRITEANIMSTRUCT_XCOORD + add hl, bc + ld [hli], a + ; Y = 48 + ld a, $30 + ld [hl], a + + ld a, $1 + ld e, a + call .UpdateObjectFlags + ret + +.seven ; 11d175 (47:5175) + ld a, [wEZChatCursorYCoord] + cp $4 + jr z, .frameset_26 + ld a, SPRITE_ANIM_FRAMESET_28 + jr .got_frameset + +.frameset_26 + ld a, SPRITE_ANIM_FRAMESET_26 +.got_frameset + call ReinitSpriteAnimFrame + ld a, [wEZChatCursorYCoord] + cp $4 + jr z, .asm_11d1b1 + ; X = [wEZChatCursorXCoord] * 8 + 32 + ld a, [wEZChatCursorXCoord] + sla a + sla a + sla a + add $20 + ld hl, SPRITEANIMSTRUCT_XCOORD + add hl, bc + ld [hli], a + ; Y = [wEZChatCursorYCoord] * 16 + 72 + ld a, [wEZChatCursorYCoord] + sla a + sla a + sla a + sla a + add $48 + ld [hl], a + ld a, $2 + ld e, a + call .UpdateObjectFlags + ret + +.asm_11d1b1 + ; X = [wEZChatCursorXCoord] * 40 + 24 + ld a, [wEZChatCursorXCoord] + sla a + sla a + sla a + ld e, a + sla a + sla a + add e + add $18 + ld hl, SPRITEANIMSTRUCT_XCOORD + add hl, bc + ld [hli], a + ; Y = 138 + ld a, $8a + ld [hl], a + ld a, $2 + ld e, a + call .UpdateObjectFlags + ret + +.nine ; 11d1d1 (47:51d1) + ld d, -13 * 8 + ld a, SPRITE_ANIM_FRAMESET_2C + jr .eight_nine_load + +.eight ; 11d1d7 (47:51d7) + ld d, 2 * 8 + ld a, SPRITE_ANIM_FRAMESET_2B +.eight_nine_load ; 11d1db (47:51db) + push de + call ReinitSpriteAnimFrame + ld a, [wcd4a] + sla a + sla a + sla a + ld e, a + sla a + add e + add 8 * 8 + ld hl, SPRITEANIMSTRUCT_YCOORD + add hl, bc + ld [hld], a + pop af + ld [hl], a + ld a, $4 + ld e, a + call .UpdateObjectFlags + ret + +.ten ; 11d1fc (47:51fc) + ld a, SPRITE_ANIM_FRAMESET_26 + call ReinitSpriteAnimFrame + ld a, $8 + ld e, a + call .UpdateObjectFlags + ret +; 11d208 (47:5208) + +.Coords_Zero: ; 11d208 + dbpixel 1, 3, 5, 2 + dbpixel 7, 3, 5, 2 + dbpixel 13, 3, 5, 2 + dbpixel 1, 5, 5, 2 + dbpixel 7, 5, 5, 2 + dbpixel 13, 5, 5, 2 + dbpixel 1, 17, 5, 2 + dbpixel 7, 17, 5, 2 + dbpixel 13, 17, 5, 2 + +.Coords_One: ; 11d21a + dbpixel 1, 8, 5, 2 + dbpixel 7, 8, 5, 2 + dbpixel 13, 8, 5, 2 + dbpixel 1, 10, 5, 2 + dbpixel 7, 10, 5, 2 + dbpixel 13, 10, 5, 2 + dbpixel 1, 12, 5, 2 + dbpixel 7, 12, 5, 2 + dbpixel 13, 12, 5, 2 + dbpixel 1, 14, 5, 2 + dbpixel 7, 14, 5, 2 + dbpixel 13, 14, 5, 2 + dbpixel 1, 16, 5, 2 + dbpixel 7, 16, 5, 2 + dbpixel 13, 16, 5, 2 + dbpixel 1, 18, 5, 2 + dbpixel 7, 18, 5, 2 + dbpixel 13, 18, 5, 2 + +.Coords_Two: ; 11d23e + dbpixel 2, 9 ; 00 + dbpixel 3, 9 ; 01 + dbpixel 4, 9 ; 02 + dbpixel 5, 9 ; 03 + dbpixel 6, 9 ; 04 + dbpixel 2, 11 ; 05 + dbpixel 3, 11 ; 06 + dbpixel 4, 11 ; 07 + dbpixel 5, 11 ; 08 + dbpixel 6, 11 ; 09 + dbpixel 2, 13 ; 0a + dbpixel 3, 13 ; 0b + dbpixel 4, 13 ; 0c + dbpixel 5, 13 ; 0d + dbpixel 6, 13 ; 0e + dbpixel 2, 15 ; 0f + dbpixel 3, 15 ; 10 + dbpixel 4, 15 ; 11 + dbpixel 5, 15 ; 12 + dbpixel 6, 15 ; 13 + dbpixel 8, 9 ; 14 + dbpixel 9, 9 ; 15 + dbpixel 10, 9 ; 16 + dbpixel 11, 9 ; 17 + dbpixel 12, 9 ; 18 + dbpixel 8, 11 ; 19 + dbpixel 9, 11 ; 1a + dbpixel 10, 11 ; 1b + dbpixel 11, 11 ; 1c + dbpixel 12, 11 ; 1d + dbpixel 8, 13 ; 1e + dbpixel 9, 13 ; 1f + dbpixel 10, 13 ; 20 + dbpixel 11, 13 ; 21 + dbpixel 12, 13 ; 22 + dbpixel 14, 9 ; 23 + dbpixel 16, 9 ; 24 + dbpixel 18, 9 ; 25 + dbpixel 8, 15 ; 26 + dbpixel 9, 15 ; 27 + dbpixel 10, 15 ; 28 + dbpixel 11, 15 ; 29 + dbpixel 12, 15 ; 2a + dbpixel 14, 11 ; 2b + dbpixel 14, 13 ; 2c + dbpixel 1, 18, 5, 2 ; 2d + dbpixel 7, 18, 5, 2 ; 2e + dbpixel 13, 18, 5, 2 ; 2f + +.Coords_Three: ; 11d29e + dbpixel 2, 10 + dbpixel 8, 10 + dbpixel 14, 10 + dbpixel 2, 12 + dbpixel 8, 12 + dbpixel 14, 12 + dbpixel 2, 14 + dbpixel 8, 14 + dbpixel 14, 14 + dbpixel 2, 16 + dbpixel 8, 16 + dbpixel 14, 16 + +.Coords_Four: ; 11d2b6 + dbpixel 16, 10 + dbpixel 16, 12 + +.Coords_Five: ; 11d2ba + dbpixel 4, 10 + dbpixel 4, 12 + +.FramesetsIDs_Two: ; 11d2be + db SPRITE_ANIM_FRAMESET_28 ; 00 + db SPRITE_ANIM_FRAMESET_28 ; 01 + db SPRITE_ANIM_FRAMESET_28 ; 02 + db SPRITE_ANIM_FRAMESET_28 ; 03 + db SPRITE_ANIM_FRAMESET_28 ; 04 + db SPRITE_ANIM_FRAMESET_28 ; 05 + db SPRITE_ANIM_FRAMESET_28 ; 06 + db SPRITE_ANIM_FRAMESET_28 ; 07 + db SPRITE_ANIM_FRAMESET_28 ; 08 + db SPRITE_ANIM_FRAMESET_28 ; 09 + db SPRITE_ANIM_FRAMESET_28 ; 0a + db SPRITE_ANIM_FRAMESET_28 ; 0b + db SPRITE_ANIM_FRAMESET_28 ; 0c + db SPRITE_ANIM_FRAMESET_28 ; 0d + db SPRITE_ANIM_FRAMESET_28 ; 0e + db SPRITE_ANIM_FRAMESET_28 ; 0f + db SPRITE_ANIM_FRAMESET_28 ; 10 + db SPRITE_ANIM_FRAMESET_28 ; 11 + db SPRITE_ANIM_FRAMESET_28 ; 12 + db SPRITE_ANIM_FRAMESET_28 ; 13 + db SPRITE_ANIM_FRAMESET_28 ; 14 + db SPRITE_ANIM_FRAMESET_28 ; 15 + db SPRITE_ANIM_FRAMESET_28 ; 16 + db SPRITE_ANIM_FRAMESET_28 ; 17 + db SPRITE_ANIM_FRAMESET_28 ; 18 + db SPRITE_ANIM_FRAMESET_28 ; 19 + db SPRITE_ANIM_FRAMESET_28 ; 1a + db SPRITE_ANIM_FRAMESET_28 ; 1b + db SPRITE_ANIM_FRAMESET_28 ; 1c + db SPRITE_ANIM_FRAMESET_28 ; 1d + db SPRITE_ANIM_FRAMESET_28 ; 1e + db SPRITE_ANIM_FRAMESET_28 ; 1f + db SPRITE_ANIM_FRAMESET_28 ; 20 + db SPRITE_ANIM_FRAMESET_28 ; 21 + db SPRITE_ANIM_FRAMESET_28 ; 22 + db SPRITE_ANIM_FRAMESET_28 ; 23 + db SPRITE_ANIM_FRAMESET_28 ; 24 + db SPRITE_ANIM_FRAMESET_28 ; 25 + db SPRITE_ANIM_FRAMESET_28 ; 26 + db SPRITE_ANIM_FRAMESET_28 ; 27 + db SPRITE_ANIM_FRAMESET_28 ; 28 + db SPRITE_ANIM_FRAMESET_28 ; 29 + db SPRITE_ANIM_FRAMESET_28 ; 2a + db SPRITE_ANIM_FRAMESET_28 ; 2b + db SPRITE_ANIM_FRAMESET_29 ; 2c + db SPRITE_ANIM_FRAMESET_26 ; 2d + db SPRITE_ANIM_FRAMESET_26 ; 2e + db SPRITE_ANIM_FRAMESET_26 ; 2f + +.UpdateObjectFlags: ; 11d2ee (47:52ee) + ld hl, wcd24 + and [hl] + jr nz, .update_y_offset + ld a, e + ld hl, wcd23 + and [hl] + jr z, .reset_y_offset + ld hl, SPRITEANIMSTRUCT_0E + add hl, bc + ld a, [hl] + and a + jr z, .flip_bit_0 + dec [hl] + ret + +.flip_bit_0 + ld a, $0 + ld [hld], a + ld a, $1 + xor [hl] + ld [hl], a + and a + jr nz, .update_y_offset +.reset_y_offset + ld hl, SPRITEANIMSTRUCT_YOFFSET + add hl, bc + xor a + ld [hl], a + ret + +.update_y_offset + ld hl, SPRITEANIMSTRUCT_YCOORD + add hl, bc + ld a, $b0 + sub [hl] + ld hl, SPRITEANIMSTRUCT_YOFFSET + add hl, bc + ld [hl], a + ret + +Function11d323: ; 11d323 + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + ld hl, Palette_11d33a + ld de, UnknBGPals + ld bc, 16 palettes + call CopyBytes + pop af + ld [rSVBK], a + ret +; 11d33a + +Palette_11d33a: + RGB 31, 31, 31 + RGB 00, 00, 00 + RGB 00, 00, 00 + RGB 00, 00, 00 + + RGB 31, 16, 31 + RGB 00, 00, 00 + RGB 00, 00, 00 + RGB 00, 00, 00 + + RGB 23, 17, 31 + RGB 00, 00, 00 + RGB 00, 00, 00 + RGB 00, 00, 00 + + RGB 31, 31, 31 + RGB 00, 00, 00 + RGB 00, 00, 00 + RGB 00, 00, 00 + + RGB 31, 31, 31 + RGB 00, 00, 00 + RGB 00, 00, 00 + RGB 00, 00, 00 + + RGB 31, 31, 31 + RGB 00, 00, 00 + RGB 00, 00, 00 + RGB 00, 00, 00 + + RGB 31, 31, 31 + RGB 00, 00, 00 + RGB 00, 00, 00 + RGB 00, 00, 00 + + RGB 31, 31, 31 + RGB 00, 00, 00 + RGB 00, 00, 00 + RGB 00, 00, 00 + + RGB 00, 00, 00 + RGB 00, 00, 00 + RGB 00, 00, 00 + RGB 00, 00, 00 + + RGB 00, 00, 00 + RGB 00, 00, 00 + RGB 00, 00, 00 + RGB 00, 00, 00 + + RGB 00, 00, 00 + RGB 00, 00, 00 + RGB 00, 00, 00 + RGB 00, 00, 00 + + RGB 00, 00, 00 + RGB 00, 00, 00 + RGB 00, 00, 00 + RGB 00, 00, 00 + + RGB 00, 00, 00 + RGB 00, 00, 00 + RGB 00, 00, 00 + RGB 00, 00, 00 + + RGB 00, 00, 00 + RGB 00, 00, 00 + RGB 00, 00, 00 + RGB 00, 00, 00 + + RGB 00, 00, 00 + RGB 00, 00, 00 + RGB 00, 00, 00 + RGB 00, 00, 00 + + RGB 00, 00, 00 + RGB 00, 00, 00 + RGB 00, 00, 00 + RGB 00, 00, 00 +; 11d3ba + +EZChat_GetSeenPokemonByKana: ; 11d3ba + ld a, [rSVBK] + push af + ld hl, $c648 + ld a, w5_d800 % $100 + ld [wcd2d], a + ld [hli], a + ld a, w5_d800 / $100 + ld [wcd2e], a + ld [hl], a + + ld a, SortedPokemon % $100 + ld [wcd2f], a + ld a, SortedPokemon / $100 + ld [wcd30], a + + ld a, $c6a8 % $100 + ld [wcd31], a + ld a, $c6a8 / $100 + ld [wcd32], a + + ld a, $c64a % $100 + ld [wcd33], a + ld a, $c64a / $100 + ld [wcd34], a + + ld hl, EZChat_SortedWords + ld a, (EZChat_SortedWordsEnd - EZChat_SortedWords) / 4 + +.MasterLoop: ; 11d3ef + push af +; read row +; offset + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a +; size + ld a, [hli] + ld c, a + ld a, [hli] + ld b, a +; save the pointer to the next row + push hl +; add de to w3_d000 + ld hl, w3_d000 + add hl, de +; recover de from wcd2d (default: w5_d800) + ld a, [wcd2d] + ld e, a + ld a, [wcd2e] + ld d, a +; save bc for later + push bc + +.loop1 +; copy 2*bc bytes from 3:hl to 5:de + ld a, $3 + ld [rSVBK], a + ld a, [hli] + push af + ld a, $5 + ld [rSVBK], a + pop af + ld [de], a + inc de + + ld a, $3 + ld [rSVBK], a + ld a, [hli] + push af + ld a, $5 + ld [rSVBK], a + pop af + ld [de], a + inc de + + dec bc + ld a, c + or b + jr nz, .loop1 + +; recover the pointer from wcd2f (default: SortedPokemon) + ld a, [wcd2f] + ld l, a + ld a, [wcd30] + ld h, a +; copy the pointer from [hl] to bc + ld a, [hli] + ld c, a + ld a, [hli] + ld b, a +; store the pointer to the next pointer back in wcd2f + ld a, l + ld [wcd2f], a + ld a, h + ld [wcd30], a +; push pop that pointer to hl + push bc + pop hl + ld c, $0 +.loop2 +; Have you seen this Pokemon? + ld a, [hl] + cp $ff + jr z, .done + call .CheckSeenMon + jr nz, .next +; If not, skip it. + inc hl + jr .loop2 + +.next +; If so, append it to the list at 5:de, and increase the count. + ld a, [hli] + ld [de], a + inc de + xor a + ld [de], a + inc de + inc c + jr .loop2 + +.done +; Remember the original value of bc from the table? +; Well, the stack remembers it, and it's popping it to hl. + pop hl +; Add the number of seen Pokemon from the list. + ld b, $0 + add hl, bc +; Push pop to bc. + push hl + pop bc +; Load the pointer from [wcd31] (default: $c6a8) + ld a, [wcd31] + ld l, a + ld a, [wcd32] + ld h, a +; Save the quantity from bc to [hl] + ld a, c + ld [hli], a + ld a, b + ld [hli], a +; Save the new value of hl to [wcd31] + ld a, l + ld [wcd31], a + ld a, h + ld [wcd32], a +; Recover the pointer from [wcd33] (default: $c64a) + ld a, [wcd33] + ld l, a + ld a, [wcd34] + ld h, a +; Save the current value of de there + ld a, e + ld [wcd2d], a + ld [hli], a + ld a, d + ld [wcd2e], a +; Save the new value of hl back to [wcd33] + ld [hli], a + ld a, l + ld [wcd33], a + ld a, h + ld [wcd34], a +; Next row + pop hl + pop af + dec a + jr z, .ExitMasterLoop + jp .MasterLoop + +.ExitMasterLoop: + pop af + ld [rSVBK], a + ret +; 11d493 + +.CheckSeenMon: ; 11d493 + push hl + push bc + push de + dec a + ld hl, rSVBK + ld e, $1 + ld [hl], e + call CheckSeenMon + ld hl, rSVBK + ld e, $5 + ld [hl], e + pop de + pop bc + pop hl + ret +; 11d4aa + +EZChat_GetCategoryWordsByKana: ; 11d4aa + ld a, [rSVBK] + push af + ld a, $3 + ld [rSVBK], a + + ; load pointers + ld hl, MobileEZChatCategoryPointers + ld bc, MobileEZChatData_WordAndPageCounts + + ; init WRAM registers + xor a + ld [wcd2d], a + inc a + ld [wcd2e], a + + ; enter the first loop + ld a, 14 +.loop1 + push af + + ; load the pointer to the category + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + push hl + + ; skip to the attributes + ld hl, 5 ; length of a string + add hl, de + + ; get the number of words in the category + ld a, [bc] ; number of entries to copy + inc bc + inc bc + push bc + +.loop2 + push af + push hl + + ; load offset at [hl] + ld a, [hli] + ld e, a + ld a, [hl] + ld d, a + + ; add to w3_d000 + ld hl, w3_d000 + add hl, de + + ; copy from wcd2d and increment [wcd2d] in place + ld a, [wcd2d] + ld [hli], a + inc a + ld [wcd2d], a + + ; copy from wcd2e + ld a, [wcd2e] + ld [hl], a + + ; next entry + pop hl + ld de, 8 + add hl, de + pop af + dec a + jr nz, .loop2 + + ; reset and go to next category + ld hl, wcd2d + xor a + ld [hli], a + inc [hl] + pop bc + pop hl + pop af + dec a + jr nz, .loop1 + pop af + ld [rSVBK], a + ret +; 11d4fe + +SortedPokemon: +; Pokemon sorted by kana. +; Notably, Rhydon is missing. + dw .a + dw .i + dw .u + dw .e + dw .o + dw .ka_ga + dw .ki_gi + dw .ku_gu + dw .ke_ge + dw .ko_go + dw .sa_za + dw .shi_ji + dw .su_zu + dw .se_ze + dw .so_zo + dw .ta_da + dw .chi_dhi + dw .tsu_du + dw .te_de + dw .to_do + dw .na + dw .ni + dw .nu + dw .ne + dw .no + dw .ha_ba_pa + dw .hi_bi_pi + dw .fu_bu_pu + dw .he_be_pe + dw .ho_bo_po + dw .ma + dw .mi + dw .mu + dw .me + dw .mo + dw .ya + dw .yu + dw .yo + dw .ra + dw .ri + dw .ru + dw .re + dw .ro + dw .wa + dw .end + +.a: db EKANS, ARBOK, SEAKING, ARIADOS, CROCONAW, UNOWN, -1 +.i: db EEVEE, GEODUDE, SPINARAK, PILOSWINE, ONIX, -1 +.u: db ARCANINE, SUDOWOODO, WEEPINBELL, VICTREEBEL, WOOPER, SWINUB, -1 +.e: db SKARMORY, AIPOM, ESPEON, HITMONCHAN, ELEKID, ELECTABUZZ, ENTEI, -1 +.o: db FERALIGATR, FURRET, OCTILLERY, PRIMEAPE, SENTRET, STANTLER, SPEAROW, FEAROW, OMASTAR, OMANYTE, -1 +.ka_ga db GROWLITHE, MACHAMP, DRAGONITE, PINSIR, SNORLAX, KABUTO, KABUTOPS, HITMONTOP, WARTORTLE, BLASTOISE, FARFETCH_D, CUBONE, MAROWAK, KANGASKHAN, -1 +.ki_gi db SUNFLORA, CATERPIE, GYARADOS, RAPIDASH, NINETALES, GIRAFARIG, BELLOSSOM, KINGDRA, KINGLER, -1 +.ku_gu db GLOOM, PINECO, GLIGAR, KRABBY, GRANBULL, CROBAT, -1 +.ke_ge db ABRA, GENGAR, TAUROS, -1 +.ko_go db MAGIKARP, MAGNEMITE, GASTLY, HAUNTER, MACHOKE, KAKUNA, PSYDUCK, PHANPY, RATTATA, GOLDUCK, GOLBAT, GOLEM, GRAVELER, VENONAT, -1 +.sa_za db RHYHORN, PUPITAR, CORSOLA, HITMONLEE, ZAPDOS, JOLTEON, SANDSHREW, SANDSLASH, -1 ; RHYDON should lead this list +.shi_ji db SEADRA, SHELLDER, VAPOREON, DEWGONG, -1 +.su_zu db SUICUNE, STARMIE, SCYTHER, ZUBAT, BEEDRILL, HYPNO, DROWZEE, -1 +.se_ze db SQUIRTLE, CELEBI, -1 +.so_zo db WOBBUFFET, -1 +.ta_da db DUGTRIO, HORSEA, EXEGGCUTE, -1 +.chi_dhi db CHIKORITA, CHINCHOU, -1 +.tsu_du db SHUCKLE, -1 +.te_de db DIGLETT, REMORAID, DELIBIRD, HOUNDOUR, AMPHAROS, -1 +.to_do db DODUO, DODRIO, SMEARGLE, KOFFING, TENTACRUEL, TOGETIC, TOGEPI, GOLDEEN, METAPOD, DONPHAN, -1 +.na db ODDISH, EXEGGUTOR, -1 +.ni db NIDOKING, NIDOQUEEN, NIDORAN_M, NIDORAN_F, NIDORINA, NIDORINO, MEOWTH, SNEASEL, POLIWHIRL, POLITOED, POLIWRATH, POLIWAG, -1 +.nu db QUAGSIRE, -1 +.ne db NATU, XATU, -1 +.no db DUNSPARCE, -1 +.ha_ba_pa db SEEL, STEELIX, TYPHLOSION, DRAGONAIR, BUTTERFREE, SCIZOR, HOPPIP, BLISSEY, PARAS, PARASECT, QWILFISH, MR__MIME, TYROGUE, CLOYSTER, TYRANITAR, -1 +.hi_bi_pi db CLEFFA, WEEDLE, PIKACHU, CLEFABLE, PIDGEOT, PIDGEOTTO, PICHU, CLEFAIRY, CHARMANDER, STARYU, CYNDAQUIL, SUNKERN, TEDDIURSA, VOLTORB, -1 +.fu_bu_pu db MOLTRES, FLAREON, ALAKAZAM, MAGMAR, FORRETRESS, WIGGLYTUFF, IVYSAUR, BULBASAUR, VENUSAUR, AERODACTYL, MAGBY, IGGLYBUFF, UMBREON, ARTICUNO, JIGGLYPUFF, SNUBBULL, -1 +.he_be_pe db BAYLEEF, GRIMER, MUK, HERACROSS, HOUNDOOM, PERSIAN, LICKITUNG, -1 +.ho_bo_po db HO_OH, HOOTHOOT, PIDGEY, PONYTA, SKIPLOOM, PORYGON, PORYGON2, -1 +.ma db MAGCARGO, SLUGMA, QUILAVA, BELLSPROUT, WEEZING, MARILL, AZUMARILL, ELECTRODE, MANKEY, MANTINE, -1 +.mi db DRATINI, MEW, MEWTWO, MILTANK, -1 +.mu db MISDREAVUS, SMOOCHUM, -1 +.me db MEGANIUM, DITTO, TENTACOOL, MAREEP, -1 +.mo db FLAAFFY, VENOMOTH, TANGELA, -1 +.ya db SLOWKING, SLOWBRO, SLOWPOKE, MURKROW, YANMA, -1 +.yu db KADABRA, -1 +.yo db LARVITAR, NOCTOWL, -1 +.ra db RAIKOU, RAICHU, CHANSEY, RATICATE, LAPRAS, VILEPLUME, LANTURN, -1 +.ri db CHARMELEON, CHARIZARD, URSARING, -1 +.ru db JYNX, LUGIA, -1 +.re db MAGNETON, LEDIAN, LEDYBA, -1 +.ro db VULPIX, -1 +.wa db JUMPLUFF, TOTODILE, MACHOP;, -1 +.end db -1 +; 11d67e + +GFX_11d67e: +INCBIN "gfx/pokedex/select_start.2bpp" +; 11d6de + +LZ_11d6de: +INCBIN "gfx/pokedex/slowpoke.2bpp.lz" +; 11da52 + +MobileEZChatCategoryNames: ; 11da52 +; Fixed message categories + db "ポケモン@@" ; 00 + db "タイプ@@@" ; 01 + db "あいさつ@@" ; 02 + db "ひと@@@@" ; 03 + db "バトル@@@" ; 04 + db "こえ@@@@" ; 05 + db "かいわ@@@" ; 06 + db "きもち@@@" ; 07 + db "じょうたい@" ; 08 + db "せいかつ@@" ; 09 + db "しゅみ@@@" ; 0a + db "こうどう@@" ; 0b + db "じかん@@@" ; 0c + db "むすび@@@" ; 0d + db "あれこれ@@" ; 0e +; 11daac + +MobileEZChatCategoryPointers: ; 11daac +; entries correspond to EZCHAT_* constants + dw .Types ; 01 + dw .Greetings ; 02 + dw .People ; 03 + dw .Battle ; 04 + dw .Exclamations ; 05 + dw .Conversation ; 06 + dw .Feelings ; 07 + dw .Conditions ; 08 + dw .Life ; 09 + dw .Hobbies ; 0a + dw .Actions ; 0b + dw .Time ; 0c + dw .Farewells ; 0d + dw .ThisAndThat ; 0e + +.Types: ; 11dac8 + db "あく@@@", $26, $0, $0 + db "いわ@@@", $aa, $0, $0 + db "エスパー@", $da, $0, $0 + db "かくとう@", $4e, $1, $0 + db "くさ@@@", $ba, $1, $0 + db "ゴースト@", $e4, $1, $0 + db "こおり@@", $e6, $1, $0 + db "じめん@@", $68, $2, $0 + db "タイプ@@", $e8, $2, $0 + db "でんき@@", $8e, $3, $0 + db "どく@@@", $ae, $3, $0 + db "ドラゴン@", $bc, $3, $0 + db "ノーマル@", $22, $4, $0 + db "はがね@@", $36, $4, $0 + db "ひこう@@", $5e, $4, $0 + db "ほのお@@", $b2, $4, $0 + db "みず@@@", $f4, $4, $0 + db "むし@@@", $12, $5, $0 + +.Greetings: ; 11db58 + db "ありがと@", $58, $0, $0 + db "ありがとう", $5a, $0, $0 + db "いくぜ!@", $80, $0, $0 + db "いくよ!@", $82, $0, $0 + db "いくわよ!", $84, $0, $0 + db "いやー@@", $a6, $0, $0 + db "おっす@@", $a, $1, $0 + db "おはつです", $22, $1, $0 + db "おめでとう", $2a, $1, $0 + db "ごめん@@", $f8, $1, $0 + db "ごめんよ@", $fa, $1, $0 + db "こらっ@@", $fc, $1, $0 + db "こんちは!", $a, $2, $0 + db "こんにちは", $10, $2, $0 + db "さようなら", $28, $2, $0 + db "サンキュー", $2e, $2, $0 + db "さんじょう", $30, $2, $0 + db "しっけい@", $48, $2, $0 + db "しつれい@", $4c, $2, $0 + db "じゃーね@", $6c, $2, $0 + db "すいません", $8c, $2, $0 + db "それじゃ@", $ca, $2, $0 + db "どうも@@", $a6, $3, $0 + db "なんじゃ@", $ee, $3, $0 + db "ハーイ@@", $2c, $4, $0 + db "はいはい@", $32, $4, $0 + db "バイバイ@", $34, $4, $0 + db "へイ@@@", $8a, $4, $0 + db "またね@@", $de, $4, $0 + db "もしもし@", $32, $5, $0 + db "やあ@@@", $3e, $5, $0 + db "やっほー@", $4e, $5, $0 + db "よう@@@", $62, $5, $0 + db "ようこそ@", $64, $5, $0 + db "よろしく@", $80, $5, $0 + db "らっしゃい", $94, $5, $0 + +.People: ; 11dc78 + db "あいて@@", $1c, $0, $0 + db "あたし@@", $36, $0, $0 + db "あなた@@", $40, $0, $0 + db "あなたが@", $42, $0, $0 + db "あなたに@", $44, $0, $0 + db "あなたの@", $46, $0, $0 + db "あなたは@", $48, $0, $0 + db "あなたを@", $4a, $0, $0 + db "おかあさん", $e8, $0, $0 + db "おじいさん", $fc, $0, $0 + db "おじさん@", $2, $1, $0 + db "おとうさん", $e, $1, $0 + db "おとこのこ", $10, $1, $0 + db "おとな@@", $14, $1, $0 + db "おにいさん", $16, $1, $0 + db "おねえさん", $18, $1, $0 + db "おばあさん", $1c, $1, $0 + db "おばさん@", $20, $1, $0 + db "おれさま@", $34, $1, $0 + db "おんなのこ", $3a, $1, $0 + db "ガール@@", $40, $1, $0 + db "かぞく@@", $52, $1, $0 + db "かのじょ@", $72, $1, $0 + db "かれ@@@", $7c, $1, $0 + db "きみ@@@", $9a, $1, $0 + db "きみが@@", $9c, $1, $0 + db "きみに@@", $9e, $1, $0 + db "きみの@@", $a0, $1, $0 + db "きみは@@", $a2, $1, $0 + db "きみを@@", $a4, $1, $0 + db "ギャル@@", $ae, $1, $0 + db "きょうだい", $b2, $1, $0 + db "こども@@", $f0, $1, $0 + db "じぶん@@", $54, $2, $0 + db "じぶんが@", $56, $2, $0 + db "じぶんに@", $58, $2, $0 + db "じぶんの@", $5a, $2, $0 + db "じぶんは@", $5c, $2, $0 + db "じぶんを@", $5e, $2, $0 + db "だれ@@@", $18, $3, $0 + db "だれか@@", $1a, $3, $0 + db "だれが@@", $1c, $3, $0 + db "だれに@@", $1e, $3, $0 + db "だれの@@", $20, $3, $0 + db "だれも@@", $22, $3, $0 + db "だれを@@", $24, $3, $0 + db "ちゃん@@", $38, $3, $0 + db "ともだち@", $b8, $3, $0 + db "なかま@@", $d4, $3, $0 + db "ひと@@@", $62, $4, $0 + db "ボーイ@@", $98, $4, $0 + db "ボク@@@", $a0, $4, $0 + db "ボクが@@", $a2, $4, $0 + db "ボクに@@", $a4, $4, $0 + db "ボクの@@", $a6, $4, $0 + db "ボクは@@", $a8, $4, $0 + db "ボクを@@", $aa, $4, $0 + db "みんな@@", $4, $5, $0 + db "みんなが@", $6, $5, $0 + db "みんなに@", $8, $5, $0 + db "みんなの@", $a, $5, $0 + db "みんなは@", $c, $5, $0 + db "ライバル@", $8a, $5, $0 + db "わたし@@", $c2, $5, $0 + db "わたしが@", $c4, $5, $0 + db "わたしに@", $c6, $5, $0 + db "わたしの@", $c8, $5, $0 + db "わたしは@", $ca, $5, $0 + db "わたしを@", $cc, $5, $0 + +.Battle: ; 11dea0 + db "あいしょう", $18, $0, $0 + db "いけ!@@", $88, $0, $0 + db "いちばん@", $96, $0, $0 + db "かくご@@", $4c, $1, $0 + db "かたせて@", $54, $1, $0 + db "かち@@@", $56, $1, $0 + db "かつ@@@", $58, $1, $0 + db "かった@@", $60, $1, $0 + db "かったら@", $62, $1, $0 + db "かって@@", $64, $1, $0 + db "かてない@", $66, $1, $0 + db "かてる@@", $68, $1, $0 + db "かなわない", $70, $1, $0 + db "きあい@@", $84, $1, $0 + db "きめた@@", $a8, $1, $0 + db "きりふだ@", $b6, $1, $0 + db "くらえ@@", $c2, $1, $0 + db "こい!@@", $da, $1, $0 + db "こうげき@", $e0, $1, $0 + db "こうさん@", $e2, $1, $0 + db "こんじょう", $8, $2, $0 + db "さいのう@", $16, $2, $0 + db "さくせん@", $1a, $2, $0 + db "さばき@@", $22, $2, $0 + db "しょうぶ@", $7e, $2, $0 + db "しょうり@", $80, $2, $0 + db "せめ@@@", $b4, $2, $0 + db "センス@@", $b6, $2, $0 + db "たいせん@", $e6, $2, $0 + db "たたかい@", $f6, $2, $0 + db "ちから@@", $32, $3, $0 + db "チャレンジ", $36, $3, $0 + db "つよい@@", $58, $3, $0 + db "つよすぎ@", $5a, $3, $0 + db "つらい@@", $5c, $3, $0 + db "つらかった", $5e, $3, $0 + db "てかげん@", $6c, $3, $0 + db "てき@@@", $6e, $3, $0 + db "てんさい@", $90, $3, $0 + db "でんせつ@", $94, $3, $0 + db "トレーナー", $c6, $3, $0 + db "にげ@@@", $4, $4, $0 + db "ぬるい@@", $10, $4, $0 + db "ねらう@@", $16, $4, $0 + db "バトル@@", $4a, $4, $0 + db "ファイト@", $72, $4, $0 + db "ふっかつ@", $78, $4, $0 + db "ポイント@", $94, $4, $0 + db "ポケモン@", $ac, $4, $0 + db "ほんき@@", $bc, $4, $0 + db "まいった!", $c4, $4, $0 + db "まけ@@@", $c8, $4, $0 + db "まけたら@", $ca, $4, $0 + db "まけて@@", $cc, $4, $0 + db "まける@@", $ce, $4, $0 + db "まもり@@", $ea, $4, $0 + db "みかた@@", $f2, $4, $0 + db "みとめない", $fe, $4, $0 + db "みとめる@", $0, $5, $0 + db "むてき@@", $16, $5, $0 + db "もらった!", $3c, $5, $0 + db "よゆう@@", $7a, $5, $0 + db "よわい@@", $82, $5, $0 + db "よわすぎ@", $84, $5, $0 + db "らくしょう", $8e, $5, $0 + db "りーダー@", $9e, $5, $0 + db "ルール@@", $a0, $5, $0 + db "レべル@@", $a6, $5, $0 + db "わざ@@@", $be, $5, $0 + +.Exclamations: ; 11e0c8 + db "!@@@@", $0, $0, $0 + db "!!@@@", $2, $0, $0 + db "!?@@@", $4, $0, $0 + db "?@@@@", $6, $0, $0 + db "…@@@@", $8, $0, $0 + db "…!@@@", $a, $0, $0 + db "………@@", $c, $0, $0 + db "ー@@@@", $e, $0, $0 + db "ーーー@@", $10, $0, $0 + db "あーあ@@", $14, $0, $0 + db "あーん@@", $16, $0, $0 + db "あははー@", $52, $0, $0 + db "あら@@@", $54, $0, $0 + db "いえ@@@", $72, $0, $0 + db "イエス@@", $74, $0, $0 + db "うう@@@", $ac, $0, $0 + db "うーん@@", $ae, $0, $0 + db "うおー!@", $b0, $0, $0 + db "うおりゃー", $b2, $0, $0 + db "うひょー@", $bc, $0, $0 + db "うふふ@@", $be, $0, $0 + db "うわー@@", $ca, $0, $0 + db "うわーん@", $cc, $0, $0 + db "ええ@@@", $d2, $0, $0 + db "えー@@@", $d4, $0, $0 + db "えーん@@", $d6, $0, $0 + db "えへへ@@", $dc, $0, $0 + db "おいおい@", $e0, $0, $0 + db "おお@@@", $e2, $0, $0 + db "おっと@@", $c, $1, $0 + db "がーん@@", $42, $1, $0 + db "キャー@@", $aa, $1, $0 + db "ギャー@@", $ac, $1, $0 + db "ぐふふふふ", $bc, $1, $0 + db "げっ@@@", $ce, $1, $0 + db "しくしく@", $3e, $2, $0 + db "ちえっ@@", $2e, $3, $0 + db "てへ@@@", $86, $3, $0 + db "ノー@@@", $20, $4, $0 + db "はあー@@", $2a, $4, $0 + db "はい@@@", $30, $4, $0 + db "はっはっは", $48, $4, $0 + db "ひいー@@", $56, $4, $0 + db "ひゃあ@@", $6a, $4, $0 + db "ふっふっふ", $7c, $4, $0 + db "ふにゃ@@", $7e, $4, $0 + db "ププ@@@", $80, $4, $0 + db "ふふん@@", $82, $4, $0 + db "ふん@@@", $88, $4, $0 + db "へっへっへ", $8e, $4, $0 + db "へへー@@", $90, $4, $0 + db "ほーほほほ", $9c, $4, $0 + db "ほら@@@", $b6, $4, $0 + db "まあ@@@", $c0, $4, $0 + db "むきー!!", $10, $5, $0 + db "むふー@@", $18, $5, $0 + db "むふふ@@", $1a, $5, $0 + db "むむ@@@", $1c, $5, $0 + db "よーし@@", $6a, $5, $0 + db "よし!@@", $72, $5, $0 + db "ラララ@@", $98, $5, $0 + db "わーい@@", $ac, $5, $0 + db "わーん!!", $b0, $5, $0 + db "ワォ@@@", $b2, $5, $0 + db "わっ!!@", $ce, $5, $0 + db "わははは!", $d0, $5, $0 + +.Conversation: ; 11e2d8 + db "あのね@@", $50, $0, $0 + db "あんまり@", $6e, $0, $0 + db "いじわる@", $8e, $0, $0 + db "うそ@@@", $b6, $0, $0 + db "うむ@@@", $c4, $0, $0 + db "おーい@@", $e4, $0, $0 + db "おすすめ@", $6, $1, $0 + db "おばかさん", $1e, $1, $0 + db "かなり@@", $6e, $1, $0 + db "から@@@", $7a, $1, $0 + db "きぶん@@", $98, $1, $0 + db "けど@@@", $d6, $1, $0 + db "こそ@@@", $ea, $1, $0 + db "こと@@@", $ee, $1, $0 + db "さあ@@@", $12, $2, $0 + db "さっぱり@", $1e, $2, $0 + db "さて@@@", $20, $2, $0 + db "じゅうぶん", $72, $2, $0 + db "すぐ@@@", $94, $2, $0 + db "すごく@@", $98, $2, $0 + db "すこしは@", $9a, $2, $0 + db "すっっごい", $a0, $2, $0 + db "ぜーんぜん", $b0, $2, $0 + db "ぜったい@", $b2, $2, $0 + db "それで@@", $ce, $2, $0 + db "だけ@@@", $f2, $2, $0 + db "だって@@", $fc, $2, $0 + db "たぶん@@", $6, $3, $0 + db "たら@@@", $14, $3, $0 + db "ちょー@@", $3a, $3, $0 + db "ちょっと@", $3c, $3, $0 + db "ったら@@", $4e, $3, $0 + db "って@@@", $50, $3, $0 + db "ていうか@", $62, $3, $0 + db "でも@@@", $88, $3, $0 + db "どうしても", $9c, $3, $0 + db "とうぜん@", $a0, $3, $0 + db "どうぞ@@", $a2, $3, $0 + db "とりあえず", $be, $3, $0 + db "なあ@@@", $cc, $3, $0 + db "なんて@@", $f4, $3, $0 + db "なんでも@", $fc, $3, $0 + db "なんとか@", $fe, $3, $0 + db "には@@@", $8, $4, $0 + db "バッチり@", $46, $4, $0 + db "ばりばり@", $52, $4, $0 + db "ほど@@@", $b0, $4, $0 + db "ほんと@@", $be, $4, $0 + db "まさに@@", $d0, $4, $0 + db "マジ@@@", $d2, $4, $0 + db "マジで@@", $d4, $4, $0 + db "まったく@", $e4, $4, $0 + db "まで@@@", $e6, $4, $0 + db "まるで@@", $ec, $4, $0 + db "ムード@@", $e, $5, $0 + db "むしろ@@", $14, $5, $0 + db "めちゃ@@", $24, $5, $0 + db "めっぽう@", $28, $5, $0 + db "もう@@@", $2c, $5, $0 + db "モード@@", $2e, $5, $0 + db "もっと@@", $36, $5, $0 + db "もはや@@", $38, $5, $0 + db "やっと@@", $4a, $5, $0 + db "やっぱり@", $4c, $5, $0 + db "より@@@", $7c, $5, $0 + db "れば@@@", $a4, $5, $0 + +.Feelings: ; 11e4e8 + db "あいたい@", $1a, $0, $0 + db "あそびたい", $32, $0, $0 + db "いきたい@", $7c, $0, $0 + db "うかれて@", $b4, $0, $0 + db "うれしい@", $c6, $0, $0 + db "うれしさ@", $c8, $0, $0 + db "エキサイト", $d8, $0, $0 + db "えらい@@", $de, $0, $0 + db "おかしい@", $ec, $0, $0 + db "ォッケー@", $8, $1, $0 + db "かえりたい", $48, $1, $0 + db "がっくし@", $5a, $1, $0 + db "かなしい@", $6c, $1, $0 + db "がんばって", $80, $1, $0 + db "きがしない", $86, $1, $0 + db "きがする@", $88, $1, $0 + db "ききたい@", $8a, $1, $0 + db "きになる@", $90, $1, $0 + db "きのせい@", $96, $1, $0 + db "きらい@@", $b4, $1, $0 + db "くやしい@", $be, $1, $0 + db "くやしさ@", $c0, $1, $0 + db "さみしい@", $24, $2, $0 + db "ざんねん@", $32, $2, $0 + db "しあわせ@", $36, $2, $0 + db "したい@@", $44, $2, $0 + db "したくない", $46, $2, $0 + db "しまった@", $64, $2, $0 + db "しょんぼり", $82, $2, $0 + db "すき@@@", $92, $2, $0 + db "だいきらい", $da, $2, $0 + db "たいくつ@", $dc, $2, $0 + db "だいじ@@", $de, $2, $0 + db "だいすき@", $e4, $2, $0 + db "たいへん@", $ea, $2, $0 + db "たのしい@", $0, $3, $0 + db "たのしすぎ", $2, $3, $0 + db "たべたい@", $8, $3, $0 + db "ダメダメ@", $e, $3, $0 + db "たりない@", $16, $3, $0 + db "ちくしょー", $34, $3, $0 + db "どうしよう", $9e, $3, $0 + db "ドキドキ@", $ac, $3, $0 + db "ナイス@@", $d0, $3, $0 + db "のみたい@", $26, $4, $0 + db "びっくり@", $60, $4, $0 + db "ふあん@@", $74, $4, $0 + db "ふらふら@", $86, $4, $0 + db "ほしい@@", $ae, $4, $0 + db "ボロボロ@", $b8, $4, $0 + db "まだまだ@", $e0, $4, $0 + db "まてない@", $e8, $4, $0 + db "まんぞく@", $f0, $4, $0 + db "みたい@@", $f8, $4, $0 + db "めずらしい", $22, $5, $0 + db "メラメラ@", $2a, $5, $0 + db "やだ@@@", $46, $5, $0 + db "やったー@", $48, $5, $0 + db "やばい@@", $50, $5, $0 + db "やばすぎる", $52, $5, $0 + db "やられた@", $54, $5, $0 + db "やられて@", $56, $5, $0 + db "よかった@", $6e, $5, $0 + db "ラブラブ@", $96, $5, $0 + db "ロマン@@", $a8, $5, $0 + db "ろんがい@", $aa, $5, $0 + db "わから@@", $b4, $5, $0 + db "わかり@@", $b6, $5, $0 + db "わくわく@", $ba, $5, $0 + +.Conditions: ; 11e710 + db "あつい@@", $38, $0, $0 + db "あった@@", $3a, $0, $0 + db "あり@@@", $56, $0, $0 + db "ある@@@", $5e, $0, $0 + db "あわてて@", $6a, $0, $0 + db "いい@@@", $70, $0, $0 + db "いか@@@", $76, $0, $0 + db "イカス@@", $78, $0, $0 + db "いきおい@", $7a, $0, $0 + db "いける@@", $8a, $0, $0 + db "いじょう@", $8c, $0, $0 + db "いそがしい", $90, $0, $0 + db "いっしょに", $9a, $0, $0 + db "いっぱい@", $9c, $0, $0 + db "いない@@", $a0, $0, $0 + db "いや@@@", $a4, $0, $0 + db "いる@@@", $a8, $0, $0 + db "うまい@@", $c0, $0, $0 + db "うまく@@", $c2, $0, $0 + db "おおきい@", $e6, $0, $0 + db "おくれ@@", $f2, $0, $0 + db "おしい@@", $fa, $0, $0 + db "おもしろい", $2c, $1, $0 + db "おもしろく", $2e, $1, $0 + db "かっこいい", $5c, $1, $0 + db "かわいい@", $7e, $1, $0 + db "かんぺき@", $82, $1, $0 + db "けっこう@", $d0, $1, $0 + db "げんき@@", $d8, $1, $0 + db "こわい@@", $6, $2, $0 + db "さいこう@", $14, $2, $0 + db "さむい@@", $26, $2, $0 + db "さわやか@", $2c, $2, $0 + db "しかたない", $38, $2, $0 + db "すごい@@", $96, $2, $0 + db "すごすぎ@", $9c, $2, $0 + db "すてき@@", $a4, $2, $0 + db "たいした@", $e0, $2, $0 + db "だいじょぶ", $e2, $2, $0 + db "たかい@@", $ec, $2, $0 + db "ただしい@", $f8, $2, $0 + db "だめ@@@", $c, $3, $0 + db "ちいさい@", $2c, $3, $0 + db "ちがう@@", $30, $3, $0 + db "つかれ@@", $48, $3, $0 + db "とくい@@", $b0, $3, $0 + db "とまらない", $b6, $3, $0 + db "ない@@@", $ce, $3, $0 + db "なかった@", $d2, $3, $0 + db "なし@@@", $d8, $3, $0 + db "なって@@", $dc, $3, $0 + db "はやい@@", $50, $4, $0 + db "ひかる@@", $5a, $4, $0 + db "ひくい@@", $5c, $4, $0 + db "ひどい@@", $64, $4, $0 + db "ひとりで@", $66, $4, $0 + db "ひま@@@", $68, $4, $0 + db "ふそく@@", $76, $4, $0 + db "へた@@@", $8c, $4, $0 + db "まちがって", $e2, $4, $0 + db "やさしい@", $42, $5, $0 + db "よく@@@", $70, $5, $0 + db "よわって@", $86, $5, $0 + db "らく@@@", $8c, $5, $0 + db "らしい@@", $90, $5, $0 + db "わるい@@", $d4, $5, $0 + +.Life: ; 11e920 + db "アルバイト", $64, $0, $0 + db "うち@@@", $ba, $0, $0 + db "おかね@@", $ee, $0, $0 + db "おこづかい", $f4, $0, $0 + db "おふろ@@", $24, $1, $0 + db "がっこう@", $5e, $1, $0 + db "きねん@@", $92, $1, $0 + db "グループ@", $c6, $1, $0 + db "ゲット@@", $d2, $1, $0 + db "こうかん@", $de, $1, $0 + db "しごと@@", $40, $2, $0 + db "しゅぎょう", $74, $2, $0 + db "じゅぎょう", $76, $2, $0 + db "じゅく@@", $78, $2, $0 + db "しんか@@", $88, $2, $0 + db "ずかん@@", $90, $2, $0 + db "せいかつ@", $ae, $2, $0 + db "せんせい@", $b8, $2, $0 + db "センター@", $ba, $2, $0 + db "タワー@@", $28, $3, $0 + db "つうしん@", $40, $3, $0 + db "テスト@@", $7e, $3, $0 + db "テレビ@@", $8c, $3, $0 + db "でんわ@@", $96, $3, $0 + db "どうぐ@@", $9a, $3, $0 + db "トレード@", $c4, $3, $0 + db "なまえ@@", $e8, $3, $0 + db "ニュース@", $a, $4, $0 + db "にんき@@", $c, $4, $0 + db "パーティー", $2e, $4, $0 + db "べんきょう", $92, $4, $0 + db "マシン@@", $d6, $4, $0 + db "めいし@@", $1e, $5, $0 + db "メッセージ", $26, $5, $0 + db "もようがえ", $3a, $5, $0 + db "ゆめ@@@", $5a, $5, $0 + db "ようちえん", $66, $5, $0 + db "ラジォ@@", $92, $5, $0 + db "ワールド@", $ae, $5, $0 + +.Hobbies: ; 11ea58 + db "アイドル@", $1e, $0, $0 + db "アニメ@@", $4c, $0, $0 + db "うた@@@", $b8, $0, $0 + db "えいが@@", $d0, $0, $0 + db "おかし@@", $ea, $0, $0 + db "おしゃべり", $4, $1, $0 + db "おままごと", $28, $1, $0 + db "おもちゃ@", $30, $1, $0 + db "おんがく@", $38, $1, $0 + db "カード@@", $3e, $1, $0 + db "かいもの@", $46, $1, $0 + db "グルメ@@", $c8, $1, $0 + db "ゲーム@@", $cc, $1, $0 + db "ざっし@@", $1c, $2, $0 + db "さんぽ@@", $34, $2, $0 + db "じてんしゃ", $50, $2, $0 + db "しゅみ@@", $7a, $2, $0 + db "スポーツ@", $a8, $2, $0 + db "ダイエット", $d8, $2, $0 + db "たからもの", $f0, $2, $0 + db "たび@@@", $4, $3, $0 + db "ダンス@@", $2a, $3, $0 + db "つり@@@", $60, $3, $0 + db "デート@@", $6a, $3, $0 + db "でんしゃ@", $92, $3, $0 + db "ぬいぐるみ", $e, $4, $0 + db "パソコン@", $3e, $4, $0 + db "はな@@@", $4c, $4, $0 + db "ヒーロー@", $58, $4, $0 + db "ひるね@@", $6e, $4, $0 + db "ヒロイン@", $70, $4, $0 + db "ぼうけん@", $96, $4, $0 + db "ボード@@", $9a, $4, $0 + db "ボール@@", $9e, $4, $0 + db "ほん@@@", $ba, $4, $0 + db "マンガ@@", $ee, $4, $0 + db "やくそく@", $40, $5, $0 + db "やすみ@@", $44, $5, $0 + db "よてい@@", $74, $5, $0 + +.Actions: ; 11eb90 + db "あう@@@", $20, $0, $0 + db "あきらめ@", $24, $0, $0 + db "あげる@@", $28, $0, $0 + db "あせる@@", $2e, $0, $0 + db "あそび@@", $30, $0, $0 + db "あそぶ@@", $34, $0, $0 + db "あつめ@@", $3e, $0, $0 + db "あるき@@", $60, $0, $0 + db "あるく@@", $62, $0, $0 + db "いく@@@", $7e, $0, $0 + db "いけ@@@", $86, $0, $0 + db "おき@@@", $f0, $0, $0 + db "おこり@@", $f6, $0, $0 + db "おこる@@", $f8, $0, $0 + db "おしえ@@", $fe, $0, $0 + db "おしえて@", $0, $1, $0 + db "おねがい@", $1a, $1, $0 + db "おぼえ@@", $26, $1, $0 + db "かえる@@", $4a, $1, $0 + db "がまん@@", $74, $1, $0 + db "きく@@@", $8c, $1, $0 + db "きたえ@@", $8e, $1, $0 + db "きめ@@@", $a6, $1, $0 + db "くる@@@", $c4, $1, $0 + db "さがし@@", $18, $2, $0 + db "さわぎ@@", $2a, $2, $0 + db "した@@@", $42, $2, $0 + db "しって@@", $4a, $2, $0 + db "して@@@", $4e, $2, $0 + db "しない@@", $52, $2, $0 + db "しまう@@", $60, $2, $0 + db "じまん@@", $66, $2, $0 + db "しらない@", $84, $2, $0 + db "しる@@@", $86, $2, $0 + db "しんじて@", $8a, $2, $0 + db "する@@@", $aa, $2, $0 + db "たべる@@", $a, $3, $0 + db "つかう@@", $42, $3, $0 + db "つかえ@@", $44, $3, $0 + db "つかって@", $46, $3, $0 + db "できない@", $70, $3, $0 + db "できる@@", $72, $3, $0 + db "でない@@", $84, $3, $0 + db "でる@@@", $8a, $3, $0 + db "なげる@@", $d6, $3, $0 + db "なやみ@@", $ea, $3, $0 + db "ねられ@@", $18, $4, $0 + db "ねる@@@", $1a, $4, $0 + db "のがし@@", $24, $4, $0 + db "のむ@@@", $28, $4, $0 + db "はしり@@", $3a, $4, $0 + db "はしる@@", $3c, $4, $0 + db "はたらき@", $40, $4, $0 + db "はたらく@", $42, $4, $0 + db "はまって@", $4e, $4, $0 + db "ぶつけ@@", $7a, $4, $0 + db "ほめ@@@", $b4, $4, $0 + db "みせて@@", $f6, $4, $0 + db "みて@@@", $fc, $4, $0 + db "みる@@@", $2, $5, $0 + db "めざす@@", $20, $5, $0 + db "もって@@", $34, $5, $0 + db "ゆずる@@", $58, $5, $0 + db "ゆるす@@", $5c, $5, $0 + db "ゆるせ@@", $5e, $5, $0 + db "られない@", $9a, $5, $0 + db "られる@@", $9c, $5, $0 + db "わかる@@", $b8, $5, $0 + db "わすれ@@", $c0, $5, $0 + +.Time: ; 11edb8 + db "あき@@@", $22, $0, $0 + db "あさ@@@", $2a, $0, $0 + db "あした@@", $2c, $0, $0 + db "いちにち@", $94, $0, $0 + db "いつか@@", $98, $0, $0 + db "いつも@@", $9e, $0, $0 + db "いま@@@", $a2, $0, $0 + db "えいえん@", $ce, $0, $0 + db "おととい@", $12, $1, $0 + db "おわり@@", $36, $1, $0 + db "かようび@", $78, $1, $0 + db "きのう@@", $94, $1, $0 + db "きょう@@", $b0, $1, $0 + db "きんようび", $b8, $1, $0 + db "げつようび", $d4, $1, $0 + db "このあと@", $f4, $1, $0 + db "このまえ@", $f6, $1, $0 + db "こんど@@", $c, $2, $0 + db "じかん@@", $3c, $2, $0 + db "じゅうねん", $70, $2, $0 + db "すいようび", $8e, $2, $0 + db "スタート@", $9e, $2, $0 + db "ずっと@@", $a2, $2, $0 + db "ストップ@", $a6, $2, $0 + db "そのうち@", $c4, $2, $0 + db "ついに@@", $3e, $3, $0 + db "つぎ@@@", $4a, $3, $0 + db "どようび@", $ba, $3, $0 + db "なつ@@@", $da, $3, $0 + db "にちようび", $6, $4, $0 + db "はじめ@@", $38, $4, $0 + db "はる@@@", $54, $4, $0 + db "ひる@@@", $6c, $4, $0 + db "ふゆ@@@", $84, $4, $0 + db "まいにち@", $c6, $4, $0 + db "もくようび", $30, $5, $0 + db "よなか@@", $76, $5, $0 + db "よる@@@", $7e, $5, $0 + db "らいしゅう", $88, $5, $0 + +.Farewells: ; 11eef0 + db "いたします", $92, $0, $0 + db "おります@", $32, $1, $0 + db "か!?@@", $3c, $1, $0 + db "かい?@@", $44, $1, $0 + db "かしら?@", $50, $1, $0 + db "かな?@@", $6a, $1, $0 + db "かも@@@", $76, $1, $0 + db "くれ@@@", $ca, $1, $0 + db "ございます", $e8, $1, $0 + db "しがち@@", $3a, $2, $0 + db "します@@", $62, $2, $0 + db "じゃ@@@", $6a, $2, $0 + db "じゃん@@", $6e, $2, $0 + db "しよう@@", $7c, $2, $0 + db "ぜ!@@@", $ac, $2, $0 + db "ぞ!@@@", $bc, $2, $0 + db "た@@@@", $d4, $2, $0 + db "だ@@@@", $d6, $2, $0 + db "だからね@", $ee, $2, $0 + db "だぜ@@@", $f4, $2, $0 + db "だった@@", $fa, $2, $0 + db "だね@@@", $fe, $2, $0 + db "だよ@@@", $10, $3, $0 + db "だよねー!", $12, $3, $0 + db "だわ@@@", $26, $3, $0 + db "ッス@@@", $4c, $3, $0 + db "ってかんじ", $52, $3, $0 + db "っぱなし@", $54, $3, $0 + db "つもり@@", $56, $3, $0 + db "ていない@", $64, $3, $0 + db "ている@@", $66, $3, $0 + db "でーす!@", $68, $3, $0 + db "でした@@", $74, $3, $0 + db "でしょ?@", $76, $3, $0 + db "でしょー!", $78, $3, $0 + db "です@@@", $7a, $3, $0 + db "ですか?@", $7c, $3, $0 + db "ですよ@@", $80, $3, $0 + db "ですわ@@", $82, $3, $0 + db "どうなの?", $a4, $3, $0 + db "どうよ?@", $a8, $3, $0 + db "とかいって", $aa, $3, $0 + db "なの@@@", $e0, $3, $0 + db "なのか@@", $e2, $3, $0 + db "なのだ@@", $e4, $3, $0 + db "なのよ@@", $e6, $3, $0 + db "なんだね@", $f2, $3, $0 + db "なんです@", $f8, $3, $0 + db "なんてね@", $fa, $3, $0 + db "ね@@@@", $12, $4, $0 + db "ねー@@@", $14, $4, $0 + db "の@@@@", $1c, $4, $0 + db "の?@@@", $1e, $4, $0 + db "ばっかり@", $44, $4, $0 + db "まーす!@", $c2, $4, $0 + db "ます@@@", $d8, $4, $0 + db "ますわ@@", $da, $4, $0 + db "ません@@", $dc, $4, $0 + db "みたいな@", $fa, $4, $0 + db "よ!@@@", $60, $5, $0 + db "よー@@@", $68, $5, $0 + db "よーん@@", $6c, $5, $0 + db "よね@@@", $78, $5, $0 + db "るよ@@@", $a2, $5, $0 + db "わけ@@@", $bc, $5, $0 + db "わよ!@@", $d2, $5, $0 + +.ThisAndThat: ; 11f100 + db "ああ@@@", $12, $0, $0 + db "あっち@@", $3c, $0, $0 + db "あの@@@", $4e, $0, $0 + db "ありゃ@@", $5c, $0, $0 + db "あれ@@@", $66, $0, $0 + db "あれは@@", $68, $0, $0 + db "あんな@@", $6c, $0, $0 + db "こう@@@", $dc, $1, $0 + db "こっち@@", $ec, $1, $0 + db "この@@@", $f2, $1, $0 + db "こりゃ@@", $fe, $1, $0 + db "これ@@@", $0, $2, $0 + db "これだ!@", $2, $2, $0 + db "これは@@", $4, $2, $0 + db "こんな@@", $e, $2, $0 + db "そう@@@", $be, $2, $0 + db "そっち@@", $c0, $2, $0 + db "その@@@", $c2, $2, $0 + db "そりゃ@@", $c6, $2, $0 + db "それ@@@", $c8, $2, $0 + db "それだ!@", $cc, $2, $0 + db "それは@@", $d0, $2, $0 + db "そんな@@", $d2, $2, $0 + db "どう@@@", $98, $3, $0 + db "どっち@@", $b2, $3, $0 + db "どの@@@", $b4, $3, $0 + db "どりゃ@@", $c0, $3, $0 + db "どれ@@@", $c2, $3, $0 + db "どれを@@", $c8, $3, $0 + db "どんな@@", $ca, $3, $0 + db "なに@@@", $de, $3, $0 + db "なんか@@", $ec, $3, $0 + db "なんだ@@", $f0, $3, $0 + db "なんで@@", $f6, $3, $0 + db "なんなんだ", $0, $4, $0 + db "なんの@@", $2, $4, $0 +; 11f220 + +MobileEZChatData_WordAndPageCounts: +macro_11f220: macro +; parameter: number of words + db \1 +; 12 words per page (0-based indexing) +x = \1 / 12 +if \1 % 12 == 0 +x = x +- 1 +endc + db x +endm + macro_11f220 18 ; 01: Types + macro_11f220 36 ; 02: Greetings + macro_11f220 69 ; 03: People + macro_11f220 69 ; 04: Battle + macro_11f220 66 ; 05: Exclamations + macro_11f220 66 ; 06: Conversation + macro_11f220 69 ; 07: Feelings + macro_11f220 66 ; 08: Conditions + macro_11f220 39 ; 09: Life + macro_11f220 39 ; 0a: Hobbies + macro_11f220 69 ; 0b: Actions + macro_11f220 39 ; 0c: Time + macro_11f220 66 ; 0d: Farewells + macro_11f220 36 ; 0e: ThisAndThat + +EZChat_SortedWords: +; Addresses in WRAM bank 3 where EZChat words beginning +; with the given kana are sorted in memory, and the pre- +; allocated size for each. +; These arrays are expanded dynamically to accomodate +; any Pokemon you've seen that starts with each kana.\ +macro_11f23c: macro + dw x - w3_d000, \1 +x = x + 2 * \1 +endm +x = $d012 + macro_11f23c $2f ; a + macro_11f23c $1e ; i + macro_11f23c $11 ; u + macro_11f23c $09 ; e + macro_11f23c $2e ; o + macro_11f23c $24 ; ka_ga + macro_11f23c $1b ; ki_gi + macro_11f23c $09 ; ku_gu + macro_11f23c $07 ; ke_ge + macro_11f23c $1c ; ko_go + macro_11f23c $12 ; sa_za + macro_11f23c $2b ; shi_ji + macro_11f23c $10 ; su_zu + macro_11f23c $08 ; se_ze + macro_11f23c $0c ; so_zo + macro_11f23c $2c ; ta_da + macro_11f23c $09 ; chi_dhi + macro_11f23c $12 ; tsu_du + macro_11f23c $1b ; te_de + macro_11f23c $1a ; to_do + macro_11f23c $1c ; na + macro_11f23c $05 ; ni + macro_11f23c $02 ; nu + macro_11f23c $05 ; ne + macro_11f23c $07 ; no + macro_11f23c $16 ; ha_ba_pa + macro_11f23c $0e ; hi_bi_pi + macro_11f23c $0c ; fu_bu_pu + macro_11f23c $05 ; he_be_pe + macro_11f23c $16 ; ho_bo_po + macro_11f23c $19 ; ma + macro_11f23c $0e ; mi + macro_11f23c $08 ; mu + macro_11f23c $07 ; me + macro_11f23c $09 ; mo + macro_11f23c $0d ; ya + macro_11f23c $04 ; yu + macro_11f23c $14 ; yo + macro_11f23c $0b ; ra + macro_11f23c $01 ; ri + macro_11f23c $02 ; ru + macro_11f23c $02 ; re + macro_11f23c $02 ; ro + macro_11f23c $15 ; wa +x = $d000 + macro_11f23c $09 ; end +EZChat_SortedWordsEnd: diff --git a/mobile/mobile_12.asm b/mobile/mobile_12.asm new file mode 100755 index 000000000..efe138162 --- /dev/null +++ b/mobile/mobile_12.asm @@ -0,0 +1,1845 @@ +InitMobileProfile: ; 4802f (12:402f) + xor a + set 6, a + ld [wd002], a + ld hl, wd003 + set 0, [hl] + ld a, c + and a + call z, InitCrystalData + call ClearBGPalettes + call Function48d3d + ld a, [wd479] + bit 1, a + jr z, .not_yet_initialized + ld a, [wd003] + set 0, a + set 1, a + set 2, a + set 3, a + ld [wd003], a +.not_yet_initialized + call Function486bf + call LoadFontsExtra + ld de, GFX_488c3 + ld hl, VTiles2 tile $10 + lb bc, BANK(GFX_488c3), 1 + call Request1bpp + ld de, GFX_488cb + ld hl, VTiles2 tile $11 + lb bc, BANK(GFX_488cb), 1 + call Request1bpp + call Function4a3a7 + call ClearBGPalettes + ld a, [wd002] + bit 6, a + jr z, .asm_4808a + call Function48689 + jr .asm_480d7 +.asm_4808a + ld a, $5 + ld [MusicFade], a + ld a, MUSIC_MOBILE_ADAPTER_MENU % $100 + ld [MusicFadeID], a + ld a, MUSIC_MOBILE_ADAPTER_MENU / $100 + ld [MusicFadeID + 1], a + ld c, 20 + call DelayFrames + ld b, $1 + call GetMysteryGift_MobileAdapterLayout + call ClearBGPalettes + hlcoord 0, 0 + ld b, 2 + ld c, 20 + call ClearBox + hlcoord 0, 1 + ld a, $c + ld [hl], a + ld bc, $13 + add hl, bc + ld [hl], a + ld de, MobileProfileString + hlcoord 1, 1 + call PlaceString + hlcoord 0, 2 + ld b, $a + ld c, $12 + call Function48cdc + hlcoord 2, 4 + ld de, MobileString_Gender + call PlaceString +.asm_480d7 + hlcoord 2, 6 + ld de, MobileString_Age + call PlaceString + hlcoord 2, 8 + ld de, MobileString_Address + call PlaceString + hlcoord 2, 10 + ld de, MobileString_ZipCode + call PlaceString + hlcoord 2, 12 + ld de, MobileString_OK + call PlaceString + ld a, [wd002] + bit 6, a + jr nz, .asm_48113 + ld a, [PlayerGender] + ld hl, Strings_484fb + call GetNthString + ld d, h + ld e, l + hlcoord 11, 4 + call PlaceString +.asm_48113 + hlcoord 11, 6 + call Function487ec + ld a, [wd474] + dec a + ld hl, Prefectures + call GetNthString + ld d, h + ld e, l + hlcoord 11, 8 + call PlaceString + hlcoord 11, 10 + call Function489ea + hlcoord 0, 14 + ld b, $2 + ld c, $12 + call TextBox + hlcoord 1, 16 + ld de, MobileString_PersonalInfo + call PlaceString + call Function48187 + call WaitBGMap2 + call SetPalettes + call StaticMenuJoypad + ld hl, wMenuCursorY + ld b, [hl] + push bc + jr asm_4815f + +Function48157: ; 48157 (12:4157) + call ScrollingMenuJoypad + ld hl, wMenuCursorY + ld b, [hl] + push bc +asm_4815f: ; 4815f (12:415f) + bit A_BUTTON_F, a + jp nz, Function4820d + ld b, a + ld a, [wd002] + bit 6, a + jr z, .dont_check_b_button + ld hl, wd479 + bit 1, [hl] + jr z, .dont_check_b_button + bit B_BUTTON_F, b + jr nz, .b_button +.dont_check_b_button + jp Function48272 + +.b_button + call ClearBGPalettes + call Function48d30 + pop bc + call ClearTileMap + ld a, $ff + ret + +Function48187: ; 48187 (12:4187) + ld a, [wd479] + bit 1, a + jr nz, .asm_481f1 + ld a, [wd003] + ld d, a + call Function48725 + jr c, .asm_481a2 + lb bc, 1, 4 + hlcoord 2, 12 + call ClearBox + jr .asm_481ad +.asm_481a2 + push de + hlcoord 2, 12 + ld de, MobileString_OK + call PlaceString + pop de +.asm_481ad + ld a, [wd002] + bit 6, a + jr nz, .asm_481c1 + bit 0, d + jr nz, .asm_481c1 + lb bc, 1, 8 + hlcoord 11, 4 + call ClearBox +.asm_481c1 + bit 1, d + jr nz, .asm_481ce + lb bc, 1, 8 + hlcoord 11, 6 + call ClearBox +.asm_481ce + bit 2, d + jr nz, .asm_481db + lb bc, 2, 8 + hlcoord 11, 7 + call ClearBox +.asm_481db + bit 3, d + jr nz, .asm_481f1 + ld a, [wd479] + bit 0, a + jr nz, .asm_481f8 + lb bc, 1, 8 + hlcoord 11, 10 + call ClearBox + jr .asm_48201 +.asm_481f1 + ld a, [wd479] + bit 0, a + jr nz, .asm_48201 +.asm_481f8 + hlcoord 11, 10 + ld de, .String_TellLater + call PlaceString +.asm_48201 + ret +; 48202 (12:4202) + +.String_TellLater: ; 48202 + db "Tell Later@" +; 4820d + +Function4820d: ; 4820d (12:420d) + call PlaceHollowCursor + ld hl, wMenuCursorY + ld a, [hl] + push af + ld a, [wd002] + bit 6, a + jr z, .asm_4821f + pop af + inc a + push af +.asm_4821f + pop af + cp $1 + jr z, asm_4828d + cp $2 + jp z, Function4876f + cp $3 + jp z, Function48304 + cp $4 + jp z, Function488d3 + ld a, $2 + call MenuClickSound + ld a, [wd002] + bit 6, a + jr z, .asm_4825c + jr .asm_4825c +; 48241 (12:4241) + + hlcoord 1, 15 + ld b, $2 + ld c, $12 + call ClearBox + ld de, MobileString_ProfileChanged + hlcoord 1, 16 + call PlaceString + call WaitBGMap + ld c, 48 + call DelayFrames + +.asm_4825c + call ClearBGPalettes + call Function48d30 + pop bc + call ClearTileMap + ld b, SCGB_DIPLOMA + call GetSGBLayout + ld hl, wd479 + set 1, [hl] + xor a + ret + +Function48272: ; 48272 (12:4272) + jp Function4840c +; 48275 (12:4275) + +MobileString_PersonalInfo: ; 48275 + db "Personal Info@" +; 48283 + +Function48283: ; 48283 (12:4283) + lb bc, 2, 18 + hlcoord 1, 15 + call ClearBox + ret + +asm_4828d: ; 4828d (12:428d) + call Function48283 + hlcoord 1, 16 + ld de, MobileDesc_Gender + call PlaceString + ld hl, MenuDataHeader_0x484f1 + call LoadMenuDataHeader + call Function4873c + hlcoord 11, 2 + ld b, $4 + ld c, $7 + call Function48cdc + hlcoord 13, 4 + ld de, String_484fb + call PlaceString + hlcoord 13, 6 + ld de, String_484ff + call PlaceString + call WaitBGMap + ld a, [PlayerGender] + inc a + ld [wMenuCursorBuffer], a + call StaticMenuJoypad + call PlayClickSFX + call ExitMenu + bit 0, a + jp z, Function4840c + ld hl, wMenuCursorY + ld a, [hl] + ld hl, Strings_484fb + cp $1 + jr z, .asm_482ed +.asm_482e1 + ld a, [hli] + cp $50 + jr nz, .asm_482e1 + ld a, $1 + ld [PlayerGender], a + jr .asm_482f1 +.asm_482ed + xor a + ld [PlayerGender], a +.asm_482f1 + ld d, h + ld e, l + hlcoord 11, 4 + call PlaceString + ld a, [wd003] + set 0, a + ld [wd003], a + jp Function4840c + +Function48304: ; 48304 (12:4304) + call Function48283 + hlcoord 1, 16 + ld de, MobileDesc_Address + call PlaceString + ld hl, MenuDataHeader_0x48504 + call LoadMenuDataHeader + ld hl, MenuDataHeader_0x48513 + call LoadMenuDataHeader + hlcoord 10, 0 + ld b, $c + ld c, $8 + call Function48cdc + ld a, [wMenuCursorBuffer] + ld b, a + ld a, [wMenuScrollPosition] + ld c, a + push bc + ld a, [wd474] + dec a + cp $29 + jr c, .asm_4833f + sub $29 + inc a + ld [wMenuCursorBuffer], a + ld a, $29 +.asm_4833f + ld [wMenuScrollPosition], a + callba Mobile_OpenAndCloseMenu_HDMATransferTileMapAndAttrMap +.asm_48348 + call ScrollingMenu + ld de, $629 + call Function48383 + jr c, .asm_48348 + ld d, a + pop bc + ld a, b + ld [wMenuCursorBuffer], a + ld a, c + ld [wMenuScrollPosition], a + ld a, d + push af + call ExitMenu + call ExitMenu + pop af + ld a, [hJoyPressed] + bit 0, a + jr z, .asm_48377 + call Function483bb + ld a, [wd003] + set 2, a + ld [wd003], a +.asm_48377 + call Function48187 + callba Mobile_OpenAndCloseMenu_HDMATransferTileMapAndAttrMap + jp Function4840c + +Function48383: ; 48383 (12:4383) + push bc + push af + bit 5, a + jr nz, .asm_48390 + bit 4, a + jr nz, .asm_4839f + and a + jr .asm_483b7 +.asm_48390 + ld a, [wMenuScrollPosition] + sub d + ld [wMenuScrollPosition], a + jr nc, .asm_483af + xor a + ld [wMenuScrollPosition], a + jr .asm_483af +.asm_4839f + ld a, [wMenuScrollPosition] + add d + ld [wMenuScrollPosition], a + cp e + jr c, .asm_483af + ld a, e + ld [wMenuScrollPosition], a + jr .asm_483af +.asm_483af + ld hl, wMenuCursorY + ld a, [hl] + ld [wMenuCursorBuffer], a + scf +.asm_483b7 + pop bc + ld a, b + pop bc + ret + +Function483bb: ; 483bb (12:43bb) + ld hl, wScrollingMenuCursorPosition + ld a, [hl] + inc a + ld [wd474], a + dec a + ld b, a + ld hl, Prefectures +.asm_483c8 + and a + jr z, .asm_483d5 +.asm_483cb + ld a, [hli] + cp "@" + jr nz, .asm_483cb + ld a, b + dec a + ld b, a + jr .asm_483c8 +.asm_483d5 + ld d, h + ld e, l + ld b, $2 + ld c, $8 + hlcoord 11, 7 + call ClearBox + hlcoord 11, 8 + call PlaceString + ret +; 483e8 (12:43e8) + +Function483e8: ; 483e8 + push de + ld hl, Prefectures + ld a, [MenuSelection] + cp $ff + jr nz, .asm_483f8 + ld hl, Wakayama ; last string + jr .asm_48405 + +.asm_483f8 + ld d, a + and a + jr z, .asm_48405 +.asm_483fc + ld a, [hli] + cp "@" + jr nz, .asm_483fc + ld a, d + dec a + jr .asm_483f8 + +.asm_48405 + ld d, h + ld e, l + pop hl + call PlaceString + ret +; 4840c + +Function4840c: ; 4840c (12:440c) + call Function48187 + call Function48283 + hlcoord 1, 16 + ld de, MobileString_PersonalInfo + call PlaceString + call Function486bf + pop bc + ld hl, wMenuCursorY + ld [hl], b + ld a, [wd002] + bit 6, a + jr nz, .narrower_box + ld b, 9 + ld c, 1 + hlcoord 1, 4 + call ClearBox + jp Function48157 + +.narrower_box + ld b, 7 + ld c, 1 + hlcoord 1, 6 + call ClearBox + jp Function48157 + +Mobile12_Bin2Dec: ; 48444 (12:4444) + push bc + push af + push de + push hl + ld hl, .DigitStrings +.loop + and a + jr z, .got_string + inc hl + inc hl + dec a + jr .loop +.got_string + ld d, h + ld e, l + pop hl + call PlaceString + pop de + pop af + pop bc + ret +; 4845d (12:445d) + +.DigitStrings: ; 4845d +; 4845d + db "0@" + db "1@" + db "2@" + db "3@" + db "4@" + db "5@" + db "6@" + db "7@" + db "8@" + db "9@" +; 48471 + +MobileProfileString: db " Mobile Profile@" +MobileString_Gender: db "Gender@" +MobileString_Age: db "Age@" +MobileString_Address: db "Address@" +MobileString_ZipCode: db "Zip Code@" +MobileString_OK: db "OK@" +MobileString_ProfileChanged: db "Profile Changed@" +MobileDesc_Gender: db "Boy or girl?@" +MobileDesc_Age: db "How old are you?@" +MobileDesc_Address: db "Where do you live?@" +MobileDesc_ZipCode: db "Your zip code?@" +; 484f1 + +MenuDataHeader_0x484f1: ; 0x484f1 + db $40 ; flags + db 02, 11 ; start coords + db 07, 19 ; end coords + dw MenuData2_0x484f9 + db 1 ; default option +; 0x484f9 + +MenuData2_0x484f9: ; 0x484f9 + db $a0 ; flags + db 2 ; items +Strings_484fb: +String_484fb: db "Boy@" +String_484ff: db "Girl@" +; 0x48504 + +MenuDataHeader_0x48504: ; 0x48504 + db $40 ; flags + db 00, 10 ; start coords + db 17, 19 ; end coords + +MenuDataHeader_0x48509: ; 0x48509 + db $40 ; flags + db 05, 10 ; start coords + db 07, 19 ; end coords + +MenuDataHeader_0x4850e: ; 0x4850e + db $40 ; flags + db 09, 10 ; start coords + db 11, 19 ; end coords + +MenuDataHeader_0x48513: ; 0x48513 + db $40 ; flags + db 01, 11 ; start coords + db 12, 18 ; end coords + dw MenuData2_0x4851b + db 1 ; default option +; 0x4851b + +MenuData2_0x4851b: ; 0x4851b + db $1d ; flags + db 6 ; items + +Unknown_4851d: ; 4851d + db $00, $01, $12, $2b, $45, $12, $e8, $43, $00, $00, $00, $00, $00, $00, $2e, $00, $01, $02, $03, $04 + db $05, $06, $07, $08, $09, $0a, $0b, $0c, $0d, $0e, $0f, $10, $11, $12, $13, $14, $15, $16, $17, $18 + db $19, $1a, $1b, $1c, $1d, $1e, $1f, $20, $21, $22, $23, $24, $25, $26, $27, $28, $29, $2a, $2b, $2c + db $2d, $ff + +Prefectures: +Aichi: db "あいちけん@" ; Aichi +Aomori: db "あおもりけん@" ; Aomori +Akita: db "あきたけん@" ; Akita +Ishikawa: db "いしかわけん@" ; Ishikawa +Ibaraki: db "いばらきけん@" ; Ibaraki +Iwate: db "いわてけん@" ; Iwate +Ehime: db "えひめけん@" ; Ehime +Oita: db "おおいたけん@" ; Oita +Osakafu: db "おおさかふ@" ; Osakafu +Okayama: db "おかやまけん@" ; Okayama +Okinawa: db "おきなわけん@" ; Okinawa +Kagawa: db "かがわけん@" ; Kagawa +Kagoshima: db "かごしまけん@" ; Kagoshima +Kanagawa: db "かながわけん@" ; Kanagawa +Gifu: db "ぎふけん@" ; Gifu +Kyotofu: db "きょうとふ@" ; Kyotofu +Kumamoto: db "くまもとけん@" ; Kumamoto +Gunma: db "ぐんまけん@" ; Gunma +Kochi: db "こうちけん@" ; Kochi +Saitama: db "さいたまけん@" ; Saitama +Saga: db "さがけん@" ; Saga +Shiga: db "しがけん@" ; Shiga +Shizuoka: db "しずおかけん@" ; Shizuoka +Shimane: db "しまねけん@" ; Shimane +Chiba: db "ちばけん@" ; Chiba +Tokyo: db "とうきょうと@" ; Tokyo +Tokushima: db "とくしまけん@" ; Tokushima +Tochigi: db "とちぎけん@" ; Tochigi +Tottori: db "とっとりけん@" ; Tottori +Toyama: db "とやまけん@" ; Toyama +Nagasaki: db "ながさきけん@" ; Nagasaki +Nagano: db "ながのけん@" ; Nagano +Naraken: db "ならけん@" ; Naraken +Niigata: db "にいがたけん@" ; Niigata +Hyogo: db "ひょうごけん@" ; Hyogo +Hiroshima: db "ひろしまけん@" ; Hiroshima +Fukui: db "ふくいけん@" ; Fukui +Fukuoka: db "ふくおかけん@" ; Fukuoka +Fukushima: db "ふくしまけん@" ; Fukushima +Hokkaido: db "ほっかいどう@" ; Hokkaido +Mie: db "みえけん@" ; Mie +Miyagi: db "みやぎけん@" ; Miyagi +Miyazaki: db "みやざきけん@" ; Miyazaki +Yamagata: db "やまがたけん@" ; Yamagata +Yamaguchi: db "やまぐちけん@" ; Yamaguchi +Yamanashi: db "やまなしけん@" ; Yamanashi +Wakayama: db "わかやまけん@" ; Wakayama +; 48689 + +Function48689: ; 48689 (12:4689) + ld c, 7 + call DelayFrames + ld b, $1 + call GetMysteryGift_MobileAdapterLayout + call ClearBGPalettes + hlcoord 0, 0 + ld b, 4 + ld c, SCREEN_WIDTH + call ClearBox + hlcoord 0, 2 + ld a, $c + ld [hl], a + ld bc, SCREEN_WIDTH - 1 + add hl, bc + ld [hl], a + ld de, MobileProfileString + hlcoord 1, 2 + call PlaceString + hlcoord 0, 4 + ld b, $8 + ld c, $12 + call Function48cdc + ret + +Function486bf: ; 486bf (12:46bf) + ld hl, w2DMenuCursorInitY + ld a, [wd002] + bit 6, a + jr nz, .start_at_6 + ld a, 4 + ld [hli], a + jr .got_init_y + +.start_at_6 + ld a, 6 + ld [hli], a +.got_init_y + ld a, 1 + ld [hli], a ; init x + ld a, [wd002] + bit 6, a + jr nz, .check_wd479 + call Function48725 + ld a, 4 + jr nc, .got_num_rows_1 + ld a, 5 +.got_num_rows_1 + ld [hli], a + jr .got_num_rows_2 + +.check_wd479 + ld a, [wd479] + bit 1, a + jr nz, .four_rows + call Function48725 + jr c, .four_rows + ld a, 3 + ld [hli], a + jr .got_num_rows_2 + +.four_rows + ld a, 4 + ld [hli], a +.got_num_rows_2 + ld a, 1 + ld [hli], a ; num cols + ld [hl], $0 ; flags 1 + set 5, [hl] + inc hl + xor a + ld [hli], a ; flags 2 + ld a, $20 + ld [hli], a ; cursor offsets + ld a, A_BUTTON + add D_UP + add D_DOWN + push af + ld a, [wd002] + bit 6, a + jr z, .got_joypad_mask + pop af + add B_BUTTON + push af +.got_joypad_mask + pop af + ld [hli], a + ld a, $1 + ld [hli], a ; cursor y + ld [hli], a ; cursor x + xor a + ld [hli], a ; off char + ld [hli], a ; cursor tile + ld [hli], a ; cursor tile + 1 + ret + +Function48725: ; 48725 (12:4725) +; ld a, [wd003] +; and $f +; cp $f +; jr nz, .clear_carry +; scf +; ret +; .clear_carry +; and a +; ret + + ld a, [wd003] + bit 0, a + jr z, .clear_carry + bit 1, a + jr z, .clear_carry + bit 2, a + jr z, .clear_carry + bit 3, a + jr z, .clear_carry + scf + ret + +.clear_carry + and a + ret + +Function4873c: ; 4873c (12:473c) + ld hl, w2DMenuCursorInitY + ld a, 4 + ld [hli], a + ld a, 12 + ld [hli], a ; init x + ld a, 2 + ld [hli], a ; num rows + ld a, 1 + ld [hli], a ; num cols + ld [hl], $0 ; flags 1 + set 5, [hl] + inc hl + xor a + ld [hli], a ; flags 2 + ln a, 2, 0 + ld [hli], a ; cursor offsets + ld a, A_BUTTON + add B_BUTTON + ld [hli], a ; joypad filter + ; ld a, [PlayerGender] + ; xor 1 + ; inc a + ld a, [PlayerGender] + and a + jr z, .male + ld a, 2 + jr .okay_gender + +.male + ld a, 1 +.okay_gender + ld [hli], a ; cursor y + ld a, $1 + ld [hli], a ; cursor x + xor a + ld [hli], a ; off char + ld [hli], a ; cursor tile + ld [hli], a ; cursor tile + 1 + ret + +Function4876f: ; 4876f (12:476f) + call Function48283 + hlcoord 1, 16 + ld de, MobileDesc_Age + call PlaceString + ld hl, MenuDataHeader_0x48509 + call LoadMenuDataHeader + ld a, [hInMenu] + push af + ld a, $1 + ld [hInMenu], a + hlcoord 10, 5 + ld b, $1 + ld c, $8 + call Function48cdc + call WaitBGMap + ld a, [wd473] + and a + jr z, .asm_487ab + cp $64 + jr z, .asm_487b2 + hlcoord 12, 5 + ld [hl], $10 + hlcoord 12, 7 + ld [hl], $11 + jr .asm_487b7 +.asm_487ab + hlcoord 12, 5 + ld [hl], $10 + jr .asm_487b7 +.asm_487b2 + hlcoord 12, 7 + ld [hl], $11 +.asm_487b7 + hlcoord 11, 6 + call Function487ec + ld c, 10 + call DelayFrames + ld a, [wd473] + push af +.asm_487c6 + call JoyTextDelay + call Function4880e + jr nc, .asm_487c6 + ld a, $1 + call MenuClickSound + pop bc + jr nz, .asm_487da + ld a, b + ld [wd473], a +.asm_487da + ld a, [wd473] + call ExitMenu + hlcoord 11, 6 + call Function487ec + pop af + ld [hInMenu], a + jp Function4840c + +Function487ec: ; 487ec (12:47ec) + push hl + ld de, wd473 + call Function487ff + pop hl +rept 4 + inc hl +endr + ld de, String_4880d + call PlaceString + ret + +Function487ff: ; 487ff (12:47ff) + push hl + ld a, " " + ld [hli], a + ld [hl], a + pop hl + ld b, PRINTNUM_LEADINGZEROS | 1 + ld c, 3 + call PrintNum + ret +; 4880d (12:480d) + +String_4880d: ; 4880d + db "@" +; 4880e + +Function4880e: ; 4880e (12:480e) + ld a, [hJoyPressed] + and A_BUTTON + jp nz, Function488b9 + ld a, [hJoyPressed] + and B_BUTTON + jp nz, Function488b4 + ld hl, hJoyLast + ld a, [hl] + and D_UP + jr nz, .asm_48843 + ld a, [hl] + and D_DOWN + jr nz, .asm_48838 + ld a, [hl] + and D_LEFT + jr nz, .asm_4884f + ld a, [hl] + and D_RIGHT + jr nz, .asm_4885f + call DelayFrame + and a + ret +.asm_48838 + ld hl, wd473 + ld a, [hl] + and a + jr z, .asm_48840 + dec a +.asm_48840 + ld [hl], a + jr .asm_4886f +.asm_48843 + ld hl, wd473 + ld a, [hl] + cp $64 + jr nc, .asm_4884c + inc a +.asm_4884c + ld [hl], a + jr .asm_4886f +.asm_4884f + ld a, [wd473] + cp $5b + jr c, .asm_48858 + ld a, $5a +.asm_48858 + add $a + ld [wd473], a + jr .asm_4886f +.asm_4885f + ld a, [wd473] + cp $a + jr nc, .asm_48868 + ld a, $a +.asm_48868 + sub $a + ld [wd473], a + jr .asm_4886f +.asm_4886f + ld a, [wd473] + and a + jr z, .asm_48887 + cp $64 + jr z, .asm_48898 + jr z, .asm_488a7 + hlcoord 12, 5 + ld [hl], $10 + hlcoord 12, 7 + ld [hl], $11 + jr .asm_488a7 +.asm_48887 + hlcoord 10, 5 + ld b, $1 + ld c, $8 + call Function48cdc + hlcoord 12, 5 + ld [hl], $10 + jr .asm_488a7 +.asm_48898 + hlcoord 10, 5 + ld b, $1 + ld c, $8 + call Function48cdc + hlcoord 12, 7 + ld [hl], $11 +.asm_488a7 + hlcoord 11, 6 + call Function487ec + call WaitBGMap + ld a, $1 + and a + ret + +Function488b4: ; 488b4 (12:48b4) + ld a, $0 + and a + scf + ret + +Function488b9: ; 488b9 (12:48b9) + ld a, [wd003] + set 1, a + ld [wd003], a + scf + ret +; 488c3 (12:48c3) + +GFX_488c3: ; 488c3 +INCBIN "gfx/unknown/up_arrow.2bpp" + +GFX_488cb: ; 488cb +INCBIN "gfx/unknown/down_arrow.2bpp" + +Function488d3: ; 488d3 (12:48d3) + call Function48283 + hlcoord 1, 16 + ld de, MobileDesc_ZipCode + call PlaceString + call Function48a3a + jp c, Function4840c + ld hl, MenuDataHeader_0x4850e + call LoadMenuDataHeader + ld a, [hInMenu] + push af + ld a, $1 + ld [hInMenu], a + hlcoord 10, 9 + ld b, $1 + ld c, $8 + call Function48cdc + ld a, [wd475] + and $f + ld d, $0 + hlcoord 11, 10 + call Function489ea + call WaitBGMap + ld a, [wd475] + ld b, a + ld a, [wd476] + ld c, a + ld a, [wd477] + ld d, a + ld a, [wd478] + ld e, a + push de + push bc + ld d, $0 + ld b, $0 + +asm_48922: ; 48922 (12:4922) + push bc + call JoyTextDelay + ld a, [hJoyDown] + and a + jp z, Function4896e + bit 0, a + jp nz, Function4896e + bit 1, a + jp nz, Function4896e + ld a, [wd002] + and %11001111 + res 7, a + ld [wd002], a + pop bc + inc b + ld a, b + cp $5 + push bc + jr c, .asm_4894c + pop bc + ld b, $4 + push bc +.asm_4894c + pop bc + push bc + ld a, b + cp $4 + jr nz, asm_48972 + ld c, 10 + call DelayFrames + jr asm_48972 +; 4895a (12:495a) + +Function4895a: ; 4895a + ld a, [hJoyPressed] + and a + jr z, .asm_48965 + pop bc + ld b, $1 + push bc + jr asm_48972 + +.asm_48965 + ld a, [hJoyLast] + and a + jr z, asm_48972 + + pop bc + ld b, $1 + push bc + +Function4896e: ; 4896e (12:496e) + pop bc + ld b, $0 + push bc + +asm_48972: ; 48972 (12:4972) + call Function48ab5 + push af + cp $f0 + jr z, .asm_48994 + cp $f + jr nz, .asm_48988 + ld a, [wd002] + set 7, a + and $cf + ld [wd002], a +.asm_48988 + hlcoord 11, 10 + ld b, $0 + ld c, d + add hl, bc + ld b, $3 + call Function48c11 +.asm_48994 + call WaitBGMap + pop af + pop bc + jr nc, asm_48922 + jr nz, .asm_489b1 + pop bc + ld a, b + ld [wd475], a + ld a, c + ld [wd476], a + pop bc + ld a, b + ld [wd477], a + ld a, c + ld [wd478], a + jr .asm_489c5 +.asm_489b1 + push af + ld a, [wd479] + set 0, a + ld [wd479], a + ld a, [wd003] + set 3, a + ld [wd003], a + pop af + pop bc + pop bc +.asm_489c5 + push af + push bc + push de + push hl + ld a, $1 + call MenuClickSound + pop hl + pop de + pop bc + pop af + call ExitMenu + hlcoord 11, 10 + call Function489ea + hlcoord 11, 9 + lb bc, 1, 8 + call ClearBox + pop af + ld [hInMenu], a + jp Function4840c + +Function489ea: ; 489ea (12:49ea) + push de + ld a, [wd475] + and $f + call Mobile12_Bin2Dec + ld a, [wd476] + and $f0 + swap a + inc hl + call Mobile12_Bin2Dec + ld a, [wd476] + and $f + inc hl + call Mobile12_Bin2Dec + inc hl + ld de, String_48a38 + call PlaceString + ld a, [wd477] + and $f0 + swap a + inc hl + call Mobile12_Bin2Dec + ld a, [wd477] + and $f + inc hl + call Mobile12_Bin2Dec + ld a, [wd478] + and $f0 + swap a + inc hl + call Mobile12_Bin2Dec + ld a, [wd478] + and $f + inc hl + call Mobile12_Bin2Dec + pop de + ret +; 48a38 (12:4a38) + +String_48a38: ; 48a38 + db "-@" +; 48a3a + +Function48a3a: ; 48a3a (12:4a3a) + ld hl, MenuDataHeader_0x48a9c + call LoadMenuDataHeader + call Function4873c + ld a, $a + ld [w2DMenuCursorInitY], a + ld a, $b + ld [w2DMenuCursorInitX], a + ld a, $1 + ld [wMenuCursorY], a + hlcoord 10, 8 + ld b, $4 + ld c, $8 + call Function48cdc + hlcoord 12, 10 + ld de, String_48aa1 + call PlaceString + call StaticMenuJoypad + push af + call PlayClickSFX + call ExitMenu + pop af + bit 1, a + jp nz, Function48a9a + ld a, [wMenuCursorY] + cp $1 + jr z, .asm_48a98 + ld a, [wd003] + set 3, a + ld [wd003], a + ld a, [wd479] + res 0, a + ld [wd479], a + xor a + ld bc, $4 + ld hl, wd475 + call ByteFill + jr Function48a9a +.asm_48a98 + and a + ret + +Function48a9a: ; 48a9a (12:4a9a) + scf + ret +; 48a9c (12:4a9c) + +MenuDataHeader_0x48a9c: ; 0x48a9c + db $40 ; flags + db 08, 10 ; start coords + db 13, 19 ; end coord + +String_48aa1: ; 48aa1 + db "Tell Now" + next "Tell Later@" +; 48ab5 + + +Function48ab5: ; 48ab5 (12:4ab5) + ld a, [hJoyPressed] + and A_BUTTON + jp nz, Function48c0f + ld a, [hJoyPressed] + and B_BUTTON + jp nz, Function48c0d + ld a, d + and a + jr z, .asm_48adf + cp $1 + jr z, .asm_48ae7 + cp $2 + jr z, .asm_48af1 + cp $3 + jr z, .asm_48af9 + cp $4 + jr z, .asm_48b03 + cp $5 + jr z, .asm_48b0b + cp $6 + jr .asm_48b15 +.asm_48adf + ld hl, wd475 + ld a, [hl] + and $f + jr .asm_48b1d +.asm_48ae7 + ld hl, wd476 + ld a, [hl] + swap a + or $f0 + jr .asm_48b1d +.asm_48af1 + ld hl, wd476 + ld a, [hl] + and $f + jr .asm_48b1d +.asm_48af9 + ld hl, wd477 + ld a, [hl] + swap a + or $f0 + jr .asm_48b1d +.asm_48b03 + ld hl, wd477 + ld a, [hl] + and $f + jr .asm_48b1d +.asm_48b0b + ld hl, wd478 + ld a, [hl] + swap a + or $f0 + jr .asm_48b1d +.asm_48b15 + ld hl, wd478 + ld a, [hl] + and $f + jr .asm_48b1d +.asm_48b1d + push hl + push af + ld e, $0 + hlcoord 11, 10 + ld a, d +.asm_48b25 + and a + jr z, .asm_48b2c + inc e + dec a + jr .asm_48b25 +.asm_48b2c + ld hl, hJoyLast + ld a, [hl] + and D_UP + jr nz, .asm_48b8d + ld a, [hl] + and D_DOWN + jr nz, .asm_48b55 + ld a, [hl] + and D_LEFT + jp nz, Function48bd7 + ld a, [hl] + and D_RIGHT + jr nz, .asm_48b9d + hlcoord 11, 10 + call Function489ea + ld a, [wd002] + bit 7, a + jr nz, .asm_48b51 +.asm_48b51 + pop bc + pop bc + and a + ret +.asm_48b55 + pop af + ld b, a + and $f + and a + ld a, b + jr nz, .asm_48b61 + and $f0 + add $a +.asm_48b61 + dec a +.asm_48b62 + push de + push af + hlcoord 10, 9 + ld b, $1 + ld c, $8 + call Function48cdc + pop af + pop de + hlcoord 11, 10 + ld b, a + ld a, d + cp $3 + jr c, .asm_48b7a + inc hl +.asm_48b7a + ld a, b + pop hl + bit 7, a + jr z, .asm_48b85 + call Function48c4d + jr .asm_48b88 +.asm_48b85 + call Function48c5a +.asm_48b88 + ld a, $f0 + jp Function48c00 +.asm_48b8d + pop af + ld b, a + and $f + cp $9 + ld a, b + jr c, .asm_48b9a + and $f0 + add $ff +.asm_48b9a + inc a + jr .asm_48b62 +.asm_48b9d + push de + hlcoord 10, 9 + ld b, $1 + ld c, $8 + call Function48cdc + pop de + ld a, d + cp $6 + jr nc, .asm_48baf + inc d +.asm_48baf + pop af + pop hl + ld b, a + ld a, d + cp $6 + ld a, b + jr z, .asm_48bc4 + bit 7, a + jr nz, .asm_48bc4 + inc hl + ld a, [hl] + swap a + and $f + jr asm_48bc7 +.asm_48bc4 + ld a, [hl] + and $f + +asm_48bc7: ; 48bc7 (12:4bc7) + hlcoord 11, 10 + push af + ld a, d + cp $3 + pop bc + ld a, b + jr c, .asm_48bd3 + inc hl +.asm_48bd3 + ld a, $f + jr Function48c00 + +Function48bd7: ; 48bd7 (12:4bd7) + push de + hlcoord 10, 9 + ld b, $1 + ld c, $8 + call Function48cdc + pop de + ld a, d + and a + pop af + pop hl + ld b, a + ld a, d + and a + ld a, b + jr z, .asm_48bf3 + bit 7, a + jr z, .asm_48bf8 + dec d + dec hl +.asm_48bf3 + ld a, [hl] + and $f + jr asm_48bc7 +.asm_48bf8 + dec d + ld a, [hl] + swap a + and $f + jr asm_48bc7 + +Function48c00: ; 48c00 (12:4c00) + push af + hlcoord 11, 10 + call Function489ea + ld a, $1 + and a + pop bc + ld a, b + ret + +Function48c0d: ; 48c0d (12:4c0d) + xor a + and a + +Function48c0f: ; 48c0f (12:4c0f) + scf + ret + +Function48c11: ; 48c11 (12:4c11) + ld a, [wd002] + bit 7, a + jr z, .asm_48c20 + ld a, d + cp $3 + jr c, .asm_48c1e + inc hl +.asm_48c1e + ld [hl], $7f +.asm_48c20 + ld a, [wd002] + swap a + and $3 + inc a + cp b + jr nz, .asm_48c40 + ld a, [wd002] + bit 7, a + jr z, .asm_48c3a + res 7, a + ld [wd002], a + xor a + jr .asm_48c40 +.asm_48c3a + set 7, a + ld [wd002], a + xor a +.asm_48c40 + swap a + ld b, a + ld a, [wd002] + and $cf + or b + ld [wd002], a + ret + +Function48c4d: ; 48c4d (12:4c4d) + swap a + and $f0 + push af + ld a, [hl] + and $f + ld [hl], a + pop af + or [hl] + ld [hl], a + ret + +Function48c5a: ; 48c5a (12:4c5a) + push af + ld a, [hl] + and $f0 + ld [hl], a + pop af + or [hl] + ld [hl], a + ret + +Function48c63: ; 48c63 + ld a, "@" + ld [de], a + ld a, c + cp $30 + jr nc, .asm_48c8c + and a + jr z, .asm_48c8c + dec c + push de + ld h, d + ld l, e + ld a, "@" + ld b, 7 +.asm_48c76 + ld [hli], a + dec b + jr nz, .asm_48c76 + ld hl, Prefectures + ld a, c + call GetNthString +.asm_48c81 + ld a, [hli] + ld [de], a + inc de + ld a, [hl] + cp "@" + jr nz, .asm_48c81 + and a + pop de + ret + +.asm_48c8c + scf + ret +; 48c8e + +Function48c8e: ; 48c8e +; unreferenced + ld hl, $d02a + ld d, h + ld e, l + callba Function48c63 + hlcoord 10, 7 + call PlaceString + call WaitBGMap + ret +; 48ca3 + +Function48ca3: ; 48ca3 + push af + push bc + push de + push hl + ld b, 0 + ld c, 0 + ld d, 0 +.asm_48cad + cp 100 + jr c, .asm_48cb6 + sub 100 + inc b + jr .asm_48cad + +.asm_48cb6 + cp 10 + jr c, .asm_48cbf + sub 10 + inc c + jr .asm_48cb6 + +.asm_48cbf + cp 1 + jr c, .asm_48cc7 + dec a + inc d + jr .asm_48cbf + +.asm_48cc7 + ld a, b + call Mobile12_Bin2Dec + inc hl + ld a, c + call Mobile12_Bin2Dec + inc hl + ld a, d + call Mobile12_Bin2Dec + pop hl + pop de + pop bc + pop af + ret +; 48cda + +Function48cda: ; 48cda (12:4cda) + ld h, d + ld l, e + +Function48cdc: ; 48cdc (12:4cdc) + push bc + push hl + call Function48cfd + pop hl + pop bc + ld de, AttrMap - TileMap + add hl, de + inc b + inc b + inc c + inc c + ld a, $0 +.asm_48ced + push bc + push hl +.asm_48cef + ld [hli], a + dec c + jr nz, .asm_48cef + pop hl + ld de, $14 + add hl, de + pop bc + dec b + jr nz, .asm_48ced + ret + +Function48cfd: ; 48cfd (12:4cfd) + push hl + ld a, $4 + ld [hli], a + inc a + call Function48d2a + inc a + ld [hl], a + pop hl + ld de, $14 + add hl, de +.asm_48d0c + push hl + ld a, $7 + ld [hli], a + ld a, $7f + call Function48d2a + ld [hl], $8 + pop hl + ld de, $14 + add hl, de + dec b + jr nz, .asm_48d0c + ld a, $9 + ld [hli], a + ld a, $a + call Function48d2a + ld [hl], $b + ret + +Function48d2a: ; 48d2a (12:4d2a) + ld d, c +.asm_48d2b + ld [hli], a + dec d + jr nz, .asm_48d2b + ret + +Function48d30: ; 48d30 (12:4d30) + ld hl, wd475 + call Function48d4a + ld hl, wd477 + call Function48d4a + ret + +Function48d3d: ; 48d3d (12:4d3d) + ld hl, wd475 + call Function48d94 + ld hl, wd477 + call Function48d94 + ret + +Function48d4a: ; 48d4a (12:4d4a) + inc hl + ld a, [hl] + ld b, a + and $f + ld c, a + srl b + srl b + srl b + srl b + push bc + ld c, 10 + ld a, b + call SimpleMultiply + pop bc + add c + ld [hld], a + xor a + ld [hMultiplicand + 0], a + ld [hMultiplicand + 1], a + ld a, [hl] + srl a + srl a + srl a + srl a + ld c, 10 + call SimpleMultiply + ld b, a + ld a, [hli] + and $f + add b + ld [hMultiplicand + 2], a + ld a, 100 + ld [hMultiplier], a + call Multiply + ld a, [hProduct + 2] + ld b, a + ld a, [hProduct + 3] + ld c, a + ld e, [hl] + add e + ld c, a + ld a, b + adc $0 + ld b, a + ld a, c + ld [hld], a + ld [hl], b + ret + +Function48d94: ; 48d94 (12:4d94) + xor a + ld [hDividend + 0], a + ld [hDividend + 1], a + ld a, [hli] + ld [hDividend + 0], a + ld a, [hl] + ld [hDividend + 1], a + ld a, 100 + ld [hDivisor], a + ld b, 2 + call Divide + ld a, [hRemainder] + ld c, 10 + call SimpleDivide + sla b + sla b + sla b + sla b + or b + ld [hld], a + ld a, [hQuotient + 2] + ld c, 10 + call SimpleDivide + sla b + sla b + sla b + sla b + or b + ld [hl], a + ret diff --git a/mobile/mobile_12_2.asm b/mobile/mobile_12_2.asm new file mode 100755 index 000000000..37179c122 --- /dev/null +++ b/mobile/mobile_12_2.asm @@ -0,0 +1,936 @@ +MobileCheckOwnMonAnywhere: ; 4a843 +; Like CheckOwnMonAnywhere, but only check for species. +; OT/ID don't matter. + + ld a, [PartyCount] + and a + ret z + + ld d, a + ld e, 0 + ld hl, PartyMon1Species + ld bc, PartyMonOT +.asm_4a851 + call .CheckMatch + ret c + push bc + ld bc, PARTYMON_STRUCT_LENGTH + add hl, bc + pop bc + call .CopyName + dec d + jr nz, .asm_4a851 + ld a, BANK(sBoxCount) + call GetSRAMBank + ld a, [sBoxCount] + and a + jr z, .asm_4a888 + ld d, a + ld hl, sBoxMon1Species + ld bc, sBoxMonOT +.asm_4a873 + call .CheckMatch + jr nc, .asm_4a87c + call CloseSRAM + ret + +.asm_4a87c + push bc + ld bc, BOXMON_STRUCT_LENGTH + add hl, bc + pop bc + call .CopyName + dec d + jr nz, .asm_4a873 + +.asm_4a888 + call CloseSRAM + ld c, 0 +.asm_4a88d + ld a, [wCurBox] + and $f + cp c + jr z, .asm_4a8d1 + ld hl, .BoxAddrs + ld b, 0 + add hl, bc + add hl, bc + add hl, bc + ld a, [hli] + call GetSRAMBank + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [hl] + and a + jr z, .asm_4a8d1 + push bc + push hl + ld de, sBoxMons - sBoxCount + add hl, de + ld d, h + ld e, l + pop hl + push de + ld de, sBoxMonOT - sBoxCount + add hl, de + ld b, h + ld c, l + pop hl + ld d, a +.asm_4a8ba + call .CheckMatch + jr nc, .asm_4a8c4 + pop bc + call CloseSRAM + ret + +.asm_4a8c4 + push bc + ld bc, BOXMON_STRUCT_LENGTH + add hl, bc + pop bc + call .CopyName + dec d + jr nz, .asm_4a8ba + pop bc + +.asm_4a8d1 + inc c + ld a, c + cp NUM_BOXES + jr c, .asm_4a88d + call CloseSRAM + and a + ret +; 4a8dc + +.CheckMatch: ; 4a8dc + push bc + push hl + push de + ld d, b + ld e, c + ld a, [ScriptVar] + ld b, [hl] + cp b + jr nz, .no_match + jr .match + +.no_match + pop de + pop hl + pop bc + and a + ret + +.match + pop de + pop hl + pop bc + scf + ret +; 4a8f4 + +.BoxAddrs: ; 4a8f4 + 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 +; 4a91e + +.CopyName: ; 4a91e + push hl + ld hl, NAME_LENGTH + add hl, bc + ld b, h + ld c, l + pop hl + ret +; 4a927 + +FindItemInPCOrBag: ; 4a927 + ld a, [ScriptVar] + ld [CurItem], a + ld hl, PCItems + call CheckItem + jr c, .found + + ld a, [ScriptVar] + ld [CurItem], a + ld hl, NumItems + call CheckItem + jr c, .found + + xor a + ld [ScriptVar], a + ret + +.found + ld a, 1 + ld [ScriptVar], a + ret +; 4a94e + +Function4a94e: ; 4a94e + call FadeToMenu + ld a, -1 + ld hl, wd002 + ld bc, 3 + call ByteFill + xor a + ld [wd018], a + ld [wd019], a + ld b, SCGB_PACKPALS + call GetSGBLayout + call SetPalettes + call Function4aa22 + jr c, .asm_4a985 + jr z, .asm_4a9a1 + jr .asm_4a97b + +.asm_4a974 + call Function4aa25 + jr c, .asm_4a985 + jr z, .asm_4a9a1 + +.asm_4a97b + call Function4ac58 + ld hl, wd019 + res 1, [hl] + jr .asm_4a974 + +.asm_4a985 + ld a, [wd018] + and a + jr nz, .asm_4a990 + call Function4aba8 + jr c, .asm_4a974 + +.asm_4a990 + call CloseSubmenu + ld hl, wd002 + ld a, -1 + ld bc, 3 + call ByteFill + scf + jr .asm_4a9af + +.asm_4a9a1 + call Function4a9c3 + jr c, .asm_4a9b0 + call Function4a9d7 + jr c, .asm_4a974 + call CloseSubmenu + and a + +.asm_4a9af + ret + +.asm_4a9b0 + ld de, SFX_WRONG + call PlaySFX + ld hl, UnknownText_0x4a9be + call PrintText + jr .asm_4a974 +; 4a9be + +UnknownText_0x4a9be: ; 0x4a9be + ; Pick three #MON for battle. + text_jump UnknownText_0x1c51d7 + db "@" +; 0x4a9c3 + +Function4a9c3: ; 4a9c3 + ld hl, wd002 + ld a, $ff + cp [hl] + jr z, .asm_4a9d5 + inc hl + cp [hl] + jr z, .asm_4a9d5 + inc hl + cp [hl] + jr z, .asm_4a9d5 + and a + ret + +.asm_4a9d5 + scf + ret +; 4a9d7 + +Function4a9d7: ; 4a9d7 + ld a, [wd002] + ld hl, PartyMonNicknames + call GetNick + ld h, d + ld l, e + ld de, EndFlypoint + ld bc, 6 + call CopyBytes + ld a, [wd003] + ld hl, PartyMonNicknames + call GetNick + ld h, d + ld l, e + ld de, wd00c + ld bc, 6 + call CopyBytes + ld a, [wd004] + ld hl, PartyMonNicknames + call GetNick + ld h, d + ld l, e + ld de, wd012 + ld bc, 6 + call CopyBytes + ld hl, UnknownText_0x4aa1d + call PrintText + call YesNoBox + ret +; 4aa1d + +UnknownText_0x4aa1d: ; 0x4aa1d + ; , @ and @ . Use these three? + text_jump UnknownText_0x1c51f4 + db "@" +; 0x4aa22 + +Function4aa22: ; 4aa22 + call ClearBGPalettes + +Function4aa25: ; 4aa25 + callba LoadPartyMenuGFX + callba InitPartyMenuWithCancel + call Function4aad3 + +Function4aa34: ; 4aa34 + ld a, PARTYMENUACTION_MOBILE + ld [PartyMenuActionText], a + callba WritePartyMenuTilemap + xor a + ld [PartyMenuActionText], a + callba PrintPartyMenuText + call Function4aab6 + call WaitBGMap + call SetPalettes + call DelayFrame + call Function4ab1a + jr z, .asm_4aa66 + push af + call Function4aafb + jr c, .asm_4aa67 + call Function4ab06 + jr c, .asm_4aa67 + pop af + +.asm_4aa66 + ret + +.asm_4aa67 + ld hl, wd019 + set 1, [hl] + pop af + ret +; 4aa6e + +Function4aa6e: ; 4aa6e + pop af + ld de, SFX_WRONG + call PlaySFX + call WaitSFX + jr Function4aa34 +; 4aa7a + +Function4aa7a: ; 4aa7a + ld hl, wd002 + ld d, $3 +.loop + ld e, PARTY_LENGTH + ld a, [hli] + push de + push hl + cp -1 + jr z, .done + ld hl, wSpriteAnimationStructs + inc a + ld d, a +.inner_loop + ld a, [hl] + and a + jr z, .next + cp d + jr z, .same_as_d + jr .next + + ld a, $3 + jr .proceed + +.same_as_d + ld a, $2 + +.proceed + push hl + ld c, l + ld b, h + ld hl, $2 + add hl, bc + ld [hl], a + pop hl + +.next + ld bc, $10 + add hl, bc + dec e + jr nz, .inner_loop + pop hl + pop de + dec d + jr nz, .loop + jr .finished + +.done + pop hl + pop de + +.finished + ret +; 4aab6 + +Function4aab6: ; 4aab6 + ld hl, wd002 + ld d, $3 +.loop + ld a, [hli] + cp -1 + jr z, .done + push de + push hl + hlcoord 0, 1 + ld bc, $28 + call AddNTimes + ld [hl], $ec + pop hl + pop de + dec d + jr nz, .loop + +.done + ret +; 4aad3 + +Function4aad3: ; 4aad3 + ld hl, PartyCount + ld a, [hli] + and a + ret z ; Nothing in your party + + ld c, a + xor a + ld [hObjectStructIndexBuffer], a +.loop + push bc + push hl + ld e, 0 + callba LoadMenuMonIcon + ld a, [hObjectStructIndexBuffer] + inc a + ld [hObjectStructIndexBuffer], a + pop hl + pop bc + dec c + jr nz, .loop + + call Function4aa7a + callba PlaySpriteAnimations + ret +; 4aafb + +Function4aafb: ; 4aafb + ld a, [CurPartySpecies] + cp EGG + jr z, .egg + and a + ret + +.egg + scf + ret +; 4ab06 + +Function4ab06: ; 4ab06 + ld a, [CurPartyMon] + ld bc, PARTYMON_STRUCT_LENGTH + ld hl, PartyMon1HP + call AddNTimes + ld a, [hli] + ld b, a + ld a, [hl] + or b + jr nz, .NotFainted + scf + +.NotFainted: + ret +; 4ab1a + +Function4ab1a: ; 4ab1a +.asm_4ab1a + ld a, $fb + ld [wMenuJoypadFilter], a + ld a, $26 + ld [w2DMenuCursorOffsets], a + ld a, $2 + ld [w2DMenuNumCols], a + call Function4adf7 + call StaticMenuJoypad + call Function4abc3 + jr c, .asm_4ab1a + push af + call Function4ab99 + call nc, PlaceHollowCursor + pop af + bit 1, a + jr nz, .asm_4ab6d + ld a, [PartyCount] + inc a + ld b, a + ld a, [wMenuCursorY] + ld [wPartyMenuCursor], a + cp b + jr z, .asm_4ab7e + ld a, [wMenuCursorY] + 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 + ld a, $1 + and a + ret + +.asm_4ab6d + ld a, [wMenuCursorY] + ld [wPartyMenuCursor], a +.asm_4ab73 + ld de, SFX_READ_TEXT_2 + call PlaySFX + call WaitSFX + scf + ret + +.asm_4ab7e + ld a, $1 + ld [wd018], a + ld a, [wMenuCursorX] + cp $2 + jr z, .asm_4ab73 + ld de, SFX_READ_TEXT_2 + call PlaySFX + call WaitSFX + xor a + ld [wd018], a + and a + ret +; 4ab99 + +Function4ab99: ; 4ab99 + bit 1, a + jr z, .asm_4aba6 + ld a, [wd002] + cp $ff + jr z, .asm_4aba6 + scf + ret + +.asm_4aba6 + and a + ret +; 4aba8 + +Function4aba8: ; 4aba8 + ld hl, wd004 + ld a, [hl] + cp $ff + jr nz, .asm_4abbe + dec hl + ld a, [hl] + cp $ff + jr nz, .asm_4abbe + dec hl + ld a, [hl] + cp $ff + jr nz, .asm_4abbe + and a + ret + +.asm_4abbe + ld a, $ff + ld [hl], a + scf + ret +; 4abc3 + +Function4abc3: ; 4abc3 + bit 3, a + jr z, .asm_4abd5 + ld a, [PartyCount] + inc a + ld [wMenuCursorY], a + ld a, $1 + ld [wMenuCursorX], a + jr .asm_4ac29 + +.asm_4abd5 + bit 6, a + jr z, .asm_4abeb + ld a, [wMenuCursorY] + ld [wMenuCursorY], a + and a + jr nz, .asm_4ac29 + ld a, [PartyCount] + inc a + ld [wMenuCursorY], a + jr .asm_4ac29 + +.asm_4abeb + bit 7, a + jr z, .asm_4ac08 + ld a, [wMenuCursorY] + ld [wMenuCursorY], a + ld a, [PartyCount] + inc a + inc a + ld b, a + ld a, [wMenuCursorY] + cp b + jr nz, .asm_4ac29 + ld a, $1 + ld [wMenuCursorY], a + jr .asm_4ac29 + +.asm_4ac08 + bit 4, a + jr nz, .asm_4ac10 + bit 5, a + jr z, .asm_4ac56 + +.asm_4ac10 + ld a, [wMenuCursorY] + ld b, a + ld a, [PartyCount] + inc a + cp b + jr nz, .asm_4ac29 + ld a, [wMenuCursorX] + cp $1 + jr z, .asm_4ac26 + ld a, $1 + jr .asm_4ac29 + +.asm_4ac26 + ld [wMenuCursorX], a + +.asm_4ac29 + hlcoord 0, 1 + lb bc, 13, 1 + call ClearBox + call Function4aab6 + ld a, [PartyCount] + hlcoord 6, 1 +.asm_4ac3b + ld bc, $28 + add hl, bc + dec a + jr nz, .asm_4ac3b + ld [hl], $7f + ld a, [wMenuCursorY] + ld b, a + ld a, [PartyCount] + inc a + cp b + jr z, .asm_4ac54 + ld a, $1 + ld [wMenuCursorX], a + +.asm_4ac54 + scf + ret + +.asm_4ac56 + and a + ret +; 4ac58 + +Function4ac58: ; 4ac58 + lb bc, 2, 18 + hlcoord 1, 15 + call ClearBox + callba FreezeMonIcons + ld hl, MenuDataHeader_0x4aca2 + call LoadMenuDataHeader + ld hl, wd019 + bit 1, [hl] + jr z, .asm_4ac89 + hlcoord 11, 13 + ld b, $3 + ld c, $7 + call TextBox + hlcoord 13, 14 + ld de, String_4ada7 + call PlaceString + jr .asm_4ac96 + +.asm_4ac89 + hlcoord 11, 9 + ld b, $7 + ld c, $7 + call TextBox + call Function4ad68 + +.asm_4ac96 + ld a, $1 + ld [hBGMapMode], a + call Function4acaa + call ExitMenu + and a + ret +; 4aca2 + +MenuDataHeader_0x4aca2: ; 0x4aca2 + db $40 ; flags + db 09, 11 ; start coords + db 17, 19 ; end coords + dw NULL + db 1 ; default option +; 0x4acaa + +Function4acaa: ; 4acaa +.asm_4acaa + ld a, $a0 + ld [wMenuData2Flags], a + ld a, [wd019] + bit 1, a + jr z, .asm_4acc2 + ld a, $2 + ld [wMenuData2Items], a + ld a, $c + ld [wMenuBorderTopCoord], a + jr .asm_4accc + +.asm_4acc2 + ld a, $4 + ld [wMenuData2Items], a + ld a, $8 + ld [wMenuBorderTopCoord], a + +.asm_4accc + ld a, $b + ld [wMenuBorderLeftCoord], a + ld a, $1 + ld [wMenuCursorBuffer], a + call InitVerticalMenuCursor + ld hl, w2DMenuFlags1 + set 6, [hl] + call StaticMenuJoypad + ld de, SFX_READ_TEXT_2 + call PlaySFX + ld a, [hJoyPressed] + bit 0, a + jr nz, .asm_4acf4 + bit 1, a + jr nz, .asm_4acf3 + jr .asm_4acaa + +.asm_4acf3 + ret + +.asm_4acf4 + ld a, [wd019] + bit 1, a + jr nz, .asm_4ad0e + ld a, [wMenuCursorY] + cp $1 + jr z, Function4ad17 + cp $2 + jp z, Function4ad56 + cp $3 + jp z, Function4ad60 + jr .asm_4acf3 + +.asm_4ad0e + ld a, [wMenuCursorY] + cp $1 + jr z, Function4ad56 + jr .asm_4acf3 + +Function4ad17: ; 4ad17 + call Function4adb2 + jr z, .asm_4ad4a + ld hl, wd002 + ld a, $ff + cp [hl] + jr z, .asm_4ad39 + inc hl + cp [hl] + jr z, .asm_4ad39 + inc hl + cp [hl] + jr z, .asm_4ad39 + ld de, SFX_WRONG + call WaitPlaySFX + ld hl, UnknownText_0x4ad51 + call PrintText + ret + +.asm_4ad39 + ld a, [CurPartyMon] + ld [hl], a + call Function4a9c3 + ret c + ld a, [wd019] + set 0, a + ld [wd019], a + ret + +.asm_4ad4a + ld a, $ff + ld [hl], a + call Function4adc2 + ret + +UnknownText_0x4ad51: ; 0x4ad51 + ; Only three #MON may enter. + text_jump UnknownText_0x1c521c + db "@" +; 0x4ad56 + +Function4ad56: ; 4ad56 + callba OpenPartyStats + call WaitBGMap2 + ret +; 4ad60 + +Function4ad60: ; 4ad60 + callba ManagePokemonMoves + ret +; 4ad67 + +Function4ad67: ; 4ad67 + ret +; 4ad68 + +Function4ad68: ; 4ad68 + hlcoord 13, 12 + ld de, String_4ad88 + call PlaceString + call Function4adb2 + jr c, .asm_4ad7e + hlcoord 13, 10 + ld de, String_4ada0 + jr .asm_4ad84 + +.asm_4ad7e + hlcoord 13, 10 + ld de, String_4ad9a + +.asm_4ad84 + call PlaceString + ret +; 4ad88 + +String_4ad88: ; 4ad88 + db "つよさをみる" + next "つかえるわざ" + next "もどる@" +; 4ad9a + +String_4ad9a: ; 4ad9a + db "さんかする@" +; 4ada0 + +String_4ada0: ; 4ada0 + db "さんかしない@" +; 4ada7 + +String_4ada7: ; 4ada7 + db "つよさをみる" + next "もどる@" ; BACK +; 4adb2 + +Function4adb2: ; 4adb2 + ld hl, wd002 + ld a, [CurPartyMon] + cp [hl] + ret z + inc hl + cp [hl] + ret z + inc hl + cp [hl] + ret z + scf + ret +; 4adc2 + +Function4adc2: ; 4adc2 + ld a, [wd002] + cp $ff + jr nz, .skip + ld a, [wd003] + cp $ff + jr nz, .skip2 + ld a, [wd004] + ld [wd002], a + ld a, $ff + ld [wd004], a + jr .skip + +.skip2 + ld [wd002], a + ld a, $ff + ld [wd003], a + +.skip + ld a, [wd003] + cp $ff + ret nz + ld b, a + ld a, [wd004] + ld [wd003], a + ld a, b + ld [wd004], a + ret +; 4adf7 + +Function4adf7: ; 4adf7 + ld a, [wd019] + bit 0, a + ret z + ld a, [PartyCount] + inc a + ld [wMenuCursorY], a + ld a, $1 + ld [wMenuCursorX], a + ld a, [wd019] + res 0, a + ld [wd019], a + ret +; 4ae12 diff --git a/mobile/mobile_22.asm b/mobile/mobile_22.asm new file mode 100644 index 000000000..17b526586 --- /dev/null +++ b/mobile/mobile_22.asm @@ -0,0 +1,4448 @@ + +String_8911c: ; 8911c + db "でんわばんごうが ただしく" ; Phone number is not + next "はいって いません!@" ; entered correctly! +; 89135 + +String_89135: ; 89135 + db "データが かわって いますが" ; The data has changed. + next "かきかえないで やめますか?@" ; Quit anyway? +; 89153 + +String_89153: ; 89153 + db "メッセージは ありません@" ; No message +; 89160 + +OpenSRAMBank4: ; 89160 + push af + ld a, $4 + call GetSRAMBank + pop af + ret +; 89168 + + +Function89168: ; 89168 (22:5168) + ld hl, GameTimerPause + set 7, [hl] + ret + +Function8916e: ; 8916e (22:516e) + ld hl, GameTimerPause + res 7, [hl] + ret + +Function89174: ; 89174 (22:5174) + ld hl, GameTimerPause + bit 7, [hl] + ret + +Function8917a: ; 8917a (22:517a) + ld hl, wd002 + ld bc, $32 + xor a + call ByteFill + ret + +Function89185: ; 89185 (22:5185) +; strcmp(hl, de, c) +; Compares c bytes starting at de and hl and incrementing together until a mismatch is found. +; Preserves hl and de. + push de + push hl +.loop + ld a, [de] + inc de + cp [hl] + jr nz, .done + inc hl + dec c + jr nz, .loop +.done + pop hl + pop de + ret + +Function89193: ; 89193 +; copy(hl, de, 4) +; Copies c bytes from hl to de. +; Preserves hl and de. + push de + push hl +.loop + ld a, [hli] + ld [de], a + inc de + dec c + jr nz, .loop + pop hl + pop de + ret +; 8919e + + +Function8919e: ; 8919e (22:519e) +; Searches for the c'th string starting at de. Returns the pointer in de. + ld a, c + and a + ret z +.loop + ld a, [de] + inc de + cp "@" + jr nz, .loop + dec c + jr nz, .loop + ret + +Function891ab: ; 891ab + call Mobile22_SetBGMapMode1 + callba ReloadMapPart + call Mobile22_SetBGMapMode0 + ret +; 891b8 + +Function891b8: ; 891b8 + call Mobile22_SetBGMapMode0 + hlcoord 0, 0 + ld a, " " + ld bc, SCREEN_WIDTH * SCREEN_HEIGHT + call ByteFill + call DelayFrame + ret +; 891ca + + +Function891ca: ; 891ca (22:51ca) + push bc + call Function891b8 + call WaitBGMap + pop bc + ret + +Function891d3: ; 891d3 (22:51d3) + push bc + call Function891ca + ld c, $10 + call DelayFrames + pop bc + ret + +Function891de: ; 891de + call Mobile22_SetBGMapMode0 + call ClearPalettes + hlcoord 0, 0, AttrMap + ld a, $7 + ld bc, SCREEN_WIDTH * SCREEN_HEIGHT + call ByteFill + hlcoord 0, 0 + ld a, " " + ld bc, SCREEN_WIDTH * SCREEN_HEIGHT + call ByteFill + call Function891ab + ret +; 891fe + +Function891fe: ; 891fe + push bc + call Function891de + ld c, $10 + call DelayFrames + pop bc + ret +; 89209 + +Function89209: ; 89209 + ld a, 1 + ld [wSpriteUpdatesEnabled], a + ret +; 8920f + +Function8920f: ; 8920f + ld a, 0 + ld [wSpriteUpdatesEnabled], a + ret +; 89215 + +Function89215: ; 89215 + push hl + push bc + ld bc, AttrMap - TileMap + add hl, bc + ld [hl], a + pop bc + pop hl + ret +; 8921f + + +Function8921f: ; 8921f (22:521f) + push de + ld de, SCREEN_WIDTH + add hl, de + inc hl + ld a, $7f +.loop + push bc + push hl +.asm_89229 + ld [hli], a + dec c + jr nz, .asm_89229 + pop hl + add hl, de + pop bc + dec b + jr nz, .loop + pop de + ret + +Mobile22_ButtonSound: ; 89235 (22:5235) + call JoyWaitAorB + call PlayClickSFX + ret + +Mobile22_SetBGMapMode0: ; 8923c + xor a + ld [hBGMapMode], a + ret +; 89240 + +Mobile22_SetBGMapMode1: ; 89240 + ld a, $1 + ld [hBGMapMode], a + ret +; 89245 + + +Function89245: ; 89245 (22:5245) + callba TryLoadSaveFile + ret c + callba _LoadData + and a + ret + +Function89254: ; 89254 (22:5254) + ld bc, $d07 + jr Function89261 + +Function89259: ; 89259 + ld bc, $0e07 + jr Function89261 + +Function8925e: ; 8925e + ld bc, $0e0c + +Function89261: ; 89261 + push af + push bc + ld hl, MenuDataHeader_0x892a3 + call CopyMenuDataHeader + pop bc + ld hl, wMenuBorderTopCoord + ld a, c + ld [hli], a + ld a, b + ld [hli], a + ld a, c + add $4 + ld [hli], a + ld a, b + add $5 + ld [hl], a + pop af + ld [wMenuCursorBuffer], a + call PushWindow + call Mobile22_SetBGMapMode0 + call Function89209 + call VerticalMenu + push af + ld c, $a + call DelayFrames + call CloseWindow + call Function8920f + pop af + jr c, .done + ld a, [wMenuCursorY] + cp $2 + jr z, .done + and a + ret + +.done + scf + ret +; 892a3 + +MenuDataHeader_0x892a3: ; 0x892a3 + db $40 ; flags + db 05, 10 ; start coords + db 09, 15 ; end coords + dw MenuData2_0x892ab + db 1 ; default option +; 0x892ab + +MenuData2_0x892ab: ; 0x892ab + db $c0 ; flags + db 2 ; items + db "はい@" + db "いいえ@" +; 0x892b4 + +Function892b4: ; 892b4 (22:52b4) + call Function8931b + +Function892b7: ; 892b7 + ld d, b + ld e, c + ld hl, 0 + add hl, bc + ld a, "@" + ld bc, 6 + call ByteFill + ld b, d + ld c, e + ld hl, 6 + add hl, bc + ld a, "@" + ld bc, 6 + call ByteFill + ld b, d + ld c, e + ld hl, 12 + add hl, bc + xor a + ld [hli], a + ld [hl], a + ld hl, 14 + add hl, bc + ld [hli], a + ld [hl], a + ld hl, 16 + add hl, bc + ld [hl], a + ld hl, 17 + add hl, bc + ld a, -1 + ld bc, 8 + call ByteFill + ld b, d + ld c, e + ld e, 6 + ld hl, 25 + add hl, bc +.loop + ld a, -1 + ld [hli], a + ld a, -1 + ld [hli], a + dec e + jr nz, .loop + ret +; 89305 + + +Function89305: ; 89305 (22:5305) + xor a + ld [MenuSelection], a + ld c, 40 +.loop + ld a, [MenuSelection] + inc a + ld [MenuSelection], a + push bc + call Function892b4 + pop bc + dec c + jr nz, .loop + ret + +Function8931b: ; 8931b + push hl + ld hl, $a03b ; 4:a03b + ld a, [MenuSelection] + dec a + ld bc, 37 + call AddNTimes + ld b, h + ld c, l + pop hl + ret +; 8932d + +Function8932d: ; 8932d + ld hl, 0 + add hl, bc + +Function89331: ; 89331 +; Scans up to 5 characters starting at hl, looking for a nonspace character up to the next terminator. +; Sets carry if it does not find a nonspace character. +; Returns the location of the following character in hl. + push bc + ld c, 5 +.loop + ld a, [hli] + cp "@" + jr z, .terminator + cp " " + jr nz, .nonspace + dec c + jr nz, .loop + +.terminator + scf + jr .done + +.nonspace + and a + +.done + pop bc + ret +; 89346 + + +Function89346: ; 89346 (22:5346) + ld h, b + ld l, c + jr _incave + +Function8934a: ; 8934a + ld hl, 6 + add hl, bc +_incave: +; Scans up to 5 characters starting at hl, looking for a nonspace character up to the next terminator. Sets carry if it does not find a nonspace character. Returns the location of the following character in hl. + push bc + ld c, 5 +.loop + ld a, [hli] + cp "@" + jr z, .terminator + cp " " + jr nz, .nonspace + dec c + jr nz, .loop + +.terminator + scf + jr .done + +.nonspace + and a + +.done + pop bc + ret +; 89363 + +Function89363: ; 89363 +; Scans six byte pairs starting at bc to find $ff. Sets carry if it does not find a $ff. Returns the location of the byte after the first $ff found in hl. + ld h, b + ld l, c + jr ._incave + + ld hl, 25 + add hl, bc + +._incave + push de + ld e, 6 +.loop + ld a, [hli] + cp -1 + jr nz, .ok + ld a, [hli] + cp -1 + jr nz, .ok + dec e + jr nz, .loop + scf + jr .done + +.ok + and a + +.done + pop de + ret +; 89381 + +Function89381: ; 89381 + push bc + push de + call Function89b45 + jr c, .ok + push hl + ld a, -1 + ld bc, 8 + call ByteFill + pop hl + +.ok + pop de + ld c, 8 + call Function89193 + pop bc + ret +; 8939a + +Function8939a: ; 8939a + push bc + ld hl, 0 + add hl, bc + ld de, wd002 + ld c, 6 + call Function89193 + pop bc + ld hl, 17 + add hl, bc + ld de, wd008 + call Function89381 + ret +; 893b3 + + +Function893b3: ; 893b3 (22:53b3) + call DisableLCD + call ClearSprites + call LoadStandardFont + call LoadFontsExtra + call Function893ef + call Function8942b + call Function89455 + call EnableLCD + ret + +Function893cc: ; 893cc + call DisableLCD + call ClearSprites + call LoadStandardFont + call LoadFontsExtra + call Function893ef + call Function89464 + call EnableLCD + ret +; 893e2 + + +Function893e2: ; 893e2 (22:53e2) + call Function89b1e + call Function893b3 + call Function8a5b6 + call Function8949c + ret + +Function893ef: ; 893ef + ld de, VTiles0 + ld hl, GFX_8940b + ld bc, $20 + ld a, BANK(GFX_8940b) + call FarCopyBytes + ret +; 893fe + +Function893fe: ; 893fe + call DisableLCD + call Function893ef + call EnableLCD + call DelayFrame + ret +; 8940b + +GFX_8940b: ; 8940b +INCBIN "gfx/unknown/08940b.2bpp" +; 8942b + +Function8942b: ; 8942b (22:542b) + ld de, VTiles0 tile $02 + ld hl, MobileAdapterGFX + $7d0 + ld bc, $80 + ld a, BANK(MobileAdapterGFX) + call FarCopyBytes + ld de, VTiles0 tile $0a + ld hl, MobileAdapterGFX + $c60 + ld bc, $40 + ld a, BANK(MobileAdapterGFX) + call FarCopyBytes + ret + +Function89448: ; 89448 (22:5448) +; Clears the Sprites array + push af + ld hl, Sprites + ld d, $10 * 6 + xor a +.loop + ld [hli], a + dec d + jr nz, .loop + pop af + ret + +Function89455: ; 89455 (22:5455) + ld hl, MobileAdapterGFX + $7d0 + ld de, VTiles2 tile $0c + ld bc, $490 + ld a, BANK(MobileAdapterGFX) + call FarCopyBytes + ret + +Function89464: ; 89464 + ld hl, MobileAdapterGFX + ld de, VTiles2 + ld bc, $200 + ld a, BANK(MobileAdapterGFX) + call FarCopyBytes + ld hl, MobileAdapterGFX + $660 + ld de, VTiles2 tile $20 + ld bc, $170 + ld a, BANK(MobileAdapterGFX) + call FarCopyBytes + ret +; 89481 + +Function89481: ; 89481 + ld d, 2 + call Function8934a + ret c + ld d, 0 + ld hl, 16 + add hl, bc + bit 0, [hl] + ret z + inc d + ret +; 89492 + + +Function89492: ; 89492 (22:5492) + ld d, 0 + ld a, [PlayerGender] + bit 0, a + ret z + inc d + ret + +Function8949c: ; 8949c + ld a, [rSVBK] + push af + ld a, 5 + ld [rSVBK], a + ld hl, Palette_894b3 + ld de, UnknBGPals + 8 * 7 + ld bc, 8 + call CopyBytes + pop af + ld [rSVBK], a + ret +; 894b3 + +Palette_894b3: ; 894b3 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 00, 00, 00 +; 894bb + +Function894bb: ; 894bb + call Function894dc + push bc + call Function8956f + call Function8949c + call Function8a60d + pop bc + ret +; 894ca + + +Function894ca: ; 894ca (22:54ca) + push bc + call Function894dc + call Function895c7 + call Function8949c + call Function8a60d + call SetPalettes + pop bc + ret + +Function894dc: ; 894dc + push bc + ld a, [rSVBK] + push af + ld a, 5 + ld [rSVBK], a + + ld c, d + ld b, 0 + ld hl, .PalettePointers + add hl, bc + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + ld de, UnknBGPals + ld bc, 3 palettes + call CopyBytes + ld hl, .Pals345 + ld de, UnknBGPals + 3 palettes + ld bc, 3 palettes + call CopyBytes + + pop af + ld [rSVBK], a + pop bc + ret +; 89509 + +.PalettePointers: ; 89509 + dw .Pals012a + dw .Pals012b + dw .Pals012c +; 8950f + +.Pals012a: ; 8950f + RGB 31, 31, 31 + RGB 10, 17, 13 + RGB 10, 08, 22 + RGB 00, 00, 00 + + RGB 31, 31, 31 + RGB 16, 20, 31 + RGB 10, 08, 22 + RGB 00, 00, 00 + + RGB 31, 31, 31 + RGB 16, 20, 31 + RGB 10, 17, 13 + RGB 00, 00, 00 + +.Pals012b: ; 89527 + RGB 31, 31, 31 + RGB 30, 22, 11 + RGB 31, 08, 15 + RGB 00, 00, 00 + + RGB 31, 31, 31 + RGB 16, 20, 31 + RGB 31, 08, 15 + RGB 00, 00, 00 + + RGB 31, 31, 31 + RGB 16, 20, 31 + RGB 30, 22, 11 + RGB 00, 00, 00 + +.Pals012c: ; 8953f + RGB 31, 31, 31 + RGB 15, 20, 26 + RGB 25, 07, 20 + RGB 00, 00, 00 + + RGB 31, 31, 31 + RGB 16, 20, 31 + RGB 25, 07, 20 + RGB 00, 00, 00 + + RGB 31, 31, 31 + RGB 16, 20, 31 + RGB 15, 20, 26 + RGB 00, 00, 00 + +.Pals345: ; 89557 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 13, 00 + RGB 14, 08, 00 + + RGB 31, 31, 31 + RGB 16, 16, 31 + RGB 00, 00, 31 + RGB 00, 00, 00 + + RGB 19, 31, 11 + RGB 00, 00, 00 + RGB 00, 00, 00 + RGB 00, 00, 00 +; 8956f + +Function8956f: ; 8956f + push bc + ld hl, 16 + add hl, bc + ld d, h + ld e, l + ld hl, $000c + add hl, bc + ld b, h + ld c, l + callba GetMobileOTTrainerClass + ld a, c + ld [TrainerClass], a + ld a, [rSVBK] + push af + ld a, 5 + ld [rSVBK], a + ld hl, wd030 + ld a, -1 + ld [hli], a + ld a, " " + ld [hl], a + pop af + ld [rSVBK], a + ld a, [TrainerClass] + ld h, 0 + ld l, a + add hl, hl + add hl, hl + ld de, TrainerPalettes + add hl, de + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + ld de, wd032 + ld c, 4 +.loop + ld a, BANK(TrainerPalettes) + call GetFarByte + ld [de], a + inc de + inc hl + dec c + jr nz, .loop + ld hl, wd036 + xor a + ld [hli], a + ld [hl], a + pop af + ld [rSVBK], a + pop bc + ret +; 895c7 + + +Function895c7: ; 895c7 (22:55c7) + ld a, [rSVBK] + push af + ld a, 5 + ld [rSVBK], a + ld hl, Palette_895de + ld de, wd030 + ld bc, 8 + call CopyBytes + pop af + ld [rSVBK], a + ret +; 895de (22:55de) + +Palette_895de: ; 895de + RGB 31, 31, 31 + RGB 07, 07, 06 + RGB 07, 07, 06 + RGB 00, 00, 00 +; 895e6 + +Function895e6: ; 895e6 + ld a, 7 + hlcoord 0, 0, AttrMap + ld bc, SCREEN_WIDTH * SCREEN_HEIGHT + call ByteFill + ret +; 895f2 + +Function895f2: ; 895f2 + push bc + xor a + hlcoord 0, 0, AttrMap + ld bc, SCREEN_WIDTH * SCREEN_HEIGHT + call ByteFill + call Function89605 + call Function89655 + pop bc + ret +; 89605 + +Function89605: ; 89605 + hlcoord 19, 2, AttrMap + ld a, 1 + ld de, SCREEN_WIDTH + ld c, 14 +.loop + ld [hl], a + dec c + jr z, .done + add hl, de + inc a + ld [hl], a + dec a + add hl, de + dec c + jr nz, .loop + +.done + hlcoord 0, 16, AttrMap + ld c, 10 + ld a, 2 +.loop2 + ld [hli], a + dec a + ld [hli], a + inc a + dec c + jr nz, .loop2 + hlcoord 1, 11, AttrMap + ld a, 4 + ld bc, 4 + call ByteFill + ld a, 5 + ld bc, 14 + call ByteFill + ret +; 8963d + +Function8963d: ; 8963d + hlcoord 12, 3, AttrMap + ld a, 6 + ld de, SCREEN_WIDTH + lb bc, 7, 7 +.loop + push hl + ld c, 7 +.next + ld [hli], a + dec c + jr nz, .next + pop hl + add hl, de + dec b + jr nz, .loop + ret +; 89655 + +Function89655: ; 89655 + hlcoord 1, 12, AttrMap + ld de, SCREEN_WIDTH + ld a, 5 + ld b, 4 +.loop + ld c, 18 + push hl +.next + ld [hli], a + dec c + jr nz, .next + pop hl + add hl, de + dec b + jr nz, .loop + ret +; 8966c + +Function8966c: ; 8966c + push bc + call Function89688 + hlcoord 4, 0 + ld c, 8 + call Function896f5 + pop bc + ret +; 8967a + + +Function8967a: ; 8967a (22:567a) + push bc + call Function89688 + hlcoord 2, 0 + ld c, 12 + call Function896f5 + pop bc + ret + +Function89688: ; 89688 + hlcoord 0, 0 + ld a, 1 + ld e, SCREEN_WIDTH + call Function896e1 + ld a, 2 + ld e, SCREEN_WIDTH + call Function896eb + ld a, 3 + ld [hli], a + ld a, 4 + ld e, SCREEN_HEIGHT + call Function896e1 + ld a, 6 + ld [hli], a + push bc + ld c, 13 +.loop + call Function896cb + dec c + jr z, .done + call Function896d6 + dec c + jr nz, .loop + +.done + pop bc + ld a, 25 + ld [hli], a + ld a, 26 + ld e, SCREEN_HEIGHT + call Function896e1 + ld a, 28 + ld [hli], a + ld a, 2 + ld e, SCREEN_WIDTH + call Function896eb + ret +; 896cb + +Function896cb: ; 896cb + ld de, SCREEN_WIDTH - 1 + ld a, 7 + ld [hl], a + add hl, de + ld a, 9 + ld [hli], a + ret +; 896d6 + +Function896d6: ; 896d6 + ld de, SCREEN_WIDTH - 1 + ld a, 10 + ld [hl], a + add hl, de + ld a, 11 + ld [hli], a + ret +; 896e1 + +Function896e1: ; 896e1 +.loop + ld [hli], a + inc a + dec e + ret z + ld [hli], a + dec a + dec e + jr nz, .loop + ret +; 896eb + +Function896eb: ; 896eb +.loop + ld [hli], a + dec a + dec e + ret z + ld [hli], a + inc a + dec e + jr nz, .loop + ret +; 896f5 + +Function896f5: ; 896f5 + call Function8971f + call Function89736 + inc hl + inc hl + ld b, 2 + +ClearScreenArea: ; 0x896ff +; clears an area of the screen +; INPUT: +; hl = address of upper left corner of the area +; b = height +; c = width + + ld a, " " ; blank tile + ld de, 20 ; screen width +.loop + push bc + push hl +.innerLoop + ld [hli], a + dec c + jr nz, .innerLoop + pop hl + pop bc + add hl, de + dec b + jr nz, .loop + + dec hl + inc c + inc c +.asm_89713 + ld a, $36 + ld [hli], a + dec c + ret z + ld a, $18 + ld [hli], a + dec c + jr nz, .asm_89713 ; 0x8971c $f5 + ret +; 0x8971f + +Function8971f: ; 8971f + ld a, $2c + ld [hli], a + ld a, $2d + ld [hld], a + push hl + ld de, SCREEN_WIDTH + add hl, de + ld a, $31 + ld [hli], a + ld a, $32 + ld [hld], a + add hl, de + ld a, $35 + ld [hl], a + pop hl + ret +; 89736 + +Function89736: ; 89736 + push hl + inc hl + inc hl + ld e, c + ld d, $0 + add hl, de + ld a, $2f + ld [hli], a + ld a, $30 + ld [hld], a + ld de, SCREEN_WIDTH + add hl, de + ld a, $33 + ld [hli], a + ld a, $34 + ld [hl], a + add hl, de + ld a, $1f + ld [hl], a + pop hl + ret +; 89753 + +Function89753: ; 89753 + ld a, $c + ld [hl], a + xor a + call Function89215 + ret +; 8975b + +Function8975b: ; 8975b + ld a, $1d + ld [hli], a + inc a + ld [hli], a + ld a, $d + ld [hl], a + dec hl + dec hl + ld a, $4 + ld e, $3 +.asm_89769 + call Function89215 + inc hl + dec e + jr nz, .asm_89769 + ret +; 89771 + +Function89771: ; 89771 + ld a, $12 + ld [hl], a + ld a, $3 + call Function89215 + ret +; 8977a + +Function8977a: ; 8977a + ld e, $4 + ld d, $13 +.asm_8977e + ld a, d + ld [hl], a + ld a, $4 + call Function89215 + inc hl + inc d + dec e + jr nz, .asm_8977e + ld e, $e +.asm_8978c + ld a, d + ld [hl], a + xor a + call Function89215 + inc hl + dec e + jr nz, .asm_8978c + ret +; 89797 + +Function89797: ; 89797 + push bc + ld a, $e + ld [hl], a + ld bc, SCREEN_WIDTH + add hl, bc + ld a, $11 + ld [hli], a + ld a, $10 + ld c, $8 +.asm_897a6 + ld [hli], a + dec c + jr nz, .asm_897a6 + ld a, $f + ld [hl], a + pop bc + ret +; 897af + +Function897af: ; 897af + push bc + ld hl, $0010 + add hl, bc + ld d, h + ld e, l + ld hl, $000c + add hl, bc + ld b, h + ld c, l + callba GetMobileOTTrainerClass + ld a, c + ld [TrainerClass], a + xor a + ld [CurPartySpecies], a + ld de, VTiles2 tile $37 + callba GetTrainerPic + pop bc + ret +; 897d5 + +Function897d5: ; 897d5 + push bc + call Function8934a + jr nc, .asm_897f3 + hlcoord 12, 3, AttrMap + xor a + ld de, SCREEN_WIDTH + lb bc, 7, 7 +.asm_897e5 + push hl + ld c, $7 +.asm_897e8 + ld [hli], a + dec c + jr nz, .asm_897e8 + pop hl + add hl, de + dec b + jr nz, .asm_897e5 + pop bc + ret + +.asm_897f3 + ld a, $37 + ld [hGraphicStartTile], a + hlcoord 12, 3 + lb bc, 7, 7 + predef PlaceGraphic + call Function8963d + pop bc + ret +; 89807 + + +Function89807: ; 89807 (22:5807) + ld hl, MobileAdapterGFX + $200 + ld a, [PlayerGender] + bit 0, a + jr z, .asm_89814 + ld hl, MobileAdapterGFX + $200 + $230 +.asm_89814 + call DisableLCD + ld de, VTiles2 tile $37 + ld bc, $230 + ld a, BANK(MobileAdapterGFX) + call FarCopyBytes + call EnableLCD + call DelayFrame + ret + +Function89829: ; 89829 (22:5829) + push bc + ld bc, $705 + ld de, $14 + ld a, $37 +.asm_89832 + push bc + push hl +.asm_89834 + ld [hli], a + inc a + dec c + jr nz, .asm_89834 + pop hl + add hl, de + pop bc + dec b + jr nz, .asm_89832 + call Function8963d + pop bc + ret + +Function89844: ; 89844 + call Function89481 + call Function894bb + call Function897af + push bc + call WaitBGMap2 + call SetPalettes + pop bc + ret +; 89856 + +Function89856: ; 89856 + push bc + call Function891b8 + pop bc + call Function895f2 + call Function8966c + call Function899d3 + call Function898aa + call Function898be + call Function898dc + call Function898f3 + push bc + ld bc, wd008 + hlcoord 2, 10 + call Function89975 + pop bc + call Function897d5 + ret +; 8987f + + +Function8987f: ; 8987f (22:587f) + call Function891b8 + call Function895f2 + call Function8967a + call Function899d3 + hlcoord 5, 1 + call Function8999c + hlcoord 13, 3 + call Function89829 + call Function899b2 + hlcoord 5, 5 + call Function899c9 + ld bc, wd008 + hlcoord 2, 10 + call Function89975 + ret + +Function898aa: ; 898aa + ld a, [MenuSelection] + and a + ret z + push bc + hlcoord 6, 1 + ld de, MenuSelection + lb bc, PRINTNUM_LEADINGZEROS | 1, 2 + call PrintNum + pop bc + ret +; 898be + +Function898be: ; 898be + push bc + ld de, wd002 + ld hl, wd002 + call Function89331 + jr nc, .asm_898cd + ld de, String_89116 + +.asm_898cd + hlcoord 9, 1 + ld a, [MenuSelection] + and a + jr nz, .asm_898d7 + dec hl + +.asm_898d7 + call PlaceString + pop bc + ret +; 898dc + +Function898dc: ; 898dc + ld hl, $0006 + add hl, bc + push bc + ld d, h + ld e, l + call Function8934a + jr nc, .asm_898eb + ld de, String_89116 + +.asm_898eb + hlcoord 6, 4 + call PlaceString + pop bc + ret +; 898f3 + +Function898f3: ; 898f3 + push bc + ld hl, $000c + add hl, bc + ld d, h + ld e, l + call Function8934a + jr c, .asm_8990a + hlcoord 5, 5 + lb bc, PRINTNUM_LEADINGZEROS | 2, 5 + call PrintNum + jr .asm_89913 + +.asm_8990a + hlcoord 5, 5 + ld de, String_89116 + call PlaceString + +.asm_89913 + pop bc + ret +; 89915 + +Function89915: ; 89915 + push bc + push hl + ld de, Unknown_89942 + ld c, $8 +.asm_8991c + ld a, [de] + ld [hl], a + ld a, $4 + call Function89215 + inc hl + inc de + dec c + jr nz, .asm_8991c + pop hl + ld b, $4 + ld c, $2b + ld a, $8 + ld de, Unknown_8994a +.asm_89932 + push af + ld a, [de] + cp [hl] + jr nz, .asm_8993b + call Function8994e + inc de + +.asm_8993b + inc hl + pop af + dec a + jr nz, .asm_89932 + pop bc + ret +; 89942 + +Unknown_89942: ; 89942 + db $24, $25, $26, " ", $27, $28, $29, $2a +Unknown_8994a: ; 8994a + db $24, $27, $29, $ff +; 8994e + +Function8994e: ; 8994e + push hl + push de + ld de, SCREEN_WIDTH + ld a, l + sub e + ld l, a + ld a, h + sbc d + ld h, a + ld a, c + ld [hl], a + ld a, b + call Function89215 + pop de + pop hl + ret +; 89962 + +Function89962: ; 89962 + push bc + ld c, $4 + ld b, $20 +.asm_89967 + ld a, b + ld [hl], a + ld a, $4 + call Function89215 + inc hl + inc b + dec c + jr nz, .asm_89967 + pop bc + ret +; 89975 + +Function89975: ; 89975 + push bc + ld e, $8 +.asm_89978 + ld a, [bc] + ld d, a + call Function8998b + swap d + inc hl + ld a, d + call Function8998b + inc bc + inc hl + dec e + jr nz, .asm_89978 + pop bc + ret +; 8998b + +Function8998b: ; 8998b + push bc + and $f + cp $a + jr nc, .asm_89997 + ld c, $f6 + add c + jr .asm_89999 + +.asm_89997 + ld a, $7f + +.asm_89999 + ld [hl], a + pop bc + ret +; 8999c + + +Function8999c: ; 8999c (22:599c) + ld de, PlayerName + call PlaceString + inc bc + ld h, b + ld l, c + ld de, String_899ac + call PlaceString + ret +; 899ac (22:59ac) + +String_899ac: ; 899ac + db "の めいし@" +; 899b2 + +Function899b2: ; 899b2 (22:59b2) + ld bc, PlayerName + call Function89346 + jr c, .asm_899bf + ld de, PlayerName + jr .asm_899c2 +.asm_899bf + ld de, String_89116 +.asm_899c2 + hlcoord 6, 4 + call PlaceString + ret + +Function899c9: ; 899c9 (22:59c9) + ld de, PlayerID + lb bc, PRINTNUM_LEADINGZEROS | 2, 5 + call PrintNum + ret + +Function899d3: ; 899d3 + hlcoord 1, 4 + call Function89753 + hlcoord 2, 5 + call Function8975b + hlcoord 1, 9 + call Function89771 + hlcoord 1, 11 + call Function8977a + hlcoord 1, 5 + call Function89797 + hlcoord 2, 4 + call Function89962 + hlcoord 2, 9 + call Function89915 + ret +; 899fe + +Function899fe: ; 899fe + push bc + push hl + ld hl, $0019 + add hl, bc + ld b, h + ld c, l + pop hl + call Function89a0c + pop bc + ret +; 89a0c + +Function89a0c: ; 89a0c + push hl + call Function89363 + pop hl + jr c, .asm_89a1c + ld d, h + ld e, l + callba Function11c08f + ret + +.asm_89a1c + ld de, String_89153 + call PlaceString + ret +; 89a23 + + +Function89a23: ; 89a23 (22:5a23) + hlcoord 0, 11 + ld b, $4 + ld c, $12 + call Function8921f + ret + +Function89a2e: ; 89a2e (22:5a2e) + hlcoord 11, 12 + ld b, $2 + ld c, $6 + call TextBox + hlcoord 13, 13 + ld de, String_89a4e + call PlaceString + hlcoord 13, 14 + ld de, String_89a53 + call PlaceString + call Function89655 + ret +; 89a4e (22:5a4e) + +String_89a4e: ; 89a4e + db "けってい@" +; 89a53 + +String_89a53: ; 89a53 + db "やめる@" +; 89a57 + +Function89a57: ; 89a57 + call JoyTextDelay_ForcehJoyDown ; joypad + bit D_UP_F, c + jr nz, .d_up + bit D_DOWN_F, c + jr nz, .d_down + bit A_BUTTON_F, c + jr nz, .a_b_button + bit B_BUTTON_F, c + jr nz, .a_b_button + bit START_F, c + jr nz, .start_button + scf + ret + +.a_b_button + ld a, $1 + and a + ret + +.start_button + ld a, $2 + and a + ret + +.d_up + call .MoveCursorUp + call nc, .PlayPocketSwitchSFX + ld a, $0 + ret + +.d_down + call .MoveCursorDown + call nc, .PlayPocketSwitchSFX + ld a, $0 + ret +; 89a8a + +.PlayPocketSwitchSFX: ; 89a8a + push af + ld de, SFX_SWITCH_POCKETS + call PlaySFX + pop af + ret +; 89a93 + +.MoveCursorDown: ; 89a93 + ld d, 40 + ld e, 1 + call .ApplyCursorMovement + ret +; 89a9b + +.MoveCursorUp: ; 89a9b + ld d, 1 + ld e, -1 + call .ApplyCursorMovement + ret +; 89aa3 + +.ApplyCursorMovement: ; 89aa3 + ld a, [MenuSelection] + ld c, a + push bc +.loop + ld a, [MenuSelection] + cp d + jr z, .equal_to_d + add e + jr nz, .not_zero + inc a + +.not_zero + ld [MenuSelection], a + call .Function89ac7 ; BCD conversion of data in SRAM? + jr nc, .loop + call .Function89ae6 ; split [MenuSelection] into [wd030] + [wd031] where [wd030] <= 5 + pop bc + and a + ret + +.equal_to_d + pop bc + ld a, c + ld [MenuSelection], a + scf + ret +; 89ac7 + +.Function89ac7: ; 89ac7 + call OpenSRAMBank4 + call Function8931b + call .Function89ad4 + call CloseSRAM + ret +; 89ad4 + +.Function89ad4: ; 89ad4 + push de + call Function8932d ; find a non-space character within 5 bytes of bc + jr c, .no_nonspace_character + ld hl, 17 + add hl, bc + call Function89b45 + jr c, .finish_decode + +.no_nonspace_character + and a + +.finish_decode + pop de + ret +; 89ae6 + +.Function89ae6: ; 89ae6 + ld hl, wd031 + xor a + ld [hl], a + ld a, [MenuSelection] +.loop2 + cp 6 + jr c, .load_and_ret + sub 5 + ld c, a + ld a, [hl] + add 5 + ld [hl], a + ld a, c + jr .loop2 + +.load_and_ret + ld [wd030], a + ret +; 89b00 + + +Function89b00: ; 89b00 (22:5b00) + callba MG_Mobile_Layout_LoadPals + ret +; 89b07 (22:5b07) + +Function89b07: ; 89b07 + call Mobile22_SetBGMapMode0 + call DelayFrame + callba Function4a3a7 + ret +; 89b14 + +Function89b14: ; 89b14 + call ClearBGPalettes + call Function89b07 + call Function89b00 + ret +; 89b1e + +Function89b1e: ; 89b1e (22:5b1e) + callba Function4a485 + call Function89b00 + ret + +Function89b28: ; 89b28 (22:5b28) + call Function891de + call ClearBGPalettes + call Function893e2 + call Call_ExitMenu + call Function891ab + call SetPalettes + ret + +Function89b3b: ; 89b3b (22:5b3b) + call Mobile22_SetBGMapMode0 + callba Function48cda + ret + +Function89b45: ; 89b45 + ; some sort of decoder? + ; BCD? + push hl + push bc + ld c, $10 + ld e, $0 +.loop + ld a, [hli] + ld b, a + and $f + cp 10 + jr c, .low_nybble_less_than_10 + ld a, c + cp $b + jr nc, .clear_carry + jr .set_carry + +.low_nybble_less_than_10 + dec c + swap b + inc e + ld a, b + and $f + cp 10 + jr c, .high_nybble_less_than_10 + ld a, c + cp $b + jr nc, .clear_carry + jr .set_carry + +.high_nybble_less_than_10 + inc e + dec c + jr nz, .loop + dec e + +.set_carry + scf + jr .finish + +.clear_carry + and a + +.finish + pop bc + pop hl + ret +; 89b78 + + +Function89b78: ; 89b78 (22:5b78) + push bc + ld a, [wd010] + cp $10 + jr c, .asm_89b8c + ld a, e + and a + jr z, .asm_89b89 + ld c, e +.asm_89b85 + inc hl + dec c + jr nz, .asm_89b85 +.asm_89b89 + ld a, $7f + ld [hl], a +.asm_89b8c + ld a, [wd010] + inc a + and $1f + ld [wd010], a + pop bc + ret + +Function89b97: ; 89b97 (22:5b97) + call Function89c34 + jr c, .asm_89ba0 + call Function89448 + ret +.asm_89ba0 + ld a, [wd011] + ld hl, Unknown_89bd8 + and a + jr z, .asm_89bae +.asm_89ba9 + inc hl + inc hl + dec a + jr nz, .asm_89ba9 +.asm_89bae + ld a, [hli] + ld h, [hl] + ld l, a + ld de, Sprites +.asm_89bb4 + ld a, [hli] + cp $ff + ret z + ld c, a + ld b, $0 +.asm_89bbb + push hl + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + add b + ld [de], a + inc de + ld a, $8 + add b + ld b, a + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + ld [de], a + inc de + pop hl + dec c + jr nz, .asm_89bbb + ld b, $0 + ld c, $4 + add hl, bc + jr .asm_89bb4 +; 89bd8 (22:5bd8) + +Unknown_89bd8: ; 89bd8 + dw Unknown_89be0 + dw Unknown_89bf5 + dw Unknown_89c0a + dw Unknown_89c1f +; 89be0 + +Unknown_89be0: ; 89be0 + db $01, $12, $4e, $01, $00 + db $01, $19, $4e, $01, $40 + db $01, $12, $72, $01, $20 + db $01, $19, $72, $01, $60 + db $ff + +Unknown_89bf5: ; 89bf5 + db $01, $60, $16, $01, $00 + db $01, $62, $16, $01, $40 + db $01, $60, $92, $01, $20 + db $01, $62, $92, $01, $60 + db $ff + +Unknown_89c0a: ; 89c0a + db $01, $78, $66, $01, $00 + db $01, $78, $66, $01, $40 + db $01, $78, $92, $01, $20 + db $01, $78, $92, $01, $60 + db $ff + +Unknown_89c1f: ; 89c1f + db $01, $80, $66, $01, $00 + db $01, $80, $66, $01, $40 + db $01, $80, $92, $01, $20 + db $01, $80, $92, $01, $60 + db $ff +; 89c34 + +Function89c34: ; 89c34 (22:5c34) + push bc + ld a, [wd012] + ld c, a + inc a + and $f + ld [wd012], a + ld a, c + cp $8 + pop bc + ret + +Function89c44: ; 89c44 (22:5c44) + call Function89c34 + jr c, .asm_89c4f + push de + call Function89448 + pop de + ret +.asm_89c4f + ld hl, Sprites + push de + ld a, b + ld [hli], a + ld d, $8 + ld a, e + and a + ld a, c + jr z, .asm_89c60 +.asm_89c5c + add d + dec e + jr nz, .asm_89c5c +.asm_89c60 + pop de + ld [hli], a + ld a, d + ld [hli], a + xor a + ld [hli], a + ret + +Function89c67: ; 89c67 (22:5c67) +; menu scrolling? + call JoyTextDelay_ForcehJoyDown ; joypad + ld b, $0 + bit A_BUTTON_F, c + jr z, .not_a_button + ld b, $1 + and a + ret + +.not_a_button + bit B_BUTTON_F, c + jr z, .not_b_button + scf + ret + +.not_b_button + xor a + bit D_UP_F, c + jr z, .not_d_up + ld a, $1 +.not_d_up + bit D_DOWN_F, c + jr z, .not_d_down + ld a, $2 +.not_d_down + bit D_LEFT_F, c + jr z, .not_d_left + ld a, $3 +.not_d_left + bit D_RIGHT_F, c + jr z, .not_d_right + ld a, $4 +.not_d_right + and a + ret z ; no dpad pressed + dec a + ld c, a + ld d, $0 + ld hl, .ScrollData0 + ld a, [wd02f] + and a + jr z, .got_data + ld hl, .ScrollData1 +.got_data + ld a, [wd011] + and a + jr z, .got_row + ld e, $4 +.add_n_times + add hl, de + dec a + jr nz, .add_n_times +.got_row + ld e, c + add hl, de + ld a, [hl] + and a + ret z + dec a + ld [wd011], a + xor a + ld [wd012], a + ret +; 89cbf (22:5cbf) + +.ScrollData0: ; 89cbf + db 0, 2, 0, 0 + db 1, 3, 0, 0 + db 2, 4, 0, 0 + db 3, 0, 0, 0 + +.ScrollData1: ; 89ccf + db 0, 0, 0, 0 + db 0, 3, 0, 0 + db 2, 4, 0, 0 + db 3, 0, 0, 0 +; 89cdf + +Function89cdf: ; 89cdf (22:5cdf) + ld a, $10 + add b + ld b, a + ld a, $8 + add c + ld c, a + ld e, $2 + ld a, $2 + ld hl, Sprites +.asm_89cee + push af + push bc + ld d, $4 +.asm_89cf2 + ld a, b + ld [hli], a + ld a, c + ld [hli], a + ld a, e + ld [hli], a + ld a, $1 + ld [hli], a + ld a, $8 + add c + ld c, a + inc e + dec d + jr nz, .asm_89cf2 + pop bc + ld a, $8 + add b + ld b, a + pop af + dec a + jr nz, .asm_89cee + ret + +Function89d0d: ; 89d0d (22:5d0d) + call Mobile22_SetBGMapMode0 + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + + ld c, 8 + ld de, UnknBGPals +.loop + push bc + ld hl, .Palette1 + ld bc, 1 palettes + call CopyBytes + pop bc + dec c + jr nz, .loop + + ld hl, .Palette2 + ld de, UnknBGPals + 2 palettes + ld bc, 1 palettes + call CopyBytes + + pop af + ld [rSVBK], a + + call SetPalettes + callba PrintMail_ + call Mobile22_SetBGMapMode1 + ld c, 24 + call DelayFrames + call RestartMapMusic + ret +; 89d4e (22:5d4e) + +.Palette1: ; 89d4e + RGB 31, 31, 31 + RGB 19, 19, 19 + RGB 15, 15, 15 + RGB 00, 00, 00 +; 89d56 + +.Palette2: ; 89d56 + RGB 31, 31, 31 + RGB 19, 19, 19 + RGB 19, 19, 19 + RGB 00, 00, 00 +; 89d5e + +Function89d5e: ; 89d5e (22:5d5e) + push af + call CopyMenuDataHeader + pop af + ld [wMenuCursorBuffer], a + call Mobile22_SetBGMapMode0 + call PlaceVerticalMenuItems + call InitVerticalMenuCursor + ld hl, w2DMenuFlags1 + set 7, [hl] + ret + +Function89d75: ; 89d75 (22:5d75) + push hl + call Mobile22_SetBGMapMode0 + call _hl_ + callba Mobile_OpenAndCloseMenu_HDMATransferTileMapAndAttrMap + pop hl + jr asm_89d90 + +Function89d85: ; 89d85 (22:5d85) + push hl + call Mobile22_SetBGMapMode0 + call _hl_ + call CGBOnly_LoadEDTile + pop hl + +asm_89d90: ; 89d90 (22:5d90) + call Mobile22_SetBGMapMode0 + push hl + call _hl_ + call Function89dab + ld a, [wMenuCursorY] + push af + call Function891ab + pop af + pop hl + jr c, .asm_89da9 + jr z, asm_89d90 + scf + ret +.asm_89da9 + and a + ret + +Function89dab: ; 89dab (22:5dab) + call Mobile22_SetBGMapMode0 + callba MobileMenuJoypad + call Mobile22_SetBGMapMode0 + ld a, c + ld hl, wMenuJoypadFilter + and [hl] + ret z + bit 0, a + jr nz, .asm_89dc7 + bit 1, a + jr nz, .asm_89dd9 + xor a + ret +.asm_89dc7 + call PlayClickSFX + ld a, [w2DMenuNumRows] + ld c, a + ld a, [wMenuCursorY] + cp c + jr z, .asm_89dd9 + call PlaceHollowCursor + scf + ret +.asm_89dd9 + call PlayClickSFX + ld a, $1 + and a + ret + +Function89de0: ; 89de0 (22:5de0) + call ClearSprites + call Function89e0a + jr c, .asm_89e00 + ld c, $1 +.asm_89dea + call Function8a31c + jr z, .asm_89dfd + ld a, [wMenuCursorY] + ld c, a + push bc + ld hl, Jumptable_89e04 + ld a, e + dec a + rst JumpTable + pop bc + jr .asm_89dea +.asm_89dfd + call Function891fe +.asm_89e00 + call Function8917a + ret + +Jumptable_89e04: ; 89e04 (22:5e04) + dw Function8a62c + dw Function8a999 + dw Function8ab93 + + +Function89e0a: ; 89e0a (22:5e0a) + call OpenSRAMBank4 + call Function8b3b0 + call CloseSRAM + ld hl, Jumptable_89e18 + rst JumpTable + ret + +Jumptable_89e18: ; 89e18 (22:5e18) + dw Function89e1e + dw Function8a116 + dw Function8a2aa + + +Function89e1e: ; 89e1e (22:5e1e) + call OpenSRAMBank4 + ld bc, $a037 ; 4:a037 + call Function8b36c + call CloseSRAM + xor a + ld [wd02d], a + +asm_89e2e: ; 89e2e (22:5e2e) + ld a, [wd02d] + ld hl, Jumptable_89e3c + rst JumpTable + ret + +Function89e36: ; 89e36 (22:5e36) + ld hl, wd02d + inc [hl] + jr asm_89e2e + +Jumptable_89e3c: ; 89e3c (22:5e3c) + dw Function89e6f + dw Function89fed + dw Function89ff6 + dw Function8a03d + dw Function89eb9 + dw Function89efd + dw Function89fce + dw Function8a04c + dw Function8a055 + dw Function8a0e6 + dw Function8a0ec + dw Function8a0f5 + dw Function89e58 + dw Function89e68 + + +Function89e58: ; 89e58 (22:5e58) + ld a, $1 + call Function8a2fe + call Function891fe + call Function893e2 + call Function89168 + and a + ret + +Function89e68: ; 89e68 (22:5e68) + call Function891fe + ld a, $1 + scf + ret + +Function89e6f: ; 89e6f (22:5e6f) + call Function891de + call Function89245 + call Function89ee1 + call Function89e9a + hlcoord 7, 4 + call Function8a58d + ld a, $5 + hlcoord 7, 4, AttrMap + call Function8a5a3 + ld a, $6 + hlcoord 10, 4, AttrMap + call Function8a5a3 + call Function891ab + call SetPalettes + jp Function89e36 + +Function89e9a: ; 89e9a (22:5e9a) + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + ld hl, Palette_89eb1 + ld de, UnknBGPals + 5 palettes + ld bc, 1 palettes + call CopyBytes + pop af + ld [rSVBK], a + ret +; 89eb1 (22:5eb1) + +Palette_89eb1: ; 89eb1 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 27, 19, 00 + RGB 00, 00, 00 +; 89eb9 + +Function89eb9: ; 89eb9 (22:5eb9) + call Function891fe + call Function89ee1 + call Function89e9a + hlcoord 7, 4 + call Function8a58d + ld a, $5 + hlcoord 7, 4, AttrMap + call Function8a5a3 + ld a, $6 + hlcoord 10, 4, AttrMap + call Function8a5a3 + call Function891ab + call SetPalettes + jp Function89e36 + +Function89ee1: ; 89ee1 (22:5ee1) + call ClearBGPalettes + call Function893e2 + call Mobile22_SetBGMapMode0 + callba Function4a3a7 + callba MG_Mobile_Layout_CreatePalBoxes + hlcoord 1, 0 + call Function8a53d + ret + +Function89efd: ; 89efd (22:5efd) + ld hl, wd012 + ld a, $ff + ld [hli], a + xor a +rept 4 + ld [hli], a +endr + ld [hl], a +.asm_89f09 + ld hl, wd012 + inc [hl] + ld a, [hli] + and $3 + jr nz, .asm_89f2e + ld a, [hl] + cp $4 + jr nc, .asm_89f2e + ld b, $32 + inc [hl] + ld a, [hl] + dec a + jr z, .asm_89f26 + ld c, a +.asm_89f1f + ld a, $b + add b + ld b, a + dec c + jr nz, .asm_89f1f +.asm_89f26 + ld c, $e8 + ld a, [wd013] + call Function89fa5 +.asm_89f2e + ld a, [wd013] + and a + jr z, .asm_89f58 +.asm_89f34 + call Function89f6a + ld e, a + ld a, c + cp $a8 + jr nc, .asm_89f4d + cp $46 + jr c, .asm_89f4d + ld d, $0 + dec e + ld hl, wd014 + add hl, de + set 0, [hl] + inc e + jr .asm_89f51 +.asm_89f4d + ld a, $2 + add c + ld c, a +.asm_89f51 + ld a, e + call Function89f77 + dec a + jr nz, .asm_89f34 +.asm_89f58 + call DelayFrame + ld hl, wd014 + ld c, $4 +.asm_89f60 + ld a, [hli] + and a + jr z, .asm_89f09 + dec c + jr nz, .asm_89f60 + jp Function89e36 + +Function89f6a: ; 89f6a (22:5f6a) + push af + ld de, $10 + call Function89f9a + ld a, [hli] + ld b, a + ld a, [hl] + ld c, a + pop af + ret + +Function89f77: ; 89f77 (22:5f77) + push af + ld de, $10 + call Function89f9a + ld d, $2 +.asm_89f80 + push bc + ld e, $2 +.asm_89f83 + ld a, b + ld [hli], a + ld a, c + ld [hli], a + inc hl + inc hl + ld a, $8 + add c + ld c, a + dec e + jr nz, .asm_89f83 + pop bc + ld a, $8 + add b + ld b, a + dec d + jr nz, .asm_89f80 + pop af + ret + +Function89f9a: ; 89f9a (22:5f9a) + dec a + ld hl, Sprites + and a + ret z +.asm_89fa0 + add hl, de + dec a + jr nz, .asm_89fa0 + ret + +Function89fa5: ; 89fa5 (22:5fa5) + ld de, $10 + call Function89f9a + ld e, $2 + ld d, $a +.asm_89faf + push bc + ld a, $2 +.asm_89fb2 + push af + ld a, b + ld [hli], a + ld a, c + ld [hli], a + ld a, d + inc d + ld [hli], a + ld a, $1 + ld [hli], a + ld a, $8 + add c + ld c, a + pop af + dec a + jr nz, .asm_89fb2 + pop bc + ld a, $8 + add b + ld b, a + dec e + jr nz, .asm_89faf + ret + +Function89fce: ; 89fce (22:5fce) + call Function8a5b6 + ld a, $5 + hlcoord 7, 4, AttrMap + call Function8a5a3 + ld a, $6 + hlcoord 10, 4, AttrMap + call Function8a5a3 + call Function89448 + call SetPalettes + call Function891ab + jp Function89e36 + +Function89fed: ; 89fed (22:5fed) + ld hl, UnknownText_0x8a102 + call PrintText + jp Function89e36 + +Function89ff6: ; 89ff6 (22:5ff6) + call Function891fe + call ClearBGPalettes + call Function893cc + call Function89807 + call Function89492 + call Function894ca + call OpenSRAMBank4 + ld hl, $a603 + ld a, -1 + ld bc, 8 + call ByteFill + ld hl, $a603 + ld de, wd008 + call Function89381 + call CloseSRAM + call Function8987f + call OpenSRAMBank4 + hlcoord 1, 13 + ld bc, $a007 + call Function89a0c + call CloseSRAM + call Function891ab + call Mobile22_ButtonSound + jp Function89e36 + +Function8a03d: ; 8a03d (22:603d) + ld hl, UnknownText_0x8a107 + call Function89209 + call PrintText + call Function8920f + jp Function89e36 + +Function8a04c: ; 8a04c (22:604c) + ld hl, UnknownText_0x8a10c + call PrintText + jp Function89e36 + +Function8a055: ; 8a055 (22:6055) + ld c, $7 + ld b, $4 +.asm_8a059 + call Function8a0a1 + inc c + call Function8a0c9 + push bc + call Function8a58d + pop bc + call Function8a0de + push bc + push hl + ld a, $5 + call Function8a5a3 + pop hl + inc hl + inc hl + inc hl + ld a, $6 + call Function8a5a3 + call CGBOnly_LoadEDTile + pop bc + ld a, c + cp $b + jr nz, .asm_8a059 + call Function8a0a1 + hlcoord 12, 4 + call Function8a58d + ld a, $5 + hlcoord 12, 4, AttrMap + call Function8a5a3 + pop hl + ld a, $6 + hlcoord 15, 4, AttrMap + call Function8a5a3 + call CGBOnly_LoadEDTile + jp Function89e36 + +Function8a0a1: ; 8a0a1 (22:60a1) + call Mobile22_SetBGMapMode0 + push bc + call Function8a0c9 + ld e, $6 +.asm_8a0aa + push hl + ld bc, $6 + add hl, bc + ld d, [hl] + call Function8a0c1 + pop hl + ld [hl], d + call Function89215 + ld bc, $14 + add hl, bc + dec e + jr nz, .asm_8a0aa + pop bc + ret + +Function8a0c1: ; 8a0c1 (22:60c1) + push hl + ld bc, AttrMap - TileMap + add hl, bc + ld a, [hl] + pop hl + ret + +Function8a0c9: ; 8a0c9 (22:60c9) + push bc + hlcoord 0, 0 + ld de, $14 + ld a, b + and a + jr z, .asm_8a0d8 +.asm_8a0d4 + add hl, de + dec b + jr nz, .asm_8a0d4 +.asm_8a0d8 + ld d, $0 + ld e, c + add hl, de + pop bc + ret + +Function8a0de: ; 8a0de (22:60de) + call Function8a0c9 + ld de, AttrMap - TileMap + add hl, de + ret + +Function8a0e6: ; 8a0e6 (22:60e6) + call Function8b539 + jp Function89e36 + +Function8a0ec: ; 8a0ec (22:60ec) + ld hl, UnknownText_0x8a111 + call PrintText + jp Function89e36 + +Function8a0f5: ; 8a0f5 (22:60f5) + call Function8b555 + jp nc, Function8a0ff + ld hl, wd02d + inc [hl] + +Function8a0ff: ; 8a0ff (22:60ff) + jp Function89e36 +; 8a102 (22:6102) + +UnknownText_0x8a102: ; 0x8a102 + ; The CARD FOLDER stores your and your friends' CARDS. A CARD contains information like the person's name, phone number and profile. + text_jump UnknownText_0x1c5238 + db "@" +; 0x8a107 + +UnknownText_0x8a107: ; 0x8a107 + ; This is your CARD. Once you've entered your phone number, you can trade CARDS with your friends. + text_jump UnknownText_0x1c52bc + db "@" +; 0x8a10c + +UnknownText_0x8a10c: ; 0x8a10c + ; If you have your friend's CARD, you can use it to make a call from a mobile phone on the 2nd floor of a #MON CENTER. + text_jump UnknownText_0x1c531e + db "@" +; 0x8a111 + +UnknownText_0x8a111: ; 0x8a111 + ; To safely store your collection of CARDS, you must set a PASSCODE for your CARD FOLDER. + text_jump UnknownText_0x1c5394 + db "@" +; 0x8a116 + +Function8a116: ; 8a116 (22:6116) + ld a, $1 + ld [wd030], a + ld hl, MenuDataHeader_0x8a176 + call LoadMenuDataHeader +.asm_8a121 + call Mobile22_SetBGMapMode0 + call Function8a17b + jr c, .asm_8a16b + ld a, [wMenuCursorY] + ld [wd030], a + dec d + jr z, .asm_8a140 + call Function8a20d + jr c, .asm_8a121 + xor a + call Function8a2fe + call Function8916e + jr .asm_8a16b +.asm_8a140 + call Function89174 + jr nz, .asm_8a14c + call Function8a241 + jr c, .asm_8a121 + jr .asm_8a15a +.asm_8a14c + call WaitSFX + ld de, SFX_TWINKLE + call PlaySFX + ld c, $10 + call DelayFrames +.asm_8a15a + call ExitMenu + call Function891de + call Function893e2 + call Function89245 + call Function89168 + and a + ret +.asm_8a16b + call Function89209 + call CloseWindow + call Function8920f + scf + ret +; 8a176 (22:6176) + +MenuDataHeader_0x8a176: ; 0x8a176 + db $40 ; flags + db 00, 14 ; start coords + db 06, 19 ; end coords +; 8a17b + +Function8a17b: ; 8a17b (22:617b) + decoord 14, 0 + ld b, $5 + ld c, $4 + call Function89b3b + ld hl, MenuDataHeader_0x8a19a + ld a, [wd030] + call Function89d5e + ld hl, Function8a1b0 + call Function89d75 + jr nc, .asm_8a198 + ld a, $0 +.asm_8a198 + ld d, a + ret +; 8a19a (22:619a) + +MenuDataHeader_0x8a19a: ; 0x8a19a + db $40 ; flags + db 00, 14 ; start coords + db 06, 19 ; end coords + dw MenuData2_0x8a1a2 + db 1 ; default option +; 0x8a1a2 + +MenuData2_0x8a1a2: ; 0x8a1a2 + db $e0 ; flags + db 3 ; items + db "ひらく@" + db "すてる@" + db "もどる@" +; 0x8a1b0 + +Function8a1b0: ; 8a1b0 + hlcoord 0, 12 + ld b, $4 + ld c, $12 + call TextBox + hlcoord 1, 14 + ld a, [wMenuCursorY] + ld de, Strings_8a1cc + dec a + ld c, a + call Function8919e + call PlaceString + ret +; 8a1cc + +Strings_8a1cc: ; 8a1cc + db "めいし", $25, "せいりと へんしゅうを" + next "おこないます" + db "@" + + db "めいしフ,ルダー", $25, "めいしと" + next "あんしょうばんごう", $1f, "けします" + db "@" + + db "まえ", $25, "がめん", $1d, "もどります" + db "@" +; 8a20d + + +Function8a20d: ; 8a20d (22:620d) + ld hl, UnknownText_0x8a232 + call PrintText + ld a, $2 + call Function89259 + ret c + ld hl, UnknownText_0x8a237 + call PrintText + ld a, $2 + call Function89259 + ret c + xor a + call Function8a2fe + ld hl, UnknownText_0x8a23c + call PrintText + xor a + and a + ret +; 8a232 (22:6232) + +UnknownText_0x8a232: ; 0x8a232 + ; If the CARD FOLDER is deleted, all its CARDS and the PASSCODE will also be deleted. Beware--a deleted CARD FOLDER can't be restored. Want to delete your CARD FOLDER? + text_jump UnknownText_0x1c53ee + db "@" +; 0x8a237 + +UnknownText_0x8a237: ; 0x8a237 + ; Are you sure you want to delete it? + text_jump UnknownText_0x1c5494 + db "@" +; 0x8a23c + +UnknownText_0x8a23c: ; 0x8a23c + ; The CARD FOLDER has been deleted. + text_jump UnknownText_0x1c54b9 + db "@" +; 0x8a241 + +Function8a241: ; 8a241 (22:6241) + call LoadStandardMenuDataHeader + call Function891fe + call Function8a262 + jr nc, .asm_8a254 + call Function891fe + call Function89b28 + scf + ret +.asm_8a254 + call Function891de + call ClearBGPalettes + call Call_ExitMenu + call Function891de + and a + ret + +Function8a262: ; 8a262 (22:6262) + call ClearBGPalettes + call Function893e2 + call Mobile22_SetBGMapMode0 + callba Function4a3a7 + callba MG_Mobile_Layout_CreatePalBoxes + hlcoord 1, 0 + call Function8a53d + hlcoord 12, 4 + call Function8a58d + ld a, $5 + hlcoord 12, 4, AttrMap + call Function8a5a3 + ld a, $6 + hlcoord 15, 4, AttrMap + call Function8a5a3 + xor a + ld [wd02e], a + ld bc, wd013 + call Function8b36c + call Function8b493 + call Function891ab + call SetPalettes + call Function8b5e7 + ret + +Function8a2aa: ; 8a2aa (22:62aa) + ld hl, MenuDataHeader_0x8a2ef + call LoadMenuDataHeader + ld hl, UnknownText_0x8a2f4 + call PrintText + ld a, $1 + call Function89259 + jr nc, .asm_8a2cf + ld hl, UnknownText_0x8a2f9 + call PrintText + ld a, $2 + call Function89259 + jr c, .asm_8a2ea + call Function8a20d + jr .asm_8a2ea +.asm_8a2cf + call ExitMenu + call Function8a241 + jr c, .asm_8a2ed + ld a, $1 + call Function8a313 + call CloseSRAM + call Function891de + call Function89245 + call Function89168 + and a + ret +.asm_8a2ea + call CloseWindow +.asm_8a2ed + scf + ret +; 8a2ef (22:62ef) + +MenuDataHeader_0x8a2ef: ; 0x8a2ef + db $40 ; flags + db 12, 00 ; start coords + db 17, 19 ; end coords +; 8a2f4 + +UnknownText_0x8a2f4: ; 0x8a2f4 + ; There is an older CARD FOLDER from a previous journey. Do you want to open it? + text_jump UnknownText_0x1c54dd + db "@" +; 0x8a2f9 + +UnknownText_0x8a2f9: ; 0x8a2f9 + ; Delete the old CARD FOLDER? + text_jump UnknownText_0x1c552d + db "@" +; 0x8a2fe + +Function8a2fe: ; 8a2fe (22:62fe) + call Function8a313 + call Function89305 + ld hl, $a603 + ld bc, $8 + ld a, -1 + call ByteFill + call CloseSRAM + ret + +Function8a313: ; 8a313 (22:6313) + ld c, a + call OpenSRAMBank4 + ld a, c + ld [$a60b], a + ret + +Function8a31c: ; 8a31c (22:631c) + push bc + call Mobile22_SetBGMapMode0 + callba Function4a3a7 + callba MG_Mobile_Layout_CreatePalBoxes + hlcoord 1, 0 + call Function8a53d + hlcoord 12, 4 + call Function8a58d + call Function8a3b2 + pop bc + ld a, c + ld [wMenuCursorBuffer], a + ld [MenuSelection], a + call PlaceVerticalMenuItems + call InitVerticalMenuCursor + ld hl, w2DMenuFlags1 + set 7, [hl] +.asm_8a34e + call Function8a3a2 + call Mobile22_SetBGMapMode0 + call Function8a453 + call Function8a4d3 + call Function8a4fc + call Function891ab + call SetPalettes + call Function8a383 + jr c, .asm_8a370 + jr z, .asm_8a34e +.asm_8a36a + call Function89448 + xor a + ld e, a + ret +.asm_8a370 + call Function89448 + call PlaceHollowCursor + call Function8a3a2 + ld a, [MenuSelection] + cp $ff + jr z, .asm_8a36a + ld e, a + and a + ret + +Function8a383: ; 8a383 (22:6383) + callba MobileMenuJoypad + ld a, c + ld hl, wMenuJoypadFilter + and [hl] + ret z + bit 0, a + jr nz, .asm_8a399 + bit 1, a + jr nz, .asm_8a39e + xor a + ret +.asm_8a399 + call PlayClickSFX + scf + ret +.asm_8a39e + call PlayClickSFX + ret + +Function8a3a2: ; 8a3a2 (22:63a2) + ld a, [wMenuCursorY] + dec a + ld hl, wd002 + ld e, a + ld d, $0 + add hl, de + ld a, [hl] + ld [MenuSelection], a + ret + +Function8a3b2: ; 8a3b2 (22:63b2) + ld a, $1 + ld [MenuSelection], a + call Function8a4fc + call Function8a3df + jr nc, .asm_8a3ce + decoord 0, 2 + ld b, $6 + ld c, $9 + call Function89b3b + ld hl, MenuDataHeader_0x8a435 + jr .asm_8a3db +.asm_8a3ce + decoord 0, 2 + ld b, $8 + ld c, $9 + call Function89b3b + ld hl, MenuDataHeader_0x8a40f +.asm_8a3db + call CopyMenuDataHeader + ret + +Function8a3df: ; 8a3df (22:63df) + call OpenSRAMBank4 + ld hl, $a603 + call Function89b45 + call CloseSRAM + ld hl, wd002 + jr c, .asm_8a3f8 + ld de, Unknown_8a408 + call Function8a400 + scf + ret +.asm_8a3f8 + ld de, Unknown_8a40b + call Function8a400 + and a + ret + +Function8a400: ; 8a400 (22:6400) + ld a, [de] + inc de + ld [hli], a + cp $ff + jr nz, Function8a400 + ret +; 8a408 (22:6408) + +Unknown_8a408: db 1, 2, -1 +Unknown_8a40b: db 1, 2, 3, -1 + +MenuDataHeader_0x8a40f: ; 0x8a40f + db $40 ; flags + db 02, 00 ; start coords + db 11, 10 ; end coords + dw MenuData2_0x8a417 + db 1 ; default option +; 0x8a417 + +MenuData2_0x8a417: ; 0x8a417 + db $a0 ; flags + db 4 ; items + db "めいしりスト@" + db "じぶんの めいし@" + db "めいしこうかん@" + db "やめる@" +; 0x8a435 + +MenuDataHeader_0x8a435: ; 0x8a435 + db $40 ; flags + db 02, 00 ; start coords + db 09, 10 ; end coords + dw MenuData2_0x8a43d + db 1 ; default option +; 0x8a43d + +MenuData2_0x8a43d: ; 0x8a43d + db $a0 ; flags + db 3 ; items + db "めいしりスト@" + db "じぶんの めいし@" + db "やめる@" +; 0x8a453 + +Function8a453: ; 8a453 (22:6453) + hlcoord 0, 12 + ld b, $4 + ld c, $12 + call TextBox + hlcoord 1, 14 + ld de, String_8a476 + ld a, [MenuSelection] + cp $ff + jr z, .asm_8a472 + ld de, Strings_8a483 + dec a + ld c, a + call Function8919e +.asm_8a472 + call PlaceString + ret +; 8a476 (22:6476) + +String_8a476: ; 8a476 + db "まえ", $25, "がめん", $1d, "もどります@" +; 8a483 + +Strings_8a483: ; 8a483 + db "おともだち", $25, "めいしは" + next "ここ", $1d, "いれておきます@" + + db "でんわばんごう", $1f, "いれると" + next "めいしこうかん", $4a, "できます@" + + db "ともだちと じぶん", $25, "めいしを" + next "せきがいせんで こうかん します@" +; 8a4d3 + +Function8a4d3: ; 8a4d3 (22:64d3) + ld a, [MenuSelection] + cp $1 + jr nz, .asm_8a4eb + ld a, $5 + hlcoord 12, 4, AttrMap + call Function8a5a3 + ld a, $7 + hlcoord 15, 4, AttrMap + call Function8a5a3 + ret +.asm_8a4eb + ld a, $7 + hlcoord 12, 4, AttrMap + call Function8a5a3 + ld a, $6 + hlcoord 15, 4, AttrMap + call Function8a5a3 + ret + +Function8a4fc: ; 8a4fc (22:64fc) + ld a, [MenuSelection] + cp $3 + jr nz, asm_8a529 + ld hl, wd012 + ld a, [hli] + ld b, a + ld a, [hld] + add b + ld [hl], a + ld b, a + ld c, $80 + call Function89cdf + call Function8a515 + ret + +Function8a515: ; 8a515 (22:6515) + ld hl, wd012 + ld a, [hl] + cp $38 + jr c, .asm_8a520 + cp $3c + ret c +.asm_8a520 + ld a, [wd013] + cpl + inc a + ld [wd013], a + ret + +asm_8a529: ; 8a529 (22:6529) + ld hl, wd012 + ld a, $3c + ld [hli], a + ld a, $ff + ld [hli], a + ld hl, Sprites + xor a + ld bc, $20 + call ByteFill + ret + +Function8a53d: ; 8a53d (22:653d) + push hl + ld a, $15 + ld c, $8 + ld de, $14 + call Function8a573 + ld a, $1d + ld c, $9 + call Function8a57c + inc a + ld [hl], a + call Function8a584 + pop hl + add hl, de + ld a, $1f + ld c, $8 + call Function8a573 + dec hl + ld a, $51 + ld [hli], a + ld a, $26 + ld c, $1 + call Function8a57c + ld a, $52 + ld c, $3 + call Function8a573 + ld a, $27 + ld c, $6 + +Function8a573: ; 8a573 (22:6573) + ld [hl], a + call Function8a584 + inc a + dec c + jr nz, Function8a573 + ret + +Function8a57c: ; 8a57c (22:657c) + ld [hl], a + call Function8a584 + dec c + jr nz, Function8a57c + ret + +Function8a584: ; 8a584 (22:6584) + push af + ld a, $4 + call Function89215 + inc hl + pop af + ret + +Function8a58d: ; 8a58d (22:658d) + ld a, $2d + ld bc, $606 + ld de, $14 +.asm_8a595 + push bc + push hl +.asm_8a597 + ld [hli], a + inc a + dec c + jr nz, .asm_8a597 + pop hl + add hl, de + pop bc + dec b + jr nz, .asm_8a595 + ret + +Function8a5a3: ; 8a5a3 (22:65a3) + ld bc, $603 + ld de, $14 +.asm_8a5a9 + push bc + push hl +.asm_8a5ab + ld [hli], a + dec c + jr nz, .asm_8a5ab + pop hl + add hl, de + pop bc + dec b + jr nz, .asm_8a5a9 + ret + +Function8a5b6: ; 8a5b6 (22:65b6) + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + ld hl, Palette_8a5e5 + ld de, UnknBGPals + 4 palettes + ld bc, 3 palettes + call CopyBytes + ld hl, Palette_8a5fd + ld de, UnknOBPals + ld bc, 1 palettes + call CopyBytes + ld hl, Palette_8a605 + ld de, UnknOBPals + 1 palettes + ld bc, 1 palettes + call CopyBytes + pop af + ld [rSVBK], a + ret +; 8a5e5 (22:65e5) + +Palette_8a5e5: ; 8a5e5 + RGB 31, 31, 31 + RGB 27, 19, 00 + RGB 07, 11, 22 + RGB 00, 00, 00 + + RGB 31, 31, 31 + RGB 16, 16, 31 + RGB 27, 19, 00 + RGB 00, 00, 00 + + RGB 31, 31, 31 + RGB 31, 00, 00 + RGB 27, 19, 00 + RGB 00, 00, 00 +; 8a5fd + +Palette_8a5fd: ; 8a5fd + RGB 00, 00, 00 + RGB 00, 00, 00 + RGB 00, 00, 00 + RGB 31, 31, 31 +; 8a605 + +Palette_8a605: ; 8a605 + RGB 00, 00, 00 + RGB 14, 18, 31 + RGB 16, 16, 31 + RGB 31, 31, 31 +; 8a60d + +Function8a60d: ; 8a60d + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + ld hl, Palette_8a624 + ld de, UnknOBPals + ld bc, 1 palettes + call CopyBytes + pop af + ld [rSVBK], a + ret +; 8a624 + +Palette_8a624: ; 8a624 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 00, 00, 00 +; 8a62c + +Function8a62c: ; 8a62c (22:662c) + call LoadStandardMenuDataHeader + call Function891fe + xor a + call Function8b94a + call Function8b677 +.asm_8a639 + xor a + ld [wd033], a + ld [wd032], a + ld [wd0e3], a + call Function8b7bd + ld a, c + and a + jr z, .asm_8a66a + ld [MenuSelection], a + ld b, a + ld a, [wScrollingMenuCursorPosition] + inc a + ld [wd034], a + push bc + call Function8b960 + ld a, c + pop bc + jr z, .asm_8a639 + ld c, a + ld hl, Jumptable_8a671 + ld a, b + ld [MenuSelection], a + ld a, c + dec a + rst JumpTable + jr .asm_8a639 +.asm_8a66a + call Function891fe + call Function89b28 + ret + +Jumptable_8a671: ; 8a671 (22:6671) + dw Function8a679 + dw Function8a6cd + dw Function8a8c3 + dw Function8a930 + + +Function8a679: ; 8a679 (22:6679) + call Function891de + call ClearBGPalettes + call Function893cc + call OpenSRAMBank4 + call Function8931b + call Function89844 + call CloseSRAM + call OpenSRAMBank4 + call Function8939a + call Function89856 + hlcoord 1, 13 + call Function899fe + call Function891ab + call CloseSRAM +.asm_8a6a3 + call Function89a57 + jr c, .asm_8a6a3 + and a + jr z, Function8a679 + ld hl, Jumptable_8a6bc + dec a + rst JumpTable + jr c, Function8a679 + call Function891fe + call Function8b677 + call Function89448 + ret + +Jumptable_8a6bc: ; 8a6bc (22:66bc) + dw Function8a6c0 + dw Function8a6c5 + + +Function8a6c0: ; 8a6c0 (22:66c0) + call PlayClickSFX + and a + ret + +Function8a6c5: ; 8a6c5 (22:66c5) + call PlayClickSFX + call Function89d0d + scf + ret + +Function8a6cd: ; 8a6cd (22:66cd) + call Function891de + call ClearBGPalettes + call Function893cc + call OpenSRAMBank4 + call Function8931b + call Function89844 + call Function8a757 + call CloseSRAM +.asm_8a6e5 + call OpenSRAMBank4 + call Function8931b + call Function89856 + call Function89a2e + call Function891ab + xor a + ld [wd02f], a + call CloseSRAM +.asm_8a6fb + call Function89b97 + call Function89c67 + jr c, .asm_8a718 + ld a, b + and a + jr z, .asm_8a6fb + call PlayClickSFX + call Function89448 + ld a, [wd011] + ld hl, Jumptable_8a74f + rst JumpTable + jr nc, .asm_8a6e5 + jr .asm_8a742 +.asm_8a718 + call OpenSRAMBank4 + call Function8a765 + call CloseSRAM + jr nc, .asm_8a73f + call Mobile22_SetBGMapMode0 + call Function89448 + call Function89a23 + hlcoord 1, 13 + ld de, String_89135 + call PlaceString + call WaitBGMap + ld a, $2 + call Function89254 + jr c, .asm_8a6e5 +.asm_8a73f + call CloseSRAM +.asm_8a742 + call ClearBGPalettes + call Function89448 + call Function891d3 + call Function8b677 + ret + +Jumptable_8a74f: ; 8a74f (22:674f) + dw Function8a78c + dw Function8a7cb + dw Function8a818 + dw Function8a8a1 + + +Function8a757: ; 8a757 (22:6757) + call Function8939a + xor a + ld [wd010], a + ld [wd011], a + ld [wd012], a + ret + +Function8a765: ; 8a765 (22:6765) + call Function8931b + push bc + ld hl, $0 + add hl, bc + ld de, wd002 + ld c, $6 + call Function89185 + pop bc + jr nz, .asm_8a78a + push bc + ld hl, $11 + add hl, bc + ld de, wd008 + ld c, $8 + call Function89185 + pop bc + jr nz, .asm_8a78a + and a + ret +.asm_8a78a + scf + ret + +Function8a78c: ; 8a78c (22:678c) + call Function891fe + ld de, wd002 + ld b, $5 + callba NamingScreen + call OpenSRAMBank4 + call Function8931b + push bc + ld hl, $0 + add hl, bc + ld d, h + ld e, l + ld hl, wd002 + call InitName + call CloseSRAM + call DelayFrame + call JoyTextDelay + call Function891de + call ClearBGPalettes + call Function893cc + call OpenSRAMBank4 + pop bc + call Function89844 + call CloseSRAM + and a + ret + +Function8a7cb: ; 8a7cb (22:67cb) + ld a, [MenuSelection] + push af + call Function891de + ld de, wd008 + ld c, $0 + callba Function17a68f + jr c, .asm_8a7f4 + ld hl, wd008 + ld a, $ff + ld bc, $8 + call ByteFill + ld h, d + ld l, e + ld de, wd008 + ld c, $8 + call Function89193 +.asm_8a7f4 + pop af + ld [MenuSelection], a + call Function891de + call ClearBGPalettes + call Function893cc + call OpenSRAMBank4 + call Function8931b + call Function89844 + call Function89856 + call Function89a2e + call Function891ab + call CloseSRAM + and a + ret + +Function8a818: ; 8a818 (22:6818) + call Function89a23 + ld hl, wd002 + call Function89331 + jr c, .asm_8a875 + ld hl, wd008 + call Function89b45 + jr nc, .asm_8a87a + call OpenSRAMBank4 + call Function8a765 + jr nc, .asm_8a863 + call Function8931b + push bc + ld hl, $0 + add hl, bc + ld d, h + ld e, l + ld hl, wd002 + ld c, $6 + call Function89193 + pop bc + ld hl, $11 + add hl, bc + ld d, h + ld e, l + ld hl, wd008 + ld c, $8 + call Function89193 + hlcoord 1, 13 + ld de, .string_8a868 + call PlaceString + call WaitBGMap + call JoyWaitAorB +.asm_8a863 + call CloseSRAM + scf + ret +; 8a868 (22:6868) + +.string_8a868 + db "めいし", $1f, "かきかえ まし", $22, "@" + +.asm_8a875 + ld de, String_8a88b + jr .asm_8a87d +.asm_8a87a + ld de, String_8911c +.asm_8a87d + hlcoord 1, 13 + call PlaceString + call WaitBGMap + call JoyWaitAorB + and a + ret +; 8a88b (22:688b) + +String_8a88b: ; 8a88b + db "おともだち", $25, "なまえが" + next "かかれて いません!@" +; 8a8a1 + +Function8a8a1: ; 8a8a1 (22:68a1) + call OpenSRAMBank4 + call Function8a765 + call CloseSRAM + jr nc, .asm_8a8bf + call Function89a23 + hlcoord 1, 13 + ld de, String_89135 + call PlaceString + ld a, $2 + call Function89254 + jr c, .asm_8a8c1 +.asm_8a8bf + scf + ret +.asm_8a8c1 + and a + ret + +Function8a8c3: ; 8a8c3 (22:68c3) + call Function891de + call ClearBGPalettes + call Function893cc + call OpenSRAMBank4 + call Function8931b + call Function89844 + call Function8939a + call Function89856 + call CloseSRAM + call Function891ab + hlcoord 1, 13 + ld de, String_8a919 + call PlaceString + ld a, $2 + call Function89254 + jr c, .asm_8a90f + call OpenSRAMBank4 + call Function892b4 + call CloseSRAM + call Function89a23 + call Mobile22_SetBGMapMode0 + hlcoord 1, 13 + ld de, String_8a926 + call PlaceString + call WaitBGMap + call JoyWaitAorB +.asm_8a90f + call Function89448 + call Function891fe + call Function8b677 + ret +; 8a919 (22:6919) + +String_8a919: ; 8a919 + db "このデータ", $1f, "けしますか?@" +; 8a926 + +String_8a926: ; 8a926 + db "データ", $1f, "けしまし", $22, "@" +; 8a930 + +Function8a930: ; 8a930 (22:6930) + ld a, [MenuSelection] + push af + xor a + ld [wd032], a + ld a, $1 + ld [wd033], a + ld a, [wd034] + ld [wd0e3], a +.asm_8a943 + call Function8b7bd + ld a, [wMenuJoypad] + and $1 + jr nz, .asm_8a953 + ld a, c + and a + jr nz, .asm_8a943 + pop af + ret +.asm_8a953 + call OpenSRAMBank4 + pop af + cp c + jr z, .asm_8a995 + push bc + ld [MenuSelection], a + call Function8931b + push bc + ld h, b + ld l, c + ld de, wd002 + ld bc, $25 + call CopyBytes + pop de + pop bc + ld a, c + ld [MenuSelection], a + call Function8931b + push bc + ld h, b + ld l, c + ld bc, $25 + call CopyBytes + pop de + ld hl, wd002 + ld bc, $25 + call CopyBytes + ld de, SFX_SWITCH_POKEMON + call WaitPlaySFX + ld de, SFX_SWITCH_POKEMON + call WaitPlaySFX +.asm_8a995 + call CloseSRAM + ret + +Function8a999: ; 8a999 (22:6999) + ld hl, MenuDataHeader_0x8a9c9 + call LoadMenuDataHeader + ld c, $1 +.asm_8a9a1 + call Function8a9ce + jr c, .asm_8a9bb + push bc + push de + call LoadStandardMenuDataHeader + pop de + dec e + ld a, e + ld hl, Jumptable_8a9c5 + rst JumpTable + call Function891fe + call Function89b28 + pop bc + jr .asm_8a9a1 +.asm_8a9bb + call Function89209 + call CloseWindow + call Function8920f + ret + +Jumptable_8a9c5: ; 8a9c5 (22:69c5) + dw Function8aa0a + dw Function8ab3b +; 8a9c9 (22:69c9) + +MenuDataHeader_0x8a9c9: ; 0x8a9c9 + db $40 ; flags + db 04, 11 ; start coords + db 11, 18 ; end coords +; 8a9ce + +Function8a9ce: ; 8a9ce (22:69ce) + push bc + decoord 11, 4 + ld b, $6 + ld c, $6 + call Function89b3b + pop bc + ld a, c + ld hl, MenuDataHeader_0x8a9f2 + call Function89d5e + ld hl, Function8aa09 + call Function89d85 + jr c, .asm_8a9ed + ld c, a + ld e, a + and a + ret +.asm_8a9ed + ld c, a + ld e, $0 + scf + ret +; 8a9f2 (22:69f2) + +MenuDataHeader_0x8a9f2: ; 0x8a9f2 + db $40 ; flags + db 04, 11 ; start coords + db 11, 18 ; end coords + dw MenuData2_0x8a9fa + db 1 ; default option +; 0x8a9fa + +MenuData2_0x8a9fa: ; 0x8a9fa + db $a0 ; flags + db 3 ; items + db "へんしゅう@" + db "みる@" + db "やめる@" +; 0x8aa09 + +Function8aa09: ; 8aa09 + ret +; 8aa0a + +Function8aa0a: ; 8aa0a (22:6a0a) + ld a, $1 + ld [wd02f], a + ld [wd011], a + xor a + ld [wd010], a + ld [wd012], a + call OpenSRAMBank4 + ld hl, $a603 + ld de, wd008 + call Function89381 + call CloseSRAM + call Function891fe + call ClearBGPalettes + call Function893cc + call Function89807 + call Function89492 + call Function894ca +.asm_8aa3a + call Function8987f + call Function89a2e + call Function891ab +.asm_8aa43 + call Function89b97 + call Function89c67 + jr c, .asm_8aa61 + ld a, b + and a + jr z, .asm_8aa43 + call PlayClickSFX + call Function89448 + ld a, [wd011] + dec a + ld hl, Jumptable_8aa6d + rst JumpTable + jr nc, .asm_8aa3a + jr .asm_8aa69 +.asm_8aa61 + call Function89448 + call Function8ab11 + jr nc, .asm_8aa3a +.asm_8aa69 + call Function89448 + ret + +Jumptable_8aa6d: ; 8aa6d (22:6a6d) + dw Function8aa73 + dw Function8aab6 + dw Function8ab11 + + +Function8aa73: ; 8aa73 (22:6a73) + ld a, [MenuSelection] + ld e, a + push de + call Function891de + ld de, wd008 + ld c, $0 + callba Function17a68f + jr c, .asm_8aa9d + ld hl, wd008 + ld a, $ff + ld bc, $8 + call ByteFill + ld h, d + ld l, e + ld de, wd008 + ld c, $8 + call Function89193 +.asm_8aa9d + call Function891fe + call ClearBGPalettes + call Function893cc + call Function89807 + call Function89492 + call Function894ca + pop de + ld a, e + ld [MenuSelection], a + and a + ret + +Function8aab6: ; 8aab6 (22:6ab6) + call Function89a23 + ld hl, wd008 + call Function89b45 + jr nc, Function8ab00 + call OpenSRAMBank4 + ld de, wd008 + ld hl, $a603 + ld c, $8 + call Function89185 + jr z, .asm_8aaeb + ld hl, wd008 + ld de, $a603 + ld c, $8 + call Function89193 + hlcoord 1, 13 + ld de, String_8aaf0 + call PlaceString + call WaitBGMap + call JoyWaitAorB +.asm_8aaeb + call CloseSRAM + scf + ret +; 8aaf0 (22:6af0) + +String_8aaf0: ; 8aaf0 + db "あたらしい めいしできまし@" +; 8ab00 + +Function8ab00: ; 8ab00 + ld de, String_8911c + hlcoord 1, 13 + call PlaceString + call WaitBGMap + call Mobile22_ButtonSound + and a + ret + +Function8ab11: ; 8ab11 (22:6b11) + call OpenSRAMBank4 + ld hl, $a603 + ld de, wd008 + ld c, $8 + call Function89185 + call CloseSRAM + jr z, .asm_8ab37 + call Function89a23 + hlcoord 1, 13 + ld de, String_89135 + call PlaceString + ld a, $2 + call Function89254 + jr c, .asm_8ab39 +.asm_8ab37 + scf + ret +.asm_8ab39 + and a + ret + +Function8ab3b: ; 8ab3b (22:6b3b) +.pressed_start + call Function891fe + call ClearBGPalettes + call Function893cc + call Function89807 + call Function89492 + call Function894ca + call OpenSRAMBank4 + ld hl, $a603 + ld de, wd008 + call Function89381 + call CloseSRAM + call Function8987f + call OpenSRAMBank4 + hlcoord 1, 13 + ld bc, $a007 + call Function89a0c + call CloseSRAM + call Function891ab + call .JoypadLoop + jr c, .pressed_start + ret + +.JoypadLoop: ; 8ab77 (22:6b77) + call JoyTextDelay_ForcehJoyDown + bit A_BUTTON_F, c + jr nz, .a_b_button + bit B_BUTTON_F, c + jr nz, .a_b_button + bit START_F, c + jr z, .JoypadLoop + call PlayClickSFX + call Function89d0d + scf + ret + +.a_b_button + call PlayClickSFX + and a + ret + +Function8ab93: ; 8ab93 (22:6b93) + call ClearBGPalettes + call LoadStandardMenuDataHeader + callba Function105688 + call ClearSprites + call Function891fe + call Function89b28 + ret +; 8aba9 (22:6ba9) + +Function8aba9: ; 8aba9 + ld a, $2 + call Function8b94a + ld a, $1 + ld [wd032], a +.asm_8abb3 + call Function891fe + call Function8b677 +.asm_8abb9 + call Function8b7bd + jr z, .asm_8abdf + ld a, c + ld [MenuSelection], a + call OpenSRAMBank4 + call Function8931b + ld hl, $0011 + add hl, bc + call Function89b45 + call CloseSRAM + jr c, .asm_8abe2 + ld de, SFX_WRONG + call WaitPlaySFX + call CloseSRAM + jr .asm_8abb9 + +.asm_8abdf + xor a + ld c, a + ret + +.asm_8abe2 + call PlayClickSFX +.asm_8abe5 + call Function891de + call ClearBGPalettes + call Function893cc + call OpenSRAMBank4 + call Function8931b + call Function89844 + call CloseSRAM + call OpenSRAMBank4 + call Function8939a + call Function89856 + hlcoord 1, 13 + call Function899fe + call CloseSRAM + call Function891ab +.asm_8ac0f + call Function89a57 + jr c, .asm_8ac0f + and a + jr z, .asm_8abe5 + cp $2 + jr z, .asm_8ac0f + hlcoord 0, 12 + ld b, $4 + ld c, $12 + call TextBox + hlcoord 1, 14 + ld de, String_8ac3b + call PlaceString + ld a, $1 + call Function8925e + jp c, .asm_8abb3 + ld a, [MenuSelection] + ld c, a + ret +; 8ac3b + +String_8ac3b: ; 8ac3b + db "こ", $25, "ともだち", $1d, "でんわを" + next "かけますか?@" +; 8ac4e + +Function8ac4e: ; 8ac4e + xor a + ld [MenuSelection], a + push de + call Function891de + call ClearBGPalettes + call Function893cc + pop bc + call Function89844 + call Function8939a + call Function89856 + hlcoord 1, 13 + call Function899fe + call Function891ab + ret +; 8ac70 + +Function8ac70: ; 8ac70 + push de + ld a, $3 + call Function8b94a + +Function8ac76: ; 8ac76 + call Function891fe + call Function8b677 + +Function8ac7c: ; 8ac7c + call Function8b7bd + jr z, .asm_8acf0 + ld a, c + ld [wd02f], a + ld [MenuSelection], a + call OpenSRAMBank4 + call Function8931b + call Function8932d + call CloseSRAM + jr nc, .asm_8acb0 + call OpenSRAMBank4 + ld hl, $0011 + add hl, bc + call Function89b45 + call CloseSRAM + jr nc, .asm_8accc + call OpenSRAMBank4 + call Function892b7 + call CloseSRAM + jr .asm_8accc + +.asm_8acb0 + call Function8ad0b + jr c, Function8ac76 + and a + jr nz, .asm_8accc + call OpenSRAMBank4 + ld h, b + ld l, c + ld d, $0 + ld e, $6 + add hl, de + ld d, h + ld e, l + pop hl + ld c, $1f + call Function89193 + jr .asm_8ace4 + +.asm_8accc + pop hl + call OpenSRAMBank4 + ld d, b + ld e, c + ld c, $6 + call Function89193 + ld a, $6 + add e + ld e, a + ld a, $0 + adc d + ld d, a + ld c, $1f + call Function89193 + +.asm_8ace4 + call CloseSRAM + call LoadStandardFont + ld a, [wd02f] + ld c, a + and a + ret + +.asm_8acf0 + ld hl, UnknownText_0x8ad06 + call PrintText + ld a, $2 + call Function89259 + jp c, Function8ac7c + call LoadStandardFont + pop de + ld c, $0 + scf + ret +; 8ad06 + +UnknownText_0x8ad06: ; 0x8ad06 + ; Finish registering CARDS? + text_jump UnknownText_0x1c554a + db "@" +; 0x8ad0b + +Function8ad0b: ; 8ad0b +.asm_8ad0b + ld a, [MenuSelection] + ld [wd02f], a + call Function891de + call ClearBGPalettes + call Function893cc + call OpenSRAMBank4 + call Function8931b + push bc + call Function89844 + call Function8939a + call Function89856 + hlcoord 1, 13 + call Function899fe + call CloseSRAM + call Function891ab + pop bc +.asm_8ad37 + push bc + call Function89a57 + pop bc + jr c, .asm_8ad37 + and a + jr z, .asm_8ad0b + cp $2 + jr z, .asm_8ad37 + call Mobile22_SetBGMapMode0 + push bc + hlcoord 0, 12 + ld b, $4 + ld c, $12 + call TextBox + ld de, String_8ad89 + hlcoord 1, 14 + call PlaceString + ld a, $2 + call Function8925e + jr c, .asm_8ad87 + call Mobile22_SetBGMapMode0 + hlcoord 0, 12 + ld b, $4 + ld c, $12 + call TextBox + ld de, String_8ad9c + hlcoord 1, 14 + call PlaceString + ld a, $1 + call Function8925e + jr c, .asm_8ad84 + ld a, $0 + jr .asm_8ad86 + +.asm_8ad84 + ld a, $1 + +.asm_8ad86 + and a + +.asm_8ad87 + pop bc + ret +; 8ad89 + +String_8ad89: ; 8ad89 + db "こ", $25, "めいし", $1f, "けして" + next "いれかえますか?@" +; 8ad9c + +String_8ad9c: ; 8ad9c + db "おともだち", $25, "なまえを" + next "のこして おきますか?@" +; 8adb3 + +Function8adb3: ; 8adb3 + call Function891de + call Function8a262 + push af + call Function891de + pop af + ret +; 8adbf + +Function8adbf: ; 8adbf + call OpenSRAMBank4 + ld hl, $a603 + call Function89b45 + call CloseSRAM + ret +; 8adcc + +Function8adcc: ; 8adcc + call OpenSRAMBank4 + call Function8b3b0 + call CloseSRAM + ret nc + cp $2 + ret z + scf + ret +; 8addb diff --git a/mobile/mobile_22_2.asm b/mobile/mobile_22_2.asm new file mode 100644 index 000000000..321998dc7 --- /dev/null +++ b/mobile/mobile_22_2.asm @@ -0,0 +1,1162 @@ +Function8b342:: ; 8b342 +; Loads the secondary map header pointer, then runs through a +; dw with three dummy functions. Spends a lot of energy +; doing pretty much nothing. + call GetSecondaryMapHeaderPointer + ld d, h + ld e, l + +; Everything between here and "ret" is useless. + xor a +.loop + push af + ld hl, .dw + rst JumpTable + pop af + inc a + cp 3 + jr nz, .loop + ret +; 8b354 + +.dw ; 8b354 + dw .zero + dw .one + dw .two +; 8b35a + +.zero ; 8b35a + mobile +; 8b35b + +.one ; 8b35b + mobile +; 8b35c + +.two ; 8b35c + mobile +; 8b35d + +Function8b35d: ; 8b35d + ld a, h + cp d + ret nz + ld a, l + cp e + ret +; 8b363 + +Function8b363: ; 8b363 + push bc + callba Mobile_AlwaysReturnNotCarry + pop bc + ret +; 8b36c + +Function8b36c: ; 8b36c (22:736c) + ; [bc + (0:4)] = -1 + push bc + ld h, b + ld l, c + ld bc, 4 + ld a, -1 + call ByteFill + pop bc + ret + +Function8b379: ; 8b379 (22:7379) + ; d = [bc + e] + push bc + ld a, c + add e + ld c, a + ld a, $0 + adc b + ld b, a + ld a, [bc] + ld d, a + pop bc + ret + +Function8b385: ; 8b385 (22:7385) + ; [bc + e] = d + push bc + ld a, c + add e + ld c, a + ld a, $0 + adc b + ld b, a + ld a, d + ld [bc], a + pop bc + ret + +Function8b391: ; 8b391 (22:7391) + ; find first e in range(4) such that [bc + e] == -1 + ; if none exist, return carry + push bc + ld e, 0 + ld d, 4 +.loop + ld a, [bc] + inc bc + cp -1 + jr z, .done + inc e + dec d + jr nz, .loop + dec e + scf +.done + pop bc + ret + +Function8b3a4: ; 8b3a4 (22:73a4) + ; strcmp(hl, bc, 4) + push de + push bc + ld d, b + ld e, c + ld c, 4 + call Function89185 + pop bc + pop de + ret + +Function8b3b0: ; 8b3b0 (22:73b0) + ld bc, $a037 ; 4:a037 + ld a, [$a60b] + and a + jr z, .asm_8b3c2 + cp $3 + jr nc, .asm_8b3c2 + call Function8b391 + jr c, .asm_8b3c9 +.asm_8b3c2 + call Function8b36c + xor a + ld [$a60b], a +.asm_8b3c9 + ld a, [$a60b] + ret + +Function8b3cd: ; 8b3cd (22:73cd) + push de + push bc + ld e, $4 +.asm_8b3d1 + ld a, [bc] + inc bc + call Function8998b + inc hl + dec e + jr nz, .asm_8b3d1 + pop bc + pop de + ret + +Function8b3dd: ; 8b3dd (22:73dd) + push de + push bc + call JoyTextDelay_ForcehJoyDown ; joypad + ld a, c + pop bc + pop de + bit A_BUTTON_F, a + jr nz, .a_button + bit B_BUTTON_F, a + jr nz, .b_button + bit D_UP_F, a + jr nz, .d_up + bit D_DOWN_F, a + jr nz, .d_down + and a + ret + +.a_button + ld a, e + cp $3 + jr z, .e_is_zero + inc e + ld d, 0 + call Function8b385 + xor a + ld [wd010], a + ret + +.e_is_zero + call PlayClickSFX + ld d, $0 + scf + ret + +.b_button + ld a, e + and a + jr nz, .e_is_not_zero + call PlayClickSFX + ld d, -1 + call Function8b385 + ld d, 1 + scf + ret + +.e_is_not_zero + ld d, -1 + call Function8b385 + dec e + xor a + ld [wd010], a + ret + +.d_up + call Function8b379 + ld a, d + cp $a + jr c, .less_than_10_up_1 + ld d, $9 +.less_than_10_up_1 + inc d + ld a, d + cp $a + jr c, .less_than_10_up_2 + ld d, $0 +.less_than_10_up_2 + call Function8b385 + xor a + ld [wd010], a + ret + +.d_down + call Function8b379 + ld a, d + cp $a + jr c, .less_than_10_down + ld d, $0 +.less_than_10_down + ld a, d + dec d + and a + jr nz, .nonzero_down + ld d, $9 +.nonzero_down + call Function8b385 + xor a + ld [wd010], a + ret + +Function8b45c: ; 8b45c (22:745c) + call Function8b36c + xor a + ld [wd010], a + ld [wd012], a + call Function8b391 + ld d, $0 + call Function8b385 +.asm_8b46e + call Mobile22_SetBGMapMode0 + call Function8b493 + call Function8b4cc + call Function8b518 + call Function89b78 + push bc + call Function8b4fd + call Function89c44 + ld a, $1 + ld [hBGMapMode], a + pop bc + call Function8b3dd + jr nc, .asm_8b46e + ld a, d + and a + ret z + scf + ret + +Function8b493: ; 8b493 (22:7493) + push bc + call Mobile22_SetBGMapMode0 + call Function8b521 + ld hl, Jumptable_8b4a0 + pop bc + rst JumpTable + ret + +Jumptable_8b4a0: ; 8b4a0 (22:74a0) + dw Function8b4a4 + dw Function8b4b8 + + +Function8b4a4: ; 8b4a4 (22:74a4) + push bc + push de + call Function8b4d8 + call TextBox + pop de + pop bc + call Function8b4cc + call Function8b518 + call Function8b3cd + ret + +Function8b4b8: ; 8b4b8 (22:74b8) + push bc + push de + call Function8b4ea + call Function89b3b + pop de + pop bc + call Function8b4cc + call Function8b518 + call Function8b3cd + ret + +Function8b4cc: ; 8b4cc (22:74cc) + push bc + ld hl, Unknown_8b529 + call Function8b50a + ld a, [hli] + ld h, [hl] + ld l, a + pop bc + ret + +Function8b4d8: ; 8b4d8 (22:74d8) + ld hl, Unknown_8b529 + call Function8b50a + push hl + inc hl + inc hl + ld a, [hli] + ld b, a + ld a, [hl] + ld c, a + pop hl + ld a, [hli] + ld h, [hl] + ld l, a + ret + +Function8b4ea: ; 8b4ea (22:74ea) + ld hl, Unknown_8b529 + call Function8b50a + push hl + inc hl + inc hl + ld a, [hli] + ld b, a + ld a, [hl] + ld c, a + pop hl + ld a, [hli] + ld e, a + ld a, [hl] + ld d, a + ret + +Function8b4fd: ; 8b4fd (22:74fd) + ld hl, Unknown_8b529 + 4 + call Function8b50a + ld a, [hli] + ld c, a + ld a, [hli] + ld b, a + ld a, [hli] + ld d, a + ret + +Function8b50a: ; 8b50a (22:750a) + ld a, [wd02e] + and a + ret z + ld b, $0 + ld c, $8 +.asm_8b513 + add hl, bc + dec a + jr nz, .asm_8b513 + ret + +Function8b518: ; 8b518 (22:7518) + push de + ld d, $0 + ld e, $14 + add hl, de + inc hl + pop de + ret + +Function8b521: ; 8b521 (22:7521) + ld hl, Unknown_8b529 + 7 + call Function8b50a + ld a, [hl] + ret +; 8b529 (22:7529) + +Unknown_8b529: ; 8b529 + dwcoord 2, 5 + db 1, 4, $20, $49, 0, 1 + dwcoord 7, 4 + db 1, 4, $48, $41, 0, 0 +; 8b539 + +Function8b539: ; 8b539 (22:7539) + ld bc, wd017 + call Function8b36c + xor a + ld [wd012], a + ld [wd02e], a + call Function8b493 + call Function8b4fd + ld e, $0 + call Function89c44 + call CGBOnly_LoadEDTile + ret + +Function8b555: ; 8b555 (22:7555) +.loop + ld hl, UnknownText_0x8b5ce + call PrintText + ld bc, wd017 + call Function8b45c + jr c, .asm_8b5c8 + call Function89448 + ld bc, wd017 + call Function8b493 + ld bc, wd017 + call Function8b664 + jr nz, .asm_8b57c + ld hl, UnknownText_0x8b5e2 + call PrintText + jr .loop + +.asm_8b57c + ld hl, UnknownText_0x8b5d3 + call PrintText + ld bc, wd013 + call Function8b45c + jr c, .loop + ld bc, wd017 + ld hl, wd013 + call Function8b3a4 + jr z, .strings_equal + call Function89448 + ld bc, wd013 + call Function8b493 + ld hl, UnknownText_0x8b5d8 + call PrintText + jr .asm_8b57c + +.strings_equal + call OpenSRAMBank4 + ld hl, wd013 + ld de, $a037 ; 4:a037 + ld bc, $4 + call CopyBytes + call CloseSRAM + call Function89448 + ld bc, wd013 + call Function8b493 + ld hl, UnknownText_0x8b5dd + call PrintText + and a +.asm_8b5c8 + push af + call Function89448 + pop af + ret +; 8b5ce (22:75ce) + +UnknownText_0x8b5ce: ; 0x8b5ce + ; Please enter any four-digit number. + text_jump UnknownText_0x1bc187 + db "@" +; 0x8b5d3 + +UnknownText_0x8b5d3: ; 0x8b5d3 + ; Enter the same number to confirm. + text_jump UnknownText_0x1bc1ac + db "@" +; 0x8b5d8 + +UnknownText_0x8b5d8: ; 0x8b5d8 + ; That's not the same number. + text_jump UnknownText_0x1bc1cf + db "@" +; 0x8b5dd + +UnknownText_0x8b5dd: ; 0x8b5dd + ; Your PASSCODE has been set. Enter this number next time to open the CARD FOLDER. + text_jump UnknownText_0x1bc1eb + db "@" +; 0x8b5e2 + +UnknownText_0x8b5e2: ; 0x8b5e2 + ; 0000 is invalid! + text_jump UnknownText_0x1bc23e + db "@" +; 0x8b5e7 + +Function8b5e7: ; 8b5e7 (22:75e7) + ld bc, wd013 + call Function8b36c + xor a + ld [wd012], a + ld [wd02e], a + call Function8b493 + call Function891ab + call Function8b4fd + ld e, $0 + call Function89c44 +.asm_8b602 + ld hl, UnknownText_0x8b642 + call PrintText + ld bc, wd013 + call Function8b45c + jr c, .asm_8b63c + call Function89448 + ld bc, wd013 + call Function8b493 + call OpenSRAMBank4 + ld hl, $a037 ; 4:a037 + call Function8b3a4 + call CloseSRAM + jr z, .asm_8b635 + ld hl, UnknownText_0x8b647 + call PrintText + ld bc, wd013 + call Function8b36c + jr .asm_8b602 +.asm_8b635 + ld hl, UnknownText_0x8b64c + call PrintText + and a +.asm_8b63c + push af + call Function89448 + pop af + ret +; 8b642 (22:7642) + +UnknownText_0x8b642: ; 0x8b642 + ; Enter the CARD FOLDER PASSCODE. + text_jump UnknownText_0x1bc251 + db "@" +; 0x8b647 + +UnknownText_0x8b647: ; 0x8b647 + ; Incorrect PASSCODE! + text_jump UnknownText_0x1bc272 + db "@" +; 0x8b64c + +UnknownText_0x8b64c: ; 0x8b64c + ; CARD FOLDER open.@ @ + text_jump UnknownText_0x1bc288 + start_asm + ld de, SFX_TWINKLE + call PlaySFX + call WaitSFX + ld c, $8 + call DelayFrames + ld hl, .string_8b663 + ret +.string_8b663 + db "@" +; 8b664 + +Function8b664: ; 8b664 (22:7664) + push bc + ld de, $4 +.asm_8b668 + ld a, [bc] + cp $0 + jr nz, .asm_8b66e + inc d +.asm_8b66e + inc bc + dec e + jr nz, .asm_8b668 + pop bc + ld a, d + cp $4 + ret + +Function8b677: ; 8b677 + call ClearBGPalettes + call DisableLCD + call Function8b690 + call Function8b6bb + call Function8b6ed + call EnableLCD + call Function891ab + call SetPalettes + ret +; 8b690 + +Function8b690: ; 8b690 + ld hl, GFX_17afa5 + $514 + ld de, VTiles2 + ld bc, $160 + ld a, BANK(GFX_17afa5) + call FarCopyBytes + ld hl, GFX_17afa5 + $514 + $160 - $10 + ld de, VTiles2 tile $61 + ld bc, $10 + ld a, BANK(GFX_17afa5) + call FarCopyBytes + ld hl, GFX_17afa5 + $514 + $160 + ld de, VTiles1 tile $6e + ld bc, $10 + ld a, BANK(GFX_17afa5) + call FarCopyBytes + ret +; 8b6bb + +Function8b6bb: ; 8b6bb + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + ld hl, Palette_8b6d5 + ld de, UnknBGPals + ld bc, $0018 + call CopyBytes + pop af + ld [rSVBK], a + call Function8949c + ret +; 8b6d5 + +Palette_8b6d5: ; 8b6d5 + RGB 31, 31, 31 + RGB 31, 21, 00 + RGB 14, 07, 03 + RGB 00, 00, 00 + RGB 31, 31, 31 + RGB 31, 21, 00 + RGB 22, 09, 17 + RGB 00, 00, 00 + RGB 31, 31, 31 + RGB 31, 21, 00 + RGB 06, 24, 08 + RGB 00, 00, 00 +; 8b6ed + +Function8b6ed: ; 8b6ed + hlcoord 0, 0, AttrMap + ld bc, $012c + xor a + call ByteFill + hlcoord 0, 14, AttrMap + ld bc, $0050 + ld a, $7 + call ByteFill + ret +; 8b703 + +Function8b703: ; 8b703 + call Mobile22_SetBGMapMode0 + push hl + ld a, $c + ld [hli], a + inc a + call Function8b73e + inc a + ld [hl], a + pop hl + push hl + push bc + ld de, SCREEN_WIDTH + add hl, de +.asm_8b717 + push hl + ld a, $f + ld [hli], a + ld a, $7f + call Function8b73e + ld a, $11 + ld [hl], a + pop hl + ld de, SCREEN_WIDTH + add hl, de + dec b + jr nz, .asm_8b717 + call Function8b732 + pop bc + pop hl + jr Function8b744 +; 8b732 + +Function8b732: ; 8b732 + ld a, $12 + ld [hli], a + ld a, $13 + call Function8b73e + ld a, $14 + ld [hl], a + ret +; 8b73e + +Function8b73e: ; 8b73e + ld d, c +.asm_8b73f + ld [hli], a + dec d + jr nz, .asm_8b73f + ret +; 8b744 + +Function8b744: ; 8b744 + ld de, AttrMap - TileMap + add hl, de + inc b + inc b + inc c + inc c + xor a +.asm_8b74d + push bc + push hl +.asm_8b74f + ld [hli], a + dec c + jr nz, .asm_8b74f + pop hl + ld de, SCREEN_WIDTH + add hl, de + pop bc + dec b + jr nz, .asm_8b74d + ret +; 8b75d + +Function8b75d: ; 8b75d + call Mobile22_SetBGMapMode0 + hlcoord 0, 0 + ld a, $1 + ld bc, SCREEN_WIDTH + call ByteFill + hlcoord 0, 1 + ld a, $2 + ld [hl], a + hlcoord 9, 1 + ld c, $b + call Function8b788 + hlcoord 1, 1 + ld a, $4 + ld e, $8 +.asm_8b780 + ld [hli], a + inc a + dec e + jr nz, .asm_8b780 + jr Function8b79e +; 8b787 + +Function8b787: ; 8b787 + ret +; 8b788 + +Function8b788: ; 8b788 +.asm_8b788 + ld a, $2 + ld [hli], a + dec c + ret z + ld a, $1 + ld [hli], a + dec c + ret z + ld a, $3 + ld [hli], a + dec c + ret z + ld a, $1 + ld [hli], a + dec c + jr nz, .asm_8b788 + ret +; 8b79e + +Function8b79e: ; 8b79e + hlcoord 0, 1, AttrMap + ld a, $1 + ld [hli], a + hlcoord 9, 1, AttrMap + ld e, $b +.asm_8b7a9 + ld a, $2 + ld [hli], a + dec e + ret z + xor a + ld [hli], a + dec e + ret z + ld a, $1 + ld [hli], a + dec e + ret z + xor a + ld [hli], a + dec e + jr nz, .asm_8b7a9 + ret +; 8b7bd + +Function8b7bd: ; 8b7bd + call Function8b855 + ld hl, MenuDataHeader_0x8b867 + call CopyMenuDataHeader + ld a, [wd030] + ld [wMenuCursorBuffer], a + ld a, [wd031] + ld [wMenuScrollPosition], a + ld a, [wd032] + and a + jr z, .asm_8b7e0 + ld a, [wMenuFlags] + set 3, a + ld [wMenuFlags], a + +.asm_8b7e0 + ld a, [wd0e3] + and a + jr z, .asm_8b7ea + dec a + ld [wScrollingMenuCursorPosition], a + +.asm_8b7ea + hlcoord 0, 2 + ld b, $b + ld c, $12 + call Function8b703 + call Function8b75d + call UpdateSprites + call Function89209 + call ScrollingMenu + call Function8920f + ld a, [wMenuJoypad] + cp $2 + jr z, .asm_8b823 + cp $20 + jr nz, .asm_8b813 + call Function8b832 + jr .asm_8b7ea + +.asm_8b813 + cp $10 + jr nz, .asm_8b81c + call Function8b83e + jr .asm_8b7ea + +.asm_8b81c + ld a, [MenuSelection] + cp $ff + jr nz, .asm_8b824 + +.asm_8b823 + xor a + +.asm_8b824 + ld c, a + ld a, [wMenuCursorY] + ld [wd030], a + ld a, [wMenuScrollPosition] + ld [wd031], a + ret +; 8b832 + +Function8b832: ; 8b832 + ld a, [wMenuScrollPosition] + ld hl, wMenuData2Items + sub [hl] + jr nc, Function8b84b + xor a + jr Function8b84b +; 8b83e + +Function8b83e: ; 8b83e + ld a, [wMenuScrollPosition] + ld hl, wMenuData2Items + add [hl] + cp $24 + jr c, Function8b84b + ld a, $24 + +Function8b84b: ; 8b84b + ld [wMenuScrollPosition], a + ld a, [wMenuCursorY] + ld [wMenuCursorBuffer], a + ret +; 8b855 + +Function8b855: ; 8b855 + ld a, $28 + ld hl, wd002 + ld [hli], a + ld c, $28 + xor a +.asm_8b85e + inc a + ld [hli], a + dec c + jr nz, .asm_8b85e + ld a, $ff + ld [hl], a + ret +; 8b867 + +MenuDataHeader_0x8b867: ; 0x8b867 + db $40 ; flags + db 03, 01 ; start coords + db 13, 18 ; end coords + dw MenuData2_0x8b870 + db 1 ; default option +; 0x8b86f + + db 0 + +MenuData2_0x8b870: ; 0x8b870 + db $3c ; flags + db 5 ; items + db 3, 1 + dbw 0, wd002 + dba Function8b880 + dba Function8b88c + dba Function8b8c8 +; 8b880 + +Function8b880: ; 8b880 + ld h, d + ld l, e + ld de, MenuSelection + lb bc, PRINTNUM_LEADINGZEROS | 1, 2 + call PrintNum + ret +; 8b88c + +Function8b88c: ; 8b88c + call OpenSRAMBank4 + ld h, d + ld l, e + push hl + ld de, String_89116 + call Function8931b + call Function8932d + jr c, .asm_8b8a3 + ld hl, 0 + add hl, bc + ld d, h + ld e, l + +.asm_8b8a3 + pop hl + push hl + call PlaceString + pop hl + ld d, $0 + ld e, $6 + add hl, de + push hl + ld de, String_89116 + call Function8931b + call Function8934a + jr c, .asm_8b8c0 + ld hl, $0006 + add hl, bc + ld d, h + ld e, l + +.asm_8b8c0 + pop hl + call PlaceString + call CloseSRAM + ret +; 8b8c8 + +Function8b8c8: ; 8b8c8 + hlcoord 0, 14 + ld b, $2 + ld c, $12 + call TextBox + ld a, [wd033] + ld b, 0 + ld c, a + ld hl, Unknown_8b903 + add hl, bc + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + ld d, h + ld e, l + hlcoord 1, 16 + call PlaceString + hlcoord 0, 13 + ld a, $f + ld [hl], a + hlcoord 19, 13 + ld a, $11 + ld [hl], a + ld a, [wMenuScrollPosition] + cp $24 + ret c + hlcoord 0, 13 + ld c, $12 + call Function8b732 + ret +; 8b903 + +Unknown_8b903: ; 8b903 + dw String_8b90b + dw String_8b919 + dw String_8b92a + dw String_8b938 + +String_8b90b: db "めいしを えらんでください@" ; Please select a noun. +String_8b919: db "どの めいしと いれかえますか?@" ; OK to swap with any noun? +String_8b92a: db "あいてを えらんでください@" ; Please select an opponent. +String_8b938: db "いれる ところを えらんでください@" ; Please select a location. +; 8b94a + +Function8b94a: ; 8b94a + ld [wd033], a + xor a + ld [wMenuScrollPosition], a + ld [wd032], a + ld [wd0e3], a + ld [wd031], a + ld a, $1 + ld [wd030], a + ret +; 8b960 + + +Function8b960: ; 8b960 (22:7960) + ld hl, MenuDataHeader_0x8b9ac + call LoadMenuDataHeader + call Function8b9e9 + jr c, .asm_8b97a + hlcoord 11, 0 + ld b, $6 + ld c, $7 + call Function8b703 + ld hl, MenuDataHeader_0x8b9b1 + jr .asm_8b987 +.asm_8b97a + hlcoord 11, 0 + ld b, $a + ld c, $7 + call Function8b703 + ld hl, MenuDataHeader_0x8b9ca +.asm_8b987 + ld a, $1 + call Function89d5e + ld hl, Function8b9ab + call Function89d85 + call ExitMenu + jr c, .asm_8b99c + call Function8b99f + jr nz, .asm_8b99d +.asm_8b99c + xor a +.asm_8b99d + ld c, a + ret + +Function8b99f: ; 8b99f (22:799f) + ld hl, wd002 + dec a + ld c, a + ld b, $0 + add hl, bc + ld a, [hl] + cp $ff + ret +; 8b9ab (22:79ab) + +Function8b9ab: ; 8b9ab + ret +; 8b9ac + +MenuDataHeader_0x8b9ac: ; 0x8b9ac + db $40 ; flags + db 00, 11 ; start coords + db 11, 19 ; end coords + +MenuDataHeader_0x8b9b1: ; 0x8b9b1 + db $40 ; flags + db 00, 11 ; start coords + db 07, 19 ; end coords + dw MenuData2_0x8b9b9 + db 1 ; default option +; 0x8b9b9 + +MenuData2_0x8b9b9: ; 0x8b9b9 + db $a0 ; flags + db 3 ; items + db "へんしゅう@" ; EDIT + db "いれかえ@" ; REPLACE + db "やめる@" ; QUIT +; 0x8b9ca + +MenuDataHeader_0x8b9ca: ; 0x8b9ca + db $40 ; flags + db 00, 11 ; start coords + db 11, 19 ; end coords + dw MenuData2_0x8b9d2 + db 1 ; default option +; 0x8b9d2 + +MenuData2_0x8b9d2: ; 0x8b9d2 + db $a0 ; flags + db 5 ; items + db "みる@" ; VIEW + db "へんしゅう@" ; EDIT + db "いれかえ@" ; REPLACE + db "けす@" ; ERASE + db "やめる@" ; QUIT +; 0x8b9e9 + +Function8b9e9: ; 8b9e9 (22:79e9) + call OpenSRAMBank4 + call Function8931b + call Function8932d + jr nc, .asm_8b9f6 + jr .asm_8b9ff +.asm_8b9f6 + ld hl, $11 + add hl, bc + call Function89b45 + jr c, .asm_8ba08 +.asm_8b9ff + call Function892b4 + and a + ld de, Unknown_8ba1c + jr .asm_8ba0c +.asm_8ba08 + ld de, Unknown_8ba1f + scf +.asm_8ba0c + push af + ld hl, wd002 +.asm_8ba10 + ld a, [de] + inc de + ld [hli], a + cp $ff + jr nz, .asm_8ba10 + call CloseSRAM + pop af + ret +; 8ba1c (22:7a1c) + +Unknown_8ba1c: ; 8b1ac + db 2, 4, -1 + +Unknown_8ba1f: ; 8ba1f + db 1, 2, 4, 3, -1 +; 8ba24 diff --git a/mobile/mobile_40.asm b/mobile/mobile_40.asm new file mode 100644 index 000000000..fa6a39fdf --- /dev/null +++ b/mobile/mobile_40.asm @@ -0,0 +1,8156 @@ +Function100000: ; 100000 +; d: 1 or 2 +; e: bank +; bc: addr + ld a, [rSVBK] + push af + ld a, 1 + ld [rSVBK], a + + call Function100022 + call Function1000ba + call Function100675 + call Function100057 + call Function10016f + call Function100276 + + push bc + call Function100301 + pop bc + + pop af + ld [rSVBK], a + ret +; 100022 + +Function100022: ; 100022 + push de + push bc + call SetRAMStateForMobile + pop bc + pop de + ld a, d + ld [wcd21], a + ld a, e + ld [wcd22], a + ld a, c + ld [wcd23], a + ld a, b + ld [wcd24], a + callba Function10127e + callba MobileFunc_106462 + callba Function106464 ; load broken gfx + callba Function11615a ; init RAM + ld hl, VramState + set 1, [hl] + ret +; 100057 + +Function100057: ; 100057 + call DisableMobile + call ReturnToMapFromSubmenu + ld hl, VramState + res 1, [hl] + ret +; 100063 + +SetRAMStateForMobile: ; 100063 + xor a + ld hl, BGMapBuffer + ld bc, $65 + call ByteFill + xor a + ld hl, wc300 + ld bc, $100 + call ByteFill + ld a, [rIE] + ld [BGMapBuffer], a + xor a + ld [hMapAnims], a + ld [hLCDCPointer], a + ret +; 100082 + +EnableMobile: ; 100082 + xor a + ld hl, OverworldMap + ld bc, OverworldMapEnd - OverworldMap + call ByteFill + + di + call DoubleSpeed + xor a + ld [rIF], a + ld a, 1 << VBLANK + 1 << LCD_STAT + 1 << TIMER + 1 << SERIAL + ld [rIE], a + xor a + ld [hMapAnims], a + ld [hLCDCPointer], a + ld a, $01 + ld [hMobileReceive], a + ld [hMobile], a + ei + + ret +; 0x1000a4 + +DisableMobile: ; 1000a4 + di + xor a + ld [hMobileReceive], a + ld [hMobile], a + xor a + ld [hVBlank], a + call NormalSpeed + xor a + ld [rIF], a + ld a, [BGMapBuffer] + ld [rIE], a + ei + ret +; 1000ba + +Function1000ba: ; 1000ba +.loop + ; call [wcd22]:([wcd23][wcd24] + [wMobileCommsJumptableIndex]) + ld hl, wcd23 + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [wMobileCommsJumptableIndex] + ld e, a + ld d, 0 + add hl, de + add hl, de + ld a, [wcd22] + call GetFarHalfword + ld a, [wcd22] + rst FarCall + + call Function1000e8 + call Function1000fa + call Function100144 + call Function100163 + ld a, [wcd2b] + and a + jr z, .loop + call DelayFrame + ret +; 1000e8 + +Function1000e8: ; 1000e8 + ld hl, wcd29 + bit 7, [hl] + ret z + callba Function115dd3 + ld hl, wcd29 + set 6, [hl] + ret +; 1000fa + +Function1000fa: ; 1000fa + ld a, [wc30d] + and a + ret z + ld hl, wcd29 + bit 4, [hl] + ret z + ld a, [wcd2b] + and a + jr nz, .asm_100117 + callba Function11619d + ld hl, wcd29 + set 6, [hl] + ret + +.asm_100117 + di + xor a + ld [rIF], a + ld a, [rIE] + and $13 + ld [rIE], a + xor a + ld [hMobileReceive], a + ld [hMobile], a + ei + + ld a, [wLinkMode] + push af + xor a + ld [wLinkMode], a + ld a, $04 + ld [wc314 + 5], a + callba Function11619d + ld hl, wcd29 + set 6, [hl] + pop af + ld [wLinkMode], a + ret +; 100144 + +Function100144: ; 100144 + ld hl, wcd29 + bit 5, [hl] + jr z, .asm_100155 + res 5, [hl] + res 2, [hl] + res 6, [hl] + call Function100320 + ret + +.asm_100155 + bit 2, [hl] + ret z + res 2, [hl] + res 6, [hl] + callba HDMATransferTileMapToWRAMBank3 + ret +; 100163 + +Function100163: ; 100163 + ld hl, wcd29 + bit 6, [hl] + ret z + res 6, [hl] + call DelayFrame + ret +; 10016f + +Function10016f: ; 10016f + ld a, [wcd2b] + cp $01 + ret z + cp $02 + ret z + cp $ff + jp z, .asm_1001f5 + cp $fe + jr z, .asm_1001c4 + cp $f5 + jr z, .asm_1001e7 + cp $f6 + jr z, .asm_1001b6 + cp $fa + jp z, .asm_1001bd + cp $f7 + jp z, .asm_1001ee + cp $f4 + jr z, .asm_1001d2 + cp $f3 + jr z, .asm_1001cb + cp $f1 + jr z, .asm_1001c4 + cp $f2 + jr z, .asm_1001c4 + cp $fc + jr z, .asm_1001e6 + cp $fb + jr z, .asm_1001af + cp $f8 + ret z + ret ; ???????????????????????????? + +.asm_1001af + ld a, $d7 + ld de, 0 + jr .asm_1001d7 + +.asm_1001b6 + ld a, $d5 + ld de, 0 + jr .asm_1001d7 + +.asm_1001bd + ld a, $d6 + ld de, 0 + jr .asm_1001d7 + +.asm_1001c4 + ld a, $d2 + ld de, 2 + jr .asm_1001d7 + +.asm_1001cb + ld a, $d1 + ld de, 1 + jr .asm_1001d7 + +.asm_1001d2 + ld a, $d0 + ld de, 0 + +.asm_1001d7 + ld [wc300], a + ld a, d + ld [wc302], a + ld a, e + ld [wc301], a + call Function10020b + ret + +.asm_1001e6 + ret + +.asm_1001e7 + ld de, String10025e + call Function100232 + ret + +.asm_1001ee + ld de, String10024d + call Function100232 + ret + +.asm_1001f5 + ld a, [wcd2c] + ld [wc300], a + ld a, [wcd2d] + ld [wc302], a + ld a, [wcd2d] + ld [wc301], a + call Function10020b + ret +; 10020b + +Function10020b: ; 10020b + xor a + ld [wc303], a + callba FadeOutPalettes + callba Function106464 + call HideSprites + call DelayFrame + + ld a, [rSVBK] + push af + ld a, $01 + ld [rSVBK], a + + callba DisplayMobileError + + pop af + ld [rSVBK], a + ret +; 100232 + +Function100232: ; 100232 + push de + callba Function106464 + call Function3f20 + call UpdateSprites + hlcoord 1, 2 + pop de + call PlaceString + call Function100320 + call JoyWaitAorB + ret +; 10024d + +String10024d: ; 10024d + db "つうしんを キャンセル しました@" +; 10025e + +String10025e: ; 10025e + db "おともだちと えらんだ へやが" + next "ちがうようです@" +; 100276 + +Function100276: ; 100276 + ld a, [wcd2b] + cp $01 + jr z, .asm_10029f + cp $02 + jr z, .asm_100296 + cp $f5 + jr z, .asm_1002a5 + cp $f6 + jr z, .asm_1002a5 + cp $f7 + jr z, .asm_100293 + cp $f8 + jr z, .asm_1002b1 + jr .asm_1002c0 + +.asm_100293 + ld c, $02 + ret + +.asm_100296 + callba Script_reloadmappart + ld c, $04 + ret + +.asm_10029f + call Function1002dc + ld c, 0 + ret + +.asm_1002a5 + callba Script_reloadmappart + call Function1002ed + ld c, $03 + ret + +.asm_1002b1 + call Function1002c9 + call Function1002dc + ld de, String10024d + call Function100232 + ld c, $02 + ret + +.asm_1002c0 + call Function1002c9 + call Function1002dc + ld c, $01 + ret +; 1002c9 + +Function1002c9: ; 1002c9 + ld hl, wcd2a + bit 0, [hl] + ret z + callba CleanUpBattleRAM + callba LoadPokemonData + ret +; 1002dc + +Function1002dc: ; 1002dc + ld a, MAPSETUP_LINKRETURN + ld [hMapEntryMethod], a + callba RunMapSetupScript + xor a + ld [hMapEntryMethod], a + call LoadStandardFont + ret +; 1002ed + +Function1002ed: ; 1002ed + callba LoadOW_BGPal7 + callba ApplyPals + ld a, $01 + ld [hCGBPalUpdate], a + call DelayFrame + ret +; 100301 + +Function100301: ; 100301 + ld hl, wcd2a + bit 1, [hl] + ret z + callba Function106464 + callba Function10202c + callba Function115dd3 + call Function100320 + call JoyWaitAorB + ret +; 100320 + +Function100320: ; 100320 + callba Mobile_ReloadMapPart + ret +; 100327 + +Function100327: ; 100327 + callba HDMATransferTileMapToWRAMBank3 + ret +; 100327 + + +Function10032e: ; 10032e + call Function10034d + ld e, a + ret nc + ld [wcd2b], a + ret +; 100337 + +Function100337: ; 100337 + call Function10032e + ret c + ld a, [wc821] + bit 4, a + jr z, .asm_100345 + ld a, e + and a + ret + +.asm_100345 + ld a, $f9 + ld e, a + ld [wcd2b], a + scf + ret +; 10034d + +Function10034d: ; 10034d + ld a, [wc821] + bit 1, a + jr nz, .asm_10036a + bit 2, a + jr nz, .asm_10037e + bit 3, a + jr nz, .asm_100366 + bit 0, a + jr nz, .asm_100364 + ld a, $01 + and a + ret + +.asm_100364 + xor a + ret + +.asm_100366 + ld a, $02 + and a + ret + +.asm_10036a + ld a, 0 + call Function3e32 + ld [wcd2c], a + ld a, h + ld [wcd2d], a + ld a, l + ld [wcd2e], a + ld a, $ff + scf + ret + +.asm_10037e + ld a, $fe + scf + ret +; 100382 + +Function100382: ; 100382 + ld a, [wcd27] + ld hl, Jumptable_10044e + rst JumpTable + ret +; 10038a + +Function10038a: ; 10038a + ld hl, wccb4 + ld a, $2e + call Function3e32 + ret +; 100393 + +Function100393: ; 100393 + ld hl, wcc60 + ld a, $3a + call Function3e32 + ret +; 10039c + +Function10039c: ; 10039c + ld hl, wcc60 + ld de, w3_d000 + ld bc, $54 + ld a, $03 + call FarCopyWRAM + ret +; 1003ab + +Function1003ab: ; 1003ab + ld hl, w3_d000 + ld de, wcc60 + ld bc, $54 + ld a, $03 + call FarCopyWRAM + ret +; 1003ba + +Function1003ba: ; 1003ba + ld hl, wccb4 + ld de, w3_d080 + ld bc, $54 + ld a, $03 + call FarCopyWRAM + ret +; 1003c9 + +Function1003c9: ; 1003c9 + ld hl, w3_d080 + ld de, wccb4 + ld bc, $54 + ld a, $03 + call FarCopyWRAM + ret +; 1003d8 + +Function1003d8: ; 1003d8 + ld hl, wccb4 + ld a, [hli] + ld c, a + ld b, 0 + push hl + add hl, bc + ld a, [BGMapPalBuffer] + ld [hl], a + pop hl + inc bc + call Function10043a + add hl, bc + ld [hl], e + inc hl + ld [hl], d + ld a, c + add $02 + ld [wccb4], a + ret +; 1003f5 + +Function1003f5: ; 1003f5 + ld a, [wcc60] + sub $03 + ld [wcc60], a + ld a, [wccb4] + sub $03 + ld [wccb4], a + ret +; 100406 + +Function100406: ; 100406 + ld a, [wcc60] + sub $02 + ld c, a + ld b, 0 + ld hl, wcc61 + call Function10043a + add hl, bc + ld a, [hli] + cp e + jr nz, .asm_100426 + ld a, [hld] + cp d + jr nz, .asm_100426 + dec hl + ld a, [BGMapPalBuffer] + cp [hl] + jr nz, .asm_10042d + xor a + ret + +.asm_100426 + ld a, $f4 + ld [wcd2b], a + jr .asm_100432 + +.asm_10042d + ld a, $f3 + ld [wcd2b], a + +.asm_100432 + push hl + ld hl, wcd7c + inc [hl] + pop hl + scf + ret +; 10043a + +Function10043a: ; 10043a + push hl + push bc + ld de, 0 +.asm_10043f + ld a, [hli] + add e + ld e, a + ld a, d + adc 0 + ld d, a + dec bc + ld a, b + or c + jr nz, .asm_10043f + pop bc + pop hl + ret +; 10044e + + +Jumptable_10044e: ; 10044e (40:444e) + dw Function10046a + dw Function10047c + dw Function100493 + dw Function1004ba + dw Function1004f4 + dw Function1004ce + dw Function1004de + dw Function1004a4 + dw Function100495 + dw Function1004ce + dw Function1004de + dw Function1004e9 + dw Function1004f4 + dw Function1004a4 + +Function10046a: ; 10046a + ld hl, BGMapPalBuffer + inc [hl] + call Function1003d8 + call Function1003ba + ld a, [wcd27] + inc a + ld [wcd27], a + ret +; 10047c + +Function10047c: ; 10047c + call Function100337 + ret c + ret z + cp $02 + jr z, .asm_100487 + jr .asm_10048d + +.asm_100487 + ld a, $08 + ld [wcd27], a + ret + +.asm_10048d + ld a, $02 + ld [wcd27], a + ret +; 100493 + +Function100493: ; 100493 + jr asm_100497 + +Function100495: ; 100495 + jr asm_100497 + +asm_100497 + call Function100337 + ret c + ret z + ld a, [wcd27] + inc a + ld [wcd27], a + ret +; 1004a4 + +Function1004a4: ; 1004a4 + call Function100406 + jr c, .asm_1004b8 + call Function1003c9 + call Function1003f5 + ld a, [wcd27] + set 7, a + ld [wcd27], a + ret + +.asm_1004b8 + scf + ret +; 1004ba + +Function1004ba: ; 1004ba + call Function10038a + and a + jr nz, .asm_1004c8 + ld a, [wcd27] + inc a + ld [wcd27], a + ret + +.asm_1004c8 + ld a, $08 + ld [wcd27], a + ret +; 1004ce + +Function1004ce: ; 1004ce + call Function100337 + ret c + ret z + cp $02 + ret nz + ld a, [wcd27] + inc a + ld [wcd27], a + ret +; 1004de + +Function1004de: ; 1004de + call Function100393 + ld a, [wcd27] + inc a + ld [wcd27], a + ret +; 1004e9 + +Function1004e9: ; 1004e9 + call Function10038a + ld a, [wcd27] + inc a + ld [wcd27], a + ret +; 1004f4 + +Function1004f4: ; 1004f4 + call Function100337 + ret c + ret z + ld a, [wcd27] + inc a + ld [wcd27], a + call Function10039c + ret +; 100504 + +Function100504: ; 100504 + push de + call Function3f20 + call UpdateSprites + pop de + hlcoord 4, 2 + call PlaceString + ret +; 100513 + +Function100513: ; 100513 + call Function3f7c + call PlaceVerticalMenuItems + call InitVerticalMenuCursor + ld hl, w2DMenuFlags1 + set 7, [hl] + ret +; 100522 + +Function100522: ; 100522 + ld a, [wcd28] + ld hl, Jumptable_10052a + rst JumpTable + ret +; 10052a + +Jumptable_10052a: ; 10052a + dw Function100534 + dw Function100545 + dw Function100545 + dw Function100545 + dw Function10054d +; 100534 + +Function100534: ; 100534 + call Function100513 + call UpdateSprites + call ApplyTilemap + ld a, [wcd28] + inc a + ld [wcd28], a + ret +; 100545 + +Function100545: ; 100545 + ld a, [wcd28] + inc a + ld [wcd28], a + ret +; 10054d + +Function10054d: ; 10054d + callba MobileMenuJoypad + ld a, c + ld hl, wMenuJoypadFilter + and [hl] + ret z + call MenuClickSound + bit 0, a + jr nz, .asm_100565 + bit 1, a + jr nz, .asm_10056f + ret + +.asm_100565 + ld a, [wcd28] + set 7, a + ld [wcd28], a + and a + ret + +.asm_10056f + ld a, [wcd28] + set 7, a + ld [wcd28], a + scf + ret +; 100579 + +Function100579: ; 100579 + ld a, [wcd26] + ld hl, Jumptable_100581 + rst JumpTable + ret +; 100581 + +Jumptable_100581: ; 100581 + dw Function100585 + dw Function100597 +; 100585 + +Function100585: ; 100585 + ld hl, MenuDataHeader_1005b2 + call LoadMenuDataHeader + ld a, 0 + ld [wcd28], a + ld a, [wcd26] + inc a + ld [wcd26], a + +Function100597: ; 100597 + call Function100522 + ld a, [wcd28] + bit 7, a + ret z + jr nc, .asm_1005a6 + xor a + ld [wMenuCursorY], a + +.asm_1005a6 + call ExitMenu + ld a, [wcd26] + set 7, a + ld [wcd26], a + ret +; 1005b2 + +MenuDataHeader_1005b2: ; 1005b2 + db $40 ; flags + db 6, 14 + db 10, 19 + dw MenuData2_1005ba + db 1 ; default option + +MenuData2_1005ba: + db $c0 ; flags + db 2 + db "はい@" + db "いいえ@" +; 1005c3 + +Function1005c3: ; 1005c3 + ld a, [wcd26] + ld hl, Jumptable_1005cb + rst JumpTable + ret +; 1005cb + +Jumptable_1005cb: ; 1005cb + dw Function1005cf + dw Function1005e1 +; 1005cf + +Function1005cf: ; 1005cf + ld hl, MenuDataHeader_1005fc + call LoadMenuDataHeader + ld a, 0 + ld [wcd28], a + ld a, [wcd26] + inc a + ld [wcd26], a + +Function1005e1: ; 1005e1 + call Function100522 + ld a, [wcd28] + bit 7, a + ret z + jr nc, .asm_1005f0 + xor a + ld [wMenuCursorY], a +.asm_1005f0 + call ExitMenu + ld a, [wcd26] + set 7, a + ld [wcd26], a + ret +; 1005fc + +MenuDataHeader_1005fc: ; 1005fc + db $40 ; flags + db 6, 14 + db 10, 19 + dw MenuData2_100604 + db 1 ; default option + +MenuData2_100604: ; 100604 + db $c0 ; flags + db 2 + db "かける@" + db "まつ@" +; 10060d + +Mobile_CommunicationStandby: ; 10060d + hlcoord 3, 10 + ld b, 1 + ld c, 11 + call Function3eea + ld de, .String + hlcoord 4, 11 + call PlaceString + ret +; 100621 + +.String: ; 100621 + db "つうしんたいきちゅう!@" +; 10062d + +AdvanceMobileInactivityTimerAndCheckExpired: ; 10062d + push bc + call IncrementMobileInactivityTimerByCFrames + pop bc + ld a, [wMobileInactivityTimerMinutes] + cp b + jr nc, .timed_out + and a + ret + +.timed_out + ld a, $fa + ld [wcd2b], a + scf + ret +; 100641 + +StartMobileInactivityTimer: ; 100641 + xor a + ld [wMobileInactivityTimerMinutes], a + ld [wMobileInactivityTimerSeconds], a + ld [wMobileInactivityTimerFrames], a + ret +; 10064c + +IncrementMobileInactivityTimerBy1Frame: ; 10064c + ld c, 1 +IncrementMobileInactivityTimerByCFrames: ; 10064e + ld hl, wMobileInactivityTimerFrames ; timer? + ld a, [hl] + add c + cp 60 + jr c, .seconds + xor a + +.seconds + ld [hld], a + ret c + ld a, [hl] + inc a + cp 60 + jr c, .minutes + xor a + +.minutes + ld [hld], a + ret c + inc [hl] + ret +; 100665 + +Function100665: ; 100665 + call UpdateTime + ld hl, wcd36 + ld a, [hHours] + ld [hli], a + ld a, [hMinutes] + ld [hli], a + ld a, [hSeconds] + ld [hl], a + ret +; 100675 + +Function100675: ; 100675 + ld hl, wcd2a + bit 2, [hl] + set 2, [hl] + ret nz + call Function1006d3 + ret +; 100681 + +Function100681: ; 100681 + push hl + ld hl, wcd2a + bit 2, [hl] + ld hl, wcd2a + set 2, [hl] + pop hl + jr nz, .asm_100694 + push hl + call Function1006d3 + pop hl +.asm_100694 + ld de, wcd32 + +Function100697: ; 100697 + ld a, [de] + and a + jr nz, .asm_1006bb + inc de + push de + call .asm_1006b4 + ld de, String1006c2 + call PlaceString + ld h, b + ld l, c + pop de + inc de + call .asm_1006b4 + ld de, String1006c6 + call PlaceString + ret + +.asm_1006b4 + lb bc, PRINTNUM_LEADINGZEROS | 1, 2 + call PrintNum + ret + +.asm_1006bb + ld de, String1006ca + call PlaceString + ret +; 1006c2 + +String1006c2: ; 1006c2 + db "ふん @" +String1006c6: ; 1006c6 + db "びょう@" +String1006ca: ; 1006ca + db "1じかんいじょう@" +; 1006d3 + +Function1006d3: ; 1006d3 + call UpdateTime + ld de, wcd34 + ld hl, wcd38 + +Function1006dc: ; 1006dc + ld a, [hld] + ld c, a + ld a, [hSeconds] + sub c + jr nc, .asm_1006e5 + add $3c + +.asm_1006e5 + ld [de], a + dec de + ld a, [hld] + ld c, a + ld a, [hMinutes] + sbc c + jr nc, .asm_1006f0 + add $3c + +.asm_1006f0 + ld [de], a + dec de + ld a, [hl] + ld c, a + ld a, [hHours] + sbc c + jr nc, .asm_1006fb + add $18 + +.asm_1006fb + ld [de], a + ret +; 1006fd + +Function1006fd: ; 1006fd + ld a, $04 + ld hl, $a800 + call GetSRAMBank + xor a + ld [hli], a + ld [hli], a + ld [hli], a + call CloseSRAM + ret +; 10070d + +Function10070d: ; 10070d + ld a, $04 + ld hl, $a800 + call GetSRAMBank + xor a + ld [hli], a + ld a, $0a + ld [hli], a + xor a + ld [hli], a + call CloseSRAM + ret +; 100720 + +Function100720: ; 100720 + xor a + ld [wcd6a], a + call UpdateTime + ld a, [hHours] + ld [wcd72], a + ld a, [hMinutes] + ld [wcd73], a + ld a, [hSeconds] + ld [wcd74], a + ld a, $04 + ld hl, $a800 + call GetSRAMBank + ld a, [hli] + ld [wcd6c], a + ld a, [hli] + ld [wcd6d], a + ld a, [hli] + ld [wcd6e], a + call CloseSRAM + ld a, [wcd6d] + ld [wcd6b], a + ret +; 100754 + +Function100754: ; 100754 + call UpdateTime + ld a, [hHours] + ld [wcd72], a + ld a, [hMinutes] + ld [wcd73], a + ld a, [hSeconds] + ld [wcd74], a + ld a, [wcd6d] + ld [wcd6b], a + ld hl, wcd2a + res 6, [hl] + ret +; 100772 + +Function100772: ; 100772 + push de + ld hl, wcd6c + ld a, [de] + cp [hl] + jr c, .asm_10079a + jr nz, .asm_10078c + inc hl + inc de + ld a, [de] + cp [hl] + jr c, .asm_10079a + jr nz, .asm_10078c + inc hl + inc de + ld a, [de] + cp [hl] + jr c, .asm_10079a + jr z, .asm_10079a + +.asm_10078c + pop hl + ld a, [hli] + ld [wcd6c], a + ld a, [hli] + ld [wcd6d], a + ld a, [hli] + ld [wcd6e], a + ret + +.asm_10079a + pop de + ret +; 10079c + + +Function10079c: ; 10079c + ld a, [wcd21] + cp $01 + jr nz, .dont_quit + ld hl, wcd2a + bit 5, [hl] + jr nz, .dont_quit + ld hl, wcd2a + bit 6, [hl] + jr nz, .dont_quit + ld a, [wcd6a] + add c + cp 60 + jr nc, .overflow + ld [wcd6a], a + and a + ret + +.overflow + sub 60 + ld [wcd6a], a + ld d, b + push de + call Function1007f6 + pop de + jr c, .quit + ld a, c + and a + jr nz, .quit + ld a, b + cp 10 + jr nc, .quit + ld a, d + and a + ret z + ld a, [wcd6b] + cp b + ret z + ld a, b + ld [wcd6b], a + call Function1008e0 + and a + ret + +.quit + call Function1008e0 + ld hl, wcd2a + set 4, [hl] + ld a, $fc + ld [wcd2b], a + scf + ret + +.dont_quit + and a + ret +; 1007f6 + +Function1007f6: ; 1007f6 + call UpdateTime + ld hl, wcd74 + ld de, wcd71 + call Function1006dc + ld a, $04 + call GetSRAMBank + ld hl, $a802 + call Function100826 + call CloseSRAM + ld hl, wcd6e + call Function100826 + ld a, [hHours] + ld [wcd72], a + ld a, [hMinutes] + ld [wcd73], a + ld a, [hSeconds] + ld [wcd74], a + ret +; 100826 + +Function100826: ; 100826 + ld a, [wcd71] + add [hl] + sub $3c + jr nc, .asm_100830 + add $3c + +.asm_100830 + ld [hld], a + ccf + ld a, [BGMapBufferPtrs] + adc [hl] + sub $3c + jr nc, .asm_10083c + add $3c + +.asm_10083c + ld [hld], a + ld b, a + ccf + ld a, [wcd6f] + adc [hl] + ld [hl], a + ld c, a + ret +; 100846 + +Function100846: ; 100846 + ld hl, wcd2a + bit 5, [hl] + jr nz, .asm_10087c + ld a, [wcd6e] + ld c, a + ld a, 0 + sub c + jr nc, .asm_100858 + add $3c + +.asm_100858 + ld [StringBuffer2 + 2], a + ld a, [wcd6d] + ld c, a + ld a, $0a + sbc c + ld [StringBuffer2 + 1], a + xor a + ld [StringBuffer2], a + ld de, String_10088e + hlcoord 1, 14 + call PlaceString + ld de, StringBuffer2 + hlcoord 4, 16 + call Function100697 + ret + +.asm_10087c + ld de, String_10088e + hlcoord 1, 14 + call PlaceString + ld h, b + ld l, c + ld de, String_10089f + call PlaceString + ret +; 10088e + +String_10088e: ; 10088e + db "モバイルたいせん できる" + next "じかん@" +; 10089f + +String_10089f: ; 10089f + db " むせいげん@" +; 1008a6 + +Function1008a6: ; 1008a6 + ld a, $04 + ld hl, $a800 + call GetSRAMBank + ld a, [hli] + ld [StringBuffer2], a + ld a, [hli] + ld [StringBuffer2 + 1], a + ld a, [hli] + ld [StringBuffer2 + 2], a + call CloseSRAM + ld a, [StringBuffer2 + 2] + ld b, a + ld a, 0 + sub b + jr nc, .asm_1008c8 + add $3c + +.asm_1008c8 + ld b, a + ld a, [StringBuffer2 + 1] + ld c, a + ld a, $0a + sbc c + ld c, a + jr c, .asm_1008da + ld a, [StringBuffer2] + and a + jr nz, .asm_1008da + ret + +.asm_1008da + call Function10070d + ld c, 0 + ret +; 1008e0 + + +Function1008e0: ; 1008e0 + ld a, [hBGMapMode] + ld b, a + ld a, [hVBlank] + ld c, a + push bc + xor a + ld [hBGMapMode], a + ld a, $03 + ld [hVBlank], a + call Function100970 + call Function100902 + call Function100989 + call DelayFrame + pop bc + ld a, c + ld [hVBlank], a + ld a, b + ld [hBGMapMode], a + ret +; 100902 + +Function100902: ; 100902 + hlcoord 3, 10 + ld b, $01 + ld c, $0b + call TextBox + ld a, [wcd6d] + ld c, a + ld a, $0a + sub c + ld [StringBuffer2], a + jr z, .asm_10093f + ld de, .string_100966 + hlcoord 4, 11 + call PlaceString + hlcoord 8, 11 + lb bc, 1, 2 + ld de, StringBuffer2 + call PrintNum + ld de, SFX_TWO_PC_BEEPS + call PlaySFX + callba ReloadMapPart + ld c, $3c + call DelayFrames + ret + +.asm_10093f + ld de, .string_10095a + hlcoord 4, 11 + call PlaceString + ld de, SFX_4_NOTE_DITTY + call PlaySFX + callba ReloadMapPart + ld c, 120 + call DelayFrames + ret +; 10095a + +.string_10095a ; 10095a + db "たいせん しゅうりょう@" +.string_100966 ; 100966 + db "のこり ふん", $e7, "@" +; 100970 + + +Function100970: ; 100970 + hlcoord 0, 0 + ld de, w3_dc00 + call Function1009a5 + hlcoord 0, 0, AttrMap + ld de, w3_dd68 + call Function1009a5 + call Function1009d2 + call Function1009ae + ret +; 100989 + +Function100989: ; 100989 + ld hl, w3_dc00 + decoord 0, 0 + call Function1009a5 + call Function1009ae + callba ReloadMapPart + ld hl, w3_dd68 + decoord 0, 0, AttrMap + call Function1009a5 + ret +; 1009a5 + +Function1009a5: ; 1009a5 + ld bc, SCREEN_WIDTH * SCREEN_HEIGHT + ld a, $03 + call FarCopyWRAM + ret +; 1009ae + +Function1009ae: ; 1009ae + ld a, [rSVBK] + push af + ld a, $03 + ld [rSVBK], a + + ld hl, w3_d800 + decoord 0, 0, AttrMap + ld c, SCREEN_WIDTH + ld b, SCREEN_HEIGHT +.loop_row + push bc +.loop_col + ld a, [hli] + ld [de], a + inc de + dec c + jr nz, .loop_col + ld bc, BG_MAP_WIDTH - SCREEN_WIDTH + add hl, bc + pop bc + dec b + jr nz, .loop_row + + pop af + ld [rSVBK], a + ret +; 1009d2 + +Function1009d2: ; 1009d2 + ld a, [rSVBK] + push af + ld a, $03 + ld [rSVBK], a + + ld a, [rVBK] + push af + ld a, $01 + ld [rVBK], a + + ld hl, w3_d800 + debgcoord 0, 0 + lb bc, $03, $24 + call Get2bpp + + pop af + ld [rVBK], a + + pop af + ld [rSVBK], a + ret +; 1009f3 + +Function1009f3: ; 1009f3 + ld a, [hJoyDown] + and SELECT + A_BUTTON + cp SELECT + A_BUTTON + jr nz, .select_a + ld hl, wcd2a + set 4, [hl] + ld a, $f8 + ld [wcd2b], a + scf + ret + +.select_a + xor a + ret +; 100a09 + +_LinkBattleSendReceiveAction: ; 100a09 + call .StageForSend + ld [wd431], a + callba PlaceWaitingText + ld a, [wLinkMode] + cp LINK_MOBILE + jr nz, .not_mobile + + call .MobileBattle_SendReceiveAction + call Function100da5 + callba FinishBattleAnim + jr .done + +.not_mobile + call .LinkBattle_SendReceiveAction + +.done + ret +; 100a2e + +.StageForSend: ; 100a2e + ld a, [wPlayerAction] + and a + jr nz, .switch + ld a, [CurPlayerMove] + ld b, BATTLEACTION_E + cp STRUGGLE + jr z, .struggle + ld b, BATTLEACTION_D + cp $ff + jr z, .struggle + ld a, [CurMoveNum] + jr .use_move + +.switch + ld a, [CurPartyMon] + add BATTLEACTION_SWITCH1 + jr .use_move + +.struggle + ld a, b + +.use_move + and $0f + ret +; 100a53 + +.LinkBattle_SendReceiveAction: ; 100a53 + ld a, [wd431] + ld [wPlayerLinkAction], a + ld a, $ff + ld [wOtherPlayerLinkAction], a +.waiting + call LinkTransfer + call DelayFrame + ld a, [wOtherPlayerLinkAction] + inc a + jr z, .waiting + + ld b, 10 +.receive + call DelayFrame + call LinkTransfer + dec b + jr nz, .receive + + ld b, 10 +.acknowledge + call DelayFrame + call LinkDataReceived + dec b + jr nz, .acknowledge + + ld a, [wOtherPlayerLinkAction] + ld [wBattleAction], a + ret +; 100a87 + +.MobileBattle_SendReceiveAction: ; 100a87 + call Function100acf + call StartMobileInactivityTimer + ld a, 0 + ld [wcd27], a +.asm_100a92 + call DelayFrame + call GetJoypad + callba Function100382 + ld c, $01 + ld b, $03 + push bc + call AdvanceMobileInactivityTimerAndCheckExpired + pop bc + jr c, .asm_100ac7 + ld b, $01 + call Function10079c + jr c, .asm_100ac7 + call Function1009f3 + jr c, .asm_100ac7 + ld a, [wcd2b] + and a + jr nz, .asm_100ac7 + ld a, [wcd27] + bit 7, a + jr z, .asm_100a92 + call Function100ae7 + jr .asm_100ace + +.asm_100ac7 + ld a, $0f + ld [wd430], a + jr .asm_100ace + +.asm_100ace + ret +; 100acf + +Function100acf: ; 100acf + ld de, Unknown_100b0a + ld hl, wccb5 + ld a, [wd431] + ld [hli], a + ld c, $01 +.asm_100adb + ld a, [de] + inc de + ld [hli], a + inc c + and a + jr nz, .asm_100adb + ld a, c + ld [wccb4], a + ret +; 100ae7 + +Function100ae7: ; 100ae7 + ld de, Unknown_100b0a + ld hl, wcc62 +.asm_100aed + ld a, [de] + inc de + and a + jr z, .asm_100af8 + cp [hl] + jr nz, .asm_100aff + inc hl + jr .asm_100aed + +.asm_100af8 + ld a, [wcc61] + ld [wd430], a + ret + +.asm_100aff + ld a, $0f + ld [wd430], a + ld a, $f1 + ld [wcd2b], a + ret +; 100b0a + + +SECTION "tetsuji", ROMX + + charmap " ", $20 ; revert to ascii + +Unknown_100b0a: ; 100b0a + db "tetsuji", 0 +; 100b12 + + +SECTION "bank40_2", ROMX + +Function100b12: ; 100b12 + call Function100dd8 + ret c + ld hl, BattleMenuDataHeader + ld a, BANK(BattleMenuDataHeader) + ld de, LoadMenuDataHeader + call FarCall_de + ld a, BANK(BattleMenuDataHeader) + ld [wMenuData2_2DMenuItemStringsBank], a + ld a, [wBattleMenuCursorBuffer] + ld [wMenuCursorBuffer], a + call Function100e72 + call Function100b45 + callba InitPartyMenuBGPal7 + call Function100ed4 + ld a, [wMenuCursorBuffer] + ld [wBattleMenuCursorBuffer], a + call ExitMenu + ret +; 100b45 + +Function100b45: ; 100b45 + call Function100b7a +.loop + call Mobile_SetOverworldDelay + callba MobileMenuJoypad + push bc + callba HDMATransferTileMapToWRAMBank3 + call Function100e2d + pop bc + jr c, .asm_100b6b + ld a, [wMenuJoypadFilter] + and c + jr z, .loop + callba Mobile_GetMenuSelection + ret + +.asm_100b6b + ld a, [w2DMenuNumCols] + ld c, a + ld a, [w2DMenuNumRows] + call SimpleMultiply + ld [wMenuCursorBuffer], a + and a + ret +; 100b7a + +Function100b7a: ; 100b7a + ld hl, CopyMenuData2 + ld a, [wMenuData2_2DMenuItemStringsBank] + rst FarCall + callba Draw2DMenu + callba MobileTextBorder + call UpdateSprites + call ApplyTilemap + callba Init2DMenuCursorPosition + ld hl, w2DMenuFlags1 + set 7, [hl] + ret +; 100b9f + +MobileMoveSelectionScreen: ; 100b9f + xor a + ld [wMoveSwapBuffer], a + callba CheckPlayerHasUsableMoves + ret z + call Function100dd8 + jp c, xor_a_dec_a + call Function100e72 + call .GetMoveSelection + push af + callba InitPartyMenuBGPal7 + call Function100ed4 + pop af + ret +; 100bc2 + +.GetMoveSelection: ; 100bc2 + xor a + ld [hBGMapMode], a + call Function100c74 + call Function100c98 +.master_loop + callba MoveInfoBox +.loop + call Mobile_SetOverworldDelay + callba MobileMenuJoypad + push bc + callba HDMATransferTileMapToWRAMBank3 + call Function100e2d + pop bc + jr c, .b_button + ld a, [wMenuJoypadFilter] + and c + bit D_UP_F, a + jp nz, .d_up + bit D_DOWN_F, a + jp nz, .d_down + bit A_BUTTON_F, a + jr nz, .a_button + bit B_BUTTON_F, a + jr nz, .b_button + jr .loop + +.d_up + ld a, [wMenuCursorY] + and a + jp nz, .master_loop + ld a, [wNumMoves] + inc a + ld [wMenuCursorY], a + jp .master_loop + +.d_down + ld a, [wMenuCursorY] + ld b, a + ld a, [wNumMoves] + inc a + inc a + cp b + jp nz, .master_loop + ld a, $01 + ld [wMenuCursorY], a + jp .master_loop + +.b_button + ld a, [wMenuCursorY] + dec a + ld [CurMoveNum], a + ld a, $01 + and a + ret + +.a_button + ld a, [wMenuCursorY] + dec a + ld [CurMoveNum], a + ld a, [wMenuCursorY] + dec a + ld c, a + ld b, 0 + ld hl, BattleMonPP + add hl, bc + ld a, [hl] + and $3f + jr z, .no_pp_left + ld a, [PlayerDisableCount] + swap a + and $0f + dec a + cp c + jr z, .move_disabled + ld a, [wMenuCursorY] + dec a + ld c, a + ld b, 0 + ld hl, BattleMonMoves + add hl, bc + ld a, [hl] + ld [CurPlayerMove], a + xor a + ret + +.move_disabled + ld hl, BattleText_TheMoveIsDisabled + jr .print_text + +.no_pp_left + ld hl, BattleText_TheresNoPPLeftForThisMove + +.print_text + call StdBattleTextBox + call Call_LoadTempTileMapToTileMap + jp .GetMoveSelection +; 100c74 + +Function100c74: ; 100c74 + hlcoord 0, 8 + ld b, 8 + ld c, 8 + call TextBox + ld hl, BattleMonMoves + ld de, wListMoves_MoveIndicesBuffer + ld bc, NUM_MOVES + call CopyBytes + ld a, SCREEN_WIDTH * 2 + ld [Buffer1], a + hlcoord 2, 10 + predef ListMoves + ret +; 100c98 + +Function100c98: ; 100c98 + ld de, .attrs + call SetMenuAttributes + ld a, [wNumMoves] + inc a + ld [w2DMenuNumRows], a + ld a, [CurMoveNum] + inc a + ld [wMenuCursorY], a + ret +; 100cad + +.attrs ; 100cad + db 10, 1 + db 255, 1 + db $a0, $00 + dn 2, 0 + db D_UP | D_DOWN | A_BUTTON | B_BUTTON + +Mobile_PartyMenuSelect: ; 100cb5 + call Function100dd8 + ret c + ld hl, w2DMenuFlags1 + set 7, [hl] + res 6, [hl] +.loop + call Mobile_SetOverworldDelay + callba MobileMenuJoypad + push bc + callba PlaySpriteAnimations + callba HDMATransferTileMapToWRAMBank3 + call MobileComms_CheckInactivityTimer + pop bc + jr c, .done + ld a, [wMenuJoypadFilter] + and c + jr z, .loop + call PlaceHollowCursor + ld a, [PartyCount] + inc a + ld b, a + ld a, [wMenuCursorY] + cp b + jr z, .done + ld [wPartyMenuCursor], a + ld a, [hJoyLast] + ld b, a + bit 1, b + jr nz, .done + ld a, [wMenuCursorY] + 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 + +.done + ld de, SFX_READ_TEXT_2 + call PlaySFX + call WaitSFX + scf + ret +; 100d22 + +MobileBattleMonMenu: ; 100d22 + call Function100dd8 + ret c + call Function100d67 + ld hl, w2DMenuFlags1 + set 7, [hl] + res 6, [hl] +.asm_100d30 + call Mobile_SetOverworldDelay + callba MobileMenuJoypad + push bc + callba PlaySpriteAnimations + callba HDMATransferTileMapToWRAMBank3 + call MobileComms_CheckInactivityTimer + pop bc + jr c, .asm_100d54 + ld a, [wMenuJoypadFilter] + and c + jr nz, .asm_100d56 + jr .asm_100d30 + +.asm_100d54 + scf + ret + +.asm_100d56 + push af + ld de, SFX_READ_TEXT_2 + call PlaySFX + pop af + bit 1, a + jr z, .asm_100d65 + ret z + scf + ret + +.asm_100d65 + and a + ret +; 100d67 + +Function100d67: ; 100d67 + ld hl, .MenuDataHeader + call CopyMenuDataHeader + xor a + ld [hBGMapMode], a + call MenuBox + call UpdateSprites + call PlaceVerticalMenuItems + call WaitBGMap + call CopyMenuData2 + call InitVerticalMenuCursor + ld hl, w2DMenuFlags1 + set 6, [hl] + ret +; 100d88 + +.MenuDataHeader: ; 100d88 + db 0 ; flags + db 11, 11 ; start coords + db 17, 19 ; end coords + dw .MenuData2 + db 1 ; default option + +.MenuData2: ; 100d90 + db $c0 ; flags + db 3 + db "いれかえる@" ; TRADE + db "つよさをみる@" ; STATS + db "キャンセル@" ; CANCEL +; 100da5 + +Function100da5: ; 100da5 + ld hl, wcd2a + res 3, [hl] + ld hl, wcd29 + res 0, [hl] + ret +; 100db0 + +Function100db0: ; 100db0 + ld hl, wcd2a + bit 3, [hl] + jr nz, .asm_100dbe + ld hl, wcd2a + set 3, [hl] + scf + ret + +.asm_100dbe + xor a + ret +; 100dc0 + + + +Function100dc0: ; 100dc0 + ld a, [wLinkMode] + cp LINK_MOBILE + jr nz, .mobile + ld hl, wcd2a + bit 3, [hl] + jr z, .mobile + scf + ret + +.mobile + xor a + ret +; 100dd2 + +Mobile_SetOverworldDelay: ; 100dd2 + ld a, 30 + ld [OverworldDelay], a + ret +; 100dd8 + +Function100dd8: ; 100dd8 + ld c, $01 + ld b, $03 + callba AdvanceMobileInactivityTimerAndCheckExpired + jr c, .asm_100dfb + ld c, $3c + ld b, $01 + call Function10079c + jr c, .asm_100dfb + callba Function10032e + ld a, [wcd2b] + and a + jr nz, .asm_100dfb + xor a + ret + +.asm_100dfb + scf + ret +; 100dfd + +MobileComms_CheckInactivityTimer: ; 100dfd + ld a, [OverworldDelay] + ld c, a + ld a, 30 + sub c + ld c, a + ld b, 3 + push bc + callba AdvanceMobileInactivityTimerAndCheckExpired ; useless to farcall + pop bc + jr c, .quit + ld b, 1 + call Function10079c + jr c, .quit + call Function1009f3 + jr c, .quit + callba Function10032e ; useless to farcall + ld a, [wcd2b] + and a + jr nz, .quit + xor a + ret + +.quit + scf + ret +; 100e2d + +Function100e2d: ; 100e2d + ld a, [OverworldDelay] + ld c, a + ld a, 30 + sub c + ld c, a + ld b, 3 + push bc + callba AdvanceMobileInactivityTimerAndCheckExpired + pop bc + jr c, .asm_100e61 + ld b, 1 + call Function10079c + jr c, .asm_100e61 + call Function1009f3 + jr c, .asm_100e61 + callba Function10032e + ld a, [wcd2b] + and a + jr nz, .asm_100e61 + call Function100e63 + call Function100e84 + xor a + ret + +.asm_100e61 + scf + ret +; 100e63 + +Function100e63: ; 100e63 + ld a, e + cp $02 + ret nz + call Function100db0 + ret nc + ld de, SFX_ELEVATOR_END + call PlaySFX + ret +; 100e72 + +Function100e72: ; 100e72 + xor a + ld hl, wcd29 + bit 0, [hl] + jr z, .asm_100e7c + ld a, $0a + +.asm_100e7c + ld [wcd67], a + xor a + ld [wcd68], a + ret +; 100e84 + +Function100e84: ; 100e84 + ld a, [wcd67] + ld hl, Jumptable_100e8c + rst JumpTable + ret +; 100e8c + + +Jumptable_100e8c: ; 100e8c (40:4e8c) + dw Function100ea2 + dw Function100eae + dw Function100eb4 + dw Function100eae + dw Function100eb4 + dw Function100eae + dw Function100eb4 + dw Function100eae + dw Function100eb4 + dw Function100eae + dw Function100ec4 + + +Function100ea2: ; 100ea2 (40:4ea2) + call Function100dc0 + ret nc + ld hl, wcd29 + set 0, [hl] + call Function100ec5 + + +Function100eae: ; 100eae + scf + call Function100eca + jr asm_100eb8 + +Function100eb4: ; 100eb4 + and a + call Function100eca + +asm_100eb8 + ld hl, wcd68 + inc [hl] + ld a, [hl] + cp $02 + ret c + ld [hl], 0 + jr Function100ec5 + +Function100ec4: ; 100ec4 + ret + +Function100ec5 + ld hl, wcd67 + inc [hl] + ret +; 100eca + +Function100eca: ; 100eca + callba Mobile_InitPartyMenuBGPal7 + call Function100ed4 + ret +; 100ed4 + +Function100ed4: ; 100ed4 + callba ApplyPals + ld a, $01 + ld [hCGBPalUpdate], a + ret +; 100edf + +Function100edf: ; 100edf + ld hl, Unknown_100fc0 + ld c, 1 + jr asm_100f02 + +Function100ee6: ; 100ee6 + ld hl, Unknown_100fc0 + ld c, 2 + jr asm_100f02 + +Function100eed: ; 100eed + ld hl, Unknown_100feb + ld c, 1 + jr asm_100f02 + +Function100ef4: ; 100ef4 + ld hl, Unknown_100ff3 + ld c, 1 + jr asm_100f02 + +Function100efb: ; 100efb + ld hl, Unknown_10102c + ld c, 1 + jr asm_100f02 + +asm_100f02: + ld a, c + ld [StringBuffer2], a + ; someting that was previously stored in de gets backed up to here + ld a, e + ld [StringBuffer2 + 1], a + ld a, d + ld [StringBuffer2 + 2], a + ; empty this + xor a + ld [StringBuffer2 + 4], a + ld [StringBuffer2 + 5], a +.loop + ld a, [hl] + cp $ff + jr z, .done + ld [StringBuffer2 + 3], a ; bank + push hl + inc hl + ; addr 1 + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + ; size + ld a, [hli] + ld c, a + ld a, [hli] + ld b, a + ; addr 2 + ld a, [hli] + ld h, [hl] + ld l, a + call Function100f3d + ; next line + pop hl + ld de, 7 + add hl, de + jr .loop + +.done + ; recover the values into bc + ld a, [StringBuffer2 + 4] + ld c, a + ld a, [StringBuffer2 + 5] + ld b, a + ret +; 100f3d + +Function100f3d: ; 100f3d + ; parameter + ld a, [StringBuffer2] + cp $02 + jr z, .two + cp $01 + jr z, .one + cp $03 + jr z, .three + ret + +.three + ; what was once in de gets copied to hl, + ; modified by Function100f8d, and put back + ; into this backup + ld a, [StringBuffer2 + 1] + ld l, a + ld a, [StringBuffer2 + 2] + ld h, a + call Function100f8d + ld a, l + ld [StringBuffer2 + 1], a + ld a, h + ld [StringBuffer2 + 2], a + ret + +.two + ; hl gets backed up to de, then + ; do the same as in .three + ld d, h + ld e, l + ld a, [StringBuffer2 + 1] + ld l, a + ld a, [StringBuffer2 + 2] + ld h, a + call Function100f8d + ld a, l + ld [StringBuffer2 + 1], a + ld a, h + ld [StringBuffer2 + 2], a + ret + +.one + ; de gets copied to hl, then + ; load the backup into de, + ; finally run Function100f8d + ; and store the de result + ld h, d + ld l, e + ld a, [StringBuffer2 + 1] + ld e, a + ld a, [StringBuffer2 + 2] + ld d, a + call Function100f8d + ld a, e + ld [StringBuffer2 + 1], a + ld a, d + ld [StringBuffer2 + 2], a + ret +; 100f8d + +Function100f8d: ; 100f8d + push hl + ld a, [StringBuffer2 + 4] + ld l, a + ld a, [StringBuffer2 + 5] + ld h, a + add hl, bc + ld a, l + ld [StringBuffer2 + 4], a + ld a, h + ld [StringBuffer2 + 5], a + pop hl + ld a, [StringBuffer2 + 3] + bit 7, a + res 7, a + jr z, .sram + and a + jr nz, .far_wram + call CopyBytes + ret + +.far_wram + and $7f + call FarCopyWRAM + ret + +.sram + call GetSRAMBank + call CopyBytes + call CloseSRAM + ret +; 100fc0 + +Unknown_100fc0: ; 100fc0 + ; first byte: + ; Bit 7 set: Not SRAM + ; Lower 7 bits: Bank + ; Address, size (dw), address + dbwww $80, PlayerName, NAME_LENGTH, OTPlayerName + dbwww $80, PartyCount, 1 + PARTY_LENGTH + 1, OTPartyCount + dbwww $80, PlayerID, 2, OTPlayerID + dbwww $80, PartyMons, PARTYMON_STRUCT_LENGTH * PARTY_LENGTH, OTPartyMons + dbwww $80, PartyMonOT, NAME_LENGTH * PARTY_LENGTH, OTPartyMonOT + dbwww $80, PartyMonNicknames, PKMN_NAME_LENGTH * PARTY_LENGTH, OTPartyMonNicknames + db -1 + +Unknown_100feb: ; 100feb + dbwww $00, sPartyMail, MAIL_STRUCT_LENGTH * PARTY_LENGTH, NULL + db -1 + +Unknown_100ff3: ; 100ff3 + dbwww $80, wdc41, 1, NULL + dbwww $80, PlayerName, NAME_LENGTH, NULL + dbwww $80, PlayerName, NAME_LENGTH, NULL + dbwww $80, PlayerID, 2, NULL + dbwww $80, wSecretID, 2, NULL + dbwww $80, PlayerGender, 1, NULL + dbwww $04, $a603, 8, NULL + dbwww $04, $a007, PARTYMON_STRUCT_LENGTH, NULL + db -1 + +Unknown_10102c: ; 10102c + dbwww $80, OTPlayerName, NAME_LENGTH, NULL + dbwww $80, OTPlayerID, 2, NULL + dbwww $80, OTPartyMonNicknames, PKMN_NAME_LENGTH * PARTY_LENGTH, NULL + dbwww $80, OTPartyMonOT, NAME_LENGTH * PARTY_LENGTH, NULL + dbwww $80, OTPartyMons, PARTYMON_STRUCT_LENGTH * PARTY_LENGTH, NULL + db -1 +; 10104f + +Function101050: ; 101050 + call Function10107d + ld a, [OTPartyCount] +rept 2 ; ??? + ld hl, wc608 +endr + ld bc, wc7bb - wc608 + call Function1010de + ld hl, wc7bb + ld [hl], e + inc hl + ld [hl], d + ld a, $07 + call GetSRAMBank + ld hl, wc608 + ld de, $a001 + ld bc, wc7bd - wc608 + call CopyBytes + call CloseSRAM + ret +; 10107d + +Function10107d: ; 10107d + xor a + ld hl, wc608 + ld bc, wc7bd - wc608 + call ByteFill + ld hl, OTPlayerName + ld de, wc608 + ld bc, NAME_LENGTH + call CopyBytes + ld hl, wd271 + ld a, [hli] + ld [wc608 + 11], a + ld a, [hl] + ld [wc608 + 12], a + ld hl, OTPartyMonNicknames + ld de, wc608 + 13 + ld bc, NAME_LENGTH + call .CopyAllFromOT + ld hl, OTPartyMonOT + ld de, OTClassName + 1 + ld bc, NAME_LENGTH + call .CopyAllFromOT + ld hl, OTPartyMon1Species + ld de, $c699 + ld bc, PARTYMON_STRUCT_LENGTH + call .CopyAllFromOT + ld a, $50 + ld [wc7b9], a + ld a, $33 + ld [wc7ba], a + ret +; 1010cd + +.CopyAllFromOT: ; 1010cd + push hl + ld hl, 0 + ld a, [OTPartyCount] + call AddNTimes + ld b, h + ld c, l + pop hl + call CopyBytes + ret +; 1010de + +Function1010de: ; 1010de + push hl + push bc + ld de, 0 +.loop + ld a, [hli] + add e + ld e, a + ld a, d + adc 0 + ld d, a + dec bc + ld a, b + or c + jr nz, .loop + pop bc + pop hl + ret +; 1010f2 + +LoadSelectedPartiesForColosseum: ; 1010f2 + xor a + ld hl, StringBuffer2 + ld bc, 9 + call ByteFill + ld hl, wPlayerMonSelection + ld de, PartyCount + call .CopyThreeSpecies + ld hl, wPlayerMonSelection + ld de, PartyMon1Species + call .CopyPartyStruct + ld hl, wPlayerMonSelection + ld de, PartyMonOT + call .CopyName + ld hl, wPlayerMonSelection + ld de, PartyMonNicknames + call .CopyName + ld hl, wOTMonSelection + ld de, OTPartyCount + call .CopyThreeSpecies + ld hl, wOTMonSelection + ld de, OTPartyMon1Species + call .CopyPartyStruct + ld hl, wOTMonSelection + ld de, OTPartyMonOT + call .CopyName + ld hl, wOTMonSelection + ld de, OTPartyMonNicknames + call .CopyName + ret +; 101145 + +.CopyThreeSpecies: ; 101145 +; Load the 3 choices to the buffer + push de + ld bc, StringBuffer2 + 6 + xor a +.party_loop + push af + call .GetNthSpecies + ld [bc], a + inc bc + pop af + inc a + cp 3 + jr nz, .party_loop + pop de +; Copy the 3 choices to the party + ld a, 3 + ld [de], a + inc de + ld hl, StringBuffer2 + 6 + ld bc, 3 + call CopyBytes + ld a, $ff + ld [de], a + ret +; 101168 + +.GetNthSpecies: ; 101168 +; Preserves hl and de +; Get the index of the Nth selection + push hl + add l + ld l, a + ld a, h + adc 0 + ld h, a + ld a, [hl] + pop hl +; Get the corresponding species + push de + inc de + add e + ld e, a + ld a, d + adc 0 + ld d, a + ld a, [de] + pop de + ret +; 10117c + +.CopyPartyStruct: ; 10117c + ld bc, PARTYMON_STRUCT_LENGTH + jr .ContinueCopy + +.CopyName: ; 101181 + ld bc, NAME_LENGTH + +.ContinueCopy: + ; Copy, via wc608... + ld a, wc608 % $100 + ld [StringBuffer2], a + ld a, wc608 / $100 + ld [StringBuffer2 + 1], a + ; ... bc bytes... + ld a, c + ld [StringBuffer2 + 2], a + ld a, b + ld [StringBuffer2 + 3], a + ; ... to de... + ld a, e + ld [StringBuffer2 + 4], a + ld a, d + ld [StringBuffer2 + 5], a + ; ... 3 times. + ld a, 3 +.big_copy_loop + push af + ld a, [hli] + push hl + push af + call .GetDestinationAddress + call .GetCopySize + pop af + call AddNTimes + ld a, [StringBuffer2] + ld e, a + ld a, [StringBuffer2 + 1] + ld d, a + call CopyBytes + ld a, e + ld [StringBuffer2], a + ld a, d + ld [StringBuffer2 + 1], a + pop hl + pop af + dec a + jr nz, .big_copy_loop + call .GetCopySize + ld a, 3 + ld hl, 0 + call AddNTimes + ld b, h + ld c, l + call .GetDestinationAddress + ld d, h + ld e, l + ld hl, wc608 + call CopyBytes + ret +; 1011df + +.GetDestinationAddress: ; 1011df + ld a, [StringBuffer2 + 4] + ld l, a + ld a, [StringBuffer2 + 5] + ld h, a + ret +; 1011e8 + +.GetCopySize: ; 1011e8 + ld a, [StringBuffer2 + 2] + ld c, a + ld a, [StringBuffer2 + 3] + ld b, a + ret +; 1011f1 + +Function1011f1: ; 1011f1 + ld a, $04 + call GetSRAMBank + ld a, [$a60c] + ld [wdc41], a + call CloseSRAM + ld hl, wdc41 + res 4, [hl] + ld hl, GameTimerPause + bit 7, [hl] + jr z, .skip + ld hl, wdc41 + set 4, [hl] + +.skip + call Function10209c + xor a + ld [wdc5f], a + ld [wdc60], a + ld a, LINK_MOBILE + ld [wLinkMode], a + ret +; 101220 + +Function101220: ; 101220 + xor a + ld [wLinkMode], a + ret +; 101225 + +Function101225: ; 101225 + ld d, 1 + ld e, BANK(Jumptable_101297) + ld bc, Jumptable_101297 + call Function100000 + jr Function10123d + +Function101231: ; 101231 + ld d, 2 + ld e, BANK(Jumptable_101297) + ld bc, Jumptable_101297 + call Function100000 + jr Function10123d + +Function10123d: ; 10123d + xor a + ld [ScriptVar], a + ld a, c + ld hl, Jumptable_101247 + rst JumpTable + ret +; 101247 + +Jumptable_101247: ; 101247 + dw Function101251 + dw Function10127d + dw Function10127c + dw Function10126c + dw Function101265 +; 101251 + +Function101251: ; 101251 + call UpdateSprites + call RefreshScreen + ld hl, UnknownText_0x1021f4 + call Function1021e0 + call Function1020ea + ret c + call Function102142 + ret +; 101265 + +Function101265: ; 101265 + ld hl, UnknownText_0x1021ef + call Function1021e0 + ret +; 10126c + +Function10126c: ; 10126c + call UpdateSprites + callba Script_reloadmappart + ld hl, UnknownText_0x1021f4 + call Function1021e0 + ret +; 10127c + +Function10127c: ; 10127c + ret +; 10127d + +Function10127d: ; 10127d + ret +; 10127e + +Function10127e: ; 10127e + ld a, [wdc5f] + and a + jr z, .zero + cp 1 + ld c, $27 + jr z, .load + cp 2 + ld c, $37 + jr z, .load +.zero + ld c, 0 +.load + ld a, c + ld [wMobileCommsJumptableIndex], a + ret +; 101297 + +Jumptable_101297: ; 101297 + dw Function101a97 ; 00 + dw Function101ab4 ; 01 + dw Function101475 ; 02 + dw Function101b0f ; 03 + dw Function101438 ; 04 + dw Function101b2b ; 05 + dw Function101b59 ; 06 + dw Function101475 ; 07 + dw Function101b70 ; 08 + dw Function101438 ; 09 + dw Function101b8f ; 0a + dw Function101d7b ; 0b + dw Function101d95 ; 0c + dw Function101475 ; 0d + dw Function101db2 ; 0e + dw Function101e4f ; 0f + dw Function101475 ; 10 + dw Function101e64 ; 11 + dw Function101e4f ; 12 + dw Function101475 ; 13 + dw Function101e64 ; 14 + dw Function101d95 ; 15 + dw Function101475 ; 16 + dw Function101db2 ; 17 + dw Function101dd0 ; 18 + dw Function101de3 ; 19 + dw Function101e39 ; 1a + dw Function101e09 ; 1b + dw Function101e4f ; 1c + dw Function101475 ; 1d + dw Function101e64 ; 1e + dw Function101d95 ; 1f + dw Function101475 ; 20 + dw Function101db2 ; 21 + dw Function101e09 ; 22 + dw Function101e31 ; 23 + dw Function101bc8 ; 24 + dw Function101438 ; 25 + dw Function101be5 ; 26 + dw Function101ac6 ; 27 + dw Function101ab4 ; 28 + dw Function101475 ; 29 + dw Function101c11 ; 2a + dw Function1014f4 ; 2b + dw Function101cc8 ; 2c + dw Function1014e2 ; 2d + dw Function1014e2 ; 2e + dw Function101d10 ; 2f + dw Function101d2a ; 30 + dw Function101d2a ; 31 + dw Function101507 ; 32 + dw Function10156d ; 33 + dw Function101557 ; 34 + dw Function10158a ; 35 + dw Function101c42 ; 36 + dw Function101aed ; 37 + dw Function101ab4 ; 38 + dw Function101475 ; 39 + dw Function101c2b ; 3a + dw Function1014f4 ; 3b + dw Function101cdf ; 3c + dw Function1014e2 ; 3d + dw Function1014e2 ; 3e + dw Function101d1e ; 3f + dw Function101d2a ; 40 + dw Function101d2a ; 41 + dw Function101507 ; 42 + dw Function10156d ; 43 + dw Function101544 ; 44 + dw Function10158a ; 45 + dw Function101c42 ; 46 + dw Function101c50 ; 47 + dw Function1014ce ; 48 + dw Function101cf6 ; 49 + dw Function101826 ; 4a + dw Function1017e4 ; 4b + dw Function1017f1 ; 4c + dw Function1018a8 ; 4d + dw Function1018d6 ; 4e + dw Function1017e4 ; 4f + dw Function1017f1 ; 50 + dw Function1018e1 ; 51 + dw Function1015df ; 52 + dw Function10167d ; 53 + dw Function10168a ; 54 + dw Function10162a ; 55 + dw Function1015be ; 56 + dw Function10167d ; 57 + dw Function10168a ; 58 + dw Function10161f ; 59 + dw Function10159d ; 5a + dw Function10167d ; 5b + dw Function10168a ; 5c + dw Function101600 ; 5d + dw Function101d03 ; 5e + dw Function101d6b ; 5f + dw Function10159d ; 60 + dw Function1014ce ; 61 + dw Function10168e ; 62 + dw Function101600 ; 63 + dw Function101913 ; 64 + dw Function10194b ; 65 + dw _SelectMonsForMobileBattle ; 66 + dw Function1017e4 ; 67 + dw Function1017f5 ; 68 + dw _StartMobileBattle ; 69 + dw Function101537 ; 6a + dw Function101571 ; 6b + dw Function101c92 ; 6c + dw Function10152a ; 6d + dw Function101571 ; 6e + dw Function101a4f ; 6f + dw Function101cbc ; 70 + dw Function101c62 ; 71 + dw Function101537 ; 72 + dw Function101571 ; 73 + dw Function101c92 ; 74 + dw Function10152a ; 75 + dw Function101571 ; 76 + dw Function101ca0 ; 77 + dw Function101475 ; 78 + dw Function101cbc ; 79 +; 10138b + +Function10138b: ; 10138b + callba Function8adcc + ld c, 0 + jr c, .asm_101396 + inc c + +.asm_101396 + sla c + ld a, [wcd2f] + and a + jr z, .asm_10139f + inc c + +.asm_10139f + sla c + ld a, [wcd21] + cp $01 + jr z, .asm_1013a9 + inc c + +.asm_1013a9 + ret +; 1013aa + +Function1013aa: ; 1013aa + call ClearBGPalettes + call Call_ExitMenu + call ReloadTilesetAndPalettes + callba Function106464 + call UpdateSprites + call FinishExitMenu + ret +; 1013c0 + +Function1013c0: ; 1013c0 + callba BlankScreen + callba MobileFunc_106462 + callba Function106464 + call FinishExitMenu + ret +; 1013d6 + +Function1013d6: ; 1013d6 + callba HDMATransferAttrMapAndTileMapToWRAMBank3 + ret +; 1013dd + +Function1013dd: ; 1013dd + call CGBOnly_LoadEDTile + ret +; 1013e1 + +Function1013e1: ; 1013e1 ; unreferenced + push de + inc de + ld b, a + ld c, 0 +.asm_1013e6 + inc c + ld a, [hli] + ld [de], a + inc de + and a + jr z, .asm_1013f1 + dec b + jr nz, .asm_1013e6 + scf + +.asm_1013f1 + pop de + ld a, c + ld [de], a + ret +; 1013f5 + +Function1013f5: ; 1013f5 + ld a, [hli] + ld [de], a + inc de + ld c, a +.asm_1013f9 + ld a, [hli] + ld [de], a + inc de + dec c + jr nz, .asm_1013f9 + ret +; 101400 + +Function101400: ; 101400 ; unreferenced + ld a, [de] + inc de + cp [hl] + jr nz, asm_101416 + inc hl + +Function101406: ; 101406 + ld c, a + ld b, 0 +.asm_101409 + ld a, [de] + inc de + cp [hl] + jr nz, asm_101416 + inc hl + dec bc + ld a, b + or c + jr nz, .asm_101409 + and a + ret + +asm_101416 + scf + ret +; 101418 + +Function101418: ; 101418 + call GetJoypad + ld a, [hJoyDown] + and SELECT + A_BUTTON + cp SELECT + A_BUTTON + jr z, .asm_101425 + xor a + ret + +.asm_101425 + ld a, $f7 + ld [wcd2b], a + scf + ret +; 10142c + +Function10142c: ; 10142c + ld a, $01 + ld [wc305], a + callba Function115e18 + ret +; 101438 + +Function101438: ; 101438 + ld hl, wcd29 + set 6, [hl] + ld a, [wcd26] + ld hl, Jumptable_101457 + rst JumpTable + ld a, [wcd26] + bit 7, a + ret z + ld a, 0 + ld [wcd26], a + ld a, [wMobileCommsJumptableIndex] + inc a + ld [wMobileCommsJumptableIndex], a + ret +; 101457 + +Jumptable_101457: ; 101457 + dw Function10145b + dw Function101467 +; 10145b + +Function10145b: ; 10145b + ld a, $3c + ld [wcd42], a + ld a, [wcd26] + inc a + ld [wcd26], a + +Function101467: ; 101467 + ld hl, wcd42 + dec [hl] + ret nz + ld a, [wcd26] + set 7, a + ld [wcd26], a + ret +; 101475 + +Function101475: ; 101475 + ld hl, wcd29 + set 6, [hl] + ld a, [wcd26] + ld hl, Jumptable_101494 + rst JumpTable + ld a, [wcd26] + bit 7, a + ret z + ld a, 0 + ld [wcd26], a + ld a, [wMobileCommsJumptableIndex] + inc a + ld [wMobileCommsJumptableIndex], a + ret +; 101494 + +Jumptable_101494: ; 101494 + dw Function10149a + dw Function1014a6 + dw Function1014b7 +; 10149a + +Function10149a: ; 10149a + ld a, $28 + ld [wcd42], a + ld a, [wcd26] + inc a + ld [wcd26], a + +Function1014a6: ; 1014a6 + ld hl, wcd42 + dec [hl] + ret nz + ld a, $50 + ld [wcd42], a + ld a, [wcd26] + inc a + ld [wcd26], a + +Function1014b7: ; 1014b7 + call GetJoypad + ld a, [hJoyPressed] + and $03 + jr nz, .asm_1014c5 + ld hl, wcd42 + dec [hl] + ret nz + +.asm_1014c5 + ld a, [wcd26] + set 7, a + ld [wcd26], a + ret +; 1014ce + +Function1014ce: ; 1014ce + callba Function100720 + callba StartMobileInactivityTimer + ld a, [wMobileCommsJumptableIndex] + inc a + ld [wMobileCommsJumptableIndex], a + ret +; 1014e2 + +Function1014e2: ; 1014e2 + ld hl, wcd29 + set 6, [hl] + ld a, 0 + ld [wcd26], a + ld a, [wMobileCommsJumptableIndex] + inc a + ld [wMobileCommsJumptableIndex], a + ret +; 1014f4 + +Function1014f4: ; 1014f4 + callba EnableMobile + ld hl, wcd29 + set 6, [hl] + ld a, [wMobileCommsJumptableIndex] + inc a + ld [wMobileCommsJumptableIndex], a + ret +; 101507 + +Function101507: ; 101507 + ld de, wcd30 + ld hl, $40 + ld bc, $40 + ld a, $02 + call Function3e32 + ld a, [wMobileCommsJumptableIndex] + inc a + ld [wMobileCommsJumptableIndex], a + ret +; 10151d + +Function10151d: ; 10151d ; unreferenced + ld a, $34 + call Function3e32 + ld a, [wMobileCommsJumptableIndex] + inc a + ld [wMobileCommsJumptableIndex], a + ret +; 10152a + +Function10152a: ; 10152a + ld a, $36 + call Function3e32 + ld a, [wMobileCommsJumptableIndex] + inc a + ld [wMobileCommsJumptableIndex], a + ret +; 101537 + +Function101537: ; 101537 + ld a, $0a + call Function3e32 + ld a, [wMobileCommsJumptableIndex] + inc a + ld [wMobileCommsJumptableIndex], a + ret +; 101544 + +Function101544: ; 101544 + callba StartMobileInactivityTimer + ld a, $12 + call Function3e32 + ld a, [wMobileCommsJumptableIndex] + inc a + ld [wMobileCommsJumptableIndex], a + ret +; 101557 + +Function101557: ; 101557 + callba StartMobileInactivityTimer + ld hl, wcd53 + ld a, $08 + call Function3e32 + ld a, [wMobileCommsJumptableIndex] + inc a + ld [wMobileCommsJumptableIndex], a + ret +; 10156d + +Function10156d: ; 10156d + call Function101418 + ret c + +Function101571: ; 101571 + callba Function10032e + ret c + ret z + ld a, e + cp $01 + jr z, .asm_101582 + ld [wcd2b], a + ret + +.asm_101582 + ld a, [wMobileCommsJumptableIndex] + inc a + ld [wMobileCommsJumptableIndex], a + ret +; 10158a + +Function10158a: ; 10158a + callba IncrementMobileInactivityTimerBy1Frame + ld a, [wMobileInactivityTimerMinutes] + cp $0a + jr c, Function10156d + ld a, $fb + ld [wcd2b], a + ret +; 10159d + +Function10159d: ; 10159d + ld de, wc608 + callba Function100edf + ld de, wc608 + ld a, $05 + ld hl, w5_d800 + call Function10174c + ld a, 0 + ld [wcd26], a + ld a, [wMobileCommsJumptableIndex] + inc a + ld [wMobileCommsJumptableIndex], a + ret +; 1015be + +Function1015be: ; 1015be + ld de, wc608 + callba Function100eed + ld de, wc608 + ld a, $05 + ld hl, w5_d800 + call Function10174c + ld a, 0 + ld [wcd26], a + ld a, [wMobileCommsJumptableIndex] + inc a + ld [wMobileCommsJumptableIndex], a + ret +; 1015df + +Function1015df: ; 1015df + ld de, wc608 + callba Function100ef4 + ld de, wc608 + ld a, $05 + ld hl, w5_d800 + call Function10174c + ld a, 0 + ld [wcd26], a + ld a, [wMobileCommsJumptableIndex] + inc a + ld [wMobileCommsJumptableIndex], a + ret +; 101600 + +Function101600: ; 101600 + ld hl, w5_d800 + ld de, wc608 + ld bc, $1e0 + ld a, $05 + call FarCopyWRAM + ld de, wc608 + callba Function100ee6 + ld a, [wMobileCommsJumptableIndex] + inc a + ld [wMobileCommsJumptableIndex], a + ret +; 10161f + +Function10161f: ; 10161f + call Function101649 + ld a, [wMobileCommsJumptableIndex] + inc a + ld [wMobileCommsJumptableIndex], a + ret +; 10162a + +Function10162a: ; 10162a + call Function101663 + ld a, [wMobileCommsJumptableIndex] + inc a + ld [wMobileCommsJumptableIndex], a + ret +; 101635 + +Function101635: ; 101635 + ld de, wc608 + ld bc, $1e0 + call FarCopyWRAM + ret +; 10163f + +Function10163f: ; 10163f + ld hl, wc608 + ld bc, $1e0 + call FarCopyWRAM + ret +; 101649 + +Function101649: ; 101649 + ld a, $05 + ld hl, w5_d800 + call Function101635 + ld a, $05 + ld de, w5_da00 + call Function10163f + ret +; 10165a + +Function10165a: ; 10165a + ld a, $05 + ld hl, w5_da00 + call Function101635 + ret +; 101663 + +Function101663: ; 101663 + ld a, $05 + ld hl, w5_d800 + call Function101635 + ld a, $05 + ld de, w5_dc00 + call Function10163f + ret +; 101674 + +Function101674: ; 101674 ; unreferenced + ld a, $05 + ld hl, w5_dc00 + call Function101635 + ret +; 10167d + +Function10167d: ; 10167d + ld a, 0 + ld [wcd26], a + ld a, [wMobileCommsJumptableIndex] + inc a + ld [wMobileCommsJumptableIndex], a + ret +; 10168a + +Function10168a: ; 10168a + call Function101418 + ret c + +Function10168e: ; 10168e + ld b, 0 + ld c, $01 + callba Function10079c + ret c + ld c, $01 + ld b, $03 + callba AdvanceMobileInactivityTimerAndCheckExpired + ret c + ld a, [wcd26] + ld hl, Jumptable_1016c3 + rst JumpTable + ld hl, wcd29 + set 6, [hl] + ld a, [wcd26] + bit 7, a + ret z + ld a, 0 + ld [wcd26], a + ld a, [wMobileCommsJumptableIndex] + inc a + ld [wMobileCommsJumptableIndex], a + ret +; 1016c3 + +Jumptable_1016c3: ; 1016c3 + dw Function1016cf + dw Function1016de + dw Function1016f8 + dw Function101705 + dw Function101719 + dw Function101724 +; 1016cf + +Function1016cf: ; 1016cf + ld hl, wcd3a + inc [hl] + call Function10176f + ld a, [wcd26] + inc a + ld [wcd26], a + ret +; 1016de + +Function1016de: ; 1016de + call Function10177b + jr nc, .asm_1016eb + ld a, [wcd26] + inc a + ld [wcd26], a + ret + +.asm_1016eb + ld a, $ff + ld [wcd39], a + ld a, [wcd26] + inc a + ld [wcd26], a + ret +; 1016f8 + +Function1016f8: ; 1016f8 + ld a, 0 + ld [wcd27], a + ld a, [wcd26] + inc a + ld [wcd26], a + ret +; 101705 + +Function101705: ; 101705 + callba Function100382 + ld a, [wcd27] + bit 7, a + ret z + ld a, [wcd26] + inc a + ld [wcd26], a + ret +; 101719 + +Function101719: ; 101719 + call Function1017c7 + ld a, [wcd26] + inc a + ld [wcd26], a + ret +; 101724 + +Function101724: ; 101724 + ld a, [wcd39] + cp $ff + jr z, .asm_101731 + ld a, 0 + ld [wcd26], a + ret + +.asm_101731 + ld a, [wcd26] + set 7, a + ld [wcd26], a + ret +; 10173a + +Unknown_10173a: + db $50 + +Function10173b: ; 10173b + push bc + push af + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [Unknown_10173a] + ld c, a + ld b, 0 + pop af + call AddNTimes + pop bc + ret +; 10174c + +Function10174c: ; 10174c + ld [wcd3d], a + ld a, l + ld [wcd3e], a + ld a, h + ld [wcd3f], a + ld a, e + ld [wcd3b], a + ld a, d + ld [wcd3c], a + ld a, c + ld [wcd40], a + ld a, b + ld [wcd41], a + xor a + ld [wcd39], a + ld [wcd3a], a + ret +; 10176f + +Function10176f: ; 10176f + ld hl, wccb4 + ld bc, $54 + ld a, $11 + call ByteFill + ret +; 10177b + +Function10177b: ; 10177b + ld a, [Unknown_10173a] + ld c, a + ld b, 0 + ld a, [wcd3a] + ld hl, 0 + call AddNTimes + ld e, l + ld d, h + ld hl, wcd40 + ld a, [hli] + ld h, [hl] + ld l, a + ld a, l + sub e + ld l, a + ld a, h + sbc d + ld h, a + jr c, .asm_1017a0 + add hl, bc + call Function1017b0 + scf + ret + +.asm_1017a0 + ld a, $ff + ld [wcd39], a + add hl, bc + ld a, h + or l + ret z + ld c, l + ld b, h + call Function1017b0 + xor a + ret +; 1017b0 + +Function1017b0: ; 1017b0 + ld a, c + ld [wccb4], a + push bc + ld a, [wcd3a] + dec a + ld hl, wcd3b + call Function10173b + pop bc + ld de, wccb5 + call CopyBytes + ret +; 1017c7 + +Function1017c7: ; 1017c7 + ld a, [wcc60] + ld c, a + ld b, 0 + ld a, [wcd3a] + dec a + ld hl, wcd3e + call Function10173b + ld e, l + ld d, h + ld hl, wcc61 + ld a, [wcd3d] + call FarCopyWRAM + and a + ret +; 1017e4 + +Function1017e4: ; 1017e4 + ld a, 0 + ld [wcd27], a + ld a, [wMobileCommsJumptableIndex] + inc a + ld [wMobileCommsJumptableIndex], a + ret +; 1017f1 + +Function1017f1: ; 1017f1 + call Function101418 + ret c + +Function1017f5: ; 1017f5 + ld b, 0 + ld c, $01 + callba Function10079c + ret c + ld c, $01 + ld b, $03 + callba AdvanceMobileInactivityTimerAndCheckExpired + ret c + callba Function100382 + ld a, [wcd27] + bit 7, a + jr nz, .next + ld hl, wcd29 + set 6, [hl] + ret + +.next + ld a, [wMobileCommsJumptableIndex] + inc a + ld [wMobileCommsJumptableIndex], a + ret +; 101826 + +Function101826: ; 101826 + ld a, [wcd21] + cp $02 + jr z, .asm_101833 + cp $01 + jr z, .asm_101844 + jr .asm_101869 + +.asm_101833 + ld hl, Unknown_10186f + ld de, wccb4 + call Function1013f5 + ld a, [wMobileCommsJumptableIndex] + inc a + ld [wMobileCommsJumptableIndex], a + ret + +.asm_101844 + callba Function103654 + ld a, c + ld hl, Unknown_101882 + cp $01 + jr z, .asm_10185b + ld hl, Unknown_101895 + cp $02 + jr z, .asm_10185b + jr .asm_101869 + +.asm_10185b + ld de, wccb4 + call Function1013f5 + ld a, [wMobileCommsJumptableIndex] + inc a + ld [wMobileCommsJumptableIndex], a + ret + +.asm_101869 + ld a, $fe + ld [wcd2b], a + ret +; 10186f + + +SECTION "ascii 10186f", ROMX + + charmap " ", $20 ; revert to ascii + +Unknown_10186f: + db .end - @ + db $19, $73, $09, $13, "trade_crystal" +.end db 0 + +Unknown_101882: + db .end - @ + db $19, $67, $10, $01, "free__crystal" +.end db 0 + +Unknown_101895: + db .end - @ + db $19, $67, $10, $01, "limit_crystal" +.end db 0 +; 1018a8 + + +SECTION "bank40_3", ROMX + +Function1018a8: ; 1018a8 + ld hl, wccb5 + ld de, wcc61 + ld a, $04 + call Function101406 + jr c, .asm_1018d0 + ld hl, wccb9 + ld de, wcc65 + ld a, $06 + call Function101406 + jr c, .asm_1018ca + ld a, [wMobileCommsJumptableIndex] + inc a + ld [wMobileCommsJumptableIndex], a + ret + +.asm_1018ca + ld a, $f6 + ld [wcd2b], a + ret + +.asm_1018d0 + ld a, $f5 + ld [wcd2b], a + ret +; 1018d6 + +Function1018d6: ; 1018d6 + call Function1018ec + ld a, [wMobileCommsJumptableIndex] + inc a + ld [wMobileCommsJumptableIndex], a + ret +; 1018e1 + +Function1018e1: ; 1018e1 + call Function1018fb + ld a, [wMobileCommsJumptableIndex] + inc a + ld [wMobileCommsJumptableIndex], a + ret +; 1018ec + +Function1018ec: ; 1018ec + ld a, $0a + ld hl, wccb4 + ld [hli], a + ld c, a +.asm_1018f3 + call Random + ld [hli], a + dec c + jr nz, .asm_1018f3 + ret +; 1018fb + +Function1018fb: ; 1018fb + ld a, [wcd2f] + and a + jr z, .asm_101906 + ld hl, wcc61 + jr .asm_101909 + +.asm_101906 + ld hl, wccb5 + +.asm_101909 + ld de, LinkBattleRNs + ld bc, 10 + call CopyBytes + ret +; 101913 + +Function101913: ; 101913 + ld hl, wcd2a + set 0, [hl] + xor a + ld [wc30d], a + ld hl, wcd29 + res 4, [hl] + xor a + ld [wc305], a + ld hl, wcd29 + res 7, [hl] + ld a, $90 + ld [hWY], a + ld a, [wcd21] + cp $01 + jr z, .asm_10193f + cp $02 + jr z, .asm_101945 + ld a, $71 + ld [wMobileCommsJumptableIndex], a + ret + +.asm_10193f + ld a, $66 + ld [wMobileCommsJumptableIndex], a + ret + +.asm_101945 + ld a, $65 + ld [wMobileCommsJumptableIndex], a + ret +; 10194b + +Function10194b: ; 10194b + call DisableSpriteUpdates + call ClearSprites + callba Function1021f9 + ld hl, wcd29 + bit 3, [hl] + jr nz, .asm_101967 + call Function1013c0 + ld a, $71 + ld [wMobileCommsJumptableIndex], a + ret + +.asm_101967 + ld a, $60 + ld [wMobileCommsJumptableIndex], a + ret +; 10196d + +_SelectMonsForMobileBattle: ; 10196d + callba BlankScreen + callba Mobile_CommunicationStandby + ld hl, wcd29 + set 5, [hl] + ld hl, wcd2a + set 6, [hl] + ld a, $06 + ld [wccb4], a + ld hl, wPlayerMonSelection + ld de, wccb5 + ld bc, 3 + call CopyBytes + ld hl, wcd6c + ld a, [hli] + ld [wccb8], a + ld a, [hli] + ld [wccb9], a + ld a, [hl] + ld [wccba], a + ld a, [wMobileCommsJumptableIndex] + inc a + ld [wMobileCommsJumptableIndex], a + ret +; 1019ab + +_StartMobileBattle: ; 1019ab + call CopyOtherPlayersBattleMonSelection + callba Function100754 + xor a + ld [wdc5f], a + ld [wdc60], a + callba BlankScreen + call SpeechTextBox + callba Function100846 + ld c, 120 + call DelayFrames + callba ClearTileMap + call .CopyOTDetails + call StartMobileBattle + ld a, [wcd2b] + cp $fc + jr nz, .asm_1019e6 + xor a + ld [wcd2b], a +.asm_1019e6 + ld a, [wMobileCommsJumptableIndex] + inc a + ld [wMobileCommsJumptableIndex], a + ret +; 1019ee + +.CopyOTDetails: ; 1019ee + ld a, [rSVBK] + push af + ld a, 5 + ld [rSVBK], a + + ld bc, w5_dc0d + ld de, w5_dc11 + callba GetMobileOTTrainerClass + + pop af + ld [rSVBK], a + + ld a, c + ld [OtherTrainerClass], a + ld hl, OTPlayerName + ld de, OTClassName + ld bc, NAME_LENGTH + call CopyBytes + ld a, [wcd2f] + and a + ld a, 2 + jr z, .got_link_player_number + ld a, 1 +.got_link_player_number + ld [hLinkPlayerNumber], a + ret +; 101a21 + +StartMobileBattle: ; 101a21 + ; force stereo and fast text speed + ld hl, Options + ld a, [hl] + push af + and (1 << STEREO) + or 1 ; 1 frame per character i.e. fast text + ld [hl], a + ld a, 1 + ld [wDisableTextAcceleration], a + callba BattleIntro + callba DoBattle + callba ShowLinkBattleParticipantsAfterEnd + xor a + ld [wDisableTextAcceleration], a + ld a, $ff + ld [hLinkPlayerNumber], a + pop af + ld [Options], a + ret +; 101a4f + +Function101a4f: ; 101a4f + ld a, 1 + ld [wDisableTextAcceleration], a + callba DisplayLinkBattleResult + xor a + ld [wDisableTextAcceleration], a + callba CleanUpBattleRAM + callba LoadPokemonData + call Function1013c0 + ld a, [wMobileCommsJumptableIndex] + inc a + ld [wMobileCommsJumptableIndex], a + ret +; 101a75 + +CopyOtherPlayersBattleMonSelection: ; 101a75 + ld hl, wcc61 + ld de, wOTMonSelection + ld bc, 3 + call CopyBytes + ld de, wcc64 + callba Function100772 + callba Function101050 + callba LoadSelectedPartiesForColosseum + ret +; 101a97 + +Function101a97: ; 101a97 + callba Function115d99 + ld hl, wcd29 + set 7, [hl] + ld c, $02 + call Function10142c + ld hl, wcd29 + set 6, [hl] + ld a, [wMobileCommsJumptableIndex] + inc a + ld [wMobileCommsJumptableIndex], a + ret +; 101ab4 + +Function101ab4: ; 101ab4 + ld e, $01 + call Function101ee4 + ld hl, wcd29 + set 5, [hl] + ld a, [wMobileCommsJumptableIndex] + inc a + ld [wMobileCommsJumptableIndex], a + ret +; 101ac6 + +Function101ac6: ; 101ac6 + callba Function115d99 + ld hl, wcd29 + set 7, [hl] + ld c, $02 + call Function10142c + ld hl, wcd29 + set 6, [hl] + xor a + ld [wcd2f], a + ld de, wdc42 + call Function102068 + ld a, [wMobileCommsJumptableIndex] + inc a + ld [wMobileCommsJumptableIndex], a + ret +; 101aed + +Function101aed: ; 101aed + callba Function115d99 + ld hl, wcd29 + set 7, [hl] + ld c, $02 + call Function10142c + ld hl, wcd29 + set 6, [hl] + ld a, $01 + ld [wcd2f], a + ld a, [wMobileCommsJumptableIndex] + inc a + ld [wMobileCommsJumptableIndex], a + ret +; 101b0f + +Function101b0f: ; 101b0f + ld c, 0 + call Function10142c + ld e, $03 + call Function101ee4 + ld hl, wcd29 + set 5, [hl] + ld a, [wMobileCommsJumptableIndex] + inc a + ld [wMobileCommsJumptableIndex], a + ld a, 0 + ld [wcd26], a + ret +; 101b2b + +Function101b2b: ; 101b2b + callba Function100579 + ld hl, wcd29 + set 2, [hl] + ld a, [wcd26] + bit 7, a + ret z + call Function1013dd + ld a, 0 + ld [wcd26], a + ld a, [wMenuCursorY] + cp $01 + jr z, .asm_101b51 + ld a, $02 + ld [wcd2b], a + ret + +.asm_101b51 + ld a, [wMobileCommsJumptableIndex] + inc a + ld [wMobileCommsJumptableIndex], a + ret +; 101b59 + +Function101b59: ; 101b59 + ld c, $02 + call Function10142c + ld e, $02 + call Function101ee4 + ld hl, wcd29 + set 5, [hl] + ld a, [wMobileCommsJumptableIndex] + inc a + ld [wMobileCommsJumptableIndex], a + ret +; 101b70 + +Function101b70: ; 101b70 + ld c, $02 + call Function10142c + ld e, $04 + call Function101ee4 + ld hl, wcd29 + set 5, [hl] + call UpdateSprites + ld a, [wMobileCommsJumptableIndex] + inc a + ld [wMobileCommsJumptableIndex], a + ld a, 0 + ld [wcd26], a + ret +; 101b8f + +Function101b8f: ; 101b8f + callba Function1005c3 + ld hl, wcd29 + set 2, [hl] + ld a, [wcd26] + bit 7, a + ret z + call Function1013dd + ld a, 0 + ld [wcd26], a + ld a, [wMenuCursorY] + cp $01 + jr z, .asm_101bbc + ld a, $01 + ld [wcd2f], a + ld a, [wMobileCommsJumptableIndex] + inc a + ld [wMobileCommsJumptableIndex], a + ret + +.asm_101bbc + xor a + ld [wcd2f], a + ld a, [wMobileCommsJumptableIndex] + inc a + ld [wMobileCommsJumptableIndex], a + ret +; 101bc8 + +Function101bc8: ; 101bc8 + ld c, $02 + call Function10142c + ld e, $08 + call Function101ee4 + call Function102048 + call Function1013dd + ld a, 0 + ld [wcd26], a + ld a, [wMobileCommsJumptableIndex] + inc a + ld [wMobileCommsJumptableIndex], a + ret +; 101be5 + +Function101be5: ; 101be5 + callba Function100579 + ld hl, wcd29 + set 2, [hl] + ld a, [wcd26] + bit 7, a + ret z + call Function1013dd + ld a, 0 + ld [wcd26], a + ld a, [wMenuCursorY] + cp $01 + jr nz, .asm_101c0b + ld a, $2a + ld [wMobileCommsJumptableIndex], a + ret + +.asm_101c0b + ld a, $02 + ld [wcd2b], a + ret +; 101c11 + +Function101c11: ; 101c11 + ld a, $01 + ld [wdc5f], a + ld e, $09 + call Function101ee4 + call Function102048 + ld hl, wcd29 + set 5, [hl] + ld a, [wMobileCommsJumptableIndex] + inc a + ld [wMobileCommsJumptableIndex], a + ret +; 101c2b + +Function101c2b: ; 101c2b + ld a, $02 + ld [wdc5f], a + ld e, $07 + call Function101ee4 + ld hl, wcd29 + set 5, [hl] + ld a, [wMobileCommsJumptableIndex] + inc a + ld [wMobileCommsJumptableIndex], a + ret +; 101c42 + +Function101c42: ; 101c42 + ld hl, wcd2a + set 1, [hl] + call Function100665 + ld a, $47 + ld [wMobileCommsJumptableIndex], a + ret +; 101c50 + +Function101c50: ; 101c50 + ld e, $0a + call Function101ee4 + ld hl, wcd29 + set 2, [hl] + ld a, [wMobileCommsJumptableIndex] + inc a + ld [wMobileCommsJumptableIndex], a + ret +; 101c62 + +Function101c62: ; 101c62 + callba Function115d99 + ld hl, wcd29 + set 7, [hl] + ld c, $01 + call Function10142c + xor a + ld [wc30d], a + ld hl, wcd29 + res 4, [hl] + ld e, $0b + call Function101ee4 + ld hl, wcd29 + set 5, [hl] + ld a, [wMobileCommsJumptableIndex] + inc a + ld [wMobileCommsJumptableIndex], a + ld a, 0 + ld [wcd26], a + ret +; 101c92 + +Function101c92: ; 101c92 + callba Function100675 + ld a, [wMobileCommsJumptableIndex] + inc a + ld [wMobileCommsJumptableIndex], a + ret +; 101ca0 + +Function101ca0: ; 101ca0 + ld c, $02 + call Function10142c + ld e, $0c + call Function101ee4 + ld hl, wcd29 + set 5, [hl] + ld a, [wMobileCommsJumptableIndex] + inc a + ld [wMobileCommsJumptableIndex], a + ld a, 0 + ld [wcd26], a + ret +; 101cbc + +Function101cbc: ; 101cbc + ld a, $01 + ld [wcd2b], a + ret +; 101cc2 + +Function101cc2: ; 101cc2 ; unreferenced + ld a, $02 + ld [wcd2b], a + ret +; 101cc8 + +Function101cc8: ; 101cc8 + ld a, $01 + ld [wc314], a + ld a, $01 + ld [wc30d], a + ld hl, wcd29 + set 4, [hl] + ld a, [wMobileCommsJumptableIndex] + inc a + ld [wMobileCommsJumptableIndex], a + ret +; 101cdf + +Function101cdf: ; 101cdf + ld a, $06 + ld [wc314], a + ld a, $01 + ld [wc30d], a + ld hl, wcd29 + set 4, [hl] + ld a, [wMobileCommsJumptableIndex] + inc a + ld [wMobileCommsJumptableIndex], a + ret +; 101cf6 + +Function101cf6: ; 101cf6 + ld a, $0b + ld [wc314 + 1], a + ld a, [wMobileCommsJumptableIndex] + inc a + ld [wMobileCommsJumptableIndex], a + ret +; 101d03 + +Function101d03: ; 101d03 + ld a, $0e + ld [wc314 + 1], a + ld a, [wMobileCommsJumptableIndex] + inc a + ld [wMobileCommsJumptableIndex], a + ret +; 101d10 + +Function101d10: ; 101d10 + ld c, $01 + call Function10142c + ld a, [wMobileCommsJumptableIndex] + inc a + ld [wMobileCommsJumptableIndex], a + jr Function101d2a + +Function101d1e: ; 101d1e + ld c, $03 + call Function10142c + ld a, [wMobileCommsJumptableIndex] + inc a + ld [wMobileCommsJumptableIndex], a + +Function101d2a: ; 101d2a + call Function101418 + ret c + ld hl, wcd29 + set 6, [hl] + ld a, [wcd26] + ld hl, Jumptable_101d4d + rst JumpTable + ld a, [wcd26] + bit 7, a + ret z + ld a, 0 + ld [wcd26], a + ld a, [wMobileCommsJumptableIndex] + inc a + ld [wMobileCommsJumptableIndex], a + ret +; 101d4d + +Jumptable_101d4d: ; 101d4d + dw Function101d51 + dw Function101d5d +; 101d51 + +Function101d51: ; 101d51 + ld a, $3c + ld [wcd42], a + ld a, [wcd26] + inc a + ld [wcd26], a + +Function101d5d: ; 101d5d + ld hl, wcd42 + dec [hl] + ret nz + ld a, [wcd26] + set 7, a + ld [wcd26], a + ret +; 101d6b + +Function101d6b: ; 101d6b + ld a, [wc30d] + and a + ret nz + ld hl, wcd29 + res 4, [hl] + ld a, $64 + ld [wMobileCommsJumptableIndex], a + ret +; 101d7b + +Function101d7b: ; 101d7b + callba Function10138b + ld b, 0 + ld hl, Unknown_101d8d + add hl, bc + ld c, [hl] + ld a, c + ld [wMobileCommsJumptableIndex], a + ret +; 101d8d + +Unknown_101d8d: ; 101d8d + db $15, $15, $1f, $1f, $0c, $12, $3a, $3a +; 101d95 + +Function101d95: ; 101d95 + call Function101ee2 + call LoadStandardMenuDataHeader + ld e, $0e + call Function101ee4 + ld hl, wcd29 + set 5, [hl] + ld a, [wMobileCommsJumptableIndex] + inc a + ld [wMobileCommsJumptableIndex], a + ld a, 0 + ld [wcd26], a + ret +; 101db2 + +Function101db2: ; 101db2 + callba Function103302 + call ExitMenu + ld hl, wcd29 + set 5, [hl] + jr c, .asm_101dca + ld a, [wMobileCommsJumptableIndex] + inc a + ld [wMobileCommsJumptableIndex], a + ret + +.asm_101dca + ld a, $02 + ld [wcd2b], a + ret +; 101dd0 + +Function101dd0: ; 101dd0 + ld hl, wdc41 + bit 1, [hl] + jr nz, .asm_101ddd + ld a, $19 + ld [wMobileCommsJumptableIndex], a + ret + +.asm_101ddd + ld a, $1b + ld [wMobileCommsJumptableIndex], a + ret +; 101de3 + +Function101de3: ; 101de3 + call Function101ecc + call Function101ead + jr c, .asm_101df3 + ld a, [wMobileCommsJumptableIndex] + inc a + ld [wMobileCommsJumptableIndex], a + ret + +.asm_101df3 + call Function101e98 + jr c, .asm_101e00 + ld a, [wMobileCommsJumptableIndex] + inc a + ld [wMobileCommsJumptableIndex], a + ret + +.asm_101e00 + call Function101ed3 + ld a, $02 + ld [wcd2b], a + ret +; 101e09 + +Function101e09: ; 101e09 + call Function101ead + jr c, .asm_101e16 + ld a, [wMobileCommsJumptableIndex] + inc a + ld [wMobileCommsJumptableIndex], a + ret + +.asm_101e16 + call Function101ecc + call Function101e98 + push af + call Function101ed3 + pop af + jr c, .asm_101e2b + ld a, [wMobileCommsJumptableIndex] + inc a + ld [wMobileCommsJumptableIndex], a + ret + +.asm_101e2b + ld a, $02 + ld [wcd2b], a + ret +; 101e31 + +Function101e31: ; 101e31 + ld a, $3a + ld [wMobileCommsJumptableIndex], a + jp Function101c2b +; 101e39 + +Function101e39: ; 101e39 + call Function1020bf + push af + call Function101ed3 + pop af + jr c, .asm_101e49 + ld a, $2a + ld [wMobileCommsJumptableIndex], a + ret + +.asm_101e49 + ld a, $02 + ld [wcd2b], a + ret +; 101e4f + +Function101e4f: ; 101e4f + ld e, $06 + call Function101ee4 + call Function1013d6 + ld a, [wMobileCommsJumptableIndex] + inc a + ld [wMobileCommsJumptableIndex], a + ld a, 0 + ld [wcd26], a + ret +; 101e64 + +Function101e64: ; 101e64 + call Function101ecc + call Function1020a8 + push af + call Function101ed3 + pop af + jr c, .asm_101e77 + ld a, $24 + ld [wMobileCommsJumptableIndex], a + ret + +.asm_101e77 + ld hl, wcd29 + set 5, [hl] + ld a, $02 + ld [wcd2b], a + ret +; 101e82 + +Function101e82: ; 101e82 ; unreferenced + call Function101ecc + ld a, [wMobileCommsJumptableIndex] + inc a + ld [wMobileCommsJumptableIndex], a + ret +; 101e8d + +Function101e8d: ; 101e8d ; unreferenced + call Function101ed3 + ld a, [wMobileCommsJumptableIndex] + inc a + ld [wMobileCommsJumptableIndex], a + ret +; 101e98 + +Function101e98: ; 101e98 + call ClearSprites + callba Function8adb3 + ret c + ld hl, GameTimerPause + set 7, [hl] + ld hl, wdc41 + set 4, [hl] + ret +; 101ead + +Function101ead: ; 101ead + ld hl, GameTimerPause + bit 7, [hl] + jr nz, .asm_101ec8 + ld hl, wdc41 + bit 2, [hl] + jr z, .asm_101eca + ld a, [wcd2f] + and a + jr nz, .asm_101ec8 + ld hl, wdc41 + bit 1, [hl] + jr z, .asm_101eca + +.asm_101ec8 + xor a + ret + +.asm_101eca + scf + ret +; 101ecc + +Function101ecc: ; 101ecc + call Function101ee2 + call FadeToMenu + ret +; 101ed3 + +Function101ed3: ; 101ed3 + call Function1013aa + callba Function115d99 + ld hl, wcd29 + set 7, [hl] + ret +; 101ee2 + +Function101ee2: ; 101ee2 + ld e, 0 + +Function101ee4: ; 101ee4 + ld d, 0 + ld hl, Unknown_101ef5 + add hl, de + add hl, de + ld a, [hli] + ld d, [hl] + ld e, a + callba Function100504 + ret +; 101ef5 + +Unknown_101ef5: ; 101ef5 + dw String_101f13 + dw String_101f14 + dw String_101f32 + dw String_101f4f + dw String_101f69 + dw String_101f81 + dw String_101f93 + dw String_101faa + dw String_101fc5 + dw String_101fd2 + dw String_101fe1 + dw String_101fef + dw String_102000 + dw String_10200c + dw String_102014 + +String_101f13: ; 101f13 + db "@" + +String_101f14: ; 101f14 + db "モバイルアダプタを つかって" + next "おともだちと つうしんします@" + +String_101f32: ; 101f32 + db "でんわを かけるひとには" + next "つうわりょうきんが かかります@" + +String_101f4f: ; 101f4f + db "モバイルアダプタの じゅんびは" + next "できて いますか?@" + +String_101f69: ; 101f69 + db "あなたが おともだちに" + next "でんわを かけますか?@" + +String_101f81: ; 101f81 + db "めいしフ,ルダーを" + next "つかいますか?@" + +String_101f93: ; 101f93 + db "でんわばんごうを にゅうりょく" + next "してください@" + +String_101faa: ; 101faa + db "それでは おともだちからの" + next "でんわを おまちします…@" + +String_101fc5: ; 101fc5 + next "に でんわを かけます@" + +String_101fd2: ; 101fd2 + next "に でんわを かけています@" + +String_101fe1: ; 101fe1 + db "でんわが つながりました!@" + +String_101fef: ; 101fef + db "つうわを" + next "しゅうりょう します…@" + +String_102000: ; 102000 + db "つうしん しゅうりょう@" + +String_10200c: ; 10200c + db "つうわ じかん@" + +String_102014: ; 102014 + db "それでは つうしんの" + next "せっていを してください@" +; 10202c + +Function10202c: ; 10202c + callba Function115d99 + ld hl, wcd29 + set 7, [hl] + ld c, $02 + call Function10142c + ld e, $0d + call Function101ee4 + hlcoord 4, 4 + call Function100681 + ret +; 102048 + +Function102048: ; 102048 + call Function10204c + ret +; 10204c + +Function10204c: ; 10204c + hlcoord 3, 2 + ld c, $10 + ld de, wcd53 +.asm_102054 + ld a, [de] + inc de + and a + jr z, .asm_102067 + sub $30 + jr c, .asm_102067 + cp $0a + jr nc, .asm_102067 + add $f6 + ld [hli], a + dec c + jr nz, .asm_102054 + +.asm_102067 + ret +; 102068 + +Function102068: ; 102068 + ld hl, wcd53 + ld c, $08 +.asm_10206d + ld a, [de] + call Function102080 + jr c, .asm_10207f + ld a, [de] + swap a + call Function102080 + jr c, .asm_10207f + inc de + dec c + jr nz, .asm_10206d + +.asm_10207f + ret +; 102080 + +Function102080: ; 102080 + and $0f + cp $0f + jr z, .asm_10208a + add $30 + ld [hli], a + ret + +.asm_10208a + ld [hl], 0 + scf + ret +; 10208e + +Function10208e: ; 10208e + push de + ld h, d + ld l, e + ld de, wdc42 + ld bc, 8 + call CopyBytes + pop de + ret +; 10209c + +Function10209c: ; 10209c + ld a, $ff + ld hl, wdc42 + ld bc, 8 + call ByteFill + ret +; 1020a8 + +Function1020a8: ; 1020a8 + call Function10209c + ld c, $01 + ld de, wdc42 + callba Function17a68f + ret c + call Function10208e + call Function102068 + xor a + ret +; 1020bf + +Function1020bf: ; 1020bf + call ClearSprites + callba Function8aba9 + ld a, c + and a + jr z, .asm_1020e8 + dec a + ld hl, $a04c + ld bc, $25 + call AddNTimes + ld d, h + ld e, l + ld a, $04 + call GetSRAMBank + call Function10208e + call Function102068 + call CloseSRAM + xor a + ret + +.asm_1020e8 + scf + ret +; 1020ea + +Function1020ea: ; 1020ea + ld hl, wdc41 + bit 4, [hl] + jr z, .quit + ld hl, wdc41 + bit 2, [hl] + jr nz, .quit + call Function10218d + ld hl, wc608 + bit 4, [hl] + jr z, .quit + ld hl, wc608 + bit 2, [hl] + jr nz, .quit + call Function102112 + jr z, .quit + and a + ret + +.quit + scf + ret +; 102112 + +Function102112: ; 102112 + ld a, $04 + call GetSRAMBank + ld hl, $a041 + ld c, 40 +.outer_loop + push hl + ld de, $c60f + ld b, 31 +.inner_loop + ld a, [de] + cp [hl] + jr nz, .not_matching + inc de + inc hl + dec b + jr nz, .inner_loop + pop hl + xor a + jr .done + +.not_matching + pop hl + ld de, 37 + add hl, de + dec c + jr nz, .outer_loop + ld a, $01 + and a + jr .done ; useless jr + +.done + push af + call CloseSRAM + pop af + ret +; 102142 + +Function102142: ; 102142 + call Function10218d + call Function102180 + ld hl, UnknownText_0x1021d1 + call MenuTextBox + ld de, SFX_LEVEL_UP + call PlaySFX + call JoyWaitAorB + call ExitMenu + call Function10219f + ld hl, UnknownText_0x1021d6 + call MenuTextBox + call YesNoBox + call ExitMenu + jr c, .asm_10217c + call Function1021b8 + jr c, .asm_10217c + call Function10218d + call Function102180 + ld hl, UnknownText_0x1021db + call PrintText + +.asm_10217c + call Function1013d6 + ret +; 102180 + +Function102180: ; 102180 + ld hl, wc608 + 1 + ld de, StringBuffer2 + ld bc, 11 + call CopyBytes + ret +; 10218d + +Function10218d: ; 10218d + ld hl, w5_dc00 + ld de, wc608 + ld bc, $26 + ld a, $05 + call FarCopyWRAM + ld de, wc608 + 1 ; useless + ret +; 10219f + +Function10219f: ; 10219f + call FadeToMenu + call Function10218d + ld de, wc608 + 1 + callba Function8ac4e + call JoyWaitAorB + call PlayClickSFX + call Function1013aa + ret +; 1021b8 + +Function1021b8: ; 1021b8 + call FadeToMenu + call Function10218d + ld de, wPlayerMoveStruct + callba Function8ac70 + ld a, c + ld [StringBuffer1], a + push af + call Function1013aa + pop af + ret +; 1021d1 + +UnknownText_0x1021d1: ; 1021d1 + text_jump UnknownText_0x1bd19a + db "@" + +UnknownText_0x1021d6: ; 1021d1 + text_jump UnknownText_0x1bd1ba + db "@" + +UnknownText_0x1021db: ; 1021d1 + text_jump UnknownText_0x1bd1dd + db "@" +; 1021e0 + +Function1021e0: ; 1021e0 + call MenuTextBox + call JoyWaitAorB + call ExitMenu + ret +; 1021ea + +UnknownText_0x1021ea: ; 1021ea + text_jump UnknownText_0x1bd201 + db "@" + +UnknownText_0x1021ef: + text_jump UnknownText_0x1bd211 + db "@" + +UnknownText_0x1021f4: + text_jump UnknownText_0x1bd223 + db "@" +; 1021f9 + +Function1021f9: ; 1021f9 + call Function102233 + ld a, $0 ; Function10234b + ld [wcd49], a + ld hl, wcd29 + bit 3, [hl] + res 3, [hl] + jr z, .asm_10220f + ld a, $1 ; Function102361 + ld [wcd49], a + +.asm_10220f + call Function1022ca + ld a, [wcd49] + ld hl, Jumptable_1022f5 + rst JumpTable + call Function102241 + call Function1022d0 + jr c, .asm_102231 + ld a, [wcd49] + bit 7, a + jr z, .asm_10220f + xor a + ld hl, wcd29 + bit 3, [hl] + ret z + scf + ret + +.asm_102231 + xor a + ret +; 102233 + +Function102233: ; 102233 + ld hl, wcd49 + ld bc, 10 + xor a + call ByteFill + call Function10304f + ret +; 102241 + +Function102241: ; 102241 + call Function10226a + call Function102274 + call Function10224b + ret +; 10224b + +Function10224b: ; 10224b + ld hl, wcd4b + bit 1, [hl] + jr nz, .asm_10225e + bit 2, [hl] + jr nz, .asm_10225e + call DelayFrame + call DelayFrame + xor a + ret + +.asm_10225e + res 1, [hl] + res 2, [hl] + callba Mobile_ReloadMapPart + scf + ret +; 10226a + +Function10226a: ; 10226a + ld hl, wcd4b + bit 0, [hl] + ret z + call Function10305d + ret +; 102274 + +Function102274: ; 102274 + ld hl, wcd4b + bit 3, [hl] + ret z + res 3, [hl] + ld de, 8 + call PlaySFX + ret +; 102283 + +Function102283: ; 102283 + ld a, $01 + ld [AttrMapEnd], a + ld hl, wcd4b + set 0, [hl] + ret +; 10228e + +Function10228e: ; 10228e + xor a + ld [AttrMapEnd], a + ld hl, wcd4b + res 0, [hl] + ret +; 102298 + +Function102298: ; 102298 + ld a, e + cp $02 + ret nz + ld hl, wcd4b + bit 6, [hl] + jr z, .asm_1022b6 + ld hl, wcd4b + bit 7, [hl] + ld hl, wcd4b + set 7, [hl] + ret nz + ld de, SFX_ELEVATOR_END + call PlaySFX + jr .asm_1022c1 + +.asm_1022b6 + ld hl, wcd4b + bit 7, [hl] + ld hl, wcd4b + res 7, [hl] + ret z + +.asm_1022c1 + call Function10304f + ld a, $01 + ld [AttrMapEnd], a + ret +; 1022ca + +Function1022ca: ; 1022ca + ld a, 30 + ld [OverworldDelay], a + ret +; 1022d0 + +Function1022d0: ; 1022d0 + callba Function10032e + ld a, [wcd2b] + and a + jr nz, .asm_1022f3 + call Function102298 + ld a, [OverworldDelay] + ld c, a + ld a, 30 + sub c + ld c, a + ld b, $03 + callba AdvanceMobileInactivityTimerAndCheckExpired + jr c, .asm_1022f3 + xor a + ret + +.asm_1022f3 + scf + ret +; 1022f5 + +Jumptable_1022f5: ; 1022f5 + dw Function10234b ; 00 + dw Function102361 ; 01 + dw Function10236e ; 02 + dw Function102387 ; 03 + dw Function1023a1 ; 04 + dw Function1025c7 ; 05 + dw Function1025dc ; 06 + dw Function1024f6 ; 07 + dw Function10250c ; 08 + dw Function1024a8 ; 09 + dw Function102591 ; 0a + dw Function1024a8 ; 0b + dw Function1025b0 ; 0c + dw Function1025bd ; 0d + dw Function102814 ; 0e + dw Function10283c ; 0f + dw Function102862 ; 10 + dw Function10286f ; 11 + dw Function1024a8 ; 12 + dw Function1028a5 ; 13 + dw Function1028ab ; 14 + dw Function1023b5 ; 15 + dw Function1023c6 ; 16 + dw Function1024af ; 17 + dw Function102416 ; 18 + dw Function102423 ; 19 + dw Function10244b ; 1a + dw Function1024af ; 1b + dw Function10246a ; 1c + dw Function102652 ; 1d + dw Function10266b ; 1e + dw Function1025e9 ; 1f + dw Function1025ff ; 20 + dw Function102738 ; 21 + dw Function102754 ; 22 + dw Function1026b7 ; 23 + dw Function1026c8 ; 24 + dw Function1028bf ; 25 + dw Function1028c6 ; 26 + dw Function1028d3 ; 27 + dw Function1028da ; 28 + dw Function1024a8 ; 29 + dw Function10248d ; 2a +; 10234b + +Function10234b: ; 10234b + call Function102d9a + call Function102dd3 + call Function102dec + ld hl, wcd4b + set 1, [hl] + ld a, [wcd49] + inc a + ld [wcd49], a + ret +; 102361 + +Function102361: ; 102361 + ld a, $cc + call Function1028e8 + ld a, [wcd49] + inc a + ld [wcd49], a + ret +; 10236e + +Function10236e: ; 10236e + call Function1028fc + ret nc + ld a, [wcd51] + cp $cc + jr z, .asm_10237f + ld a, $f2 + ld [wcd2b], a + ret + +.asm_10237f + ld a, [wcd49] + inc a + ld [wcd49], a + ret +; 102387 + +Function102387: ; 102387 + ld hl, wcd4b + set 6, [hl] + xor a + ld [wdc5f], a + ld de, MUSIC_ROUTE_30 + call PlayMusic + call Function102d9a + call Function102dd3 + ld a, $01 + ld [wMenuCursorY], a + +Function1023a1: ; 1023a1 + call Function102283 + call Function102db7 + call Function102dec + ld hl, wcd4b + set 1, [hl] + ld a, $1d + ld [wcd49], a + ret +; 1023b5 + +Function1023b5: ; 1023b5 + call Function10228e + call Function102a3b + call Function102b12 + ld a, [wcd49] + inc a + ld [wcd49], a + ret +; 1023c6 + +Function1023c6: ; 1023c6 + call Function102c48 + call Function102c87 + ld a, [wcd4c] + dec a + ld [CurPartyMon], a + xor a + ld [wPokemonWithdrawDepositParameter], a + callba RemoveMonFromPartyOrBox + ld hl, PartyCount + inc [hl] + ld a, [hli] + ld c, a + ld b, 0 + add hl, bc + ld [hl], $ff + ld a, [PartyCount] + ld [wcd4c], a + call Function102c07 + call Function102d48 + call Function102b32 + call Function102f50 + ld hl, wcd4b + set 1, [hl] + ld a, $14 + ld [wcd4e], a + ld a, 0 + ld [wcd4f], a + ld a, 0 + ld [wcd4a], a + ld a, [wcd49] + inc a + ld [wcd49], a + ret +; 102416 + +Function102416: ; 102416 + ld a, $aa + call Function1028e8 + ld a, [wcd49] + inc a + ld [wcd49], a + ret +; 102423 + +Function102423: ; 102423 + call Function102921 + ret nc + callba SaveAfterLinkTrade + callba TrainerRankings_Trades + callba BackupMobileEventIndex + ld hl, wcd4b + set 1, [hl] + ld a, 0 + ld [wcd4a], a + ld a, [wcd49] + inc a + ld [wcd49], a + ret +; 10244b + +Function10244b: ; 10244b + call Function102f32 + ld hl, wcd4b + set 1, [hl] + ld a, $19 + ld [wcd4e], a + ld a, 0 + ld [wcd4f], a + ld a, 0 + ld [wcd4a], a + ld a, [wcd49] + inc a + ld [wcd49], a + ret +; 10246a + +Function10246a: ; 10246a + call Function102d9a + ld hl, wcd29 + set 3, [hl] + call Function102e07 + ld hl, wcd4b + set 1, [hl] + ld a, $2a + ld [wcd49], a + ret +; 102480 + +Function102480: ; 102480 + ld c, $32 + call DelayFrames + ld a, [wcd49] + inc a + ld [wcd49], a + ret +; 10248d + +Function10248d: ; 10248d + ld a, [wcd49] + set 7, a + ld [wcd49], a + ret +; 102496 + +Function102496: ; 102496 + ld hl, wcd4e + dec [hl] + ret nz + ld a, 0 + ld [wcd4a], a + ld a, [wcd49] + inc a + ld [wcd49], a + ret +; 1024a8 + +Function1024a8: ; 1024a8 + callba Function1009f3 + ret c + +Function1024af: ; 1024af + call GetJoypad + ld a, [wcd4a] + ld hl, Jumptable_1024ba + rst JumpTable + ret +; 1024ba + +Jumptable_1024ba: ; 1024ba + dw Function1024c0 + dw Function1024cb + dw Function1024de +; 1024c0 + +Function1024c0: ; 1024c0 + ld hl, wcd4e + inc [hl] + ld a, [wcd4a] + inc a + ld [wcd4a], a + +Function1024cb: ; 1024cb + ld hl, wcd4e + dec [hl] + ret nz + ld a, [wcd4f] + inc a + ld [wcd4e], a + ld a, [wcd4a] + inc a + ld [wcd4a], a + +Function1024de: ; 1024de + ld hl, wcd4e + dec [hl] + jr z, .asm_1024e9 + ld a, [hJoyPressed] + and A_BUTTON | B_BUTTON + ret z + +.asm_1024e9 + ld a, 0 + ld [wcd4a], a + ld a, [wcd49] + inc a + ld [wcd49], a + ret +; 1024f6 + +Function1024f6: ; 1024f6 + call PlaceHollowCursor + ld hl, wcd4b + set 1, [hl] + ld a, [wcd4c] + call Function1028e8 + ld a, [wcd49] + inc a + ld [wcd49], a + ret +; 10250c + +Function10250c: ; 10250c + call Function1028fc + ret nc + ld a, [wcd51] + cp $0f + jr z, .asm_10254b + and a + jr z, .asm_102572 + cp $aa + jr z, .asm_102572 + cp $07 + jr nc, .asm_102572 + ld [wcd4d], a + dec a + ld [wd003], a + ld a, [wcd4c] + dec a + ld [wd002], a + call Function102b9c + call Function102bdc + jr c, .asm_10256d + callba Functionfb5dd + jr c, .asm_102568 + ld hl, wcd4b + set 1, [hl] + ld a, $0e + ld [wcd49], a + ret + +.asm_10254b + call Function103021 + ld hl, wcd4b + set 1, [hl] + ld a, 0 + ld [wcd4a], a + ld a, $1e + ld [wcd4e], a + ld a, $1e + ld [wcd4f], a + ld a, $29 + ld [wcd49], a + ret + +.asm_102568 + call Function102ff5 + jr .asm_102577 + +.asm_10256d + call Function102f85 + jr .asm_102577 + +.asm_102572 + call Function102fce + jr .asm_102577 + +.asm_102577 + ld hl, wcd4b + set 1, [hl] + ld a, 0 + ld [wcd4a], a + ld a, $1e + ld [wcd4e], a + ld a, $3c + ld [wcd4f], a + ld a, $09 + ld [wcd49], a + ret +; 102591 + +Function102591: ; 102591 + call Function102ee7 + ld hl, wcd4b + set 1, [hl] + ld a, 0 + ld [wcd4a], a + ld a, $1e + ld [wcd4e], a + ld a, $3c + ld [wcd4f], a + ld a, [wcd49] + inc a + ld [wcd49], a + ret +; 1025b0 + +Function1025b0: ; 1025b0 + ld a, $09 + call Function1028e8 + ld a, [wcd49] + inc a + ld [wcd49], a + ret +; 1025bd + +Function1025bd: ; 1025bd + call Function1028fc + ret nc + ld a, $04 + ld [wcd49], a + ret +; 1025c7 + +Function1025c7: ; 1025c7 + call Function102f6d + ld hl, wcd4b + set 1, [hl] + ld a, $0f + call Function1028e8 + ld a, [wcd49] + inc a + ld [wcd49], a + ret +; 1025dc + +Function1025dc: ; 1025dc + call Function1028fc + ret nc + ld a, [wcd49] + set 7, a + ld [wcd49], a + ret +; 1025e9 + +Function1025e9: ; 1025e9 + nop + ld hl, wcd4b + set 6, [hl] + call Function102b4e + ld hl, wcd4b + set 1, [hl] + ld a, [wcd49] + inc a + ld [wcd49], a + ret +; 1025ff + +Function1025ff: ; 1025ff + ld hl, wcd4b + set 2, [hl] + callba Function1009f3 + ret c + callba MobileMenuJoypad + ld a, [wMenuJoypadFilter] + and c + ret z + bit A_BUTTON_F, c + jr nz, .a_button + bit D_UP_F, c + jr nz, .d_up + bit D_DOWN_F, c + jr nz, .d_down + ret + +.a_button + ld hl, wcd4b + set 3, [hl] + ld a, $27 ; Function1028d3 + ld [wcd49], a + ret + +.d_up + ld a, [wMenuCursorY] + ld b, a + ld a, [OTPartyCount] + cp b + ret nz + call HideCursor + ld a, [PartyCount] + ld [wMenuCursorY], a + ld a, $1d ; Function102652 + ld [wcd49], a + ret + +.d_down + ld a, [wMenuCursorY] + cp $01 + ret nz + ld a, $23 ; Function1026b7 + ld [wcd49], a + ret +; 102652 + +Function102652: ; 102652 + nop + ld hl, wcd4b + set 6, [hl] + nop + call Function102b7b + nop + ld hl, wcd4b + set 1, [hl] + nop + ld a, [wcd49] + inc a + ld [wcd49], a + ret +; 10266b + +Function10266b: ; 10266b + ld hl, wcd4b + set 2, [hl] + callba Function1009f3 + ret c + callba MobileMenuJoypad + ld a, [wMenuJoypadFilter] + and c + ret z + bit A_BUTTON_F, c + jr nz, .a_button + bit D_DOWN_F, c + jr nz, .d_down + bit D_UP_F, c + jr nz, .d_up + ret + +.a_button + ld hl, wcd4b + set 3, [hl] + ld a, $21 ; Function102738 + ld [wcd49], a + ret + +.d_down + ld a, [wMenuCursorY] + dec a + ret nz + call HideCursor + ld a, $1f ; Function1025e9 + ld [wcd49], a + ret + +.d_up + ld a, [wMenuCursorY] + ld b, a + ld a, [PartyCount] + cp b + ret nz + ld a, $23 ; Function1026b7 + ld [wcd49], a + ret +; 1026b7 + +Function1026b7: ; 1026b7 + ld hl, wcd4b + set 6, [hl] + ld a, [wcd49] + inc a + ld [wcd49], a + ld a, 0 + ld [wcd4a], a + +Function1026c8: ; 1026c8 + call GetJoypad + callba Function1009f3 + ret c + ld a, [wcd4a] + ld hl, Jumptable_1026da + rst JumpTable + ret +; 1026da + +Jumptable_1026da: ; 1026da + dw Function1026de + dw Function1026f3 +; 1026de + +Function1026de: ; 1026de + call HideCursor + hlcoord 9, 17 + ld [hl], $ed + ld a, [wcd4a] + inc a + ld [wcd4a], a + ld hl, wcd4b + set 1, [hl] + ret +; 1026f3 + +Function1026f3: ; 1026f3 + ld a, [hJoyPressed] + bit A_BUTTON_F, a + jr nz, .asm_102723 + bit D_UP_F, a + jr nz, .asm_102712 + bit D_DOWN_F, a + jr nz, .asm_102702 + ret + +.asm_102702 + hlcoord 9, 17 + ld [hl], " " + ld a, $01 + ld [wMenuCursorY], a + ld a, $1d ; Function102652 + ld [wcd49], a + ret + +.asm_102712 + hlcoord 9, 17 + ld [hl], " " + ld a, [OTPartyCount] + ld [wMenuCursorY], a + ld a, $1f ; Function1025e9 + ld [wcd49], a + ret + +.asm_102723 + hlcoord 9, 17 + ld [hl], "▷" + ld hl, wcd4b + set 3, [hl] + ld hl, wcd4b + set 2, [hl] + ld a, $5 ; Function1025c7 + ld [wcd49], a + ret +; 102738 + +Function102738: ; 102738 + ld hl, wcd4b + set 6, [hl] + call PlaceHollowCursor + call Function1027eb + ld hl, wcd4b + set 1, [hl] + ld a, [wcd49] + inc a + ld [wcd49], a + ld a, 0 + ld [wcd4a], a + +Function102754: ; 102754 + call GetJoypad + callba Function1009f3 + ret c + ld a, [wcd4a] + ld hl, Jumptable_102766 + rst JumpTable + ret +; 102766 + +Jumptable_102766: ; 102766 + dw Function102770 + dw Function102775 + dw Function10278c + dw Function1027a0 + dw Function1027b7 +; 102770 + +Function102770: ; 102770 + ld a, $01 + ld [wcd4a], a + +Function102775: ; 102775 + hlcoord 1, 16 + ld [hl], "▶" + hlcoord 11, 16 + ld [hl], " " + ld hl, wcd4b + set 2, [hl] + ld a, [wcd4a] + inc a + ld [wcd4a], a + ret +; 10278c + +Function10278c: ; 10278c + ld a, [hJoyPressed] + bit A_BUTTON_F, a + jr nz, asm_1027c6 + bit B_BUTTON_F, a + jr nz, asm_1027e2 + bit D_RIGHT_F, a + jr nz, .asm_10279b + ret + +.asm_10279b + ld a, $03 + ld [wcd4a], a +Function1027a0: ; 1027a0 + hlcoord 1, 16 + ld [hl], " " + hlcoord 11, 16 + ld [hl], "▶" + ld hl, wcd4b + set 2, [hl] + ld a, [wcd4a] + inc a + ld [wcd4a], a + ret + +Function1027b7: ; 1027b7 + ld a, [hJoyPressed] + bit A_BUTTON_F, a + jr nz, asm_1027d1 + bit B_BUTTON_F, a + jr nz, asm_1027e2 + bit D_LEFT_F, a + jr nz, Function102770 + ret + +asm_1027c6: + ld hl, wcd4b + set 3, [hl] + ld a, $25 ; Function1028bf + ld [wcd49], a + ret + +asm_1027d1: + ld hl, wcd4b + set 3, [hl] + ld a, [wMenuCursorY] + ld [wcd4c], a + ld a, $7 ; Function1024f6 + ld [wcd49], a + ret + +asm_1027e2: + call Function102db7 + ld a, $1d ; Function102652 + ld [wcd49], a + ret +; 1027eb + +Function1027eb: ; 1027eb + hlcoord 0, 14 + ld b, 2 + ld c, 18 + ld d, h + ld e, l + callba _LinkTextbox + ld de, .Stats_Trade + hlcoord 2, 16 + call PlaceString + ret +; 102804 + +.Stats_Trade: ; 102804 + db "STATS TRADE@" +; 102814 + +Function102814: ; 102814 + ld a, [wMenuCursorY] + ld [wcd52], a + ld a, [wcd4c] + dec a + ld [wd002], a + ld a, [wcd4d] + dec a + ld [wd003], a + call Function102ea8 + ld a, [wcd49] + inc a + ld [wcd49], a + ld a, 0 + ld [wcd4a], a + ld hl, wcd4b + set 1, [hl] + +Function10283c: ; 10283c + ld hl, wcd4b + set 2, [hl] + call Function1029c3 + ret z + jr c, .asm_102852 + ld a, $10 ; Function102862 + ld [wcd49], a + ld hl, wcd4b + set 1, [hl] + ret + +.asm_102852 + ld a, $14 ; Function1028ab + ld [wcd49], a + ld hl, wcd4b + set 3, [hl] + ld hl, wcd4b + set 1, [hl] + ret +; 102862 + +Function102862: ; 102862 + ld a, $08 + call Function1028e8 + ld a, [wcd49] + inc a + ld [wcd49], a + ret +; 10286f + +Function10286f: ; 10286f + call Function1028fc + ret nc + ld a, [wcd52] + ld [wMenuCursorY], a + ld a, [wcd51] + cp $08 + jr nz, .asm_102886 + ld a, $15 ; Function1023b5 + ld [wcd49], a + ret + +.asm_102886 + call Function102ee7 + ld hl, wcd4b + set 1, [hl] + ld a, $1e + ld [wcd4e], a + ld a, $3c + ld [wcd4f], a + ld a, 0 + ld [wcd4a], a + ld a, [wcd49] + inc a + ld [wcd49], a + ret +; 1028a5 + +Function1028a5: ; 1028a5 + ld a, $4 ; Function1023a1 + ld [wcd49], a + ret +; 1028ab + +Function1028ab: ; 1028ab + ld a, [wcd52] + ld [wMenuCursorY], a + call Function102f15 + ld hl, wcd4b + set 1, [hl] + ld a, $c ; Function1025b0 + ld [wcd49], a + ret +; 1028bf + +Function1028bf: ; 1028bf + ld a, [wcd49] + inc a + ld [wcd49], a + +Function1028c6: ; 1028c6 + xor a + ld [MonType], a + call Function102bac + ld a, $1d ; Function102652 + ld [wcd49], a + ret +; 1028d3 + +Function1028d3: ; 1028d3 + ld a, [wcd49] + inc a + ld [wcd49], a + +Function1028da: ; 1028da + ld a, OTPARTYMON + ld [MonType], a + call Function102bac + ld a, $1f ; Function1025e9 + ld [wcd49], a + ret +; 1028e8 + +Function1028e8: ; 1028e8 + ld hl, wcd4b + res 6, [hl] + ld [wcd50], a + callba StartMobileInactivityTimer + ld a, 0 + ld [wcd4a], a + ret +; 1028fc + +Function1028fc: ; 1028fc + call GetJoypad + callba Function1009f3 + jr nc, .asm_102909 + and a + ret + +.asm_102909 + ld a, [wcd4a] + ld hl, Jumptable_102917 + rst JumpTable + ret nc + ld a, 0 + ld [wcd4a], a + ret +; 102917 + +Jumptable_102917: ; 102917 + dw Function102933 + dw Function10294f + dw Function10295d + dw Function10296e + dw Function102996 +; 102921 + +Function102921: ; 102921 + ld a, [wcd4a] + ld hl, Jumptable_10292f + rst JumpTable + ret nc + ld a, 0 + ld [wcd4a], a + ret +; 10292f + +Jumptable_10292f: ; 10292f + dw Function10295d + dw Function102984 +; 102933 + +Function102933: ; 102933 + ld hl, MenuDataHeader_1029bb + call LoadMenuDataHeader + call Function102e07 + ld a, $32 + ld [TextDelayFrames], a + ld hl, wcd4b + set 1, [hl] + ld a, [wcd4a] + inc a + ld [wcd4a], a + and a + ret +; 10294f + +Function10294f: ; 10294f + ld a, [TextDelayFrames] + and a + ret nz + ld a, [wcd4a] + inc a + ld [wcd4a], a + and a + ret +; 10295d + +Function10295d: ; 10295d + call Function10299e + ld a, 0 + ld [wcd27], a + ld a, [wcd4a] + inc a + ld [wcd4a], a + and a + ret +; 10296e + +Function10296e: ; 10296e + callba Function100382 + and a + ld a, [wcd27] + bit 7, a + ret z + ld a, [wcd4a] + inc a + ld [wcd4a], a + and a + ret +; 102984 + +Function102984: ; 102984 + callba Function100382 + and a + ld a, [wcd27] + bit 7, a + ret z + call Function1029af + scf + ret +; 102996 + +Function102996: ; 102996 + call Function1029af + call ExitMenu + scf + ret +; 10299e + +Function10299e: ; 10299e + ld a, $01 + ld [wccb4], a + ld a, [wcd50] + ld [wccb5], a + ld a, $aa + ld [wcd51], a + ret +; 1029af + +Function1029af: ; 1029af + ld hl, wcd4b + res 7, [hl] + ld a, [wcc61] + ld [wcd51], a + ret +; 1029bb + +MenuDataHeader_1029bb: ; 1029bb + db $40 ; flags + db 10, 3 ; start coords + db 12, 15 ; end coords + dw NULL + db 1 ; default option +; 1029c3 + +Function1029c3: ; 1029c3 + ld a, [wcd4a] + ld hl, Jumptable_1029cb + rst JumpTable + ret +; 1029cb + +Jumptable_1029cb: ; 1029cb + dw Function1029cf + dw Function1029fe +; 1029cf + +Function1029cf: ; 1029cf + call LoadStandardMenuDataHeader + hlcoord 10, 7 + ld b, 3 + ld c, 8 + ld d, h + ld e, l + callba _LinkTextbox + ld de, String_102a26 + hlcoord 12, 8 + call PlaceString + ld hl, wcd4b + set 1, [hl] + ld de, MenuData3_102a33 + call SetMenuAttributes + ld a, [wcd4a] + inc a + ld [wcd4a], a + xor a + ret +; 1029fe + +Function1029fe: ; 1029fe + callba Function1009f3 + ret c + callba MobileMenuJoypad + ld a, c + ld hl, wMenuJoypadFilter + and [hl] + ret z + push af + call ExitMenu + pop af + ld a, [wMenuCursorY] + cp $01 + jr nz, .asm_102a21 + ld a, $01 + and a + ret + +.asm_102a21 + ld a, $01 + and a + scf + ret +; 102a26 + +String_102a26: ; 102a26 + db "TRADE" + next "CANCEL" + db "@" +; 102a33 + +MenuData3_102a33: + db 8, 11 + db 2, 1 + db $80, $00 + dn 2, 0 + db A_BUTTON + +Function102a3b: ; 102a3b + ld a, [wcd30] + ld [wc74e], a + ld hl, PlayerName + ld de, wPlayerTrademonSenderName + ld bc, NAME_LENGTH + call CopyBytes + ld a, [wcd4c] + dec a + ld c, a + ld b, 0 + ld hl, PartySpecies + add hl, bc + ld a, [hl] + ld [wPlayerTrademonSpecies], a + ld a, [wcd4c] + dec a + ld hl, PartyMonOT + call SkipNames + ld de, wPlayerTrademonOTName + ld bc, NAME_LENGTH + call CopyBytes + ld a, [wcd4c] + dec a + ld hl, PartyMon1ID + call GetPartyLocation + ld a, [hli] + ld [wPlayerTrademonID], a + ld a, [hl] + ld [wPlayerTrademonID + 1], a + ld a, [wcd4c] + dec a + ld hl, PartyMon1DVs + call GetPartyLocation + ld a, [hli] + ld [wPlayerTrademonDVs], a + ld a, [hl] + ld [wPlayerTrademonDVs + 1], a + ld a, [wcd4c] + dec a + ld hl, PartyMon1Species + call GetPartyLocation + ld b, h + ld c, l + callba GetCaughtGender + ld a, c + ld [wPlayerTrademonCaughtData], a + ld hl, OTPlayerName + ld de, wOTTrademonSenderName + ld bc, NAME_LENGTH + call CopyBytes + + ld a, [wcd4d] + dec a + ld c, a + ld b, 0 + ld hl, OTPartySpecies + add hl, bc + ld a, [hl] + ld [wOTTrademonSpecies], a + ld a, [wcd4d] + dec a + ld hl, OTPartyMonOT + call SkipNames + ld de, wOTTrademonOTName + ld bc, NAME_LENGTH + call CopyBytes + ld a, [wcd4d] + dec a + ld hl, OTPartyMon1ID + call GetPartyLocation + ld a, [hli] + ld [wOTTrademonID], a + ld a, [hl] + ld [wOTTrademonID + 1], a + ld a, [wcd4d] + dec a + ld hl, OTPartyMon1DVs + call GetPartyLocation + ld a, [hli] + ld [wOTTrademonDVs], a + ld a, [hl] + ld [wOTTrademonDVs + 1], a + ld a, [wcd4d] + dec a + ld hl, OTPartyMon1Species + call GetPartyLocation + ld b, h + ld c, l + callba GetCaughtGender + ld a, c + ld [wOTTrademonCaughtData], a + ret +; 102b12 + +Function102b12: ; 102b12 + ld c, 100 + call DelayFrames + call Function102d9a + call LoadFontsBattleExtra + ld a, [wcd2f] + and a + jr nz, .asm_102b2b + callba Function108026 + jr .asm_102b31 + +.asm_102b2b + callba Function10802a + +.asm_102b31 + ret +; 102b32 + +Function102b32: ; 102b32 + ld a, [wcd4c] + dec a + ld [CurPartyMon], a + ld a, $01 + ld [wForceEvolution], a + callba EvolvePokemon + call Function102d9a + call Function102dd3 + call Function102dec + ret +; 102b4e + +Function102b4e: ; 102b4e + ld a, OTPARTYMON + ld [MonType], a + ld a, [wMenuCursorY] + push af + ld de, Unknown_102b73 + call SetMenuAttributes + pop af + ld [wMenuCursorY], a + ld a, [OTPartyCount] + ld [w2DMenuNumRows], a + ret +; 102b68 + +Function102b68: ; 102b68 ; unreferenced + xor a + ld hl, wWindowStackPointer + ld bc, $10 + call ByteFill + ret +; 102b73 + +Unknown_102b73: + db 9, 6 + db 255, 1 + db $a0, $00 + dn 1, 0 + db D_UP | D_DOWN | A_BUTTON + +Function102b7b: ; 102b7b + xor a + ld [MonType], a + ld a, [wMenuCursorY] + push af + ld de, Unknown_102b94 + call SetMenuAttributes + pop af + ld [wMenuCursorY], a + ld a, [PartyCount] + ld [w2DMenuNumRows], a + ret +; 102b94 + +Unknown_102b94: + db 1, 6 + db 255, 1 + db $a0, $00 + dn 1, 0 + db D_UP | D_DOWN | A_BUTTON + +Function102b9c: ; 102b9c + ld a, [wcd4d] + dec a + hlcoord 6, 9 + ld bc, $14 + call AddNTimes + ld [hl], $ec + ret +; 102bac + +Function102bac: ; 102bac + ld a, [wMenuCursorY] + dec a + ld [CurPartyMon], a + call LowVolume + call ClearSprites + callba _MobileStatsScreenInit + ld a, [CurPartyMon] + inc a + ld [wMenuCursorY], a + call Function102d9a + call ClearPalettes + call DelayFrame + call MaxVolume + call Function102dd3 + call Function102dec + call Function102db7 + ret +; 102bdc + +Function102bdc: ; 102bdc + ld a, [wcd4d] + dec a + ld hl, OTPartyMon1Species + call GetPartyLocation + push hl + ld a, [wcd4d] + ld c, a + ld b, 0 + ld hl, OTPartyCount + add hl, bc + ld a, [hl] + pop hl + cp EGG + jr z, .asm_102bfa + cp [hl] + jr nz, .asm_102c05 + +.asm_102bfa + ld bc, MON_LEVEL + add hl, bc + ld a, [hl] + cp MAX_LEVEL + 1 + jr nc, .asm_102c05 + and a + ret + +.asm_102c05 + scf + ret +; 102c07 + +Function102c07: ; 102c07 + call Function102c14 + call Function102c3b + call Function102c21 + call Function102c2e + ret +; 102c14 + +Function102c14: ; 102c14 + ld hl, PartySpecies + ld de, OTPartySpecies + ld bc, 1 + call Function102c71 + ret +; 102c21 + +Function102c21: ; 102c21 + ld hl, PartyMonNicknames + ld de, OTPartyMonNicknames + ld bc, 11 + call Function102c71 + ret +; 102c2e + +Function102c2e: ; 102c2e + ld hl, PartyMonOT + ld de, OTPartyMonOT + ld bc, 11 + call Function102c71 + ret +; 102c3b + +Function102c3b: ; 102c3b + ld hl, PartyMon1 + ld de, OTPartyMon1 + ld bc, $30 + call Function102c71 + ret +; 102c48 + +Function102c48: ; 102c48 + callba Function10165a + ld a, 0 + call GetSRAMBank + ld hl, $a600 + ld de, wc608 + ld bc, $2f + call Function102c71 + call CloseSRAM + ld hl, wc608 + ld de, w5_da00 + ld bc, $1e0 + ld a, $05 + call FarCopyWRAM + ret +; 102c71 + +Function102c71: ; 102c71 + ld a, [wcd4c] + dec a + call AddNTimes + push hl + ld h, d + ld l, e + ld a, [wcd4d] + dec a + call AddNTimes + pop de + call SwapBytes + ret +; 102c87 + +Function102c87: ; 102c87 + ld a, [wJumptableIndex] + push af + ld a, [wcf64] + push af + ld a, [wcd4c] + ld [wJumptableIndex], a + ld a, [PartyCount] + ld [wcf64], a + ld a, 0 + ld hl, $a600 + ld de, wc608 + ld bc, $11a + call Function102d3e + call Function102cee + ld a, 0 + ld hl, wc608 + ld de, $a600 + ld bc, $11a + call Function102d3e + ld a, [wcd4d] + ld [wJumptableIndex], a + ld a, [OTPartyCount] + ld [wcf64], a + ld a, $05 + ld hl, w5_da00 + ld de, wc608 + ld bc, $11a + call FarCopyWRAM + call Function102cee + ld a, $05 + ld hl, wc608 + ld de, w5_da00 + ld bc, $11a + call FarCopyWRAM + pop af + ld [wcf64], a + pop af + ld [wJumptableIndex], a + ret +; 102cee + +Function102cee: ; 102cee + ld a, [wJumptableIndex] + dec a + call Function102d34 + ld de, wd002 + ld bc, $2f + call CopyBytes + ld a, [wJumptableIndex] + ld c, a + ld a, $06 + sub c + ret z + ld bc, $2f + ld hl, 0 + call AddNTimes + push hl + ld a, [wJumptableIndex] + dec a + call Function102d34 + ld d, h + ld e, l + ld hl, $2f + add hl, de + pop bc + call CopyBytes + ld a, [wcf64] + dec a + call Function102d34 + ld d, h + ld e, l + ld hl, wd002 + ld bc, $2f + call CopyBytes + ret +; 102d34 + +Function102d34: ; 102d34 + ld hl, wc608 + ld bc, $2f + call AddNTimes + ret +; 102d3e + +Function102d3e: ; 102d3e + call GetSRAMBank + call CopyBytes + call CloseSRAM + ret +; 102d48 + +Function102d48: ; 102d48 + ld a, [wcd4c] + ld e, a + ld d, 0 + ld hl, PartyCount + add hl, de + ld a, [hl] + ld [wd265], a + cp EGG + jr z, .asm_102d6d + dec a + call SetSeenAndCaughtMon + ld a, [wcd4c] + dec a + ld bc, PARTYMON_STRUCT_LENGTH + ld hl, PartyMon1Happiness + call AddNTimes + ld [hl], BASE_HAPPINESS + +.asm_102d6d + ld a, [wd265] + cp UNOWN + jr nz, .asm_102d98 + ld a, [wcd4c] + dec a + ld bc, PARTYMON_STRUCT_LENGTH + ld hl, PartyMon1DVs + call AddNTimes + predef GetUnownLetter + callba UpdateUnownDex + ld a, [wFirstUnownSeen] + and a + jr nz, .asm_102d98 + ld a, [UnownLetter] + ld [wFirstUnownSeen], a + +.asm_102d98 + and a + ret +; 102d9a + +Function102d9a: ; 102d9a + ld a, " " + hlcoord 0, 0 + ld bc, SCREEN_WIDTH * SCREEN_HEIGHT + call ByteFill + ld a, $07 + hlcoord 0, 0, AttrMap + ld bc, SCREEN_WIDTH * SCREEN_HEIGHT + call ByteFill + callba HDMATransferAttrMapAndTileMapToWRAMBank3 + ret +; 102db7 + +Function102db7: ; 102db7 + call Function102e4f + call Function102e3e + ld hl, wcd4b + set 1, [hl] + ret +; 102dc3 + +Function102dc3: ; 102dc3 + hlcoord 0, 12 + ld b, 4 + ld c, 18 + ld d, h + ld e, l + callba _LinkTextbox + ret +; 102dd3 + +Function102dd3: ; 102dd3 + call DisableLCD + ld de, GFX_1032a2 + ld hl, VTiles0 + lb bc, BANK(GFX_1032a2), 4 + call Get2bpp + callba __LoadTradeScreenBorder + call EnableLCD + ret +; 102dec + +Function102dec: ; 102dec + ld hl, Palettes_1032e2 + ld de, UnknOBPals + ld bc, 4 palettes + ld a, $05 + call FarCopyWRAM + callba Function49742 + call SetPalettes + call DelayFrame + ret +; 102e07 + +Function102e07: ; 102e07 + hlcoord 3, 10 + ld b, 1 + ld c, 11 + ld a, [wBattleMode] + and a + jr z, .link_battle + call TextBox + jr .okay + +.link_battle +; this is idiotic + hlcoord 3, 10 + ld b, 1 + ld c, 11 + ld d, h + ld e, l + callba _LinkTextbox + +.okay + ld de, .waiting + hlcoord 4, 11 + call PlaceString + ret +; 102e32 + +.waiting ; 102e32 + db "Waiting...!@" +; 102e3e + +Function102e3e: ; 102e3e + ld de, .CANCEL + hlcoord 10, 17 + call PlaceString + ret +; 102e48 + +.CANCEL: ; 102e48 + db "CANCEL@" +; 102e4f + +Function102e4f: ; 102e4f + callba Function16d42e + callba _InitMG_Mobile_LinkTradePalMap + ld de, PlayerName + hlcoord 4, 0 + call PlaceString + ld a, $14 + ld [bc], a + ld de, OTPlayerName + hlcoord 4, 8 + call PlaceString + ld a, $14 + ld [bc], a + hlcoord 7, 1 + ld de, PartySpecies + call .PlaceSpeciesNames + hlcoord 7, 9 + ld de, OTPartySpecies + call .PlaceSpeciesNames + ret +; 102e86 + +.PlaceSpeciesNames: ; 102e86 + ld c, 0 +.count_loop + ld a, [de] + cp $ff + ret z + ld [wd265], a + push bc + push hl + push de + push hl + ld a, c + ld [hDividend], a + call GetPokemonName + pop hl + call PlaceString + pop de + inc de + pop hl + ld bc, SCREEN_WIDTH + add hl, bc + pop bc + inc c + jr .count_loop +; 102ea8 + +Function102ea8: ; 102ea8 + call Function102dc3 + ld a, [wcd4c] + dec a + ld c, a + ld b, 0 + ld hl, PartySpecies + add hl, bc + ld a, [hl] + ld [wd265], a + call GetPokemonName + ld hl, StringBuffer1 + ld de, StringBuffer2 + ld bc, 11 + call CopyBytes + ld a, [wcd4d] + dec a + ld c, a + ld b, 0 + ld hl, OTPartySpecies + add hl, bc + ld a, [hl] + ld [wd265], a + call GetPokemonName + ld hl, UnknownText_0x102ee2 + call PrintTextBoxText + ret +; 102ee2 + +UnknownText_0x102ee2: ; 102ee2 + text_jump UnknownText_0x1bd286 + db "@" + +Function102ee7: ; 102ee7 + call Function102dc3 + ld de, String_102ef4 + hlcoord 1, 14 + call PlaceString + ret +; 102ef4 + +String_102ef4: ; 102ef4 + db "Too bad! The trade" + next "was canceled!" + db "@" +; 102f15 + +Function102f15: ; 102f15 + call Function102dc3 + ld de, .TooBadTheTradeWasCanceled + hlcoord 1, 14 + call PlaceString + ret +; 102f22 + +.TooBadTheTradeWasCanceled: ; 102f22 + db "こうかんを キャンセルしました@" +; 102f32 + +Function102f32: ; 102f32 + call Function102dc3 + ld de, .TradeCompleted + hlcoord 1, 14 + call PlaceString + ret +; 102f3f + +.TradeCompleted: ; 102f3f + db "Trade completed!@" +; 102f50 + +Function102f50: ; 102f50 + call Function102dc3 + ld de, .PleaseWait + hlcoord 1, 14 + call PlaceString + ret +; 102f5d + +.PleaseWait: ; 102f5d + db "しょうしょう おまち ください@" +; 102f6d + +Function102f6d: ; 102f6d + call Function102dc3 + ld de, .Finished + hlcoord 1, 14 + call PlaceString + ret +; 102f7a + +.Finished: ; 102f7a + db "しゅうりょう します@" +; 102f85 + +Function102f85: ; 102f85 + ld a, [wd003] + ld c, a + ld b, 0 + ld hl, OTPartySpecies + add hl, bc + ld a, [hl] + ld [wd265], a + call GetPokemonName + call Function102dc3 + ld de, String_102fb2 + hlcoord 1, 14 + call PlaceString + ld de, StringBuffer1 + hlcoord 13, 14 + call PlaceString + ld de, String_102fcc + call PlaceString + ret +; 102fb2 + +String_102fb2: ; 102fb2 + db "あいてがわえらんだ " + next "いじょうあるようです!!" + db "@" +; 102fcc + +String_102fcc: ; 102fcc + db "に@" +; 102fce + +Function102fce: ; 102fce + call Function102dc3 + ld de, String_102fdb + hlcoord 1, 14 + call PlaceString + ret +; 102fdb + +String_102fdb: ; 102fdb + db "あいてがわ%せんたくに" + next "いじょうあるようです!!" + done +; 102ff5 + +Function102ff5: ; 102ff5 + call Function102dc3 + ld de, String_103002 + hlcoord 1, 14 + call PlaceString + ret +; 103002 + +String_103002: ; 103002 + db "その#を こうかんすると" + next "せんとう できなく なっちゃうよ!" + db "@" +; 103021 + +Function103021: ; 103021 + call Function102dc3 + ld de, String_10302e + hlcoord 1, 14 + call PlaceString + ret +; 10302e + +String_10302e: ; 10302e + db "あいてが ちゅうしを えらんだので" + next "こうかんを ちゅうし します" + db "@" +; 10304f + +Function10304f: ; 10304f + xor a + ld [AttrMapEnd], a + ld [wcf42], a + ld [wcf44], a + ld [wcf45], a + ret +; 10305d + +Function10305d: ; 10305d + nop + ld a, [AttrMapEnd] + and a + ret z + call Function10307f + ret c + call Function103094 + call Function10306e + ret +; 10306e + +Function10306e: ; 10306e + ld a, $01 + ld [hOAMUpdate], a + call ClearSprites + ld de, Sprites + call Function1030cd + xor a + ld [hOAMUpdate], a + ret +; 10307f + +Function10307f: ; 10307f + ld c, $02 + ld hl, wcd4b + bit 7, [hl] + jr z, .asm_10308a + ld c, $01 + +.asm_10308a + ld hl, wcf45 + inc [hl] + ld a, [hl] + cp c + ret c + xor a + ld [hl], a + ret +; 103094 + +Function103094: ; 103094 + ld hl, wcd4b + bit 7, [hl] + jr nz, .asm_1030c0 + ld a, [wcf42] + bit 7, a + jr nz, .asm_1030b2 + ld a, [wcf44] + inc a + ld [wcf44], a + cp $2c + ret nz + ld hl, wcf42 + set 7, [hl] + ret + +.asm_1030b2 + ld a, [wcf44] + dec a + ld [wcf44], a + ret nz + ld hl, wcf42 + res 7, [hl] + ret + +.asm_1030c0 + ld hl, wcf44 + ld a, [hl] + and a + jr z, .asm_1030ca + dec a + ld [hl], a + ret nz + +.asm_1030ca + ld [hl], $2c + ret +; 1030cd + +Function1030cd: ; 1030cd + ld a, [wcf44] + ld l, a + ld h, 0 + add hl, hl + add hl, hl + add hl, hl + ld bc, Unknown_103112 + add hl, bc + ld b, $30 + ld c, $08 +.asm_1030de + push hl + ld hl, wcd4b + bit 7, [hl] + pop hl + ld a, 0 + jr z, .asm_1030eb + ld a, $05 +.asm_1030eb + + add [hl] + inc hl + push hl + + add a + add a + + add Unknown_10327a % $100 + ld l, a + ld a, Unknown_10327a / $100 + adc 0 + ld h, a + + ld a, b + add [hl] + inc hl + ld [de], a + inc de + ld a, $0a + 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 + pop hl + ld a, b + add $08 + ld b, a + dec c + jr nz, .asm_1030de + ret +; 103112 + +Unknown_103112: ; 103112 + db $00, $00, $00, $00, $00, $00, $00, $00 + db $00, $00, $00, $00, $00, $00, $00, $00 + db $00, $00, $00, $00, $00, $00, $00, $00 + db $00, $00, $00, $00, $00, $00, $00, $00 + db $00, $00, $00, $00, $00, $00, $00, $00 + db $00, $00, $00, $00, $00, $00, $00, $00 + db $00, $00, $00, $00, $00, $00, $00, $00 + db $00, $00, $00, $00, $00, $00, $00, $00 + db $01, $00, $00, $00, $00, $00, $00, $00 + db $02, $01, $00, $00, $00, $00, $00, $00 + db $03, $02, $01, $00, $00, $00, $00, $00 + db $04, $03, $02, $01, $00, $00, $00, $00 + db $04, $04, $03, $02, $01, $00, $00, $00 + db $04, $04, $04, $03, $02, $01, $00, $00 + db $04, $04, $04, $04, $03, $02, $01, $00 + db $04, $04, $04, $04, $04, $03, $02, $01 + db $04, $04, $04, $04, $04, $04, $03, $02 + db $04, $04, $04, $04, $04, $04, $04, $03 + db $04, $04, $04, $04, $04, $04, $04, $04 + db $04, $04, $04, $04, $04, $04, $04, $04 + db $04, $04, $04, $04, $04, $04, $04, $04 + db $04, $04, $04, $04, $04, $04, $04, $04 + db $04, $04, $04, $04, $04, $04, $04, $04 + db $04, $04, $04, $04, $04, $04, $04, $04 + db $04, $04, $04, $04, $04, $04, $04, $04 + db $04, $04, $04, $04, $04, $04, $04, $04 + db $03, $04, $04, $04, $04, $04, $04, $04 + db $02, $03, $04, $04, $04, $04, $04, $04 + db $01, $02, $03, $04, $04, $04, $04, $04 + db $00, $01, $02, $03, $04, $04, $04, $04 + db $00, $00, $01, $02, $03, $04, $04, $04 + db $00, $00, $00, $01, $02, $03, $04, $04 + db $00, $00, $00, $00, $01, $02, $03, $04 + db $00, $00, $00, $00, $00, $01, $02, $03 + db $00, $00, $00, $00, $00, $00, $01, $02 + db $00, $00, $00, $00, $00, $00, $00, $01 + db $00, $00, $00, $00, $00, $00, $00, $00 + db $00, $00, $00, $00, $00, $00, $00, $00 + db $00, $00, $00, $00, $00, $00, $00, $00 + db $00, $00, $00, $00, $00, $00, $00, $00 + db $00, $00, $00, $00, $00, $00, $00, $00 + db $00, $00, $00, $00, $00, $00, $00, $00 + db $00, $00, $00, $00, $00, $00, $00, $00 + db $00, $00, $00, $00, $00, $00, $00, $00 + db $00, $00, $00, $00, $00, $00, $00, $00 +; 10327a + +Unknown_10327a: ; 10327a + db $00, $00, $00, $00 + db $00, $00, $01, $00 + db $00, $00, $02, $00 + db $00, $00, $03, $00 + db $00, $00, $01, $01 + db $00, $00, $00, $00 + db $00, $00, $01, $02 + db $00, $00, $02, $02 + db $00, $00, $03, $02 + db $00, $00, $01, $03 + +GFX_1032a2: +INCBIN "gfx/unknown/1032a2.2bpp" + +Palettes_1032e2: + RGB 0, 0, 0 + RGB 31, 31, 7 + RGB 20, 31, 6 + RGB 13, 20, 16 + + RGB 0, 0, 0 + RGB 7, 11, 17 + RGB 0, 0, 0 + RGB 0, 0, 0 + + RGB 0, 0, 0 + RGB 31, 24, 4 + RGB 25, 12, 0 + RGB 31, 7, 4 + + RGB 0, 0, 0 + RGB 25, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + +; 103302 + +Function103302: ; 103302 + call Function103309 + call Function103362 + ret +; 103309 + +Function103309: ; 103309 + xor a + ld [hBGMapMode], a + ld hl, Buffer1 + ld bc, 10 + xor a + call ByteFill + ld a, $04 + call GetSRAMBank + ld a, [wdc41] + ld [$a60c], a + ld [Buffer1], a + call CloseSRAM + call Function1035c6 + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + ld a, [hli] + ld c, a + ld a, [hli] + ld b, a + ld a, [hli] + ld [wd1ef], a + ld a, [hli] + ld [wd1ec], a + ld a, [hli] + ld [wd1ed], a + ld h, d + ld l, e + call Function3eea + ld hl, wd1ec + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [hl] + ld [wd1ee], a + call Function1034be + call UpdateSprites + callba HDMATransferAttrMapAndTileMapToWRAMBank3 + ld a, $01 + ld [wd1f0], a + call Function10339a + ret +; 103362 + +Function103362: ; 103362 +.asm_103362 + ld a, [wd1f0] + ld [wd1f1], a + call Function1033af + call Function10339a + call Function10342c + callba HDMATransferTileMapToWRAMBank3 + ld a, [Buffer2] + bit 7, a + jr z, .asm_103362 + ld hl, Buffer2 + bit 6, [hl] + jr z, .asm_103398 + ld a, $04 + call GetSRAMBank + ld a, [Buffer1] + ld [$a60c], a + ld [wdc41], a + call CloseSRAM + xor a + ret + +.asm_103398 + scf + ret +; 10339a + +Function10339a: ; 10339a + ld a, [wd1f0] + ld [wd1f2], a + ld c, a + ld b, 0 + ld hl, wd1ec + ld a, [hli] + ld h, [hl] + ld l, a + add hl, bc + ld a, [hl] + ld [wd1f3], a + ret +; 1033af + +Function1033af: ; 1033af + call GetJoypad + ld a, [hJoyPressed] + bit D_LEFT_F, a + jr nz, .left + bit D_RIGHT_F, a + jr nz, .right + bit B_BUTTON_F, a + jr nz, .b + bit A_BUTTON_F, a + jr nz, .a + bit D_UP_F, a + jr nz, .up + bit D_DOWN_F, a + jr nz, .down + ret + +.up + ld a, [wd1f0] + dec a + ld [wd1f0], a + cp 1 + ret nc + ld a, [wd1ee] + ld [wd1f0], a + ret + +.down + ld a, [wd1f0] + inc a + ld [wd1f0], a + ld c, a + ld a, [wd1ee] + cp c + ret nc + ld a, 1 + ld [wd1f0], a + ret + +.b + call PlayClickSFX + ld hl, Buffer2 + set 7, [hl] + ret + +.a + ld a, [wd1f3] + cp 3 + jr nz, .a_return + ld de, SFX_TRANSACTION + call PlaySFX + ld hl, Buffer2 + set 7, [hl] + ld hl, Buffer2 + set 6, [hl] + ret + +.left +.right +.a_return + ld a, [wd1f3] + cp 3 + ret z + ld de, SFX_PUSH_BUTTON + call PlaySFX + ld bc, 8 + call Function10350f + ld a, [Buffer1] + xor e + ld [Buffer1], a + ret +; 10342c + +Function10342c: ; 10342c + ld a, [wd1f0] + ld [wd1f2], a + call Function103490 + call Function10343c + call Function1034a7 + ret +; 10343c + +Function10343c: ; 10343c + ld a, [wd1f3] + cp $02 + jr nz, .asm_103452 + ld bc, 1 + call Function1034f7 + ld c, $12 + ld b, $01 + call Function1034e0 + jr .asm_10345f + +.asm_103452 + ld bc, $ffed + call Function1034f7 + ld c, $12 + ld b, $02 + call Function1034e0 + +.asm_10345f + ld bc, 0 + call Function10350f + ld bc, 1 + call Function103487 + ld bc, 8 + call Function10350f + ld a, [Buffer1] + and e + ld bc, 2 + jr z, .asm_10347d + ld bc, 4 + +.asm_10347d + call Function10350f + ld bc, 11 + call Function103487 + ret +; 103487 + +Function103487: ; 103487 + push de + call Function1034f7 + pop de + call PlaceString + ret +; 103490 + +Function103490: ; 103490 + hlcoord 0, 15 + ld c, $14 + ld b, $03 + call Function1034e0 + ld bc, 6 + call Function10350f + hlcoord 1, 16 + call PlaceString + ret +; 1034a7 + +Function1034a7: ; 1034a7 + ld a, [wd1f1] + ld [wd1f2], a + ld bc, 10 + call Function1034f7 + ld [hl], $7f + ld bc, 10 + call Function1034f1 + ld [hl], $ed + ret +; 1034be + +Function1034be: ; 1034be + ld a, $01 + ld [wd1f2], a + ld hl, wd1ec + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [hli] +.asm_1034ca + push af + ld a, [hli] + push hl + ld [wd1f3], a + call Function10343c + ld hl, wd1f2 + inc [hl] + pop hl + pop af + dec a + jr nz, .asm_1034ca + call Function103490 + ret +; 1034e0 + +Function1034e0: ; 1034e0 + push bc + push hl + call ClearBox + pop hl + ld bc, AttrMap - TileMap + add hl, bc + pop bc + ld a, $06 + call FillBoxWithByte + ret +; 1034f1 + +Function1034f1: ; 1034f1 + ld a, [wd1f0] + ld [wd1f2], a + +Function1034f7: ; 10134f7 + hlcoord 0, 0 + add hl, bc + ld a, [wd1ef] + ld bc, SCREEN_WIDTH + call AddNTimes + ld a, [wd1f2] + dec a + ld bc, 40 + call AddNTimes + ret +; 10350f + +Function10350f: ; 10350f + ld a, [wd1f3] + push bc + ld hl, Unknown_103522 + ld bc, 9 + call AddNTimes + pop bc + add hl, bc + ld a, [hli] + ld d, [hl] + ld e, a + ret +; 103522 + +Unknown_103522: ; 103522 + dw String_103546 + dw String_103598 + dw String_1035a0 + dw String_10355f + db $01 + dw String_10354f + dw String_1035a8 + dw String_1035b1 + dw String_103571 + db $02 + dw String_103557 + dw String_1035ba + dw String_1035bd + dw String_103585 + db $04 + dw String_103545 + dw String_1035c1 + dw String_1035c1 + dw String_103545 + +String_103545: db "@" +String_103546: db "せんとう アニメ@" +String_10354f: db "でんわばんごう@" +String_103557: db "めいしこうかん@" +String_10355f: db "でんわを かけるひとが きめられる@" +String_103571: db "でんわばんごうの にゅうりょくのしかた@" +String_103585: db "あたらしいめいしが あれば こうかん@" +String_103598: db "とばして みる@" +String_1035a0: db "じっくり みる@" +String_1035a8: db "めいしからえらぶ@" +String_1035b1: db "すうじで いれる@" +String_1035ba: db "する@" +String_1035bd: db "しない@" +String_1035c1: db "けってい@" +; 1035c6 + +Function1035c6: ; 1035c6 + callba Function10138b + ld b, 0 + ld hl, Unknown_1035d7 + add hl, bc + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + ret +; 1035d7 + +Unknown_1035d7: ; 1035d7 + dw Unknown_1035e7 + dw Unknown_1035f3 + dw Unknown_103608 + dw Unknown_103608 + dw Unknown_1035fe + dw AskMobileOrCable + dw AskMobileOrCable + dw AskMobileOrCable + +Unknown_1035e7: ; 1035e7 + dwcoord 0, 6 + db $12, $07, $07 + dw .this +.this + db 4, 2, 1, 0, 3 + +Unknown_1035f3: ; 1035f3 + dwcoord 0, 7 + db $12, $06, $09 + dw .this +.this + db 3, 2, 1, 3 + +Unknown_1035fe: ; 1035fe + dwcoord 0, 9 + db $12, $04, $0b + dw .this +.this + db 2, 0, 3 + +Unknown_103608: ; 103608 + dwcoord 0, 9 + db $12, $04, $0b + dw .this +.this + db 2, 2, 3 +; 103612 + +AskMobileOrCable: ; 103612 + ld hl, MenuDataHeader_103640 + call LoadMenuDataHeader + ld a, [wMobileOrCable_LastSelection] + and $0f + jr z, .skip_load + ld [wMenuCursorBuffer], a + +.skip_load + call VerticalMenu + call CloseWindow + jr c, .pressed_b + ld a, [wMenuCursorY] + ld [ScriptVar], a + ld c, a + ld a, [wMobileOrCable_LastSelection] + and $f0 + or c + ld [wMobileOrCable_LastSelection], a + ret + +.pressed_b + xor a + ld [ScriptVar], a + ret +; 103640 + +MenuDataHeader_103640: ; 103640 + db $40 ; flags + db 6, 13 ; start coords + db 11, 19 ; end coords + dw MenuData2_103648 + db 1 ; default option + +MenuData2_103648: ; 103648 + db $80 ; flags + db 2 + db "モバイル@" + db "ケーブル@" +; 103654 + +Function103654: ; 103654 + callba Mobile_AlwaysReturnNotCarry + bit 7, c + jr nz, .asm_103666 + ld hl, wcd2a + res 5, [hl] + ld c, $02 + ret + +.asm_103666 + ld hl, wcd2a + set 5, [hl] + ld c, $01 + ret +; 10366e + +Mobile_SelectThreeMons: ; 10366e + callba Mobile_AlwaysReturnNotCarry + bit 7, c + jr z, .asm_10369b + ld hl, UnknownText_0x10375d + call PrintText + call YesNoBox + jr c, .asm_103696 + callba CheckForMobileBattleRules + jr nc, .asm_103690 + call JoyWaitAorB + jr .asm_103696 + +.asm_103690 + ld a, $01 + ld [ScriptVar], a + ret + +.asm_103696 + xor a + ld [ScriptVar], a + ret + +.asm_10369b + ld hl, wMobileOrCable_LastSelection + bit 7, [hl] + set 7, [hl] + jr nz, .asm_1036b5 + ld hl, UnknownText_0x103762 + call PrintText + call YesNoBox + jr c, .asm_1036b5 + call Function1036f9 + call JoyWaitAorB + +.asm_1036b5 + call Function103700 + jr c, .asm_1036f4 + ld hl, MenuDataHeader_103747 + call LoadMenuDataHeader + call VerticalMenu + call ExitMenu + jr c, .asm_1036f4 + ld a, [wMenuCursorY] + cp $01 + jr z, .asm_1036d9 + cp $02 + jr z, .asm_1036f4 + cp $03 + jr z, .asm_1036ec + jr .asm_1036b5 + +.asm_1036d9 + callba CheckForMobileBattleRules + jr nc, .asm_1036e6 + call JoyWaitAorB + jr .asm_1036f4 + +.asm_1036e6 + ld a, $01 + ld [ScriptVar], a + ret + +.asm_1036ec + call Function1036f9 + call JoyWaitAorB + jr .asm_1036b5 + +.asm_1036f4 + xor a + ld [ScriptVar], a + ret +; 1036f9 + +Function1036f9: ; 1036f9 + ld hl, UnknownText_0x103767 + call PrintText + ret +; 103700 + +Function103700: ; 103700 + ld c, $0a + ld hl, SwarmFlags + bit 4, [hl] + jr z, .asm_10370f + callba Function1008a6 + +.asm_10370f + ld a, c + ld [StringBuffer2], a + ld a, [StringBuffer2] + cp $05 + jr nc, .asm_103724 + cp $02 + jr nc, .asm_10372c + cp $01 + jr nc, .asm_103734 + jr .asm_10373c + +.asm_103724 + ld hl, UnknownText_0x10376c + call PrintText + and a + ret + +.asm_10372c + ld hl, UnknownText_0x103771 + call PrintText + and a + ret + +.asm_103734 + ld hl, UnknownText_0x103776 + call PrintText + and a + ret + +.asm_10373c + ld hl, UnknownText_0x10377b + call PrintText + call JoyWaitAorB + scf + ret +; 103747 + +MenuDataHeader_103747: ; 103747 + db $40 ; flags + db 5, 13 ; start coords + db 11, 19 ; end coords + dw MenuData2_10374f + db 1 ; default option + +MenuData2_10374f: ; 10374f + db $c0 ; flags + db 3 + db "はい@" + db "やめる@" + db "せつめい@" +; 10375d + +UnknownText_0x10375d: ; 0x10375d + text_jump UnknownText_0x1c422a + db "@" +; 0x103762 +UnknownText_0x103762: ; 0x103762 + text_jump UnknownText_0x1c4275 + db "@" +; 0x103767 +UnknownText_0x103767: ; 0x103767 + text_jump UnknownText_0x1c4298 + db "@" +; 0x10376c +UnknownText_0x10376c: ; 0x10376c + text_jump UnknownText_0x1c439c + db "@" +; 0x103771 +UnknownText_0x103771: ; 0x103771 + text_jump UnknownText_0x1c43dc + db "@" +; 0x103776 +UnknownText_0x103776: ; 0x103776 + text_jump UnknownText_0x1c4419 + db "@" +; 0x10377b +UnknownText_0x10377b: ; 0x10377b + text_jump UnknownText_0x1c445a + db "@" +; 0x103780 + +Function103780: ; 103780 + ld a, [wd265] + push af + call Function10378c + pop af + ld [wd265], a + ret +; 10378c + +Function10378c: ; 10378c + ld c, 0 + ld hl, SwarmFlags + bit 4, [hl] + jr nz, .already_set + ld c, $01 + ld hl, SwarmFlags + set 4, [hl] + +.already_set + push bc + callba Link_SaveGame + pop bc + jr c, .failed_to_save + ld a, $01 + ld [ScriptVar], a + ld a, c + and a + ret z + callba Function1006fd + ret + +.failed_to_save + xor a + ld [ScriptVar], a + ld a, c + and a + ret z + ld hl, SwarmFlags + res 4, [hl] + ret +; 1037c2 + +Function1037c2: ; 1037c2 + call Function103823 + jr c, .nope + ld a, [wdc5f] + and a + jr z, .nope + ld hl, UnknownText_0x1037e6 + call PrintText + call YesNoBox + jr c, .nope + ld a, $01 + ld [ScriptVar], a + ret + +.nope + xor a + ld [wdc5f], a + ld [ScriptVar], a + ret +; 1037e6 + +UnknownText_0x1037e6: ; 0x1037e6 + text_jump UnknownText_0x1c449c + db "@" +; 0x1037eb + +Function1037eb: ; 1037eb + call Function103823 + jr nc, .asm_103807 + ld hl, UnknownText_0x103819 + call PrintText + call JoyWaitAorB + ld hl, UnknownText_0x10381e + call PrintText + call JoyWaitAorB + xor a + ld [ScriptVar], a + ret + +.asm_103807 + ld a, [wdc60] + and a + jr nz, .asm_103813 + ld a, $01 + ld [ScriptVar], a + ret + +.asm_103813 + ld a, $02 + ld [ScriptVar], a + ret +; 103819 + +UnknownText_0x103819: ; 0x103819 + text_jump UnknownText_0x1c44c0 + db "@" +; 0x10381e + +UnknownText_0x10381e: ; 0x10381e + text_jump UnknownText_0x1c44e7 + db "@" +; 0x103823 + +Function103823: ; 103823 + callba Mobile_AlwaysReturnNotCarry + bit 7, c + jr nz, .asm_103838 + callba Function1008a6 + ld a, c + cp $01 + jr c, .asm_10383a + +.asm_103838 + xor a + ret + +.asm_10383a + scf + ret +; 10383c + +Function10383c: ; 10383c + ld a, $01 + ld [wdc60], a + xor a + ld hl, wPlayerMonSelection + ld [hli], a + ld [hli], a + ld [hl], a + ld hl, UnknownText_0x103876 + call PrintText + call JoyWaitAorB + callba Script_reloadmappart + callba Function4a94e + jr c, .asm_103870 + ld hl, wd002 + ld de, wPlayerMonSelection + ld bc, 3 + call CopyBytes + xor a + ld [ScriptVar], a + ret + +.asm_103870 + ld a, $01 + ld [ScriptVar], a + ret +; 103876 + +UnknownText_0x103876: ; 0x103876 + text_jump UnknownText_0x1c4508 + db "@" +; 0x10387b + +Function10387b: ; 10387b + callba Mobile_AlwaysReturnNotCarry + bit 7, c + ret nz + callba Function1008a6 + ld a, c + ld [StringBuffer2], a + ld hl, UnknownText_0x103898 + call PrintText + call JoyWaitAorB + ret +; 103898 + +UnknownText_0x103898: ; 0x103898 + text_jump UnknownText_0x1c4525 + db "@" +; 0x10389d diff --git a/mobile/mobile_41.asm b/mobile/mobile_41.asm new file mode 100755 index 000000000..37e10a01e --- /dev/null +++ b/mobile/mobile_41.asm @@ -0,0 +1,1115 @@ +SECTION "bank41_2", ROMX + +; These functions deal with miscellaneous statistics +; which were used for Trainer Rankings in Pokémon News. + +; Copies certain values at the time the player enters the Hall of Fame. +TrainerRankings_HallOfFame2:: mobile ; 0x105ef6 + ld a, BANK(sTrainerRankingGameTimeHOF) + call GetSRAMBank + + ld hl, GameTimeHours + ld de, sTrainerRankingGameTimeHOF + ld bc, 4 + call CopyBytes + + ld hl, sTrainerRankingStepCount + ld de, sTrainerRankingStepCountHOF + ld bc, 4 + call CopyBytes + + ; sTrainerRankingHealings is only a 3-byte value. + ; One extraneous byte is copied from sTrainerRankingMysteryGift. + ld hl, sTrainerRankingHealings + ld de, sTrainerRankingHealingsHOF + ld bc, 4 + call CopyBytes + + ld hl, sTrainerRankingBattles + ld de, sTrainerRankingBattlesHOF + ld bc, 3 + call CopyBytes + + call UpdateTrainerRankingsChecksum + call CloseSRAM + ret +; 105f33 + +TrainerRankings_MagikarpLength: mobile ; 105f33 + ld a, BANK(sTrainerRankingLongestMagikarp) + call GetSRAMBank + ld de, Buffer1 + ld hl, sTrainerRankingLongestMagikarp + + ; Is this Magikarp the longest measured? + ld a, [de] + cp [hl] + jr z, .isLowByteHigher + jr nc, .newRecordLongest + jr .checkShortest + +.isLowByteHigher + inc hl + inc de + ld a, [de] + cp [hl] + dec hl + dec de + jr c, .checkShortest + +.newRecordLongest + ld a, [de] + inc de + ld [hli], a + ld a, [de] + dec de + ld [hl], a + +.checkShortest + ; First, check if the record for shortest Magikarp is 0. + ; This seems unnecessary, because the value is initialized to 100.0 cm. + ld hl, sTrainerRankingShortestMagikarp + ld a, [hli] + or [hl] + dec hl + jr z, .newRecordShortest + + ; Now check if this Magikarp is the shortest + ld a, [de] + cp [hl] + jr z, .isLowByteLower + jr c, .newRecordShortest + jr .done + +.isLowByteLower + inc hl + inc de + ld a, [de] + cp [hl] + jr nc, .done + dec hl + dec de + +.newRecordShortest + ld a, [de] + inc de + ld [hli], a + ld a, [de] + ld [hl], a + +.done + call UpdateTrainerRankingsChecksum + call CloseSRAM + ret +; 105f79 + +TrainerRankings_BugContestScore: mobile ; 105f79 + ld a, BANK(sTrainerRankingBugContestScore) + call GetSRAMBank + ld a, [hProduct] + ld hl, sTrainerRankingBugContestScore + cp [hl] + jr z, .isLowByteHigher + jr nc, .newHighScore + jr .done + +.isLowByteHigher + inc hl + ld a, [hMultiplicand] + cp [hl] + jr c, .done + dec hl + +.newHighScore + ld a, [hProduct] + ld [hli], a + ld a, [hMultiplicand] + ld [hl], a + +.done + call UpdateTrainerRankingsChecksum + call CloseSRAM + ret +; 105f9f + +TrainerRankings_AddToSlotsWinStreak: mobile ; 105f9f + ld a, BANK(sTrainerRankingCurrentSlotsStreak) + call GetSRAMBank + + ; Increment the current streak + ld hl, sTrainerRankingCurrentSlotsStreak + 1 + inc [hl] + jr nz, .noCarry + dec hl + inc [hl] + inc hl + +.noCarry + dec hl + ; Now check if this is a new record for longest streak + ld a, [sTrainerRankingLongestSlotsStreak] + cp [hl] + jr z, .isLowByteHigher + jr c, .newRecordStreak + jr .done + +.isLowByteHigher + inc hl + ld a, [sTrainerRankingLongestSlotsStreak + 1] + cp [hl] + jr nc, .done + dec hl + +.newRecordStreak + ld a, [hli] + ld [sTrainerRankingLongestSlotsStreak], a + ld a, [hl] + ld [sTrainerRankingLongestSlotsStreak + 1], a + +.done + call UpdateTrainerRankingsChecksum + call CloseSRAM + ret +; 105fd0 + +TrainerRankings_EndSlotsWinStreak: mobile ; 105fd0 + ld a, BANK(sTrainerRankingCurrentSlotsStreak) + call GetSRAMBank + ld hl, sTrainerRankingCurrentSlotsStreak + xor a + ld [hli], a + ld [hl], a + call UpdateTrainerRankingsChecksum + call CloseSRAM + ret +; 105fe3 + +TrainerRankings_AddToSlotsPayouts: mobile ; 105fe3 + ld a, BANK(sTrainerRankingTotalSlotsPayouts) + call GetSRAMBank + ld hl, sTrainerRankingTotalSlotsPayouts + 3 + ld a, e + add [hl] + ld [hld], a + ld a, d + adc [hl] + ld [hld], a + jr nc, .done + inc [hl] + jr nz, .done + dec hl + inc [hl] + jr nz, .done + ld a, $ff + ld [hli], a + ld [hli], a + ld [hli], a + ld [hl], a + +.done + call UpdateTrainerRankingsChecksum + call CloseSRAM + ret +; 106008 + +TrainerRankings_AddToBattlePayouts: mobile ; 106008 + ld a, BANK(sTrainerRankingTotalBattlePayouts) + call GetSRAMBank + ld hl, sTrainerRankingTotalBattlePayouts + 3 + ld a, [bc] + dec bc + add [hl] + ld [hld], a + ld a, [bc] + dec bc + adc [hl] + ld [hld], a + ld a, [bc] + adc [hl] + ld [hld], a + jr nc, .done + inc [hl] + jr nz, .done + ld a, $ff + ld [hli], a + ld [hli], a + ld [hli], a + ld [hl], a + +.done + call UpdateTrainerRankingsChecksum + call CloseSRAM + ret +; 10602e + +TrainerRankings_StepCount: mobile ; 10602e (41:602e) + ld hl, sTrainerRankingStepCount + jp TrainerRankings_Increment4Byte + +; Unreferenced in English version. +TrainerRankings_BattleTowerWins: mobile ; 106035 + ld a, $5 + call GetSRAMBank + ld a, [$aa8d] + and a + call CloseSRAM + ret nz + ld hl, sTrainerRankingBattleTowerWins + jp TrainerRankings_Increment2Byte + +TrainerRankings_TMsHMsTaught: mobile ; 106049 + ld hl, sTrainerRankingTMsHMsTaught + jp TrainerRankings_Increment3Byte + +TrainerRankings_Battles: mobile ; 106050 + ld a, [BattleType] + cp BATTLETYPE_TUTORIAL ; Exclude the Dude’s tutorial battle + ret z + ld hl, sTrainerRankingBattles + jp TrainerRankings_Increment3Byte + +TrainerRankings_WildBattles: mobile ; 10605d + ld a, [BattleType] + cp BATTLETYPE_TUTORIAL ; Exclude the Dude’s tutorial battle + ret z + ld hl, sTrainerRankingWildBattles + jp TrainerRankings_Increment3Byte + +TrainerRankings_TrainerBattles: mobile ; 10606a + ld hl, sTrainerRankingTrainerBattles + jp TrainerRankings_Increment3Byte + +TrainerRankings_Unused1: mobile ; 106071 + ld hl, sTrainerRankingUnused1 + jp TrainerRankings_Increment3Byte + +TrainerRankings_HallOfFame:: mobile ; 0x106078 + ld hl, sTrainerRankingHOFEntries + jp TrainerRankings_Increment3Byte + +TrainerRankings_WildMonsCaught: mobile ; 10607f (41:607f) + ld hl, sTrainerRankingWildMonsCaught + jp TrainerRankings_Increment3Byte + +TrainerRankings_HookedEncounters: mobile ; 106086 + ld hl, sTrainerRankingHookedEncounters + jp TrainerRankings_Increment3Byte + +TrainerRankings_EggsHatched: mobile ; 10608d (41:608d) + ld hl, sTrainerRankingEggsHatched + jp TrainerRankings_Increment3Byte + +TrainerRankings_MonsEvolved: mobile ; 106094 + ld hl, sTrainerRankingMonsEvolved + jp TrainerRankings_Increment3Byte + +TrainerRankings_FruitPicked: mobile ; 10609b + ld hl, sTrainerRankingFruitPicked + jp TrainerRankings_Increment3Byte + +TrainerRankings_Healings: mobile ; 1060a2 + ld hl, sTrainerRankingHealings + jp TrainerRankings_Increment3Byte + +TrainerRankings_MysteryGift: mobile ; 1060a9 (41:60a9) + ld hl, sTrainerRankingMysteryGift + jr TrainerRankings_Increment3Byte + +TrainerRankings_Trades: mobile ; 1060af + ld hl, sTrainerRankingTrades + jr TrainerRankings_Increment3Byte + +TrainerRankings_Fly: mobile ; 1060b5 + ld hl, sTrainerRankingFly + jr TrainerRankings_Increment3Byte + +TrainerRankings_Surf: mobile ; 1060bb + ld hl, sTrainerRankingSurf + jr TrainerRankings_Increment3Byte + +TrainerRankings_Waterfall: mobile ; 1060c1 + ld hl, sTrainerRankingWaterfall + jr TrainerRankings_Increment3Byte + +TrainerRankings_WhiteOuts: mobile ; 1060c7 + ld hl, sTrainerRankingWhiteOuts + jr TrainerRankings_Increment3Byte + +TrainerRankings_LuckyNumberShow: mobile ; 1060cd + ld hl, sTrainerRankingLuckyNumberShow + jr TrainerRankings_Increment2Byte + +TrainerRankings_PhoneCalls: mobile ; 1060d3 + ld hl, sTrainerRankingPhoneCalls + jr TrainerRankings_Increment3Byte + +TrainerRankings_Unused2: mobile ; 1060df + ld hl, sTrainerRankingUnused2 + jr TrainerRankings_Increment3Byte + +TrainerRankings_LinkBattles: mobile ; 1060df + ld hl, sTrainerRankingLinkBattles + jr TrainerRankings_Increment3Byte + +TrainerRankings_Splash: mobile ; 1060e5 + ; Only counts if it’s the player’s turn + ld a, [hBattleTurn] + and a + ret nz + ld hl, sTrainerRankingSplash + jr TrainerRankings_Increment3Byte + +TrainerRankings_TreeEncounters: mobile ; 1060ef + ld hl, sTrainerRankingTreeEncounters + jr TrainerRankings_Increment3Byte + +TrainerRankings_Unused3: mobile ; 1060f5 + ld hl, sTrainerRankingUnused3 + jr TrainerRankings_Increment3Byte + +TrainerRankings_ColosseumWins: mobile ; win + ld hl, sTrainerRankingColosseumWins + jr TrainerRankings_Increment3Byte + +TrainerRankings_ColosseumLosses: mobile ; lose + ld hl, sTrainerRankingColosseumLosses + jr TrainerRankings_Increment3Byte +; 106107 + +TrainerRankings_ColosseumDraws: mobile ; draw + ld hl, sTrainerRankingColosseumDraws + jr TrainerRankings_Increment3Byte +; 10610d + +; Counts uses of both Selfdestruct and Explosion. +TrainerRankings_Selfdestruct: mobile ; 10610d + ; Only counts if it’s the player’s turn + ld a, [hBattleTurn] + and a + ret nz + ld hl, sTrainerRankingSelfdestruct + jr TrainerRankings_Increment3Byte +; 106117 + +TrainerRankings_Increment4Byte: ; 106117 + push bc + ld bc, 3 + jr TrainerRankings_Increment +; 10611d + +TrainerRankings_Increment3Byte: ; 10611d + push bc + ld bc, 2 + jr TrainerRankings_Increment +; 106123 + +TrainerRankings_Increment2Byte: ; 106123 + push bc + ld bc, 1 + jr TrainerRankings_Increment +; 106129 + +; unused +TrainerRankings_Increment1Byte: ; 106129 + push bc + ld bc, 0 + +; Increments a big-endian value of bc + 1 bytes at hl +TrainerRankings_Increment: ; 10612d + ld a, BANK(sTrainerRankings) + call GetSRAMBank + push hl + push de + ld e, c + inc e +.asm_106136 + ld a, [hli] + inc a + jr nz, .asm_10613d + dec e + jr nz, .asm_106136 + +.asm_10613d + pop de + pop hl + jr z, .asm_10614d + add hl, bc +.asm_106142 + inc [hl] + jr nz, .asm_10614d + ld a, c + and a + jr z, .asm_10614d + dec hl + dec c + jr .asm_106142 + +.asm_10614d + call UpdateTrainerRankingsChecksum + call CloseSRAM + pop bc + ret +; 106155 + +; Used when SRAM bank 5 isn’t already loaded — what’s the point of this? +UpdateTrainerRankingsChecksum2: mobile ; 106155 + ld a, BANK(sTrainerRankings) + call GetSRAMBank + call UpdateTrainerRankingsChecksum + call CloseSRAM + ret +; 106162 + +UpdateTrainerRankingsChecksum: ; 106162 + push de + call CalculateTrainerRankingsChecksum + ld hl, sTrainerRankingsChecksum + ld [hl], d + inc hl + ld [hl], e + pop de + ret +; 10616e + +CalculateTrainerRankingsChecksum: ; 10616e + push bc + ld hl, sTrainerRankings + ld bc, sTrainerRankingsChecksum - sTrainerRankings + xor a + ld de, 0 +.asm_106179 + ld a, e + add [hl] + ld e, a + jr nc, .asm_10617f + inc d + +.asm_10617f + inc hl + dec bc + ld a, b + or c + jr nz, .asm_106179 + pop bc + ret +; 106187 + + +BackupMobileEventIndex: ; 106187 + ld a, BANK(sMobileEventIndex) + call GetSRAMBank + ld a, [sMobileEventIndex] + push af + ld a, BANK(sMobileEventIndexBackup) + call GetSRAMBank + pop af + ld [sMobileEventIndexBackup], a + call CloseSRAM + ret +; 10619d + + +RestoreMobileEventIndex: ; 10619d (41:619d) + ld a, BANK(sMobileEventIndexBackup) + call GetSRAMBank + ld a, [sMobileEventIndexBackup] + push af + ld a, BANK(sMobileEventIndex) + call GetSRAMBank + pop af + ld [sMobileEventIndex], a + call CloseSRAM + ret +; 1061b3 (41:61b3) + +; Unreferenced in English version. +VerifyTrainerRankingsChecksum: ; 1061b3 + call CalculateTrainerRankingsChecksum + ld hl, sTrainerRankingsChecksum + ld a, d + cp [hl] + ret nz + inc hl + ld a, e + cp [hl] + ret +; 1061c0 + +DeleteMobileEventIndex: ; 1061c0 (41:61c0) + ld a, BANK(sMobileEventIndex) + call GetSRAMBank + xor a + ld [sMobileEventIndex], a + call CloseSRAM + ret +; 1061cd (41:61cd) + +; Used in the Japanese version to initialize Trainer Rankings data +; for a new save file. Unreferenced in the English version. +InitializeTrainerRankings: + ld hl, sTrainerRankings + ld bc, sTrainerRankingsEnd - sTrainerRankings + xor a + call ByteFill + + ; Initialize the shortest Magikarp to 100.0 cm + ld hl, sTrainerRankingShortestMagikarp + ld a, $3 + ld [hli], a + ld [hl], $e8 + + call UpdateTrainerRankingsChecksum + ld hl, sTrainerRankings + ld de, sTrainerRankingsBackup + ld bc, sTrainerRankingsEnd - sTrainerRankings + call CopyBytes + ret +; 1061ef + + +_MobilePrintNum:: ; 1061ef +; Supports signed 31-bit integers (up to 10 digits) +; b: Bits 0-4 = # bytes +; Bit 7 = set if negative +; c: Number of digits +; de: highest byte of number to convert +; hl: where to print the converted string + push bc + xor a + ld [hPrintNum1], a + ld [hPrintNum2], a + ld [hPrintNum3], a + ld a, b + and $f + cp $1 + jr z, .one_byte + cp $2 + jr z, .two_bytes + cp $3 + jr z, .three_bytes +; four bytes + ld a, [de] + ld [hPrintNum1], a + inc de + +.three_bytes + ld a, [de] + ld [hPrintNum2], a + inc de + +.two_bytes + ld a, [de] + ld [hPrintNum3], a + inc de + +.one_byte + ld a, [de] + ld [hPrintNum4], a + inc de + + push de + xor a + ld [hPrintNum9], a + ld a, b + ld [hPrintNum10], a + ld a, c + cp 2 + jr z, .two_digits + ld de, ._2 + cp 3 + jr z, .three_to_nine_digits + ld de, ._3 + cp 4 + jr z, .three_to_nine_digits + ld de, ._4 + cp 5 + jr z, .three_to_nine_digits + ld de, ._5 + cp 6 + jr z, .three_to_nine_digits + ld de, ._6 + cp 7 + jr z, .three_to_nine_digits + ld de, ._7 + cp 8 + jr z, .three_to_nine_digits + ld de, ._8 + cp 9 + jr z, .three_to_nine_digits + ld de, ._9 + +.three_to_nine_digits + inc de + inc de + inc de + dec a + dec a + +.digit_loop + push af + call .Function1062b2 + call .Function1062ff +rept 4 + inc de +endr + pop af + dec a + jr nz, .digit_loop + +.two_digits + ld c, 0 + ld a, [hPrintNum4] +.mod_ten_loop + cp 10 + jr c, .simple_divide_done + sub 10 + inc c + jr .mod_ten_loop + +.simple_divide_done + ld b, a + ld a, [hPrintNum9] + or c + ld [hPrintNum9], a + jr nz, .create_digit + call .LoadMinusTenIfNegative + jr .done + +.create_digit + ld a, "0" + add c + ld [hl], a + +.done + call .Function1062ff + ld a, "0" + add b + ld [hli], a + pop de + pop bc + ret +; 106292 + +._9 dd 1000000000 +._8 dd 100000000 +._7 dd 10000000 +._6 dd 1000000 +._5 dd 100000 +._4 dd 10000 +._3 dd 1000 +._2 dd 100 +; 1062b2 + +.Function1062b2: ; 1062b2 + ld c, $0 +.asm_1062b4 + ld a, [de] + dec de + ld b, a + ld a, [hPrintNum4] + sub b + ld [hPrintNum8], a + ld a, [de] + dec de + ld b, a + ld a, [hPrintNum3] + sbc b + ld [hPrintNum7], a + ld a, [de] + dec de + ld b, a + ld a, [hPrintNum2] + sbc b + ld [hPrintNum6], a + ld a, [de] + inc de + inc de + inc de + ld b, a + ld a, [hPrintNum1] + sbc b + ld [hPrintNum5], a + jr c, .asm_1062eb + ld a, [hPrintNum5] + ld [hPrintNum1], a + ld a, [hPrintNum6] + ld [hPrintNum2], a + ld a, [hPrintNum7] + ld [hPrintNum3], a + ld a, [hPrintNum8] + ld [hPrintNum4], a + inc c + jr .asm_1062b4 + +.asm_1062eb + ld a, [hPrintNum9] + or c + jr z, .LoadMinusTenIfNegative + ld a, -10 + add c + ld [hl], a + ld [hPrintNum9], a + ret + +.LoadMinusTenIfNegative: + ld a, [hPrintNum10] + bit 7, a + ret z + + ld [hl], -10 + ret +; 1062ff + +.Function1062ff: ; 1062ff + ld a, [hPrintNum10] + bit 7, a + jr nz, .asm_10630d + bit 6, a + jr z, .asm_10630d + ld a, [hPrintNum9] + and a + ret z + +.asm_10630d + inc hl + ret +; 10630f + +; functions related to the cable club and various NPC scripts referencing mobile communications + +Mobile_DummyReturnFalse: ; 10630f + xor a + ld [ScriptVar], a + ret +; 106314 + +MobileFn_106314: mobile ; 106314 + ld a, $4 + call GetSRAMBank + ld a, c + cpl + ld [$b000], a + call CloseSRAM + ld a, $7 + call GetSRAMBank + ld a, c + ld [$a800], a + call CloseSRAM + ret +; 10632f + +Mobile_AlwaysReturnNotCarry: ; 10632f + or a + ret + +Function106331: ; 106331 - called by Mobile_DummyReturnFalse in Crystal-J + ; check ~[4:b000] == [7:a800] + ld a, $4 + call GetSRAMBank + ld a, [$b000] + cpl + ld b, a + call CloseSRAM + ld a, $7 + call GetSRAMBank + ld a, [$a800] + ld c, a + call CloseSRAM + ld a, c + cp b + jr nz, .nope + + ; check [7:a800] != 0 + and a + jr z, .nope + + ; check !([7:a800] & %01110000) + and %10001111 + cp c + jr nz, .nope + + ld c, a + scf + ret + +.nope + xor a + ld c, a + ret +; 10635c + +Function10635c: ; 10635c + ld a, [wMobileCommsJumptableIndex] + bit 7, a + ret nz + ld a, [wMobileCommsJumptableIndex] + ld hl, .Jumptable + rst JumpTable + ret +; 10636a + +.Jumptable: ; 10636a + dw .init + dw Function106392 + dw Function1063cc + dw Function1063d8 + dw Function1063e5 + dw Function1063f3 + dw Function106403 + dw Function106442 + dw Function106453 +; 10637c + +.init: ; 10637c + ld de, wcd30 + ld hl, $41 + ld bc, $41 + ld a, $40 + call Function3e32 + ld a, [wMobileCommsJumptableIndex] + inc a + ld [wMobileCommsJumptableIndex], a + ret +; 106392 + +Function106392: ; 106392 + xor a + ld [wcf64], a + ld a, [wc821] + bit 1, a + jr nz, .asm_1063a2 + bit 0, a + jr z, .asm_1063bf + ret + +.asm_1063a2 + call Mobile_AlwaysReturnNotCarry + ld a, c + and a + jr nz, .asm_1063b4 + ld a, $b + ld [wcf64], a + ld a, $7 + ld [wMobileCommsJumptableIndex], a + ret + +.asm_1063b4 + ld a, $7 + ld [wcf64], a + ld a, $7 + ld [wMobileCommsJumptableIndex], a + ret + +.asm_1063bf + ld a, $1 + ld [wcf64], a + ld a, [wMobileCommsJumptableIndex] + inc a + ld [wMobileCommsJumptableIndex], a + ret +; 1063cc + +Function1063cc: ; 1063cc + ld a, $78 + ld [wcd42], a + ld a, [wMobileCommsJumptableIndex] + inc a + ld [wMobileCommsJumptableIndex], a + +Function1063d8: ; 1063d8 + ld hl, wcd42 + dec [hl] + ret nz + ld a, [wMobileCommsJumptableIndex] + inc a + ld [wMobileCommsJumptableIndex], a + ret +; 1063e5 + +Function1063e5: ; 1063e5 + ld a, [wcf64] + cp $3 + ret nz + ld a, [wMobileCommsJumptableIndex] + inc a + ld [wMobileCommsJumptableIndex], a + ret +; 1063f3 + +Function1063f3: ; 1063f3 + ld de, wcd31 + ld a, $32 + call Function3e32 + ld a, [wMobileCommsJumptableIndex] + inc a + ld [wMobileCommsJumptableIndex], a + ret +; 106403 + +Function106403: ; 106403 + ld a, [wc821] + bit 1, a + jr nz, .asm_106426 + bit 0, a + jr z, .asm_10640f + ret + +.asm_10640f + ld a, [wcd31] + and $80 + ld c, a + ld a, [wcd30] + or c + inc a + ld c, a + call MobileFn_106314 + ld a, [wMobileCommsJumptableIndex] + inc a + ld [wMobileCommsJumptableIndex], a + ret + +.asm_106426 + call Mobile_AlwaysReturnNotCarry + ld a, c + and a + jr z, .asm_106435 + ld a, [wMobileCommsJumptableIndex] + inc a + ld [wMobileCommsJumptableIndex], a + ret + +.asm_106435 + ld c, $0 + call MobileFn_106314 + ld a, [wMobileCommsJumptableIndex] + inc a + ld [wMobileCommsJumptableIndex], a + ret +; 106442 + +Function106442: ; 106442 + ld a, $36 + call Function3e32 + xor a + ld [hMobile], a + ld [hMobileReceive], a + ld a, [wMobileCommsJumptableIndex] + inc a + ld [wMobileCommsJumptableIndex], a + +Function106453: ; 106453 + ld a, [wMobileCommsJumptableIndex] + set 7, a + ld [wMobileCommsJumptableIndex], a + nop + ld a, $4 + ld [wcf64], a + ret +; 106462 + +MobileFunc_106462: mobile + ret +; 106464 + +Function106464:: ; 106464 + ld de, MobilePhoneTilesGFX + ld hl, VTiles2 tile $60 + lb bc, BANK(MobilePhoneTilesGFX), 1 + call Get2bpp + ld de, FontsExtra2_UpArrowGFX + ld hl, VTiles2 tile $61 + lb bc, BANK(FontsExtra2_UpArrowGFX), 1 + call Get2bpp + ld de, GFX_106514 + ld hl, VTiles2 tile $62 + ld c, 9 + ld b, BANK(GFX_106514) + call Get2bpp + ld de, $40b0 + ld hl, VTiles2 tile $6b + ld b, $f ; XXX no graphics at 0f:40b0 + call Get2bpp + callba LoadFrame + ret +; 10649b + +Function10649b: ; 10649b + ld a, [TextBoxFrame] + and $7 + ld bc, 3 tiles + ld hl, Frames + call AddNTimes + ld d, h + ld e, l + ld hl, VTiles2 tile $79 + ld c, 6 + ld b, BANK(Frames) + call Function1064c3 + ld hl, VTiles2 tile $7f + ld de, TextBoxSpaceGFX + ld c, 1 + ld b, BANK(TextBoxSpaceGFX) + call Function1064c3 + ret +; 1064c3 + +Function1064c3: ; 1064c3 + ld a, [rSVBK] + push af + ld a, $6 + ld [rSVBK], a + push bc + push hl + ld hl, Function3f88 + ld a, b + rst FarCall + pop hl + pop bc + pop af + ld [rSVBK], a + jr asm_1064ed + +Function1064d8: ; 1064d8 + ld a, [rSVBK] + push af + ld a, $6 + ld [rSVBK], a + push bc + push hl + ld hl, Function3f9f + ld a, b + rst FarCall + pop hl + pop bc + pop af + ld [rSVBK], a + jr asm_1064ed + +asm_1064ed + ld de, wDecompressScratch + ld b, $0 + ld a, [rSVBK] + push af + ld a, $6 + ld [rSVBK], a + ld a, [rVBK] + push af + ld a, $1 + ld [rVBK], a + call Get2bpp + pop af + ld [rVBK], a + pop af + ld [rSVBK], a + ret +; 10650a + +Function10650a: ; 10650a + ld de, MobilePhoneTilesGFX + $20 + lb bc, BANK(MobilePhoneTilesGFX), $11 + call Get2bpp + ret +; 106514 + +GFX_106514: +INCBIN "gfx/unknown/106514.2bpp" diff --git a/mobile/mobile_42.asm b/mobile/mobile_42.asm new file mode 100644 index 000000000..b625d6bcf --- /dev/null +++ b/mobile/mobile_42.asm @@ -0,0 +1,2009 @@ +MobileTradeAnimation_SendGivemonToGTS: ; 108000 + ld a, $80 + ld [wcf65], a + ld de, .TradeAnimScript + jp RunMobileTradeAnim_NoFrontpics +; 10800b + +.TradeAnimScript: + mobiletradeanim_showgtsgivemon + mobiletradeanim_12 + mobiletradeanim_10 + mobiletradeanim_sendmon + mobiletradeanim_06 + mobiletradeanim_0f + mobiletradeanim_end + +MobileTradeAnimation_RetrieveGivemonFromGTS: + ld a, $80 + jr asm_108018 + +MobileTradeAnimation_ReceiveGetmonFromGTS: ; 108016 + ld a, $0 +asm_108018: + ld [wcf65], a + ld de, .TradeAnimScript + jp RunMobileTradeAnim_NoFrontpics +; 108021 + +.TradeAnimScript: + mobiletradeanim_11 + mobiletradeanim_07 + mobiletradeanim_receivemon + mobiletradeanim_showgtsgetmon + mobiletradeanim_end + +Function108026: ; 108026 + ld a, $0 + jr asm_10802c + +Function10802a: ; 10802a + ld a, $1 + +asm_10802c: + ld [wcf65], a + ld de, .TradeAnimScript + jp RunMobileTradeAnim_Frontpics +; 108035 + +.TradeAnimScript: ; trade + mobiletradeanim_showgivemon + mobiletradeanim_12 + mobiletradeanim_02 + mobiletradeanim_sendmon + mobiletradeanim_05 + mobiletradeanim_receivemon + mobiletradeanim_showgetmon + mobiletradeanim_end + +Function10803d: ; 10803d + ld a, $0 + ld [wcf65], a + ld de, .TradeAnimScript + jp RunMobileTradeAnim_NoFrontpics +; 108048 + +.TradeAnimScript: + mobiletradeanim_11 + mobiletradeanim_07 + mobiletradeanim_receivemon + mobiletradeanim_showoddegg + mobiletradeanim_end + +Function10804d: ; 10804d + ld a, $0 + ld [wcf65], a + ld de, .TradeAnimScript + jp RunMobileTradeAnim_NoFrontpics +; 108058 + +.TradeAnimScript: + mobiletradeanim_11 + mobiletradeanim_showgtsgetmon + mobiletradeanim_end + +RunMobileTradeAnim_Frontpics: ; 10805b + ld hl, wTradeAnimAddress + ld [hl], e + inc hl + ld [hl], d + ld a, [hMapAnims] + push af + xor a + ld [hMapAnims], a + ld hl, VramState + ld a, [hl] + push af + res 0, [hl] + ld hl, Options + ld a, [hl] + push af + set NO_TEXT_SCROLL, [hl] + call Function1080b7 +.loop + call MobileTradeAnim_JumptableLoop + jr nc, .loop + pop af + ld [Options], a + pop af + ld [VramState], a + pop af + ld [hMapAnims], a + ret +; 108089 + +RunMobileTradeAnim_NoFrontpics: ; 108089 + ld hl, wTradeAnimAddress + ld [hl], e + inc hl + ld [hl], d + ld a, [hMapAnims] + push af + xor a + ld [hMapAnims], a + ld hl, VramState + ld a, [hl] + push af + res 0, [hl] + ld hl, Options + ld a, [hl] + push af + set NO_TEXT_SCROLL, [hl] + call Function108157 +.loop + call MobileTradeAnim_JumptableLoop + jr nc, .loop + pop af + ld [Options], a + pop af + ld [VramState], a + pop af + ld [hMapAnims], a + ret +; 1080b7 + +Function1080b7: ; 1080b7 + xor a + ld [wJumptableIndex], a + call ClearBGPalettes + call ClearSprites + call ClearTileMap + call DisableLCD + call MobileTradeAnim_ClearVTiles + call MobileTradeAnim_ClearBGMap + call LoadStandardFont + call LoadFontsBattleExtra + + ld a, $1 + ld [rVBK], a + ld hl, LZ_108da7 + ld de, VTiles2 + call Decompress + + ld a, $0 + ld [rVBK], a + ld hl, LZ_108d27 + ld de, VTiles0 tile $20 + call Decompress + + call EnableLCD + + xor a + ld [hSCX], a + ld [hSCY], a + ld a, $7 + ld [hWX], a + ld a, $90 + ld [hWY], a + callba ClearSpriteAnims + + call DelayFrame + + ld de, TradeBallGFX + ld hl, VTiles0 + lb bc, BANK(TradeBallGFX), $06 + call Request2bpp + + ld de, TradePoofGFX + ld hl, VTiles0 tile $06 + lb bc, BANK(TradePoofGFX), $0c + call Request2bpp + + xor a + ld hl, wSpriteAnimDict + ld [hli], a + ld [hl], $0 + + ld a, [wPlayerTrademonSpecies] + ld hl, wPlayerTrademonDVs + ld de, VTiles0 tile $30 + call MobileTradeAnim_GetFrontpic + + ld a, [wOTTrademonSpecies] + ld hl, wOTTrademonDVs + ld de, VTiles2 tile $31 + call MobileTradeAnim_GetFrontpic + + ld a, [wPlayerTrademonSpecies] + ld de, wPlayerTrademonSpeciesName + call MobileTradeAnim_InitSpeciesName + + ld a, [wOTTrademonSpecies] + ld de, wOTTrademonSpeciesName + call MobileTradeAnim_InitSpeciesName + + xor a + call Function108b98 + call Function108af4 + ret +; 108157 + +Function108157: ; 108157 + xor a + ld [wJumptableIndex], a + call ClearBGPalettes + call ClearSprites + call ClearTileMap + call DisableLCD + call MobileTradeAnim_ClearVTiles + call MobileTradeAnim_ClearBGMap + call LoadStandardFont + call LoadFontsBattleExtra + call EnableLCD + xor a + ld [hSCX], a + ld [hSCY], a + ld a, $7 + ld [hWX], a + ld a, $90 + ld [hWY], a + callba ClearSpriteAnims + xor a + ld hl, wSpriteAnimDict + ld [hli], a + ld [hl], $0 + call DelayFrame + ld a, [wPlayerTrademonSpecies] + ld de, wPlayerTrademonSpeciesName + call MobileTradeAnim_InitSpeciesName + ld a, [wOTTrademonSpecies] + ld de, wOTTrademonSpeciesName + call MobileTradeAnim_InitSpeciesName + xor a + call Function108b98 + call Function108af4 + ret +; 1081ad + +MobileTradeAnim_ClearVTiles: ; 1081ad + ld a, $1 + ld [rVBK], a + ld hl, VTiles0 + ld bc, 3 * $80 tiles + xor a + call ByteFill + ld a, $0 + ld [rVBK], a + ld hl, VTiles0 + ld bc, 3 * $80 tiles + xor a + call ByteFill + ret +; 1081ca + +MobileTradeAnim_ClearBGMap: ; 1081ca + ld a, $1 + ld [rVBK], a + hlbgcoord 0, 0 + ld bc, 2 * BG_MAP_HEIGHT * BG_MAP_WIDTH + ld a, $0 + call ByteFill + ld a, $0 + ld [rVBK], a + hlbgcoord 0, 0 + ld bc, 2 * BG_MAP_HEIGHT * BG_MAP_WIDTH + ld a, $7f + call ByteFill + ret +; 1081e9 + +MobileTradeAnim_GetFrontpic: ; 1081e9 + push de + push af + predef GetUnownLetter + pop af + ld [CurPartySpecies], a + ld [CurSpecies], a + call GetBaseData + pop de + predef GetFrontpic + ret +; 108201 + +Function108201: ; 108201 + push de + push af + predef GetUnownLetter + pop af + ld [CurPartySpecies], a + ld [CurSpecies], a + call GetBaseData + pop de + predef FrontpicPredef + ret +; 108219 + +Function108219: ; 108219 + ld [CurPartySpecies], a + hlcoord 7, 2 + ld d, $0 + ld e, ANIM_MON_TRADE + predef AnimateFrontpic + ret +; 108229 + +Function108229: ; 108229 + ld [CurPartySpecies], a + hlcoord 7, 2 + ld d, $0 + ld e, ANIM_MON_TRADE + predef LoadMonAnimation + ret +; 108239 + +MobileTradeAnim_InitSpeciesName: ; 108239 + push de + ld [wd265], a + call GetPokemonName + ld hl, StringBuffer1 + pop de + ld bc, PKMN_NAME_LENGTH + call CopyBytes + ret +; 10824b + +MobileTradeAnim_JumptableLoop: ; 10824b + ld a, [wJumptableIndex] + bit 7, a + jr nz, .StopAnim + call .ExecuteMobileTradeAnimCommand + call DelayFrame + and a + ret + +.StopAnim: + xor a + ld [hSCX], a + ld [hSCY], a + ld a, $7 + ld [hWX], a + ld a, $90 + ld [hWY], a + call LoadStandardFont + call LoadFontsBattleExtra + callba MobileFunc_106462 + callba Function106464 + scf + ret +; 10827b + +.ExecuteMobileTradeAnimCommand: ; 10827b + ld a, [wJumptableIndex] + ld e, a + ld d, 0 + ld hl, .Jumptable + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp hl +; 10828a + +.Jumptable: ; 10828a + + dw GetMobileTradeAnimByte ; 00 + dw MobileTradeAnim_ShowPlayerMonToBeSent ; 01 + dw MobileTradeAnim_02 ; 02 + dw MobileTradeAnim_GiveTrademon1 ; 03 + dw MobileTradeAnim_GiveTrademon2 ; 04 + dw MobileTradeAnim_05 ; 05 + dw MobileTradeAnim_06 ; 06 + dw MobileTradeAnim_07 ; 07 + dw MobileTradeAnim_GetTrademon1 ; 08 + dw MobileTradeAnim_GetTrademon2 ; 09 + dw MobileTradeAnim_GetTrademon3 ; 0a + dw MobileTradeAnim_ShowOTMonFromTrade ; 0b + dw EndMobileTradeAnim ; 0c + dw MobileTradeAnim_ShowPlayerMonForGTS ; 0d + dw MobileTradeAnim_ShowOTMonFromGTS ; 0e + dw MobileTradeAnim_0f ; 0f + dw MobileTradeAnim_10 ; 10 + dw MobileTradeAnim_11 ; 11 + dw MobileTradeAnim_FadeToBlack ; 12 + dw MobileTradeAnim_GetOddEgg ; 13 get odd egg +; 1082b2 + +MobileTradeAnim_Next: ; 1082b2 + ld hl, wJumptableIndex + inc [hl] + ret +; 1082b7 + +GetMobileTradeAnimByte: ; 1082b7 + ld hl, wTradeAnimAddress + ld e, [hl] + inc hl + ld d, [hl] + ld a, [de] + ld [wJumptableIndex], a + inc de + ld [hl], d + dec hl + ld [hl], e + ret +; 1082c6 + +EndMobileTradeAnim: ; 1082c6 + ld hl, wJumptableIndex + set 7, [hl] + ret +; 1082cc + +WaitMobileTradeSpriteAnims: ; 1082cc +.loop + push bc + callba PlaySpriteAnimations + pop bc + call DelayFrame + dec c + jr nz, .loop + ret +; 1082db + +Function1082db: ; 1082db +.loop + callba PlaySpriteAnimations + callba SetUpPokeAnim + callba HDMATransferTileMapToWRAMBank3 + jr nc, .loop + ret +; 1082f0 + +Function1082f0: ; 1082f0 +.loop + call Function108b78 + call DelayFrame + dec c + jr nz, .loop + ret +; 1082fa + +Function1082fa: ; 1082fa +.loop + call Function108b78 + push hl + push bc + callba PlaySpriteAnimations + pop bc + pop hl + call DelayFrame + dec c + jr nz, .loop + ret +; 10830e + +MobileTradeAnim_ShowPlayerMonToBeSent: ; 10830e + ld de, MUSIC_EVOLUTION + call PlayMusic2 + ld a, $80 + ld [hSCX], a + xor a + ld [hSCY], a + ld a, $87 + ld [hWX], a + ld a, $50 + ld [hWY], a + call MobileTradeAnim_DisplayMonToBeSent + ld a, [wPlayerTrademonSpecies] + ld [CurPartySpecies], a + call Function10895e + ld a, [wPlayerTrademonDVs] + ld [TempMonDVs], a + ld a, [wPlayerTrademonDVs + 1] + ld [TempMonDVs + 1], a + ld b, SCGB_PLAYER_OR_MON_FRONTPIC_PALS + call GetSGBLayout + ld a, %11100100 ; 3,2,1,0 + call DmgToCgbBGPals + call WaitBGMap +.loop + ld a, [hWX] + cp $7 + jr z, .okay + sub $4 + ld [hWX], a + ld a, [hSCX] + sub $4 + ld [hSCX], a + call DelayFrame + jr .loop + +.okay + ld a, $7 + ld [hWX], a + xor a + ld [hSCX], a + ld a, [wPlayerTrademonSpecies] + call GetCryIndex + jr c, .skip_cry + ld e, c + ld d, b + call PlayCryHeader + +.skip_cry + ld c, 80 + call DelayFrames + call Function108bec + depixel 10, 11, 4, 0 + ld a, SPRITE_ANIM_INDEX_MOBILE_TRADE_SENT_BALL + call _InitSpriteAnimStruct + ld de, SFX_BALL_POOF + call PlaySFX + hlcoord 0, 0 + ld bc, 12 * SCREEN_WIDTH + ld a, " " + call ByteFill + ld c, 80 + call WaitMobileTradeSpriteAnims + call GetMobileTradeAnimByte + ret +; 10839b + +MobileTradeAnim_ShowOTMonFromTrade: ; 10839b + call ClearBGPalettes + call ClearSprites + call ClearTileMap + call DisableLCD + call MobileTradeAnim_ClearBGMap + ld a, [wOTTrademonSpecies] + ld [CurPartySpecies], a + ld hl, wOTTrademonDVs + ld de, VTiles2 + call Function108201 + call EnableLCD + callba DeinitializeAllSprites + xor a + ld [hSCX], a + ld [hSCY], a + ld a, $7 + ld [hWX], a + ld a, $90 + ld [hWY], a + depixel 10, 11, 4, 0 + ld a, SPRITE_ANIM_INDEX_MOBILE_TRADE_OT_BALL + call _InitSpriteAnimStruct + call Function108b45 + ld a, $1 + call Function108b98 + call Function108af4 + ld c, 48 + call WaitMobileTradeSpriteAnims + ld de, SFX_BALL_POOF + call PlaySFX + call MobileTradeAnim_DisplayReceivedMon + xor a + ld [hSCX], a + ld [hSCY], a + ld a, $7 + ld [hWX], a + ld a, $50 + ld [hWY], a + ld a, [wOTTrademonSpecies] + ld [CurPartySpecies], a + ld a, [wOTTrademonDVs] + ld [TempMonDVs], a + ld a, [wOTTrademonDVs + 1] + ld [TempMonDVs + 1], a + ld b, SCGB_PLAYER_OR_MON_FRONTPIC_PALS + call GetSGBLayout + ld a, %11100100 ; 3,2,1,0 + call DmgToCgbBGPals + call Function108963 + ld a, [wOTTrademonSpecies] + call Function108229 + call Function1082db + call Function108c16 + call GetMobileTradeAnimByte + ret +; 10842c + +MobileTradeAnim_ShowPlayerMonForGTS: ; 10842c + ld de, MUSIC_EVOLUTION + call PlayMusic2 + ld a, $80 + ld [hSCX], a + xor a + ld [hSCY], a + ld a, $87 + ld [hWX], a + ld a, $50 + ld [hWY], a + call MobileTradeAnim_DisplayMonToBeSent + ld a, [wPlayerTrademonSpecies] + ld [CurPartySpecies], a + ld hl, wPlayerTrademonDVs + call Function10898a + call DelayFrame + ld de, TradeBallGFX + ld hl, VTiles0 + lb bc, BANK(TradeBallGFX), $06 + call Request2bpp + ld de, TradePoofGFX + ld hl, VTiles0 tile $06 + lb bc, BANK(TradePoofGFX), $0c + call Request2bpp + ld a, [wPlayerTrademonDVs] + ld [TempMonDVs], a + ld a, [wPlayerTrademonDVs + 1] + ld [TempMonDVs + 1], a + ld b, SCGB_PLAYER_OR_MON_FRONTPIC_PALS + call GetSGBLayout + ld a, %11100100 ; 3,2,1,0 + call DmgToCgbBGPals + call WaitBGMap +.loop + ld a, [hWX] + cp $7 + jr z, .done + sub $4 + ld [hWX], a + ld a, [hSCX] + sub $4 + ld [hSCX], a + call DelayFrame + jr .loop + +.done + ld a, $7 + ld [hWX], a + xor a + ld [hSCX], a + ld a, [wPlayerTrademonSpecies] + call GetCryIndex + jr c, .skip_cry + ld e, c + ld d, b + call PlayCryHeader + +.skip_cry + ld c, 80 + call DelayFrames + call Function108c2b + depixel 10, 11, 4, 0 + ld a, SPRITE_ANIM_INDEX_MOBILE_TRADE_SENT_BALL + call _InitSpriteAnimStruct + ld de, SFX_BALL_POOF + call PlaySFX + hlcoord 0, 0 + ld bc, 12 * SCREEN_WIDTH + ld a, " " + call ByteFill + ld c, 80 + call WaitMobileTradeSpriteAnims + call GetMobileTradeAnimByte + ret +; 1084d7 + +MobileTradeAnim_ShowOTMonFromGTS: ; 1084d7 + call ClearBGPalettes + call ClearSprites + call ClearTileMap + call DisableLCD + call MobileTradeAnim_ClearBGMap + ld a, [wOTTrademonSpecies] + ld [CurPartySpecies], a + ld hl, wOTTrademonDVs + ld de, VTiles2 + call Function108201 + call EnableLCD + callba DeinitializeAllSprites + call DelayFrame + ld de, TradeBallGFX + ld hl, VTiles0 + lb bc, BANK(TradeBallGFX), $06 + call Request2bpp + ld de, TradePoofGFX + ld hl, VTiles0 tile $06 + lb bc, BANK(TradePoofGFX), $0c + call Request2bpp + xor a + ld [hSCX], a + ld [hSCY], a + ld a, $7 + ld [hWX], a + ld a, $90 + ld [hWY], a + depixel 10, 11, 4, 0 + ld a, SPRITE_ANIM_INDEX_MOBILE_TRADE_OT_BALL + call _InitSpriteAnimStruct + call Function108b45 + ld a, $1 + call Function108b98 + call Function108af4 + ld c, 48 + call WaitMobileTradeSpriteAnims + ld de, SFX_BALL_POOF + call PlaySFX + call MobileTradeAnim_DisplayReceivedMon + xor a + ld [hSCX], a + ld [hSCY], a + ld a, $7 + ld [hWX], a + ld a, $50 + ld [hWY], a + ld a, [wOTTrademonSpecies] + ld [CurPartySpecies], a + ld a, [wOTTrademonDVs] + ld [TempMonDVs], a + ld a, [wOTTrademonDVs + 1] + ld [TempMonDVs + 1], a + ld b, SCGB_PLAYER_OR_MON_FRONTPIC_PALS + call GetSGBLayout + ld a, %11100100 ; 3,2,1,0 + call DmgToCgbBGPals + ld a, [wOTTrademonSpecies] + ld hl, wOTTrademonDVs + call Function10898a + ld a, [wOTTrademonSpecies] + call Function108229 + call Function1082db + call Function108c40 + call GetMobileTradeAnimByte + ret +; 108589 + +MobileTradeAnim_GetOddEgg: ; 108589 + call ClearBGPalettes + call ClearSprites + call ClearTileMap + call DisableLCD + call MobileTradeAnim_ClearBGMap + ld a, [wOTTrademonSpecies] + ld [CurPartySpecies], a + ld hl, wOTTrademonDVs + ld de, VTiles2 + call Function108201 + call EnableLCD + callba DeinitializeAllSprites + call DelayFrame + ld de, TradeBallGFX + ld hl, VTiles0 + lb bc, BANK(TradeBallGFX), $06 + call Request2bpp + ld de, TradePoofGFX + ld hl, VTiles0 tile $06 + lb bc, BANK(TradePoofGFX), $0c + call Request2bpp + xor a + ld [hSCX], a + ld [hSCY], a + ld a, $7 + ld [hWX], a + ld a, $90 + ld [hWY], a + depixel 10, 11, 4, 0 + ld a, SPRITE_ANIM_INDEX_MOBILE_TRADE_OT_BALL + call _InitSpriteAnimStruct + call Function108b45 + ld a, $1 + call Function108b98 + call Function108af4 + ld c, 48 + call WaitMobileTradeSpriteAnims + ld de, SFX_BALL_POOF + call PlaySFX + call Function108a33 + xor a + ld [hSCX], a + ld [hSCY], a + ld a, $7 + ld [hWX], a + ld a, $50 + ld [hWY], a + ld a, [wOTTrademonSpecies] + ld [CurPartySpecies], a + ld a, [wOTTrademonDVs] + ld [TempMonDVs], a + ld a, [wOTTrademonDVs + 1] + ld [TempMonDVs + 1], a + ld b, SCGB_PLAYER_OR_MON_FRONTPIC_PALS + call GetSGBLayout + ld a, %11100100 ; 3,2,1,0 + call DmgToCgbBGPals + ld a, [wOTTrademonSpecies] + ld hl, wOTTrademonDVs + call Function10898a + ld a, [wOTTrademonSpecies] + call Function108229 + call Function1082db + call GetMobileTradeAnimByte + ret +; 108638 + +MobileTradeAnim_02: ; 108638 + callba DeinitializeAllSprites + call ClearBGPalettes + call ClearSprites + call ClearTileMap + xor a + ld [hBGMapMode], a + call DisableLCD + call MobileTradeAnim_ClearBGMap + call Function108c80 + call Function108c6d + call EnableLCD + ld a, $c + ld [hSCX], a + ld a, $78 + ld [hSCY], a + ld a, $7 + ld [hWX], a + ld a, $90 + ld [hWY], a + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + ld hl, Palette_109107 + ld de, UnknBGPals + ld bc, 8 palettes + call CopyBytes + pop af + ld [rSVBK], a + call Function108d07 + call Function108af4 + call GetMobileTradeAnimByte + ret +; 108689 + +MobileTradeAnim_10: ; 108689 + callba DeinitializeAllSprites + call ClearBGPalettes + call ClearSprites + call ClearTileMap + xor a + ld [hBGMapMode], a + call DisableLCD + call MobileTradeAnim_ClearBGMap + ld a, $1 + ld [rVBK], a + ld hl, LZ_108da7 + ld de, VTiles2 + call Decompress + ld a, $0 + ld [rVBK], a + ld hl, LZ_108d27 + ld de, VTiles0 tile $20 + call Decompress + call Function108c80 + call Function108c6d + call EnableLCD + ld a, $c + ld [hSCX], a + ld a, $78 + ld [hSCY], a + ld a, $7 + ld [hWX], a + ld a, $90 + ld [hWY], a + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + ld hl, Palette_109107 + ld de, UnknBGPals + ld bc, 8 palettes + call CopyBytes + pop af + ld [rSVBK], a + call Function108d07 + call Function108af4 + call GetMobileTradeAnimByte + ret +; 1086f4 + +MobileTradeAnim_11: ; 1086f4 + call ClearBGPalettes + call ClearSprites + call ClearTileMap + xor a + ld [hBGMapMode], a + call DisableLCD + ld a, $1 + ld [rVBK], a + ld hl, LZ_108da7 + ld de, VTiles2 + call Decompress + ld a, $0 + ld [rVBK], a + ld hl, LZ_108d27 + ld de, VTiles0 tile $20 + call Decompress + call Function108c80 + call Function108c6d + call EnableLCD + ld a, $80 + ld [hSCX], a + ld a, $90 + ld [hSCY], a + ld a, $7 + ld [hWX], a + ld a, $90 + ld [hWY], a + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + ld hl, Palette_109107 + ld de, UnknBGPals + ld bc, 8 palettes + call CopyBytes + pop af + ld [rSVBK], a + call Function108d07 + call Function108af4 + call Function108b5a + ld a, $e0 + ld [hSCX], a + ld de, MUSIC_EVOLUTION + call PlayMusic2 + call GetMobileTradeAnimByte + ret +; 108763 + +MobileTradeAnim_GiveTrademon1: ; 108763 + ld de, SFX_GIVE_TRADEMON + call PlaySFX + ld c, 40 + ld hl, BGPals + 6 palettes + call Function1082f0 + call Function108af4 +.loop + ld a, [hSCX] + cp $e0 + jr z, .loop2 + dec a + dec a + ld [hSCX], a + cp $f8 + jr nz, .next + depixel 10, 11, 4, 0 + ld a, SPRITE_ANIM_INDEX_MOBILE_22 + call _InitSpriteAnimStruct + +.next + ld c, 1 + call WaitMobileTradeSpriteAnims + jr .loop + +.loop2 + ld a, [hSCY] + cp $f8 + jr z, .done + dec a + dec a + ld [hSCY], a + cp $40 + jr z, .init + cp $30 + jr z, .delete + cp $68 + jr z, .replace + jr .next2 + +.init + depixel 10, 11, 4, 0 + ld a, SPRITE_ANIM_INDEX_MOBILE_22 + call _InitSpriteAnimStruct + xor a + call Function108ad4 + jr .next2 + +.delete + call MobileTradeAnim_DeleteSprites + jr .next2 + +.replace + call MobileTradeAnim_DeleteSprites + ld a, $1 + call Function108ad4 +.next2 + ld c, 1 + call WaitMobileTradeSpriteAnims + jr .loop2 + +.done + call MobileTradeAnim_Next + ret +; 1087cf + +MobileTradeAnim_GiveTrademon2: ; 1087cf + ld c, 40 + ld hl, BGPals + 1 palettes + call Function1082f0 + call Function108af4 + call Function108b5a + depixel 9, 10, 2, 0 + ld a, SPRITE_ANIM_INDEX_MOBILE_25 + call _InitSpriteAnimStruct + ld de, SFX_FORESIGHT + call PlaySFX + ld c, 10 + call WaitMobileTradeSpriteAnims + xor a + ld [wcf64], a + depixel 9, 10, 2, 0 + ld a, SPRITE_ANIM_INDEX_MOBILE_23 + call _InitSpriteAnimStruct +.loop + ld a, [hSCY] + cp $90 + jr z, .done + sub $8 + ld [hSCY], a + ld c, 1 + call WaitMobileTradeSpriteAnims + jr .loop + +.done + call GetMobileTradeAnimByte + ret +; 108811 + +MobileTradeAnim_05: ; 108811 + ld c, 40 + call WaitMobileTradeSpriteAnims + ld a, $1 + ld [wcf64], a + ld de, SFX_SHARPEN + call PlaySFX + ld c, 60 + call WaitMobileTradeSpriteAnims + depixel 30, 10, 2, 0 + ld a, SPRITE_ANIM_INDEX_MOBILE_24 + call _InitSpriteAnimStruct + call GetMobileTradeAnimByte + ld de, SFX_THROW_BALL + call PlaySFX + ret +; 108838 + +MobileTradeAnim_06: ; 108838 + ld c, 40 + call WaitMobileTradeSpriteAnims + ld a, $1 + ld [wcf64], a + ld de, SFX_SHARPEN + call PlaySFX + call GetMobileTradeAnimByte + ret +; 10884c + +MobileTradeAnim_07: ; 10884c + ld c, 80 + call DelayFrames + depixel 30, 10, 2, 0 + ld a, SPRITE_ANIM_INDEX_MOBILE_24 + call _InitSpriteAnimStruct + call GetMobileTradeAnimByte + ld de, SFX_THROW_BALL + call PlaySFX + ret +; 108863 + +MobileTradeAnim_GetTrademon1: ; 108863 + ld c, 40 + call WaitMobileTradeSpriteAnims +.loop + ld a, [hSCY] + cp $f8 + jr z, .done + add $8 + ld [hSCY], a + ld c, 1 + call WaitMobileTradeSpriteAnims + jr .loop + +.done + callba DeinitializeAllSprites + depixel 9, 10, 2, 0 + ld a, SPRITE_ANIM_INDEX_MOBILE_25 + call _InitSpriteAnimStruct + ld de, SFX_GLASS_TING_2 + call PlaySFX + call Function108af4 + call MobileTradeAnim_Next + ret +; 108894 + +MobileTradeAnim_GetTrademon2: ; 108894 + ld c, 20 + ld hl, BGPals + 1 palettes + call Function1082fa + ld de, SFX_GIVE_TRADEMON + call PlaySFX + ld c, 20 + ld hl, BGPals + 1 palettes + call Function1082fa + call Function108af4 +.asm_1088ad + ld a, [hSCY] + cp $78 + jr z, .asm_1088ee + inc a + inc a + ld [hSCY], a + cp $30 + jr z, .asm_1088c5 + cp $40 + jr z, .asm_1088dd + cp $68 + jr z, .asm_1088cf + jr .asm_1088e7 + +.asm_1088c5 + depixel 10, 11, 4, 0 + ld a, SPRITE_ANIM_INDEX_MOBILE_22 + call _InitSpriteAnimStruct + jr .asm_1088e7 + +.asm_1088cf + depixel 10, 11, 4, 0 + ld a, SPRITE_ANIM_INDEX_MOBILE_22 + call _InitSpriteAnimStruct + xor a + call Function108ad4 + jr .asm_1088e7 + +.asm_1088dd + call MobileTradeAnim_DeleteSprites + ld a, $1 + call Function108ad4 + jr .asm_1088e7 + +.asm_1088e7 + ld c, 1 + call WaitMobileTradeSpriteAnims + jr .asm_1088ad + +.asm_1088ee + ld a, [hSCX] + cp $c + jr z, .asm_108906 + inc a + inc a + ld [hSCX], a + cp -8 + jr nz, .asm_1088e7 + call MobileTradeAnim_DeleteSprites + ld c, 1 + call WaitMobileTradeSpriteAnims + jr .asm_1088ee + +.asm_108906 + call MobileTradeAnim_Next + ret +; 10890a + +MobileTradeAnim_GetTrademon3: ; 10890a + ld c, 40 + ld hl, BGPals + 6 palettes + call Function1082f0 + call Function108af4 + call GetMobileTradeAnimByte + ret +; 108919 + +MobileTradeAnim_0f: ; 108919 + ld c, 40 + call WaitMobileTradeSpriteAnims + callba DeinitializeAllSprites + call ClearBGPalettes + call ClearSprites + call ClearTileMap + call DisableLCD + call MobileTradeAnim_ClearVTiles + call MobileTradeAnim_ClearBGMap + call EnableLCD + call GetMobileTradeAnimByte + ret +; 10893d + +MobileTradeAnim_FadeToBlack: ; 10893d +.loop + ld a, [rBGP] + and a + jr z, .blank + sla a + sla a + call DmgToCgbBGPals + call DmgToCgbObjPal0 + ld c, 4 + call DelayFrames + jr .loop + +.blank + xor a + call DmgToCgbBGPals + call DmgToCgbObjPal0 + call GetMobileTradeAnimByte + ret +; 10895e + +Function10895e: ; 10895e + ld de, VTiles0 tile $30 + jr asm_108966 + +Function108963: + ld de, VTiles2 tile $31 +asm_108966 + call DelayFrame + ld hl, VTiles2 + lb bc, $a, $31 ; $a is the bank of ????? + call Request2bpp + call WaitTop + call MobileTradeAnim_ClearTilemap + hlcoord 7, 2 + xor a + ld [hGraphicStartTile], a + lb bc, 7, 7 + predef PlaceGraphic + call WaitBGMap + ret +; 10898a + +Function10898a: ; 10898a + ld de, VTiles2 + call MobileTradeAnim_GetFrontpic + call WaitTop + call MobileTradeAnim_ClearTilemap + hlcoord 7, 2 + xor a + ld [hGraphicStartTile], a + lb bc, 7, 7 + predef PlaceGraphic + call WaitBGMap + ret +; 1089a8 + +MobileTradeAnim_DisplayMonToBeSent: ; 1089a8 + ld de, wPlayerTrademonSpecies + ld a, [de] + cp EGG + jr z, MobileTradeAnim_DisplayEggData + call MobileTradeAnim_LoadMonTemplate + ld de, wPlayerTrademonSpecies + call MobileTradeAnim_MonDisplay_PrintSpeciesNumber + ld de, wPlayerTrademonSpeciesName + call MobileTradeAnim_MonDisplay_PrintSpeciesName + ld a, [wPlayerTrademonCaughtData] + ld de, wPlayerTrademonOTName + call MobileTradeAnim_MonDisplay_PrintOTNameAndGender + ld de, wPlayerTrademonID + call MobileTradeAnim_MonDisplay_PrintIDNumber + call MobileTradeAnim_MonDisplay_UpdateBGMap + ret + +MobileTradeAnim_DisplayReceivedMon: + ld de, wOTTrademonSpecies + ld a, [de] + cp EGG + jr z, MobileTradeAnim_DisplayEggData + call MobileTradeAnim_LoadMonTemplate + ld de, wOTTrademonSpecies + call MobileTradeAnim_MonDisplay_PrintSpeciesNumber + ld de, wOTTrademonSpeciesName + call MobileTradeAnim_MonDisplay_PrintSpeciesName + ld a, [wOTTrademonCaughtData] + ld de, wOTTrademonOTName + call MobileTradeAnim_MonDisplay_PrintOTNameAndGender + ld de, wOTTrademonID + call MobileTradeAnim_MonDisplay_PrintIDNumber + call MobileTradeAnim_MonDisplay_UpdateBGMap + ret + +MobileTradeAnim_DisplayEggData + call WaitTop + call MobileTradeAnim_ClearTilemap + ld a, VBGMap1 / $100 + ld [hBGMapAddress + 1], a + hlcoord 5, 0 + ld b, 6 + ld c, 9 + call TextBox + hlcoord 6, 2 + ld de, .EggTemplate + call PlaceString + call MobileTradeAnim_MonDisplay_UpdateBGMap + ret +; 108a1d + +.EggTemplate: ; 108a1d + db "タマゴ" + next "おや/?????" + next "?????" + db "@" +; 108a33 + +Function108a33: ; 108a33 + call WaitTop + call MobileTradeAnim_ClearTilemap + ld a, VBGMap1 / $100 + ld [hBGMapAddress + 1], a + hlcoord 5, 0 + ld b, 6 + ld c, 9 + call TextBox + hlcoord 7, 4 + ld de, .OddEgg + call PlaceString + call MobileTradeAnim_MonDisplay_UpdateBGMap + ret +; 108a54 + +.OddEgg: ; 108a54 + db "なぞのタマゴ@" +; 108a5b + +MobileTradeAnim_LoadMonTemplate: ; 108a5b + call WaitTop + call MobileTradeAnim_ClearTilemap + ld a, VBGMap1 / $100 + ld [hBGMapAddress + 1], a + hlcoord 4, 0 + ld b, 6 + ld c, 10 + call TextBox + hlcoord 5, 0 + ld de, .MonTemplate + call PlaceString + ret +; 108a79 + +.MonTemplate: ; 108a79 + db "─ №" + next "" + next "おや/" + next "" + db "@" +; 108a87 + +MobileTradeAnim_MonDisplay_UpdateBGMap: ; 108a87 + call WaitBGMap + call WaitTop + ld a, VBGMap0 / $100 + ld [hBGMapAddress + 1], a + ret +; 108a92 + +MobileTradeAnim_MonDisplay_PrintSpeciesNumber: ; 108a92 + hlcoord 9, 0 + lb bc, PRINTNUM_LEADINGZEROS | 1, 3 + call PrintNum + ret +; 108a9c + +MobileTradeAnim_MonDisplay_PrintSpeciesName: ; 108a9c + hlcoord 5, 2 + call PlaceString + ret +; 108aa3 + +MobileTradeAnim_MonDisplay_PrintOTNameAndGender: ; 108aa3 + cp $3 + jr c, .got_gender + xor a +.got_gender + push af + hlcoord 8, 4 + call PlaceString + inc bc + pop af + ld hl, .GenderChars + ld d, 0 + ld e, a + add hl, de + ld a, [hl] + ld [bc], a + ret +; 108abb + +.GenderChars: ; 108abb + db " " + db "♂" + db "♀" +; 108abe + +MobileTradeAnim_MonDisplay_PrintIDNumber: ; 108abe + hlcoord 8, 6 + lb bc, PRINTNUM_LEADINGZEROS | 2, 5 + call PrintNum + ret +; 108ac8 + +MobileTradeAnim_ClearTilemap: ; 108ac8 + hlcoord 0, 0 + ld bc, SCREEN_WIDTH * SCREEN_HEIGHT + ld a, " " + call ByteFill + ret +; 108ad4 + +Function108ad4: ; 108ad4 + and a + jr z, .asm_108adc + ld de, GFX_1092c7 + jr .asm_108adf + +.asm_108adc + ld de, GFX_1091c7 +.asm_108adf + ld a, $1 + ld [rVBK], a + ld hl, VTiles2 tile $4a + lb bc, BANK(GFX_1092c7), 16 + call Get2bpp_2 + call DelayFrame + ld a, $0 + ld [rVBK], a + ret +; 108af4 + +Function108af4: ; 108af4 + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + ld a, [wcf65] + and $1 + jr z, .copy_palette_109147 + ld hl, Palette_109187 + ld de, UnknOBPals + ld bc, 8 palettes + call CopyBytes + ld hl, Palette_109187 + ld de, OBPals + ld bc, 8 palettes + call CopyBytes + jr .done_copy + +.copy_palette_109147 + ld hl, Palette_109147 + ld de, UnknOBPals + ld bc, 8 palettes + call CopyBytes + ld hl, Palette_109147 + ld de, OBPals + ld bc, 8 palettes + call CopyBytes + +.done_copy + pop af + ld [rSVBK], a + ld a, %11100100 ; 3,2,1,0 + call DmgToCgbObjPal0 + ld a, %11100100 ; 3,2,1,0 + call DmgToCgbBGPals + call DelayFrame + ret +; 108b45 + +Function108b45: ; 108b45 + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + ld de, (31 << 10) + (31 << 5) + 31 ; $7fff + ld hl, UnknBGPals + ld a, e + ld [hli], a + ld d, a + ld [hli], a + pop af + ld [rSVBK], a + ret +; 108b5a + +Function108b5a: ; 108b5a + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + ld de, (15 << 10) + (31 << 5) + 18 ; $3ff2 + ld hl, BGPals + 4 palettes + ld c, $10 +.loop + ld a, e + ld [hli], a + ld a, d + ld [hli], a + dec c + jr nz, .loop + pop af + ld [rSVBK], a + ld a, $1 + ld [hCGBPalUpdate], a + ret +; 108b78 + +Function108b78: ; 108b78 + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + ld a, c + and $2 + jr z, .Orange + ld de, (31 << 10) + (31 << 5) + 31 ; $7fff + jr .load_pal + +.Orange: + ld de, ( 1 << 10) + (15 << 5) + 31 ; $05ff +.load_pal + ld a, e + ld [hli], a + ld a, d + ld [hld], a + pop af + ld [rSVBK], a + ld a, $1 + ld [hCGBPalUpdate], a + ret +; 108b98 + +Palette_108b98: +; removed + +Function108b98: ; 108b98 + ld d, a + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + ld a, [wcf65] + and $1 + xor d + jr z, .asm_108bad + ld hl, Palette_108b98 + 1 palettes + jr .asm_108bb0 + +.asm_108bad + ld hl, Palette_108b98 +.asm_108bb0 + ld de, UnknBGPals + 7 palettes + ld bc, 8 palettes + call CopyBytes + pop af + ld [rSVBK], a + ret +; 108bbd + +MobileTradeAnim_DeleteSprites: ; 108bbd + callba DeinitializeAllSprites + call ClearSprites + ret +; 108bc7 + +Function108bc7: ; 108bc7 (42:4bc7) + ld a, [wcf64] + and a + ret z + ld hl, SPRITEANIMSTRUCT_YCOORD + add hl, bc + ld a, [hl] + cp -1 * 8 - 6 + jr z, .delete + sub 1 * 8 + ld [hl], a + ret + +.delete + callba DeinitializeSprite + ret + +Function108be0: ; 108be0 (42:4be0) + ld hl, SPRITEANIMSTRUCT_YCOORD + add hl, bc + ld a, [hl] + cp 9 * 8 + 2 + ret z + add 1 * 8 + ld [hl], a + ret +; 108bec (42:4bec) + +Function108bec: ; 108bec + ld a, $90 + ld [hWY], a + ld hl, .PlayerWillTradeMon + call PrintText + ld c, 80 + call DelayFrames + ld hl, .ForPartnersMon + call PrintText + ld c, 80 + call DelayFrames + ret +; 108c07 + +.PlayerWillTradeMon: ; 0x108c07 + text_jump UnknownText_0x1bc787 + db "@" +; 0x108c0c + +.ForPartnersMon: ; 0x108c0c + text_jump UnknownText_0x1bc79d + db "@" +; 0x108c11 + +.UnusedTextPlayersMonTrade: ; 0x108c11 + text_jump UnknownText_0x1bc7b0 + db "@" +; 0x108c16 + +Function108c16: ; 108c16 + ld a, $90 + ld [hWY], a + ld hl, .TakeGoodCareOfMon + call PrintText + ld c, 80 + call DelayFrames + ret +; 108c26 + +.TakeGoodCareOfMon: ; 0x108c26 + text_jump UnknownText_0x1bc7c3 + db "@" +; 0x108c2b + +Function108c2b: ; 108c2b + ld a, $90 + ld [hWY], a + ld hl, .PlayersMonTrade + call PrintText + ld c, 80 + call DelayFrames + ret +; 108c3b + +.PlayersMonTrade: ; 0x108c3b + text_jump UnknownText_0x1bc7dd + db "@" +; 0x108c40 + +Function108c40: ; 108c40 + ld a, $90 + ld [hWY], a + ld a, [wcf65] + and %10000000 + jr z, .Getmon + ld hl, .CameBack + call PrintText + ld c, 80 + call DelayFrames + ret + +.Getmon: + ld hl, .TakeGoodCareOf + call PrintText + ld c, 80 + call DelayFrames + ret +; 108c63 + +.TakeGoodCareOf: ; 0x108c63 + text_jump UnknownText_0x1bc7f0 + db "@" +; 0x108c68 + +.CameBack: ; 0x108c68 + text_jump UnknownText_0x1bc80a + db "@" +; 0x108c6d + +Function108c6d: ; 108c6d + ld hl, LZ_108fe7 + debgcoord 0, 0 + call Decompress + ld hl, LZ_108fe7 + debgcoord 0, 0, VBGMap1 + call Decompress + ret +; 108c80 + +Function108c80: ; 108c80 + ld a, $1 + ld [rVBK], a + ld hl, LZ_1090a7 + debgcoord 0, 0 + call Decompress + ld hl, LZ_1090a7 + debgcoord 0, 0, VBGMap1 + call Decompress + ld a, $0 + ld [rVBK], a + ret +; 108c9b + +DebugMobileTrade: ; 108c9b +; localization error: NAME_LENGTH (11) should be 6 here + + ld hl, .DebugTradeData + ld a, [hli] + ld [wPlayerTrademonSpecies], a + + ld de, wPlayerTrademonSenderName + ld c, NAME_LENGTH +.your_name_loop + ld a, [hli] + ld [de], a + inc de + dec c + jr nz, .your_name_loop + + ld de, wPlayerTrademonID + ld c, 2 +.your_id_loop + ld a, [hli] + ld [de], a + inc de + dec c + jr nz, .your_id_loop + + ld de, wPlayerTrademonOTName + ld c, NAME_LENGTH +.your_ot_loop + ld a, [hli] + ld [de], a + inc de + dec c + jr nz, .your_ot_loop + + ld a, [hli] + ld [wOTTrademonSpecies], a + + ld de, wOTTrademonSenderName + ld c, NAME_LENGTH +.their_name_loop + ld a, [hli] + ld [de], a + inc de + dec c + jr nz, .their_name_loop + + ld de, wOTTrademonID + ld c, 2 +.their_id_loop + ld a, [hli] + ld [de], a + inc de + dec c + jr nz, .their_id_loop + + ld de, wOTTrademonOTName + ld c, NAME_LENGTH +.their_ot_loop + ld a, [hli] + ld [de], a + inc de + dec c + jr nz, .their_ot_loop + + ret +; 108ce9 + +.DebugTradeData: + db VENUSAUR + db "ゲーフり@@" + dw $0123 + db "かびーん@@" + db CHARIZARD + db "クりーチャ@" + dw $0456 + db "マツミヤ@@" +; 108d07 + +Function108d07: ; 108d07 + ld a, [wc74e] + and $7f + cp $8 + jr c, .asm_108d12 + ld a, $7 + +.asm_108d12 + ld bc, 1 palettes + ld hl, Palette_1093c7 + call AddNTimes + ld a, $5 + ld de, UnknBGPals + 4 palettes + ld bc, 1 palettes + call FarCopyWRAM + ret +; 108d27 + +LZ_108d27: +INCBIN "gfx/unknown/108d27.2bpp.lz" + +LZ_108da7: +INCBIN "gfx/unknown/108da7.2bpp.lz" + +LZ_108fe7: +INCBIN "gfx/unknown/108fe7.tilemap.lz" + +LZ_1090a7: +INCBIN "gfx/unknown/1090a7.tilemap.lz" + +Palette_1090f7: +; unreferenced + RGB 31, 31, 31 + RGB 0, 0, 0 + + RGB 31, 0, 25 + RGB 0, 0, 0 + + RGB 31, 31, 31 + RGB 0, 0, 0 + + RGB 9, 19, 31 + RGB 0, 0, 0 + +Palette_109107: + RGB 18, 31, 15 + RGB 20, 20, 20 + RGB 11, 11, 11 + RGB 0, 0, 0 + + RGB 31, 15, 1 + RGB 14, 14, 31 + RGB 12, 9, 31 + RGB 0, 0, 0 + + RGB 18, 31, 15 + RGB 14, 14, 31 + RGB 12, 9, 31 + RGB 0, 0, 0 + + RGB 18, 31, 15 + RGB 20, 20, 20 + RGB 11, 11, 11 + RGB 0, 0, 0 + + RGB 18, 31, 15 + RGB 31, 7, 9 + RGB 18, 0, 1 + RGB 0, 0, 0 + + RGB 18, 31, 15 + RGB 20, 20, 20 + RGB 11, 11, 11 + RGB 0, 0, 0 + + RGB 31, 15, 1 + RGB 18, 0, 30 + RGB 9, 0, 17 + RGB 0, 0, 0 + + RGB 18, 31, 15 + RGB 18, 0, 30 + RGB 9, 0, 17 + RGB 0, 0, 0 + +Palette_109147: + RGB 31, 31, 31 + RGB 31, 31, 12 + RGB 31, 13, 12 + RGB 0, 0, 0 + + RGB 31, 31, 31 + RGB 31, 23, 15 + RGB 31, 18, 7 + RGB 31, 15, 0 + + RGB 31, 31, 31 + RGB 20, 20, 20 + RGB 11, 11, 11 + RGB 0, 0, 0 + + RGB 31, 31, 31 + RGB 31, 0, 25 + RGB 31, 0, 25 + RGB 0, 0, 0 + + RGB 31, 31, 31 + RGB 9, 19, 31 + RGB 9, 19, 31 + RGB 0, 0, 0 + + RGB 31, 31, 31 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + + RGB 31, 31, 31 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + + RGB 31, 31, 31 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + +Palette_109187: + RGB 31, 31, 31 + RGB 31, 31, 12 + RGB 31, 13, 12 + RGB 0, 0, 0 + + RGB 31, 31, 31 + RGB 31, 23, 15 + RGB 31, 18, 7 + RGB 31, 15, 0 + + RGB 31, 31, 31 + RGB 20, 20, 20 + RGB 11, 11, 11 + RGB 0, 0, 0 + + RGB 31, 31, 31 + RGB 9, 19, 31 + RGB 9, 19, 31 + RGB 0, 0, 0 + + RGB 31, 31, 31 + RGB 31, 0, 25 + RGB 31, 0, 25 + RGB 0, 0, 0 + + RGB 31, 31, 31 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + + RGB 31, 31, 31 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + + RGB 31, 31, 31 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + +GFX_1091c7: +INCBIN "gfx/unknown/1091c7.2bpp" +GFX_1092c7: +INCBIN "gfx/unknown/1092c7.2bpp" + +Palette_1093c7: + RGB 18, 31, 15 + RGB 4, 13, 31 + RGB 0, 0, 31 + RGB 0, 0, 0 + + RGB 18, 31, 15 + RGB 31, 31, 0 + RGB 31, 15, 0 + RGB 0, 0, 0 + + RGB 18, 31, 15 + RGB 9, 24, 0 + RGB 2, 16, 0 + RGB 0, 0, 0 + + RGB 18, 31, 15 + RGB 31, 7, 9 + RGB 18, 0, 1 + RGB 0, 0, 0 + + RGB 18, 31, 15 + RGB 28, 5, 31 + RGB 17, 0, 17 + RGB 0, 0, 0 + + RGB 18, 31, 15 + RGB 9, 9, 9 + RGB 4, 4, 4 + RGB 0, 0, 0 + + RGB 18, 31, 15 + RGB 31, 13, 21 + RGB 27, 7, 12 + RGB 0, 0, 0 + + RGB 18, 31, 15 + RGB 21, 20, 20 + RGB 14, 14, 31 + RGB 0, 0, 0 diff --git a/mobile/mobile_45.asm b/mobile/mobile_45.asm new file mode 100644 index 000000000..d300a0373 --- /dev/null +++ b/mobile/mobile_45.asm @@ -0,0 +1,7690 @@ + +SECTION "bank45", ROMX + + charmap " ", $20 ; revert to ascii + +String_114000: + db "---", 0 +String_114004: + db "CGB-AAAA-00", 0, 0 + +Unknown_114011: ; 114011 + dw String_114033 + dw String_11403a + dw String_114043 + dw String_11404e + dw String_114053 + dw String_114058 + dw String_114062 + dw String_114074 + dw String_11408d + dw String_11409f + dw String_1140b8 + dw String_1140e6 + dw String_114110 + dw String_11413f + dw String_114160 + dw String_114160 + dw String_114163 + +String_114033: ; 114033 + db "From: ", 0 +String_11403a: ; 11403a + db "Sender: ", 0 +String_114043: ; 114043 + db "Reply-To: ", 0 +String_11404e: ; 11404e + db "To: ", 0 +String_114053: ; 114053 + db "Cc: ", 0 +String_114058: ; 114058 + db "Subject: ", 0 +String_114062: ; 114062 + db "MIME-Version: 1.0", 0 +String_114074: ; 114074 + db "X-Game-title: XXXXXXXXXX", 0 +String_11408d: ; 11408d + db "X-Game-code: CGB-", 0 +String_11409f: ; 11409f + db "X-GBmail-type: exclusive", 0 +String_1140b8: ; 1140b8 + db "Content-Type: text/plain; charset=iso-2022-jp", 0 +String_1140e6: ; 1140e6 + db "Content-Type: multipart/mixed; boundary=\"", 0 +String_114110: ; 114110 + db "Content-Type: Application/Octet-Stream; name=\"", 0 +String_11413f: ; 11413f + db "Content-Transfer-Encoding:Base64", 0 +String_114160: ; 114160 + db "--", 0 +String_114163: ; 114163 + db ".", 0 +; 114165 + +Jumptable_114165: ; 114165 + dw Function114268 + dw Function114269 + dw Function11433c + dw Function1143b7 + dw Function1144d1 + dw Function114b55 + dw Function114bbc + dw Function114cd9 + dw Function114e62 + dw Function1152b8 + dw Function1154d4 + dw Function1156cc + dw Function1159fb +; 11417f + +Unknown_11417f: ; 11417f + dw .From + dw .Sender + dw .ReplyTo + dw .To + dw .CC + dw .Subject + dw .Date + dw .ContentType + dw .MimeVersion + dw .XMailer + dw .XGameTitle + dw .XGameCode + dw .XGBMailType + +.From: ; 114199 + db "FROM:", 0 +.Sender: ; 11419f + db "SENDER:", 0 +.ReplyTo: ; 1141a7 + db "REPLY-TO:", 0 +.To: ; 1141b1 + db "TO:", 0 +.CC: ; 1141b5 + db "CC:", 0 +.Subject: ; 1141b9 + db "SUBJECT:", 0 +.Date: ; 1141c2 + db "DATE:", 0 +.ContentType: ; 1141c8 + db "CONTENT-TYPE:", 0 +.MimeVersion: ; 1141d6 + db "MIME-VERSION:", 0 +.XMailer: ; 1141e4 + db "X-MAILER:", 0 +.XGameTitle: ; 1141ee + db "X-GAME-TITLE:", 0 +.XGameCode: ; 1141fc + db "X-GAME-CODE:", 0 +.XGBMailType: ; 114209 + db "X-GBMAIL-TYPE:", 0 +; 114218 + +String_114218: ; 114218 + db "NAME=", 0 +String_11421e: ; 11421e + db "MULTIPART", 0 +String_114228: ; 114228 + db "BOUNDARY=", 0 +String_114232: ; 114232 + db "=?ISO-2022-JP?B?", 0 +; 114243 + +Function114243:: ; 114243 + ld a, SRAM_ENABLE + ld [MBC3SRamEnable], a + ld a, [hFF8C] + push af ; if [$dc02] == 0, this is popped to pc. + push de + ld a, [$dc02] + add a + ld e, a + ld d, 0 + ld hl, Jumptable_114165 + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + pop de + jp hl + +; 11425c + +Function11425c: ; 11425c + ld [$dc02], a + pop af + ld [hFF8C], a + ld [hFF8C], a + ld [MBC3SRamBank], a + ret + +; 114268 + +Function114268: mobile + +; 114269 + +Function114269: ; 114269 + ld h, d + ld l, e + xor a + ld [$dc02], a + ld [$dc03], a + ld a, [hli] + ld [$dc00], a + ld [hFF8C], a + ld [MBC3SRamBank], a + ld e, [hl] + inc hl + ld d, [hl] + inc hl + ld c, [hl] + inc hl + ld b, [hl] +.asm_114282 + ld a, [de] + and a + jr z, .asm_1142a4 + ld h, a + ld a, [$dc03] + and a + jr nz, .asm_114292 + ld a, h + cp $80 + jr nc, .asm_1142ae + +.asm_114292 + ld a, h + cp $d + jr z, .asm_1142bb + xor a + ld [$dc02], a +.asm_11429b + inc e + call z, Function114333 + dec bc + ld a, b + or c + jr nz, .asm_114282 + +.asm_1142a4 + ld a, [$dc03] + and a + jr nz, .asm_114303 + ld b, $80 + jr .asm_1142b0 + +.asm_1142ae + ld b, $81 + +.asm_1142b0 + ld a, [$dc00] + ld c, a + ld a, $1 + ld h, d + ld l, e + jp Function11425c + +.asm_1142bb + and a + jr z, .asm_1142a4 + inc e + call z, Function114333 + dec bc + ld a, b + or c + jr z, .asm_1142a4 + ld a, [de] + ld h, a + ld a, [$dc03] + and a + jr nz, .asm_1142d4 + ld a, h + cp $80 + jr nc, .asm_1142ae + +.asm_1142d4 + ld a, h + cp $a + jr nz, .asm_1142ae + ld a, [$dc03] + and a + jr nz, .asm_11430d + ld a, [$dc02] + and a + jr nz, .asm_114309 + ld a, $1 + ld [$dc02], a + inc e + call z, Function114333 + dec bc + ld a, b + or c + jr z, .asm_1142a4 + ld a, [de] + cp $20 + jr z, .asm_11429b + cp $9 + jr z, .asm_11429b + jr .asm_114282 + +.asm_1142fe + xor a + ld b, a + jp Function11425c + +.asm_114303 + xor a + ld b, $1 + jp Function11425c + +.asm_114309 + xor a + ld [$dc02], a + +.asm_11430d + ld a, [$dc02] + and a + jr nz, .asm_1142fe + ld a, $1 + ld [$dc03], a + inc e + call z, Function114333 + dec bc + ld a, b + or c + jr z, .asm_1142a4 + ld a, [de] + and a + jp z, .asm_1142a4 + cp $2e + jp nz, .asm_114282 + ld a, $1 + ld [$dc02], a + jp .asm_11429b + +; 114333 + +Function114333: ; 114333 + push bc + ld bc, $dc00 + call Function115d80 + pop bc + ret + +; 11433c + +Function11433c: ; 11433c + push de + ld h, d + ld l, e + ld c, [hl] + inc hl + ld e, [hl] + inc hl + ld d, [hl] + ld b, $b + call Function1143f3 + cp $2 + jr z, .asm_114358 + and a + jr z, .asm_114360 + pop hl +.asm_114351 + xor a + ld b, $3 + jp Function11425c + +.asm_114357 + pop hl + +.asm_114358 + pop hl + ld a, $1 + ld b, $82 + jp Function11425c + +.asm_114360 + ld a, h + ld [$dc03], a + pop hl + push bc + push de + ld c, [hl] + inc hl + ld e, [hl] + inc hl + ld d, [hl] + inc hl + ld b, $c + call Function1143f3 + cp $2 + jr z, .asm_114357 + and a + jr z, .asm_114381 + xor a + ld b, $2 + pop hl + pop hl + jp Function11425c + +.asm_114381 + pop de + pop bc + ld a, [$dc03] + ld [$dc00], a + ld [hFF8C], a + ld [MBC3SRamBank], a + call Function114c0b + ld hl, String_114004 +.asm_114394 + ld de, $dc24 +.asm_114397 + ld a, [hli] + and a + jr z, .asm_1143ad + ld b, a + ld a, [de] + inc de + cp b + jr z, .asm_114397 +.asm_1143a1 + ld a, [hli] + and a + jr nz, .asm_1143a1 + ld a, [hl] + and a + jr nz, .asm_114394 + ld b, a + jp Function11425c + +.asm_1143ad + ld a, [de] + and a + jr nz, .asm_114351 + xor a + ld b, $1 + jp Function11425c + +; 1143b7 + +Function1143b7: ; 1143b7 + ld a, [de] + ld b, a + inc de + ld a, [de] + ld c, a + inc de + ld a, [de] + ld h, a + inc de + ld a, [de] + inc de + push de + ld d, a + ld e, h + call Function1143f3 + cp $2 + jr z, .asm_1143eb + and a + jr nz, .asm_1143ed + ld a, h + pop hl + push af + ld a, [hli] + ld [wCurrentMapSignpostCount], a + ld [hFF8C], a + ld [MBC3SRamBank], a + ld a, [hli] + ld h, [hl] + ld l, a + pop af + ld [hli], a + ld a, e + ld [hli], a + ld a, d + ld [hli], a + ld a, c + ld [hli], a + ld [hl], b + xor a + jp Function11425c + +.asm_1143eb + ld b, $82 + +.asm_1143ed + ld a, $1 + pop hl + jp Function11425c + +; 1143f3 + +Function1143f3: ; 1143f3 + call Function114412 + and a + jr nz, .asm_11440d + ld a, $4 + cp b + jr c, .asm_114407 + jr z, .asm_114402 +.asm_114400 + xor a + ret + +.asm_114402 + ld a, $0 + cp c + jr nc, .asm_114400 + +.asm_114407 + lb bc, $4, $0 + ld a, $2 + ret + +.asm_11440d + ld a, $1 + ld b, $84 + ret + +; 114412 + +Function114412: ; 114412 + ld a, c + ld [$dc00], a + ld [hFF8C], a + ld [MBC3SRamBank], a + ld hl, Unknown_11417f + ld a, b + add a + ld c, a + ld b, $0 + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + ld c, $0 + jr .asm_11444a + +.asm_11442b + ld a, [de] + and a + jp z, .asm_1144c2 + inc e + call z, Function1144c8 + cp $d ; CR + jr nz, .asm_11442b + ld a, [de] + inc e + call z, Function1144c8 + cp $a ; NL + jr nz, .asm_11442b + ld a, [de] + cp $2e ; . + jr z, .asm_1144ae + cp $d ; CR + jr z, .asm_1144b8 + +.asm_11444a + ld a, [$dc00] + ld [$dc02], a + ld a, [de] + and a + jr z, .asm_1144c2 + inc e + call z, Function1144c8 + cp $61 ; "a" + jr c, .asm_114462 + cp $7b ; "z" + 1 + jr nc, .asm_114462 + sub $20 + +.asm_114462 + ld b, a + ld a, [hl] + and a + jr z, .asm_114476 + cp b + jr nz, .asm_11446e + inc c + inc hl + jr .asm_11444a + +.asm_11446e + ld a, c + and a + jr z, .asm_11442b + dec c + dec hl + jr .asm_11446e + +.asm_114476 + ld a, $20 ; " " + cp b + jr z, .asm_114481 + ld a, $a ; NL + cp b + jr z, .asm_114481 + dec de + +.asm_114481 + ld h, d + ld l, e + ld bc, NULL +.asm_114486 + ld a, [de] + and a + jr z, .asm_1144c2 + inc bc + inc e + call z, Function1144c8 + cp $d ; CR + jr nz, .asm_114486 + ld a, [de] + inc bc + inc e + call z, Function1144c8 + cp $a ; NL + jr nz, .asm_114486 + ld a, [de] + cp $20 ; " " + jr z, .asm_114486 + cp $9 ; TAB + jr z, .asm_114486 + ld d, h + ld e, l + ld a, [$dc02] + ld h, a + xor a + ret + +.asm_1144ae + inc e + call z, Function1144c8 + ld a, [de] + cp $d ; CR + jp nz, .asm_11442b + +.asm_1144b8 + inc e + call z, Function1144c8 + ld a, [de] + cp $a ; NL + jp nz, .asm_11442b + +.asm_1144c2 + ld a, $0 + ld [hl], a + ld a, $1 + ret + +; 1144c8 + +Function1144c8: ; 1144c8 + push bc + ld bc, $dc00 + call Function115d80 + pop bc + ret + +; 1144d1 + +Function1144d1: ; 1144d1 + call Function114561 + dec de + dec de + push de + inc de + inc de + inc de + inc hl + ld a, [de] + ld [hli], a + inc de + ld a, [de] + ld [hli], a + inc hl + ld a, [de] + ld [hld], a + dec de + ld a, [de] + ld [hl], a + xor a + ld [BigDoll], a + ld [$dc17], a + ld a, $2 + ld [$dc0e], a + ld hl, $dc03 + ld c, [hl] + inc hl + ld e, [hl] + inc hl + ld d, [hl] + call Function114576 + cp $2 + jr z, .asm_11455b + and a + jr z, .asm_114511 + ld a, $1 + ld [$dc0d], a + call Function1146fa + and a + jr nz, .asm_11455b + jr .asm_11451c + +.asm_114511 + call Function1146a4 + and a + jr nz, .asm_11455b + ld a, $2 + ld [$dc0d], a + +.asm_11451c + pop hl + ld a, [hli] + ld [wCurrentMapSignpostCount], a + ld [hFF8C], a + ld [MBC3SRamBank], a + ld e, [hl] + inc hl + ld d, [hl] + ld a, [$dc0d] + ld [de], a + ld b, $0 + ld a, [BigDoll] + and a + jr z, .asm_114537 + ld b, $1 + +.asm_114537 + ld hl, $dc06 + ld a, [hl] + ld [wCurrentMapSignpostCount], a + ld [hFF8C], a + ld [MBC3SRamBank], a + ld hl, $dc09 + ld e, [hl] + inc hl + ld d, [hl] + dec de + ld a, d + or e + jr z, .asm_114559 + ld hl, wCurrMapTriggerCount + ld e, [hl] + inc hl + ld d, [hl] + xor a + ld [de], a + jp Function11425c + +.asm_114559 + ld b, $83 + +.asm_11455b + pop hl + ld a, $1 + jp Function11425c + +; 114561 + +Function114561: ; 114561 + ld hl, $dc03 + ld a, [de] + ld [hli], a + inc de + ld a, [de] + ld [hli], a + inc de + ld a, [de] + ld [hli], a + inc de + ld a, [de] + ld [hli], a + inc de + ld a, [de] + ld [hli], a + inc de + ld a, [de] + ld [hl], a + ret + +; 114576 + +Function114576: ; 114576 + xor a + ld [Bed], a + ld b, $7 + call Function1143f3 + cp $2 + jr z, .asm_1145b6 + and a + jr nz, .asm_1145b4 + ld a, h + ld [$dc00], a + ld [hFF8C], a + ld [MBC3SRamBank], a + push hl + push de + push bc + ld hl, $dc24 + call Function115d53 + call Function1145c5 + pop bc + pop de + pop hl + and a + jr z, .asm_1145bf + ld a, b + and a + jr nz, .asm_1145ba + ld a, h + ld [$dc00], a + ld [hFF8C], a + ld [MBC3SRamBank], a + ld hl, String_114218 + call Function114acf + +.asm_1145b4 + xor a + ret + +.asm_1145b6 + ld b, $82 + jr .asm_1145bc + +.asm_1145ba + ld b, $81 + +.asm_1145bc + ld a, $2 + ret + +.asm_1145bf + ld a, $1 + ld [Bed], a + ret + +; 1145c5 + +Function1145c5: ; 1145c5 + ld hl, $dc24 + ld de, String_11421e + ld c, $0 +.asm_1145cd + ld a, [hli] + and a + jr z, .asm_1145ef + cp $20 + jr z, .asm_1145cd + cp $d + jr z, .asm_1145f8 + cp $61 + jr c, .asm_1145e3 + cp $7b + jr nc, .asm_1145e3 + sub $20 + +.asm_1145e3 + ld b, a + ld a, [de] + and a + jr z, .asm_11460e + inc de + cp b + jr z, .asm_1145cd + dec de + jr .asm_1145cd + +.asm_1145ef + ld b, $0 + jr .asm_1145f5 + +.asm_1145f3 + ld b, $81 + +.asm_1145f5 + ld a, $1 + ret + +.asm_1145f8 + ld a, [hli] + and a + jr z, .asm_1145f3 + cp $a + jr nz, .asm_1145f3 + ld a, [hli] + and a + jr z, .asm_1145f3 + cp $20 + jr z, .asm_1145cd + cp $9 + jr z, .asm_1145cd + jr .asm_1145f3 + +.asm_11460e + ld a, c + and a + jr nz, .asm_114619 + ld c, $1 + ld de, String_114228 + jr .asm_1145cd + +.asm_114619 + dec hl + ld a, [hl] + cp $22 + jr nz, .asm_114620 + inc hl + +.asm_114620 + ld de, $ddc8 + ld b, $0 + ld c, $40 +.asm_114627 + ld a, [hli] + cp $22 + jr z, .asm_114636 + cp $d + jr z, .asm_114636 + ld [de], a + inc de + inc b + dec c + jr nz, .asm_114627 + +.asm_114636 + ld a, b + ld [PartyMon5Defense], a + xor a + ret + +; 11463c + +Function11463c: ; 11463c + ld a, [$dc00] + push af + push de + ld hl, $ddc8 + ld a, [PartyMon5Defense] + ld b, a +.asm_114648 + ld a, [de] + ld c, a + ld a, [hli] + cp c + jr nz, .asm_11468a + inc e + call z, Function11469b + dec b + jr nz, .asm_114648 + ld a, [de] + cp $2d + jr z, .asm_114673 + cp $d + jr nz, .asm_11468a + xor a + ld [Carpet], a +.asm_114662 + inc e + call z, Function11469b + ld a, [de] + cp $a + jr nz, .asm_11468a + inc e + call z, Function11469b + xor a + pop hl + pop hl + ret + +.asm_114673 + inc e + call z, Function11469b + ld a, [de] + cp $2d + jr nz, .asm_11468a + inc e + call z, Function11469b + ld a, $1 + ld [Carpet], a + ld a, [de] + cp $d + jr z, .asm_114662 + +.asm_11468a + pop de + pop af + ld [$dc00], a + ld [hFF8C], a + ld [MBC3SRamBank], a + xor a + ld [Carpet], a + ld a, $1 + ret + +; 11469b + +Function11469b: ; 11469b + push bc + ld bc, $dc00 + call Function115d80 + pop bc + ret + +; 1146a4 + +Function1146a4: ; 1146a4 + call Function114867 + and a + jr nz, .asm_1146e4 + ld hl, $dc03 + ld a, [hli] + ld [$dc00], a + ld [hFF8C], a + ld [MBC3SRamBank], a + ld e, [hl] + inc hl + ld d, [hl] + call Function114a18 + and a + jr nz, .asm_1146e8 + call Function1148c2 + and a + jr nz, .asm_1146e4 + ld hl, $dc03 + ld a, [hli] + ld [$dc00], a + ld [hFF8C], a + ld [MBC3SRamBank], a + ld e, [hl] + inc hl + ld d, [hl] + call Function114a7a + and a + jr nz, .asm_1146e8 +.asm_1146da + dec bc + dec bc + call Function1149cc + and a + jr nz, .asm_1146e4 + xor a + ret + +.asm_1146e4 + ld b, $83 + jr .asm_1146f7 + +.asm_1146e8 + ld a, [$dc17] + and a + jr z, .asm_1146f5 + ld a, $1 + ld [BigDoll], a + jr .asm_1146da + +.asm_1146f5 + ld b, $81 + +.asm_1146f7 + ld a, $1 + ret + +; 1146fa + +Function1146fa: ; 1146fa + call Function114867 + and a + jp nz, .asm_11478a + ld hl, $dc03 + ld a, [hli] + ld [$dc00], a + ld [hFF8C], a + ld [MBC3SRamBank], a + ld e, [hl] + inc hl + ld d, [hl] + call Function114a18 + and a + jp nz, .asm_11478e + call Function1149cc + and a + jp nz, .asm_11478a + ld a, $1 + ld [$dc0e], a + ld a, [$dc00] + ld [hFF8C], a + ld [MBC3SRamBank], a + ld a, $1 + ld [RightOrnament], a + call Function1147cd + and a + jp nz, .asm_1147b7 +.asm_114737 + call Function114843 + cp $1 + jr nz, .asm_114749 + ld a, [$dc17] + and a + jr z, .asm_114794 + ld a, $1 + ld [BigDoll], a + +.asm_114749 + call Function11494d + and a + jr nz, .asm_11478a + ld a, [BigDoll] + and a + jr nz, .asm_114786 + ld hl, $dc03 + ld a, [hli] + ld [$dc00], a + ld [hFF8C], a + ld [MBC3SRamBank], a + ld e, [hl] + inc hl + ld d, [hl] + call Function1147cd + and a + jr nz, .asm_1147b7 + ld a, [$dc0e] + cp $3 + jr nz, .asm_114773 + dec bc + dec bc + +.asm_114773 + call Function1149cc + and a + jr nz, .asm_11478a + ld a, [$dc0d] + inc a + ld [$dc0d], a + ld a, [BigDoll] + and a + jr z, .asm_114799 + +.asm_114786 + ld b, $1 + jr .asm_1147cb + +.asm_11478a + ld b, $83 + jr .asm_114796 + +.asm_11478e + ld a, [$dc17] + and a + jr nz, .asm_114796 + +.asm_114794 + ld b, $81 + +.asm_114796 + ld a, $1 + ret + +.asm_114799 + ld a, [Carpet] + and a + jr z, .asm_114737 + jr .asm_1147cb + + ld hl, $dc03 + ld a, [hli] + ld [$dc00], a + ld [hFF8C], a + ld [MBC3SRamBank], a + call Function114a7a + and a + jr z, .asm_1147cb + xor a + ld [BigDoll], a + +.asm_1147b7 + ld a, [$dc17] + and a + jr z, .asm_114794 + ld a, $1 + ld [BigDoll], a + ld a, [$dc0d] + cp $1 + jr nz, .asm_114773 + ld b, $1 + +.asm_1147cb + xor a + ret + +; 1147cd + +Function1147cd: ; 1147cd + ld bc, NULL + ld a, [RightOrnament] + and a + jr nz, .asm_11480c +.asm_1147d6 + ld a, [de] + and a + jr z, .asm_11482f + inc e + call z, Function11483a + inc bc + cp $d + jr nz, .asm_1147d6 + ld a, [de] + cp $a + jr nz, .asm_11482f +.asm_1147e8 + inc bc + inc e + call z, Function11483a + ld a, [de] + cp $20 + jr z, .asm_114827 + cp $9 + jr z, .asm_114827 + cp $d + jr nz, .asm_11482b + inc e + call z, Function11483a + ld a, [de] + cp $a + jr nz, .asm_11482f + inc e + call z, Function11483a + ld a, h + and a + jr z, .asm_11480c + dec bc + +.asm_11480c + ld a, [de] + cp $2d + jr nz, .asm_1147d6 + inc e + call z, Function11483a + ld a, [de] + cp $2d + jr nz, .asm_1147d6 + inc e + call z, Function11483a + push bc + call Function11463c + pop bc + and a + jr nz, .asm_1147d6 + ret + +.asm_114827 + ld h, $1 + jr .asm_1147e8 + +.asm_11482b + ld h, $0 + jr .asm_11480c + +.asm_11482f + and a + jr nz, .asm_114837 + ld a, $1 + ld [$dc17], a + +.asm_114837 + ld a, $1 + ret + +; 11483a + +Function11483a: ; 11483a + push bc + ld bc, $dc00 + call Function115d80 + pop bc + ret + +; 114843 + +Function114843: ; 114843 + ld a, [$dc00] + push af + push de + ld [hFF8C], a + ld [MBC3SRamBank], a + call Function114a18 + and a + jr nz, .asm_11485f + pop de + pop af + ld [$dc00], a + ld hl, String_114218 + call Function114acf + ret + +.asm_11485f + pop de + pop af + ld [$dc00], a + ld a, $1 + ret + +; 114867 + +Function114867: ; 114867 + ld hl, $dc06 + ld a, [hli] + ld [wCurrentMapSignpostCount], a + ld [hFF8C], a + ld [MBC3SRamBank], a + ld e, [hl] + inc hl + ld d, [hl] + ld a, $2 + ld [de], a + inc e + call z, Function1148b9 + ld a, $1 + ld [de], a + inc e + call z, Function1148b9 + ld hl, $dc03 + ld a, [hli] + ld [de], a + inc e + call z, Function1148b9 + ld a, [hli] + ld [de], a + inc e + call z, Function1148b9 + ld a, [hli] + ld [de], a + inc e + call z, Function1148b9 + ld hl, $dc06 + ld a, [wCurrentMapSignpostCount] + ld [hli], a + ld [hl], e + inc hl + ld [hl], d + inc hl + ld c, [hl] + inc hl + ld b, [hl] + ld d, $5 +.asm_1148a9 + dec bc + ld a, b + or c + jr z, .asm_1148b6 + dec d + jr nz, .asm_1148a9 + ld [hl], b + dec hl + ld [hl], c + xor a + ret + +.asm_1148b6 + ld a, $1 + ret + +; 1148b9 + +Function1148b9: ; 1148b9 + push bc + ld bc, wCurrentMapSignpostCount + call Function115d80 + pop bc + ret + +; 1148c2 + +Function1148c2: ; 1148c2 + ld hl, $dc06 + ld a, [hli] + ld [wCurrentMapSignpostCount], a + ld [hFF8C], a + ld [MBC3SRamBank], a + ld e, [hl] + inc hl + ld d, [hl] + ld a, c + ld [de], a + inc e + call z, Function114944 + ld a, b + ld [de], a + inc e + call z, Function114944 + ld a, [$dc0e] + ld [de], a + inc e + call z, Function114944 + cp $3 + jr nz, .asm_114904 + ld hl, Plant + ld a, [hli] + ld [de], a + inc e + call z, Function114944 + ld a, [hli] + ld [de], a + inc e + call z, Function114944 + ld a, [hli] + ld [de], a + inc e + call z, Function114944 + ld a, [hli] + ld [de], a + inc e + call z, Function114944 + +.asm_114904 + ld hl, $dc03 + ld a, [hli] + ld [de], a + inc e + call z, Function114944 + ld a, [hli] + ld [de], a + inc e + call z, Function114944 + ld a, [hli] + ld [de], a + inc e + call z, Function114944 + ld hl, $dc06 + ld a, [wCurrentMapSignpostCount] + ld [hli], a + ld [hl], e + inc hl + ld [hl], d + inc hl + ld c, [hl] + inc hl + ld b, [hl] + ld a, [$dc0e] + cp $3 + jr z, .asm_114932 + ld d, $6 + jr .asm_114934 + +.asm_114932 + ld d, $a + +.asm_114934 + dec bc + ld a, b + or c + jr z, .asm_114941 + dec d + jr nz, .asm_114934 + ld [hl], b + dec hl + ld [hl], c + xor a + ret + +.asm_114941 + ld a, $1 + ret + +; 114944 + +Function114944: ; 114944 + push bc + ld bc, wCurrentMapSignpostCount + call Function115d80 + pop bc + ret + +; 11494d + +Function11494d: ; 11494d + ld hl, $dc06 + ld a, [hli] + ld [wCurrentMapSignpostCount], a + ld [hFF8C], a + ld [MBC3SRamBank], a + ld e, [hl] + inc hl + ld d, [hl] + ld a, [$dc0e] + ld [de], a + inc e + call z, Function1149c3 + cp $3 + jr nz, .asm_114983 + ld hl, Plant + ld a, [hli] + ld [de], a + inc e + call z, Function1149c3 + ld a, [hli] + ld [de], a + inc e + call z, Function1149c3 + ld a, [hli] + ld [de], a + inc e + call z, Function1149c3 + ld a, [hli] + ld [de], a + inc e + call z, Function1149c3 + +.asm_114983 + ld hl, $dc03 + ld a, [hli] + ld [de], a + inc e + call z, Function1149c3 + ld a, [hli] + ld [de], a + inc e + call z, Function1149c3 + ld a, [hli] + ld [de], a + inc e + call z, Function1149c3 + ld hl, $dc06 + ld a, [wCurrentMapSignpostCount] + ld [hli], a + ld [hl], e + inc hl + ld [hl], d + inc hl + ld c, [hl] + inc hl + ld b, [hl] + ld a, [$dc0e] + cp $3 + jr z, .asm_1149b1 + ld d, $4 + jr .asm_1149b3 + +.asm_1149b1 + ld d, $8 + +.asm_1149b3 + dec bc + ld a, b + or c + jr z, .asm_1149c0 + dec d + jr nz, .asm_1149b3 + ld [hl], b + dec hl + ld [hl], c + xor a + ret + +.asm_1149c0 + ld a, $1 + ret + +; 1149c3 + +Function1149c3: ; 1149c3 + push bc + ld bc, wCurrentMapSignpostCount + call Function115d80 + pop bc + ret + +; 1149cc + +Function1149cc: ; 1149cc + ld hl, $dc06 + ld a, [hl] + ld [wCurrentMapSignpostCount], a + ld [hFF8C], a + ld [MBC3SRamBank], a + push de + ld hl, $dc09 + ld e, [hl] + inc hl + ld d, [hl] + dec de + ld a, d + or e + jr z, .asm_114a0b + dec de + ld a, d + or e + jr z, .asm_114a0b + ld [hl], d + dec hl + ld [hl], e + ld hl, wCurrMapTriggerCount + ld e, [hl] + inc hl + ld d, [hl] + ld a, c + ld [de], a + inc e + call z, Function114a0f + ld a, b + ld [de], a + inc e + call z, Function114a0f + ld hl, $dc06 + ld a, [wCurrentMapSignpostCount] + ld [hli], a + ld [hl], e + inc hl + ld [hl], d + pop de + xor a + ret + +.asm_114a0b + pop de + ld a, $1 + ret + +; 114a0f + +Function114a0f: ; 114a0f + push bc + ld bc, wCurrentMapSignpostCount + call Function115d80 + pop bc + ret + +; 114a18 + +Function114a18: ; 114a18 + ld bc, NULL + ld h, b +.asm_114a1c + inc bc + ld a, [de] + and a + jr z, .asm_114a66 + inc e + call z, Function114a71 + cp $d + jr nz, .asm_114a1c + ld a, [de] + cp $a + jr nz, .asm_114a66 +.asm_114a2e + inc bc + inc e + call z, Function114a71 + ld a, [de] + cp $20 + jr z, .asm_114a5e + cp $9 + jr z, .asm_114a5e + cp $d + jr nz, .asm_114a62 + inc e + call z, Function114a71 + ld a, [de] + cp $a + jr nz, .asm_114a66 + inc e + call z, Function114a71 + ld a, h + and a + jr z, .asm_114a52 + dec bc + +.asm_114a52 + ld hl, $dc03 + ld a, [$dc00] + ld [hli], a + ld [hl], e + inc hl + ld [hl], d + xor a + ret + +.asm_114a5e + ld h, $1 + jr .asm_114a2e + +.asm_114a62 + ld h, $0 + jr .asm_114a1c + +.asm_114a66 + and a + jr nz, .asm_114a6e + ld a, $1 + ld [$dc17], a + +.asm_114a6e + ld a, $1 + ret + +; 114a71 + +Function114a71: ; 114a71 + push bc + ld bc, $dc00 + call Function115d80 + pop bc + ret + +; 114a7a + +Function114a7a: ; 114a7a + ld bc, NULL +.asm_114a7d + inc bc + ld a, [de] + and a + jr z, .asm_114abb + inc e + call z, Function114ac6 + cp $d + jr nz, .asm_114a7d + ld a, [de] + cp $a + jr nz, .asm_114abb + inc e + call z, Function114ac6 + inc bc + ld a, [de] + cp $2e + jr nz, .asm_114a7d + inc e + call z, Function114ac6 + ld a, [de] + cp $d + jr nz, .asm_114a7d + inc e + call z, Function114ac6 + ld a, [de] + cp $a + jr nz, .asm_114abb + inc e + call z, Function114ac6 + ld hl, $dc03 + ld a, [$dc00] + ld [hli], a + ld [hl], e + inc hl + ld [hl], d + xor a + ret + +.asm_114abb + and a + jr nz, .asm_114ac3 + ld a, $1 + ld [$dc17], a + +.asm_114ac3 + ld a, $1 + ret + +; 114ac6 + +Function114ac6: ; 114ac6 + push bc + ld bc, $dc00 + call Function115d80 + pop bc + ret + +; 114acf + +Function114acf: ; 114acf +.asm_114acf + push hl + push bc +.asm_114ad1 + ld a, [hl] + ld b, a + ld a, [de] + inc e + call z, Function114b4c + cp $61 + jr c, .asm_114ae2 + cp $7b + jr nc, .asm_114ae2 + sub $20 + +.asm_114ae2 + cp b + jr z, .asm_114af4 + pop bc + dec bc + push bc + ld a, b + or c + jr nz, .asm_114ad1 +.asm_114aec + ld a, $2 + ld [$dc0e], a + pop bc + pop hl + ret + +.asm_114af4 + inc hl +.asm_114af5 + ld a, [hli] + and a + jr z, .asm_114b19 + ld b, a + ld a, [de] + inc e + call z, Function114b4c + cp $61 + jr c, .asm_114b09 + cp $7b + jr nc, .asm_114b09 + sub $20 + +.asm_114b09 + cp b + jr nz, .asm_114b15 + pop bc + dec bc + push bc + ld a, b + or c + jr nz, .asm_114af5 + jr .asm_114aec + +.asm_114b15 + pop bc + pop hl + jr .asm_114acf + +.asm_114b19 + ld b, $0 + ld c, $40 + ld a, [de] + cp $22 + jr nz, .asm_114b26 + inc e + call z, Function114b4c + +.asm_114b26 + ld hl, Plant + ld a, [$dc00] + ld [hli], a + ld [hl], e + inc hl + ld [hl], d + inc hl +.asm_114b31 + ld a, [de] + cp $22 + jr z, .asm_114b42 + cp $d + jr z, .asm_114b42 + inc e + call z, Function114b4c + inc b + dec c + jr nz, .asm_114b31 + +.asm_114b42 + ld [hl], b + pop bc + pop hl + ld a, $3 + ld [$dc0e], a + xor a + ret + +; 114b4c + +Function114b4c: ; 114b4c + push bc + ld bc, $dc00 + call Function115d80 + pop bc + ret + +; 114b55 + +Function114b55: ; 114b55 + call Function114561 + ld b, $0 + ld hl, $dc03 + ld c, [hl] + inc hl + ld e, [hl] + inc hl + ld d, [hl] + ld hl, $dc24 +.asm_114b65 + push de + push bc + push hl + call Function1143f3 + cp $2 + jr z, .asm_114bb2 + and a + jr nz, .asm_114b8c + ld a, h + pop hl + inc hl + ld [hld], a + ld a, $1 + ld [hli], a + inc hl + ld [hl], e + inc hl + ld [hl], d + inc hl + ld [hl], c + inc hl + ld [hl], b + inc hl +.asm_114b82 + pop bc + pop de + inc b + ld a, b + cp $d + jr z, .asm_114b96 + jr .asm_114b65 + +.asm_114b8c + pop hl + xor a +rept 6 + ld [hli], a +endr + jr .asm_114b82 + +.asm_114b96 + ld hl, $dc06 + ld a, [hli] + ld [wCurrentMapSignpostCount], a + ld [hFF8C], a + ld [MBC3SRamBank], a + ld e, [hl] + inc hl + ld d, [hl] + inc hl + ld bc, $004e + ld hl, $dc24 + call Function115d6a + jp Function11425c + +.asm_114bb2 + ld a, $1 + pop bc + pop bc + pop bc + ld b, $82 + jp Function11425c + +; 114bbc + +Function114bbc: ; 114bbc + ld h, d + ld l, e + ld a, [hli] + ld b, a + ld a, [hli] + ld c, a + ld a, [hli] + ld e, a + ld d, [hl] + inc hl + push hl + call Function1143f3 + cp $2 + jr z, .asm_114c03 + and a + jr nz, .asm_114bff + ld a, h + ld [$dc00], a + ld [hFF8C], a + ld [MBC3SRamBank], a + call Function114c0b + ld hl, $dc24 + call Function114c5e + ld a, b + or c + jr z, .asm_114bff + pop hl + ld a, [hli] + ld [wCurrentMapSignpostCount], a + ld [hFF8C], a + ld [MBC3SRamBank], a + ld a, [hli] + ld e, a + ld d, [hl] + ld hl, $dc24 + push bc + call Function115d6a + pop hl + jp Function11425c + +.asm_114bff + ld b, $84 + jr .asm_114c05 + +.asm_114c03 + ld b, $82 + +.asm_114c05 + ld a, $1 + pop hl + jp Function11425c + +; 114c0b + +Function114c0b: ; 114c0b + ld hl, $dc24 + push bc + call Function115d53 + pop bc + ld hl, $dc24 + ld d, h + ld e, l +.asm_114c18 + ld a, [hli] + cp $d + jr z, .asm_114c34 + ld [de], a + inc de + dec bc + ld a, b + or c + jr nz, .asm_114c18 +.asm_114c24 + xor a + ld [de], a + ld hl, $dc24 + ld bc, NULL +.asm_114c2c + ld a, [hli] + inc bc + and a + jr nz, .asm_114c2c + dec bc + xor a + ret + +.asm_114c34 + dec bc + ld a, b + or c + jr z, .asm_114c24 + ld a, [hli] + cp $a + jr nz, .asm_114c18 + dec bc + ld a, b + or c + jr z, .asm_114c24 + ld a, [hli] + cp $20 + jr z, .asm_114c4e + cp $9 + jr z, .asm_114c4e + jr .asm_114c24 + +.asm_114c4e + dec bc + ld a, b + or c + jr z, .asm_114c24 + jr .asm_114c18 + +; 114c55 + +Function114c55: ; 114c55 + push bc + ld bc, $dc00 + call Function115d80 + pop bc + ret + +; 114c5e + +Function114c5e: ; 114c5e + ld de, PartyMon5Defense + push hl +.asm_114c62 + ld a, [hli] + ld [de], a + inc de + and a + jr z, .asm_114cc6 + cp $3d + jr nz, .asm_114c62 + ld a, [hli] + ld [de], a + inc de + cp $3f + jr nz, .asm_114c62 + dec de + dec de +.asm_114c75 + ld a, [hli] + cp $3f + jr nz, .asm_114c75 + ld a, [hli] + cp $42 + jr nz, .asm_114cb8 + inc hl + ld bc, NULL + push hl +.asm_114c84 + inc bc + ld a, [hli] + cp $3f + jr nz, .asm_114c84 + inc bc + ld a, [hli] + cp $3d + jr nz, .asm_114c84 + dec bc + dec bc + ld a, l + ld [$dc03], a + ld a, h + ld [$dc04], a + pop hl + push de + call Function115c49 + pop de + ld h, d + ld l, e + ld a, [hli] + ld c, a + ld a, [hli] + ld b, a +.asm_114ca6 + ld a, [hli] + ld [de], a + inc de + dec bc + ld a, b + or c + jr nz, .asm_114ca6 + ld a, [$dc03] + ld l, a + ld a, [$dc04] + ld h, a + jr .asm_114c62 + +.asm_114cb8 + ld a, $3d + ld [de], a + inc de + ld a, $3f + ld [de], a + inc de +.asm_114cc0 + ld a, [hli] + ld [de], a + inc de + and a + jr nz, .asm_114cc0 + +.asm_114cc6 + ld [de], a + pop hl + ld de, PartyMon5Defense + ld bc, NULL +.asm_114cce + inc bc + ld a, [de] + ld [hli], a + inc de + and a + jr z, .asm_114cd7 + jr .asm_114cce + +.asm_114cd7 + dec bc + ret + +; 114cd9 + +Function114cd9: ; 114cd9 + ld h, d + ld l, e + ld b, [hl] + inc hl + ld c, [hl] + inc hl + ld e, [hl] + inc hl + ld d, [hl] + inc hl + push hl + call Function1143f3 + and a + jr nz, .asm_114d33 + ld [$dc03], a + ld [$dc04], a + ld a, h + ld [$dc00], a + ld [hFF8C], a + ld [MBC3SRamBank], a + ld hl, $dc24 + call Function114d39 + ld hl, $dc24 + call Function114d99 + pop hl + push hl +rept 4 + inc hl +endr + ld a, [hld] + cp b + jr c, .asm_114d2d + jr z, .asm_114d29 +.asm_114d11 + pop hl + ld a, [hli] + ld [wCurrentMapSignpostCount], a + ld [hFF8C], a + ld [MBC3SRamBank], a + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + ld hl, PartyMon5Defense + call Function115d6a + xor a + jp Function11425c + +.asm_114d29 + ld a, [hli] + cp c + jr nc, .asm_114d11 + +.asm_114d2d + ld b, $83 + jr .asm_114d33 + + ld b, $82 + +.asm_114d33 + pop hl + ld a, $1 + jp Function11425c + +; 114d39 + +Function114d39: ; 114d39 +.asm_114d39 + ld a, [$dc04] + and a + jr nz, .asm_114d4a + ld a, [de] + cp $28 + jr z, .asm_114d55 + cp $22 + jr z, .asm_114d55 + jr .asm_114d7f + +.asm_114d4a + ld a, [de] + cp $29 + jr z, .asm_114d5f + cp $22 + jr z, .asm_114d6f + jr .asm_114d84 + +.asm_114d55 + ld [$dc03], a + ld a, $1 + ld [$dc04], a + jr .asm_114d84 + +.asm_114d5f + ld a, [$dc03] + cp $28 + jr nz, .asm_114d84 + xor a + ld [$dc03], a + ld [$dc04], a + jr .asm_114d84 + +.asm_114d6f + ld a, [$dc03] + cp $22 + jr nz, .asm_114d84 + xor a + ld [$dc03], a + ld [$dc04], a + jr .asm_114d84 + +.asm_114d7f + cp $20 + jr z, .asm_114d84 + ld [hli], a + +.asm_114d84 + dec bc + ld a, b + or c + jr z, .asm_114d96 + inc e + jr nz, .asm_114d39 + push bc + ld bc, $dc00 + call Function115d80 + pop bc + jr .asm_114d39 + +.asm_114d96 + xor a + ld [hli], a + ret + +; 114d99 + +Function114d99: ; 114d99 + ld de, PartyMon5Defense + xor a + ld [de], a +.asm_114d9e + ld a, [hli] + call Function114df1 + and a + jr z, .asm_114dde + cp $40 + jr nz, .asm_114d9e + dec hl +.asm_114daa + dec hl + ld a, [hl] + call Function114e2d + and a + jr z, .asm_114daa + inc hl + push hl + ld b, $0 +.asm_114db6 + ld a, [hli] + cp $40 + jr z, .asm_114dc1 + call Function114e2d + and a + jr nz, .asm_114dc4 + +.asm_114dc1 + inc b + jr .asm_114db6 + +.asm_114dc4 + pop hl + ld a, [PartyMon5Defense] + and a + jr z, .asm_114dd2 + ld a, $2c + inc de + ld [de], a + ld a, [PartyMon5Defense] + +.asm_114dd2 + inc a + ld [PartyMon5Defense], a +.asm_114dd6 + inc de + ld a, [hli] + ld [de], a + dec b + jr nz, .asm_114dd6 + jr .asm_114d9e + +.asm_114dde + inc de + xor a + ld [de], a + ld a, $dd + cpl + ld h, a + ld a, $c8 + cpl + ld l, a + inc hl + add hl, de + ld b, h + ld c, l + inc bc + inc bc + xor a + ret + +; 114df1 + +Function114df1: ; 114df1 + cp $1b + ret nz + ld a, [hli] + and a + jr z, .asm_114e2b + cp $24 + jr nz, .asm_114e09 + ld a, [hli] + and a + jr z, .asm_114e2b + cp $42 + jr z, .asm_114e0b + cp $40 + jr z, .asm_114e0b + dec hl + +.asm_114e09 + dec hl + ret + +.asm_114e0b + ld a, [hli] + and a + jr z, .asm_114e2b + cp $1b + jr nz, .asm_114e0b + ld a, [hli] + and a + jr z, .asm_114e2b + cp $28 + jr nz, .asm_114e0b + ld a, [hli] + and a + jr z, .asm_114e2b + cp $42 + jr z, .asm_114e29 + cp $4a + jr z, .asm_114e29 + jr .asm_114e0b + +.asm_114e29 + ld a, [hli] + ret + +.asm_114e2b + xor a + ret + +; 114e2d + +Function114e2d: ; 114e2d + cp $30 + jr c, .asm_114e45 + cp $40 + jr c, .asm_114e58 + cp $41 + jr c, .asm_114e45 + cp $5b + jr c, .asm_114e58 + cp $61 + jr c, .asm_114e45 + cp $7b + jr c, .asm_114e58 + +.asm_114e45 + cp $20 + jr z, .asm_114e58 + cp $2d + jr z, .asm_114e58 + cp $2e + jr z, .asm_114e58 + cp $5f + jr z, .asm_114e58 +.asm_114e55 + ld a, $1 + ret + +.asm_114e58 + cp $3c + jr z, .asm_114e55 + cp $3e + jr z, .asm_114e55 + xor a + ret + +; 114e62 + +Function114e62: ; 114e62 + ld a, c + and a + jr nz, .asm_114e6f + ld a, [wStartDay] + and a + jp z, Function11425c + jr .asm_114e76 + +.asm_114e6f + xor a + ld [wStartDay], a + call Function114ee9 + +.asm_114e76 + call Function114f0a + cp $ff + jp z, Function11425c + and a + jr nz, .asm_114e99 + call Function114ea0 + and a + jr nz, .asm_114e99 + ld hl, $dc09 + ld a, [hli] + cpl + ld e, a + ld a, [hli] + cpl + ld d, a + inc de + ld a, [hli] + ld h, [hl] + ld l, a + add hl, de + xor a + jp Function11425c + +.asm_114e99 + ld a, $1 + ld b, $83 + jp Function11425c + +; 114ea0 + +Function114ea0: ; 114ea0 + ld hl, $dc06 + ld a, [hli] + ld [wCurrentMapSignpostCount], a + ld [hFF8C], a + ld [MBC3SRamBank], a + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + ld a, [hli] + ld c, a + ld a, [hli] + ld b, a + ld a, $d + ld [de], a + dec bc + ld a, b + or c + jr z, .asm_114edb + inc e + call z, Function114ee0 + ld a, $a + ld [de], a + dec bc + inc e + call z, Function114ee0 + ld hl, $dc06 + ld a, [wCurrentMapSignpostCount] + ld [hli], a + ld a, e + ld [hli], a + ld a, d + ld [hli], a + ld a, c + ld [hli], a + ld [hl], b + xor a + ld [wStartDay], a + ret + +.asm_114edb + ld a, $1 + ld b, $83 + ret + +; 114ee0 + +Function114ee0: ; 114ee0 + push bc + ld bc, wCurrentMapSignpostCount + call Function115d80 + pop bc + ret + +; 114ee9 + +Function114ee9: ; 114ee9 + ld hl, $dc03 + ld a, b + ld [hli], a + ld a, c + ld [hli], a + ld [hli], a + ld a, [de] + ld [hli], a + inc de + ld a, [de] + ld [hli], a + inc de + ld a, [de] + ld [hli], a + inc de + ld a, [de] + ld c, a + ld [hli], a + inc de + ld a, [de] + ld b, a + ld [hli], a + inc de + ld a, c + ld [hli], a + ld a, b + ld [hli], a + ld a, e + ld [hli], a + ld [hl], d + ret + +; 114f0a + +Function114f0a: ; 114f0a + call Function114f39 + and a + jr nz, .asm_114f26 + ld a, [$dc03] + cp $6 + jr c, .asm_114f21 + cp $c + jr z, .asm_114f23 + call Function114f59 + and a + jr nz, .asm_114f23 + +.asm_114f21 + xor a + ret + +.asm_114f23 + ld a, $1 + ret + +.asm_114f26 + call Function114f59 + and a + jr nz, .asm_114f23 + ld hl, $dc0d + ld e, [hl] + inc hl + ld d, [hl] + ld a, [de] + and a + jr z, .asm_114f21 + ld a, $ff + ret + +; 114f39 + +Function114f39: ; 114f39 + ld hl, $dc0d + ld e, [hl] + inc hl + ld d, [hl] + inc hl + ld a, [de] + and a + jr z, .asm_114f58 + ld [hli], a + inc de + ld a, [de] + ld [hli], a + inc de + ld a, [de] + ld [hli], a + inc de + ld a, [de] + ld [hli], a + inc de + ld hl, $dc0d + ld [hl], e + inc hl + ld [hl], d + ld a, $1 + ret + +.asm_114f58 + ret + +; 114f59 + +Function114f59: ; 114f59 + ld a, [wStartDay] + and a + jr nz, .asm_114f7c + ld a, [$dc03] + cp $11 + jr z, .asm_114fa7 + add a + ld e, a + ld d, 0 + ld hl, Unknown_114011 + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + call Function115020 + and a + jr nz, .asm_114fe7 + ld a, $1 + ld [wStartDay], a + +.asm_114f7c + ld a, [$dc03] + cp $5 + jr c, .asm_114fc9 + jr z, .asm_114fec + cp $8 + jr c, .asm_114fa5 + jr z, .asm_114ff4 + cp $b + jr c, .asm_114fa5 + jr z, .asm_114ffc + cp $c + jr z, .asm_115007 + cp $d + jr z, .asm_114fa5 + cp $10 + jr c, .asm_115015 + jr z, .asm_114fa5 + cp $12 + jr c, .asm_114fa5 + jr .asm_114fe7 + +.asm_114fa5 + xor a + ret + +.asm_114fa7 + ld hl, Bed + ld c, [hl] + inc hl + ld a, [hli] + ld [$dc00], a + ld [hFF8C], a + ld [MBC3SRamBank], a + ld e, [hl] + inc hl + ld d, [hl] + ld hl, $dc24 + call Function115d53 + ld hl, $dc24 + call Function115020 + and a + jr nz, .asm_114fe7 + jr .asm_11501e + +.asm_114fc9 + call Function115062 + and a + jr nz, .asm_114fe7 + ld a, [$dc04] + dec a + ld [$dc04], a + and a + jr z, .asm_114fdf + call Function114f39 + and a + jr nz, .asm_114fc9 + +.asm_114fdf + ld a, [$dc05] + ld [$dc04], a + jr .asm_11501e + +.asm_114fe7 + ld a, $1 + ld b, $83 + ret + +.asm_114fec + call Function115062 + and a + jr nz, .asm_114fe7 + jr .asm_11501e + +.asm_114ff4 + call Function115179 + and a + jr nz, .asm_114fe7 + jr .asm_11501e + +.asm_114ffc + ld hl, String_114000 + call Function115217 + and a + jr nz, .asm_114fe7 + jr .asm_11501e + +.asm_115007 + call Function11528f + ld hl, $dc24 + call Function115217 + and a + jr nz, .asm_114fe7 + jr .asm_11501e + +.asm_115015 + ld hl, String_114000 + call Function115217 + and a + jr nz, .asm_114fe7 + +.asm_11501e + xor a + ret + +; 115020 + +Function115020: ; 115020 + push hl + ld hl, $dc06 + ld a, [hli] + ld [wCurrentMapSignpostCount], a + ld [hFF8C], a + ld [MBC3SRamBank], a + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + ld a, [hli] + ld c, a + ld a, [hli] + ld b, a + pop hl +.asm_115036 + ld a, [hli] + and a + jr z, .asm_115046 + ld [de], a + dec bc + ld a, b + or c + jr z, .asm_115056 + inc e + call z, Function115059 + jr .asm_115036 + +.asm_115046 + ld hl, $dc06 + ld a, [wCurrentMapSignpostCount] + ld [hli], a + ld a, e + ld [hli], a + ld a, d + ld [hli], a + ld a, c + ld [hli], a + ld [hl], b + xor a + ret + +.asm_115056 + ld a, $1 + ret + +; 115059 + +Function115059: ; 115059 + push bc + ld bc, wCurrentMapSignpostCount + call Function115d80 + pop bc + ret + +; 115062 + +Function115062: ; 115062 + ld hl, Bed + ld a, [hli] + and a + jr z, .asm_1150ae + ld c, a + ld a, [hli] + ld [$dc00], a + ld [hFF8C], a + ld [MBC3SRamBank], a + ld e, [hl] + inc hl + ld d, [hl] + ld b, $0 + ld hl, $dc24 + ld a, [wStartDay] + cp $1 + jr z, .asm_11509b + cp $2 + jr z, .asm_115098 + cp $3 + jr nz, .asm_1150b2 + ld a, $2c + ld [hli], a + ld a, $d + ld [hli], a + ld a, $a + ld [hli], a + ld a, $9 + ld [hli], a + jr .asm_11509b + +.asm_115098 + ld a, $2c + ld [hli], a + +.asm_11509b + call Function115d53 + call Function1150b3 + call Function115136 + ld a, [wStartDay] + inc a + cp $4 + jr nz, .asm_1150ae + ld a, $2 + +.asm_1150ae + ld [wStartDay], a + xor a + +.asm_1150b2 + ret + +; 1150b3 + +Function1150b3: ; 1150b3 + ld hl, $dc24 + ld de, PartyMon5Defense + ld b, $0 +.asm_1150bb + ld c, $0 + ld a, [hli] + cp $1b + jr z, .asm_1150c9 + ld [de], a + inc de + and a + jr z, .asm_115133 + jr .asm_1150bb + +.asm_1150c9 + inc c + ld a, [hl] + cp $24 + jr nz, .asm_1150bb + inc hl + inc c + ld a, [hl] + cp $42 + jr z, .asm_1150dc + cp $40 + jr z, .asm_1150dc + jr .asm_1150bb + +.asm_1150dc + push hl +.asm_1150dd + inc c + ld a, [hli] + and a + jr z, .asm_115133 + cp $1b + jr nz, .asm_1150dd + inc c + ld a, [hli] + cp $28 + jr nz, .asm_1150dd + inc c + ld a, [hli] + cp $42 + jr z, .asm_1150f8 + cp $4a + jr z, .asm_1150f8 + jr .asm_1150dd + +.asm_1150f8 + ld a, l + ld [Console], a + ld a, h + ld [LeftOrnament], a + ld hl, String_114232 +.asm_115103 + ld a, [hli] + and a + jr z, .asm_11510b + ld [de], a + inc de + jr .asm_115103 + +.asm_11510b + pop hl + dec hl + dec hl + push de + call Function1158c2 + pop de + ld h, d + ld l, e + ld c, [hl] + inc hl + ld b, [hl] + inc hl +.asm_115119 + ld a, [hli] + ld [de], a + inc de + dec bc + ld a, b + or c + jr nz, .asm_115119 + ld a, $3f + ld [de], a + inc de + ld a, $3d + ld [de], a + inc de + ld a, [Console] + ld l, a + ld a, [LeftOrnament] + ld h, a + jr .asm_1150bb + +.asm_115133 + xor a + ld [de], a + ret + +; 115136 + +Function115136: ; 115136 + ld hl, $dc06 + ld a, [hli] + ld [wCurrentMapSignpostCount], a + ld [hFF8C], a + ld [MBC3SRamBank], a + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + ld a, [hli] + ld c, a + ld a, [hli] + ld b, a + ld hl, PartyMon5Defense +.asm_11514d + ld a, [hli] + and a + jr z, .asm_11515d + ld [de], a + dec bc + ld a, b + or c + jr z, .asm_11516d + inc e + call z, Function115170 + jr .asm_11514d + +.asm_11515d + ld hl, $dc06 + ld a, [wCurrentMapSignpostCount] + ld [hli], a + ld a, e + ld [hli], a + ld a, d + ld [hli], a + ld a, c + ld [hli], a + ld [hl], b + xor a + ret + +.asm_11516d + ld a, $1 + ret + +; 115170 + +Function115170: ; 115170 + push bc + ld bc, wCurrentMapSignpostCount + call Function115d80 + pop bc + ret + +; 115179 + +Function115179: ; 115179 + ld hl, $dc06 + ld a, [hli] + ld [wCurrentMapSignpostCount], a + ld [hFF8C], a + ld [MBC3SRamBank], a + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + ld a, [hli] + ld c, a + ld a, [hli] + ld b, a + ld hl, $013f + ld a, [hli] + ld [de], a + dec bc + ld a, b + or c + jr z, .asm_1151ef + inc e + call z, Function11520e + ld a, [hli] + ld [de], a + dec bc + ld a, b + or c + jr z, .asm_1151ef + inc e + call z, Function11520e + ld a, [hli] + ld [de], a + dec bc + ld a, b + or c + jr z, .asm_1151ef + inc e + call z, Function11520e + ld a, [hli] + ld [de], a + dec bc + ld a, b + or c + jr z, .asm_1151ef + inc e + call z, Function11520e + ld a, $2d + ld [de], a + dec bc + ld a, b + or c + jr z, .asm_1151ef + inc e + call z, Function11520e + ld a, [$014c] + ld h, a + and $f0 + swap a + cp $a + jr nc, .asm_1151d8 + add $30 + jr .asm_1151da + +.asm_1151d8 + add $37 + +.asm_1151da + ld [de], a + dec bc + ld a, b + or c + jr z, .asm_1151ef + inc e + call z, Function11520e + ld a, h + and $f + cp $a + jr nc, .asm_1151f2 + add $30 + jr .asm_1151f4 + +.asm_1151ef + ld a, $1 + ret + +.asm_1151f2 + add $37 + +.asm_1151f4 + ld [de], a + dec bc + ld a, b + or c + jr z, .asm_1151ef + inc e + call z, Function11520e + ld hl, $dc06 + ld a, [wCurrentMapSignpostCount] + ld [hli], a + ld a, e + ld [hli], a + ld a, d + ld [hli], a + ld a, c + ld [hli], a + ld [hl], b + xor a + ret + +; 11520e + +Function11520e: ; 11520e + push bc + ld bc, wCurrentMapSignpostCount + call Function115d80 + pop bc + ret + +; 115217 + +Function115217: ; 115217 + push hl + ld hl, $dc06 + ld a, [hli] + ld [wCurrentMapSignpostCount], a + ld [hFF8C], a + ld [MBC3SRamBank], a + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + ld a, [hli] + ld c, a + ld a, [hli] + ld b, a + pop hl +.asm_11522d + ld a, [hli] + and a + jr z, .asm_11523d + ld [de], a + dec bc + ld a, b + or c + jr z, .asm_115262 + inc e + call z, Function115286 + jr .asm_11522d + +.asm_11523d + ld a, [$dc03] + cp $b + jr z, .asm_115278 + cp $c + jr z, .asm_115278 + cp $e + jr z, .asm_115252 + cp $f + jr z, .asm_115265 + jr .asm_115262 + +.asm_115252 + ld hl, $dc06 + ld a, [wCurrentMapSignpostCount] + ld [hli], a + ld a, e + ld [hli], a + ld a, d + ld [hli], a + ld a, c + ld [hli], a + ld [hl], b + xor a + ret + +.asm_115262 + ld a, $1 + ret + +.asm_115265 + ld h, $2 +.asm_115267 + ld a, $2d + ld [de], a + dec bc + ld a, b + or c + jr z, .asm_115262 + inc e + call z, Function115286 + dec h + jr nz, .asm_115267 + jr .asm_115252 + +.asm_115278 + ld a, $22 + ld [de], a + dec bc + ld a, b + or c + jr z, .asm_115262 + inc e + call z, Function115286 + jr .asm_115252 + +; 115286 + +Function115286: ; 115286 + push bc + ld bc, wCurrentMapSignpostCount + call Function115d80 + pop bc + ret + +; 11528f + +Function11528f: ; 11528f + ld hl, Bed + ld c, [hl] + inc hl + ld a, [hli] + ld [$dc00], a + ld [hFF8C], a + ld [MBC3SRamBank], a + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + ld hl, $dc24 +.asm_1152a4 + ld a, [de] + ld [hli], a + inc e + call z, Function1152af + dec c + jr nz, .asm_1152a4 + ld [hl], c + ret + +; 1152af + +Function1152af: ; 1152af + push bc + ld bc, $dc00 + call Function115d80 + pop bc + ret + +; 1152b8 + +Function1152b8: ; 1152b8 + push bc + call Function11537d + push de + ld h, d + ld l, e + ld a, [hli] + ld b, a + ld c, $1 + call Function1153d2 + pop de + and a + jr nz, .asm_1152f9 +.asm_1152ca + ld hl, $dc0d + ld e, [hl] + inc hl + ld d, [hl] +.asm_1152d0 + ld a, [$dc03] + cp $3 + jr nz, .asm_1152d8 + push de + +.asm_1152d8 + cp $5 + jr nz, .asm_1152e7 + pop hl + ld a, [hli] + ld b, a + ld c, $3 + call Function1153d2 + and a + jr nz, .asm_1152f9 + +.asm_1152e7 + ld a, [de] + inc de + and a + jr nz, .asm_115301 + ld a, [$dc03] + cp $6 + jr z, .asm_115335 + inc a + ld [$dc03], a + jr .asm_1152d0 + +.asm_1152f9 + pop hl + ld a, $1 + ld b, $83 + jp Function11425c + +.asm_115301 + ld hl, $dc0d + ld [hl], e + inc hl + ld [hl], d +.asm_115307 + ld [$dc05], a + ld a, $1 + ld [$dc04], a + call Function1153b5 + call Function114f59 + and a + jr nz, .asm_1152f9 + ld a, [$dc05] + dec a + jr nz, .asm_115307 + ld a, [$dc03] + inc a + ld [$dc03], a + call Function114ea0 + and a + jr nz, .asm_1152f9 + ld [wStartDay], a + ld a, [$dc03] + cp $6 + jr nz, .asm_1152ca + +.asm_115335 + call Function1153b5 + xor a + ld [wStartDay], a + call Function114f59 + and a + jr nz, .asm_1152f9 + call Function114ea0 + and a + jr nz, .asm_1152f9 + ld a, [$dc03] + inc a + ld [$dc03], a + cp $9 + jr nz, .asm_115335 + pop bc + ld a, b + and a + jr z, .asm_11536b + call Function1153b5 + xor a + ld [wStartDay], a + call Function114f59 + and a + jr nz, .asm_1152f9 + call Function114ea0 + and a + jr nz, .asm_1152f9 + +.asm_11536b + ld hl, $dc09 + ld a, [hli] + cpl + ld e, a + ld a, [hli] + cpl + ld d, a + inc de + ld a, [hli] + ld h, [hl] + ld l, a + add hl, de + xor a + jp Function11425c + +; 11537d + +Function11537d: ; 11537d + ld hl, $dc06 + ld a, [de] + ld [hli], a + inc de + ld a, [de] + ld [hli], a + inc de + ld a, [de] + ld [hli], a + inc de + ld a, [de] + ld [hli], a + ld b, a + inc de + ld a, [de] + ld [hli], a + inc hl + ld a, [de] + ld [hld], a + ld a, b + ld [hli], a + inc de + ld hl, RightOrnament + ld a, [de] + ld [hli], a + inc de + ld a, [de] + ld [hli], a + inc de + ld a, [de] + ld [hli], a + inc de + ld a, [de] + ld [hli], a + inc de + ld a, [de] + ld [hli], a + inc de + ld hl, $dc0d + ld [hl], e + inc hl + ld [hl], d + xor a + ld [$dc03], a + ld [wStartDay], a + ret + +; 1153b5 + +Function1153b5: ; 1153b5 + ld hl, $dc0d + ld e, [hl] + inc hl + ld d, [hl] + inc hl + inc hl + ld a, [de] + ld [hli], a + inc de + ld a, [de] + ld [hli], a + inc de + ld a, [de] + ld [hl], a + inc de + ld a, [de] + ld [Bed], a + inc de + ld hl, $dc0d + ld [hl], e + inc hl + ld [hl], d + ret + +; 1153d2 + +Function1153d2: ; 1153d2 + ld a, [$dc03] + ld d, a + ld a, [$dc04] + ld e, a + push de + xor a + ld [$dc03], a + ld [$dc04], a + ld a, $24 + ld [Console], a + ld a, $dc + ld [LeftOrnament], a + push bc + jr .asm_1153f4 + +.asm_1153ef + ld a, [hli] + and a + jr z, .asm_115426 + ld b, a + +.asm_1153f4 + push bc +.asm_1153f5 + ld a, [hli] + ld [$dc00], a + ld [hFF8C], a + ld [MBC3SRamBank], a + ld e, [hl] + inc hl + ld d, [hl] + inc hl + ld c, [hl] + inc hl + push hl + ld a, [Console] + ld l, a + ld a, [LeftOrnament] + ld h, a + push bc + ld b, $0 + call Function115d53 + inc hl + ld [hl], a + pop bc + ld a, l + ld e, a + ld [Console], a + ld a, h + ld d, a + ld [LeftOrnament], a + dec b + jr z, .asm_11542b + pop hl + jr .asm_1153f5 + +.asm_115426 + dec c + jr nz, .asm_1153ef + jr .asm_115430 + +.asm_11542b + pop hl + pop bc + dec c + jr nz, .asm_1153ef + +.asm_115430 + ld a, l + ld [Console], a + ld a, h + ld [LeftOrnament], a + xor a + ld [de], a + ld hl, $dc24 +.asm_11543d + ld a, [hli] + and a + jr nz, .asm_11543d + ld a, [hl] + and a + jr z, .asm_115457 + dec hl + ld a, $2c + ld [hli], a + jr .asm_11543d + +.asm_11544b + pop hl + ld a, h + ld [$dc03], a + ld a, l + ld [$dc04], a + ld a, $1 + ret + +.asm_115457 + ld hl, $dc24 + call Function114d99 + ld hl, $ddc8 +.asm_115460 + ld a, [hli] + and a + jr z, .asm_11546d + cp $2c + jr nz, .asm_115460 + dec hl + xor a + ld [hli], a + jr .asm_115460 + +.asm_11546d + pop de + ld a, e + cp $1 + jr z, .asm_115477 + xor a + ld [hli], a + jr .asm_115478 + +.asm_115477 + dec bc + +.asm_115478 + ld hl, $dc18 + ld a, [hli] + ld h, [hl] + ld l, a + ld a, b + cp h + jr c, .asm_11548c + jr nz, .asm_11544b + ld a, c + cp l + jr c, .asm_11548c + jr z, .asm_11548c + jr .asm_11544b + +.asm_11548c + ld hl, $dc18 + ld a, c + cpl + ld e, a + ld a, b + cpl + ld d, a + inc de + ld a, [hli] + ld h, [hl] + ld l, a + add hl, de + ld de, $dc18 + ld a, l + ld [de], a + inc de + ld a, h + ld [de], a + ld hl, RightOrnament + ld a, [hli] + ld [wCurrentMapSignpostCount], a + ld [hFF8C], a + ld [MBC3SRamBank], a + ld e, [hl] + inc hl + ld d, [hl] + ld hl, $ddc8 + call Function115d6a + ld hl, RightOrnament + ld a, [wCurrentMapSignpostCount] + ld [hli], a + ld [hl], e + inc hl + ld [hl], d + ld a, [Console] + ld e, a + ld a, [LeftOrnament] + ld d, a + pop hl + ld a, h + ld [$dc03], a + ld a, l + ld [$dc04], a + xor a + ret + +; 1154d4 + +Function1154d4: ; 1154d4 + xor a + ld [wStartDay], a + call Function1155af + call Function11560a + and a + jr nz, .asm_11552c + call Function1155d1 + ld a, [RightOrnament] + dec a + ld [RightOrnament], a + and a + jp z, .asm_115577 + cp $1 + jr nz, .asm_115531 + xor a + ld [wDailyResetTimer], a +.asm_1154f7 + ld a, [BigDoll] + cp $2 + jr z, .asm_115502 + cp $3 + jr z, .asm_11550f + +.asm_115502 + ld a, $a + ld [$dc03], a + call Function114f59 + and a + jr z, .asm_11551a + jr .asm_11552c + +.asm_11550f + ld a, $c + ld [$dc03], a + call Function114f59 + and a + jr nz, .asm_11552c + +.asm_11551a + call Function114ea0 + and a + jr nz, .asm_11552c + call Function114ea0 + and a + jr nz, .asm_11552c + call Function11560a + and a + jr z, .asm_1155a0 + +.asm_11552c + ld a, $1 + jp Function11425c + +.asm_115531 + ld a, $1 + ld [wDailyResetTimer], a + ld a, $b + ld [$dc03], a + call Function114f59 + and a + jr nz, .asm_11552c + call Function114ea0 + and a + jr nz, .asm_11552c +.asm_115547 + call Function114ea0 + and a + jr nz, .asm_11552c + ld a, $e + ld [$dc03], a + call Function114f59 + and a + jr nz, .asm_11552c + call Function114ea0 + and a + jr nz, .asm_11552c + jr .asm_1154f7 + +.asm_115560 + call Function114ea0 + and a + jr nz, .asm_11552c + ld a, [wDailyResetTimer] + and a + jr z, .asm_11557d + ld a, $f + ld [$dc03], a + call Function114f59 + and a + jr nz, .asm_11552c + +.asm_115577 + call Function114ea0 + and a + jr nz, .asm_11552c + +.asm_11557d + ld a, $10 + ld [$dc03], a + call Function114f59 + and a + jr nz, .asm_11552c + call Function114ea0 + and a + jr nz, .asm_11552c + ld hl, $dc09 + ld a, [hli] + cpl + ld e, a + ld a, [hli] + cpl + ld d, a + inc de + ld a, [hli] + ld h, [hl] + ld l, a + add hl, de + xor a + jp Function11425c + +.asm_1155a0 + ld a, [RightOrnament] + dec a + ld [RightOrnament], a + and a + jr z, .asm_115560 + call Function1155d1 + jr .asm_115547 + +; 1155af + +Function1155af: ; 1155af + ld hl, $dc06 + ld a, [de] + ld [hli], a + inc de + ld a, [de] + ld [hli], a + inc de + ld a, [de] + ld [hli], a + inc de + ld a, [de] + ld [hli], a + ld b, a + inc de + ld a, [de] + ld [hli], a + ld [hl], b + inc hl + ld [hli], a + inc de + ld a, [de] + ld [RightOrnament], a + inc de + ld a, e + ld [hli], a + ld [hl], d + call Function1155d1 + ret + +; 1155d1 + +Function1155d1: ; 1155d1 + ld a, [$dc0d] + ld l, a + ld a, [$dc0e] + ld h, a + ld a, [hli] + ld [BigDoll], a + cp $3 + jr nz, .asm_1155f0 + ld de, Carpet + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + ld [de], a + ld a, [hli] + ld [Bed], a + +.asm_1155f0 + ld de, $dc17 + ld a, [hli] + 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 + ld a, [hli] + ld [de], a + ld a, l + ld [$dc0d], a + ld a, h + ld [$dc0e], a + ret + +; 11560a + +Function11560a: ; 11560a + ld a, [$dc06] + ld [wCurrentMapSignpostCount], a + ld a, [$dc17] + ld [$dc00], a + ld [hFF8C], a + ld [MBC3SRamBank], a + ld hl, $dc1a + ld c, [hl] + inc hl + ld b, [hl] + ld a, [wCurrMapCallbackCount] + cp b + jp c, .asm_1156b1 + jr nz, .asm_115631 + ld a, [$dc09] + cp c + jp c, .asm_1156b1 + +.asm_115631 + ld a, b + or c + jr z, .asm_1156a9 + ld a, [$dc09] + ld l, a + ld a, [wCurrMapCallbackCount] + ld h, a + ld a, c + cpl + ld e, a + ld a, b + cpl + ld d, a + inc de + add hl, de + ld a, l + ld [$dc09], a + ld a, h + ld [wCurrMapCallbackCount], a +.asm_11564d + ld a, $3 + cp b + jr c, .asm_1156b6 + jr nz, .asm_115659 + ld a, $db + cp c + jr c, .asm_1156b6 + +.asm_115659 + ld a, [$dc1a] + ld e, a + ld a, [$dc1b] + ld d, a + ld a, c + cpl + ld l, a + ld a, b + cpl + ld h, a + inc hl + add hl, de + ld a, l + ld [$dc1a], a + ld a, h + ld [$dc1b], a + push bc + ld hl, $dc18 + ld e, [hl] + inc hl + ld d, [hl] + ld hl, $dc24 + call Function115d53 + ld hl, $dc18 + ld [hl], e + inc hl + ld [hl], d + pop bc + ld a, [wCurrentMapSignpostCount] + ld [hFF8C], a + ld [MBC3SRamBank], a + ld hl, wCurrMapTriggerCount + ld e, [hl] + inc hl + ld d, [hl] + ld hl, $dc24 + call Function115d6a + ld hl, wCurrMapTriggerCount + ld [hl], e + inc hl + ld [hl], d + ld hl, $dc1a + ld c, [hl] + inc hl + ld b, [hl] + ld a, b + or c + jr nz, .asm_11564d + +.asm_1156a9 + ld a, [wCurrentMapSignpostCount] + ld [$dc06], a + xor a + ret + +.asm_1156b1 + ld a, $1 + ld b, $83 + ret + +.asm_1156b6 + ld a, $3 + cpl + ld h, a + ld a, $db + cpl + ld l, a + add hl, bc + ld de, $dc1a + ld a, l + ld [de], a + inc de + ld a, h + ld [de], a + ld bc, $03db + jr .asm_115659 + +; 1156cc + +Function1156cc: ; 1156cc + ld a, [wStartDay] + and a + jp z, Function11425c + cp $2 + jr z, .asm_1156fa + cp $3 + jr z, .asm_1156fd + cp $4 + jr z, .asm_1156fd + cp $5 + jr z, .asm_115716 + cp $ff + jr z, .asm_11572b + cp $1 + jp nz, Function11425c + call Function115732 + call Function11575c + ld a, h + ld [Poster], a + ld a, l + ld [Plant], a + +.asm_1156fa + call Function1157d0 + +.asm_1156fd + call Function11581e + and a + jr nz, .asm_11572b + ld a, [wStartDay] + cp $5 + jr z, .asm_115716 + ld a, [Poster] + ld h, a + ld a, [Plant] + ld l, a + xor a + jp Function11425c + +.asm_115716 + ld hl, wCurrMapCallbackCount + ld a, [hli] + cpl + ld e, a + ld a, [hli] + cpl + ld d, a + inc de + ld a, [hli] + ld h, [hl] + ld l, a + add hl, de + xor a + ld [wStartDay], a + jp Function11425c + +.asm_11572b + ld a, $1 + ld b, $83 + jp Function11425c + +; 115732 + +Function115732: ; 115732 + ld hl, $dc02 + ld a, [de] + ld [hli], a + inc de + ld a, [de] + ld [hli], a + inc de + ld a, [de] + ld [hli], a + inc de + ld a, [de] + ld [hli], a + inc de + ld a, [de] + ld [hli], a + inc de + ld a, [de] + ld [hli], a + inc de + ld a, [de] + ld [hli], a + inc de + ld a, [de] + ld [hli], a + inc de + ld a, [de] + ld [hli], a + inc de + ld a, [de] + ld [hli], a + dec de + ld a, [de] + ld [hli], a + inc de + ld a, [de] + ld [hli], a + ld a, c + ld [hli], a + ld [hl], b + ret + +; 11575c + +Function11575c: ; 11575c + ld hl, $dc05 + ld a, [hli] + ld h, [hl] + ld l, a + ld e, $10 + ld b, $0 + ld c, b + ld d, b + ld a, $3 +.asm_11576a + rl l + rl h + rl d + cp d + jr c, .asm_11577c + rl c + rl b + dec e + jr nz, .asm_11576a + jr .asm_11578a + +.asm_11577c + ld a, d + sub $3 + ld d, a + ld a, $3 + scf + rl c + rl b + dec e + jr nz, .asm_11576a + +.asm_11578a + ld a, d + and a + jr z, .asm_11578f + inc bc + +.asm_11578f + sla c + rl b + sla c + rl b + ld h, b + ld l, c + push hl + ld e, $10 + ld b, $0 + ld c, b + ld d, b + ld a, $40 +.asm_1157a2 + rl l + rl h + rl d + cp d + jr c, .asm_1157b4 + rl c + rl b + dec e + jr nz, .asm_1157a2 + jr .asm_1157c3 + +.asm_1157b4 + ld a, d + sub $40 + ld d, a + ld a, $40 + scf + rl c + rl b + dec e + jr nz, .asm_1157a2 + inc bc + +.asm_1157c3 + and a + sla c + rl b + pop hl + add hl, bc + ld a, $2 + ld [wStartDay], a + ret + +; 1157d0 + +Function1157d0: ; 1157d0 + ld hl, $dc05 + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [$dc0e] + ld c, a + ld a, [Bed] + ld b, a + cp h + jr c, .asm_1157eb + jr nz, .asm_1157e9 + ld a, c + cp l + jr c, .asm_1157eb + jr z, .asm_1157eb + +.asm_1157e9 + ld b, h + ld c, l + +.asm_1157eb + push bc + ld a, b + cpl + ld b, a + ld a, c + cpl + ld c, a + inc bc + add hl, bc + ld a, l + ld [$dc05], a + ld a, h + ld [$dc06], a + ld a, h + or l + jr nz, .asm_11580f + pop bc + ld a, c + ld [$dc0e], a + ld a, b + ld [Bed], a + ld a, $4 + ld [wStartDay], a + ret + +.asm_11580f + pop bc + ld a, c + ld [$dc0e], a + ld a, b + ld [Bed], a + ld a, $3 + ld [wStartDay], a + ret + +; 11581e + +Function11581e: ; 11581e + ld a, [wStartDay] + and a + ret z + ld a, [$dc0e] + ld c, a + ld a, [Bed] + ld b, a + ld hl, $dc02 + ld a, [hli] + ld [$dc00], a + ld [hFF8C], a + ld [MBC3SRamBank], a + ld e, [hl] + inc hl + ld d, [hl] + ld hl, $dc24 + push bc + call Function115d53 + pop bc + ld hl, $dc02 + ld a, [$dc00] + ld [hli], a + ld [hl], e + inc hl + ld [hl], d + ld hl, $dc24 + ld de, PartyMon5Defense + call Function1158c2 + ld hl, PartyMon5Defense + ld c, [hl] + inc hl + ld b, [hl] + inc hl + push hl + ld a, [wCurrMapCallbackCount] + ld l, a + ld a, [wCurrMapCallbackHeaderPointer] + ld h, a + cp b + jr c, .asm_1158bb + jr nz, .asm_11586e + ld a, l + cp c + jr c, .asm_1158bb + +.asm_11586e + push bc + ld a, b + cpl + ld b, a + ld a, c + cpl + ld c, a + inc bc + add hl, bc + ld a, l + ld [wCurrMapCallbackCount], a + ld a, h + ld [wCurrMapCallbackHeaderPointer], a + pop bc + pop hl + ld hl, wCurrMapTriggerCount + ld a, [hli] + ld [wCurrentMapSignpostCount], a + ld [hFF8C], a + ld [MBC3SRamBank], a + ld e, [hl] + inc hl + ld d, [hl] + ld hl, PartyMon5Speed + call Function115d6a + ld hl, wCurrMapTriggerCount + ld a, [wCurrentMapSignpostCount] + ld [hli], a + ld a, e + ld [hli], a + ld [hl], d + ld a, [wStartDay] + cp $3 + jr z, .asm_1158b4 + cp $4 + jr z, .asm_1158ad + jr .asm_1158bc + +.asm_1158ad + ld a, $5 + ld [wStartDay], a + jr .asm_1158b9 + +.asm_1158b4 + ld a, $2 + ld [wStartDay], a + +.asm_1158b9 + xor a + ret + +.asm_1158bb + pop hl + +.asm_1158bc + ld a, $ff + ld [wStartDay], a + ret + +; 1158c2 + +Function1158c2: ; 1158c2 + ld a, e + ld [SwarmFlags], a + ld a, d + ld [$dc21], a + xor a + ld [$dc22], a + xor a + ld [de], a + inc de + ld [de], a + inc de + ld a, c + ld [$dc19], a + ld a, b + ld [$dc1a], a + ld c, e + ld b, d + ld e, l + ld d, h + ld l, c + ld h, b + xor a + ld [WeeklyFlags], a + +.asm_1158e5 + ld b, $3 + push hl + ld hl, $dc1b +.asm_1158eb + ld a, [de] + inc de + ld [hli], a + dec b + jr nz, .asm_1158eb + ld a, [$dc19] + ld c, a + ld a, [$dc1a] + ld b, a + xor a + or b + jr nz, .asm_115914 + ld a, $2 + cp c + jr c, .asm_115914 + push hl + dec hl + ld a, c + ld [WeeklyFlags], a +.asm_115908 + xor a + ld [hld], a + inc c + ld a, $3 + cp c + jr nz, .asm_115908 + pop hl + ld bc, $0003 + +.asm_115914 + dec bc + dec bc + dec bc + ld a, c + ld [$dc19], a + ld a, b + ld [$dc1a], a + push de + push hl + ld hl, SwarmFlags + ld a, [hli] + ld h, [hl] + ld l, a + ld e, [hl] + inc hl + ld d, [hl] +rept 4 + inc de +endr + ld [hl], d + dec hl + ld [hl], e + pop hl + dec hl + ld c, [hl] + dec hl + ld b, [hl] + dec hl + ld a, [hl] + ld d, a + srl a + srl a + ld [hli], a + ld a, $3 + and d + ld d, a + ld a, $f0 + and b + or d + swap a + ld [hli], a + ld a, $f + and b + ld d, a + ld a, c + and $c0 + or d + rlca + rlca + ld [hli], a + ld a, $3f + and c + ld [hld], a + dec hl + dec hl + pop de + ld b, h + ld c, l + pop hl + ld a, [bc] + inc bc + call Function1159dc + ld [hli], a + ld a, [bc] + inc bc + call Function1159dc + ld [hli], a + ld a, [bc] + inc bc + call Function1159dc + ld [hli], a + ld a, [bc] + inc bc + call Function1159dc + ld [hli], a + ld a, [$dc22] + inc a + cp $10 + jr nz, .asm_1159b1 + push af + push bc + ld a, [$dc19] + ld b, a + ld a, [$dc1a] + or b + jr nz, .asm_115998 + ld a, [$dc05] + ld b, a + ld a, [$dc06] + or b + jr nz, .asm_115998 + pop bc + pop af + jr .asm_1159c4 + +.asm_115998 + pop bc + pop af + ld a, $d + ld [hli], a + ld a, $a + ld [hli], a + push hl + ld hl, SwarmFlags + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [hli] + ld c, a + ld b, [hl] + inc bc + inc bc + ld a, b + ld [hld], a + ld [hl], c + pop hl + xor a + +.asm_1159b1 + ld [$dc22], a + ld a, [$dc19] + cp $0 + jp nz, .asm_1158e5 + ld a, [$dc1a] + cp $0 + jp nz, .asm_1158e5 + +.asm_1159c4 + ld a, [WeeklyFlags] + cp $0 + jr z, .asm_1159d8 + push hl + dec hl + ld b, a +.asm_1159ce + ld a, $3d + ld [hld], a + inc b + ld a, $3 + cp b + jr nz, .asm_1159ce + pop hl + +.asm_1159d8 + ld a, $0 + ld [hl], a + ret + +; 1159dc + +Function1159dc: ; 1159dc + cp $1a + jr c, .asm_1159ef + cp $34 + jr c, .asm_1159f2 + cp $3e + jr c, .asm_1159f5 + cp $3e + jr z, .asm_1159f8 + ld a, $2f + ret + +.asm_1159ef + add $41 + ret + +.asm_1159f2 + add $47 + ret + +.asm_1159f5 + sub $4 + ret + +.asm_1159f8 + ld a, $2b + ret + +; 1159fb + +Function1159fb: ; 1159fb + ld a, [wStartDay] + and a + jp z, Function11425c + cp $2 + jr z, .asm_115a29 + cp $3 + jr z, .asm_115a2c + cp $4 + jr z, .asm_115a2c + cp $5 + jr z, .asm_115a45 + cp $ff + jr z, .asm_115a5a + cp $1 + jp nz, Function11425c + call Function115732 + call Function115a5f + ld a, h + ld [Plant], a + ld a, l + ld [Poster], a + +.asm_115a29 + call Function115ab0 + +.asm_115a2c + call Function115b00 + and a + jr nz, .asm_115a5a + ld a, [wStartDay] + cp $5 + jr z, .asm_115a45 + ld a, [Poster] + ld h, a + ld a, [Plant] + ld l, a + xor a + jp Function11425c + +.asm_115a45 + ld hl, wCurrMapCallbackCount + ld a, [hli] + cpl + ld e, a + ld a, [hli] + cpl + ld d, a + inc de + ld a, [hli] + ld h, [hl] + ld l, a + add hl, de + xor a + ld [wStartDay], a + jp Function11425c + +.asm_115a5a + ld a, $1 + jp Function11425c + +; 115a5f + +Function115a5f: ; 115a5f + ld hl, $dc05 + ld a, [hli] + ld h, [hl] + ld l, a + push hl + ld e, $10 + ld b, $0 + ld c, b + ld d, b + ld a, $42 +.asm_115a6e + rl l + rl h + rl d + cp d + jr c, .asm_115a80 + rl c + rl b + dec e + jr nz, .asm_115a6e + jr .asm_115a8e + +.asm_115a80 + ld a, d + sub $42 + ld d, a + ld a, $42 + scf + rl c + rl b + dec e + jr nz, .asm_115a6e + +.asm_115a8e + sla c + rl b + pop hl + ld a, b + cpl + ld b, a + ld a, c + cpl + ld c, a + inc bc + add hl, bc + srl h + rr l + srl h + rr l + ld b, h + ld c, l + sla c + rl b + add hl, bc + ld a, $2 + ld [wStartDay], a + ret + +; 115ab0 + +Function115ab0: ; 115ab0 + ld hl, $dc05 + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [$dc0e] + ld c, a + ld a, [Bed] + ld b, a + cp h + jr c, .asm_115acb + jr nz, .asm_115ac9 + ld a, c + cp l + jr c, .asm_115acb + jr z, .asm_115acb + +.asm_115ac9 + ld b, h + ld c, l + +.asm_115acb + push bc + ld a, b + cpl + ld b, a + ld a, c + cpl + ld c, a + inc bc + add hl, bc + ld a, l + ld [$dc05], a + ld a, h + ld [$dc06], a + ld a, h + or l + jr nz, .asm_115af0 + pop bc + ld a, c + ld [$dc0e], a + ld a, b + ld [Bed], a + ld a, $4 + ld [wStartDay], a + xor a + ret + +.asm_115af0 + pop bc + ld a, c + ld [$dc0e], a + ld a, b + ld [Bed], a + ld a, $3 + ld [wStartDay], a + xor a + ret + +; 115b00 + +Function115b00: ; 115b00 + ld a, [wStartDay] + and a + ret z + ld a, [$dc0e] + ld c, a + ld a, [Bed] + ld b, a + ld hl, $dc02 + ld a, [hli] + ld [$dc00], a + ld [hFF8C], a + ld [MBC3SRamBank], a + ld e, [hl] + inc hl + ld d, [hl] + ld hl, PartyMon5Defense + push bc + call Function115bc8 + pop hl + and a + jr z, .asm_115b43 + cp $2 + jr z, .asm_115b3b + ld a, [wStartDay] + cp $4 + jr z, .asm_115b43 + inc hl + inc hl + jr .asm_115b43 + +.asm_115b36 + pop hl + ld b, $83 + jr .asm_115b3d + +.asm_115b3b + ld b, $81 + +.asm_115b3d + ld a, $ff + ld [wStartDay], a + ret + +.asm_115b43 + ld a, [Carpet] + add a + cpl + ld c, a + ld b, $ff + inc bc + add hl, bc + ld b, h + ld c, l + ld hl, $dc02 + ld a, [$dc00] + ld [hli], a + ld [hl], e + inc hl + ld [hl], d + ld hl, PartyMon5Defense + ld de, $dc24 + call Function115c49 + ld hl, $dc24 + ld c, [hl] + inc hl + ld b, [hl] + inc hl + push hl + ld a, [wCurrMapCallbackCount] + ld l, a + ld a, [wCurrMapCallbackHeaderPointer] + ld h, a + cp b + jr c, .asm_115b36 + jr nz, .asm_115b7b + ld a, l + cp c + jr c, .asm_115b36 + +.asm_115b7b + push bc + ld a, b + cpl + ld b, a + ld a, c + cpl + ld c, a + inc bc + add hl, bc + ld a, l + ld [wCurrMapCallbackCount], a + ld a, h + ld [wCurrMapCallbackHeaderPointer], a + pop bc + pop hl + ld hl, wCurrMapTriggerCount + ld a, [hli] + ld [wCurrentMapSignpostCount], a + ld [hFF8C], a + ld [MBC3SRamBank], a + ld e, [hl] + inc hl + ld d, [hl] + ld hl, $dc26 + call Function115d6a + ld hl, wCurrMapTriggerCount + ld a, [wCurrentMapSignpostCount] + ld [hli], a + ld a, e + ld [hli], a + ld [hl], d + ld a, [wStartDay] + cp $3 + jr z, .asm_115bc1 + cp $4 + jr z, .asm_115bba + jr .asm_115b3b + +.asm_115bba + ld a, $5 + ld [wStartDay], a + jr .asm_115bc6 + +.asm_115bc1 + ld a, $2 + ld [wStartDay], a + +.asm_115bc6 + xor a + ret + +; 115bc8 + +Function115bc8: ; 115bc8 + xor a + ld [Carpet], a +.asm_115bcc + ld a, [de] + ld [hli], a + inc e + call z, .Function115c3d + dec bc + ld a, b + or c + jr z, .asm_115c46 + ld a, [de] + ld [hli], a + inc e + call z, .Function115c3d + dec bc + ld a, b + or c + jr z, .asm_115c1b + ld a, [de] + ld [hli], a + inc e + call z, .Function115c3d + dec bc + ld a, b + or c + jr z, .asm_115c46 + ld a, [de] + ld [hli], a + inc e + call z, .Function115c3d + dec bc + ld a, b + or c + jr z, .asm_115c3a + ld a, [de] + cp $d + jr nz, .asm_115bcc + inc e + call z, .Function115c3d + ld a, [de] + cp $a + jr nz, .asm_115c46 + inc e + call z, .Function115c3d + dec bc + ld a, b + or c + jr z, .asm_115c46 + ld a, [Carpet] + inc a + ld [Carpet], a + dec bc + ld a, b + or c + jr nz, .asm_115bcc + +.asm_115c1b + ld a, [wStartDay] + cp $4 + jr z, .asm_115c33 + ld a, [de] + ld [hli], a + inc e + call z, .Function115c3d + ld a, [de] + ld [hli], a + inc e + call z, .Function115c3d + xor a + ld [hl], a + ld a, $1 + ret + +.asm_115c33 + dec hl + dec hl + xor a + ld [hl], a + ld a, $1 + ret + +.asm_115c3a + xor a + ld [hl], a + ret + +.Function115c3d: + push bc + ld bc, $dc00 + call Function115d80 + pop bc + ret + +.asm_115c46 + ld a, $2 + ret + +; 115c49 + +Function115c49: ; 115c49 + ld a, e + ld [WeeklyFlags], a + ld a, d + ld [SwarmFlags], a + xor a + ld [de], a + inc de + ld [de], a + inc de + + ld a, c + ld [$dc19], a + ld a, b + ld [$dc1a], a + ld c, e + ld b, d + ld e, l + ld d, h + ld l, c + ld h, b + +.asm_115c64 + ld a, [$dc1a] + or a + jr nz, .asm_115c71 + ld a, [$dc19] + cp $4 + jr c, .asm_115c99 + +.asm_115c71 + ld b, $4 + push hl + ld hl, $dc1b +.asm_115c77 + ld a, [de] + inc de + call Function115cfd + ld [hli], a + dec b + jr nz, .asm_115c77 + ld a, [$dc19] + ld c, a + ld a, [$dc1a] + ld b, a +rept 4 + dec bc +endr +.asm_115c8c + ld a, [de] + cp $d + jr z, .asm_115c95 + cp $a + jr nz, .asm_115c9f + +.asm_115c95 + inc de + dec bc + jr .asm_115c8c + +.asm_115c99 + ld a, $ff + ld [wStartDay], a + ret + +.asm_115c9f + ld a, c + ld [$dc19], a + ld a, b + ld [$dc1a], a + push de + push hl + ld hl, WeeklyFlags + ld a, [hli] + ld h, [hl] + ld l, a + ld e, [hl] + inc hl + ld d, [hl] + inc de + inc de + inc de + ld [hl], d + dec hl + ld [hl], e + pop hl + dec hl + ld d, [hl] + dec hl + ld c, [hl] + dec hl + ld b, [hl] + dec hl + ld a, [hl] + sla b + sla b + sla b + rla + sla b + rla + ld [hli], a + ld [hl], b + inc hl + rrc c + rrc c + ld [hl], c + dec hl + ld a, $f + and c + or [hl] + ld [hli], a + ld a, [hli] + and $c0 + or [hl] + dec hl + ld [hld], a + dec hl + pop de + ld b, h + ld c, l + pop hl + ld a, [bc] + ld [hli], a + inc bc + ld a, [bc] + ld [hli], a + inc bc + ld a, [bc] + ld [hli], a + ld a, [$dc19] + cp $0 + jp nz, .asm_115c64 + ld a, [$dc1a] + cp $0 + jp nz, .asm_115c64 + ret + +; 115cfd + +Function115cfd: ; 115cfd + cp $2b + jr c, .asm_115d27 + jr z, .asm_115d2f + cp $2f + jr c, .asm_115d27 + jr z, .asm_115d32 + cp $30 + jr c, .asm_115d27 + cp $3a + jr c, .asm_115d35 + cp $3d + jr c, .asm_115d27 + jr z, .asm_115d38 + cp $41 + jr c, .asm_115d27 + cp $5b + jr c, .asm_115d4d + cp $61 + jr c, .asm_115d27 + cp $7b + jr c, .asm_115d50 + +.asm_115d27 + pop hl + pop hl + ld a, $ff + ld [wStartDay], a + ret + +.asm_115d2f + ld a, $3e + ret + +.asm_115d32 + ld a, $3f + ret + +.asm_115d35 + add $4 + ret + +.asm_115d38 + push de + push hl + ld a, [WeeklyFlags] + ld l, a + ld a, [SwarmFlags] + ld h, a + ld e, [hl] + inc hl + ld d, [hl] + dec de + ld [hl], d + dec hl + ld [hl], e + pop hl + pop de + xor a + ret + +.asm_115d4d + sub $41 + ret + +.asm_115d50 + sub $47 + ret + +; 115d53 + +Function115d53: ; 115d53 +.asm_115d53 + ld a, [de] + ld [hli], a + inc e + call z, Function115d61 + dec bc + ld a, b + or c + jr nz, .asm_115d53 + xor a + ld [hl], a + ret + +; 115d61 + +Function115d61: ; 115d61 + push bc + ld bc, $dc00 + call Function115d80 + pop bc + ret + +; 115d6a + +Function115d6a: ; 115d6a +.asm_115d6a + ld a, [hli] + ld [de], a + inc e + call z, Function115d77 + dec bc + ld a, b + or c + jr nz, .asm_115d6a + xor a + ret + +; 115d77 + +Function115d77: ; 115d77 + push bc + ld bc, wCurrentMapSignpostCount + call Function115d80 + pop bc + ret + +; 115d80 + +Function115d80: ; 115d80 + ld e, a + ld a, d + cp $bf + jr z, .asm_115d8b + inc d + ld a, e + ld e, $0 + ret + +.asm_115d8b + ld a, [bc] + inc a + ld [bc], a + ld [hFF8C], a + ld [MBC3SRamBank], a + ld a, e + ld d, $a0 + ld e, $0 + ret + +; 115d99 + +INCLUDE "mobile/mobile_45_sprite_engine.asm" + +; 116567 + +Function116567: ; 116567 + ld hl, wc3f7 + dec [hl] + ret nz + ld hl, wc3f6 + inc [hl] +.asm_116570 + ld a, $7 + sla a + ld c, a + ld b, 0 + ld hl, Unknown_1167eb + add hl, bc + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + push de + pop hl + ld a, [wc3f6] + sla a + ld c, a + ld b, $0 + add hl, bc + ld a, [hli] + cp $fe + jr nz, .asm_116595 + xor a + ld [wc3f6], a + jr .asm_116570 + +.asm_116595 + ld [wc3f5], a + ld a, [hl] + ld [wc3f7], a + ret + +; 11659d + +Function11659d: ; 11659d + ld a, [wc314] + cp $12 + ret nc + ld e, a + ld d, 0 + ld hl, Jumptable_1165af + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp hl + +; 1165af + +Jumptable_1165af: ; 1165af + dw Function11677e + dw Function1165d5 + dw Function1165d8 + dw Function1165e3 + dw Function1165f5 + dw Function116600 + dw Function116615 + dw Function116618 + dw Function116623 + dw Function116635 + dw Function116640 + dw Function116655 + dw Function11665c + dw Function11668d + dw Function11669f + dw Function1166a2 + dw Function1166c4 + dw Function1166d6 + dw Function1166d6 +; 1165d5 + +Function1165d5: ; 1165d5 + call Function11678e + +Function1165d8: + ld a, $0 + ld c, a + ld a, $ff + ld b, a + ld a, $a8 + call Function1166f4 + +Function1165e3: + call Function116747 + ld a, [wc30e] + cp $e8 + ret nz + ld a, $1 + call Function116780 + ret c + jp Function116797 + +; 1165f5 + +Function1165f5: ; 1165f5 + ld a, $1 + ld c, a + ld a, $1 + ld b, a + ld a, $e8 + call Function1166f4 + +Function116600: + call Function116747 + ld a, [wc30e] + cp $a8 + ret nz + ld a, $1 + call Function116780 + ret c + ld a, $2 + ld [wc314], a + ret + +; 116615 + +Function116615: ; 116615 + call Function11678e + +Function116618: + ld a, $3 + ld c, a + ld a, $1 + ld b, a + ld a, $28 + call Function11671f + +Function116623: + call Function116747 + ld a, [wc30f] + cp $a0 + ret nz + ld a, $6 + call Function116780 + ret c + jp Function116797 + +; 116635 + +Function116635: ; 116635 + ld a, $2 + ld c, a + ld a, $ff + ld b, a + ld a, $a0 + call Function11671f + +Function116640: + call Function116747 + ld a, [wc30f] + cp $28 + ret nz + ld a, $6 + call Function116780 + ret c + ld a, $7 + ld [wc314], a + ret + +; 116655 + +Function116655: ; 116655 + xor a + ld [wc314 + 3], a + call Function11678e + +Function11665c: + ld hl, wc314 + 3 + ld a, $1 + xor [hl] + ld [hl], a + add $4 + ld c, a + call Function11679c + ld a, [wc314 + 3] + and a + jr nz, .asm_116673 + ld a, $48 + jr .asm_116675 + +.asm_116673 + ld a, $78 + +.asm_116675 + ld [wc30f], a + call Random + ld a, [hRandomAdd] + and $7 + sla a + sla a + sla a + add $30 + ld [wc30e], a + call Function116797 + +Function11668d: + ld a, [wc311] + cp $ff + ret nz + ld a, $b + call Function116780 + ret c + ld a, $c + ld [wc314], a + ret + +; 11669f + +Function11669f: ; 11669f + call Function11678e + +Function1166a2: + ld a, $a8 + ld [wc30e], a + ld [wc3f1], a + ld a, $60 + ld [wc30f], a + ld [wc3f3], a + ld a, $ff + ld [wc314 + 2], a + xor a + ld [wc314 + 3], a + ld a, $0 + ld c, a + call Function11679c + call Function116797 + +Function1166c4: + call Function116747 + ld a, [wc30e] + cp $58 + ret nz + ld a, $6 + ld c, a + call Function11679c + call Function116797 + +Function1166d6: + call Function116747 + ld a, [wc30e] + cp $48 + jr nz, .asm_1166e4 + xor a + ld [wc314 + 2], a + +.asm_1166e4 + ld a, [wc311] + cp $ff + ret nz + ld a, $4 + ld [$c319], a + xor a + ld [wc314], a + ret + +; 1166f4 + +Function1166f4: ; 1166f4 + ld [wc30e], a + ld a, b + ld [wc314 + 2], a + xor a + ld [wc314 + 3], a + ld hl, wc30f +.asm_116702 + call Random + ld a, [hRandomAdd] + and $7 + jr z, .asm_11670c + dec a + +.asm_11670c + sla a + sla a + sla a + add $48 + cp [hl] + jr z, .asm_116702 + ld [hl], a + call Function11679c + call Function116797 + ret + +; 11671f + +Function11671f: ; 11671f + ld [wc30f], a + ld a, b + ld [wc314 + 3], a + xor a + ld [wc314 + 2], a + ld hl, wc30e +.asm_11672d + call Random + ld a, [hRandomAdd] + and $7 + sla a + sla a + sla a + add $30 + cp [hl] + jr z, .asm_11672d + ld [hl], a + call Function11679c + call Function116797 + ret + +; 116747 + +Function116747: ; 116747 + ld hl, wc30e + ld a, [wc314 + 2] + add [hl] + ld [hl], a + ld hl, wc30f + ld a, [wc314 + 3] + add [hl] + ld [hl], a + ret + +; 116758 + +Function116758: ; 116758 + ld a, [wc30f] + cp $30 + jr c, .asm_116770 + jr z, .asm_116770 + cp $38 + jr c, .asm_116774 + jr z, .asm_116774 + cp $40 + jr c, .asm_116778 + jr z, .asm_116778 + xor a + jr .asm_11677a + +.asm_116770 + ld a, $c + jr .asm_11677a + +.asm_116774 + ld a, $8 + jr .asm_11677a + +.asm_116778 + ld a, $4 + +.asm_11677a + ld [wc314 + 4], a + ret + +; 11677e + +Function11677e: ; 11677e + ld a, $0 + +Function116780: + ld hl, wc314 + 1 + cp [hl] + jr z, .asm_11678c + ld a, [hl] + ld [wc314], a + scf + ret + +.asm_11678c + and a + ret + +; 11678e + +Function11678e: ; 11678e + ld hl, wc314 + ld a, [hl] + ld [wc314 + 1], a + inc [hl] + ret + +; 116797 + +Function116797: ; 116797 + ld hl, wc314 + inc [hl] + ret + +; 11679c + +Function11679c: + ld a, c + ld [wc311], a + xor a + ld [wc312], a + jr asm_1167af + +Function1167a6: ; 1167a6 + ld hl, wc313 + dec [hl] + ret nz + ld hl, wc312 + inc [hl] + +asm_1167af +.asm_1167af + ld a, [wc311] + cp $ff + ret z + sla a + ld c, a + ld b, 0 + ld hl, Unknown_1167eb + add hl, bc + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + push de + pop hl + ld a, [wc312] + sla a + ld c, a + ld b, $0 + add hl, bc + ld a, [hli] + cp $ff + jr z, .asm_1167dc + cp $fe + jr nz, .asm_1167e3 + xor a + ld [wc312], a + jr .asm_1167af + +.asm_1167dc + ld a, $ff + ld [wc311], a + ld a, $fd + +.asm_1167e3 + ld [wc310], a + ld a, [hl] + ld [wc313], a + ret + +; 1167eb + +Unknown_1167eb: + dw Unknown_1167fb + dw Unknown_116808 + dw Unknown_116867 + dw Unknown_116870 + dw Unknown_116815 + dw Unknown_11683e + dw Unknown_116881 + dw Unknown_1168ae + +Unknown_1167fb: ; 1167fb + db $0, $6 + db $1, $4 + db $2, $4 + db $3, $6 + db $2, $4 + db $1, $4 + db $fe + +Unknown_116808: ; 116808 + db $4, $6 + db $5, $4 + db $6, $4 + db $7, $6 + db $6, $4 + db $5, $4 + db $fe + +Unknown_116815: ; 116815 + db $fd, $20 + db $8, $c + db $9, $24 + db $a, $4 + db $b, $8 + db $a, $4 + db $9, $6 + db $c, $4 + db $d, $8 + db $c, $5 + db $9, $24 + db $a, $4 + db $b, $8 + db $a, $4 + db $9, $6 + db $c, $4 + db $d, $8 + db $c, $5 + db $9, $8 + db $8, $4 + db $ff + +Unknown_11683e: ; 11683e + db $fd, $20 + db $e, $c + db $f, $24 + db $10, $4 + db $11, $8 + db $10, $4 + db $f, $6 + db $12, $4 + db $13, $8 + db $12, $5 + db $f, $24 + db $10, $4 + db $11, $8 + db $10, $4 + db $f, $6 + db $12, $4 + db $13, $8 + db $12, $5 + db $f, $8 + db $e, $4 + db $ff + +Unknown_116867: ; 116867 + db $14, $8 + db $15, $8 + db $16, $8 + db $15, $8 + db $fe + +Unknown_116870: ; 116870 + db $17, $5 + db $18, $5 + db $19, $5 + db $1a, $5 + db $1b, $5 + db $1a, $5 + db $19, $5 + db $18, $5 + db $fe + +Unknown_116881: ; 116881 + db $1c, $7 + db $1d, $7 + db $1e, $a + db $1f, $a + db $20, $5 + db $21, $5 + db $20, $5 + db $21, $5 + db $20, $18 + db $22, $4 + db $23, $2 + db $22, $2 + db $23, $2 + db $22, $1 + db $23, $1 + db $22, $1 + db $23, $4 + db $fd, $1 + db $23, $1 + db $fd, $2 + db $23, $2 + db $fd, $40 + db $ff + +Unknown_1168ae: ; 1168ae + db $24, $4 + db $25, $4 + db $26, $4 + db $27, $4 + db $28, $4 + db $29, $4 + db $2a, $4 + db $2b, $4 + db $2c, $4 + db $2d, $4 + db $2e, $4 + db $fe +; 1168c5 + +Unknown_1168c5: + dw Unknown_116923 + dw Unknown_116960 + dw Unknown_1169a1 + dw Unknown_1169de + dw Unknown_116a1b + dw Unknown_116a58 + dw Unknown_116a99 + dw Unknown_116ad6 + dw Unknown_116d1b + dw Unknown_116d4c + dw Unknown_116d85 + dw Unknown_116dbe + dw Unknown_116df7 + dw Unknown_116e30 + dw Unknown_116e69 + dw Unknown_116e9a + dw Unknown_116ed3 + dw Unknown_116f0c + dw Unknown_116f45 + dw Unknown_116f7e + dw Unknown_116b13 + dw Unknown_116b54 + dw Unknown_116b95 + dw Unknown_116bd6 + dw Unknown_116c17 + dw Unknown_116c58 + dw Unknown_116c99 + dw Unknown_116cda + dw Unknown_116fb7 + dw Unknown_116fec + dw Unknown_117025 + dw Unknown_117056 + dw Unknown_117083 + dw Unknown_1170c0 + dw Unknown_1170fd + dw Unknown_11713a + dw Unknown_117177 + dw Unknown_11719c + dw Unknown_1171c1 + dw Unknown_1171e6 + dw Unknown_11720b + dw Unknown_117230 + dw Unknown_117255 + dw Unknown_11727a + dw Unknown_11729f + dw Unknown_1172c4 + dw Unknown_1172e9 + +Unknown_116923: ; 116923 + db $f + db $0, $0, $1, $a + db $0, $8, $2, $d + db $0, $10, $3, $d + db $0, $18, $4, $d + db $8, $0, $11, $a + db $8, $8, $12, $a + db $8, $10, $13, $a + db $8, $18, $14, $d + db $10, $0, $21, $a + db $10, $8, $22, $a + db $10, $10, $23, $a + db $10, $18, $24, $a + db $18, $0, $31, $a + db $18, $8, $32, $a + db $18, $10, $33, $a + +Unknown_116960: ; 116960 + db $10 + db $1, $0, $1, $a + db $1, $8, $2, $d + db $1, $10, $3, $d + db $1, $18, $4, $d + db $9, $0, $11, $a + db $9, $8, $12, $a + db $9, $10, $13, $a + db $9, $18, $14, $d + db $11, $0, $5, $a + db $11, $8, $6, $a + db $11, $10, $7, $a + db $11, $18, $34, $a + db $19, $0, $15, $a + db $19, $8, $16, $a + db $19, $10, $17, $a + db $19, $18, $35, $a + +Unknown_1169a1: ; 1169a1 + db $f + db $1, $0, $1, $a + db $1, $8, $2, $d + db $1, $10, $3, $d + db $1, $18, $4, $d + db $9, $0, $11, $a + db $9, $8, $12, $a + db $9, $10, $13, $a + db $9, $18, $14, $d + db $11, $0, $25, $a + db $11, $8, $26, $a + db $11, $10, $27, $a + db $11, $18, $34, $a + db $19, $8, $36, $a + db $19, $10, $37, $a + db $19, $18, $35, $a + +Unknown_1169de: ; 1169de + db $f + db $0, $0, $1, $a + db $0, $8, $2, $d + db $0, $10, $3, $d + db $0, $18, $4, $d + db $8, $0, $11, $a + db $8, $8, $12, $a + db $8, $10, $13, $a + db $8, $18, $14, $d + db $10, $0, $10, $a + db $10, $8, $20, $a + db $10, $10, $30, $a + db $10, $18, $24, $a + db $18, $0, $31, $a + db $18, $8, $32, $a + db $18, $10, $33, $a + +Unknown_116a1b: ; 116a1b + db $f + db $0, $0, $4, $2d + db $0, $8, $3, $2d + db $0, $10, $2, $2d + db $0, $18, $1, $2a + db $8, $0, $14, $2d + db $8, $8, $13, $2a + db $8, $10, $12, $2a + db $8, $18, $11, $2a + db $10, $0, $24, $2a + db $10, $8, $23, $2a + db $10, $10, $22, $2a + db $10, $18, $21, $2a + db $18, $8, $33, $2a + db $18, $10, $32, $2a + db $18, $18, $31, $2a + +Unknown_116a58: ; 116a58 + db $10 + db $1, $0, $4, $2d + db $1, $8, $3, $2d + db $1, $10, $2, $2d + db $1, $18, $1, $2a + db $9, $0, $14, $2d + db $9, $8, $13, $2a + db $9, $10, $12, $2a + db $9, $18, $11, $2a + db $11, $0, $34, $2a + db $11, $8, $7, $2a + db $11, $10, $6, $2a + db $11, $18, $5, $2a + db $19, $0, $35, $2a + db $19, $8, $17, $2a + db $19, $10, $16, $2a + db $19, $18, $15, $2a + +Unknown_116a99: ; 116a99 + db $f + db $1, $0, $4, $2d + db $1, $8, $3, $2d + db $1, $10, $2, $2d + db $1, $18, $1, $2a + db $9, $0, $14, $2d + db $9, $8, $13, $2a + db $9, $10, $12, $2a + db $9, $18, $11, $2a + db $11, $0, $34, $2a + db $11, $8, $27, $2a + db $11, $10, $26, $2a + db $11, $18, $25, $2a + db $19, $0, $35, $2a + db $19, $8, $37, $2a + db $19, $10, $36, $2a + +Unknown_116ad6: ; 116ad6 + db $f + db $0, $0, $4, $2d + db $0, $8, $3, $2d + db $0, $10, $2, $2d + db $0, $18, $1, $2a + db $8, $0, $14, $2d + db $8, $8, $13, $2a + db $8, $10, $12, $2a + db $8, $18, $11, $2a + db $10, $0, $24, $2a + db $10, $8, $30, $2a + db $10, $10, $20, $2a + db $10, $18, $10, $2a + db $18, $8, $33, $2a + db $18, $10, $32, $2a + db $18, $18, $31, $2a + +Unknown_116b13: ; 116b13 + db $10 + db $18, $0, $0, $b + db $18, $8, $8, $b + db $18, $10, $5c, $b + db $18, $18, $0, $b + db $10, $0, $0, $b + db $10, $8, $5d, $b + db $10, $10, $5e, $b + db $10, $18, $0, $b + db $8, $0, $50, $b + db $8, $8, $51, $b + db $8, $10, $52, $b + db $8, $18, $50, $2b + db $0, $0, $43, $b + db $0, $8, $44, $b + db $0, $10, $44, $2b + db $0, $18, $43, $2b + +Unknown_116b54: ; 116b54 + db $10 + db $19, $0, $0, $b + db $19, $8, $18, $b + db $19, $10, $c, $b + db $19, $18, $0, $b + db $11, $0, $42, $b + db $11, $8, $3a, $b + db $11, $10, $3a, $2b + db $11, $18, $42, $2b + db $9, $0, $58, $b + db $9, $8, $45, $b + db $9, $10, $45, $2b + db $9, $18, $58, $2b + db $1, $0, $d, $b + db $1, $8, $44, $b + db $1, $10, $44, $2b + db $1, $18, $d, $2b + +Unknown_116b95: ; 116b95 + db $10 + db $18, $0, $0, $b + db $18, $8, $5c, $2b + db $18, $10, $8, $2b + db $18, $18, $0, $b + db $10, $0, $0, $b + db $10, $8, $5e, $2b + db $10, $10, $5d, $2b + db $10, $18, $0, $b + db $8, $0, $50, $b + db $8, $8, $52, $2b + db $8, $10, $51, $2b + db $8, $18, $50, $2b + db $0, $0, $43, $b + db $0, $8, $44, $b + db $0, $10, $44, $2b + db $0, $18, $43, $2b + +Unknown_116bd6: ; 116bd6 + db $10 + db $18, $0, $0, $a + db $18, $8, $56, $a + db $18, $10, $57, $a + db $18, $18, $0, $a + db $10, $0, $64, $a + db $10, $8, $4a, $a + db $10, $10, $4b, $a + db $10, $18, $71, $a + db $8, $0, $54, $a + db $8, $8, $55, $a + db $8, $10, $55, $2a + db $8, $18, $54, $2a + db $0, $0, $48, $a + db $0, $8, $49, $a + db $0, $10, $49, $2a + db $0, $18, $48, $2a + +Unknown_116c17: ; 116c17 + db $10 + db $19, $0, $0, $a + db $19, $8, $76, $a + db $19, $10, $77, $a + db $19, $18, $0, $a + db $11, $0, $64, $a + db $11, $8, $69, $a + db $11, $10, $6a, $a + db $11, $18, $6b, $a + db $9, $0, $6f, $a + db $9, $8, $70, $a + db $9, $10, $70, $2a + db $9, $18, $6f, $2a + db $1, $0, $63, $a + db $1, $8, $19, $a + db $1, $10, $19, $2a + db $1, $18, $63, $2a + +Unknown_116c58: ; 116c58 + db $10 + db $1a, $0, $6c, $a + db $1a, $8, $6d, $a + db $1a, $10, $6e, $a + db $1a, $18, $0, $a + db $12, $0, $5f, $a + db $12, $8, $60, $a + db $12, $10, $61, $a + db $12, $18, $62, $a + db $a, $0, $53, $a + db $a, $8, $55, $a + db $a, $10, $55, $2a + db $a, $18, $53, $2a + db $2, $0, $46, $a + db $2, $8, $47, $a + db $2, $10, $47, $2a + db $2, $18, $46, $2a + +Unknown_116c99: ; 116c99 + db $10 + db $19, $0, $0, $2a + db $19, $8, $77, $2a + db $19, $10, $76, $2a + db $19, $18, $0, $2a + db $11, $0, $6b, $2a + db $11, $8, $6a, $2a + db $11, $10, $69, $2a + db $11, $18, $64, $2a + db $9, $0, $6f, $a + db $9, $8, $70, $a + db $9, $10, $70, $2a + db $9, $18, $6f, $2a + db $1, $0, $63, $a + db $1, $8, $19, $a + db $1, $10, $19, $2a + db $1, $18, $63, $2a + +Unknown_116cda: ; 116cda + db $10 + db $18, $0, $0, $a + db $18, $8, $57, $2a + db $18, $10, $56, $2a + db $18, $18, $0, $a + db $10, $0, $71, $2a + db $10, $8, $4b, $2a + db $10, $10, $4a, $2a + db $10, $18, $64, $2a + db $8, $0, $54, $a + db $8, $8, $55, $a + db $8, $10, $55, $2a + db $8, $18, $54, $2a + db $0, $0, $48, $a + db $0, $8, $49, $a + db $0, $10, $49, $2a + db $0, $18, $48, $2a + +Unknown_116d1b: ; 116d1b + db $c + db $0, $0, $38, $4a + db $0, $8, $39, $4a + db $0, $10, $39, $6a + db $0, $18, $38, $6a + db $8, $0, $28, $4a + db $8, $8, $29, $4a + db $8, $10, $29, $6a + db $8, $18, $28, $6a + db $10, $0, $9, $4d + db $10, $8, $19, $4a + db $10, $10, $19, $6a + db $10, $18, $9, $6d + +Unknown_116d4c: ; 116d4c + db $e + db $0, $8, $3b, $4a + db $0, $10, $3b, $6a + db $8, $0, $2a, $4a + db $8, $8, $2b, $4a + db $8, $10, $2b, $6a + db $8, $18, $2a, $6a + db $10, $0, $1a, $4a + db $10, $8, $1b, $4a + db $10, $10, $1b, $6a + db $10, $18, $1a, $6a + db $18, $0, $a, $4a + db $18, $8, $b, $4a + db $18, $10, $b, $6a + db $18, $18, $a, $6a + +Unknown_116d85: ; 116d85 + db $e + db $0, $0, $35, $2a + db $0, $8, $3c, $4a + db $0, $10, $3d, $4a + db $0, $18, $3e, $4a + db $8, $0, $2c, $4a + db $8, $8, $2d, $4a + db $8, $10, $2e, $4a + db $8, $18, $2f, $4a + db $10, $0, $1c, $4a + db $10, $8, $1d, $4a + db $10, $10, $1e, $4d + db $10, $18, $1f, $4d + db $18, $10, $e, $4d + db $18, $18, $f, $4a + +Unknown_116dbe: ; 116dbe + db $e + db $0, $0, $65, $4a + db $0, $8, $66, $4a + db $0, $10, $67, $4a + db $0, $18, $68, $4a + db $8, $8, $59, $4a + db $8, $10, $5a, $4a + db $8, $18, $5b, $4a + db $10, $0, $4c, $4a + db $10, $8, $4d, $4d + db $10, $10, $4e, $4d + db $10, $18, $4f, $4a + db $18, $0, $3f, $4d + db $18, $8, $40, $4d + db $18, $10, $41, $4d + +Unknown_116df7: ; 116df7 + db $e + db $0, $0, $3e, $6a + db $0, $8, $3d, $6a + db $0, $10, $3c, $6a + db $0, $18, $35, $a + db $8, $0, $2f, $6a + db $8, $8, $2e, $6a + db $8, $10, $2d, $6a + db $8, $18, $2c, $6a + db $10, $0, $1f, $6d + db $10, $8, $1e, $6d + db $10, $10, $1d, $6a + db $10, $18, $1c, $6a + db $18, $0, $f, $6a + db $18, $8, $e, $6d + +Unknown_116e30: ; 116e30 + db $e + db $0, $0, $68, $6a + db $0, $8, $67, $6a + db $0, $10, $66, $6a + db $0, $18, $65, $6a + db $8, $0, $5b, $6a + db $8, $8, $5a, $6a + db $8, $10, $59, $6a + db $10, $0, $4f, $6a + db $10, $8, $4e, $6d + db $10, $10, $4d, $6d + db $10, $18, $4c, $6a + db $18, $8, $41, $6d + db $18, $10, $40, $6d + db $18, $18, $3f, $6d + +Unknown_116e69: ; 116e69 + db $c + db $8, $0, $9, $d + db $8, $8, $19, $a + db $8, $10, $19, $2a + db $8, $18, $9, $2d + db $10, $0, $28, $a + db $10, $8, $29, $a + db $10, $10, $29, $2a + db $10, $18, $28, $2a + db $18, $0, $38, $a + db $18, $8, $39, $a + db $18, $10, $39, $2a + db $18, $18, $38, $2a + +Unknown_116e9a: ; 116e9a + db $e + db $0, $0, $a, $a + db $0, $8, $b, $a + db $0, $10, $b, $2a + db $0, $18, $a, $2a + db $8, $0, $1a, $a + db $8, $8, $1b, $a + db $8, $10, $1b, $2a + db $8, $18, $1a, $2a + db $10, $0, $2a, $a + db $10, $8, $2b, $a + db $10, $10, $2b, $2a + db $10, $18, $2a, $2a + db $18, $8, $3b, $a + db $18, $10, $3b, $2a + +Unknown_116ed3: ; 116ed3 + db $e + db $0, $10, $e, $d + db $0, $18, $f, $a + db $8, $0, $1c, $a + db $8, $8, $1d, $a + db $8, $10, $1e, $d + db $8, $18, $1f, $d + db $10, $0, $2c, $a + db $10, $8, $2d, $a + db $10, $10, $2e, $a + db $10, $18, $2f, $a + db $18, $0, $35, $6a + db $18, $8, $3c, $a + db $18, $10, $3d, $a + db $18, $18, $3e, $a + +Unknown_116f0c: ; 116f0c + db $e + db $0, $0, $3f, $d + db $0, $8, $40, $d + db $0, $10, $41, $d + db $8, $0, $4c, $a + db $8, $8, $4d, $d + db $8, $10, $4e, $d + db $8, $18, $4f, $a + db $10, $8, $59, $a + db $10, $10, $5a, $a + db $10, $18, $5b, $a + db $18, $0, $65, $a + db $18, $8, $66, $a + db $18, $10, $67, $a + db $18, $18, $68, $a + +Unknown_116f45: ; 116f45 + db $e + db $0, $0, $f, $2a + db $0, $8, $e, $2d + db $8, $0, $1f, $2d + db $8, $8, $1e, $2d + db $8, $10, $1d, $2a + db $8, $18, $1c, $2a + db $10, $0, $2f, $2a + db $10, $8, $2e, $2a + db $10, $10, $2d, $2a + db $10, $18, $2c, $2a + db $18, $0, $3e, $2a + db $18, $8, $3d, $2a + db $18, $10, $3c, $2a + db $18, $18, $35, $4a + +Unknown_116f7e: ; 116f7e + db $e + db $0, $8, $41, $2d + db $0, $10, $40, $2d + db $0, $18, $3f, $2d + db $8, $0, $4f, $2a + db $8, $8, $4e, $2d + db $8, $10, $4d, $2d + db $8, $18, $4c, $2a + db $10, $0, $5b, $2a + db $10, $8, $5a, $2a + db $10, $10, $59, $2a + db $18, $0, $68, $2a + db $18, $8, $67, $2a + db $18, $10, $66, $2a + db $18, $18, $65, $2a + +Unknown_116fb7: ; 116fb7 + db $d + db $fa, $0, $72, $a + db $fa, $8, $73, $d + db $fa, $10, $74, $d + db $fa, $18, $75, $d + db $2, $0, $81, $a + db $2, $8, $82, $a + db $2, $10, $83, $a + db $2, $18, $84, $a + db $a, $0, $91, $a + db $a, $8, $92, $a + db $a, $10, $93, $a + db $a, $18, $94, $a + db $12, $10, $a3, $a + +Unknown_116fec: ; 116fec + db $e + db $fd, $0, $85, $d + db $fd, $8, $86, $d + db $5, $0, $95, $d + db $5, $8, $96, $a + db $5, $10, $97, $a + db $5, $18, $98, $a + db $d, $0, $a5, $a + db $d, $8, $a6, $a + db $d, $10, $a7, $a + db $d, $18, $a8, $a + db $15, $0, $b3, $a + db $15, $8, $b4, $a + db $15, $10, $b5, $a + db $15, $18, $b6, $a + +Unknown_117025: ; 117025 + db $c + db $8, $0, $79, $d + db $8, $8, $7a, $d + db $8, $10, $7b, $a + db $8, $18, $7c, $a + db $10, $0, $89, $d + db $10, $8, $8a, $a + db $10, $10, $8b, $a + db $10, $18, $8c, $a + db $18, $0, $99, $a + db $18, $8, $9a, $a + db $18, $10, $9b, $a + db $18, $18, $9c, $a + +Unknown_117056: ; 117056 + db $b + db $8, $0, $7d, $a + db $8, $8, $7e, $d + db $8, $10, $7f, $d + db $8, $18, $80, $a + db $10, $0, $8d, $a + db $10, $8, $8e, $a + db $10, $10, $8f, $a + db $10, $18, $90, $a + db $18, $8, $9e, $a + db $18, $10, $9f, $a + db $18, $18, $a0, $a + +Unknown_117083: ; 117083 + db $f + db $0, $0, $a1, $a + db $0, $8, $a2, $a + db $0, $10, $a2, $2a + db $0, $18, $a1, $2a + db $8, $0, $b1, $a + db $8, $8, $b2, $d + db $8, $10, $b2, $2d + db $8, $18, $b1, $2a + db $10, $0, $ab, $a + db $10, $8, $ac, $a + db $10, $10, $ac, $2a + db $10, $18, $ab, $2a + db $18, $8, $a4, $a + db $18, $10, $87, $a + db $18, $18, $88, $a + +Unknown_1170c0: ; 1170c0 + db $f + db $0, $0, $a1, $a + db $0, $8, $a2, $d + db $0, $10, $a2, $2a + db $0, $18, $a1, $2a + db $8, $0, $b1, $a + db $8, $8, $78, $d + db $8, $10, $78, $2d + db $8, $18, $b1, $2a + db $10, $0, $ab, $a + db $10, $8, $ac, $a + db $10, $10, $ac, $2a + db $10, $18, $ab, $2a + db $18, $8, $a4, $a + db $18, $10, $87, $a + db $18, $18, $88, $a + +Unknown_1170fd: ; 1170fd + db $f + db $0, $0, $a9, $a + db $0, $8, $aa, $a + db $0, $10, $aa, $2a + db $0, $18, $a9, $2a + db $8, $0, $b7, $a + db $8, $8, $b8, $a + db $8, $10, $b8, $2a + db $8, $18, $b7, $2a + db $10, $0, $ab, $a + db $10, $8, $ac, $a + db $10, $10, $ac, $2a + db $10, $18, $ad, $a + db $18, $8, $a4, $a + db $18, $10, $ba, $a + db $18, $18, $bb, $a + +Unknown_11713a: ; 11713a + db $f + db $0, $0, $ae, $c + db $0, $8, $af, $c + db $0, $10, $af, $2c + db $0, $18, $ae, $2c + db $8, $0, $bc, $c + db $8, $8, $bd, $c + db $8, $10, $bd, $2c + db $8, $18, $bc, $2c + db $10, $0, $bf, $c + db $10, $8, $9d, $c + db $10, $10, $9d, $2c + db $10, $18, $b0, $c + db $18, $8, $b9, $c + db $18, $10, $c0, $c + db $18, $18, $be, $c + +Unknown_117177: ; 117177 + db $9 + db $14, $0, $1f, $6 + db $14, $8, $20, $6 + db $14, $10, $21, $6 + db $c, $0, $10, $6 + db $c, $8, $11, $6 + db $c, $10, $12, $6 + db $4, $0, $1, $6 + db $4, $8, $2, $6 + db $4, $10, $3, $6 + +Unknown_11719c: ; 11719c + db $9 + db $14, $0, $22, $6 + db $14, $8, $23, $6 + db $14, $10, $24, $6 + db $c, $0, $13, $6 + db $c, $8, $14, $6 + db $c, $10, $15, $6 + db $4, $0, $4, $6 + db $4, $8, $5, $6 + db $4, $10, $6, $6 + +Unknown_1171c1: ; 1171c1 + db $9 + db $14, $0, $25, $6 + db $14, $8, $26, $6 + db $14, $10, $27, $6 + db $c, $0, $16, $6 + db $c, $8, $17, $6 + db $c, $10, $18, $6 + db $4, $0, $7, $6 + db $4, $8, $8, $6 + db $4, $10, $9, $6 + +Unknown_1171e6: ; 1171e6 + db $9 + db $14, $0, $28, $6 + db $14, $8, $29, $6 + db $14, $10, $2a, $6 + db $c, $0, $19, $6 + db $c, $8, $1a, $6 + db $c, $10, $1b, $6 + db $4, $0, $a, $6 + db $4, $8, $b, $6 + db $4, $10, $c, $6 + +Unknown_11720b: ; 11720b + db $9 + db $14, $0, $2b, $6 + db $14, $8, $2c, $6 + db $14, $10, $2d, $6 + db $c, $0, $1c, $6 + db $c, $8, $1d, $6 + db $c, $10, $1e, $6 + db $4, $0, $d, $6 + db $4, $8, $e, $6 + db $4, $10, $f, $6 + +Unknown_117230: ; 117230 + db $9 + db $14, $0, $47, $6 + db $14, $8, $48, $6 + db $14, $10, $49, $6 + db $c, $0, $3b, $6 + db $c, $8, $3c, $6 + db $c, $10, $3b, $26 + db $4, $0, $2e, $6 + db $4, $8, $2f, $6 + db $4, $10, $30, $6 + +Unknown_117255: ; 117255 + db $9 + db $14, $0, $35, $6 + db $14, $8, $4a, $6 + db $14, $10, $35, $6 + db $c, $0, $3d, $6 + db $c, $8, $35, $6 + db $c, $10, $3d, $26 + db $4, $0, $31, $6 + db $4, $8, $32, $6 + db $4, $10, $31, $26 + +Unknown_11727a: ; 11727a + db $9 + db $14, $0, $4b, $6 + db $14, $8, $4c, $6 + db $14, $10, $4d, $6 + db $c, $0, $3e, $6 + db $c, $8, $3f, $6 + db $c, $10, $40, $6 + db $4, $0, $33, $6 + db $4, $8, $34, $6 + db $4, $10, $35, $6 + +Unknown_11729f: ; 11729f + db $9 + db $14, $0, $4e, $6 + db $14, $8, $4f, $6 + db $14, $10, $50, $6 + db $c, $0, $41, $6 + db $c, $8, $42, $6 + db $c, $10, $43, $6 + db $4, $0, $35, $6 + db $4, $8, $36, $6 + db $4, $10, $37, $6 + +Unknown_1172c4: ; 1172c4 + db $9 + db $14, $0, $51, $6 + db $14, $8, $52, $6 + db $14, $10, $35, $6 + db $c, $0, $44, $6 + db $c, $8, $45, $6 + db $c, $10, $46, $6 + db $4, $0, $38, $6 + db $4, $8, $39, $6 + db $4, $10, $3a, $6 + +Unknown_1172e9: ; 1172e9 + db $9 + db $10, $0, $0, $2 + db $10, $8, $0, $2 + db $10, $10, $0, $2 + db $8, $0, $0, $2 + db $8, $8, $0, $2 + db $c, $10, $1f, $6 + db $0, $0, $0, $2 + db $0, $8, $0, $2 + db $4, $10, $10, $6 +; 11730e + +Palette_11730e: + RGB 31, 31, 31 + RGB 7, 5, 4 + RGB 31, 28, 4 + RGB 31, 5, 5 + RGB 31, 31, 31 + RGB 7, 5, 4 + RGB 31, 23, 0 + RGB 31, 28, 4 + RGB 31, 31, 31 + RGB 16, 19, 31 + RGB 17, 31, 31 + RGB 31, 31, 31 + RGB 5, 5, 5 + RGB 7, 5, 4 + RGB 31, 28, 4 + RGB 19, 11, 6 + RGB 31, 31, 31 + RGB 3, 15, 31 + RGB 4, 25, 25 + RGB 0, 7, 12 + RGB 31, 31, 31 + RGB 0, 16, 0 + RGB 0, 16, 0 + RGB 0, 16, 0 + RGB 4, 11, 22 + RGB 0, 16, 0 + RGB 0, 16, 0 + RGB 0, 16, 0 + RGB 22, 11, 8 + RGB 0, 16, 0 + RGB 0, 16, 0 + RGB 0, 16, 0 + +Palette_11734e: + RGB 31, 30, 30 + RGB 2, 0, 0 + RGB 10, 9, 9 + RGB 15, 14, 14 + +Unknown_117356: ; 117356 + db $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9 + db $c9, $c9, $c9, $c9, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1 + db $c5, $c6, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2 + db $c2, $c2, $c6, $c5, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1 + db $c3, $c4, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2 + db $c2, $c2, $c4, $c3, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1 + db $c3, $c4, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2 + db $c2, $c2, $c4, $c3, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1 + db $c3, $c4, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2 + db $c2, $c2, $c4, $c3, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1 + db $c3, $c4, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2 + db $c2, $c2, $c4, $c3, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1 + db $c3, $c4, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2 + db $c2, $c2, $c4, $c3, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1 + db $c3, $c4, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2 + db $c2, $c2, $c4, $c3, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1 + db $c3, $c4, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2 + db $c2, $c2, $c4, $c3, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1 + db $c3, $c4, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $d8, $c2, $c2, $d8, $c2, $c2, $c2 + db $c2, $c2, $c4, $c3, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1 + db $c7, $c8, $ca, $cb, $cc, $cd, $ce, $c2, $cf, $d0, $d1, $d2, $d3, $c2, $d4, $d5 + db $d6, $d7, $c8, $c7, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1 + db $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9 + db $c9, $c9, $c9, $c9, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1 + + db $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f + db $8f, $8f, $8f, $8f, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08 + db $8f, $8f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f + db $0f, $0f, $af, $af, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08 + db $8f, $8f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f + db $0f, $0f, $af, $af, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08 + db $8f, $8f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f + db $0f, $0f, $af, $af, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08 + db $8f, $8f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f + db $0f, $0f, $af, $af, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08 + db $8f, $8f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f + db $0f, $0f, $af, $af, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08 + db $8f, $8f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f + db $0f, $0f, $af, $af, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08 + db $8f, $8f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f + db $0f, $0f, $af, $af, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08 + db $8f, $8f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f + db $0f, $0f, $af, $af, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08 + db $8f, $8f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $8f, $0f, $0f, $8f, $0f, $0f, $0f + db $0f, $0f, $af, $af, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08 + db $8f, $8f, $8f, $8f, $8f, $8f, $8f, $0f, $8f, $8f, $8f, $8f, $8f, $0f, $8f, $8f + db $8f, $8f, $af, $af, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08 + db $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f + db $8f, $8f, $8f, $8f, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08 +; 117656 + + +SECTION "Mobile Stadium", ROMX + +Special_GiveOddEgg: ; 117656 + callba GiveOddEgg + ret + +; 11765d + +Function11765d: ; 11765d (45:765d) + ld a, [hInMenu] + push af + ld a, $1 + ld [hInMenu], a + call Function11766b + pop af + ld [hInMenu], a + ret + +Function11766b: ; 11766b (45:766b) + call Function117699 + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + call Function1176ee + ld a, $5 + call GetSRAMBank + ld hl, $b1f3 + ld de, wcd49 + ld bc, $8 + call CopyBytes + ld de, $c708 + ld bc, $11 + call CopyBytes + call CloseSRAM + pop af + ld [rSVBK], a + ret + +Function117699: ; 117699 (45:7699) + ld a, $5 + call GetSRAMBank + ld hl, wcd49 + ld de, $b1f3 + ld bc, $8 + call CopyBytes + ld hl, $c708 + ld bc, $11 + call CopyBytes + call CloseSRAM + xor a + ld [wcd49], a + ld [wcd4a], a + ld [wcd4b], a + ld [wcd4c], a + ld [wcd4d], a + ld [wcd4e], a + ld [wcd4f], a + ld hl, $c708 + ld bc, $11 + call ByteFill + call ClearBGPalettes + call ClearSprites + callba Function171c87 + callba ReloadMapPart + callba ClearSpriteAnims + ret + +Function1176ee: ; 1176ee (45:76ee) +.loop + call JoyTextDelay + ld a, [wcd49] + bit 7, a + jr nz, .quit + call Function117719 + callba PlaySpriteAnimations + callba ReloadMapPart + jr .loop + +.quit + callba ClearSpriteAnims + call ClearBGPalettes + call ClearScreen + call ClearSprites + ret + +Function117719: ; 117719 (45:7719) + ld a, [wcd49] + ld e, a + ld d, 0 + ld hl, Jumptable_117728 + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp hl + +Jumptable_117728: ; 117728 (45:7728) + dw Function117738 + dw Function117764 + dw Function1178aa + dw Function1178e8 + dw Function117942 + dw Function117976 + dw Function117984 + dw Function1179a7 + + +Function117738: ; 117738 (45:7738) + callba Function171ccd + depixel 6, 3 + ld a, $1d + call _InitSpriteAnimStruct + ld hl, $c + add hl, bc + ld a, $6 + ld [hl], a + depixel 9, 4 + ld a, $1d + call _InitSpriteAnimStruct + ld hl, $c + add hl, bc + ld a, $7 + ld [hl], a + ld a, $3 + ld [wcd23], a + jp MobilePassword_IncrementJumptable + +Function117764: ; 117764 (45:7764) + ld a, [wcd4a] + cp $10 + jr nz, .asm_11776f + ld a, $1 + jr .asm_117770 + +.asm_11776f + xor a +.asm_117770 + ld [wcd24], a + ld hl, hJoyPressed ; $ffa7 + ld a, [hl] + and SELECT + jr nz, Function117764_select + ld a, [hl] + and START + jr nz, Function117764_start + ld a, [hl] + and A_BUTTON + jp nz, Function117764_a_button + ld a, [hl] + and B_BUTTON + jr nz, Function117764_b_button + ld hl, hJoyLast + ld a, [hl] + and D_UP + jr nz, Function117764_d_up + ld a, [hl] + and D_DOWN + jr nz, Function117764_d_down + ld a, [hl] + and D_LEFT + jp nz, Function117764_d_left + ld a, [hl] + and D_RIGHT + jp nz, Function117764_d_right + ret + +Function117764_select: ; 1177a5 (45:77a5) + callba Function171cf0 + ret + +Function117764_start: ; 1177ac (45:77ac) + ld a, $2 + ld [wcd4c], a + ld a, $4 + ld [wcd4d], a + ret + +Function1177b7: ; 1177b7 (45:77b7) + ld a, $3 + ld [wcd24], a + ld a, [wcd4a] + and a + jr z, .asm_1177c5 + jp MobilePassword_IncrementJumptable + +.asm_1177c5 + ld a, $6 + ld [wcd49], a + ret + +Function1177cb: ; 1177cb (45:77cb) + ld a, $80 + ld [wcd49], a + ld [ScriptVar], a + jp MobilePassword_IncrementJumptable + +Function117764_b_button: ; 1177d6 (45:77d6) + call PlayClickSFX + ld a, [wcd4a] + and a + ret z + dec a + ld [wcd4a], a + ld e, a + ld d, $0 + ld hl, $c708 + add hl, de + xor a + ld [hl], a + hlcoord 2, 4 + add hl, de + ld [hl], a + ret + +Function117764_d_up: ; 1177f1 (45:77f1) + ld a, [wcd4d] + and a + ret z + dec a + ld [wcd4d], a + cp $3 + ret nz + ld a, [wcd4c] + ld e, a + sla a + sla a + add e +Function117764_d_vertical_load: ; 117806 (45:7806) + ld [wcd4c], a + ret + +Function117764_d_down: ; 11780a (45:780a) + ld a, [wcd4d] + cp $4 + ret z + inc a + ld [wcd4d], a + cp $4 + ret nz + ld a, [wcd4c] + cp $a + jr nc, .asm_117825 + cp $5 + jr nc, .asm_117829 + xor a + jr Function117764_d_vertical_load + +.asm_117825 + ld a, $2 + jr Function117764_d_vertical_load + +.asm_117829 + ld a, $1 + jr Function117764_d_vertical_load + +Function117764_d_left: ; 11782d (45:782d) + ld a, [wcd4c] + and a + ret z + dec a + ld [wcd4c], a + ret + +Function117764_d_right: ; 117837 (45:7837) + ld e, $d + ld a, [wcd4d] + cp $4 + jr nz, .wrap + ld e, $2 +.wrap + ld a, [wcd4c] + cp e + ret z + inc a + ld [wcd4c], a + ret + +Function117764_a_button: ; 11784c (45:784c) + call PlayClickSFX + ld a, [wcd4d] + cp $4 + jr nz, .not_4 + ld a, [wcd4c] + cp $2 + jp z, Function1177b7 + cp $1 + jp z, Function1177cb + jp Function117764_select + +.not_4 + ld a, [wcd4a] + ld e, a + cp $10 + jp z, Function117764_start + inc a + ld [wcd4a], a + ld d, $0 + ld a, [wcd4b] + and a + jr nz, .ascii_symbols + ld hl, Unknown_117a0f + jr .got_ascii + +.ascii_symbols + ld hl, Unknown_117a47 +.got_ascii + push de + ld a, [wcd4c] + ld b, a + ld a, [wcd4d] + ld c, $e + call SimpleMultiply + add b + ld c, a + ld b, $0 + add hl, bc + ld a, [hl] + ld hl, $c708 + add hl, de + ld [hl], a + pop de + hlcoord 2, 4 + add hl, de + sub $20 + ld [hl], a + ld a, e + cp $f + ret nz + jp Function117764_start + +Function1178aa: ; 1178aa (45:78aa) + ld hl, MenuDataHeader_1179b5 + call LoadMenuDataHeader + call MenuBox + call MenuBoxCoord2Tile + ld hl, MenuDataHeader_1179bd + call LoadMenuDataHeader + call MenuBox + call MenuBoxCoord2Tile + callba ReloadMapPart + hlcoord 16, 8 + ld de, YessNoString_1179c5 + call PlaceString + hlcoord 15, 10 + ld a, "▶" + ld [hl], a + hlcoord 1, 14 + ld de, AskSavePasswordString + call PlaceString + ld a, $1 + ld [wcd4e], a + jp MobilePassword_IncrementJumptable + +Function1178e8: ; 1178e8 (45:78e8) + ld a, [hJoyPressed] + cp B_BUTTON + jr z, .b_button + cp A_BUTTON + jr z, .a_button + cp D_DOWN + jr z, .d_down + cp D_UP + ret nz + ld a, [wcd4e] + and a + ret z + dec a + ld [wcd4e], a + hlcoord 15, 8 + ld a, "▶" + ld [hl], a + hlcoord 15, 10 + ld a, " " + ld [hl], a + ret + +.d_down + ld a, [wcd4e] + and a + ret nz + inc a + ld [wcd4e], a + hlcoord 15, 8 + ld a, " " + ld [hl], a + hlcoord 15, 10 + ld a, "▶" + ld [hl], a + ret + +.a_button + call PlayClickSFX + ld a, [wcd4e] + and a + jr nz, .b_button + call ExitMenu + ld a, $1 + ld [wcd4f], a + jp MobilePassword_IncrementJumptable + +.b_button + call ExitMenu + call ExitMenu + jp MobilePassword_IncrementJumptable + +Function117942: ; 117942 (45:7942) + call SpeechTextBox + hlcoord 1, 14 + ld de, SavedPasswordString + call PlaceString + ld a, $1e + ld [wcd4e], a + ld a, BANK(sMobileLoginPassword) + call GetSRAMBank + ld a, [wcd4f] + ld [sMobileLoginPassword], a + ld hl, $c708 + ld de, sMobileLoginPassword + 1 + ld bc, MOBILE_LOGIN_PASSWORD_LENGTH + call CopyBytes + call CloseSRAM + ld a, [wcd4f] + and a + jr z, asm_11797e + call MobilePassword_IncrementJumptable + +Function117976: ; 117976 (45:7976) + ld hl, wcd4e + dec [hl] + ret nz + call ExitMenu +asm_11797e: ; 11797e (45:797e) + ld a, $80 + ld [wcd49], a + ret + +Function117984: ; 117984 (45:7984) + ld hl, MenuDataHeader_1179b5 + call LoadMenuDataHeader + call MenuBox + call MenuBoxCoord2Tile + callba ReloadMapPart + hlcoord 1, 14 + ld de, NotAPokemonPasswordString + call PlaceString + ld a, $1e + ld [wcd4e], a + call MobilePassword_IncrementJumptable + +Function1179a7: ; 1179a7 (45:79a7) + ld hl, wcd4e + dec [hl] + ret nz + call ExitMenu + ld a, $1 + ld [wcd49], a + ret + +; 1179b5 (45:79b5) + +MenuDataHeader_1179b5: ; 1179b5 + db $40 ; flags + db 12, 0 ; start coords + db 17, 19 ; end coords + dw NULL + db 0 ; default option +; 1179bd + +MenuDataHeader_1179bd: ; 1179bd + db $40 ; flags + db 7, 14 ; start coords + db 11, 19 ; end coords + dw NULL + db 0 ; default option +; 1179c5 + + +YessNoString_1179c5: ; 1179c5 + db "はい" + next "いいえ@" +; 1179cc + +AskSavePasswordString: ; 1179cc + db "こ%パスワード¯ほぞんして" + line "おきますか?@" +; 1179e1 + +NotAPokemonPasswordString: ; 1179e1 + db "パスワードにゅうりょく" + line "されていません!@" +; 1179f7 + +SavedPasswordString: ; 1179f7 + db "ログインパスワード¯ほぞん" + line "しました@" +; 117a0a + +MobilePassword_IncrementJumptable: ; 117a0a (45:7a0a) + ld hl, wcd49 + inc [hl] + ret + +; 117a0f (45:7a0f) + +Unknown_117a0f: +INCBIN "data/mobile/ascii-alpha.txt" + +Unknown_117a47: +INCBIN "data/mobile/ascii-sym.txt" +; 117a7f + + +; everything from here to the end of the bank is related to the +; Mobile Stadium option from the continue/newgame menu. +; XXX better function names +MobileStudium: ; 0x117a7f + ld a, [hInMenu] + push af + ld a, $1 + ld [hInMenu], a + call Function117a8d + pop af + ld [hInMenu], a + ret + +; 0x117a8d + +Function117a8d: ; 0x117a8d + call Function117a94 + call Function117acd + ret + +; 0x117a94 + +Function117a94: ; 0x117a94 + xor a + ld [wJumptableIndex], a + ld [wcf64], a + ld [wcf65], a + ld [wcf66], a + call ClearBGPalettes + call ClearSprites + callba Function172e78 + callba HDMATransferAttrMapAndTileMapToWRAMBank3 + ret + +; 0x117ab4 + +Function117ab4: ; 0x117ab4 + call ClearBGPalettes + call ClearSprites + callba Function172e78 + callba Function172eb9 + callba ReloadMapPart + ret + +; 0x117acd + +Function117acd: ; 0x117acd + call JoyTextDelay + ld a, [wJumptableIndex] + bit 7, a + jr nz, .asm_117ae2 + call Function117ae9 + callba HDMATransferAttrMapAndTileMapToWRAMBank3 + jr Function117acd + +.asm_117ae2 + call ClearBGPalettes + call ClearSprites + ret + +Function117ae9: ; 0x117ae9 + ld a, [wJumptableIndex] + ld e, a + ld d, $0 + ld hl, .Jumptable + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp hl + +.Jumptable: ; 0x117af8 + dw Function117b06 + dw Function117b14 + dw Function117b28 + dw Function117b31 + dw Function117b4f + dw Function117bb6 + dw Function117c4a + +Function117b06: + callba Function172eb9 + ld a, $10 + ld [wcf64], a + jp MobileStudium_JumptableIncrement + +Function117b14: + ld hl, wcf64 + dec [hl] + ret nz + ld hl, MenuDataHeader_117cbc + call LoadMenuDataHeader + call MenuBox + call MenuBoxCoord2Tile + jp MobileStudium_JumptableIncrement + +Function117b28: + ld hl, MobileStadiumEntryText + call PrintText + jp MobileStudium_JumptableIncrement + +Function117b31: + ld hl, MenuDataHeader_117cc4 + call LoadMenuDataHeader + call MenuBox + call MenuBoxCoord2Tile + hlcoord 16, 8 + ld de, YesNo117ccc + call PlaceString + hlcoord 15, 8 + ld a, "▶" + ld [hl], a + jp MobileStudium_JumptableIncrement + +Function117b4f: + ld a, [hJoyPressed] + cp B_BUTTON + jr z, .b_button + cp A_BUTTON + jr z, .a_button + cp D_DOWN + jr z, .d_down + cp D_UP + ret nz + ld a, [wcf64] + and a + ret z + dec a + ld [wcf64], a + hlcoord 15, 8 + ld a, "▶" + ld [hl], a + hlcoord 15, 10 + ld a, " " + ld [hl], a + ret + +.d_down + ld a, [wcf64] + and a + ret nz + inc a + ld [wcf64], a + hlcoord 15, 8 + ld a, " " + ld [hl], a + hlcoord 15, 10 + ld a, "▶" + ld [hl], a + ret + +.a_button + call PlayClickSFX + ld a, [wcf64] + and a + jr nz, .b_button + call ExitMenu + call ExitMenu + callba ReloadMapPart + jp MobileStudium_JumptableIncrement + +.b_button + call ExitMenu + call ExitMenu + callba ReloadMapPart + ld a, $80 + ld [wJumptableIndex], a + ret + +Function117bb6: + call Function117c89 + ld a, $1 + ld [hBGMapMode], a + callba Function118284 + call ClearSprites + ld a, [wc300] + and a + jr z, .asm_117be7 + cp $a + jr z, .asm_117be1 +.asm_117bd0 + ld a, $2 + ld [wc303], a + callba DisplayMobileError + ld a, $80 + ld [wJumptableIndex], a + ret + +.asm_117be1 + ld a, $80 + ld [wJumptableIndex], a + ret + +.asm_117be7 + ld a, [rSVBK] + push af + ld a, $3 + ld [rSVBK], a + ld a, [wcd89] + and $1 + jr nz, .asm_117c16 + ld a, [w3_d000] + cp $fe + jr nz, .asm_117c16 + ld a, [w3_d001] + cp $f + jr nz, .asm_117c16 + ld hl, w3_dfec + ld de, wcd69 + ld c, $10 +.asm_117c0b + ld a, [de] + inc de + cp [hl] + jr nz, .asm_117c16 + inc hl + dec c + jr nz, .asm_117c0b + jr .asm_117c20 + +.asm_117c16 + pop af + ld [rSVBK], a + ld a, $d3 + ld [wc300], a + jr .asm_117bd0 + +.asm_117c20 + pop af + ld [rSVBK], a + callba Function172eb9 + ld a, [rSVBK] + push af + ld a, $3 + ld [rSVBK], a + ld a, $7 + call GetSRAMBank + ld hl, w3_d002 + ld de, $b000 + ld bc, $1000 + call CopyBytes + call CloseSRAM + pop af + ld [rSVBK], a + jp MobileStudium_JumptableIncrement + +Function117c4a: + ld hl, MenuDataHeader_117cbc + call LoadMenuDataHeader + call MenuBox + call MenuBoxCoord2Tile + callba ReloadMapPart + ld hl, MobileStadiumSuccessText + call PrintText + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + ld hl, UnknBGPals + ld de, 1 palettes + ld c, 8 +.loop + push hl + ld a, $7fff % $100 + ld [hli], a + ld a, $7fff / $100 + ld [hl], a + pop hl + add hl, de + dec c + jr nz, .loop + call RotateThreePalettesRight + pop af + ld [rSVBK], a + ld a, $80 + ld [wJumptableIndex], a + ret + +Function117c89: + ld a, $7 + call GetSRAMBank + ld l, $0 + ld h, l + ld de, $b000 + ld bc, $0ffc +.asm_117c97 + push bc + ld a, [de] + inc de + ld c, a + ld b, $0 + add hl, bc + pop bc + dec bc + ld a, b + or c + jr nz, .asm_117c97 + ld a, l + ld [wcd83], a + ld a, h + ld [wcd84], a + ld hl, $bfea + ld de, wcd69 + ld bc, $10 + call CopyBytes + call CloseSRAM + ret + +MenuDataHeader_117cbc: ; 0x117cbc + db $40 ; flags + db 12, 0 ; start coords + db 17, 19 ; end coords + dw NULL ; menu data 2 + db 0 ; default option + +MenuDataHeader_117cc4: ; 0x117cc4 + db $40 ; flags + db 7, 14 ; start coords + db 11, 19 ; end coords + dw NULL ; menu data 2 + db 0 ; default item + +YesNo117ccc: ; 0x117ccc + db "はい" + next "いいえ@" + +MobileStadiumEntryText: ; 0x117cd3 + text_jump _MobileStadiumEntryText + db "@" + +MobileStadiumSuccessText: ; 0x117cd8 + text_jump _MobileStadiumSuccessText + db "@" + +MobileStudium_JumptableIncrement: ; 0x117cdd + ld hl, wJumptableIndex + inc [hl] + ret diff --git a/mobile/mobile_45_sprite_engine.asm b/mobile/mobile_45_sprite_engine.asm new file mode 100755 index 000000000..a85e7fce4 --- /dev/null +++ b/mobile/mobile_45_sprite_engine.asm @@ -0,0 +1,922 @@ +Function115d99: ; 115d99 + ld de, GFX_11601a + ld hl, VTiles0 tile $60 + lb bc, BANK(GFX_11601a), $14 + call Get2bpp + xor a + ld [wc305], a + ld [wc306], a + ld [wc309], a + ld [wc30a], a + ld [wc30b], a + ld [wc30c], a + ld a, $10 + ld [wc307], a + ld a, $18 + ld [wc308], a + ret + +; 115dc3 + +Function115dc3: ; 115dc3 + xor a + ld [wc305], a + ld a, $a0 + ld hl, Sprites + 31 * 4 + ld bc, 8 * 4 + call ByteFill + ret + +; 115dd3 + +Function115dd3: ; 115dd3 + ld a, [wc305] + and a + ret z + ld a, $a0 + ld hl, Sprites + 31 * 4 + ld bc, 8 * 4 + call ByteFill + call Function115e22 + ld a, [wc309] + sla a + ld c, a + ld b, 0 + ld hl, Unknown_115e86 + add hl, bc + ld a, [hli] + ld e, a + ld a, [hl] + ld d, a + push de + pop hl + ld de, Sprites + 31 * 4 + ld a, [wc307] + ld c, a + ld a, [wc308] + ld b, a + ld a, [hli] +.asm_115e04 + 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_115e04 + ret + +; 115e18 + +Function115e18: ; 115e18 + ld a, c + ld [wc30a], a + xor a + ld [wc30b], a + jr Function115e2b + +; 115e22 + +Function115e22: ; 115e22 + ld hl, wc30c + dec [hl] + ret nz + ld hl, wc30b + inc [hl] + +Function115e2b: ; 115e2b + ld a, [wc30a] + sla a + ld c, a + ld b, 0 + ld hl, Unknown_115e59 + add hl, bc + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + push de + pop hl + ld a, [wc30b] + sla a + ld c, a + ld b, $0 + add hl, bc + ld a, [hli] + cp $ff + jr nz, .not_end + xor a + ld [wc30b], a + jr Function115e2b + +.not_end + ld [wc309], a + ld a, [hl] + ld [wc30c], a + ret + +; 115e59 + +Unknown_115e59: + dw Unknown_115e61 + dw Unknown_115e6c + dw Unknown_115e76 + dw Unknown_115e79 + +; OAM idx (see Unknown_115e86), flip flags/duration +Unknown_115e61: ; 115e61 + db $04, $08 + db $05, $08 + db $06, $08 + db $07, $08 + db $08, $08 + db -1 + +Unknown_115e6c: ; 115e6c + db $01, $08 + db $02, $08 + db $03, $08 + db $09, $08 + db $0a, $08 +Unknown_115e76: ; 115e76 + db $00, $08 + db -1 + +Unknown_115e79: ; 115e79 + db $0b, $08 + db $0c, $08 + db $0d, $08 + db $0e, $08 + db $0f, $08 + db $00, $08 + db -1 +; 115e86 + +Unknown_115e86: + dw Unknown_115ea6 + dw Unknown_115eb7 + dw Unknown_115ecc + dw Unknown_115ee1 + dw Unknown_115ef6 + dw Unknown_115f13 + dw Unknown_115f30 + dw Unknown_115f4d + dw Unknown_115f6a + dw Unknown_115f87 + dw Unknown_115f9c + dw Unknown_115fb1 + dw Unknown_115fc6 + dw Unknown_115fdb + dw Unknown_115ff0 + dw Unknown_116005 + +Unknown_115ea6: ; 115ea6 + db 4 + dsprite 1, 0, 0, 0, $60, $01 + dsprite 1, 0, 1, 0, $61, $01 + dsprite 2, 0, 0, 0, $62, $01 + dsprite 2, 0, 1, 0, $63, $01 + +Unknown_115eb7: ; 115eb7 + db 5 + dsprite 0, 0, 1, 0, $64, $00 + dsprite 1, 0, 0, 0, $60, $01 + dsprite 1, 0, 1, 0, $61, $01 + dsprite 2, 0, 0, 0, $62, $01 + dsprite 2, 0, 1, 0, $63, $01 + +Unknown_115ecc: ; 115ecc + db 5 + dsprite 0, 0, 1, 0, $65, $00 + dsprite 1, 0, 0, 0, $60, $01 + dsprite 1, 0, 1, 0, $61, $01 + dsprite 2, 0, 0, 0, $62, $01 + dsprite 2, 0, 1, 0, $63, $01 + +Unknown_115ee1: ; 115ee1 + db 5 + dsprite 0, 0, 1, 0, $66, $00 + dsprite 1, 0, 0, 0, $60, $01 + dsprite 1, 0, 1, 0, $61, $01 + dsprite 2, 0, 0, 0, $62, $01 + dsprite 2, 0, 1, 0, $63, $01 + +Unknown_115ef6: ; 115ef6 + db 7 + dsprite 0, 0, 0, 0, $67, $01 + dsprite 1, 0, 0, 0, $68, $01 + dsprite 2, 0, 0, 0, $6d, $00 + dsprite 2, 0, 1, 0, $69, $00 + dsprite 2, 0, 2, 0, $6a, $00 + dsprite 3, 0, 1, 0, $6b, $00 + dsprite 3, 0, 2, 0, $6c, $00 + +Unknown_115f13: ; 115f13 + db 7 + dsprite 0, 0, 0, 0, $67, $01 + dsprite 1, 0, 0, 0, $68, $01 + dsprite 2, 0, 0, 0, $6e, $00 + dsprite 2, 0, 1, 0, $69, $00 + dsprite 2, 0, 2, 0, $6a, $00 + dsprite 3, 0, 1, 0, $6b, $00 + dsprite 3, 0, 2, 0, $6c, $00 + +Unknown_115f30: ; 115f30 + db 7 + dsprite 0, 0, 0, 0, $67, $01 + dsprite 1, 0, 0, 0, $68, $01 + dsprite 2, 0, 0, 0, $6f, $00 + dsprite 2, 0, 1, 0, $69, $00 + dsprite 2, 0, 2, 0, $6a, $00 + dsprite 3, 0, 1, 0, $6b, $00 + dsprite 3, 0, 2, 0, $6c, $00 + +Unknown_115f4d: ; 115f4d + db 7 + dsprite 0, 0, 0, 0, $67, $01 + dsprite 1, 0, 0, 0, $68, $01 + dsprite 2, 0, 0, 0, $70, $00 + dsprite 2, 0, 1, 0, $69, $00 + dsprite 2, 0, 2, 0, $6a, $00 + dsprite 3, 0, 1, 0, $6b, $00 + dsprite 3, 0, 2, 0, $6c, $00 + +Unknown_115f6a: ; 115f6a + db 7 + dsprite 0, 0, 0, 0, $67, $01 + dsprite 1, 0, 0, 0, $68, $01 + dsprite 2, 0, 0, 0, $71, $00 + dsprite 2, 0, 1, 0, $69, $00 + dsprite 2, 0, 2, 0, $6a, $00 + dsprite 3, 0, 1, 0, $6b, $00 + dsprite 3, 0, 2, 0, $6c, $00 + +Unknown_115f87: ; 115f87 + db 5 + dsprite 0, 0, 1, 0, $72, $00 + dsprite 1, 0, 0, 0, $60, $01 + dsprite 1, 0, 1, 0, $61, $01 + dsprite 2, 0, 0, 0, $62, $01 + dsprite 2, 0, 1, 0, $63, $01 + +Unknown_115f9c: ; 115f9c + db 5 + dsprite 0, 0, 1, 0, $73, $00 + dsprite 1, 0, 0, 0, $60, $01 + dsprite 1, 0, 1, 0, $61, $01 + dsprite 2, 0, 0, 0, $62, $01 + dsprite 2, 0, 1, 0, $63, $01 + +Unknown_115fb1: ; 115fb1 + db 5 + dsprite 0, 1, 1, 0, $64, $60 + dsprite 1, 0, 0, 0, $60, $01 + dsprite 1, 0, 1, 0, $61, $01 + dsprite 2, 0, 0, 0, $62, $01 + dsprite 2, 0, 1, 0, $63, $01 + +Unknown_115fc6: ; 115fc6 + db 5 + dsprite 0, 1, 1, 0, $65, $60 + dsprite 1, 0, 0, 0, $60, $01 + dsprite 1, 0, 1, 0, $61, $01 + dsprite 2, 0, 0, 0, $62, $01 + dsprite 2, 0, 1, 0, $63, $01 + +Unknown_115fdb: ; 115fdb + db 5 + dsprite 0, 1, 1, 0, $66, $60 + dsprite 1, 0, 0, 0, $60, $01 + dsprite 1, 0, 1, 0, $61, $01 + dsprite 2, 0, 0, 0, $62, $01 + dsprite 2, 0, 1, 0, $63, $01 + +Unknown_115ff0: ; 115ff0 + db 5 + dsprite 0, 1, 1, 0, $72, $60 + dsprite 1, 0, 0, 0, $60, $01 + dsprite 1, 0, 1, 0, $61, $01 + dsprite 2, 0, 0, 0, $62, $01 + dsprite 2, 0, 1, 0, $63, $01 + +Unknown_116005: ; 116005 + db 5 + dsprite 0, 1, 1, 0, $73, $60 + dsprite 1, 0, 0, 0, $60, $01 + dsprite 1, 0, 1, 0, $61, $01 + dsprite 2, 0, 0, 0, $62, $01 + dsprite 2, 0, 1, 0, $63, $01 +; 11601a + +GFX_11601a:: ; 11601a +INCBIN "gfx/unknown/11601a.2bpp" + + +Function11615a: ; 11615a + xor a + ld [wc30d], a + ld [$c319], a + ld [wc310], a + ld [wc311], a + ld [wc312], a + ld [wc313], a + ld [wc314], a + ld [wc314 + 1], a + ld [wc314 + 4], a + ld [wc3f6], a + ld [wc3f8], a + ld [wc3f2], a + ld [wc3f4], a + ld a, $24 + ld [wc3f5], a + ld a, $7 + ld [wc3f7], a + ld a, $b0 + ld [wc30e], a + ld [wc3f1], a + ld a, $48 + ld [wc30f], a + ld [wc3f3], a + ret + +; 11619d + +Function11619d: ; 11619d + ld a, [wc30d] + and a + ret z + ld a, [$c319] + cp $2 + jr c, .asm_1161b4 + ld a, $a0 + ld hl, Sprites + ld bc, $0064 + call ByteFill + +.asm_1161b4 + call Function1161b8 + ret + +; 1161b8 + +Function1161b8: ; 1161b8 + ld a, [$c319] + ld e, a + ld d, 0 + ld hl, .Jumptable + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp hl + +; 1161c7 + +.Jumptable: ; 1161c7 + dw Function1161d5 + dw Function116294 + dw Function1162cb + dw Function1162f2 + dw Function1163c0 + dw Function11636e + dw Function116441 +; 1161d5 + +Function1161d5: ; 1161d5 + ld a, [rSVBK] + push af + + ld a, $6 + ld [rSVBK], a + + ld hl, Unknown_117356 + ld de, wDecompressScratch + ld bc, $0300 + call CopyBytes + + di + +.wait_for_vblank +; Wait until a vblank would occur had interrupts not just been disabled. + ld a, [rLY] + cp $91 + jr nz, .wait_for_vblank + + ld a, $d0 + ld [rHDMA1], a + ld a, $0 + ld [rHDMA2], a + ld a, $1c + ld [rHDMA3], a + xor a + ld [rHDMA4], a + ld a, $8 + ld [rHDMA5], a + + ld a, $d0 + ld [rHDMA1], a + ld a, $80 + ld [rHDMA2], a + ld a, $1c + ld [rHDMA3], a + ld a, $80 + ld [rHDMA4], a + ld a, $8 + ld [rHDMA5], a + + ld a, $d1 + ld [rHDMA1], a + ld a, $0 + ld [rHDMA2], a + ld a, $1d + ld [rHDMA3], a + xor a + ld [rHDMA4], a + ld a, $8 + ld [rHDMA5], a + + ld a, $1 + ld [rVBK], a + + ld a, $d1 + ld [rHDMA1], a + ld a, $80 + ld [rHDMA2], a + ld a, $1c + ld [rHDMA3], a + xor a + ld [rHDMA4], a + ld a, $8 + ld [rHDMA5], a + + ld a, $d2 + ld [rHDMA1], a + ld a, $0 + ld [rHDMA2], a + ld a, $1c + ld [rHDMA3], a + ld a, $80 + ld [rHDMA4], a + ld a, $8 + ld [rHDMA5], a + + ld a, $d2 + ld [rHDMA1], a + ld a, $80 + ld [rHDMA2], a + ld a, $1d + ld [rHDMA3], a + xor a + ld [rHDMA4], a + ld a, $8 + ld [rHDMA5], a + + xor a + ld [rVBK], a + + ei + + pop af + ld [rSVBK], a + + callba ReloadMapPart + ld a, $8 + ld [MusicFade], a + ld de, MUSIC_MOBILE_ADAPTER + ld a, e + ld [MusicFadeID], a + ld a, d + ld [MusicFadeID + 1], a + ld a, [$c319] + inc a + ld [$c319], a + ret + +; 11628c + +MenuDataHeader_11628c: ; 11628c + db $40 ; flags + db 6, 0 ; start coords + db 17, 19 ; end coords + dw NULL + db 0 ; default option +; 116294 + +Function116294: ; 116294 + callba Function170d02 + ld a, [$c319] + inc a + ld [$c319], a + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + ld hl, UnknBGPals + 8 * 6 + ld de, $c320 + ld bc, 2 palettes + call CopyBytes + ld hl, Palette_11734e + ld de, UnknBGPals + 8 * 7 + ld bc, 1 palettes + call CopyBytes + call SetPalettes + pop af + ld [rSVBK], a + ld a, $30 + ld [hWY], a + ret + +; 1162cb + +Function1162cb: ; 1162cb + callba Function170cc6 + ld a, [$c319] + inc a + ld [$c319], a + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + ld hl, Palette_11730e + ld de, UnknOBPals + 2 palettes + ld bc, 6 palettes + call CopyBytes + call SetPalettes + pop af + ld [rSVBK], a + ret + +; 1162f2 + +Function1162f2: ; 1162f2 + call Function11659d + call Function116758 + call Function1167a6 + ld a, [wc310] + cp EGG + ret z + sla a + ld c, a + ld b, 0 + ld hl, Unknown_1168c5 + add hl, bc + ld a, [hli] + ld e, a + ld a, [hl] + ld d, a + push de + pop hl + ld a, [wc30e] + ld c, a + ld a, [wc30f] + ld b, a + ld a, [wc314 + 4] + ld e, a + ld a, [hli] + sub e + ld de, Sprites + $24 +.asm_116321 + 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_116321 + call Function116468 + ld a, [wc3f5] + sla a + ld c, a + ld b, 0 + ld hl, Unknown_1168c5 + add hl, bc + ld a, [hli] + ld e, a + ld a, [hl] + ld d, a + push de + pop hl + ld a, [wc3f1] + ld c, a + ld a, [wc3f3] + ld b, a + ld a, [wc3f8] + ld e, a + ld a, [hli] + sub e + ld de, Sprites +.asm_11635a + 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_11635a + ret + +; 11636e + +Function11636e: ; 11636e + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + ld hl, BGPals + ld de, UnknBGPals + ld bc, $0040 + call CopyBytes + pop af + ld [rSVBK], a + call SetPalettes + ld a, [rSVBK] + push af + ld a, $1 + ld [rSVBK], a + ld a, $a0 + ld hl, Sprites + ld bc, 16 * 4 + call ByteFill + ld a, $90 + ld [hWY], a + call UpdateSprites + pop af + ld [rSVBK], a + callba ReloadMapPart + ld a, $8 + ld [MusicFade], a + ld a, [wMapMusic] + ld [MusicFadeID], a + xor a + ld [MusicFadeID + 1], a + xor a + ld [$c319], a + ld [wc30d], a + ret + +; 1163c0 + +Function1163c0: ; 1163c0 + ld a, [rSVBK] + push af + ld a, $1 + ld [rSVBK], a + ld a, $a0 + ld hl, Sprites + ld bc, 16 * 4 + call ByteFill + call DelayFrame + callba Function14146 + ld b, SCGB_MAPPALS + call GetSGBLayout + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + ld hl, $c320 + ld de, wd030 + ld bc, $0010 + call CopyBytes + pop af + ld [rSVBK], a + call SetPalettes + call DelayFrame + ld a, $90 + ld [hWY], a + call UpdateSprites + callba Function14157 + pop af + ld [rSVBK], a + callba ReloadMapPart + ld a, [wLinkMode] + cp $4 + jr z, .asm_11642a + ld a, $8 + ld [MusicFade], a + ld a, [wMapMusic] + ld [MusicFadeID], a + xor a + ld [MusicFadeID + 1], a + jr .asm_116439 + +.asm_11642a + ld a, $8 + ld [MusicFade], a + ld a, $0 + ld [MusicFadeID], a + ld a, $0 + ld [MusicFadeID + 1], a + +.asm_116439 + xor a + ld [$c319], a + ld [wc30d], a + ret + +; 116441 + +Function116441: ; 116441 + callba Function17d405 + ld a, $90 + ld [hWY], a + callba ReloadMapPart + ld a, $8 + ld [MusicFade], a + ld a, [wMapMusic] + ld [MusicFadeID], a + xor a + ld [MusicFadeID + 1], a + xor a + ld [$c319], a + ld [wc30d], a + ret + +; 116468 + +Function116468: ; 116468 + call Function116567 + ld a, [wc314] + cp $d + jr nz, .asm_1164a8 + ld hl, wc30e + ld a, [hl] + cp $50 + jr nc, .asm_116484 + ld a, $50 + sub [hl] + add $50 + ld [wc3f1], a + jr .asm_11648d + +.asm_116484 + sub $50 + ld c, a + ld a, $50 + sub c + ld [wc3f1], a + +.asm_11648d + ld hl, wc30f + ld a, [hl] + cp $60 + jr nc, .asm_11649e + ld a, $60 + sub [hl] + add $60 + ld [wc3f3], a + ret + +.asm_11649e + sub $60 + ld c, a + ld a, $60 + sub c + ld [wc3f3], a + ret + +.asm_1164a8 + ld hl, wc30e + ld a, $b0 + cp [hl] + jr nc, .asm_1164b8 + ld a, [wc3f1] + and a + jr z, .asm_11650b + jr .asm_1164f2 + +.asm_1164b8 + ld a, [wc3f1] + sub [hl] + jr nc, .asm_1164c1 + xor $ff + inc a + +.asm_1164c1 + ld b, a + ld c, $0 + ld a, $5 +.asm_1164c6 + srl b + rr c + dec a + jr nz, .asm_1164c6 + ld a, c + ld [wc3fa], a + ld a, b + ld [wc3f9], a + ld a, [wc3f1] + sub [hl] + jr c, .asm_1164f2 + ld c, $0 + ld a, [wc3fa] + xor $ff + add $1 + rl c + ld [wc3fa], a + ld a, [wc3f9] + xor $ff + add c + ld [wc3f9], a + +.asm_1164f2 + ld a, [wc3f2] + ld l, a + ld a, [wc3f1] + ld h, a + ld a, [wc3fa] + ld e, a + ld a, [wc3f9] + ld d, a + add hl, de + ld a, l + ld [wc3f2], a + ld a, h + ld [wc3f1], a + +.asm_11650b + ld hl, wc30f + ld a, $b0 + cp [hl] + jr c, .asm_11654d + ld a, [wc3f3] + sub [hl] + jr nc, .asm_11651c + xor $ff + inc a + +.asm_11651c + ld b, a + ld c, $0 + ld a, $5 +.asm_116521 + srl b + rr c + dec a + jr nz, .asm_116521 + ld a, c + ld [wc3fc], a + ld a, b + ld [wc3fb], a + ld a, [wc3f3] + sub [hl] + jr c, .asm_11654d + ld c, $0 + ld a, [wc3fc] + xor $ff + add $1 + rl c + ld [wc3fc], a + ld a, [wc3fb] + xor $ff + add c + ld [wc3fb], a + +.asm_11654d + ld a, [wc3f4] + ld l, a + ld a, [wc3f3] + ld h, a + ld a, [wc3fc] + ld e, a + ld a, [wc3fb] + ld d, a + add hl, de + ld a, l + ld [wc3f4], a + ld a, h + ld [wc3f3], a + ret diff --git a/mobile/mobile_46.asm b/mobile/mobile_46.asm new file mode 100755 index 000000000..48fed0f33 --- /dev/null +++ b/mobile/mobile_46.asm @@ -0,0 +1,7986 @@ +SECTION "bank46", ROMX + +Function118000: ; 118000 + ld a, $1 + ld [wcd38], a + jr asm_11800b + +Function118007: ; 118007 + xor a + ld [wcd38], a + +asm_11800b + call BattleTowerRoomMenu_InitRAM + ld a, $18 + ld [wcd33], a + ld a, $19 + ld [wcd34], a + ld a, $4 + ld [wc3f0], a + ld a, [rSVBK] + push af + ld a, $3 + ld [rSVBK], a +.loop + call JoyTextDelay + call Function118473 + ld a, [wcf66] + cp $1b + jr c, .skip + ld a, [wcd34] + ld [wcf66], a + +.skip + call Function1184a5 + call BattleTowerRoomMenu_WriteMessage + callba Function115dd3 + callba Function11619d + call DelayFrame + ld a, [wcf66] + ld hl, wcd33 + cp [hl] + jr nz, .loop + pop af + ld [rSVBK], a + call BattleTowerRoomMenu_Cleanup + call ReturnToMapFromSubmenu +BattleTowerRoomMenu_DoNothing: ; 11805e (46:405e) + ret +; 11805f + +Function11805f: ; 11805f + ld a, $1 + ld [wcd38], a + call BattleTowerRoomMenu_InitRAM + ld a, $18 + ld [wcd33], a + ld a, $19 + ld [wcd34], a + ld a, $4 + ld [wc3f0], a + ld a, [rSVBK] + push af + ld a, $3 + ld [rSVBK], a +.asm_11807d + call JoyTextDelay + call Function118473 + ld a, [wcf66] + cp $1b + jr c, .asm_118090 + ld a, [wcd34] + ld [wcf66], a + +.asm_118090 + call Function11857c + call BattleTowerRoomMenu_WriteMessage + callba Function115dd3 + callba Function11619d + call DelayFrame + ld a, [wcf66] + ld hl, wcd33 + cp [hl] + jr nz, .asm_11807d + pop af + ld [rSVBK], a + call BattleTowerRoomMenu_Cleanup + call ReturnToMapFromSubmenu + ret +; 1180b8 + +Function1180b8: ; 1180b8 + call BattleTowerRoomMenu_InitRAM + ld a, $22 + ld [wcd33], a + ld a, $23 + ld [wcd34], a + ld a, $4 + ld [wc3f0], a + ld a, [rSVBK] + push af + ld a, $3 + ld [rSVBK], a +.asm_1180d1 + call JoyTextDelay + call Function118473 + ld a, [wcf66] + cp $28 + jr c, .asm_1180e4 + ld a, [wcd34] + ld [wcf66], a + +.asm_1180e4 + ld a, [wcf66] + cp $10 + jr c, .asm_1180f2 + cp $16 + jr nc, .asm_1180f2 + call Function11884c + +.asm_1180f2 + call Function1184ec + call BattleTowerRoomMenu_WriteMessage + callba Function115dd3 + callba Function11619d + call DelayFrame + ld a, [wcf66] + ld hl, wcd33 + cp [hl] + jr nz, .asm_1180d1 + pop af + ld [rSVBK], a + call BattleTowerRoomMenu_Cleanup + call ReturnToMapFromSubmenu + ret +; 11811a + +Function11811a: ; 11811a + ld a, 1 + ld [wcd38], a + jr Function118125 + +_BattleTowerRoomMenu: ; 118121 + xor a + ld [wcd38], a +Function118125: ; 118125 + call BattleTowerRoomMenu_InitRAM + ld a, $3 + ld [wcd33], a + ld a, $d + ld [wcd34], a + ld a, $4 + ld [wc3f0], a + ld a, [rSVBK] + push af + ld a, $3 + ld [rSVBK], a +.loop + call JoyTextDelay + call Function118473 + ld a, [wcf66] + cp $f + jr c, .skip + ld a, [wcd34] + ld [wcf66], a +.skip + call BattleTowerRoomMenu_Jumptable + call BattleTowerRoomMenu_WriteMessage + callba Function115dd3 + callba Function11619d + call DelayFrame + ld a, [wcf66] + ld hl, wcd33 + cp [hl] + jr nz, .loop + xor a + ld [w3_d000], a + pop af + ld [rSVBK], a + call BattleTowerRoomMenu_Cleanup + call Function118180 + call ReturnToMapFromSubmenu + ret +; 118180 + +Function118180: ; 118180 + ld a, [ScriptVar] + and a + ret nz + ld a, [wcd38] + and a + ret z + ld a, $5 + call GetSRAMBank + ld hl, wcd69 + ld de, $a89c + ld bc, $0016 + call CopyBytes + + ld a, [rSVBK] + push af + ld a, $3 + ld [rSVBK], a + + ld de, w3_d202 + ld c, $96 + callba CheckStringForErrors_IgnoreTerminator + jr c, .return_d3 + + ld de, w3_d202 + lb bc, 1, $96 + callba CheckStringContainsLessThanBNextCharacters + jr c, .return_d3 + + ld hl, w3_d202 + ld de, $a8b2 + ld bc, $0096 + call CopyBytes +.reset_banks + pop af + ld [rSVBK], a + call CloseSRAM + ret + +.return_d3 + ld a, $d3 + ld [wc300], a + ld [ScriptVar], a + jr .reset_banks +; 1181da + +Function1181da: ; 1181da + call BattleTowerRoomMenu_InitRAM + ld a, $2 + ld [wcd38], a + ld a, $21 + ld [wcd33], a + ld a, $22 + ld [wcd34], a + ld a, $4 + ld [wc3f0], a + ld a, [rSVBK] + push af + ld a, $3 + ld [rSVBK], a +.asm_1181f8 + call JoyTextDelay + call Function118473 + ld a, [wcf66] + cp $28 + jr c, .asm_11820b + ld a, [wcd34] + ld [wcf66], a + +.asm_11820b + call Function1185c3 + call BattleTowerRoomMenu_WriteMessage + callba Function115dd3 + callba Function11619d + call DelayFrame + ld a, [wcf66] + ld hl, wcd33 + cp [hl] + jr nz, .asm_1181f8 + pop af + ld [rSVBK], a + call BattleTowerRoomMenu_Cleanup + call ReturnToMapFromSubmenu + ret +; 118233 + +Function118233: ; 118233 + call BattleTowerRoomMenu_InitRAM + ld a, $1b + ld [wcd33], a + ld a, $1c + ld [wcd34], a + ld a, $6 + ld [wc3f0], a + ld a, [rSVBK] + push af + ld a, $3 + ld [rSVBK], a +.asm_11824c + call JoyTextDelay + call Function118473 + ld a, [wcf66] + cp $1e + jr c, .asm_11825f + ld a, [wcd34] + ld [wcf66], a + +.asm_11825f + call Function118624 + call BattleTowerRoomMenu_WriteMessage + callba Function115dd3 + callba Function11619d + call DelayFrame + ld a, [wcf66] + ld hl, wcd33 + cp [hl] + jr nz, .asm_11824c + pop af + ld [rSVBK], a + call BattleTowerRoomMenu_Cleanup + ret +; 118284 + +Function118284: ; 118284 + call BattleTowerRoomMenu_InitRAM + ld a, $19 + ld [wcd33], a + ld a, $1e + ld [wcd34], a + ld a, $5 + ld [wc3f0], a + ld a, [rSVBK] + push af + ld a, $3 + ld [rSVBK], a +.asm_11829d + call JoyTextDelay + call Function118473 + ld a, [wcf66] + cp $20 + jr c, .asm_1182b0 + ld a, [wcd34] + ld [wcf66], a +.asm_1182b0 + call Function1186f5 + call BattleTowerRoomMenu_WriteMessage + callba Function115dd3 + callba Function11619d + call DelayFrame + ld a, [wcf66] + ld hl, wcd33 + cp [hl] + jr nz, .asm_11829d + pop af + ld [rSVBK], a + call BattleTowerRoomMenu_Cleanup + ret +; 1182d5 (46:42d5) + + +Function1182d5: ; 1182d5 + call BattleTowerRoomMenu_InitRAM + ld a, $18 + ld [wcd33], a + ld a, $19 + ld [wcd34], a + ld a, $4 + ld [wc3f0], a + ld a, [rSVBK] + push af + ld a, $3 + ld [rSVBK], a +.asm_1182ee + call JoyTextDelay + call Function118473 + ld a, [wcf66] + cp $1b + jr c, .asm_118301 + ld a, [wcd34] + ld [wcf66], a + +.asm_118301 + call Function118746 + call BattleTowerRoomMenu_WriteMessage + callba Function115dd3 + callba Function11619d + call DelayFrame + ld a, [wcf66] + ld hl, wcd33 + cp [hl] + jr nz, .asm_1182ee + pop af + ld [rSVBK], a + call BattleTowerRoomMenu_Cleanup + call ReturnToMapFromSubmenu + ret +; 118329 + +Function118329: ; 118329 + call BattleTowerRoomMenu_InitRAM + ld a, $15 + ld [wcd33], a + ld a, $16 + ld [wcd34], a + ld a, $6 + ld [wc3f0], a + ld a, [rSVBK] + push af + ld a, $3 + ld [rSVBK], a +.asm_118342 + call JoyTextDelay + call Function118473 + ld a, [wcf66] + cp $18 + jr c, .asm_118355 + ld a, [wcd34] + ld [wcf66], a + +.asm_118355 + call Function118671 + call BattleTowerRoomMenu_WriteMessage + callba Function115dd3 + callba Function11619d + call DelayFrame + ld a, [wcf66] + ld hl, wcd33 + cp [hl] + jr nz, .asm_118342 + pop af + ld [rSVBK], a + call BattleTowerRoomMenu_Cleanup + ret +; 11837a + +Function11837a: ; 11837a + call BattleTowerRoomMenu_InitRAM + ld a, $16 + ld [wcd33], a + ld a, $17 + ld [wcd34], a + ld a, $6 + ld [wc3f0], a + ld a, [rSVBK] + push af + ld a, $3 + ld [rSVBK], a +.asm_118393 + call JoyTextDelay + call Function118473 + ld a, [wcf66] + cp $19 + jr c, .asm_1183a6 + ld a, [wcd34] + ld [wcf66], a + +.asm_1183a6 + call Function1186b2 + call BattleTowerRoomMenu_WriteMessage + callba Function115dd3 + callba Function11619d + call DelayFrame + ld a, [wcf66] + ld hl, wcd33 + cp [hl] + jr nz, .asm_118393 + pop af + ld [rSVBK], a + call BattleTowerRoomMenu_Cleanup + ret +; 1183cb + +BattleTowerRoomMenu_InitRAM: ; 1183cb + di + ld a, [rIE] + ld [wcd32], a + call DoubleSpeed + xor a + ld [rIF], a + ld [wc300], a + ld [wc301], a + ld [wc302], a + ld [wcd80], a + ld [wcd65], a + ld [wcd66], a + ld [wcd67], a + ld [wcd68], a + ld [$c31a], a + ld [wcd89], a + ld [wcd8a], a + ld [wcd8b], a + ld [wc3ec], a + ld [wc3ed], a + ld [wc3ee], a + ld [wc3ef], a + ld hl, VramState + ld a, [hl] + ld [wcd7f], a + set 1, [hl] + ld a, $f + ld [rIE], a + ld a, $1 + ld [hMobileReceive], a + ld [hMobile], a + ei + callba MobileFunc_106462 + callba Function106464 + callba Function115d99 + callba Function11615a + ld a, $5 + call GetSRAMBank + xor a + ld [$bfff], a + call CloseSRAM + ret +; 118440 + +Function118440: ; 118440 + push af + ld a, $5 + call GetSRAMBank + ld a, [$bfff] + inc a + ld [$bfff], a + call CloseSRAM + pop af + ret +; 118452 + +BattleTowerRoomMenu_Cleanup: ; 118452 + di + xor a + ld [hMobileReceive], a + ld [hMobile], a + ld [hVBlank], a + call NormalSpeed + xor a + ld [rIF], a + ld a, [wcd32] + ld [rIE], a + ei + ld a, [wcd7f] + ld [VramState], a + ld a, [wc300] + ld [ScriptVar], a + ret +; 118473 + +Function118473: ; 118473 + ld a, [wcd65] + and a + ret z + ld a, [wcd66] + inc a + ld [wcd66], a + cp 60 + ret nz + xor a + ld [wcd66], a + ld a, [wcd67] + inc a + ld [wcd67], a + cp 60 + ret nz + ld a, [wcd68] + inc a + ld [wcd68], a + cp 99 + jr z, .ninety_nine + xor a + ld [wcd67], a + ret + +.ninety_nine + xor a + ld [wcd65], a + ret +; 1184a5 + +Function1184a5: ; 1184a5 + jumptable .Jumptable, wcf66 +; 1184b4 + +.Jumptable: ; 1184b4 + dw Function11886e + dw Function118880 + dw Function11878d + dw Function1188b0 + dw Function11878d + dw Function1188b8 + dw Function11878d + dw Function1188c0 + dw Function11878d + dw Function1188c8 + dw Function11878d + dw Function118903 + dw Function118a8f + dw Function11878d + dw Function118d80 + dw Function118d9b + dw Function11878d + dw Function118ded + dw Function118e6d + dw Function11878d + dw Function11984e + dw Function118e76 + dw Function118e7e + dw Function11878d + dw BattleTowerRoomMenu_DoNothing + dw Function118e76 + dw BattleTowerRoomMenu_CallRoomMenu2 + dw Function118e76 +; 1184ec + +Function1184ec: ; 1184ec + jumptable .Jumptable, wcf66 +; 1184fb + +.Jumptable: ; 1184fb + dw Function11886e + dw Function118880 + dw Function11878d + dw Function1188b0 + dw Function11878d + dw Function1188b8 + dw Function11878d + dw Function1188c0 + dw Function11878d + dw Function1188c8 + dw Function11878d + dw Function118903 + dw Function119954 + dw Function11878d + dw Function119973 + dw Function11878d + dw Function119987 + dw Function11878d + dw Function1199b4 + dw Function1199ca + dw Function11878d + dw Function1199e2 + dw Function119b0d + dw Function11878d + dw Function119b6b + dw Function119b3b + dw Function11878d + dw Function119b52 + dw Function11878d + dw Function118e6d + dw Function11878d + dw Function118e76 + dw Function118e7e + dw Function11878d + dw BattleTowerRoomMenu_DoNothing + dw Function118e76 + dw BattleTowerRoomMenu_CallRoomMenu2 + dw Function119b45 + dw Function11878d + dw Function119ac9 + dw Function118e76 +; 11854d + +BattleTowerRoomMenu_Jumptable: ; 11854d + jumptable .Jumptable, wcf66 +; 11855c + +.Jumptable: ; 11855c + dw BattleTowerRoomMenu_PickLevelMessage + dw BattleTowerRoomMenu_PlacePickLevelMenu + dw BattleTowerRoomMenu_UpdatePickLevelMenu + dw BattleTowerRoomMenu_DoNothing + dw BattleTowerRoomMenu_PartyMonTopsThisLevelMessage + dw BattleTowerRoomMenu_WaitForMessage + dw BattleTowerRoomMenu_DelayRestartMenu + dw BattleTowerRoomMenu_QuitMessage + dw BattleTowerRoomMenu_PlaceYesNoMenu + dw BattleTowerRoomMenu_UpdateYesNoMenu + dw BattleTowerRoomMenu_UberRestrictionMessage + dw BattleTowerRoomMenu_WaitForMessage + dw BattleTowerRoomMenu_DelayRestartMenu + dw Function118e76 ; mobile + dw BattleTowerRoomMenu_CallRoomMenu2 ; mobile + dw Function118e76 ; mobile +; 11857c + +Function11857c: ; 11857c + jumptable .Jumptable, wcf66 +; 11858b + +.Jumptable: ; 11858b + dw Function11886e + dw Function118880 + dw Function11878d + dw Function1188b0 + dw Function11878d + dw Function1188b8 + dw Function11878d + dw Function1188c0 + dw Function11878d + dw Function1188c8 + dw Function11878d + dw Function118903 + dw Function118a7a + dw Function11878d + dw Function11891c + dw Function1198ee + dw Function1198f7 + dw Function11878d + dw Function119937 + dw Function118e6d + dw Function11878d + dw Function118e76 + dw Function118e7e + dw Function11878d + dw BattleTowerRoomMenu_DoNothing + dw Function118e76 + dw BattleTowerRoomMenu_CallRoomMenu2 + dw Function118e76 +; 1185c3 + +Function1185c3: ; 1185c3 + jumptable .Jumptable, wcf66 +; 1185d2 + +.Jumptable: ; 1185d2 + dw Function11886e + dw Function118880 + dw Function11878d + dw Function1188b0 + dw Function11878d + dw Function1188b8 + dw Function11878d + dw Function1188c0 + dw Function11878d + dw Function1188c8 + dw Function11878d + dw Function118903 + dw Function118aa4 + dw Function11878d + dw Function118e92 + dw Function11878d + dw Function118eb0 + dw Function118ec6 + dw Function118f0d + dw Function118f14 + dw Function118f5e + dw Function11878d + dw Function118fc0 + dw Function11878d + dw Function119054 + dw Function1190d0 + dw Function11878d + dw Function1190ec + dw Function118e6d + dw Function11878d + dw Function118e76 + dw Function118e7e + dw Function11878d + dw BattleTowerRoomMenu_DoNothing + dw Function118e76 + dw BattleTowerRoomMenu_CallRoomMenu2 + dw BattleTowerRoomMenu_QuitMessage + dw BattleTowerRoomMenu_PlaceYesNoMenu + dw BattleTowerRoomMenu_UpdateYesNoMenu + dw Function11914e + dw Function118e76 +; 118624 + +Function118624: ; 118624 + jumptable .Jumptable, wcf66 +; 118633 + +.Jumptable: ; 118633 + dw Function118866 + dw Function118880 + dw Function11878d + dw Function1188b0 + dw Function11878d + dw Function1188b8 + dw Function11878d + dw Function1188c0 + dw Function11878d + dw Function1188c8 + dw Function11878d + dw Function118903 + dw Function118aa4 + dw Function11878d + dw Function118e92 + dw Function11878d + dw Function11915d + dw Function118f68 + dw Function11878d + dw Function119009 + dw Function11878d + dw Function119054 + dw Function118e6d + dw Function11878d + dw Function118e76 + dw Function118e7e + dw Function11878d + dw BattleTowerRoomMenu_DoNothing + dw Function118e76 + dw BattleTowerRoomMenu_CallRoomMenu2 + dw Function118e76 +; 118671 + +Function118671: ; 118671 + jumptable .Jumptable, wcf66 +; 118680 + +.Jumptable: ; 118680 + dw Function118866 + dw Function118880 + dw Function11878d + dw Function1188b0 + dw Function11878d + dw Function1188b8 + dw Function11878d + dw Function1188c0 + dw Function11878d + dw Function1188c8 + dw Function11878d + dw Function118903 + dw Function119380 + dw Function119388 + dw Function1193a0 + dw Function11878d + dw Function118e6d + dw Function11878d + dw Function118e76 + dw Function118e7e + dw Function11878d + dw BattleTowerRoomMenu_DoNothing + dw Function118e76 + dw BattleTowerRoomMenu_CallRoomMenu2 + dw Function118e76 +; 1186b2 + +Function1186b2: ; 1186b2 + jumptable .Jumptable, wcf66 +; 1186c1 + +.Jumptable: ; 1186c1 + dw Function118866 + dw Function118880 + dw Function11878d + dw Function1188b0 + dw Function11878d + dw Function1188b8 + dw Function11878d + dw Function1188c0 + dw Function11878d + dw Function1188c8 + dw Function11878d + dw Function118903 + dw Function119380 + dw Function1193e3 + dw Function1193fb + dw Function11878d + dw Function119413 + dw Function118e6d + dw Function11878d + dw Function118e76 + dw Function118e7e + dw Function11878d + dw BattleTowerRoomMenu_DoNothing + dw Function118e76 + dw BattleTowerRoomMenu_CallRoomMenu2 + dw Function118e76 +; 1186f5 + +Function1186f5: ; 1186f5 (46:46f5) + jumptable .Jumptable, wcf66 +; 118704 (46:4704) + +.Jumptable: ; 118704 (46:4704) + dw Function11886a + dw Function118880 + dw Function11878d + dw Function1188b0 + dw Function11878d + dw Function1188b8 + dw Function11878d + dw Function1188c0 + dw Function11878d + dw Function1188c8 + dw Function11878d + dw Function118903 + dw Function118abc + dw Function11878d + dw Function119451 + dw Function1195f8 + dw Function119612 + dw Function119629 + dw Function119648 + dw Function11878d + dw Function118e6d + dw Function11878d + dw Function118e76 + dw Function118e7e + dw Function11878d + dw BattleTowerRoomMenu_DoNothing + dw Function11967d + dw Function119685 + dw Function119665 + dw Function11966d + dw Function118e76 + dw BattleTowerRoomMenu_CallRoomMenu2 + dw Function118e76 +; 118746 (46:4746) + +Function118746: ; 118746 + jumptable .Jumptable, wcf66 +; 118755 + +.Jumptable: ; 118755 + dw Function11886e + dw Function118880 + dw Function11878d + dw Function1188b0 + dw Function11878d + dw Function1188b8 + dw Function11878d + dw Function1188c0 + dw Function11878d + dw Function1188c8 + dw Function11878d + dw Function118903 + dw Function118ad0 + dw Function11878d + dw Function1196f2 + dw Function1197c9 + dw Function1197dc + dw Function11878d + dw Function118e6d + dw Function11878d + dw Function119800 + dw Function118e76 + dw Function118e7e + dw Function11878d + dw BattleTowerRoomMenu_DoNothing + dw Function118e76 + dw BattleTowerRoomMenu_CallRoomMenu2 + dw Function118e76 +; 11878d + +Function11878d: ; 11878d (46:478d) + ld a, [wc821] + bit 1, a + jr nz, .asm_1187af + bit 2, a + jr nz, .asm_1187d1 + bit 0, a + jr nz, .asm_1187aa + ld a, [wcd89] + and $1 + jr z, .asm_1187a7 + ld a, $3 + ld [rSVBK], a +.asm_1187a7 + jp BattleTowerRoomMenu_IncrementJumptable +.asm_1187aa + call Function118821 + ret c + ret +.asm_1187af + ld a, $0 + call Function3e32 + ld [wc300], a + ld a, l + ld [wc301], a + ld a, h + ld [wc302], a + ld a, $a + call Function3e32 + ld a, [wc3f0] + ld [$c319], a + ld a, [wcd34] + ld [wcf66], a + ret +.asm_1187d1 + ld hl, wcd89 + bit 0, [hl] + jr nz, .asm_118803 + set 0, [hl] + ld a, $6 + ld [rSVBK], a + ld de, w3_d000 + ld bc, $1000 + ld a, [hl] + sla a + jr c, .asm_1187f9 + sla a + jr c, .asm_1187fd + sla a + jr c, .asm_1187f5 + ld a, $24 + jr .asm_1187ff +.asm_1187f5 + ld a, $28 + jr .asm_1187ff +.asm_1187f9 + ld a, $2a + jr .asm_1187ff +.asm_1187fd + ld a, $2c +.asm_1187ff + call Function3e32 + ret +.asm_118803 + ld a, $d3 + +Function118805: ; 118805 (46:4805) + ld [wc300], a + xor a + ld [wc301], a + ld [wc302], a + ld a, $a + call Function3e32 + ld a, [wc3f0] + ld [$c319], a + ld a, [wcd34] + ld [wcf66], a + ret + +Function118821: ; 118821 (46:4821) + ld a, [$c319] + cp $3 + jr c, .asm_11884a + cp $4 + jr z, .asm_11884a + ld a, [hJoyDown] + cp $5 + jr nz, .asm_11884a + ld a, $a + call Function3e32 + ld a, $a + ld [wc300], a + ld a, [wc3f0] + ld [$c319], a + ld a, [wcd34] + ld [wcf66], a + scf + ret +.asm_11884a + and a + ret +; 11884c (46:484c) + +Function11884c: ; 11884c + ld a, [hJoyDown] + cp $5 + jr nz, .asm_118864 + ld a, $a + call Function3e32 + ld a, $a + ld [wc300], a + ld a, [wcd34] + ld [wcf66], a + scf + ret + +.asm_118864 + and a + ret +; 118866 + +Function118866: + ld a, 2 + jr asm_11886f + +Function11886a: ; 11886a (46:486a) + ld a, 1 + jr asm_11886f +; 11886e (46:486e) + +Function11886e: + xor a + +asm_11886f + ld [BGMapPalBuffer], a + ld a, $0 + ld [wcd3c], a + call BattleTowerRoomMenu_IncrementJumptable + ld a, [wcd33] + ld [wMobileInactivityTimerSeconds], a + +Function118880: ; 118880 (46:4880) + call BattleTowerRoomMenu2 + ret c + xor a + ld [wcf64], a + ld [wc807], a + ld de, wcd81 + ld hl, $46 + ld a, $2 + jp Function119e2b +; 118896 (46:4896) + +Function118896: ; 118896 + ld a, [wc821] + bit 1, a + jr nz, .asm_1188a5 + bit 2, a + jr nz, .asm_1188a5 + bit 0, a + jr z, .asm_1188aa + +.asm_1188a5 + ld a, $34 + jp Function119e2b + +.asm_1188aa + call BattleTowerRoomMenu_IncrementJumptable + jp BattleTowerRoomMenu_IncrementJumptable +; 1188b0 + +Function1188b0: ; 1188b0 (46:48b0) + ld de, $c346 + ld a, $c + jp Function119e2b + +Function1188b8: ; 1188b8 (46:48b8) + ld de, wc3ac + ld a, $e + jp Function119e2b + +Function1188c0: ; 1188c0 (46:48c0) + ld de, wc3cd + ld a, $10 + jp Function119e2b + +Function1188c8: ; 1188c8 (46:48c8) + ld a, $1 + ld [wcd65], a + call Function1188e7 + ld hl, $c708 +.asm_1188d3 + ld a, [de] + inc de + ld [hli], a + and a + jr nz, .asm_1188d3 + call Function119eb4 + call Function119ec2 + ld hl, $c708 + ld a, $6 + jp Function119e2b + +Function1188e7: ; 1188e7 (46:48e7) + ld de, $c346 + ld a, $5 + call GetSRAMBank + ld a, [$aa4a] + call CloseSRAM + and a + ret z + sla a + ld c, a +.asm_1188fa + ld a, [de] + inc de + and a + jr nz, .asm_1188fa + dec c + jr nz, .asm_1188fa + ret + +Function118903: ; 118903 (46:4903) + ld a, [wc3f0] + ld [$c319], a + ld c, $1 + callba Function115e18 + ld a, $8 + ld [wcd3c], a + call BattleTowerRoomMenu2 + jp BattleTowerRoomMenu_IncrementJumptable + + +Function11891c: ; 11891c + call Function118b42 + jp BattleTowerRoomMenu_IncrementJumptable + + +BattleTowerRoomMenu_PickLevelMessage: ; 118922 + ld a, [wcd38] + and a + jr nz, .asm_11892d + ld hl, Text_WhatLevelDoYouWantToChallenge + jr .asm_118930 + +.asm_11892d + ld hl, Text_CheckBattleRoomListByMaxLevel + +.asm_118930 + call BattleTowerRoomMenu_SetMessage + call BattleTowerRoomMenu_IncrementJumptable + +BattleTowerRoomMenu_PlacePickLevelMenu: + ld a, [$c31a] + and a + ret nz + ld hl, MenuDataHeader_119cf7 + call LoadMenuDataHeader + call MenuBox + call MenuBoxCoord2Tile + call ApplyTilemap + hlcoord 16, 8, AttrMap + ld a, $40 + or [hl] + ld [hl], a + call WaitBGMap2 + ld a, $1 + ld [wcd4f], a + ld a, $1 + ld [rSVBK], a + ld a, [StatusFlags] + bit 6, a ; Hall Of Fame + jr nz, .asm_11896b + ld hl, Strings_Ll0ToL40 ; Address to list of strings with the choosable levels + ld a, 5 ; 4 levels to choose from, including 'Cancel'-option + jr .asm_118970 + +.asm_11896b + ld hl, Strings_L10ToL100 ; Address to list of strings with the choosable levels + ld a, 11 ; 10 levels to choose from, including 'Cancel'-option + +.asm_118970 + ld [wcd4a], a + ld a, l + ld [wcd4b], a + ld a, h + ld [wcd4c], a + ld a, $3 + ld [rSVBK], a + call BattleTowerRoomMenu_IncrementJumptable + +BattleTowerRoomMenu_UpdatePickLevelMenu: + hlcoord 13, 8 + ld de, String_119d07 + call PlaceString + hlcoord 13, 10 + ld de, String_119d07 + call PlaceString + ld a, [wcd4b] + ld l, a + ld a, [wcd4c] + ld h, a + ld d, $0 + ld a, [wcd4f] + dec a + rlca + rlca + rlca + ld e, a + add hl, de + ld a, l + ld e, a + ld a, h + ld d, a + ld a, [rSVBK] + push af + ld a, $1 + ld [rSVBK], a + ld bc, StringBuffer3 +.asm_1189b5 + ld a, [hli] + cp $50 + jr z, .asm_1189c4 + cp $7f + jr z, .asm_1189c2 + ld [bc], a + inc bc + jr .asm_1189b5 + +.asm_1189c2 + ld a, $50 + +.asm_1189c4 + ld [bc], a + pop af + ld [rSVBK], a + hlcoord 13, 9 + call PlaceString + ld hl, hJoyPressed + ld a, [hl] + and B_BUTTON + jr nz, .b_button + ld a, [hl] + and A_BUTTON + jr nz, .a_button + ld a, [hl] + and D_DOWN + jr nz, .d_down + ld a, [hl] + and D_UP + jr nz, .d_up +.asm_1189e5 + ret + +.d_down + ld hl, wcd4f + dec [hl] + jr nz, .asm_1189e5 + ld a, [wcd4a] + ld [hl], a + jr .asm_1189e5 + +.d_up + ld a, [wcd4a] + ld hl, wcd4f + inc [hl] + cp [hl] + jr nc, .asm_1189e5 + ld a, $1 + ld [hl], a + jr .asm_1189e5 + +.a_button + call PlayClickSFX + ld a, [wcd4f] + ld hl, wcd4a + cp [hl] + jr z, .asm_118a3c + dec a + and $fe + srl a + ld [wcf65], a + ld a, [rSVBK] + push af + ld a, $1 + ld [rSVBK], a + call CloseWindow + pop af + ld [rSVBK], a + ld a, [wcd38] + and a + jr nz, .asm_118a30 + call BattleTower_LevelCheck + ret c + call BattleTower_UbersCheck + ret c + +.asm_118a30 + ld a, [wcd4f] + ld [w3_d800], a + jp BattleTowerRoomMenu_IncrementJumptable + +.b_button + call PlayClickSFX + +.asm_118a3c + ld a, [rSVBK] + push af + ld a, $1 + ld [rSVBK], a + call CloseWindow + pop af + ld [rSVBK], a + ld a, $7 + ld [wcf66], a + ld a, $0 + ld [wMobileInactivityTimerFrames], a + ret + + + +Function118a54: ; 118a54 + ld a, [wcd55] + ld l, a + ld a, [wcd56] + ld h, a + ld de, wc3ec + ld bc, $0004 + jp Function118ae4 +; 118a65 + +Function118a65: ; 118a65 + ld hl, BattleDownloadURL + ld de, wcc60 + ld bc, $80 + call CopyBytes + ld de, w3_d000 + ld bc, $1000 + jp Function118b10 +; 118a7a + +Function118a7a: ; 118a7a + ld hl, BattleDownloadURL + ld de, wcc60 + ld bc, $80 + call CopyBytes + ld de, w3_d000 + ld bc, $1000 + jp Function118b10 +; 118a8f + +Function118a8f: ; 118a8f + ld hl, ExchangeDownloadURL + ld de, wcc60 + ld bc, $80 + call CopyBytes + ld de, w3_d000 + ld bc, $1000 + jp Function118b10 +; 118aa4 + +Function118aa4: ; 118aa4 + ld hl, NewsDownloadURL + ld de, wcc60 + ld bc, $80 + call CopyBytes + ld a, $5 + ld [rSVBK], a + ld de, w3_d100 + ld bc, $e00 + jr Function118b10 +; 118abc + +Function118abc: ; 118abc (46:4abc) + ld hl, MenuDownloadURL + ld de, wcc60 + ld bc, $80 + call CopyBytes + ld de, w3_d000 + ld bc, $1000 + jr Function118b10 +; 118ad0 (46:4ad0) + +Function118ad0: + ld hl, IndexDownloadURL + ld de, wcc60 + ld bc, $80 + call CopyBytes + ld de, w3_d000 + ld bc, $1000 + jr Function118b10 + +Function118ae4: + push bc + push de + push hl + ld a, $8 + ld [wcd3c], a + call BattleTowerRoomMenu2 + pop hl + ld c, $0 + ld de, wcc60 +.asm_118af5 + ld a, [hli] + ld [de], a + inc de + and a + jr z, .asm_118b06 + inc c + ld a, c + cp $a6 + jr c, .asm_118af5 + ld a, $da + jp Function118805 + +.asm_118b06 + call Function118b24 + pop de + pop bc + ld a, $2a + jp Function119e2b +; 118b10 + +Function118b10: + push de + push bc + ld a, $8 + ld [wcd3c], a + call BattleTowerRoomMenu2 + call Function118b24 + pop bc + pop de + ld a, $2a + jp Function119e2b + +Function118b24: ; 118b24 (46:4b24) + ld hl, $c346 + ld a, $8 + ld [hli], a + ld a, $c7 + ld [hli], a + ld a, $60 + ld [hli], a + ld a, $cc + ld [hli], a + call Function119eb4 + call Function119ec2 + ld a, $80 + ld [wcd89], a + ld hl, $c346 + ret +; 118b42 (46:4b42) + +Function118b42: ; 118b42 + ld hl, wd002 + ld a, l + ld [wcd51], a + ld a, h + ld [wcd52], a + call Function118b8c + ld a, l + ld [wcd55], a + ld [wcd59], a + ld a, h + ld [wcd56], a + ld [wcd5a], a + call Function118b8c + ld a, l + ld [wcd53], a + ld [wcd5d], a + ld a, h + ld [wcd54], a + ld [wcd5e], a + call Function118b8c + ld a, l + ld [wcd57], a + ld [wcd5b], a + ld a, h + ld [wcd58], a + ld [wcd5c], a + call Function118b8c + ld a, l + ld [wcd5f], a + ld a, h + ld [wcd60], a + ret +; 118b8c + +Function118b8c: ; 118b8c +.asm_118b8c + call Function118b9a + ret nc + ld a, [hli] + cp $d + jr nz, .asm_118b8c + dec hl + xor a + ld [hli], a + ld [hli], a + ret +; 118b9a + +Function118b9a: ; 118b9a + ld a, h + cp $e0 + ret c + ld a, $d3 + call Function118805 + and a + ret +; 118ba5 + + + charmap " ", $20 ; revert to ascii + +ExchangeDownloadURL: ; 0x118ba5 + db "http://gameboy.datacenter.ne.jp/cgb/download?name=/01/CGB-BXTJ/exchange/index.txt", 0 + +BattleDownloadURL: ; 0x118bf7 + db "http://gameboy.datacenter.ne.jp/cgb/download?name=/01/CGB-BXTJ/battle/index.txt", 0 + +NewsDownloadURL: ; 0x118c47 + db "http://gameboy.datacenter.ne.jp/cgb/download?name=/01/CGB-BXTJ/news/index.txt", 0 + +MenuDownloadURL: ; 0x118c95 + db "http://gameboy.datacenter.ne.jp/cgb/download?name=/01/CGB-BXTJ/POKESTA/menu.cgb", 0 + +IndexDownloadURL: ; 0x118ce5 + db "http://gameboy.datacenter.ne.jp/cgb/download?name=/01/CGB-BXTJ/tamago/index.txt", 0 + + +Function118d35: ; 118d35 +; unreferenced + ld hl, $d200 + ld a, [wcd38] + and a + jr nz, .asm_118d6e + ld a, [hli] + cp $94 + jr nz, .asm_118d7b + ld a, [hl] + cp $5 + jr nz, .asm_118d7b + ld a, [wcd4f] + sla a + ld b, a + sla a + sla a + add b + ld b, a + ld a, $5 + call GetSRAMBank + ld a, b + ld [$b2fb], a + call CloseSRAM + callba Function170be4 + callba Function1700c4 + jr .asm_118d78 + +.asm_118d6e + ld a, [hli] + cp $96 + jr nz, .asm_118d7b + ld a, [hl] + cp $0 + jr nz, .asm_118d7b + +.asm_118d78 + jp BattleTowerRoomMenu_IncrementJumptable + +.asm_118d7b + ld a, $d3 + jp Function118805 +; 118d80 + +Function118d80: ; 118d80 + call Function118e06 + ld a, [wcd38] + and a + jr z, .asm_118d8e + call BattleTowerRoomMenu_IncrementJumptable + jr asm_118d9f + +.asm_118d8e + ld a, $9 + ld [wcd3c], a + ld a, $12 + ld [wMobileInactivityTimerSeconds], a + call BattleTowerRoomMenu_IncrementJumptable + +Function118d9b: + call BattleTowerRoomMenu2 + ret c + +asm_118d9f + ld hl, $c608 + call Function119940 + ld a, [wcd38] + and a + jr nz, .asm_118db2 + ld a, $8f + ld [wcd3b], a + jr .asm_118db7 + +.asm_118db2 + ld a, $26 + ld [wcd3b], a + +.asm_118db7 + ld hl, w3_d800 + ld a, $8 + ld [hli], a + ld a, $c6 + ld [hli], a + ld a, [wcd3b] + ld [hli], a + xor a + ld [hli], a + ld a, $8 + ld [hli], a + ld a, $c7 + ld [hli], a + ld a, [wcd39] + ld [hli], a + ld a, [wcd3a] + ld [hli], a + call Function119eb4 + call Function119ec2 + ld a, $40 + ld [wcd89], a + ld hl, w3_d800 + ld de, $de00 + ld bc, $0200 + ld a, $2c + jp Function119e2b +; 118ded + +Function118ded: ; 118ded + ld a, [wcd38] + and a + jr z, .asm_118e03 + ld a, [rSVBK] + push af + ld a, $1 + ld [rSVBK], a + callba Function11b93b + pop af + ld [rSVBK], a + +.asm_118e03 + jp BattleTowerRoomMenu_IncrementJumptable +; 118e06 + +Function118e06: ; 118e06 + ld hl, wd002 + ld a, [wcd38] + and a + jr z, .asm_118e1d +.asm_118e0f + call Function118b9a + ret nc + ld a, [hli] + cp $d + jr nz, .asm_118e0f + ld a, [hli] + cp $a + jr nz, .asm_118e0f + +.asm_118e1d + ld a, l + ld [wcd39], a + ld a, h + ld [wcd3a], a +.asm_118e25 + call Function118b9a + ret nc + ld a, [hli] + cp $d + jr nz, .asm_118e25 + ld a, [hli] + cp $a + jr nz, .asm_118e25 + dec hl + xor a + ld [hld], a + ld [hl], a + jr asm_118e3e + +Function118e39: ; 118e39 (46:4e39) +.asm_118e39 + ld a, [hli] + and a + jr nz, .asm_118e39 + dec hl +asm_118e3e +.asm_118e3e + ld a, [hld] + cp $2f + jr nz, .asm_118e3e + inc hl + inc hl + ld de, wcd85 + ld c, $4 +.asm_118e4a + ld a, [hli] + cp $2e + jr z, .asm_118e63 + cp $30 + jr c, .asm_118e67 + cp $3a + jr nc, .asm_118e67 + sub $30 + add $f6 + ld [de], a + inc de + dec c + jr nz, .asm_118e4a + ld de, wcd85 +.asm_118e63 + ld a, $50 + ld [de], a + ret +.asm_118e67 + ld a, $f3 + ld [de], a + inc de + jr .asm_118e63 + +Function118e6d: ; 118e6d (46:4e6d) + xor a + ld [wcd65], a + ld a, $a + jp Function119e2b + +Function118e76: ; 118e76 (46:4e76) + ; Call $c in BattleTowerRoomMenu2 + ld a, $c + ld [wcd3c], a + jp BattleTowerRoomMenu_IncrementJumptable + +Function118e7e: ; 118e7e (46:4e7e) + call BattleTowerRoomMenu2 + ret c + ld a, $36 + jp Function119e2b + +BattleTowerRoomMenu_CallRoomMenu2: ; 118e87 (46:4e87) + call BattleTowerRoomMenu2 + ret c + ld a, [wcd33] + ld [wcf66], a + ret +; 118e92 (46:4e92) + +Function118e92: ; 118e92 + call Function118440 + call Function1191d3 + ld a, [wcd53] + ld l, a + ld a, [wcd54] + ld h, a + ld de, wcc60 + call Function1191ad + ret c + ld de, w3_d800 + ld bc, $0800 + jp Function118b10 +; 118eb0 + +Function118eb0: ; 118eb0 + call Function118440 + ld hl, $d802 + ld de, BGMapBuffer + ld bc, $000c + call CopyBytes + call Function1192cc + ret c + jp BattleTowerRoomMenu_IncrementJumptable +; 118ec6 + +Function118ec6: ; 118ec6 + call Function118440 + call SpeechTextBox + ld hl, $d80e + ld de, $c320 + ld bc, $0026 + call CopyBytes + xor a + ld [$c31f], a + ld a, $20 + ld [$c31b], a + ld a, $c3 + ld [$c31c], a + hlcoord 1, 14 + ld a, l + ld [$c31d], a + ld a, h + ld [$c31e], a + ld a, $2 + ld [$c31a], a + ld a, $1d + ld [wcd3c], a + ld a, $24 + ld [wMobileInactivityTimerSeconds], a + ld a, $11 + ld [wMobileInactivityTimerFrames], a + ld a, $1c + ld [wcd47], a + jp BattleTowerRoomMenu_IncrementJumptable +; 118f0d + +Function118f0d: ; 118f0d + call BattleTowerRoomMenu2 + ret c + call Function118440 + +Function118f14: + call Function118440 + ld a, [wcd51] + ld l, a + ld a, [wcd52] + ld h, a + ld de, wcc60 + call Function1191ad + ret c + ld a, [wcc60] + and a + jr z, .DontSendSaveFile + ld hl, Text_SaveFileWillBeSent + call BattleTowerRoomMenu_SetMessage + +.DontSendSaveFile: + ld a, [wcd57] + ld l, a + ld a, [wcd58] + ld h, a + ld de, wcc60 + call Function1191ad + ret c + ld hl, wcc60 + call Function118e39 + ld a, $9 + ld [wcd3c], a + ld a, $24 + ld [wMobileInactivityTimerSeconds], a + ld a, $13 + ld [wMobileInactivityTimerFrames], a + ld a, $1c + ld [wcd47], a + jp BattleTowerRoomMenu_IncrementJumptable +; 118f5e + +Function118f5e: ; 118f5e + call BattleTowerRoomMenu2 + ret c + call Function118440 + call DelayFrame + +Function118f68: + call Function119223 + ret c + call Function118440 + ld a, [wcd51] + ld l, a + ld a, [wcd52] + ld h, a + ld de, wcc60 + call Function1191ad + ret c + ld a, [wcc60] + and a + jr z, .asm_118fba + ld hl, $c346 + ld a, $c608 % $100 + ld [hli], a + ld a, $c608 / $100 + ld [hli], a + ld a, [wcd4b] + ld [hli], a + ld a, [wcd4c] + ld [hli], a + ld a, $c708 % $100 + ld [hli], a + ld a, $c708 / $100 + ld [hli], a + ld a, $60 + ld [hli], a + ld a, $cc + ld [hli], a + call Function119eb4 + call Function119ec2 + ld a, $40 + ld [wcd89], a + ld hl, $c346 + ld de, $de00 + ld bc, $0200 + ld a, $2c + jp Function119e2b + +.asm_118fba + call BattleTowerRoomMenu_IncrementJumptable + jp BattleTowerRoomMenu_IncrementJumptable +; 118fc0 + +Function118fc0: ; 118fc0 + call Function118440 + ld a, [wcd55] + ld l, a + ld a, [wcd56] + ld h, a + ld de, wcc60 + call Function1191ad + ret c + ld a, [wcc60] + and a + jr z, .asm_118ffa + ld a, [wcd51] + ld l, a + ld a, [wcd52] + ld h, a + ld de, wcc60 + call Function1191ad + ret c + ld a, [wcc60] + and a + jr z, .asm_118ff2 + ld hl, Text_SentSaveFileReadingNews + jr .asm_118ff5 + +.asm_118ff2 + ld hl, Text_ReadingNews + +.asm_118ff5 + call BattleTowerRoomMenu_SetMessage + jr Function119009 + +.asm_118ffa + ld hl, Text_ReadingNews + call BattleTowerRoomMenu_SetMessage + call BattleTowerRoomMenu_IncrementJumptable + call BattleTowerRoomMenu_IncrementJumptable + jp BattleTowerRoomMenu_IncrementJumptable + +Function119009: + call Function118440 + call Function119300 + ld a, [wcd55] + ld l, a + ld a, [wcd56] + ld h, a + ld de, wcc60 + call Function1191ad + ret c + ld hl, $c346 + ld a, $8 + ld [hli], a + ld a, $c6 + ld [hli], a + ld a, [wcd4b] + ld [hli], a + ld a, [wcd4c] + ld [hli], a + ld a, $8 + ld [hli], a + ld a, $c7 + ld [hli], a + ld a, $60 + ld [hli], a + ld a, $cc + ld [hli], a + call Function119eb4 + call Function119ec2 + ld a, $40 + ld [wcd89], a + ld hl, $c346 + ld de, w3_d000 + ld bc, $1000 + ld a, $2c + jp Function119e2b +; 119054 + +Function119054: ; 119054 + ld a, $6 + call GetSRAMBank + ld hl, wd002 + ld a, [wcd4f] + ld e, a + ld a, [wcd50] + ld d, a + ld a, [w3_d000] + ld c, a + ld a, [w3_d000 + 1] + ld b, a + call Function119192 + ret c + ld a, [wcd89] + and $1 + jr z, .asm_11908a + ld a, $6 + ld [rSVBK], a + ld hl, wd002 + ld a, [w3_d000] + ld c, a + ld a, [w3_d000 + 1] + ld b, a + call Function119192 + ret c + +.asm_11908a + call CloseSRAM + ld a, $3 + ld [rSVBK], a + ld a, $5 + call GetSRAMBank + ld a, [wcd4f] + ld [$b1b3], a + ld a, [wcd50] + ld [$b1b4], a + ld hl, BGMapBuffer + ld de, $aa7f + ld bc, $000c + call CopyBytes + ld a, [rSVBK] + push af + ld a, $1 + ld [rSVBK], a + ld a, [wd474] + ld [$b2f3], a + ld hl, wd475 + ld de, $b2f4 + ld bc, $0004 + call CopyBytes + pop af + ld [rSVBK], a + call CloseSRAM + jp BattleTowerRoomMenu_IncrementJumptable +; 1190d0 + +Function1190d0: ; 1190d0 + ld a, $3 + ld [rSVBK], a + ld a, [wcd57] + ld l, a + ld a, [wcd58] + ld h, a + ld de, wcc60 + call Function1191ad + ret c + ld de, w3_d000 + ld bc, $1000 + jp Function118b10 +; 1190ec + +Function1190ec: ; 1190ec + ld a, $5 + call GetSRAMBank + ld hl, BGMapBuffer + ld de, $aa73 + ld bc, $000c + call CopyBytes + call CloseSRAM + ld a, $5 + call GetSRAMBank + ld a, $1 + ld [$aa72], a + call CloseSRAM + ld a, $6 + call GetSRAMBank + ld a, [w3_d000] + ld c, a + ld a, [w3_d000 + 1] + ld b, a + ld hl, wd002 + ld de, $a000 + call Function119192 + ret c + ld a, [wcd89] + and $1 + jr z, .asm_11913e + ld a, $6 + ld [rSVBK], a + ld a, [w3_d000] + ld c, a + ld a, [w3_d000 + 1] + ld b, a + ld hl, wd002 + call Function119192 + ret c + +.asm_11913e + ld a, $3 + ld [rSVBK], a + call CloseSRAM + ld hl, Text_ReceivedNews + call BattleTowerRoomMenu_SetMessage + jp BattleTowerRoomMenu_IncrementJumptable +; 11914e + +Function11914e: ; 11914e + call BattleTowerRoomMenu2 + ret c + ld a, $1c + ld [wcf66], a + ld a, $a + ld [wc300], a + ret +; 11915d + +Function11915d: ; 11915d + ld hl, $d802 + ld de, BGMapBuffer + ld bc, $000c + call CopyBytes + ld a, $5 + call GetSRAMBank + ld hl, BGMapBuffer + ld de, $aa7f + ld c, $c +.asm_119176 + ld a, [de] + inc de + cp [hl] + jr nz, .asm_119184 + inc hl + dec c + jr nz, .asm_119176 + call BattleTowerRoomMenu_IncrementJumptable + jr .asm_11918e + +.asm_119184 + ld a, $16 + ld [wcf66], a + ld a, $b + ld [wc300], a + +.asm_11918e + call CloseSRAM + ret +; 119192 + +Function119192: ; 119192 + inc b + inc c + jr .asm_11919e + +.asm_119196 + ld a, [hli] + ld [de], a + inc de + ld a, $bf + cp d + jr c, .asm_1191a6 + +.asm_11919e + dec c + jr nz, .asm_119196 + dec b + jr nz, .asm_119196 + and a + ret + +.asm_1191a6 + ld a, $d3 + call Function118805 + scf + ret +; 1191ad + +Function1191ad: ; 1191ad + push bc + ld c, $0 + ld a, $5 + ld [rSVBK], a +.asm_1191b4 + ld a, [hli] + ld [de], a + inc de + and a + jr z, .asm_1191cc + inc c + ld a, c + cp $a6 + jr c, .asm_1191b4 + ld a, $da + call Function118805 + ld a, $3 + ld [rSVBK], a + pop bc + scf + ret + +.asm_1191cc + ld a, $3 + ld [rSVBK], a + pop bc + and a + ret +; 1191d3 + +Function1191d3: ; 1191d3 + ld hl, w3_d100 + 2 + ld a, l + ld [wcd53], a + ld a, h + ld [wcd54], a + call Function11920f + ld a, l + ld [wcd51], a + ld a, [wcd4a] + ld a, h + ld [wcd52], a + call Function11920f + ld a, l + ld [wcd55], a + ld a, [wcd4a] + ld a, h + ld [wcd56], a + call Function11920f + ld a, [wcd49] + ld a, l + ld [wcd57], a + ld a, [wcd4a] + ld a, h + ld [wcd58], a + call Function11920f + ret +; 11920f + +Function11920f: ; 11920f +.asm_11920f + call Function118b9a + ret nc + ld a, [hli] + cp $d + jr nz, .asm_11920f + ld a, [hli] + cp $a + jr nz, .asm_11920f + dec hl + xor a + ld [hld], a + ld [hli], a + inc hl + ret +; 119223 + +Function119223: ; 119223 + xor a + ld [wcd4b], a + ld [wcd4c], a + ld a, $5 + call GetSRAMBank + ld hl, wc3cd + ld de, $b092 + ld bc, $001f + call CopyBytes + dec de + xor a + ld [de], a + ld hl, $d810 +.asm_119241 + ld a, [hli] + cp $50 + jr nz, .asm_119241 + ld a, [hli] + ld [wcd4f], a + ld a, [hli] + ld [wcd50], a + ld a, [hli] + ld [$b1b1], a + ld c, a + ld a, [hli] + ld [$b1b2], a + ld b, a + ld de, $b1d3 + call CopyBytes + call CloseSRAM + ld e, l + ld d, h + ld hl, $c608 +.asm_119266 + ld a, [de] + inc de + cp $ff + jr z, .asm_1192c2 + cp $fe + jr z, .asm_1192a5 + call GetSRAMBank + ld a, [de] + inc de + ld c, a + ld a, [de] + inc de + ld b, a + ld a, [de] + inc de + push de + push af + ld a, [wcd4b] + ld e, a + ld a, [wcd4c] + ld d, a + pop af +.asm_119286 + push af + ld a, [bc] + inc bc + ld [hli], a + inc de + pop af + dec a + jr nz, .asm_119286 + call CloseSRAM + ld a, e + ld [wcd4b], a + ld a, d + ld [wcd4c], a + pop de +.asm_11929b + and a + jr z, .asm_119266 + ld a, $d3 + call Function118805 + scf + ret + +.asm_1192a5 + ld a, [wcd4b] + ld c, a + ld a, [wcd4c] + ld b, a + ld a, [de] + inc de +.asm_1192af + push af + ld a, [de] + inc de + ld [hli], a + inc bc + pop af + dec a + jr nz, .asm_1192af + ld a, c + ld [wcd4b], a + ld a, b + ld [wcd4c], a + jr .asm_11929b + +.asm_1192c2 + ld a, e + ld [wcd4d], a + ld a, d + ld [wcd4e], a + and a + ret +; 1192cc + +Function1192cc: ; 1192cc + ld a, $5 + call GetSRAMBank + ld hl, $aa73 + ld de, $c608 + ld bc, $000c + call CopyBytes + call CloseSRAM + ld hl, $c608 + ld de, BGMapBuffer + ld c, $c +.asm_1192e8 + ld a, [de] + inc de + ld b, a + ld a, [hli] + cp b + jr nz, .asm_1192fe + dec c + jr nz, .asm_1192e8 + ld a, $1f + ld [wcd3c], a + ld a, $27 + ld [wcf66], a + scf + ret + +.asm_1192fe + and a + ret +; 119300 + +Function119300: ; 119300 + xor a + ld [wcd4b], a + ld [wcd4c], a + ld a, [wcd4d] + ld e, a + ld a, [wcd4e] + ld d, a + ld hl, $c608 + ld a, [wcd4b] + ld c, a + ld a, [wcd4c] + ld b, a +.asm_11931a + ld a, [de] + inc de + cp $50 + jr z, .asm_119324 + ld [hli], a + inc bc + jr .asm_11931a + +.asm_119324 + ld a, $3d + ld [hli], a + inc bc + ld a, c + ld [wcd4b], a + ld a, b + ld [wcd4c], a + ld a, [de] + inc de + call GetSRAMBank + ld a, [de] + inc de + ld c, a + ld a, [de] + inc de + ld b, a + ld a, [de] + inc de + push de + push af + ld a, [wcd4b] + ld e, a + ld a, [wcd4c] + ld d, a + pop af +.asm_119348 + push af + ld a, [bc] + and $f0 + swap a + call Function1197bf + ld [hli], a + inc de + ld a, [bc] + inc bc + and $f + call Function1197bf + ld [hli], a + inc de + pop af + dec a + jr nz, .asm_119348 + call CloseSRAM + ld a, e + ld [wcd4b], a + ld a, d + ld [wcd4c], a + pop de + ld a, [de] + cp $50 + jr z, .asm_11937f + ld a, [wcd4b] + ld c, a + ld a, [wcd4c] + ld b, a + ld a, $26 + ld [hli], a + inc bc + jr .asm_11931a + +.asm_11937f + ret +; 119380 + +Function119380: ; 119380 + ld a, $80 + ld [wcd49], a + jp BattleTowerRoomMenu_IncrementJumptable +; 119388 + +Function119388: ; 119388 + ld hl, wcd49 + dec [hl] + ret nz + ld hl, wcc60 + call Function118e39 + ld a, $9 + ld [wcd3c], a + ld a, $10 + ld [wMobileInactivityTimerSeconds], a + call BattleTowerRoomMenu_IncrementJumptable + +Function1193a0: + call BattleTowerRoomMenu2 + ret c + call DelayFrame + ld a, $8 + ld [wcd3c], a + call BattleTowerRoomMenu2 + ld hl, $c346 + ld a, wd000 % $100 + ld [hli], a + ld a, wd000 / $100 + ld [hli], a + ld a, [wcd3b] + ld [hli], a + xor a + ld [hli], a + ld a, $c708 % $100 + ld [hli], a + ld a, $c708 / $100 + ld [hli], a + ld a, $60 + ld [hli], a + ld a, $cc + ld [hli], a + call Function119eb4 + call Function119ec2 + ld a, $40 + ld [wcd89], a + ld hl, $c346 + ld de, $de00 + ld bc, $0200 + ld a, $2c + jp Function119e2b +; 1193e3 + +Function1193e3: ; 1193e3 + ld hl, wcd49 + dec [hl] + ret nz + ld hl, wcc60 + call Function118e39 + ld a, $9 + ld [wcd3c], a + ld a, $11 + ld [wMobileInactivityTimerSeconds], a + call BattleTowerRoomMenu_IncrementJumptable + +Function1193fb: + call BattleTowerRoomMenu2 + ret c + call DelayFrame + ld a, $8 + ld [wcd3c], a + call BattleTowerRoomMenu2 + ld de, w3_d000 + ld bc, $1000 + jp Function118b10 +; 119413 + +Function119413: ; 119413 + ld a, $6 + call GetSRAMBank + ld a, [w3_d000] + ld c, a + ld a, [w3_d000 + 1] + ld b, a + dec bc + dec bc + ld hl, wd002 + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + call Function119192 + ret c + ld a, [wcd89] + and $1 + jr z, .asm_119447 + ld a, $6 + ld [rSVBK], a + ld a, [wd000] + ld c, a + ld a, [w3_d000 + 1] + ld b, a + ld hl, wd002 + call Function119192 + ret c + +.asm_119447 + ld a, $3 + ld [rSVBK], a + call CloseSRAM + jp BattleTowerRoomMenu_IncrementJumptable +; 119451 + +Function119451: ; 119451 (46:5451) + ld a, [wcd89] + and $1 + jr z, .asm_11945d + ld a, $d3 + jp Function118805 +.asm_11945d + xor a + ld [wcd50], a + call Function119694 + ld a, b + ld [wcd49], a + call Function1196cd + ld a, [wd002] + ld hl, wd003 + +Function119471: ; 119471 (46:5471) + push af + ld a, [hli] + ld [$c608], a + ld a, [hli] + ld [$c608 + 3], a + ld a, [hli] + ld [$c608 + 1], a + ld a, [hli] + ld [$c608 + 2], a + ld a, [hli] + ld [$c608 + 4], a + ld a, [hli] + ld [$c608 + 5], a ; $c608 + 5 + push hl + ld a, [$c608] + cp $ff + jr z, .asm_1194a7 + ld a, [$c608 + 2] + cp $ff + jr z, .asm_1194a7 + ld a, [$c608 + 1] + cp $ff + jr nz, .asm_1194a7 + call Function119584 + jr c, .asm_11950c + jr .asm_1194f0 +.asm_1194a7 + ld hl, $c608 + ld de, $c608 + 3 + ld c, $3 +.asm_1194af + ld a, [de] + inc de + cp [hl] + inc hl + jr c, .asm_1194f3 + jr z, .asm_1194b9 + jr nc, .asm_1194bc +.asm_1194b9 + dec c + jr nz, .asm_1194af +.asm_1194bc + ld c, $3 + ld hl, wcd49 + ld de, $c608 +.asm_1194c4 + ld a, [de] + inc de + cp $ff + jr z, .asm_1194d1 + cp [hl] + jr z, .asm_1194d1 + jr c, .asm_1194d5 + jr nc, .asm_1194f0 +.asm_1194d1 + inc hl + dec c + jr nz, .asm_1194c4 +.asm_1194d5 + ld c, $3 + ld hl, wcd49 + ld de, $c608 + 3 +.asm_1194dd + ld a, [de] + inc de + cp $ff + jr z, .asm_1194ea + cp [hl] + jr c, .asm_1194f0 + jr z, .asm_1194ea + jr nc, .asm_11950c +.asm_1194ea + inc hl + dec c + jr nz, .asm_1194dd + jr .asm_11950c +.asm_1194f0 + pop hl + jr .asm_119557 +.asm_1194f3 + ld c, $3 + ld hl, wcd49 + ld de, $c608 +.asm_1194fb + ld a, [de] + inc de + cp $ff + jr z, .asm_119508 + cp [hl] + jr c, .asm_11950c + jr z, .asm_119508 + jr nc, .asm_1194d5 +.asm_119508 + inc hl + dec c + jr nz, .asm_1194fb +.asm_11950c + pop hl + ld a, $1 + ld [wcd50], a + ld a, l + ld [$c608], a + ld a, h + ld [$c608 + 1], a + ld de, wcd69 + ld c, $10 + ld b, $0 +.asm_119521 + ld a, [de] + inc de + cp [hl] + inc hl + jr nz, .asm_119528 + inc b +.asm_119528 + dec c + jr nz, .asm_119521 + ld a, $10 + cp b + jr z, .asm_119536 +rept 4 + inc hl +endr + jr .asm_11957a +.asm_119536 + ld a, [hli] + cp $50 + jr nz, .asm_119552 + ld a, [hli] + cp $33 + jr nz, .asm_119553 + ld a, [hli] + ld c, a + ld a, [hli] + ld b, a + ld a, [wcd83] + cp c + jr nz, .asm_119576 + ld a, [wcd84] + cp b + jr nz, .asm_119576 + jr .asm_11955b +.asm_119552 + inc hl +.asm_119553 + inc hl + inc hl + jr .asm_11955b +.asm_119557 + ld de, $14 + add hl, de +.asm_11955b + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + add hl, de + pop af + dec a + jp nz, Function119471 + ld a, [wcd50] + and a + jr z, .asm_119571 + ld a, $1a + ld [wcf66], a + ret +.asm_119571 + ld a, $d8 + jp Function118805 +.asm_119576 + ld a, $10 + jr .asm_11957c +.asm_11957a + ld a, $f +.asm_11957c + ld [wcf66], a + pop af + call Function1195c4 + ret + +Function119584: ; 119584 (46:5584) + ld a, [$c608] + ld b, a + ld a, [$c608 + 3] + ld c, a + cp b + jr c, .asm_11959c + ld a, [wcd49] + cp b + jr c, .asm_1195c2 +.asm_119595 + cp c + jr c, .asm_1195a2 + jr z, .asm_1195a2 + jr .asm_1195c2 +.asm_11959c + ld a, [wcd49] + cp b + jr c, .asm_119595 +.asm_1195a2 + ld a, [$c608 + 2] + ld b, a + ld a, [$c608 + 5] ; $c608 + 5 + ld c, a + cp b + jr c, .asm_1195ba + ld a, [wcd4b] + cp b + jr c, .asm_1195c2 +.asm_1195b3 + cp c + jr c, .asm_1195c0 + jr z, .asm_1195c0 + jr .asm_1195c2 +.asm_1195ba + ld a, [wcd4b] + cp b + jr c, .asm_1195b3 +.asm_1195c0 + scf + ret +.asm_1195c2 + and a + ret + +Function1195c4: ; 1195c4 (46:55c4) + ld a, [hli] + ld c, a + ld a, [hli] + ld b, a + ld de, $a5 + ld a, b + cp d + jr c, .asm_1195d9 + jr z, .asm_1195d3 + jr nc, .asm_1195f3 +.asm_1195d3 + ld a, c + cp e + jr z, .asm_1195d9 + jr nc, .asm_1195f3 +.asm_1195d9 + ld de, wcc60 + call CopyBytes + xor a + ld [de], a + ld a, [$c608] + ld l, a + ld a, [$c608 + 1] + ld h, a + ld de, wcd69 + ld bc, $10 + call CopyBytes + ret +.asm_1195f3 + ld a, $d8 + jp Function118805 + +Function1195f8: ; 1195f8 (46:55f8) + ld a, $11 + ld [wcd3c], a + ld a, $1c + ld [wMobileInactivityTimerSeconds], a + ld a, $f + ld [wMobileInactivityTimerFrames], a + ld a, $14 + ld [wcd47], a + call BattleTowerRoomMenu_IncrementJumptable + jp BattleTowerRoomMenu_IncrementJumptable + +Function119612: ; 119612 (46:5612) + ld a, $14 + ld [wcd3c], a + ld a, $1c + ld [wMobileInactivityTimerSeconds], a + ld a, $10 + ld [wMobileInactivityTimerFrames], a + ld a, $14 + ld [wcd47], a + jp BattleTowerRoomMenu_IncrementJumptable + +Function119629: ; 119629 (46:5629) + call BattleTowerRoomMenu2 + ret c + ld a, $60 + ld l, a + ld a, $cc + ld h, a + call Function118e39 + ld a, $9 + ld [wcd3c], a + ld a, $1c + ld [wMobileInactivityTimerSeconds], a + ld a, $14 + ld [wcd47], a + call BattleTowerRoomMenu_IncrementJumptable + +Function119648: ; 119648 (46:5648) + call BattleTowerRoomMenu2 + ret c + call DelayFrame + ld a, $8 + ld [wcd3c], a + call BattleTowerRoomMenu2 + call Function118b24 + ld de, w3_d000 + ld bc, $1000 + ld a, $2a + jp Function119e2b + +Function119665: ; 119665 (46:5665) + ld a, $1a + ld [wcd3c], a + call BattleTowerRoomMenu_IncrementJumptable + +Function11966d: ; 11966d (46:566d) + call BattleTowerRoomMenu2 + ret c + ld a, [wcd47] + ld [wcf66], a + ld a, $a + ld [wc300], a + ret + +Function11967d: ; 11967d (46:567d) + ld a, $18 + ld [wcd3c], a + call BattleTowerRoomMenu_IncrementJumptable + +Function119685: ; 119685 (46:5685) + call BattleTowerRoomMenu2 + ret c + ld a, $14 + ld [wcf66], a + ld a, $a + ld [wc300], a + ret + +Function119694: ; 119694 (46:5694) + ld b, 0 + ld hl, Unknown_1196b8 +.asm_119699 + ld de, $c708 + ld a, [de] + inc de + cp [hl] + inc hl + jr nz, .asm_1196af + ld a, [de] + inc de + cp [hl] + inc hl + jr nz, .asm_1196b0 + ld a, [de] + inc de + cp [hl] + inc hl + jr nz, .asm_1196b1 + ret +.asm_1196af + inc hl +.asm_1196b0 + inc hl +.asm_1196b1 + inc b + ld a, b + cp $7 + jr nz, .asm_119699 + ret +; 1196b8 (46:56b8) + +Unknown_1196b8: ; 1196b8 + db "Mon" + db "Tue" + db "Wed" + db "Thu" + db "Fri" + db "Sat" + db "Sun" +; 1196cd + +SECTION "bank46_2", ROMX +; A hack to use ascii above. + +Function1196cd: ; 1196cd (46:56cd) + ld de, $c719 + call Function1196de + ld [wcd4a], a + inc de + call Function1196de + ld [wcd4b], a + ret + +Function1196de: ; 1196de (46:56de) + ld a, [de] + inc de + ; b = ([de] - 48) * 2 + ; c = ([de] - 48) * 10 + sub $30 + sla a + ld b, a + sla a + sla a + add b + ld c, a + add hl, bc + ld a, [de] + inc de + sub $30 + add c + ret +; 1196f2 (46:56f2) + +Function1196f2: ; 1196f2 + ld hl, wd002 +.asm_1196f5 + call Function118b9a + ret nc + ld a, [hli] + cp $d + jr nz, .asm_1196f5 + ld a, [hl] + cp $a + jr nz, .asm_1196f5 + xor a + ld [hld], a + ld [hli], a + ld a, l + ld [wcd5b], a + ld a, h + ld [wcd5c], a + inc hl + ld e, l + ld d, h + ld a, [de] + inc de + cp $d + jr nz, .asm_119722 + ld a, [de] + inc de + cp $a + jr nz, .asm_119722 + ld a, $b + jp Function118805 + +.asm_119722 + call Random + ld c, $0 + ld b, c +.asm_119728 + call Function119798 + ld a, d + cp $ff + jr nz, .asm_119735 + ld a, e + cp $ff + jr z, .asm_11974c + +.asm_119735 + ld a, [hRandomSub] + cp d + jr c, .asm_11974c + jr z, .asm_11973e + jr .asm_119745 + +.asm_11973e + ld a, [hRandomAdd] + cp e + jr c, .asm_11974c + jr z, .asm_11974c + +.asm_119745 + inc bc + ld a, c + or b + jr z, .asm_119770 + jr .asm_119728 + +.asm_11974c + ld a, [wcd5b] + ld l, a + ld a, [wcd5c] + ld h, a +.asm_119754 + ld a, [hld] + cp $58 + jr nz, .asm_119754 + ld d, $0 +.asm_11975b + inc d + ld a, [hld] + cp $58 + jr z, .asm_11975b + inc hl + inc hl + ld a, d + dec a + jr z, .asm_11978e + dec a + jr z, .asm_119785 + dec a + jr z, .asm_11977e + dec a + jr z, .asm_119775 + +.asm_119770 + ld a, $d3 + jp Function118805 + +.asm_119775 + ld a, b + and $f0 + swap a + call Function1197bf + ld [hli], a + +.asm_11977e + ld a, b + and $f + call Function1197bf + ld [hli], a + +.asm_119785 + ld a, c + and $f0 + swap a + call Function1197bf + ld [hli], a + +.asm_11978e + ld a, c + and $f + call Function1197bf + ld [hli], a + jp BattleTowerRoomMenu_IncrementJumptable +; 119798 + +Function119798: ; 119798 + ld d, $0 + ld e, d + call Function1197b4 + swap a + or d + ld d, a + call Function1197b4 + or d + ld d, a + call Function1197b4 + swap a + or e + ld e, a + call Function1197b4 + or e + ld e, a + ret +; 1197b4 + +Function1197b4: ; 1197b4 + ld a, [hli] + cp $61 + jr nc, .asm_1197bc + sub $30 + ret + +.asm_1197bc + sub $57 + ret +; 1197bf + +Function1197bf: ; 1197bf + cp $a + jr nc, .asm_1197c6 + add $30 + ret + +.asm_1197c6 + add $57 + ret +; 1197c9 + +Function1197c9: ; 1197c9 + ld hl, wd002 + call Function118e39 + ld a, $9 + ld [wcd3c], a + ld a, $12 + ld [wMobileInactivityTimerSeconds], a + call BattleTowerRoomMenu_IncrementJumptable + +Function1197dc: + call BattleTowerRoomMenu2 + ret c + call DelayFrame + ld hl, wd002 + ld de, wcc60 + ld bc, $0080 + call CopyBytes + dec de + xor a + ld [de], a + call Function118b24 + ld de, w3_d000 + ld bc, $1000 + ld a, $2a + jp Function119e2b +; 119800 + +Function119800: ; 119800 + ld a, $fd + ld [$c6d0], a + ld [wOTTrademonSpecies], a + ld a, [wcd81] + ld [wc74e], a + ld a, [wJumptableIndex] + push af + ld a, [wcf64] + push af + ld a, [wcf65] + push af + ld a, [wcf66] + push af + ld a, $1 + ld [rSVBK], a + call FadeToMenu + callba Function10803d + call Function11a9ce + call RestartMapMusic + ld a, $3 + ld [rSVBK], a + pop af + ld [wcf66], a + pop af + ld [wcf65], a + pop af + ld [wcf64], a + pop af + ld [wJumptableIndex], a + callba Function115dc3 + jp BattleTowerRoomMenu_IncrementJumptable +; 11984e + +Function11984e: ; 11984e + ld a, [wcd80] + and a + jr nz, .asm_1198a0 + ld a, [wcd38] + and a + jr nz, .asm_1198a8 + callba Function170000 + ld a, [wJumptableIndex] + push af + ld a, [wcf64] + push af + ld a, [wcf65] + push af + ld a, [wcf66] + push af + ld a, $1 + ld [rSVBK], a + call FadeToMenu + callba MobileTradeAnimation_SendGivemonToGTS + call Function11a9ce + call RestartMapMusic + ld a, $3 + ld [rSVBK], a + pop af + ld [wcf66], a + pop af + ld [wcf65], a + pop af + ld [wcf64], a + pop af + ld [wJumptableIndex], a + callba Function115dc3 + jp BattleTowerRoomMenu_IncrementJumptable + +.asm_1198a0 + ld a, $a + ld [wc300], a + jp BattleTowerRoomMenu_IncrementJumptable + +.asm_1198a8 + callba Function17005a + ld a, [wJumptableIndex] + push af + ld a, [wcf64] + push af + ld a, [wcf65] + push af + ld a, [wcf66] + push af + ld a, $1 + ld [rSVBK], a + call FadeToMenu + callba MobileTradeAnimation_RetrieveGivemonFromGTS + call Function11a9ce + call RestartMapMusic + ld a, $3 + ld [rSVBK], a + pop af + ld [wcf66], a + pop af + ld [wcf65], a + pop af + ld [wcf64], a + pop af + ld [wJumptableIndex], a + callba Function115dc3 + jp BattleTowerRoomMenu_IncrementJumptable +; 1198ee + +Function1198ee: ; 1198ee + ld hl, Text_RegisteringRecord + call BattleTowerRoomMenu_SetMessage + call BattleTowerRoomMenu_IncrementJumptable + +Function1198f7: + ld a, [$c31a] + and a + ret nz + ld hl, $c608 + 2 + call Function119940 + ld hl, w3_d800 + ld a, $c608 % $100 + ld [hli], a + ld a, $c608 / $100 + ld [hli], a + ld a, $f6 + ld [hli], a + xor a + ld [hli], a + ld a, $c708 % $100 + ld [hli], a + ld a, $c708 / $100 + ld [hli], a + ld a, [wcd51] + ld [hli], a + ld a, [wcd52] + ld [hli], a + call Function119eb4 + call Function119ec2 + ld a, $40 + ld [wcd89], a + ld hl, w3_d800 + ld de, $de00 + ld bc, $0200 + ld a, $2c + jp Function119e2b +; 119937 + +Function119937: ; 119937 + callba Function1707f4 + jp BattleTowerRoomMenu_IncrementJumptable +; 119940 + +Function119940: ; 119940 + ld de, wc3cd + ld c, $1e +.asm_119945 + ld a, [de] + inc de + ld [hli], a + dec c + jr z, .asm_119953 + and a + jr nz, .asm_119945 + xor a +.asm_11994f + ld [hli], a + dec c + jr nz, .asm_11994f + +.asm_119953 + ret +; 119954 + +Function119954: ; 119954 + ld a, $1c + ld [wcd3c], a + call BattleTowerRoomMenu2 + ld hl, $c608 + ld de, wc3cd +.asm_119962 + ld a, [de] + inc de + ld [hli], a + and a + jr nz, .asm_119962 + call Function119ec2 + ld hl, $c608 + ld a, $1e + jp Function119e2b +; 119973 + +Function119973: ; 119973 + ld a, $1 + ld [wcf64], a + xor a + ld [wcf65], a + ld [w3_d090], a + ld de, w3_d000 + ld a, $20 + jp Function119e2b +; 119987 + +Function119987: ; 119987 + ld hl, w3_d000 + 1 + ld a, [w3_d000] + or [hl] + jr z, .asm_1199a0 + ld a, [wcf64] + ld l, a + ld a, [wcf65] + ld h, a + ld de, BGPals + ld a, $22 + jp Function119e2b + +.asm_1199a0 + ld a, [w3_d090] + and a + jr z, .asm_1199ae + ld a, $16 + ld [wcf66], a + jp Function119b0d + +.asm_1199ae + ld a, $1b + ld [wcf66], a + ret +; 1199b4 + +Function1199b4: ; 1199b4 + ld a, [wd000 + 130] + and a + jr nz, .asm_1199c7 + ld a, [wd000 + 129] + cp $7 + jr nc, .asm_1199c7 + call BattleTowerRoomMenu_IncrementJumptable + jp Function1199ca + +.asm_1199c7 + jp Function119ac9 +; 1199ca + +Function1199ca: ; 1199ca + ld a, $20 + ld [wcd89], a + ld a, [wcf64] + ld l, a + ld a, [wcf65] + ld h, a + ld de, w3_d100 + ld bc, $0700 + ld a, $28 + jp Function119e2b +; 1199e2 + +Function1199e2: ; 1199e2 + ld c, $c + ld de, XGameCodePrefix + call Function119e4f + jp c, Function119ac9 + ld a, c + cp $1 + jp nz, Function119ac9 + ld hl, w3_d880 + ld bc, XGameCode +.loop + ld a, [bc] + and a + jr z, .game_result_prefix + cp [hl] + jp nz, Function119ac9 + inc bc + inc hl + jr .loop + +.game_result_prefix + ld c, $17 + ld de, XGameResultPrefix + call Function119e4f + jp c, .asm_119aa7 + ld a, c + cp $1 + jp nz, .asm_119aa7 + ld a, [w3_d880] + cp $31 + jp nz, .asm_119aa7 + ld a, [w3_d881] + cp $20 + jp nz, .asm_119aa7 + ld a, [w3_d88a] + cp $20 + jp nz, .asm_119aa7 + ld a, [w3_d894] + cp $20 + jp nz, .asm_119aa7 + xor a + ld [w3_d8a0], a + ld [w3_d8a1], a + ld [w3_d8a2], a + ld [w3_d8a3], a + ld hl, $d8a0 + ld bc, $d889 + call Function119e98 + call Function119e98 + ld hl, $d8a0 + ld a, [wcd2d] + cp [hl] + jr nz, Function119ac9 + inc hl + ld a, [wcd2c] + cp [hl] + jr nz, Function119ac9 + inc hl + ld a, [wcd2b] + cp [hl] + jr nz, Function119ac9 + inc hl + ld a, [wcd2a] + cp [hl] + jr nz, Function119ac9 + xor a + ld [w3_d8a0], a + ld [w3_d8a1], a + ld [w3_d8a2], a + ld [w3_d8a3], a + ld hl, $d8a0 + ld bc, $d88e + call Function119e98 + ld bc, $d893 + call Function119e98 + ld hl, $d8a0 + ld a, [wcd2f] + cp [hl] + jr nz, .asm_119aa7 + inc hl + ld a, [wcd2e] + cp [hl] + jr nz, .asm_119aa7 + inc hl + ld a, [wcd31] + cp [hl] + jr nz, .asm_119aa7 + inc hl + ld a, [wcd30] + cp [hl] + jr z, .asm_119aaf + +.asm_119aa7 + ld a, $25 + ld [wcf66], a + jp Function119b45 + +.asm_119aaf + ld a, [w3_d090] + and a + jr nz, .asm_119aa7 + ld a, [w3_d895] + sub $30 + ld [w3_d090], a + ld a, [wcf64] + ld [w3_d090 + 1], a + ld a, [wcf65] + ld [w3_d090 + 2], a + +Function119ac9: + ld a, [w3_d000] + ld l, a + ld a, [w3_d000 + 1] + ld h, a + dec hl + ld a, l + ld [w3_d000], a + ld a, h + ld [w3_d000 + 1], a + ld a, [wcf64] + ld l, a + ld a, [wcf65] + ld h, a + inc hl + ld a, l + ld [wcf64], a + ld a, h + ld [wcf65], a + ld a, $10 + ld [wcf66], a + ret +; 119af1 + +XGameCode: +INCBIN "data/mobile/x-game-code.txt" +XGameResult: +INCBIN "data/mobile/x-game-result.txt" +; 119b0d + +Function119b0d: ; 119b0d + ld a, $8 + ld [wcd3c], a + call BattleTowerRoomMenu2 + ld a, [w3_d090] + cp $1 + jr z, .asm_119b23 + ld a, $19 + ld [wcf66], a + jr Function119b3b + +.asm_119b23 + ld a, $10 + ld [wcd89], a + ld a, [w3_d090 + 1] + ld l, a + ld a, [w3_d090 + 2] + ld h, a + ld de, w3_d100 + ld bc, $0700 + ld a, $24 + jp Function119e2b + +Function119b3b: + ld a, [w3_d090 + 1] + ld l, a + ld a, [w3_d090 + 2] + ld h, a + jr asm_119b4d + +Function119b45: + ld a, [wcf64] + ld l, a + ld a, [wcf65] + ld h, a + +asm_119b4d + ld a, $26 + jp Function119e2b +; 119b52 + +Function119b52: ; 119b52 + ld a, [w3_d090] + cp $1 + jr nz, .asm_119b66 + ld a, $5 + call GetSRAMBank + ld a, $4 + ld [$a800], a + call CloseSRAM + +.asm_119b66 + ld a, $1c + jp Function119e2b +; 119b6b + +Function119b6b: ; 119b6b + ld a, [w3_d090] + cp $1 + jr z, .asm_119b75 + jp BattleTowerRoomMenu_IncrementJumptable + +.asm_119b75 + ld a, [w3_d100] + ld b, a + ld a, [w3_d100 + 1] + or b + jr z, .asm_119be3 + ld hl, w3_d800 + ld de, w3_d100 + 2 +.asm_119b85 + ld a, [de] + inc de + cp $d + jr nz, .asm_119b85 + inc de + ld a, [de] + cp $d + jr nz, .asm_119b85 + inc de + inc de +.asm_119b93 + ld a, [de] + inc de + cp $d + jr z, .asm_119bfa + call Function119c3e + ret c + ld [hli], a + ld a, [de] + inc de + call Function119c3e + ret c + ld [hli], a + ld a, [de] + inc de + call Function119c3e + ret c + ld [hli], a + ld a, [de] + inc de + call Function119c3e + ret c + ld [hl], a + push de + ld d, [hl] + dec hl + ld c, [hl] + dec hl + ld b, [hl] + dec hl + ld a, [hl] + sla b + sla b + sla b + rla + sla b + rla + ld [hli], a + ld [hl], b + inc hl + rrc c + rrc c + ld [hl], c + dec hl + ld a, $f + and c + or [hl] + ld [hli], a + ld a, [hli] + and $c0 + or [hl] + dec hl + ld [hld], a + dec hl + pop de + inc hl + inc hl + inc hl + ld a, h + cp $e0 + jr c, .asm_119b93 + +.asm_119be3 + ld a, $19 + ld [wcf66], a + ld a, $5 + call GetSRAMBank + ld a, $1 + ld [$a800], a + call CloseSRAM + xor a + ld [w3_d090], a + ret + +.asm_119bfa + inc de + ld a, [de] + cp $d + jr nz, .asm_119b93 + ld a, l + cp (w3_d869) % $100 + jr nz, .asm_119be3 + ld a, h + cp (w3_d869) / $100 + jr nz, .asm_119be3 + ld a, $5 + call GetSRAMBank + ld a, [wcf64] + ld [$b090], a + ld a, [wcf65] + ld [$b091], a + ld hl, w3_d800 + ld de, $b023 + ld bc, $0069 + call CopyBytes + ld a, $3 + ld [$a800], a + call CloseSRAM + ld hl, w3_d800 + ld de, $c608 + ld bc, $0069 + call CopyBytes + jp BattleTowerRoomMenu_IncrementJumptable +; 119c3e + +Function119c3e: ; 119c3e + cp $2b + jr c, .asm_119c68 + jr z, .asm_119c80 + cp $2f + jr c, .asm_119c68 + jr z, .asm_119c84 + cp $30 + jr c, .asm_119c68 + cp $3a + jr c, .asm_119c88 + cp $3d + jr c, .asm_119c68 + jr z, .asm_119c8c + cp $41 + jr c, .asm_119c68 + cp $5b + jr c, .asm_119c8f + cp $61 + jr c, .asm_119c68 + cp $7b + jr c, .asm_119c93 + +.asm_119c68 + ld a, $19 + ld [wcf66], a + ld a, $5 + call GetSRAMBank + ld a, $1 + ld [$a800], a + call CloseSRAM + xor a + ld [w3_d090], a + scf + ret + +.asm_119c80 + ld a, $3e + and a + ret + +.asm_119c84 + ld a, $3f + and a + ret + +.asm_119c88 + add $4 + and a + ret + +.asm_119c8c + xor a + and a + ret + +.asm_119c8f + sub $41 + and a + ret + +.asm_119c93 + sub $47 + and a + ret +; 119c97 + +BattleTowerRoomMenu_UberRestrictionMessage: ; 119c97 + ld hl, Text_UberRestriction + call BattleTowerRoomMenu_SetMessage + call BattleTowerRoomMenu_IncrementJumptable + jr BattleTowerRoomMenu_WaitForMessage + +BattleTowerRoomMenu_PartyMonTopsThisLevelMessage: + ld hl, Text_PartyMonTopsThisLevel + call BattleTowerRoomMenu_SetMessage + call BattleTowerRoomMenu_IncrementJumptable + +BattleTowerRoomMenu_WaitForMessage: + ld a, [$c31a] + and a + ret nz + ld a, $80 + ld [wcd50], a + call BattleTowerRoomMenu_IncrementJumptable + +BattleTowerRoomMenu_DelayRestartMenu: + ; Loops while (--[wcd50] != 0), + ; to create some sort of "delay" after the message is written on the screen, + ; before starting the menu again. + ld hl, wcd50 + dec [hl] + ret nz + ld a, $0 + ld [wcf66], a + ret +; 119cc3 + +BattleTowerRoomMenu_QuitMessage: ; 119cc3 + ld a, [wcd38] + and a + jr z, .asm_119cd1 + dec a + jr z, .asm_119cd6 + ld hl, Text_QuitReadingNews + jr .asm_119cd9 + +.asm_119cd1 + ld hl, Text_CancelBattleRoomChallenge + jr .asm_119cd9 + +.asm_119cd6 + ld hl, Text_ExitGymLeaderHonorRoll + +.asm_119cd9 + call BattleTowerRoomMenu_SetMessage + call BattleTowerRoomMenu_IncrementJumptable + +BattleTowerRoomMenu_PlaceYesNoMenu: + ld a, [$c31a] + and a + ret nz + ld a, $f + ld [wcd3c], a + call BattleTowerRoomMenu_IncrementJumptable + +BattleTowerRoomMenu_UpdateYesNoMenu: + ; Only ever called when [wcd3c] is $10 + call BattleTowerRoomMenu2 + ret c + ld a, [wMobileInactivityTimerFrames] + ld [wcf66], a + ret +; 119cf7 + +MenuDataHeader_119cf7: ; 119cf7 + db $40 ; flags + db 7, 12 ; start coords + db 11, 19 ; end coords + dw NULL + db 0 ; default option +; 119cff + +MenuData_119cff: ; 119cff + db $40 ; flags + db 7, 15 ; start coords + db 11, 19 ; end coords + dw NULL + db 0 ; default option +; 119d07 + +String_119d07: + db " ▼@" + +Strings_L10ToL100: ; 119d0c + db " L:10 @@" + db " L:20 @@" + db " L:30 @@" + db " L:40 @@" + db " L:50 @@" + db " L:60 @@" + db " L:70 @@" + db " L:80 @@" + db " L:90 @@" + db " L:100@@" + db "CANCEL@@" + +Strings_Ll0ToL40: ; 119d64 + db " L:10 @@" + db " L:20 @@" + db " L:30 @@" + db " L:40 @@" + db "CANCEL@@" + +String_119d8c: + db "CANCEL@" +; 119d93 + +BattleTower_LevelCheck: ; 119d93 (46:5d93) + ld a, [rSVBK] + push af + ld a, $1 + ld [rSVBK], a + ld a, [wcd4f] + ld c, 10 + call SimpleMultiply + ld hl, wcd50 + ld [hl], a + ld bc, PARTYMON_STRUCT_LENGTH + ld de, PartyMon1Level + ld a, [PartyCount] +.party_loop + push af + ld a, [de] + push hl + push de + pop hl + add hl, bc + push hl + pop de + pop hl + cp [hl] + jr z, .equal + jr nc, .exceeds +.equal + pop af + dec a + jr nz, .party_loop + pop af + ld [rSVBK], a + and a + ret + +.exceeds + pop af + ld a, $4 + ld [wcf66], a + pop af + ld [rSVBK], a + scf + ret + +BattleTower_UbersCheck: ; 119dd1 (46:5dd1) + ld a, [rSVBK] + push af + ld a, [wcd4f] + cp 70 / 10 + jr nc, .level_70_or_more + ld a, $1 + ld [rSVBK], a + ld hl, PartyMon1Level + ld bc, PARTYMON_STRUCT_LENGTH + ld de, PartySpecies + ld a, [PartyCount] +.loop + push af + ld a, [de] + cp MEWTWO + jr z, .uber + cp MEW + jr z, .uber + cp LUGIA + jr c, .next + cp NUM_POKEMON + 1 + jr nc, .next +.uber + ld a, [hl] + cp 70 + jr c, .uber_under_70 +.next + add hl, bc + inc de + pop af + dec a + jr nz, .loop +.level_70_or_more + pop af + ld [rSVBK], a + and a + ret + +.uber_under_70 + pop af + ld a, [de] + ld [wd265], a + call GetPokemonName + ld hl, StringBuffer1 + ld de, wcd49 + ld bc, PKMN_NAME_LENGTH + call CopyBytes + ld a, $a + ld [wcf66], a + pop af + ld [rSVBK], a + scf + ret +; 119e2b (46:5e2b) + +Function119e2b: ; 119e2b (46:5e2b) + call Function3e32 + +BattleTowerRoomMenu_IncrementJumptable: ; 119e2e (46:5e2e) + ld hl, wcf66 + inc [hl] + ret +; 119e33 (46:5e33) + +XGameCodePrefix: ; 119e33 +INCBIN "data/mobile/x-game-code-prefix.txt" +XGameCodePrefixEnd: +;119e40 + +XGameResultPrefix: ; 119e40 +INCBIN "data/mobile/x-game-result-prefix.txt" +XGameResultPrefixEnd: +; 119e4f + +Function119e4f: ; 119e4f + push bc + ld hl, w3_d100 + ld a, [hli] + ld c, a + ld a, [hli] + ld b, a +.loop + ld a, [de] + cp [hl] + jr z, .found_equality +.next + inc hl + dec bc + ld a, b + or c + jr nz, .loop +.return_carry + pop bc + scf + ret + +.found_equality + push de +.loop2 + ld a, [de] + inc de + cp "\n" + jr z, .newline + cp [hl] + jr nz, .unequal + inc hl + dec bc + ld a, b + or c + jr nz, .loop2 + pop de + jr .return_carry + +.unequal + pop de + jr .next + +.newline + pop de + pop bc + inc hl + ld de, w3_d880 +.loop3 + ld a, [hli] + ld [de], a + inc de + cp $d + jr z, .finish + dec c + jr nz, .loop3 + scf + ret + +.finish + and a + ret +; 119e8e + +Function119e8e: ; 119e8e + cp $60 + jr c, .less_than_0x60 + sub $57 + ret + +.less_than_0x60 + sub $30 + ret +; 119e98 + +Function119e98: ; 119e98 + ld a, $2 +.loop + push af + ld a, [bc] + dec bc + call Function119e8e + or [hl] + ld [hl], a + ld a, [bc] + dec bc + call Function119e8e + rlca + rlca + rlca + rlca + or [hl] + ld [hl], a + inc hl + pop af + dec a + and a + jr nz, .loop + ret +; 119eb4 + +Function119eb4: ; 119eb4 (46:5eb4) + xor a + ld [wc3cc], a + ld de, wc3ac +.loop + ld a, [de] + inc de + ld [hli], a + and a + jr nz, .loop + ret + +Function119ec2: ; 119ec2 (46:5ec2) + ld a, BANK(sMobileLoginPassword) + call GetSRAMBank + xor a + ld [sMobileLoginPassword + MOBILE_LOGIN_PASSWORD_LENGTH], a + ld de, sMobileLoginPassword + 1 +.loop + ld a, [de] + inc de + ld [hli], a + and a + jr nz, .loop + call CloseSRAM + ret + +BattleTowerRoomMenu2: ; 119ed8 (46:5ed8) + ld a, [rSVBK] + ld [wcd8c], a + ld a, $1 + ld [rSVBK], a + + call .RunJumptable + + ld a, [wcd8c] + ld [rSVBK], a + ld a, $1 + ld [hBGMapMode], a + ret + +.RunJumptable: + jumptable .Jumptable, wcd3c + +.Jumptable: + dw Function119f3f + dw Function119f45 + dw Function119f56 + dw Function119f76 + dw Function119f98 + dw Function11a113 + dw Function11a129 + dw Function11a131 + dw Function11a13d + dw Function11a14b + dw Function11a16d + dw Function11a192 + dw Function11a2e6 + dw Function11a302 + dw Function11a33a + dw BattleTowerRoomMenu2_PlaceYesNoMenu + dw BattleTowerRoomMenu2_UpdateYesNoMenu + dw Function11a357 + dw Function11a36b + dw Function11a38d + dw Function11a3c5 + dw Function11a3d9 + dw Function11a3f9 + dw Function11a41b + dw Function11a452 + dw Function11a47a + dw Function11a488 + dw Function11a49e + dw Function11a4db + dw Function11a4e8 + dw Function11a4fe + dw Function11a466 + dw Function11a47a +; 119f3f + +Function119f3f: ; 119f3f + call Function11a5b9 + jp BattleTowerRoomMenu2_IncrementJumptable +; 119f45 + +Function119f45: ; 119f45 + hlcoord 4, 2 + ld de, String_11a661 + call PlaceString + ld a, $80 + ld [wMobileInactivityTimerMinutes], a + jp BattleTowerRoomMenu2_IncrementJumptable +; 119f56 + +Function119f56: ; 119f56 + ld a, [wMobileInactivityTimerMinutes] + and a + jr z, .asm_119f62 + dec a + ld [wMobileInactivityTimerMinutes], a + scf + ret + +.asm_119f62 + call Function11a63c + hlcoord 4, 2 + ld de, String_11a6aa + call PlaceString + ld a, $80 + ld [wMobileInactivityTimerMinutes], a + jp BattleTowerRoomMenu2_IncrementJumptable +; 119f76 + +Function119f76: ; 119f76 + ld a, [wMobileInactivityTimerMinutes] + and a + jr z, .asm_119f82 + dec a + ld [wMobileInactivityTimerMinutes], a + scf + ret + +.asm_119f82 + call Function11a63c + hlcoord 4, 2 + ld de, String_11a679 + call PlaceString + call Function11a5f5 + xor a + ld [wMobileInactivityTimerMinutes], a + jp BattleTowerRoomMenu2_IncrementJumptable +; 119f98 + +Function119f98: ; 119f98 + call Function11a536 + ret c + call PlayClickSFX + ld a, [wMobileInactivityTimerMinutes] + and a + jr nz, .asm_119fef + call ExitMenu + call Function11a63c + xor a + ld [ScriptVar], a + call Function11a00e + ld a, [ScriptVar] + and a + jr z, .asm_119fd4 + call ExitMenu + callba ReloadMapPart + callba Function115dc3 + ld a, [wcd33] + ld [wcf66], a + ld a, $a + ld [wc300], a + scf + ret + +.asm_119fd4 + hlcoord 4, 2 + ld de, String_11a692 + call PlaceString + ld a, $1 + ld [wc30d], a + ld a, $1 + ld [wc314], a + callba ReloadMapPart + and a + ret + +.asm_119fef + call ExitMenu + call ExitMenu + callba ReloadMapPart + ld a, [wMobileInactivityTimerSeconds] + ld [wcf66], a + callba Function115dc3 + ld a, $a + ld [wc300], a + scf + ret +; 11a00e + +Function11a00e: ; 11a00e + ld a, BANK(sMobileLoginPassword) + call GetSRAMBank + ld a, [sMobileLoginPassword] + and a + jr z, .asm_11a02a + ld a, [sMobileLoginPassword + 1] + call CloseSRAM + and a + ret nz + ld a, BANK(sMobileLoginPassword) + call GetSRAMBank + xor a + ld [sMobileLoginPassword], a + +.asm_11a02a + call CloseSRAM + ld a, [BGMapPalBuffer] + and a + jr z, .asm_11a039 + dec a + jr z, .asm_11a081 + jp Function11a0ca + +.asm_11a039 + ld a, $3 + ld [rSVBK], a + ld hl, $c608 + ld de, w3_d800 + ld bc, $00f6 + call CopyBytes + ld a, $1 + ld [rSVBK], a + call FadeToMenu + callba Function11765d + call Function11a9ce + ld a, $3 + ld [rSVBK], a + ld hl, w3_d800 + ld de, $c608 + ld bc, $00f6 + call CopyBytes + ld a, $1 + ld [rSVBK], a + callba Function115d99 + ld c, $0 + callba Function115e18 + ld a, $1 + ld [wc305], a + ret + +.asm_11a081 + xor a + ld [wMenuBorderLeftCoord], a + ld [wMenuBorderTopCoord], a + ld a, $13 + ld [wMenuBorderRightCoord], a + ld a, $5 + ld [wMenuBorderBottomCoord], a + call PushWindow + callba Function11765d + callba Function117ab4 + callba MobileFunc_106462 + callba Function106464 + call ExitMenu + callba ReloadMapPart + callba Function115d99 + ld c, $0 + callba Function115e18 + ld a, $1 + ld [wc305], a + ret +; 11a0ca + +Function11a0ca: ; 11a0ca + xor a + ld [wMenuBorderLeftCoord], a + ld [wMenuBorderTopCoord], a + ld a, $13 + ld [wMenuBorderRightCoord], a + ld a, $11 + ld [wMenuBorderBottomCoord], a + call PushWindow + callba Function11765d + callba Function17d3f6 + callba MobileFunc_106462 + callba Function106464 + call ExitMenu + callba ReloadMapPart + callba Function115d99 + ld c, $0 + callba Function115e18 + ld a, $1 + ld [wc305], a + ret +; 11a113 + +Function11a113: ; 11a113 + call Function11a63c + ld c, $1 + callba Function115e18 + hlcoord 4, 2 + ld de, String_11a6c8 + call PlaceString + and a + ret +; 11a129 + +Function11a129: ; 11a129 + ld a, $80 + ld [wMobileInactivityTimerMinutes], a + jp BattleTowerRoomMenu2_IncrementJumptable +; 11a131 + +Function11a131: ; 11a131 + ld hl, wMobileInactivityTimerMinutes + dec [hl] + ret nz + ld a, [wcd3c] + inc a + ld [wcd3c], a + +Function11a13d: + call Function11a63c + hlcoord 4, 2 + ld de, String_11a6d2 + call PlaceString + and a + ret +; 11a14b + +Function11a14b: ; 11a14b + ld hl, wcd85 + ld a, [hl] + cp $f3 + jr nz, .asm_11a155 + and a + ret + +.asm_11a155 + call Function11a1d6 + ret c + call Function11a63c + hlcoord 4, 2 + ld de, String_11a6f1 + call PlaceString + ld a, $80 + ld [wMobileInactivityTimerMinutes], a + jp BattleTowerRoomMenu2_IncrementJumptable +; 11a16d + +Function11a16d: ; 11a16d + ld a, [wMobileInactivityTimerMinutes] + and a + jr z, .asm_11a179 + dec a + ld [wMobileInactivityTimerMinutes], a + scf + ret + +.asm_11a179 + call Function11a63c + call Function11a1e6 + hlcoord 4, 2 + ld de, $c346 + call PlaceString + call Function11a5f5 + xor a + ld [wMobileInactivityTimerMinutes], a + jp BattleTowerRoomMenu2_IncrementJumptable +; 11a192 + +Function11a192: ; 11a192 + call Function11a536 + ret c + call PlayClickSFX + ld a, [wMobileInactivityTimerMinutes] + and a + jr nz, .asm_11a1b6 + call ExitMenu + callba ReloadMapPart + call Function11a63c + hlcoord 4, 2 + ld de, String_11a6d2 + call PlaceString + and a + ret + +.asm_11a1b6 + call ExitMenu + callba ReloadMapPart + ld a, [wMobileInactivityTimerSeconds] + ld [wcf66], a + ld [wcd80], a + call Function11a63c + hlcoord 4, 2 + ld de, String_11a6d2 + call PlaceString + scf + ret +; 11a1d6 + +Function11a1d6: ; 11a1d6 + ld a, [wcd85] + cp $50 + jr nz, .asm_11a1e4 + ld a, $d3 + call Function118805 + scf + ret + +.asm_11a1e4 + and a + ret +; 11a1e6 + +Function11a1e6: ; 11a1e6 + ld hl, String_11a706 + ld de, $c346 + call Function11a1ff + ld hl, wcd85 + call Function11a1ff + ld hl, String_11a70b + call Function11a1ff + ld a, $50 + ld [de], a + ret +; 11a1ff + +Function11a1ff: ; 11a1ff +.asm_11a1ff + ld a, [hli] + cp $50 + ret z + ld [de], a + inc de + jr .asm_11a1ff +; 11a207 + +BattleTowerRoomMenu2_PlaceYesNoMenu: ; 11a207 + ld hl, MenuDataHeader_11a2de + call LoadMenuDataHeader + call MenuBox + call MenuBoxCoord2Tile + call ApplyTilemap + hlcoord 16, 8 + ld de, String_11a2cf + call PlaceString + hlcoord 16, 10 + ld de, String_11a2d3 + call PlaceString + hlcoord 15, 8 + ld a, $ed + ld [hl], a + xor a + ld [wMobileInactivityTimerMinutes], a + jp BattleTowerRoomMenu2_IncrementJumptable +; 11a235 + +BattleTowerRoomMenu2_UpdateYesNoMenu: ; 11a235 + ld hl, hJoyPressed + ld a, [hl] + and A_BUTTON + jr nz, .a_button + ld a, [hl] + and B_BUTTON + jr nz, .b_button + ld a, [hl] + and D_UP + jr nz, .d_up + ld a, [hl] + and D_DOWN + jr nz, .d_down +.asm_11a24c + call Function11a9f0 + scf + ret + +.d_up + xor a + ld [wcd8a], a + ld [wcd8b], a + ld a, [wMobileInactivityTimerMinutes] + and a + jr z, .asm_11a24c + xor a + ld [wMobileInactivityTimerMinutes], a + hlcoord 15, 8 + ld a, $ed + ld [hl], a + hlcoord 15, 10 + ld a, $7f + ld [hl], a + jr .asm_11a24c + +.d_down + xor a + ld [wcd8a], a + ld [wcd8b], a + ld a, [wMobileInactivityTimerMinutes] + and a + jr nz, .asm_11a24c + inc a + ld [wMobileInactivityTimerMinutes], a + hlcoord 15, 8 + ld a, $7f + ld [hl], a + hlcoord 15, 10 + ld a, $ed + ld [hl], a + jr .asm_11a24c + +.a_button + xor a + ld [wcd8a], a + ld [wcd8b], a + call PlayClickSFX + ld a, [wMobileInactivityTimerMinutes] + and a + jr nz, .exit_no_carry + call ExitMenu + callba ReloadMapPart + ld a, [wMobileInactivityTimerFrames] + cp $0 + jr z, .asm_11a2b4 + ld a, [wcd47] + jr .exit_carry + +.asm_11a2b4 + ld a, [wcd33] + +.exit_carry + ld [wcf66], a + ld a, $a + ld [wc300], a + scf + ret + +.b_button + call PlayClickSFX + +.exit_no_carry + call ExitMenu + callba ReloadMapPart + and a + ret +; 11a2cf + +String_11a2cf: ; 11a2cf + db "YES@" +; 11a2d3 + +String_11a2d3: ; 11a2d3 + db "NO@" +; 11a2d6 + +MenuDataHeader_11a2d6: ; 11a2d6 + db $40 ; flags + db 6, 14 ; start coords + db 10, 19 ; end coords + dw NULL + db 0 ; default option +; 11a2de + +MenuDataHeader_11a2de: ; 11a2de + db $40 ; flags + db 7, 14 ; start coords + db 11, 19 ; end coords + dw NULL + db 0 ; default option +; 11a2e6 + +Function11a2e6: ; 11a2e6 + call Function11a63c + ld c, $2 + callba Function115e18 + hlcoord 4, 2 + ld de, String_11a71e + call PlaceString + ld a, $80 + ld [wMobileInactivityTimerMinutes], a + jp BattleTowerRoomMenu2_IncrementJumptable +; 11a302 + +Function11a302: ; 11a302 + ld a, [wMobileInactivityTimerMinutes] + and a + jr z, .asm_11a30e + dec a + ld [wMobileInactivityTimerMinutes], a + scf + ret + +.asm_11a30e + call Function11a63c + hlcoord 4, 2 + ld de, String_11a72a + call PlaceString + hlcoord 9, 4 + ld de, wcd68 + lb bc, PRINTNUM_LEADINGZEROS | 1, 2 + call PrintNum + hlcoord 14, 4 + ld de, wcd67 + lb bc, PRINTNUM_LEADINGZEROS | 1, 2 + call PrintNum + ld a, $80 + ld [wMobileInactivityTimerMinutes], a + jp BattleTowerRoomMenu2_IncrementJumptable +; 11a33a + +Function11a33a: ; 11a33a + ld a, [wMobileInactivityTimerMinutes] + and a + jr z, .asm_11a346 + dec a + ld [wMobileInactivityTimerMinutes], a + scf + ret + +.asm_11a346 + call ExitMenu + callba ReloadMapPart + callba Function115dc3 + and a + ret +; 11a357 + +Function11a357: ; 11a357 + call Function11a63c + hlcoord 4, 2 + ld de, String_11a743 + call PlaceString + ld a, $80 + ld [wMobileInactivityTimerMinutes], a + jp BattleTowerRoomMenu2_IncrementJumptable +; 11a36b + +Function11a36b: ; 11a36b + ld a, [wMobileInactivityTimerMinutes] + and a + jr z, .asm_11a377 + dec a + ld [wMobileInactivityTimerMinutes], a + scf + ret + +.asm_11a377 + call Function11a63c + hlcoord 4, 2 + ld de, String_11a755 + call PlaceString + call Function11a5f5 + xor a + ld [wMobileInactivityTimerMinutes], a + jp BattleTowerRoomMenu2_IncrementJumptable +; 11a38d + +Function11a38d: ; 11a38d + call Function11a536 + ret c + call PlayClickSFX + ld a, [wMobileInactivityTimerMinutes] + and a + jr nz, .asm_11a3b1 + call ExitMenu + callba ReloadMapPart + call Function11a63c + hlcoord 4, 2 + ld de, String_11a6d2 + call PlaceString + and a + ret + +.asm_11a3b1 + call ExitMenu + callba ReloadMapPart + ld a, [wMobileInactivityTimerSeconds] + ld [wcf66], a + ld [wcd80], a + scf + ret +; 11a3c5 + +Function11a3c5: ; 11a3c5 + call Function11a63c + hlcoord 4, 2 + ld de, String_11a762 + call PlaceString + ld a, $80 + ld [wMobileInactivityTimerMinutes], a + jp BattleTowerRoomMenu2_IncrementJumptable +; 11a3d9 + +Function11a3d9: ; 11a3d9 + ld a, [wMobileInactivityTimerMinutes] + and a + jr z, .asm_11a3e5 + dec a + ld [wMobileInactivityTimerMinutes], a + scf + ret + +.asm_11a3e5 + call Function11a63c + hlcoord 4, 2 + ld de, String_11a779 + call PlaceString + ld a, $80 + ld [wMobileInactivityTimerMinutes], a + jp BattleTowerRoomMenu2_IncrementJumptable +; 11a3f9 + +Function11a3f9: ; 11a3f9 + ld a, [wMobileInactivityTimerMinutes] + and a + jr z, .asm_11a405 + dec a + ld [wMobileInactivityTimerMinutes], a + scf + ret + +.asm_11a405 + call Function11a63c + hlcoord 4, 2 + ld de, String_11a755 + call PlaceString + call Function11a5f5 + xor a + ld [wMobileInactivityTimerMinutes], a + jp BattleTowerRoomMenu2_IncrementJumptable +; 11a41b + +Function11a41b: ; 11a41b + call Function11a536 + ret c + call PlayClickSFX + ld a, [wMobileInactivityTimerMinutes] + and a + jr nz, .asm_11a43f + call ExitMenu + callba ReloadMapPart + call Function11a63c + hlcoord 4, 2 + ld de, String_11a6d2 + call PlaceString + and a + ret + +.asm_11a43f + call ExitMenu + callba ReloadMapPart + ld a, $1c + ld [wcf66], a + ld [wcd80], a + scf + ret +; 11a452 + +Function11a452: ; 11a452 + call Function11a63c + hlcoord 4, 2 + ld de, String_11a791 + call PlaceString + ld a, $80 + ld [wMobileInactivityTimerMinutes], a + jp BattleTowerRoomMenu2_IncrementJumptable +; 11a466 + +Function11a466: ; 11a466 + call Function11a63c + hlcoord 4, 2 + ld de, String_11a7c1 + call PlaceString + ld a, $80 + ld [wMobileInactivityTimerMinutes], a + jp BattleTowerRoomMenu2_IncrementJumptable +; 11a47a + +Function11a47a: ; 11a47a + ld a, [wMobileInactivityTimerMinutes] + and a + jr z, .asm_11a486 + dec a + ld [wMobileInactivityTimerMinutes], a + scf + ret + +.asm_11a486 + and a + ret +; 11a488 + +Function11a488: ; 11a488 + call Function11a63c + hlcoord 4, 2 + ld de, String_11a7ac + call PlaceString + call Function11a5f5 + xor a + ld [wMobileInactivityTimerMinutes], a + jp BattleTowerRoomMenu2_IncrementJumptable +; 11a49e + +Function11a49e: ; 11a49e + call Function11a536 + ret c + call PlayClickSFX + ld a, [wMobileInactivityTimerMinutes] + and a + jr nz, .asm_11a4c7 + call ExitMenu + callba ReloadMapPart + call Function11a63c + hlcoord 4, 2 + ld de, String_11a6d2 + call PlaceString + ld a, $14 + ld [wcf66], a + and a + ret + +.asm_11a4c7 + call ExitMenu + callba ReloadMapPart + ld a, [wMobileInactivityTimerFrames] + ld [wcf66], a + ld [wcd80], a + scf + ret +; 11a4db + +Function11a4db: ; 11a4db + call Function11a63c + ld de, String_11a6db + hlcoord 4, 2 + call PlaceString + ret +; 11a4e8 + +Function11a4e8: ; 11a4e8 + call Function11a63c + hlcoord 4, 2 + ld de, String_11a7d7 + call PlaceString + call Function11a5f5 + xor a + ld [wMobileInactivityTimerMinutes], a + jp BattleTowerRoomMenu2_IncrementJumptable +; 11a4fe + +Function11a4fe: ; 11a4fe + call Function11a536 + ret c + call PlayClickSFX + ld a, [wMobileInactivityTimerMinutes] + and a + jr nz, .asm_11a522 + call ExitMenu + callba ReloadMapPart + call Function11a63c + hlcoord 4, 2 + ld de, String_11a6d2 + call PlaceString + and a + ret + +.asm_11a522 + call ExitMenu + callba ReloadMapPart + ld a, [wMobileInactivityTimerSeconds] + ld [wcf66], a + ld [wcd80], a + scf + ret +; 11a536 + +Function11a536: ; 11a536 + ld hl, hJoyPressed + ld a, [hl] + and $1 + jr nz, .asm_11a5a7 + ld a, [hl] + and $2 + jr nz, .asm_11a5a2 + ld a, [hl] + and $40 + jr nz, .asm_11a564 + ld a, [hl] + and $80 + jr nz, .asm_11a583 +.asm_11a54d + ld a, [wcd3c] + cp $4 + jr z, .asm_11a562 + call Function11a9f0 + jr nz, .asm_11a562 + call ExitMenu + callba ReloadMapPart + +.asm_11a562 + scf + ret + +.asm_11a564 + xor a + ld [wcd8a], a + ld [wcd8b], a + ld a, [wMobileInactivityTimerMinutes] + and a + jr z, .asm_11a54d + xor a + ld [wMobileInactivityTimerMinutes], a + hlcoord 15, 7 + ld a, $ed + ld [hl], a + hlcoord 15, 9 + ld a, $7f + ld [hl], a + jr .asm_11a54d + +.asm_11a583 + xor a + ld [wcd8a], a + ld [wcd8b], a + ld a, [wMobileInactivityTimerMinutes] + and a + jr nz, .asm_11a54d + inc a + ld [wMobileInactivityTimerMinutes], a + hlcoord 15, 7 + ld a, $7f + ld [hl], a + hlcoord 15, 9 + ld a, $ed + ld [hl], a + jr .asm_11a54d + +.asm_11a5a2 + ld a, $1 + ld [wMobileInactivityTimerMinutes], a + +.asm_11a5a7 + xor a + ld [wcd8a], a + ld [wcd8b], a + and a + ret +; 11a5b0 + +BattleTowerRoomMenu2_IncrementJumptable: ; 11a5b0 + ld a, [wcd3c] + inc a + ld [wcd3c], a + scf + ret +; 11a5b9 + +Function11a5b9: ; 11a5b9 + xor a + ld [wMenuBorderLeftCoord], a + ld [wMenuBorderTopCoord], a + ld a, $13 + ld [wMenuBorderRightCoord], a + ld a, $5 + ld [wMenuBorderBottomCoord], a + call PushWindow + hlcoord 0, 0, AttrMap + ld b, $6 + ld c, $14 + hlcoord 0, 0 + ld b, $4 + ld c, $12 + call Function3eea + callba ReloadMapPart + call UpdateSprites + ld c, $0 + callba Function115e18 + ld a, $1 + ld [wc305], a + ret +; 11a5f5 + +Function11a5f5: ; 11a5f5 + ld a, $e + ld [wMenuBorderLeftCoord], a + ld a, $13 + ld [wMenuBorderRightCoord], a + ld a, $6 + ld [wMenuBorderTopCoord], a + ld a, $a + ld [wMenuBorderBottomCoord], a + call PushWindow + hlcoord 14, 6, AttrMap + ld b, $5 + ld c, $6 + hlcoord 14, 6 + ld b, $3 + ld c, $4 + call Function3eea + hlcoord 16, 7 + ld de, String_11a2cf + call PlaceString + hlcoord 16, 9 + ld de, String_11a2d3 + call PlaceString + hlcoord 15, 7 + ld a, $ed + ld [hl], a + callba ReloadMapPart + ret +; 11a63c + +Function11a63c: ; 11a63c + hlcoord 4, 1 + ld de, String_11a7f4 + call PlaceString + hlcoord 4, 2 + ld de, String_11a7f4 + call PlaceString + hlcoord 4, 3 + ld de, String_11a7f4 + call PlaceString + hlcoord 4, 4 + ld de, String_11a7f4 + call PlaceString + ret +; 11a661 + +String_11a661: ; 11a661 + db "これから モバイルセンターに" + next "でんわ", $1f, "かけます@" +; 11a679 + +String_11a679: ; 11a679 + db "モバイルアダプタ", $25, "じゅんびは" + next "できて いますか?@" +; 11a692 + +String_11a692: ; 11a692 + db "でんわ", $1f, "かけています" + next "しばらく おまちください@" +; 11a6aa + +String_11a6aa: ; 11a6aa + db "でんわをかけると つうわりょう" + next "せつぞくりょう", $4a, "かかります@" +; 11a6c8 + +String_11a6c8: ; 11a6c8 + db "せつぞく しました@" +; 11a6d2 + +String_11a6d2: ; 11a6d2 + db "つうしん ちゅう@" +; 11a6db + +String_11a6db: ; 11a6db + db "つうしん ちゅう" + next "セレクト エーでちゅうし@" +; 11a6f1 + +String_11a6f1: ; 11a6f1 + db "この サービスには" + next "つうわりょう", $25, "ほかに@" +; 11a706 + +String_11a706: ; 11a706 + db "おかね", $4a, "@" +; 11a70b + +String_11a70b: ; 11a70b + db "えん" + next "かかります よろしい ですか?@" +; 11a71e + +String_11a71e: ; 11a71e + db "つうしん しゅうりょう@" +; 11a72a + +String_11a72a: ; 11a72a + db "つないだ じかん" + next " やく ふん びょう@" +; 11a743 + +String_11a743: ; 11a743 + db "もっていない データが" + next "あります!@" +; 11a755 + +String_11a755: ; 11a755 + db "データ", $1f, "よみこみますか?@" +; 11a762 + +String_11a762: ; 11a762 + db "おなじ データ", $1f, "よみこんだ" + next "こと", $4a, "ありますが@" +; 11a779 + +String_11a779: ; 11a779 + db "そのデータ", $24, "なくなっているか" + next "こわれて います@" +; 11a791 + +String_11a791: ; 11a791 + db "もっている データと" + next "おなじデータしか ありません!@" +; 11a7ac + +String_11a7ac: ; 11a7ac + db "データ", $25, "よみこみを" + next "ちゅうし しますか?@" +; 11a7c1 + +String_11a7c1: ; 11a7c1 ; new news? + db "あたらしい ニュースは" + next "ありません でした@" +; 11a7d7 + +String_11a7d7: ; 11a7d7 + db "あたらしいニュース", $4a, "あります" + next "ニュース", $1f, "よみこみますか?@" +; 11a7f4 + +String_11a7f4: ; 11a7f4 + db " @" +; 11a804 + +MenuDataHeader_11a804: ; 11a804 + db $40 ; flags + db 0, 0 ; start coords + db 5, 19 ; end coords + dw NULL + db 0 ; default option +; 11a80c + +Function11a80c: ; 11a80c + ld de, hDivisor + ld bc, hDividend + ld hl, Unknown_11a89a + call Function11a88c + ld bc, hQuotient + ld hl, Unknown_11a8ba + call Function11a88c + ld bc, hPrintNum3 + ld hl, Unknown_11a8da + call Function11a88c + xor a + ld b, a + ld a, [hDivisor] + and $f + ld e, a + ld a, [hPrintNum7] + and $f + call Function11a884 + ld e, a + ld a, [hPrintNum9] + and $f + call Function11a884 + ld [wcd62], a + ld e, b + xor a + ld b, a + ld a, [hDivisor] + and $f0 + swap a + call Function11a884 + ld e, a + ld a, [hPrintNum7] + and $f0 + swap a + call Function11a884 + ld e, a + ld a, [hPrintNum9] + and $f0 + swap a + call Function11a884 + ld [wcd63], a + ld e, b + xor a + ld b, a + ld a, [hMathBuffer] + and $f + call Function11a884 + ld e, a + ld a, [hPrintNum8] + and $f + call Function11a884 + ld e, a + ld a, [hPrintNum10] + and $f + call Function11a884 + ld [wcd64], a + ret +; 11a884 + +Function11a884: ; 11a884 + add e + cp $a + ret c + sub $a + inc b + ret +; 11a88c + +Function11a88c: ; 11a88c + ld a, [bc] + sla a + ld c, a + xor a + ld b, a + add hl, bc + ld a, [hli] + ld [de], a + inc de + ld a, [hl] + ld [de], a + inc de + ret +; 11a89a + +Unknown_11a89a: ; 11a89a +x = 0 +rept 16 + bcd x % 100, x / 100 +x = x + 1 +endr + +Unknown_11a8ba: ; 11a8ba +x = 0 +rept 16 + bcd x % 100, x / 100 +x = x + 16 +endr + +Unknown_11a8da: ; 11a8da +x = 0 +rept 16 + bcd x % 100, x / 100 +x = x + 256 +endr +; 11a8fa + +BattleTowerRoomMenu_WriteMessage: ; 11a8fa + jumptable .Jumptable, $c31a +; 11a909 + +.Jumptable: ; 11a909 + dw BattleTowerRoomMenu_WriteMessage_DoNothing + dw Function11a90f + dw Function11a971 +; 11a90f + +Function11a90f: ; 11a90f + ld a, $1 + ld [rSVBK], a + call SpeechTextBox + ld a, $50 + ld hl, $c320 + ld bc, $008c + call ByteFill + ld a, [$c31b] + ld l, a + ld a, [$c31c] + ld h, a + ld de, $c320 +.asm_11a92c + ld a, [hli] + cp $57 + jr z, .asm_11a94f + cp $0 + jr z, .asm_11a92c + cp $50 + jr z, .asm_11a92c + cp $1 + jr z, .asm_11a941 + ld [de], a + inc de + jr .asm_11a92c + +.asm_11a941 + ld a, [hli] + ld c, a + ld a, [hli] + ld b, a +.asm_11a945 + ld a, [bc] + inc bc + cp $50 + jr z, .asm_11a92c + ld [de], a + inc de + jr .asm_11a945 + +.asm_11a94f + xor a + ld [$c31f], a + ld a, $c320 % $100 + ld [$c31b], a + ld a, $c320 / $100 + ld [$c31c], a + hlcoord 1, 14 + ld a, l + ld [$c31d], a + ld a, h + ld [$c31e], a + ld hl, $c31a + inc [hl] + ld a, $3 + ld [rSVBK], a + +BattleTowerRoomMenu_WriteMessage_DoNothing: + ret +; 11a971 + +Function11a971: ; 11a971 + ld hl, $c31f + ld a, [hJoyDown] + and a + jr nz, .asm_11a97f + ld a, [hl] + and a + jr z, .asm_11a97f + dec [hl] + ret + +.asm_11a97f + ld a, [Options] + and $7 + ld [hl], a + ld hl, wcd8d + ld a, [$c31b] + ld e, a + ld a, [$c31c] + ld d, a + ld a, [de] + inc de + ld [hli], a + ld a, e + ld [$c31b], a + ld a, d + ld [$c31c], a + ld a, $50 + ld [hl], a + ld a, [$c31d] + ld l, a + ld a, [$c31e] + ld h, a + ld de, wcd8d + call PlaceString + ld a, c + ld [$c31d], a + ld a, b + ld [$c31e], a + ld a, [wcd8d] + cp $50 + jr nz, .asm_11a9bf + xor a + ld [$c31a], a + +.asm_11a9bf + ret +; 11a9c0 + +BattleTowerRoomMenu_SetMessage: ; 11a9c0 + ld a, l + ld [$c31b], a + ld a, h + ld [$c31c], a + ld a, $1 + ld [$c31a], a + ret +; 11a9ce + +Function11a9ce: ; 11a9ce + call ClearBGPalettes + call ReloadTilesetAndPalettes + call Call_ExitMenu + callba MobileFunc_106462 + callba Function106464 + call ret_d90 + callba FinishExitMenu + call UpdateSprites + ret +; 11a9f0 + +Function11a9f0: ; 11a9f0 + ld a, $1 + and a + ret +; 11a9f4 + +Function11a9f4: ; 11a9f4 + ld a, [wcd8a] + ld l, a + ld a, [wcd8b] + ld h, a + inc hl + ld a, l + ld [wcd8a], a + ld a, h + ld [wcd8b], a + ld de, $d5d0 + add hl, de + bit 7, h + ret nz + ld a, $d6 + call Function118805 + and a + ret +; 11aa13 + +Text_SaveFileWillBeSent: ; 0x11aa13 + text "SAVE FILE will be" + line "sent." + done +; 0x11aa2c + +Text_SentSaveFileReadingNews: ; 0x11aa2c + text "Sent SAVE FILE." + line "Reading NEWS…" + done +; 0x11aa4b + +Text_ReadingNews: ; 0x11aa4b + text "Reading NEWS…" + done +; 0x11aa5a + +Text_ReceivedNews: ; 0x11aa5a + text "Received NEWS!" + done +; 0x11aa6a + +Text_QuitReadingNews: ; 0x11aa6a + text "Quit reading NEWS?" + done +; 0x11aa7e + +Text_CanceledSendingSaveFile: ; 0x11aa7e + text "Canceled sending" + line "SAVE FILE." + done +; 0x11aa9b + +Text_ReceivedOddEgg: ; 0x11aa9b + text "ODD EGG" + line "was received!" + done +; 0x11aab2 + +Text_RegisteringRecord: ; 0x11aab2 + text "Registering your" + line "record…" + done +; 0x11aacc + +Text_BattleRoomVisitLimit: ; 0x11aacc + text "One visit per day" + line "per BATTLE ROOM!" + done +; 0x11aaf0 + +Text_PartyMonTopsThisLevel: ; 0x11aaf0 + text "A party #MON" + line "tops this level." + done +; 0x11ab0f + +Text_UberRestriction: ; 0x11ab0f + text_from_ram wcd49 + text " may go" + line "only to BATTLE" + + para "ROOMS that are" + line "Lv.70 or higher." + done +; 0x11ab4a + +Text_CancelBattleRoomChallenge: ; 0x11ab4a + text "Cancel your BATTLE" + line "ROOM challenge?" + done +; 0x11ab6e + +Text_ExitGymLeaderHonorRoll: ; 0x11ab6e + text "Exit GYM LEADER" + line "HONOR ROLL?" + done +; 0x11ab8b + +Text_LinkingWithCenter: ; 0x11ab8b + text "Linking with the" + line "CENTER…" + done +; 0x11aba5 + +Text_WhatLevelDoYouWantToChallenge: ; 0x11aba5 + text "What level do you" + line "want to challenge?" + done +; 0x11abcb + +Text_CheckBattleRoomListByMaxLevel: ; 0x11abcb + text "Check BATTLE ROOM" + line "list by max level?" + done +; 0x11abf1 + +Text_EnterWhichBattleRoom: ; 0x11abf1 + text "Enter which" + line "BATTLE ROOM?" + done +; 0x11ac0b + +Text_WhichBattleRoom: ; 0x11ac0b + text "Which BATTLE ROOM?" + done +; 0x11ac1f + +Text_ThisBattleRoomPleaseWait: ; 0x11ac1f + text_from_ram StringBuffer3 + text "'s ROOM" + line "@" + text_from_ram StringBuffer4 + text "?" + cont "Please wait…" + done +; 0x11ac3e + +Function11ac3e: ; 11ac3e + call SpeechTextBox + call FadeToMenu + callab ClearSpriteAnims2 + call Function11ac51 + call CloseSubmenu + ret +; 11ac51 + +Function11ac51: ; 11ac51 + xor a + ld [hBGMapMode], a + 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 + ld [wcd49], a + ld [wcd4a], a + ld [wcd4c], a + ld [wcd4d], a + ld [wcd4e], a + call Function11ad1b + call DelayFrame +.loop + call JoyTextDelay + ld a, [wJumptableIndex] + bit 7, a + jr nz, .asm_11aca8 + call Function11b314 + call Function11acb7 + call Function11ad6e + ld a, 30 * 4 + ld [wCurrSpriteOAMAddr], a + callba DoNextFrameForAllSprites + callba ReloadMapPart + jr .loop + +.asm_11aca8 + call ClearSprites + pop af + ld [hInMenu], a + pop af + ld [VramState], a + pop af + ld [Options], a + ret +; 11acb7 + +Function11acb7: ; 11acb7 + ld hl, TilemapPack_11ba44 + ld a, [wcd49] + ld c, a + ld b, $0 + sla c + rl b + sla c + rl b + sla c + rl b + add hl, bc + decoord 6, 6 + ld a, [hli] + ld [de], a + decoord 0, 7 + ld bc, 7 + call CopyBytes + ld a, [wcd49] + inc a + ld [wcd49], a + ld a, [hl] + cp $ff + jr nz, .get_the_other + xor a + ld [wcd49], a +.get_the_other + ld hl, TilemapPack_11bb7d + ld a, [wcd4a] + ld c, a + ld b, $0 + sla c + rl b + sla c + rl b + sla c + rl b + add hl, bc + decoord 3, 9 + ld bc, 7 + call CopyBytes + ld a, [wcd4a] + inc a + ld [wcd4a], a + inc hl + ld a, [hl] + cp $ff + ret nz + xor a + ld [wcd4a], a + ret +; 11ad1b + +Function11ad1b: ; 11ad1b + call ClearBGPalettes + call ClearSprites + call ClearTileMap + callba Function17c000 + ld a, [wMenuCursorY] + ld [wcd82], a + dec a + ld [hObjectStructIndexBuffer], a + ld a, $10 + ld [wCurIconTile], a + ld hl, LoadMenuMonIcon + ld a, BANK(LoadMenuMonIcon) + ld e, $4 + rst FarCall + ld hl, LoadMenuMonIcon + ld a, BANK(LoadMenuMonIcon) + ld e, $5 + rst FarCall + ld hl, $c6d0 + ld bc, $0115 + xor a + call ByteFill + xor a + ld [wJumptableIndex], a + ld [wcf64], a + ld [wcf65], a + ld [wcf66], a + ld [wcd30], a + ld a, $2 + ld [wc7d4], a + callba Pokedex_OrderMonsByMode + ret +; 11ad6e + +Function11ad6e: ; 11ad6e + ld a, [wJumptableIndex] + ld hl, Jumptable_11ad78 + call Function11b239 + jp hl +; 11ad78 + +Jumptable_11ad78: ; 11ad78 + dw Function11b082 + dw Function11b0ff + dw Function11ad95 + dw Function11adc4 + dw Function11ae4e + dw Function11ae98 + dw Function11ad8f + dw Function11af04 + dw Function11af4e +; 11ad8a + +Function11ad8a: ; 11ad8a + ld hl, wJumptableIndex + inc [hl] + ret +; 11ad8f + +Function11ad8f: ; 11ad8f + ld hl, wJumptableIndex + set 7, [hl] + ret +; 11ad95 + +Function11ad95: ; 11ad95 + ld hl, MenuDataHeader_11ae38 + call LoadMenuDataHeader + call MenuBox + hlcoord 12, 12 + ld de, String_11ae40 + call PlaceString + hlcoord 10, 10, AttrMap + lb bc, 8, 8 + call Function11afd6 + callba ReloadMapPart + call Function11ad8a + ld a, $1 + ld [wMenuCursorY], a + ld hl, Unknown_11afcc + call Function11afb7 + +Function11adc4: + ld hl, hJoyPressed + ld a, [hl] + and a + ret z + ld a, [hl] + and $40 + jr nz, .asm_11ade6 + ld a, [hl] + and $80 + jr nz, .asm_11aded + ld a, [hl] + and $1 + jr nz, .asm_11ae06 + ld a, [hl] + and $2 + ret z + call PlayClickSFX + xor a + ld [wJumptableIndex], a + jr .asm_11ae2e + +.asm_11ade6 + ld a, [wMenuCursorY] + dec a + ret z + jr .asm_11adf4 + +.asm_11aded + ld a, [wMenuCursorY] + inc a + cp $4 + ret z + +.asm_11adf4 + push af + ld hl, Unknown_11afcc + call Function11afbb + pop af + ld [wMenuCursorY], a + ld hl, Unknown_11afcc + call Function11afb7 + ret + +.asm_11ae06 + call PlayClickSFX + ld a, [wMenuCursorY] + dec a + ld hl, wcd30 + ld [hl], a + and a + jr z, .asm_11ae28 + hlcoord 2, 14 + ld a, [wMenuCursorY] + cp $2 + jr z, .asm_11ae23 + call Function11b272 + jr .asm_11ae2b + +.asm_11ae23 + call Function11b267 + jr .asm_11ae2b + +.asm_11ae28 + ld a, $3 + ld [hl], a + +.asm_11ae2b + call Function11ad8a + +.asm_11ae2e + call ExitMenu + callba ReloadMapPart + ret +; 11ae38 + +MenuDataHeader_11ae38: ; 11ae38 + db $40 ; flags + db 10, 10 ; start coords + db 17, 17 ; end coords + dw NULL + db 0 ; default option +; 11ae40 + +String_11ae40: ; 11ae40 + db "どちらでも" + next "♂ォス" + next "♀メス" + db "@" +; 11ae4e + +Function11ae4e: ; 11ae4e + ld hl, MenuDataHeader_11afe8 + call LoadMenuDataHeader + call MenuBox + hlcoord 10, 14 + ld de, String_11aff0 + call PlaceString + ld hl, MenuDataHeader_11b013 + call LoadMenuDataHeader + call MenuBox + hlcoord 16, 8 + ld de, String_11b01b + call PlaceString + hlcoord 14, 7, AttrMap + lb bc, 5, 6 + call Function11afd6 + hlcoord 9, 12, AttrMap + lb bc, 6, 11 + call Function11afd6 + callba ReloadMapPart + call Function11ad8a + ld a, $1 + ld [wMenuCursorY], a + ld hl, Unknown_11afd2 + call Function11afb7 + +Function11ae98: + ld hl, hJoyPressed + ld a, [hl] + and a + ret z + ld a, [hl] + and D_UP + jr nz, .asm_11aec1 + ld a, [hl] + and D_DOWN + jr nz, .asm_11aec8 + ld a, [hl] + and A_BUTTON + jr nz, .asm_11aee1 + ld a, [hl] + and B_BUTTON + ret z + call PlayClickSFX +.asm_11aeb4 + hlcoord 2, 14 + ld a, $7f + ld [hl], a + ld a, $1 + ld [wJumptableIndex], a + jr .asm_11aef7 + +.asm_11aec1 + ld a, [wMenuCursorY] + dec a + ret z + jr .asm_11aecf + +.asm_11aec8 + ld a, [wMenuCursorY] + inc a + cp $3 + ret z + +.asm_11aecf + push af + ld hl, Unknown_11afd2 + call Function11afbb + pop af + ld [wMenuCursorY], a + ld hl, Unknown_11afd2 + call Function11afb7 + ret + +.asm_11aee1 + call PlayClickSFX + ld a, [wMenuCursorY] + cp $2 + jr z, .asm_11aeb4 + ld a, [wcd4b] + ld [ScriptVar], a + call Function11b022 + call Function11ad8a + +.asm_11aef7 + call ExitMenu + call ExitMenu + callba ReloadMapPart + ret +; 11af04 + +Function11af04: ; 11af04 + ld hl, MenuDataHeader_11afe8 + call LoadMenuDataHeader + call MenuBox + hlcoord 10, 14 + ld de, String_11b003 + call PlaceString + ld hl, MenuDataHeader_11b013 + call LoadMenuDataHeader + call MenuBox + hlcoord 16, 8 + ld de, String_11b01b + call PlaceString + hlcoord 14, 7, AttrMap + lb bc, 5, 6 + call Function11afd6 + hlcoord 9, 12, AttrMap + lb bc, 6, 11 + call Function11afd6 + callba ReloadMapPart + call Function11ad8a + ld a, $2 + ld [wMenuCursorY], a + ld hl, Unknown_11afd2 + call Function11afb7 + +Function11af4e: + ld hl, hJoyPressed + ld a, [hl] + and a + ret z + ld a, [hl] + and D_UP + jr nz, .asm_11af77 + ld a, [hl] + and D_DOWN + jr nz, .asm_11af7e + ld a, [hl] + and A_BUTTON + jr nz, .asm_11af97 + ld a, [hl] + and B_BUTTON + ret z + call PlayClickSFX +.asm_11af6a + hlcoord 2, 14 + ld a, $7f + ld [hl], a + ld a, $1 + ld [wJumptableIndex], a + jr .asm_11afaa + +.asm_11af77 + ld a, [wMenuCursorY] + dec a + ret z + jr .asm_11af85 + +.asm_11af7e + ld a, [wMenuCursorY] + inc a + cp $3 + ret z + +.asm_11af85 + push af + ld hl, Unknown_11afd2 + call Function11afbb + pop af + ld [wMenuCursorY], a + ld hl, Unknown_11afd2 + call Function11afb7 + ret + +.asm_11af97 + call PlayClickSFX + ld a, [wMenuCursorY] + cp $2 + jr z, .asm_11af6a + ld a, $6 + ld [wJumptableIndex], a + xor a + ld [ScriptVar], a + +.asm_11afaa + call ExitMenu + call ExitMenu + callba ReloadMapPart + ret +; 11afb7 + +Function11afb7: ; 11afb7 + ld e, $ed + jr asm_11afbd + +Function11afbb: + ld e, $7f + +asm_11afbd: + ld a, [wMenuCursorY] + dec a + ld c, a + ld b, 0 + add hl, bc + add hl, bc + ld a, e + ld e, [hl] + inc hl + ld d, [hl] + ld [de], a + ret +; 11afcc + +Unknown_11afcc: + dwcoord 11, 12 + dwcoord 11, 14 + dwcoord 11, 16 + +Unknown_11afd2: + dwcoord 15, 8 + dwcoord 15, 10 +; 11afd6 + +Function11afd6: ; 11afd6 + ld de, SCREEN_WIDTH + ld a, $3 +.row + push bc + push hl +.col + ld [hli], a + dec c + jr nz, .col + pop hl + add hl, de + pop bc + dec b + jr nz, .row + ret +; 11afe8 + +MenuDataHeader_11afe8: ; 11afe8 + db $40 ; flags + db 12, 9 ; start coords + db 17, 19 ; end coords + dw NULL + db 0 ; default option +; 11aff0 + +String_11aff0: ; 11aff0 + db "この じょうけんで" + next "よろしいですか?@" +; 11b003 + +String_11b003: ; 11b003 + db "こうかんを" + next "ちゅうししますか?@" +; 11b013 + +MenuDataHeader_11b013: ; 11b013 + db $40 ; flags + db 7, 14 ; start coords + db 11, 19 ; end coords + dw NULL + db 1 ; default option +; 11b01b + +String_11b01b: + db "はい" + next "いいえ@" +; 11b022 + +Function11b022: ; 11b022 + ld a, [wcd2e] + and a + jr z, .asm_11b02e + ld hl, StringBuffer3 + call Function11b03d + +.asm_11b02e + ld a, [wcd30] + and a + ret z + cp $3 + ret z + ld hl, StringBuffer4 + call Function11b03d + ret +; 11b03d + +Function11b03d: ; 11b03d + push hl + push af + ld c, $1 +.loop + ld a, [hli] + cp "♂" + jr z, .gender + cp "♀" + jr z, .gender + cp "@" + jr z, .done + inc c + jr .loop + +.gender + dec hl + ld a, "@" + ld [hli], a + +.done + dec hl + push hl + ld e, 4 + ld d, 0 + add hl, de + ld e, l + ld d, h + pop hl +.loop2 + ld a, [hld] + ld [de], a + dec de + dec c + jr nz, .loop2 + pop af + pop de + cp $1 + jr nz, .female + ld hl, .MaleString + jr .got_string + +.female + ld hl, .FemaleString + +.got_string + ld bc, 4 ; string length + call CopyBytes + ret +; 11b07a + +.MaleString: db "ォスの " +.FemaleString: db "メスの " + +Function11b082: ; 11b082 + call Function11b242 + ld a, $7 + ld [wc7d3], a + call Function11b099 + call Function11b295 + call Function11b275 + call SetPalettes + jp Function11ad8a +; 11b099 + +Function11b099: ; 11b099 + ld c, $6 + hlcoord 11, 1 + ld a, [wc7d3] + add a + ld b, a + xor a + call Function11b236 + ld a, [wc7d0] + ld e, a + ld d, $0 + ld hl, wc6d0 + add hl, de + ld e, l + ld d, h + hlcoord 11, 2 + ld a, [wc7d3] +.loop + push af + ld a, [de] + ld [wd265], a + push de + push hl + call .PlaceMonNameOrPlaceholderString + pop hl + ld de, 2 * SCREEN_WIDTH + add hl, de + pop de + inc de + pop af + dec a + jr nz, .loop + ret +; 11b0cf + +.PlaceMonNameOrPlaceholderString: ; 11b0cf + and a + ret z + + call .CheckSeenFlag + ret c + + call .SetCaughtFlag + push hl + call GetPokemonName + pop hl + call PlaceString + ret +; 11b0e1 + +.SetCaughtFlag: ; 11b0e1 + call CheckCaughtMemMon + jr nz, .okay + inc hl + ret + +.okay + ld a, $1 + ld [hli], a + ret +; 11b0ec + +.CheckSeenFlag: ; 11b0ec + call CheckSeenMemMon + ret nz + + inc hl + ld de, .EmptySlot + call PlaceString + scf + ret +; 11b0f9 + +.EmptySlot: ; 11b0f9 + db "ーーーーー@" +; 11b0ff + +Function11b0ff: ; 11b0ff + ld hl, hJoyPressed + ld a, [hl] + and $2 + jr nz, .asm_11b141 + ld a, [hl] + and $1 + jr nz, .asm_11b131 + call Function11b175 + jr nc, .asm_11b125 + ld a, [wcd4c] + inc a + and $3 + ld [wcd4c], a + xor a + ld [hBGMapMode], a + call Function11b099 + ld a, $1 + ld [hBGMapMode], a + ret + +.asm_11b125 + ld a, [wcd4c] + and a + ret z + inc a + and $3 + ld [wcd4c], a + ret + +.asm_11b131 + call Function11b20b + call CheckSeenMemMon + jr z, .asm_11b13d + ld a, $1 + jr .asm_11b148 + +.asm_11b13d + ld a, $2 + jr .asm_11b148 + +.asm_11b141 + ld hl, wJumptableIndex + ld a, $7 + ld [hl], a + ret + +.asm_11b148 + call PlayClickSFX + ld [wcd4b], a + and a + jr z, .asm_11b16c + ld a, [wcf65] + cp $0 + jr z, .asm_11b163 + cp $fe + jr z, .asm_11b167 + cp $ff + jr z, .asm_11b16b + jp Function11ad8a + +.asm_11b163 + ld a, $1 + jr .asm_11b16c + +.asm_11b167 + ld a, $2 + jr .asm_11b16c + +.asm_11b16b + xor a + +.asm_11b16c + ld [wcd30], a + ld a, $4 + ld [wJumptableIndex], a + ret +; 11b175 + +Function11b175: ; 11b175 + ld a, [wc7d3] + ld d, a + ld a, [wc7d2] + ld e, a + ld hl, hJoyLast + ld a, [hl] + and $40 + jr nz, .asm_11b19a + ld a, [hl] + and $80 + jr nz, .asm_11b1ae + ld a, d + cp e + jr nc, .asm_11b1ed + ld a, [hl] + and $20 + jr nz, .asm_11b1c6 + ld a, [hl] + and $10 + jr nz, .asm_11b1d8 + jr .asm_11b1ed + +.asm_11b19a + ld hl, wc7d1 + ld a, [hl] + and a + jr z, .asm_11b1a4 + dec [hl] + jr .asm_11b1ef + +.asm_11b1a4 + ld hl, wc7d0 + ld a, [hl] + and a + jr z, .asm_11b1ed + dec [hl] + jr .asm_11b1ef + +.asm_11b1ae + ld hl, wc7d1 + ld a, [hl] + inc a + cp e + jr nc, .asm_11b1ed + cp d + jr nc, .asm_11b1bc + inc [hl] + jr .asm_11b1ef + +.asm_11b1bc + ld hl, wc7d0 + add [hl] + cp e + jr nc, .asm_11b1ed + inc [hl] + jr .asm_11b1ef + +.asm_11b1c6 + ld hl, wc7d0 + ld a, [hl] + and a + jr z, .asm_11b1ed + cp d + jr nc, .asm_11b1d4 + xor a + ld [hl], a + jr .asm_11b1ef + +.asm_11b1d4 + sub d + ld [hl], a + jr .asm_11b1ef + +.asm_11b1d8 + ld hl, wc7d0 + ld a, d + add a + add [hl] + jr c, .asm_11b1e3 + cp e + jr c, .asm_11b1e8 + +.asm_11b1e3 + ld a, e + sub d + ld [hl], a + jr .asm_11b1ef + +.asm_11b1e8 + ld a, [hl] + add d + ld [hl], a + jr .asm_11b1ef + +.asm_11b1ed + and a + ret + +.asm_11b1ef + call Function11b295 + call Function11b275 + scf + ret +; 11b1f7 + +Function11b1f7: ; 11b1f7 + hlcoord 0, 0 + ld a, $32 + ld bc, SCREEN_WIDTH * SCREEN_HEIGHT + call ByteFill + ret +; 11b203 + +Function11b203: ; 11b203 +.asm_11b203 + ld a, [de] + cp $ff + ret z + inc de + ld [hli], a + jr .asm_11b203 +; 11b20b + +Function11b20b: ; 11b20b + ld a, [wc7d1] + ld hl, wc7d0 + add [hl] + ld e, a + ld d, $0 + ld hl, $c6d0 + add hl, de + ld a, [hl] + ld [wd265], a + ret +; 11b21e + +CheckCaughtMemMon: ; 11b21e + push de + push hl + ld a, [wd265] + dec a + call CheckCaughtMon + pop hl + pop de + ret +; 11b22a + +CheckSeenMemMon: ; 11b22a + push de + push hl + ld a, [wd265] + dec a + call CheckSeenMon + pop hl + pop de + ret +; 11b236 + +Function11b236: ; 11b236 + jp FillBoxWithByte +; 11b239 + +Function11b239: ; 11b239 + ld e, a + ld d, 0 + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + ret +; 11b242 + +Function11b242: ; 11b242 + hlcoord 3, 4 + ld de, StringBuffer3 + call PlaceString + xor a + ld [MonType], a + callba GetGender + hlcoord 1, 4 + ld a, [CurPartySpecies] + ld bc, wcd2f + ld [bc], a + dec bc + jr c, asm_11b26a + jr z, asm_11b26f + ld a, $1 + ld [bc], a + +Function11b267: + ld [hl], $ef + ret + +asm_11b26a + xor a + ld [bc], a + ld [hl], $7f + ret + +asm_11b26f + ld a, $2 + ld [bc], a + +Function11b272: + ld [hl], $f5 + ret +; 11b275 + +Function11b275: ; 11b275 + call Function11b279 + ret +; 11b279 + +Function11b279: ; 11b279 + ld a, [wd265] + ld [CurSpecies], a + call CheckSeenMemMon + jr z, .asm_11b28f + call GetBaseData + ld a, [BaseGender] + ld [wcf65], a + jr .asm_11b294 + +.asm_11b28f + ld a, $ff + ld [wcf65], a + +.asm_11b294 + ret +; 11b295 + +Function11b295: ; 11b295 + hlcoord 4, 13 + ld de, String_11b308 + call PlaceString + hlcoord 4, 14 + ld de, String_11b308 + call PlaceString + call Function11b20b + call CheckSeenMemMon + jr z, .asm_11b2d1 + ld a, [$c608] + ld c, a + ld a, [$c608 + 1] + ld b, a + ld hl, $0007 + add hl, bc + xor a + ld [hl], a + ld hl, $0003 + add hl, bc + ld e, [hl] + callba FlyFunction_GetMonIcon + hlcoord 4, 14 + push hl + call GetPokemonName + jr .asm_11b2e7 + +.asm_11b2d1 + ld a, [$c608] + ld c, a + ld a, [$c608 + 1] + ld b, a + ld hl, $0007 + add hl, bc + ld a, $50 + ld [hl], a + hlcoord 4, 13 + push hl + ld de, String_11b30e + +.asm_11b2e7 + ld a, $6 + ld bc, StringBuffer4 +.asm_11b2ec + push af + ld a, [de] + ld [bc], a + inc de + inc bc + pop af + dec a + and a + jr nz, .asm_11b2ec + pop hl + ld de, StringBuffer4 + call PlaceString + ret +; 11b2fe + +String_11b2fe: ; 11b2fe + db "あげる#@" +; 11b303 + +String_11b303: ; 11b303 + db "ほしい#@" +; 11b308 + +String_11b308: ; 11b308 + db " @" +; 11b30e + +String_11b30e: ; 11b30e + db "みはっけん@" +; 11b314 + +Function11b314: ; 11b314 + call Function11b31b + call Function11b3d9 + ret +; 11b31b + +Function11b31b: ; 11b31b + ld hl, .Coords + ld a, [wJumptableIndex] + cp 2 + jr c, .tilemap_1 + ld a, [wc7d1] + cp 4 + jr nc, .tilemap_3 + cp 3 + jr c, .tilemap_1 + ld a, [wJumptableIndex] + cp 2 + jr z, .tilemap_1 + cp 3 + jr z, .tilemap_1 + cp 6 + jr z, .tilemap_1 + + ld bc, .Tilemap2 + jr .load_sprites + +.tilemap_3 + ld bc, .Tilemap3 + jr .load_sprites + +.tilemap_1 + ld bc, .Tilemap1 + +.load_sprites + call Function11b397 + ret +; 11b350 + +.Coords: + dbpixel 3, 11, 2, 6 ; 0 + dbpixel 3, 12, 2, 6 ; 1 + dbpixel 3, 13, 2, 6 ; 2 + dbpixel 3, 14, 2, 6 ; 3 + dbpixel 3, 15, 2, 6 ; 4 + dbpixel 3, 16, 2, 6 ; 5 + dbpixel 3, 17, 2, 6 ; 6 + dbpixel 4, 11, 2, 6 ; 7 + dbpixel 4, 12, 2, 6 ; 8 + dbpixel 4, 13, 2, 6 ; 9 + dbpixel 4, 14, 2, 6 ; 10 + dbpixel 4, 15, 2, 6 ; 11 + dbpixel 4, 16, 2, 6 ; 12 + dbpixel 4, 17, 2, 6 ; 13 + db -1 + +.Tilemap1: ; vtiles + db $30 ; 0 + db $31 ; 1 + db $31 ; 2 + db $31 ; 3 + db $31 ; 4 + db $31 ; 5 + db $32 ; 6 + db $40 ; 7 + db $41 ; 8 + db $41 ; 9 + db $41 ; 10 + db $41 ; 11 + db $41 ; 12 + db $42 ; 13 + +.Tilemap2: ; vtiles + db $30 ; 0 + db $31 ; 1 + db $31 ; 2 + db $39 ; 3 + db $39 ; 4 + db $39 ; 5 + db $39 ; 6 + db $40 ; 7 + db $41 ; 8 + db $41 ; 9 + db $39 ; 10 + db $39 ; 11 + db $39 ; 12 + db $39 ; 13 + +.Tilemap3: ; vtiles + db $39 ; 0 + db $39 ; 1 + db $39 ; 2 + db $39 ; 3 + db $39 ; 4 + db $39 ; 5 + db $39 ; 6 + db $39 ; 7 + db $39 ; 8 + db $39 ; 9 + db $39 ; 10 + db $39 ; 11 + db $39 ; 12 + db $39 ; 13 + +Function11b397: ; 11b397 + ld de, Sprites +.loop + ld a, [hl] + cp $ff + ret z + ld a, [wc7d1] + and $7 + swap a + add [hl] + inc hl ; 1 + ld [de], a + inc de + + ld a, [hli] ; 2 + ld [de], a + inc de + + ld a, [bc] + inc bc + ld [de], a + inc de + ld a, $5 ; OBPal 5 + ld [de], a + inc de + jr .loop +; 11b3b6 + +Function11b3b6: ; 11b3b6 +; unreferenced +.loop + ld a, [hl] + cp -1 + ret z + ld a, [wcd4d] + and $7 + swap a + add [hl] + inc hl + ld [de], a + inc de + ld a, [hli] + ld [de], a + inc de + push hl + ld l, c + ld h, b + ld a, [wcd4e] + add [hl] + inc bc + ld [de], a + inc de + pop hl + ld a, $5 + ld [de], a + inc de + jr .loop +; 11b3d9 + +Function11b3d9: ; 11b3d9 + ld de, Sprites + 28 * 4 + push de + ld a, [wc7d2] + dec a + ld e, a + ld a, [wc7d1] + ld hl, wc7d0 + add [hl] + cp e + jr z, .skip + ld hl, 0 + ld bc, $70 + call AddNTimes + ld e, l + ld d, h + ld b, 0 + ld a, d + or e + jr z, .load_sprites + ld a, [wc7d2] + ld c, a +.loop1 + ld a, e + sub c + ld e, a + ld a, d + sbc $0 + ld d, a + jr c, .load_sprites + inc b + jr .loop1 + +.skip + ld b, 14 * 8 + +.load_sprites + ld a, 2 * 8 + 5 + add b + pop hl + ld [hli], a + cp $41 + jr c, .version1 + ld a, [wJumptableIndex] + cp 4 + jr z, .version2 + cp 5 + jr z, .version2 + cp 7 + jr z, .version2 + cp 8 + jr z, .version2 + +.version1 + ld a, 19 * 8 + 3 + ld [hli], a + ld a, [wcd4c] + add $3c + ld [hli], a + ld a, [wcd4c] + add $1 + ld [hl], a + ret + +.version2 + ld a, 19 * 8 + 3 + ld [hli], a + ld a, $39 + ld [hli], a + xor a + ld [hl], a + ret +; 11b444 + +Function11b444: ; 11b444 +; special + call Mobile46_InitJumptable + call Mobile46_RunJumptable + ret +; 11b44b + +Mobile46_InitJumptable: ; 11b44b + xor a + ld [wJumptableIndex], a + ld [wcf64], a + ld [wcf65], a + ld [wcf66], a + call UpdateTime + ret +; 11b45c + +Mobile46_RunJumptable: ; 11b45c +.loop + call .IterateJumptable + call DelayFrame + ld a, [wJumptableIndex] + cp 4 + jr nz, .loop + ret +; 11b46a + +.IterateJumptable: ; 11b46a + jumptable .Jumptable, wJumptableIndex + +.Jumptable: + dw Function11b483 + dw Function11b570 + dw Function11b5c0 + dw Function11b5e0 + dw Function11b5e7 ; unused +; 11b483 + +Function11b483: ; 11b483 + call .InitRAM + ld hl, PlayerName + ld a, $5 ; Japanese Name Length +.loop1 + push af + ld a, [hli] + ld [bc], a + inc bc + pop af + dec a + and a + jr nz, .loop1 + + ld de, PARTYMON_STRUCT_LENGTH + ld hl, PartyMon1Species + ld a, [wcd82] + dec a + push af +.loop2 + and a + jr z, .okay + add hl, de + dec a + jr .loop2 + +.okay + push bc + ld a, PARTYMON_STRUCT_LENGTH +.loop3 + push af + ld a, [hli] + ld [bc], a + inc bc + pop af + dec a + and a + jr nz, .loop3 + + pop de + push bc + ld a, [de] + ld [CurSpecies], a + call GetBaseData + ld hl, MON_LEVEL + add hl, de + ld a, [hl] + ld [CurPartyLevel], a + ld hl, MON_MAXHP + add hl, de + push hl + ld hl, MON_STAT_EXP - 1 + add hl, de + pop de + push de + ld b, OTPARTYMON + predef CalcPkmnStats + pop de + ld h, d + ld l, e + dec hl + dec hl + ld a, [de] + ld [hli], a + inc de + ld a, [de] + ld [hl], a + pop bc + ld de, NAME_LENGTH + ld hl, PartyMonOT + pop af + push af +.loop4 + and a + jr z, .okay2 + add hl, de + dec a + jr .loop4 + +.okay2 + ld a, NAME_LENGTH - 1 +.loop5 + push af + ld a, [hli] + ld [bc], a + inc bc + pop af + dec a + and a + jr nz, .loop5 + ld de, NAME_LENGTH + ld hl, PartyMonNicknames + pop af + push af +.loop6 + and a + jr z, .okay3 + add hl, de + dec a + jr .loop6 + +.okay3 + ld a, NAME_LENGTH - 1 +.loop7 + push af + ld a, [hli] + ld [bc], a + inc bc + pop af + dec a + and a + jr nz, .loop7 + ld de, MAIL_STRUCT_LENGTH + ld hl, sPartyMail + pop af +.loop8 + and a + jr z, .okay4 + add hl, de + dec a + jr .loop8 + +.okay4 + ld a, $0 ; BANK(sPartyMail) + call GetSRAMBank + ld a, MAIL_STRUCT_LENGTH +.loop9 + push af + ld a, [hli] + ld [bc], a + inc bc + pop af + dec a + and a + jr nz, .loop9 + call CloseSRAM + jp Function11ad8a + +.InitRAM: + ld bc, $c626 + ld a, [PlayerID] + ld [wcd2a], a + ld [bc], a + inc bc + + ld a, [PlayerID + 1] + ld [wcd2b], a + ld [bc], a + inc bc + + ld a, [wSecretID] + ld [wcd2c], a + ld [bc], a + inc bc + + ld a, [wSecretID + 1] + ld [wcd2d], a + ld [bc], a + inc bc + + ld a, [wcd2e] + ld [bc], a + inc bc + + ld a, [wcd2f] + ld [bc], a + inc bc + + ld a, [wcd30] + ld [bc], a + inc bc + + ld a, [wd265] + ld [bc], a + inc bc + ret +; 11b570 + +Function11b570: ; 11b570 + call Function118007 + ld a, [ScriptVar] + and a + jr nz, .exit + call .SaveData + jp Function11ad8a + +.exit + ld a, $4 + ld [wJumptableIndex], a + ret + +.SaveData: + ld a, $3 + ld [rSVBK], a + + ld hl, w3_d800 + ld de, $c608 + ld bc, w3_d88f - w3_d800 + call CopyBytes + + ld a, $1 + ld [rSVBK], a + ld a, $5 + call GetSRAMBank + + ld de, $a800 + ld a, $1 + ld [de], a + inc de + ld hl, $c608 + ld bc, w3_d88f - w3_d800 + call CopyBytes + + push de + pop hl + + ld a, [hRTCMinutes] + ld [hli], a + ld a, [hRTCHours] + ld [hli], a + ld a, [hRTCDayLo] + ld [hli], a + ld a, [hRTCDayHi] + ld [hl], a + + call CloseSRAM + ret +; 11b5c0 + +Function11b5c0: ; 11b5c0 + ld a, [wcd82] + dec a + ld [CurPartyMon], a + xor a + ld [wPokemonWithdrawDepositParameter], a + callba RemoveMonFromPartyOrBox + callba Function170807 + callba SaveAfterLinkTrade + jp Function11ad8a +; 11b5e0 + +Function11b5e0: ; 11b5e0 + xor a + ld [ScriptVar], a + jp Function11ad8a +; 11b5e7 + +Function11b5e7: ; 11b5e7 + ret +; 11b5e8 + +Function11b5e8: ; 11b5e8 + ld a, $0 + call GetSRAMBank + ld hl, wRTC + ld de, $c608 + ld bc, 4 + call CopyBytes + call CloseSRAM + ld a, $5 + call GetSRAMBank + ld hl, $c608 + ld de, $b08c + ld bc, 4 + call CopyBytes + ld a, $2 + ld [$a800], a + ld a, [$a81f] + ld [wcd2a], a + ld a, [$a820] + ld [wcd2b], a + ld a, [$a821] + ld [wcd2c], a + ld a, [$a822] + ld [wcd2d], a + ld a, [$a823] + ld [wcd2e], a + ld a, [$a824] + ld [wcd2f], a + ld a, [$a825] + ld [wcd30], a + ld a, [$a826] + ld [wcd31], a + call CloseSRAM + call Mobile46_InitJumptable + call .loop + ret + +.loop + call .RunJumptable + call DelayFrame + ld a, [wJumptableIndex] + cp $1 + jr nz, .loop + ret + +.RunJumptable: + jumptable .Jumptable, wJumptableIndex +.Jumptable: + dw Function11b66d + dw Function11b6b3 +; 11b66d + +Function11b66d: ; 11b66d + call Function1180b8 + ld a, [ScriptVar] + and a + jr nz, .asm_11b6b0 + ld a, [rSVBK] + push af + ld a, $3 + ld [rSVBK], a + ld a, [w3_d090] + ld b, a + pop af + ld [rSVBK], a + ld a, b + and a + jr z, .asm_11b691 + cp $1 + jr nz, .asm_11b6b0 + call Function11b6b4 + jr .asm_11b6b0 + +.asm_11b691 + callba Function17081d + ld a, [ScriptVar] + and a + jr z, .asm_11b6b0 + xor a + ld [ScriptVar], a + ld a, [rSVBK] + push af + ld a, $3 + ld [rSVBK], a + ld a, $2 + ld [w3_d090], a + pop af + ld [rSVBK], a + +.asm_11b6b0 + jp Function11ad8a +; 11b6b3 + +Function11b6b3: ; 11b6b3 + ret +; 11b6b4 + +Function11b6b4: ; 11b6b4 + ld a, $5 + call GetSRAMBank + ld a, [wcd30] + ld [$c708], a + ld a, [wcd31] + ld [$c709], a + + ld a, $c708 % $100 + ld [wMobileMonSpeciesPointerBuffer], a + ld a, $c708 / $100 + ld [wMobileMonSpeciesPointerBuffer + 1], a + + ld a, $c60d % $100 ; Partymon Struct + ld [wMobileMonStructurePointerBuffer], a + ld a, $c60d / $100 + ld [wMobileMonStructurePointerBuffer + 1], a + + ld a, $c63d % $100 ; OT + ld [wMobileMonOTNamePointerBuffer], a + ld a, $c63d / $100 + ld [wMobileMonOTNamePointerBuffer + 1], a + + ld a, $c642 % $100 ; Nickname + ld [wMobileMonNicknamePointerBuffer], a + ld a, $c642 / $100 + ld [wMobileMonNicknamePointerBuffer + 1], a + + ld a, $c647 % $100 ; ??? + ld [wMobileMonMailPointerBuffer], a + ld a, $c647 / $100 + ld [wMobileMonMailPointerBuffer + 1], a + + ld a, $46 + ld [$c628], a + + ld de, $c63d + ld c, 5 + callba CheckStringForErrors + jr nc, .length_check_OT + callba Mobile_CopyDefaultOTName + +.length_check_OT + ld de, $c63d + lb bc, 1, 5 + callba CheckStringContainsLessThanBNextCharacters + jr nc, .error_check_nick + callba Mobile_CopyDefaultOTName + +.error_check_nick + ld de, $c642 + ld c, 5 + callba CheckStringForErrors + jr nc, .length_check_nick + callba Mobile_CopyDefaultNickname + +.length_check_nick + ld de, $c642 + lb bc, 1, 5 + callba CheckStringContainsLessThanBNextCharacters + jr nc, .error_check_mail + callba Mobile_CopyDefaultNickname + +.error_check_mail + ld de, $c647 + ld c, MAIL_MSG_LENGTH + 1 + callba CheckStringForErrors + jr nc, .length_check_mail + callba Mobile_CopyDefaultMail + +.length_check_mail + ld de, $c647 + lb bc, 2, MAIL_MSG_LENGTH + 1 + callba CheckStringContainsLessThanBNextCharacters + jr c, .fix_mail + ld a, b + cp $2 + jr nz, .mail_ok + +.fix_mail + callba Mobile_CopyDefaultMail + +.mail_ok + ld de, $c668 + ld c, $5 + callba CheckStringForErrors + jr nc, .length_check_author + callba Mobile_CopyDefaultMailAuthor + +.length_check_author + ld de, $c668 + lb bc, 1, 5 + callba CheckStringContainsLessThanBNextCharacters + jr nc, .author_okay + callba Mobile_CopyDefaultMailAuthor + +.author_okay + ld a, [$c60e] + cp -1 + jr nz, .item_okay + xor a + ld [$c60e], a + +.item_okay + ld a, [wcd31] + ld [$c60d], a + ld [CurSpecies], a + call GetBaseData + + ld hl, $c60d + MON_LEVEL + ld a, [hl] + cp MIN_LEVEL + ld a, MIN_LEVEL + jr c, .replace_level + ld a, [hl] + cp MAX_LEVEL + jr c, .done_level + ld a, MAX_LEVEL +.replace_level + ld [hl], a +.done_level + ld [CurPartyLevel], a + + ld hl, $c60d + MON_STAT_EXP - 1 + ld de, $c60d + MON_MAXHP + ld b, $1 + predef CalcPkmnStats + ld de, $c60d + MON_MAXHP + ld hl, $c60d + MON_HP + ld a, [de] + ld [hli], a + inc de + ld a, [de] + ld [hl], a + call AddMobileMonToParty + ret +; 11b7e5 + +Function11b7e5: ; 11b7e5 + ld a, [$c60d] ; species + ld [wOTTrademonSpecies], a + ld [CurPartySpecies], a + ld a, [wcd81] + ld [wc74e], a + ld hl, $c63d ; OT + ld de, wOTTrademonOTName + ld bc, 5 + call CopyBytes + ld a, "@" + ld [de], a + ld a, [$c60d + MON_ID] ; id + ld [wOTTrademonID], a + ld a, [$c60d + MON_ID + 1] + ld [wOTTrademonID + 1], a + ld hl, $c60d + MON_DVS ; dvs + ld a, [hli] + ld [wOTTrademonDVs], a + ld a, [hl] + ld [wOTTrademonDVs + 1], a + ld bc, $c60d ; pokemon_data_start + callba GetCaughtGender + ld a, c + ld [wOTTrademonCaughtData], a + call SpeechTextBox + call FadeToMenu + callba MobileTradeAnimation_ReceiveGetmonFromGTS + callba Function17d1f1 + ld a, $1 + ld [wForceEvolution], a + ld a, $2 + ld [wLinkMode], a + callba EvolvePokemon + xor a + ld [wLinkMode], a + callba SaveAfterLinkTrade + ld a, $5 + call GetSRAMBank + ld a, $5 + ld [$a800], a + call CloseSRAM + ld a, [MapGroup] + ld b, a + ld a, [MapNumber] + ld c, a + call GetMapTrigger + ld a, d + or e + jr z, .asm_11b872 + ld a, $1 + ld [de], a + +.asm_11b872 + call CloseSubmenu + call RestartMapMusic + ret +; 11b879 + +Function11b879: ; 11b879 + callba BattleTower_CheckSaveFileExistsAndIsYours + ld a, [ScriptVar] + and a + ret z + ld a, $5 + call GetSRAMBank + ld a, [$a800] + ld [ScriptVar], a + ld a, [$a890] + ld [wcd49], a + ld a, [$a891] + ld [wcd4a], a + ld a, [$a892] + ld [wcd4b], a + ld a, [$a893] + ld [wcd4c], a + call CloseSRAM + ld a, [ScriptVar] + and a + ret z + ld hl, wcd4c + ld a, [hRTCDayHi] + cp [hl] + ret nz + dec hl + ld a, [hRTCDayLo] + cp [hl] + ret nz + ld hl, wcd4a + ld a, [hRTCHours] + cp [hl] + jr nc, .asm_11b8d8 + ld a, $18 + sub [hl] + ld hl, hRTCHours + add [hl] + ld [wcd4c], a + ld a, [hRTCMinutes] + ld [wcd4b], a + xor a + ld [wcd4a], a + jr .asm_11b8e2 + +.asm_11b8d8 + ld a, [hRTCMinutes] + ld [wcd4b], a + ld a, [hRTCHours] + ld [wcd4c], a + +.asm_11b8e2 + xor a + ld l, a + ld h, a + ld b, a + ld d, a + ld a, [wcd4b] + ld e, a + ld a, [wcd4c] + ld c, $3c + call AddNTimes + add hl, de + push hl + xor a + ld l, a + ld h, a + ld b, a + ld d, a + ld a, [wcd49] + ld e, a + ld a, [wcd4a] + ld c, $3c + call AddNTimes + add hl, de + ld a, l + cpl + add $1 + ld e, a + ld a, h + cpl + adc $0 + ld d, a + pop hl + add hl, de + ld de, $ff88 + add hl, de + bit 7, h + ret z + ld a, $2 + ld [ScriptVar], a + ret +; 11b920 + +Function11b920: ; 11b920 + call Mobile46_InitJumptable + ld a, $5 + call GetSRAMBank + ld hl, $a81f + ld de, $c626 + ld bc, 8 + call CopyBytes + call CloseSRAM + call Function118000 + ret +; 11b93b + +Function11b93b: ; 11b93b + ld a, $5 + call GetSRAMBank + xor a + ld [$a800], a + ld hl, $a823 + ld de, $c608 + ld bc, $008f + call CopyBytes + call CloseSRAM + + ld a, $c608 % $100 + ld [wMobileMonSpeciesPointerBuffer], a + ld a, $c608 / $100 + ld [wMobileMonSpeciesPointerBuffer + 1], a + + ld a, $c611 % $100 + ld [wMobileMonStructurePointerBuffer], a + ld a, $c611 / $100 + ld [wMobileMonStructurePointerBuffer + 1], a + + ld a, $c641 % $100 + ld [wMobileMonOTNamePointerBuffer], a + ld a, $c641 / $100 + ld [wMobileMonOTNamePointerBuffer + 1], a + + ld a, $c646 % $100 + ld [wMobileMonNicknamePointerBuffer], a + ld a, $c646 / $100 + ld [wMobileMonNicknamePointerBuffer + 1], a + + ld a, $c64b % $100 + ld [wMobileMonMailPointerBuffer], a + ld a, $c64b / $100 + ld [wMobileMonMailPointerBuffer + 1], a + call AddMobileMonToParty + callba SaveAfterLinkTrade + ret +; 11b98f + +AddMobileMonToParty: ; 11b98f + ld hl, PartyCount + ld a, [hl] + ld e, a + inc [hl] + + ld a, [wMobileMonSpeciesPointerBuffer] + ld l, a + ld a, [wMobileMonSpeciesPointerBuffer + 1] + ld h, a + inc hl + ld bc, PartySpecies + ld d, e +.loop1 + inc bc + dec d + jr nz, .loop1 + ld a, e + ld [CurPartyMon], a + ld a, [hl] + ld [bc], a + inc bc + ld a, -1 + ld [bc], a + + ld hl, PartyMon1Species + ld bc, PARTYMON_STRUCT_LENGTH + ld a, e + ld [wMobileMonSpeciesBuffer], a +.loop2 + add hl, bc + dec a + and a + jr nz, .loop2 + ld e, l + ld d, h + ld a, [wMobileMonStructurePointerBuffer] + ld l, a + ld a, [wMobileMonStructurePointerBuffer + 1] + ld h, a + ld bc, PARTYMON_STRUCT_LENGTH + call CopyBytes + + ld hl, PartyMonOT + ld bc, NAME_LENGTH + ld a, [wMobileMonSpeciesBuffer] +.loop3 + add hl, bc + dec a + and a + jr nz, .loop3 + ld e, l + ld d, h + ld a, [wMobileMonOTNamePointerBuffer] + ld l, a + ld a, [wMobileMonOTNamePointerBuffer + 1] + ld h, a + ld bc, PKMN_NAME_LENGTH - 1 + call CopyBytes + ld a, "@" + ld [de], a + + ld hl, PartyMonNicknames + ld bc, PKMN_NAME_LENGTH + ld a, [wMobileMonSpeciesBuffer] +.loop4 + add hl, bc + dec a + and a + jr nz, .loop4 + ld e, l + ld d, h + ld a, [wMobileMonNicknamePointerBuffer] + ld l, a + ld a, [wMobileMonNicknamePointerBuffer + 1] + ld h, a + ld bc, PKMN_NAME_LENGTH - 1 + call CopyBytes + ld a, "@" + ld [de], a + + ld hl, sPartyMail + ld bc, MAIL_STRUCT_LENGTH + ld a, [wMobileMonSpeciesBuffer] +.loop5 + add hl, bc + dec a + and a + jr nz, .loop5 + ld a, BANK(sPartyMail) + call GetSRAMBank + ld e, l + ld d, h + ld a, [wMobileMonMailPointerBuffer] + ld l, a + ld a, [wMobileMonMailPointerBuffer + 1] + ld h, a + ld bc, MAIL_STRUCT_LENGTH + call CopyBytes + + call CloseSRAM + ret +; 11ba38 + +Function11ba38: ; 11ba38 + callba CheckCurPartyMonFainted + ret c + xor a + ld [ScriptVar], a + ret +; 11ba44 + +TilemapPack_11ba44: + db $47, $30, $0a, $0a, $0a, $0a, $0a, $56 ; 00 + db $46, $2f, $0a, $0a, $0a, $0a, $0a, $55 ; 01 + db $45, $3d, $0a, $0a, $0a, $0a, $0a, $54 ; 02 + db $44, $30, $0a, $0a, $0a, $0a, $0a, $53 ; 03 + db $43, $2f, $0a, $0a, $0a, $0a, $0a, $52 ; 04 + db $4a, $3d, $0a, $0a, $0a, $0a, $0a, $51 ; 05 + db $4a, $30, $0a, $0a, $0a, $0a, $0a, $50 ; 06 + db $4a, $2f, $0a, $0a, $0a, $0a, $0a, $4f ; 07 + db $4a, $3d, $0a, $0a, $0a, $0a, $0a, $4e ; 08 + db $4a, $30, $0a, $0a, $0a, $0a, $4d, $42 ; 09 + db $4a, $2f, $0a, $0a, $0a, $0a, $6b, $58 ; 0a + db $4a, $3d, $0a, $0a, $0a, $0a, $6a, $58 ; 0b + db $4a, $30, $0a, $0a, $0a, $0a, $69, $58 ; 0c + db $4a, $2f, $0a, $0a, $0a, $0a, $68, $58 ; 0d + db $4a, $3d, $0a, $0a, $0a, $66, $67, $58 ; 0e + db $4a, $30, $0a, $0a, $0a, $65, $0a, $58 ; 0f + db $4a, $2f, $0a, $0a, $0a, $64, $0a, $58 ; 10 + db $4a, $3d, $0a, $0a, $0a, $63, $0a, $58 ; 11 + db $4a, $30, $0a, $0a, $61, $62, $0a, $58 ; 12 + db $4a, $2f, $0a, $0a, $5f, $60, $0a, $58 ; 13 + db $4a, $3d, $0a, $61, $62, $0a, $0a, $58 ; 14 + db $4a, $30, $0a, $63, $0a, $0a, $0a, $58 ; 15 + db $4a, $2f, $69, $0a, $0a, $0a, $0a, $58 ; 16 + db $4a, $3d, $81, $0a, $0a, $0a, $0a, $58 ; 17 + db $4a, $30, $80, $0a, $0a, $0a, $0a, $58 ; 18 + db $4a, $2f, $7f, $0a, $0a, $0a, $0a, $58 ; 19 + db $4a, $3d, $0a, $0a, $0a, $0a, $0a, $58 ; 1a + db $4a, $30, $0a, $0a, $0a, $0a, $0a, $58 ; 1b + db $4a, $2f, $68, $87, $88, $89, $0a, $58 ; 1c + db $4a, $3d, $6e, $6f, $70, $75, $76, $58 ; 1d + db $4a, $30, $75, $76, $5c, $5d, $5e, $58 ; 1e + db $4a, $2f, $71, $72, $73, $74, $6d, $58 ; 1f + db $4a, $3d, $75, $76, $77, $8a, $8b, $58 ; 20 + db $4a, $30, $66, $67, $65, $0a, $6a, $58 ; 21 + db $4a, $2f, $83, $84, $0a, $83, $84, $58 ; 22 + db $4a, $3d, $0a, $85, $82, $84, $0a, $58 ; 23 + db $4a, $30, $41, $80, $40, $0a, $0a, $58 ; 24 + db $4a, $2f, $83, $0a, $0a, $0a, $0a, $58 ; 25 + db $4a, $3d, $40, $0a, $0a, $0a, $0a, $58 ; 26 + db -1 + +TilemapPack_11bb7d: + db $0a, $0a, $0a, $0a, $0a, $0a, $16, $00 ; 00 + db $78, $0a, $0a, $0a, $0a, $0a, $8c, $00 ; 01 + db $79, $0a, $0a, $0a, $0a, $0a, $8d, $00 ; 02 + db $7a, $0a, $0a, $0a, $0a, $0a, $8e, $00 ; 03 + db $7b, $0a, $0a, $0a, $0a, $0a, $8c, $00 ; 04 + db $7c, $0a, $0a, $0a, $0a, $0a, $8d, $00 ; 05 + db $7d, $0a, $0a, $0a, $0a, $0a, $8e, $00 ; 06 + db $2e, $7e, $0a, $0a, $0a, $0a, $8c, $00 ; 07 + db $2e, $80, $0a, $0a, $0a, $0a, $8d, $00 ; 08 + db $2e, $81, $0a, $0a, $0a, $0a, $8e, $00 ; 09 + db $2e, $82, $0a, $0a, $0a, $0a, $8c, $00 ; 0a + db $2e, $69, $0a, $0a, $0a, $0a, $8d, $00 ; 0b + db $2e, $6a, $0a, $0a, $0a, $0a, $8e, $00 ; 0c + db $2e, $6b, $0a, $0a, $0a, $0a, $8c, $00 ; 0d + db $2e, $0a, $68, $0a, $0a, $0a, $8d, $00 ; 0e + db $2e, $0a, $69, $0a, $0a, $0a, $8e, $00 ; 0f + db $2e, $0a, $0a, $6a, $0a, $0a, $8c, $00 ; 10 + db $2e, $0a, $0a, $6b, $0a, $0a, $8d, $00 ; 11 + db $2e, $0a, $0a, $0a, $80, $0a, $8e, $00 ; 12 + db $2e, $0a, $0a, $0a, $82, $0a, $8c, $00 ; 13 + db $2e, $0a, $0a, $0a, $6c, $0a, $8d, $00 ; 14 + db $2e, $0a, $0a, $0a, $0a, $83, $8e, $00 ; 15 + db $2e, $0a, $6b, $0a, $0a, $0a, $8c, $00 ; 16 + db $2e, $0a, $0a, $69, $0a, $0a, $8d, $00 ; 17 + db $2e, $0a, $0a, $6a, $0a, $0a, $8e, $00 ; 18 + db $2e, $0a, $0a, $0a, $68, $0a, $8c, $00 ; 19 + db $2e, $0a, $0a, $0a, $63, $0a, $8d, $00 ; 1a + db $2e, $0a, $0a, $61, $62, $0a, $8e, $00 ; 1b + db $2e, $0a, $0a, $0a, $5f, $60, $8c, $00 ; 1c + db $2e, $0a, $0a, $0a, $63, $0a, $8d, $00 ; 1d + db $2e, $0a, $0a, $0a, $0a, $69, $8c, $00 ; 1e + db $2e, $0a, $0a, $0a, $0a, $6b, $8d, $00 ; 1f + db $2e, $0a, $0a, $0a, $0a, $83, $8e, $00 ; 20 + db $2e, $0a, $0a, $0a, $0a, $86, $8c, $00 ; 21 + db $2e, $0a, $85, $0a, $0a, $0a, $8d, $00 ; 22 + db $2e, $0a, $0a, $84, $0a, $0a, $8e, $00 ; 23 + db -1 + + diff --git a/mobile/mobile_5b.asm b/mobile/mobile_5b.asm new file mode 100755 index 000000000..679f04342 --- /dev/null +++ b/mobile/mobile_5b.asm @@ -0,0 +1,833 @@ +Function16c000: ; 16c000 +; unreferenced + ; Only for CGB + ld a, [hCGB] + and a + ret z + ; Only do this once per boot cycle + ld a, [hFFEA] + and a + ret z + ; Set some flag, preserving the old state + ld a, [wcfbe] + push af + set 7, a + ld [wcfbe], a + ; Do stuff + call MobileSystemSplashScreen_InitGFX ; Load GFX + callba SetRAMStateForMobile + callba EnableMobile + call .RunJumptable + callba DisableMobile + ; Prevent this routine from running again + ; until the next time the syatem is turned on + xor a + ld [hFFEA], a + ; Restore the flag state + pop af + ld [wcfbe], a + ret +; 16c031 + +.RunJumptable: ; 16c031 + xor a + ld [wJumptableIndex], a + ld [wcf64], a + ld [wd002], a + ld [wd003], a +.loop + call DelayFrame + callba Function10635c + ld a, [wd002] + ld hl, .Jumptable + rst JumpTable + call Function16cb2e + call Function16cbae + ld a, [wd002] + cp $ff + jr nz, .loop + ret +; 16c05c + +.Jumptable: ; 16c05c + dw .init + dw Function16c0ba + dw Function16c089 + dw Function16c09e + dw Function16c0a8 + dw Function16c0dc + dw Function16c0ec + dw Function16c0ba + dw Function16c0ca + dw Function16c0dc + dw Function16c0ec + dw .quit +; 16c074 + +.init ; 16c074 + ld a, [wcf64] + and a + ret z + ld [wd002], a + xor a + ld [wd003], a + ret +; 16c081 + +.quit ; 16c081 + push af + ld a, $ff + ld [wd002], a + pop af + ret +; 16c089 + +Function16c089: ; 16c089 + ld a, $1 + ld [Buffer2], a + ld [wd1f1], a + xor a + ld [hWY], a + call Function16c0fa + ld a, [wd002] + ld [wcf64], a + ret +; 16c09e + +Function16c09e: ; 16c09e + ld a, [wcf64] + cp $4 + ret nz + call Function16c0fa + ret +; 16c0a8 + +Function16c0a8: ; 16c0a8 + xor a + ld [Buffer2], a + ld [wd1f1], a + call ClearSprites + ld a, $90 + ld [hWY], a + call Function16c0fa + ret +; 16c0ba + +Function16c0ba: ; 16c0ba + call Function16c943 + push af + ld a, [wd003] + inc a + ld [wd003], a + pop af + call c, Function16c0fa + ret +; 16c0ca + +Function16c0ca: ; 16c0ca + ld a, [wd003] + cp $28 + push af + ld a, [wd003] + inc a + ld [wd003], a + pop af + call z, Function16c0fa + ret +; 16c0dc + +Function16c0dc: ; 16c0dc + call Function16ca11 + push af + ld a, [wd003] + inc a + ld [wd003], a + pop af + call c, Function16c0fa + ret +; 16c0ec + +Function16c0ec: ; 16c0ec + call ClearBGPalettes + call ClearScreen + push af + ld a, $ff + ld [wd002], a + pop af + ret +; 16c0fa + +Function16c0fa: ; 16c0fa + push af + ld a, [wd002] + inc a + ld [wd002], a + xor a + ld [wd003], a + pop af + ret +; 16c108 + +MobileSystemSplashScreen_InitGFX: ; 16c108 + call DisableLCD + ld hl, VTiles2 + ld de, .Tiles + lb bc, BANK(.Tiles), $68 + call Get2bpp + call .LoadPals + call .LoadTileMap + call .LoadAttrMap + hlbgcoord 0, 0 + call Function16cc73 + call Function16cc02 + xor a + ld [hBGMapMode], a + call EnableLCD + ret +; 16c130 + +.LoadPals: ; 16c130 + ld de, UnknBGPals + ld hl, UnknownMobilePalettes_16c903 + ld bc, 8 + ld a, $5 + call FarCopyWRAM + callba ApplyPals + ret +; 16c145 + +.LoadTileMap: ; 16c145 + hlcoord 0, 0 + ld bc, 20 + xor a + call ByteFill + ld hl, .TileMap + decoord 0, 1 + ld bc, $0154 + call CopyBytes + ret +; 16c15c + +.LoadAttrMap: ; 16c15c + hlcoord 0, 0, AttrMap + ld bc, SCREEN_WIDTH + xor a + call ByteFill + ld hl, .AttrMap + decoord 0, 1, AttrMap + ld bc, 17 * SCREEN_WIDTH + call CopyBytes + ret +; 16c173 + +.Tiles: +INCBIN "gfx/unknown/mobile_splash.2bpp" + +.TileMap: +INCBIN "gfx/unknown/mobile_splash.tilemap" + +.AttrMap: +INCBIN "gfx/unknown/mobile_splash.attrmap" + +UnknownMobilePalettes_16c903: ; 16c903 +INCLUDE "gfx/unknown/16c903.pal" + +; 16c943 + +Function16c943: ; 16c943 + ld a, [wd003] + and a + jr nz, .asm_16c95e + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + ld a, $ff + ld bc, $0008 + ld hl, UnknBGPals + call ByteFill + pop af + ld [rSVBK], a + +.asm_16c95e + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + ld e, $0 + ld a, $0 +.asm_16c969 + ld hl, UnknownMobilePalettes_16c903 + call Function16cab6 + call Function16cabb + ld d, a + ld hl, UnknBGPals + call Function16cab6 + call Function16cabb + cp d + jr z, .asm_16c991 + ld b, $1 +.asm_16c981 + dec a + cp d + jr z, .asm_16c988 + dec b + jr nz, .asm_16c981 + +.asm_16c988 + ld hl, UnknBGPals + call Function16cab6 + call Function16cadc + +.asm_16c991 + ld hl, UnknownMobilePalettes_16c903 + call Function16cab6 + call Function16cad8 + ld d, a + ld hl, UnknBGPals + call Function16cab6 + call Function16cad8 + cp d + jr z, .asm_16c9b9 + ld b, $1 +.asm_16c9a9 + dec a + cp d + jr z, .asm_16c9b0 + dec b + jr nz, .asm_16c9a9 + +.asm_16c9b0 + ld hl, UnknBGPals + call Function16cab6 + call Function16cb08 + +.asm_16c9b9 + ld hl, UnknownMobilePalettes_16c903 + call Function16cab6 + call Function16cac4 + ld d, a + ld hl, UnknBGPals + call Function16cab6 + call Function16cac4 + cp d + jr z, .asm_16c9e1 + ld b, $1 +.asm_16c9d1 + dec a + cp d + jr z, .asm_16c9d8 + dec b + jr nz, .asm_16c9d1 + +.asm_16c9d8 + ld hl, UnknBGPals + call Function16cab6 + call Function16cae8 + +.asm_16c9e1 + inc e + inc e + ld a, e + cp $8 + jr nz, .asm_16c969 + callba ApplyPals + call SetPalettes + ld a, [rSVBK] + push af + ld a, $1 + ld [rSVBK], a + ld a, [wd003] + cp $1f + jr z, .asm_16ca09 + pop af + ld [rSVBK], a + ld e, $0 + pop af + ld [rSVBK], a + and a + ret + +.asm_16ca09 + pop af + ld [rSVBK], a + pop af + ld [rSVBK], a + scf + ret +; 16ca11 + +Function16ca11: ; 16ca11 + ld a, [wd003] + and a + jr nz, .asm_16ca1d + callba ApplyPals + +.asm_16ca1d + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + ld e, $0 + ld a, $0 +.asm_16ca28 + ld hl, UnknBGPals + call Function16cab6 + call Function16cabb + cp $1f + jr z, .asm_16ca48 + ld b, $1 +.asm_16ca37 + inc a + cp $1f + jr z, .asm_16ca3f + dec b + jr nz, .asm_16ca37 + +.asm_16ca3f + ld hl, UnknBGPals + call Function16cab6 + call Function16cadc + +.asm_16ca48 + ld hl, UnknBGPals + call Function16cab6 + call Function16cad8 + cp $1f + jr z, .asm_16ca68 + ld b, $1 +.asm_16ca57 + inc a + cp $1f + jr z, .asm_16ca5f + dec b + jr nz, .asm_16ca57 + +.asm_16ca5f + ld hl, UnknBGPals + call Function16cab6 + call Function16cb08 + +.asm_16ca68 + ld hl, UnknBGPals + call Function16cab6 + call Function16cac4 + cp $1f + jr z, .asm_16ca88 + ld b, $1 +.asm_16ca77 + inc a + cp $1f + jr z, .asm_16ca7f + dec b + jr nz, .asm_16ca77 + +.asm_16ca7f + ld hl, UnknBGPals + call Function16cab6 + call Function16cae8 + +.asm_16ca88 + inc e + inc e + ld a, e + cp $8 + jr nz, .asm_16ca28 + callba ApplyPals + call SetPalettes + ld a, [rSVBK] + push af + ld a, $1 + ld [rSVBK], a + ld a, [wd003] + cp $1f + jr z, .asm_16caae + pop af + ld [rSVBK], a + pop af + ld [rSVBK], a + and a + ret + +.asm_16caae + pop af + ld [rSVBK], a + pop af + ld [rSVBK], a + scf + ret +; 16cab6 + +Function16cab6: ; 16cab6 + ld b, $0 + ld c, e + add hl, bc + ret +; 16cabb + +Function16cabb: ; 16cabb + inc hl + ld a, [hl] + srl a + srl a + and $1f + ret +; 16cac4 + +Function16cac4: ; 16cac4 + inc hl + ld a, [hld] + and $3 + ld b, a + ld a, [hl] + sla a + rl b + sla a + rl b + sla a + rl b + ld a, b + ret +; 16cad8 + +Function16cad8: ; 16cad8 + ld a, [hl] + and $1f + ret +; 16cadc + +Function16cadc: ; 16cadc + sla a + sla a + ld b, a + inc hl + ld a, [hl] + and $83 + or b + ld [hl], a + ret +; 16cae8 + +Function16cae8: ; 16cae8 + ld c, a + srl a + srl a + srl a + ld b, a + inc hl + ld a, [hl] + and $fc + or b + ld [hld], a + ld a, c + sla a + sla a + sla a + sla a + sla a + ld b, a + ld a, [hl] + and $1f + or b + ld [hl], a + ret +; 16cb08 + +Function16cb08: ; 16cb08 + ld b, a + ld a, [hl] + and $e0 + or b + ld [hl], a + ret +; 16cb0f + +Function16cb0f: ; 16cb0f + xor a + ld [Buffer1], a + ld [Buffer2], a + xor a + ld [wd1ec], a + ld a, $70 + ld [wd1ee], a + ld a, $4 + ld [wd1ed], a + ld a, $a0 + ld [wd1ef], a + xor a + ld [wd1f0], a + ret +; 16cb2e + +Function16cb2e: ; 16cb2e + ld a, [Buffer2] + and a + ret z + call Function16cb40 + ld hl, Unknown_16cb86 + ld de, Sprites + call Function16cb5d + ret +; 16cb40 + +Function16cb40: ; 16cb40 + ld hl, wd1ec + inc [hl] + ld a, [hl] + cp $18 + ret c + xor a + ld [hl], a + ld a, [wd1ef] + cp $a0 + jr nz, .asm_16cb57 + ld a, $a7 + ld [wd1ef], a + ret + +.asm_16cb57 + ld a, $a0 + ld [wd1ef], a + ret +; 16cb5d + +Function16cb5d: ; 16cb5d + ld a, [hli] + and a + ret z +.asm_16cb60 + push af + ld a, [wd1ee] + add [hl] + add $10 + ld [de], a + inc hl + inc de + ld a, [wd1ed] + add [hl] + add $8 + ld [de], a + inc hl + inc de + ld a, [wd1ef] + add [hl] + ld [de], a + inc hl + inc de + ld a, [wd1f0] + or [hl] + ld [de], a + inc hl + inc de + pop af + dec a + jr nz, .asm_16cb60 + ret +; 16cb86 + +Unknown_16cb86: + db 7 + db 0, 0, 0, 1 + db 8, 0, 1, 1 + db 8, 8, 2, 0 + db 8, 16, 3, 0 + db 16, 0, 4, 1 + db 16, 8, 5, 0 + db 16, 16, 6, 0 +; 16cba3 + +Function16cba3: ; 16cba3 + xor a + ld [wd1f1], a + ld [wd1f2], a + ld [wd1f3], a + ret +; 16cbae + +Function16cbae: ; 16cbae + ld a, [wd1f1] + and a + ret z + call Function16cbba + call Function16cbd1 + ret +; 16cbba + +Function16cbba: ; 16cbba + ld hl, wd1f2 + inc [hl] + ld a, [hl] + cp $c + ret c + xor a + ld [hl], a + ld a, [wd1f3] + inc a + cp $4 + jr c, .asm_16cbcd + xor a + +.asm_16cbcd + ld [wd1f3], a + ret +; 16cbd1 + +Function16cbd1: ; 16cbd1 + ld a, [wd1f3] + ld c, a + ld b, 0 + ld hl, Unknown_16cbfb + add hl, bc + ld a, [hl] + ld bc, 2 + ld hl, Unknown_16cfa3 + call AddNTimes + ld de, UnknBGPals + 1 palettes + 4 + ld bc, 2 + ld a, $5 + call FarCopyWRAM + callba ApplyPals + ld a, $1 + ld [hCGBPalUpdate], a + ret +; 16cbfb + +Unknown_16cbfb: + db 0, 1, 2, 1, 0, 1, 2 +; 16cc02 + +Function16cc02: ; 16cc02 + call Function16cc18 + call Function16cc49 + call Function16cc62 + call Function16cc25 + call Function16cc6e + call Function16cb0f + call Function16cba3 + ret +; 16cc18 + +Function16cc18: ; 16cc18 + ld hl, VTiles1 + ld de, GFX_16cca3 + lb bc, BANK(GFX_16cca3), $2e + call Get2bpp + ret +; 16cc25 + +Function16cc25: ; 16cc25 + ld hl, Unknown_16cfa9 + ld de, UnknBGPals + 1 palettes + call .CopyPal + ld hl, Unknown_16cfb1 + ld de, UnknOBPals + call .CopyPal + ld hl, Unknown_16cfb9 + ld de, UnknOBPals + 1 palettes + call .CopyPal + ret +; 16cc41 + +.CopyPal: ; 16cc41 + ld bc, 1 palettes + ld a, $5 + jp FarCopyWRAM +; 16cc49 + +Function16cc49: ; 16cc49 + hlcoord 4, 15 + ld a, $80 + call Function16cc5a + hlcoord 4, 16 + ld a, $90 + call Function16cc5a + ret +; 16cc5a + +Function16cc5a: ; 16cc5a + ld c, $10 +.asm_16cc5c + ld [hli], a + inc a + dec c + jr nz, .asm_16cc5c + ret +; 16cc62 + +Function16cc62: ; 16cc62 + hlcoord 0, 15, AttrMap + ld bc, $0028 + ld a, $1 + call ByteFill + ret +; 16cc6e + +Function16cc6e: ; 16cc6e + hlbgcoord 0, 0, VBGMap1 + jr Function16cc73 + +Function16cc73: + ld a, [rVBK] + push af + ld a, $0 + ld [rVBK], a + push hl + decoord 0, 0 + call Function16cc90 + pop hl + ld a, $1 + ld [rVBK], a + decoord 0, 0, AttrMap + call Function16cc90 + pop af + ld [rVBK], a + ret +; 16cc90 + +Function16cc90: ; 16cc90 + ld bc, $1214 +.asm_16cc93 + push bc +.asm_16cc94 + ld a, [de] + inc de + ld [hli], a + dec c + jr nz, .asm_16cc94 + ld bc, $000c + add hl, bc + pop bc + dec b + jr nz, .asm_16cc93 + ret +; 16cca3 + +GFX_16cca3: +INCBIN "gfx/unknown/16cca3.2bpp" + +Unknown_16cfa3: + RGB 31, 31, 31 + RGB 25, 27, 29 + RGB 16, 19, 25 + +Unknown_16cfa9: + RGB 31, 31, 31 + RGB 25, 27, 29 + RGB 31, 31, 31 + RGB 07, 07, 07 + + +Unknown_16cfb1: + RGB 31, 31, 31 + RGB 13, 09, 18 + RGB 26, 21, 16 + RGB 07, 07, 07 + + +Unknown_16cfb9: + RGB 31, 31, 31 + RGB 18, 05, 02 + RGB 27, 11, 12 + RGB 07, 07, 07 + +; 16cfc1 diff --git a/mobile/mobile_5c.asm b/mobile/mobile_5c.asm new file mode 100755 index 000000000..5b7418a0f --- /dev/null +++ b/mobile/mobile_5c.asm @@ -0,0 +1,944 @@ +Function170000: ; 170000 + ld a, [$c62b] + ld [wPlayerTrademonSpecies], a + ld hl, $c62e + ld de, wPlayerTrademonSenderName + ld bc, $0005 + call CopyBytes + ld a, $50 + ld [de], a + ld hl, $c663 + ld de, wPlayerTrademonOTName + ld bc, $0005 + call CopyBytes + ld a, $50 + ld [de], a + ld hl, $c648 + ld a, [hli] + ld [wPlayerTrademonDVs], a + ld a, [hl] + ld [wPlayerTrademonDVs + 1], a + ld hl, $c639 + ld a, [hli] + ld [wPlayerTrademonID], a + ld a, [hl] + ld [wPlayerTrademonID + 1], a + ld bc, $c633 + callba GetCaughtGender + ld a, c + ld [wPlayerTrademonCaughtData], a + ld a, [wcd81] + ld [wc74e], a + ld hl, $c608 + ld de, $d800 + ld bc, $008f + call CopyBytes + ret + +; 17005a + +Function17005a: ; 17005a + ld a, $5 + call GetSRAMBank + ld a, [$a824] + ld [wOTTrademonSpecies], a + ld hl, $a827 + ld de, wOTTrademonSenderName + ld bc, 5 ; Japanese Name Length + call CopyBytes + ld a, "@" + ld [de], a + ld hl, $a85c + ld de, wOTTrademonOTName + ld bc, 5 ; Japanese Name Length + call CopyBytes + ld a, "@" + ld [de], a + ld hl, $a841 + ld a, [hli] + ld [wOTTrademonDVs], a + ld a, [hl] + ld [wOTTrademonDVs + 1], a + ld hl, $a832 + ld a, [hli] + ld [wOTTrademonID], a + ld a, [hl] + ld [wOTTrademonID + 1], a + ld bc, $a82c + callba GetCaughtGender + ld a, c + ld [wOTTrademonCaughtData], a + ld a, [wcd81] + ld [wc74e], a + call CloseSRAM + ret + +; 1700b0 + +INCLUDE "misc/battle_tower_5c.asm" + +Function170be4: ; 170be4 + ld a, $5 + call GetSRAMBank + xor a + ld hl, $a894 + ld bc, $0008 + call ByteFill + call CloseSRAM + ret + +; 170bf7 + +Clears5_a89a: ; 170bf7 + ld a, $5 + call GetSRAMBank + ld hl, $a89a + xor a + ld [hli], a + ld [hl], a + call CloseSRAM + ret + +; 170c06 + +Function170c06: ; 170c06 + ld a, $5 + call GetSRAMBank + ld hl, $a894 + ld a, [wBattleResult] + and a + jr nz, .asm_170c15 + inc [hl] + +.asm_170c15 + inc hl + inc hl + ld a, [$a89b] + add [hl] + ld [hld], a + ld a, [$a89a] + adc [hl] + ld [hli], a + jr nc, .asm_170c27 + ld a, $ff + ld [hld], a + ld [hli], a + +.asm_170c27 + inc hl + push hl + ld de, 0 + xor a + ld [wd265], a +.asm_170c30 + ld hl, PartyMon1HP + ld a, [wd265] + call GetPartyLocation + ld a, [hli] + ld b, a + ld c, [hl] + inc hl + inc hl + ld a, [hld] + sub c + ld c, a + ld a, [hl] + sbc b + ld b, a + push de + pop hl + add hl, bc + push hl + pop de + jr c, .asm_170c58 + ld a, [wd265] + inc a + ld [wd265], a + cp $3 + jr c, .asm_170c30 + jr .asm_170c5b + +.asm_170c58 + ld de, -1 + +.asm_170c5b + pop hl + inc hl + ld a, e + add [hl] + ld [hld], a + ld a, d + adc [hl] + ld [hli], a + jr nc, .asm_170c69 + ld a, $ff + ld [hld], a + ld [hli], a + +.asm_170c69 + inc hl + push hl + ld b, $0 + ld c, $0 +.asm_170c6f + ld hl, PartyMon1HP + ld a, b + push bc + call GetPartyLocation + pop bc + ld a, [hli] + or [hl] + jr nz, .asm_170c7d + inc c + +.asm_170c7d + inc b + ld a, b + cp $3 + jr c, .asm_170c6f + pop hl + ld a, [hl] + add c + ld [hl], a + call CloseSRAM + ret + +; 170c8b + +Function170c8b: ; 170c8b + ld hl, LastEnemyCounterMove + ld b, $5 +.asm_170c90 + ld a, [hl] + xor $ff + ld [hli], a + dec b + jr nz, .asm_170c90 + ret + +; 170c98 + +CheckBTMonMovesForErrors: ; 170c98 + ld c, BATTLETOWER_NROFPKMNS + ld hl, wBT_OTTempPkmn1Moves +.loop + push hl + ld a, [hl] + cp NUM_ATTACKS + 1 + jr c, .okay + ld a, POUND + ld [hl], a + +.okay + inc hl + ld b, NUM_MOVES - 1 +.loop2 + ld a, [hl] + and a + jr z, .loop3 + cp NUM_ATTACKS + 1 + jr c, .next + +.loop3 + xor a + ld [hl], a + inc hl + dec b + jr nz, .loop3 + jr .done + +.next + inc hl + dec b + jr nz, .loop2 + +.done + pop hl + ld de, PARTYMON_STRUCT_LENGTH + PKMN_NAME_LENGTH + add hl, de + dec c + jr nz, .loop + ret + +; 170cc6 + +Function170cc6: ; 170cc6 + ld a, [rSVBK] + push af + ld a, $6 + ld [rSVBK], a + ld hl, LZ_170d16 + ld de, wDecompressScratch + call Decompress + ld a, $1 + ld [rVBK], a + ld de, wd000 + ld hl, VTiles0 + lb bc, $6, $c1 + call Get2bpp + xor a + ld [rVBK], a + ld hl, LZ_1715a4 + ld de, wd000 + call Decompress + ld de, UnknBGPals + ld hl, VTiles0 + lb bc, $6, $53 + call Get2bpp + pop af + ld [rSVBK], a + ret + +; 170d02 + +Function170d02: ; 170d02 + ld a, $1 + ld [rVBK], a + ld de, GFX_171848 + ld hl, VTiles1 tile $41 + lb bc, BANK(GFX_171848), $18 + call Get2bpp + xor a + ld [rVBK], a + ret + +; 170d16 + +LZ_170d16: +INCBIN "gfx/unknown/pichu_animated.2bpp.lz" + +LZ_1715a4: +INCBIN "gfx/unknown/egg_animated.2bpp.lz" + +GFX_171848: +INCBIN "gfx/unknown/171848.2bpp" + +Function1719c8: ; 1719c8 (5c:59c8) + ld a, [hInMenu] + push af + ld a, $1 + ld [hInMenu], a + call Function1719d6 + pop af + ld [hInMenu], a + ret + +Function1719d6: ; 1719d6 (5c:59d6) + callba BattleTowerRoomMenu_InitRAM + call Function1719ed + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + call Function171a11 + pop af + ld [rSVBK], a + ret + +Function1719ed: ; 1719ed (5c:59ed) + xor a + ld [wcd49], a + ld [wcd4a], a + dec a + ld [wcd4b], a + call ClearBGPalettes + call ClearSprites + callba Function171d2b + callba ReloadMapPart + callba ClearSpriteAnims + ret + +Function171a11: ; 171a11 (5c:5a11) +.loop + call JoyTextDelay + ld a, [wcd49] + bit 7, a + jr nz, .done + call Function171a36 + callba PlaySpriteAnimations + callba ReloadMapPart + jr .loop +.done + callba ClearSpriteAnims + call ClearSprites + ret + +Function171a36: ; 171a36 (5c:5a36) + ld a, [wcd49] + ld e, a + ld d, 0 + ld hl, Jumptable_171a45 + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp hl + +Jumptable_171a45: ; 171a45 (5c:5a45) + dw Function171a95 + dw Function171ac9 + dw Function171a5d + dw Function171ad7 + dw Function171a5d + dw Function171aec + dw Function171b4b + dw Function171b85 + dw Function171bcc + dw Function171c2c + dw Function171c39 + dw Function171c41 + + +Function171a5d: ; 171a5d (5c:5a5d) + ld a, [wc821] + bit 1, a + jr nz, .asm_171a6a + bit 0, a + ret nz + jp Function171c66 + +.asm_171a6a + ld a, $0 + call Function3e32 + ld [wc300], a + ld a, l + ld [wc301], a + ld a, h + ld [wc302], a + ld a, $a + call Function3e32 + ld a, [rSVBK] + push af + ld a, $1 + ld [rSVBK], a + callba BattleTowerRoomMenu_Cleanup + pop af + ld [rSVBK], a + ld a, $a + ld [wcd49], a + ret + +Function171a95: ; 171a95 (5c:5a95) + callba Function171ccd + hlcoord 2, 8 + ld de, String_171aa7 + call PlaceString + jp Function171c66 + +; 171aa7 (5c:5aa7) + +String_171aa7: ; 171aa7 + db "モバイルアダプタに" + next "せつぞく しています" + next "しばらく おまちください" + db "@" +; 171ac9 + +Function171ac9: ; 171ac9 (5c:5ac9) + ld de, wcd81 + ld hl, $5c + ld a, $2 + call Function3e32 + jp Function171c66 + +Function171ad7: ; 171ad7 (5c:5ad7) + xor a + ld hl, $c608 + ld bc, $66 + call ByteFill + ld de, $c608 + ld a, $c + call Function3e32 + jp Function171c66 + +Function171aec: ; 171aec (5c:5aec) + ld a, [rSVBK] + push af + ld a, $1 + ld [rSVBK], a + callba BattleTowerRoomMenu_Cleanup + pop af + ld [rSVBK], a + hlcoord 2, 6 + ld a, $8 +.asm_171b01 + push af + push hl + xor a + ld bc, $10 + call ByteFill + pop hl + ld de, $14 + add hl, de + pop af + dec a + jr nz, .asm_171b01 + hlcoord 2, 7 + ld a, $3 + ld de, $c608 +.asm_171b1b + push af + push hl + ld a, [de] + and a + jr z, .asm_171b34 + ld a, [wcd4b] + inc a + ld [wcd4b], a + push hl + call Function171b42 + pop hl + ld bc, $ffec + add hl, bc + call Function171b42 +.asm_171b34 + pop hl + ld bc, $14 + add hl, bc + add hl, bc + add hl, bc + pop af + dec a + jr nz, .asm_171b1b + jp Function171c66 + +Function171b42: ; 171b42 (5c:5b42) + ld a, [de] + inc de + and a + ret z + sub $20 + ld [hli], a + jr Function171b42 + +Function171b4b: ; 171b4b (5c:5b4b) + depixel 8, 2 + ld a, SPRITE_ANIM_INDEX_1D + call _InitSpriteAnimStruct + ld hl, SPRITEANIMSTRUCT_0C + add hl, bc + ld a, $8 + ld [hl], a + + depixel 8, 19 + ld a, SPRITE_ANIM_INDEX_1D + call _InitSpriteAnimStruct + ld hl, SPRITEANIMSTRUCT_0C + add hl, bc + ld a, $9 + ld [hl], a + + depixel 17, 14, 2, 0 + ld a, SPRITE_ANIM_INDEX_1D + call _InitSpriteAnimStruct + ld hl, SPRITEANIMSTRUCT_0C + add hl, bc + ld a, $a + ld [hl], a + + ld a, $4 + ld [wcd23], a + ld a, $8 + ld [wcd24], a + jp Function171c66 + +Function171b85: ; 171b85 (5c:5b85) + ld hl, hJoyPressed ; $ffa7 + ld a, [hl] + and $2 + jp nz, Function171b9f + ld a, [hl] + and $1 + jp nz, Function171bbd + ld a, [hl] + and $40 + jr nz, asm_171ba5 + ld a, [hl] + and $80 + jr nz, asm_171baf + ret + +Function171b9f: ; 171b9f (5c:5b9f) + ld a, $80 + ld [wcd49], a + ret + +asm_171ba5: ; 171ba5 (5c:5ba5) + ld a, [wcd4a] + and a + ret z + dec a + ld [wcd4a], a + ret + +asm_171baf: ; 171baf (5c:5baf) + ld a, [wcd4b] + ld c, a + ld a, [wcd4a] + cp c + ret z + inc a + ld [wcd4a], a + ret + +Function171bbd: ; 171bbd (5c:5bbd) + call PlayClickSFX + ld a, $8 + ld [wcd23], a + xor a + ld [wcd24], a + jp Function171c66 + +Function171bcc: ; 171bcc (5c:5bcc) + ld hl, hJoyPressed ; $ffa7 + ld a, [hl] + and $2 + jp nz, Function171bdc + ld a, [hl] + and $1 + jp nz, Function171beb + ret + +Function171bdc: ; 171bdc (5c:5bdc) + ld a, $4 + ld [wcd23], a + ld a, $8 + ld [wcd24], a + ld hl, wcd49 + dec [hl] + ret + +Function171beb: ; 171beb (5c:5beb) + ld a, $5 + call GetSRAMBank + ld a, [wcd4a] + ld [$aa4a], a + call CloseSRAM + ld hl, MenuDataHeader_171c6b + call LoadMenuDataHeader + call MenuBox + call MenuBoxCoord2Tile + callba ReloadMapPart + hlcoord 1, 14 + ld de, String_171c73 + call PlaceString + ld a, [wcd4a] + cp $2 + jr z, .asm_171c1f + ld a, $8 + jr .asm_171c21 +.asm_171c1f + ld a, $c +.asm_171c21 + ld [wcd24], a + ld a, $1e + ld [wcd4c], a + call Function171c66 + +Function171c2c: ; 171c2c (5c:5c2c) + ld hl, wcd4c + dec [hl] + ret nz + call ExitMenu + call ClearBGPalettes + jr asm_171c60 + +Function171c39: ; 171c39 (5c:5c39) + ld a, $28 + ld [wcd4c], a + call Function171c66 + +Function171c41: ; 171c41 (5c:5c41) + ld hl, wcd4c + dec [hl] + ret nz + call ClearBGPalettes + callba MobileFunc_106462 + callba Function106464 + ld a, $2 + ld [wc303], a + callba DisplayMobileError +asm_171c60: ; 171c60 (5c:5c60) + ld a, $80 + ld [wcd49], a + ret + +Function171c66: ; 171c66 (5c:5c66) + ld hl, wcd49 + inc [hl] + ret + +; 171c6b (5c:5c6b) + +MenuDataHeader_171c6b: ; 171c6b + db $40 ; flags + db 12, 0 ; start coords + db 17, 19 ; end coords + dw NULL + db 0 ; default option +; 171c73 + +String_171c73: ; 171c73 + db "モバイルセンターを けってい" + next "しました@" +; 171c87 + +Function171c87: ; 171c87 (5c:5c87) + call DisableLCD + ld hl, GFX_171db1 + ld de, VTiles2 tile $00 + ld bc, $6e0 + call CopyBytes + ld hl, LZ_172abd + ld de, VTiles0 tile $00 + call Decompress + call EnableLCD + ld hl, Tilemap_172491 + decoord 0, 0 + ld bc, $168 + call CopyBytes + ld hl, Attrmap_1727ed + decoord 0, 0, AttrMap + ld bc, $168 + call CopyBytes + hlcoord 3, 2 + ld de, String_172e31 + call PlaceString + hlcoord 3, 16 + ld de, String_172e3f + call PlaceString + ret + +Function171ccd: ; 171ccd (5c:5ccd) + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + ld hl, Palette_171d71 + ld de, UnknBGPals + ld bc, $40 + call CopyBytes + ld hl, EngineBuffer5 + ld a, $ff + ld [hli], a + ld a, $7f + ld [hl], a + call SetPalettes + pop af + ld [rSVBK], a + ret + +Function171cf0: ; 171cf0 (5c:5cf0) + xor a + hlcoord 4, 15 + ld [hli], a + ld [hli], a + ld a, [wcd4b] + xor $1 + ld [wcd4b], a + and a + jr nz, .asm_171d16 + ld hl, Tilemap_17251d + decoord 0, 7 + ld bc, $8c + call CopyBytes + hlcoord 3, 16 + ld de, String_172e3f + jp PlaceString + +.asm_171d16 + ld hl, Tilemap_1725f9 + decoord 0, 7 + ld bc, $8c + call CopyBytes + hlcoord 3, 16 + ld de, String_172e4e + jp PlaceString + +Function171d2b: ; 171d2b (5c:5d2b) + call DisableLCD + ld hl, GFX_171db1 + ld de, VTiles2 tile $00 + ld bc, $6e0 + call CopyBytes + ld hl, LZ_172abd + ld de, VTiles0 tile $00 + call Decompress + call EnableLCD + ld hl, Tilemap_172685 + decoord 0, 0 + ld bc, $168 + call CopyBytes + ld hl, Attrmap_172955 + decoord 0, 0, AttrMap + ld bc, $168 + call CopyBytes + hlcoord 2, 2 + ld de, String_172e5d + call PlaceString + hlcoord 14, 16 + ld de, String_172e58 + call PlaceString + ret + +; 171d71 (5c:5d71) + +Palette_171d71: + RGB 0, 0, 0 + RGB 3, 0, 0 + RGB 5, 0, 0 + RGB 31, 31, 29 + RGB 0, 2, 10 + RGB 2, 10, 21 + RGB 0, 0, 0 + RGB 10, 26, 31 + RGB 0, 0, 0 + RGB 0, 7, 8 + RGB 31, 8, 0 + RGB 1, 17, 15 + RGB 31, 16, 0 + RGB 31, 22, 0 + RGB 31, 27, 0 + RGB 31, 31, 0 + RGB 31, 18, 6 + RGB 0, 3, 0 + RGB 0, 9, 0 + RGB 0, 12, 0 + RGB 0, 16, 0 + RGB 0, 22, 0 + RGB 0, 25, 0 + RGB 0, 27, 0 + RGB 5, 5, 16 + RGB 8, 19, 28 + RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 31, 29 + RGB 21, 21, 20 + RGB 11, 11, 10 + RGB 0, 0, 0 + +GFX_171db1: +INCBIN "gfx/unknown/ascii_font.2bpp" +Tilemap_172491: +INCBIN "gfx/unknown/172491.tilemap" +Tilemap_17251d: +INCBIN "gfx/unknown/17251d.tilemap" +Tilemap_1725f9: +INCBIN "gfx/unknown/1725f9.tilemap" +Tilemap_172685: +INCBIN "gfx/unknown/172685.tilemap" +Attrmap_1727ed: +INCBIN "gfx/unknown/1727ed.attrmap" +Attrmap_172955: +INCBIN "gfx/unknown/172955.attrmap" +LZ_172abd: +INCBIN "gfx/pokedex/slowpoke.2bpp.lz" + +String_172e31: ; 172e31 + db "パスワード", $1f, "いれてください@" +String_172e3f: ; 172e3f + db "きりかえ やめる けってい@" +String_172e4e: ; 172e4e + db "きりかえ やめる " +String_172e58: + db "けってい@" +String_172e5d: ; 172e5d + db "せつぞくする モバイルセンターを" + next "えらんで ください@" +; 172e78 + + +Function172e78: ; 172e78 (5c:6e78) + ld a, $7f + hlcoord 0, 0 + ld bc, $168 + call ByteFill + ld a, $7 + hlcoord 0, 0, AttrMap + ld bc, $168 + call ByteFill + call DisableLCD + ld hl, GameBoyN64GFX + ld de, VTiles2 tile $00 + ld bc, $610 + call CopyBytes + call EnableLCD + ld hl, Tilemap_1733af + decoord 0, 0 + ld bc, $168 + call CopyBytes + ld hl, Attrmap_173517 + decoord 0, 0, AttrMap + ld bc, $168 + call CopyBytes + ret + +; 172eb9 (5c:6eb9) + +Function172eb9: + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + ld hl, Palette_172edf + ld de, UnknBGPals + ld bc, $40 + call CopyBytes + ld hl, Palette_172edf + ld de, BGPals + ld bc, $40 + call CopyBytes + call SetPalettes + pop af + ld [rSVBK], a + ret + +; 172edf (5c:6edf) + +Palette_172edf: + RGB 5, 12, 17 + RGB 31, 31, 31 + RGB 18, 25, 28 + RGB 10, 17, 21 + RGB 6, 13, 18 + RGB 31, 31, 31 + RGB 20, 26, 28 + RGB 12, 19, 23 + RGB 3, 10, 16 + RGB 31, 31, 31 + RGB 6, 13, 18 + RGB 20, 26, 28 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 5, 5, 16 + RGB 8, 19, 28 + RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + +GameBoyN64GFX: +INCBIN "gfx/trade/game_boy_n64.2bpp" + +Tilemap_1733af: +IF DEF(CRYSTAL11) +INCBIN "gfx/unknown/1733af_corrupt.tilemap" +ELSE +INCBIN "gfx/unknown/1733af.tilemap" +ENDC + +Attrmap_173517: +INCBIN "gfx/unknown/173517.attrmap" diff --git a/mobile/mobile_5f.asm b/mobile/mobile_5f.asm new file mode 100644 index 000000000..816e23394 --- /dev/null +++ b/mobile/mobile_5f.asm @@ -0,0 +1,5310 @@ + +SECTION "bank5F", ROMX + +Function17c000: ; 17c000 + + call DisableLCD + + ld hl, VTiles2 + ld bc, $31 tiles + xor a + call ByteFill + + call LoadStandardFont + call LoadFontsExtra + + ld hl, HaveWantMap + decoord 0, 0 + bccoord 0, 0, AttrMap + + ld a, SCREEN_HEIGHT +.y + push af + ld a, SCREEN_WIDTH + + push hl +.x + push af + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + ld [bc], a + inc bc + pop af + dec a + jr nz, .x + pop hl + + push bc + ld bc, BG_MAP_WIDTH * 2 + add hl, bc + pop bc + + pop af + dec a + jr nz, .y + + ld a, [rSVBK] + push af + + ld a, 5 ; BANK(UnknBGPals) + ld [rSVBK], a + + ld hl, HaveWantPals + ld de, UnknBGPals + ld bc, $80 + call CopyBytes + + pop af + ld [rSVBK], a + + ld hl, MobileSelectGFX + ld de, VTiles0 tile $30 + ld bc, $20 tiles + call CopyBytes + + ld a, 1 + ld [rVBK], a + + ld hl, HaveWantGFX + ld de, VTiles2 + ld bc, $80 tiles + call CopyBytes + + ld hl, HaveWantGFX + $800 + ld de, VTiles1 + ld bc, $10 tiles + call CopyBytes + + xor a + ld [rVBK], a + + call EnableLCD + callba ReloadMapPart + ret +; 17c083 + +HaveWantGFX: ; 17c083 +INCBIN "gfx/mobile/havewant.2bpp" + +MobileSelectGFX: ; 17c983 +INCBIN "gfx/mobile/select.2bpp" + +HaveWantMap: ; 17cb83 +; Interleaved tile/palette map. +INCBIN "gfx/mobile/havewant_map.bin" + +HaveWantPals: ; 17cff3 +; BG and OBJ palettes. + RGB 0, 0, 0 + RGB 21, 21, 21 + RGB 0, 0, 0 + RGB 0, 0, 0 + + RGB 0, 0, 0 + RGB 4, 17, 29 + RGB 6, 19, 31 + RGB 31, 31, 31 + + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + + RGB 0, 0, 0 + RGB 2, 13, 18 + RGB 6, 19, 31 + RGB 31, 31, 31 + + RGB 0, 0, 0 + RGB 31, 5, 5 + RGB 29, 21, 21 + RGB 31, 31, 31 + + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + + RGB 0, 0, 0 + RGB 4, 17, 29 + RGB 6, 19, 31 + RGB 2, 15, 27 + + RGB 0, 0, 0 + RGB 28, 19, 18 + RGB 25, 9, 0 + RGB 0, 0, 0 + + RGB 0, 0, 0 + RGB 31, 27, 27 + RGB 31, 10, 4 + RGB 29, 0, 0 + + RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 26, 8, 23 + RGB 22, 0, 16 + + RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 8, 31 + RGB 15, 1, 26 + + RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 17, 12, 31 + RGB 12, 6, 31 + + RGB 0, 16, 0 + RGB 11, 11, 14 + RGB 5, 5, 7 + RGB 31, 31, 31 + + RGB 0, 31, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + + RGB 16, 31, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + + +CheckStringForErrors: ; 17d073 +; Valid character ranges: +; $0, $5 - $13, $19 - $1c, $26 - $34, $3a - $3e, $40 - $48, $60 - $ff +.loop + ld a, [de] + inc de + and a + jr z, .NextChar + cp $60 + jr nc, .NextChar + cp $4e + jr z, .NextChar + cp "@" + jr z, .Done + cp $5 + jr c, .Fail + cp "" + jr c, .NextChar + cp $19 + jr c, .Fail + cp $1d + jr c, .NextChar + cp $26 + jr c, .Fail + cp $35 + jr c, .NextChar + cp $3a + jr c, .Fail + cp $3f + jr c, .NextChar + cp $40 + jr c, .Fail + cp $49 + jr c, .NextChar + +.Fail: + scf + ret + +.NextChar: + dec c + jr nz, .loop + +.Done: + and a + ret +; 17d0b3 + +CheckStringForErrors_IgnoreTerminator: ; 17d0b3 +; Find control chars +.loop + ld a, [de] + inc de + and a + jr z, .next + cp "" + 1 + jr nc, .next + cp "" + jr z, .next + cp "@" + jr z, .next + + cp $5 + jr c, .end + cp "" + jr c, .next + cp $19 + jr c, .end + cp $1d + jr c, .next + cp "%" + 1 + jr c, .end + cp $35 + jr c, .next + cp "" + 1 + jr c, .end + cp "" + jr c, .next + cp "" + 1 + jr c, .end + cp "" + jr c, .next + +.end + scf + ret + +.next + dec c + jr nz, .loop + and a + ret +; 17d0f3 + +Function17d0f3: ; 17d0f3 + ld a, [$c608 + 5] + ld [wOTTrademonSpecies], a + ld [CurPartySpecies], a + ld a, [wcd81] + ld [$c74e], a + ld hl, $c63d + ld de, wOTTrademonOTName + ld bc, 5 + call CopyBytes + ld a, "@" + ld [de], a + ld a, [$c608 + 11] + ld [wOTTrademonID], a + ld a, [$c608 + 12] + ld [wOTTrademonID + 1], a + ld hl, $c608 + 26 + ld a, [hli] + ld [wOTTrademonDVs], a + ld a, [hl] + ld [wOTTrademonDVs + 1], a + ld bc, $c608 + 5 + callba GetCaughtGender + ld a, c + ld [wOTTrademonCaughtData], a + call SpeechTextBox + call FadeToMenu + callba Function10804d + callba Function17d1f1 + ld a, $1 + ld [wForceEvolution], a + ld a, $2 + ld [wLinkMode], a + callba EvolvePokemon + xor a + ld [wLinkMode], a + callba SaveAfterLinkTrade + ld a, $5 + call GetSRAMBank + ld a, $5 + ld [$a800], a + call CloseSRAM + ld a, [MapGroup] + ld b, a + ld a, [MapNumber] + ld c, a + call GetMapTrigger + ld a, d + or e + jr z, .asm_17d180 + ld a, $1 + ld [de], a + +.asm_17d180 + call CloseSubmenu + call RestartMapMusic + ret +; 17d187 + +Mobile_CopyDefaultOTName: ; 17d187 + ld hl, Mobile5F_KrissName + ld de, $c63d + ld bc, 5 + call CopyBytes + ret +; 17d194 + +Mobile5F_KrissName: + db "クりス@@" +; 17d198 + +Mobile_CopyDefaultNickname: ; 17d199 + ld hl, .DefaultNickname + ld de, $c642 + ld bc, 5 + call CopyBytes + ret +; 17d1a6 + +.DefaultNickname: + db "?????" + +Mobile_CopyDefaultMail: ; 17d1ab + ld a, "@" + ld hl, $c647 + ld bc, MAIL_MSG_LENGTH + 1 + call ByteFill + ld hl, .DefaultMessage + ld de, $c647 + ld bc, 6 + call CopyBytes + ret +; 17d1c3 + +.DefaultMessage: + db "こんにちは@" +; 17d1c9 + +Mobile_CopyDefaultMailAuthor: ; 17d1c9 + ld a, "@" + ld de, $c668 + ld bc, 5 + call ByteFill + ld hl, Mobile5F_KrissName + ld de, $c668 + ld bc, 5 + call CopyBytes + ret +; 17d1e1 + +CheckStringContainsLessThanBNextCharacters: ; 17d1e1 +.loop + ld a, [de] + inc de + cp "" + jr nz, .next_char + dec b + jr z, .done + +.next_char + dec c + jr nz, .loop + and a + ret + +.done + scf + ret +; 17d1f1 + +Function17d1f1: ; 17d1f1 + ld a, [CurPartySpecies] + dec a + call SetSeenAndCaughtMon + + ld a, [CurPartySpecies] + cp UNOWN + jr nz, .asm_17d223 + + ld hl, PartyMon1DVs + ld a, [PartyCount] + dec a + ld bc, PARTYMON_STRUCT_LENGTH + call AddNTimes + predef GetUnownLetter + callab UpdateUnownDex + ld a, [wFirstUnownSeen] + and a + jr nz, .asm_17d223 + + ld a, [UnownLetter] + ld [wFirstUnownSeen], a + +.asm_17d223 + ret +; 17d224 + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Parameter: [ScriptVar] = 0..1 +; +; if [ScriptVar] == 0 +; Show japanese menu options +; - News - News - ??? - Cancel +; if [ScriptVar] == 1 +; Show BattleTower-Menu with 3 options in english language +; - Challenge - Explanation - Cancel +Special_Menu_ChallengeExplanationCancel: ; 17d224 + ld a, [ScriptVar] + and a + jr nz, .English + ld a, $4 + ld [ScriptVar], a + ld hl, MenuDataHeader_17d26a ; Japanese Menu, where you can choose 'News' as an option + jr .Load_Interpret + +.English: + ld a, $4 + ld [ScriptVar], a + ld hl, MenuDataHeader_ChallengeExplanationCancel ; English Menu + +.Load_Interpret: + call LoadMenuDataHeader + call Function17d246 + call CloseWindow + ret +; 17d246 + +Function17d246: ; 17d246 + call VerticalMenu + jr c, .Exit + ld a, [ScriptVar] + cp $5 + jr nz, .UsewMenuCursorY + ld a, [wMenuCursorY] + cp $3 + ret z + jr c, .UsewMenuCursorY + dec a + jr .LoadToScriptVar + +.UsewMenuCursorY: + ld a, [wMenuCursorY] + +.LoadToScriptVar: + ld [ScriptVar], a + ret + +.Exit: + ld a, $4 + ld [ScriptVar], a + ret +; 17d26a + +MenuDataHeader_17d26a: ; 17d26a + db $40 ; flags + db 0, 0 ; start coords + db 9, 14 ; end coords + dw MenuData2_17d272 + db 1 ; default option + +MenuData2_17d272: ; 17d272 + db $a0 ; flags + db 4 + db "ニュース¯よみこむ@" + db "ニュース¯みる@" + db "せつめい@" + db "やめる@" +; 17d28f + +MenuDataHeader_ChallengeExplanationCancel: ; 17d28f + db $40 ; flags + db 0, 0 ; start coords + db 7, 14 ; end coords + dw MenuData2_ChallengeExplanationCancel + db 1 ; default option + +MenuData2_ChallengeExplanationCancel: ; 17d297 + db $a0 ; flags + db 3 + db "Challenge@" + db "Explanation@" + db "Cancel@" +; 17d2b6 + +Function17d2b6: ; 17d2b6 + call Function17d2c0 + callba Function1181da + ret +; 17d2c0 + +Function17d2c0: ; 17d2c0 + xor a + ld [wJumptableIndex], a + ld [wcf64], a + ld [wcf65], a + ld [wcf66], a + ret +; 17d2ce + +Function17d2ce: ; 17d2ce + ld a, $5 + call GetSRAMBank + ld a, [$aa72] + call CloseSRAM + and a + jr nz, .asm_17d2e2 + ld a, $1 + ld [ScriptVar], a + ret + +.asm_17d2e2 + call Function17d314 + ret c + call SpeechTextBox + call FadeToMenu + ld a, [rSVBK] + push af + ld a, $4 + ld [rSVBK], a + call Function17d370 + call Function17d45a + pop af + ld [rSVBK], a + ld de, MUSIC_MOBILE_CENTER + ld a, e + ld [wMapMusic], a + ld [MusicFadeID], a + ld a, d + ld [MusicFadeID + 1], a + call PlayMusic + call ReturnToMapFromSubmenu + call CloseSubmenu + ret +; 17d314 + +Function17d314: ; 17d314 + ld a, $5 + call GetSRAMBank + ld a, [$b1b1] + call CloseSRAM + cp $21 + jr nc, .asm_17d354 + ld a, $6 + call GetSRAMBank + ld l, $0 + ld h, l + ld de, $a006 + ld a, [$a004] + ld c, a + ld a, [$a005] + ld b, a +.asm_17d336 + push bc + ld a, [de] + inc de + ld c, a + ld b, $0 + add hl, bc + pop bc + dec bc + ld a, b + or c + jr nz, .asm_17d336 + ld a, [$a002] + cp l + jr nz, .asm_17d354 + ld a, [$a003] + cp h + jr nz, .asm_17d354 + call CloseSRAM + and a + ret + +.asm_17d354 + call CloseSRAM + ld a, $5 + call GetSRAMBank + xor a + ld hl, $aa73 + ld bc, $c + call ByteFill + call CloseSRAM + ld a, $2 + ld [ScriptVar], a + scf + ret +; 17d370 + +Function17d370: ; 17d370 + xor a + ld [wcd77], a + ld [wcd78], a + ld [wcd79], a + dec a + ld [wcd6c], a + call ClearBGPalettes + call ClearSprites + call ClearScreen + callba ReloadMapPart + call DisableLCD + ld hl, VTiles1 tile $6e + ld de, $c608 + ld bc, 1 tiles + call CopyBytes + ld a, $1 + ld [rVBK], a + ld hl, PokemonNewsGFX + ld de, VTiles1 + ld bc, $48 tiles + call CopyBytes + xor a + ld hl, VTiles2 tile $7f + ld bc, 1 tiles + call ByteFill + ld hl, $c608 + ld de, VTiles1 tile $6e + ld bc, 1 tiles + call CopyBytes + xor a + ld [rVBK], a + ld hl, GFX_17eb7e + ld de, VTiles2 tile $60 + ld bc, 1 tiles + call CopyBytes + call EnableLCD + call Function17d60b + ld a, $0 + ld [BGMapBuffer], a + ld a, $d0 + ld [wcd21], a + ld a, $6 + call GetSRAMBank + ld hl, $a006 + ld de, UnknBGPals + ld bc, $1000 + call CopyBytes + call CloseSRAM + ret +; 17d3f6 + +Function17d3f6: ; 17d3f6 + call ClearBGPalettes + call ClearSprites + call ClearScreen + callba ReloadMapPart + +Function17d405: + call DisableLCD + ld hl, VTiles1 tile $6e + ld de, $c608 + ld bc, 1 tiles + call CopyBytes + ld a, $1 + ld [rVBK], a + ld hl, PokemonNewsGFX + ld de, VTiles1 + ld bc, $48 tiles + call CopyBytes + xor a + ld hl, VTiles2 tile $7f + ld bc, 1 tiles + call ByteFill + ld hl, $c608 + ld de, VTiles1 tile $6e + ld bc, 1 tiles + call CopyBytes + xor a + ld [rVBK], a + call EnableLCD + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + ld hl, Palette_17eff6 + ld de, UnknBGPals + ld bc, 8 palettes + call CopyBytes + call SetPalettes + pop af + ld [rSVBK], a + ret +; 17d45a + +Function17d45a: ; 17d45a +.asm_17d45a + call JoyTextDelay + ld a, [wcd77] + bit 7, a + jr nz, .asm_17d46f + call Function17d474 + callba ReloadMapPart + jr .asm_17d45a + +.asm_17d46f + xor a + ld [ScriptVar], a + ret +; 17d474 + +Function17d474: ; 17d474 + jumptable Jumptable_17d483, wcd77 +; 17d483 + +Jumptable_17d483: ; 17d483 + dw Function17d48d + dw Function17d5be + dw Function17d5c4 + dw Function17d6fd + dw Function17e427 +; 17d48d + +Function17d48d: ; 17d48d + ld hl, Palette_17eff6 + ld de, $c608 + ld bc, $40 + call CopyBytes + ld hl, TileAttrmap_17eb8e + decoord 0, 0 + bccoord 0, 0, AttrMap + ld a, $12 +.asm_17d4a4 + push af + ld a, $14 + push hl +.asm_17d4a8 + push af + ld a, [hli] + cp $7f + jr z, .asm_17d4b0 + add $80 + +.asm_17d4b0 + ld [de], a + inc de + ld a, [hli] + ld [bc], a + inc bc + pop af + dec a + jr nz, .asm_17d4a8 + pop hl + push bc + ld bc, $40 + add hl, bc + pop bc + pop af + dec a + jr nz, .asm_17d4a4 + ld a, [BGMapBuffer] + ld l, a + ld a, [wcd21] + ld h, a + ld a, [hli] + ld e, a + ld a, [wcd6c] + cp e + jr z, .asm_17d4e0 + ld a, e + ld [wcd6c], a + ld [wMapMusic], a + ld d, $0 + call PlayMusic2 + +.asm_17d4e0 + ld a, [hli] + ld de, $c608 + ld c, $8 +.asm_17d4e6 + srl a + jr nc, .asm_17d4f6 + ld b, $8 + push af +.asm_17d4ed + ld a, [hli] + ld [de], a + inc de + dec b + jr nz, .asm_17d4ed + pop af + jr .asm_17d4fc + +.asm_17d4f6 + push af + ld a, e + add $8 + ld e, a + pop af + +.asm_17d4fc + dec c + jr nz, .asm_17d4e6 + push hl + call Function17d5f6 + pop hl + ld a, [hli] + and a + jr z, .asm_17d539 +.asm_17d508 + push af + ld a, [hli] + ld [wcd4f], a + ld a, [hli] + ld [wcd50], a + ld a, [hli] + ld [wcd51], a + ld a, [hli] + ld [wcd52], a + ld a, [hli] + sla a + sla a + sla a + add $98 + ld [wcd53], a + ld de, wcd4f + call Function17e613 + ld a, [hli] + ld [wcd53], a + ld de, wcd4f + call Function17e691 + pop af + dec a + jr nz, .asm_17d508 + +.asm_17d539 + ld a, [hli] +.asm_17d53a + push af + ld a, [hli] + ld c, a + ld a, [hli] + ld b, a + push hl + pop de + hlcoord 0, 0 + add hl, bc + call PlaceString + push de + pop hl + inc hl + pop af + dec a + jr nz, .asm_17d53a + ld de, CreditsTimer + ld bc, $c + call CopyBytes + xor a + ld [wcd2e], a + ld [wcd2f], a + inc a + ld [wcd30], a + ld [wcd31], a + ld de, wcd32 + ld bc, $10 + call CopyBytes + ld a, [hli] + ld [wcd42], a + ld a, [hli] + ld [wcd43], a + ld a, [hli] + ld [wMobileInactivityTimerMinutes], a + ld a, [hli] + ld [wMobileInactivityTimerSeconds], a + ld a, [hli] + ld [wMobileInactivityTimerFrames], a + ld a, [hli] + and a + jr z, .asm_17d58a + call Function17d6a1 + +.asm_17d58a + ld a, l + ld [wcd49], a + ld a, h + ld [wcd4a], a + ld a, [wcd42] + ld c, a + ld b, $0 + add hl, bc + add hl, bc + ld a, l + ld [wcd4b], a + ld a, h + ld [wcd4c], a + add hl, bc + add hl, bc + ld a, l + ld [wcd4d], a + ld a, h + ld [wcd4e], a + call Function17e451 + call Function17e55b + call Function17e5af + callba ReloadMapPart + jp Function17e438 +; 17d5be + +Function17d5be: ; 17d5be + call SetPalettes + call Function17e438 + +Function17d5c4: + ld a, [hJoyPressed] + and a + ret z + ld c, 0 + ld b, c + ld hl, wcd32 +.loop + srl a + jr c, .got_button + inc c + inc c + jr .loop + +.got_button + add hl, bc + ld a, [hli] + ld c, a + ld a, [hli] + ld b, a + and c + cp $ff + ret z + ld a, [wcd20] + ld l, a + ld a, [wcd21] + ld h, a + add hl, bc + ld a, l + ld [wcd78], a + ld a, h + ld [wcd79], a + ld a, $3 + ld [wcd77], a + ret +; 17d5f6 + +Function17d5f6: ; 17d5f6 + ld a, $5 + ld [rSVBK], a + ld hl, $c608 + ld de, UnknBGPals + ld bc, 8 palettes + call CopyBytes + ld a, $4 + ld [rSVBK], a + ret +; 17d60b + +Function17d60b: ; 17d60b + ld a, $5 + call GetSRAMBank + ld hl, $b1d3 + ld de, $c608 + ld bc, $20 + call CopyBytes + ld a, [$b1b1] + ld c, a + ld a, [$b1b2] + ld b, a + ld a, [$b1b3] + ld l, a + ld a, [$b1b4] + ld h, a + call CloseSRAM + ld a, $6 + call GetSRAMBank + ld de, $c708 + ld a, c + and a + jr z, .asm_17d684 +.asm_17d63b + push bc + ld a, l + ld [de], a + inc de + ld a, h + ld [de], a + inc de + ld bc, $a + add hl, bc + pop bc + ld a, [hli] + ld [wcd4a], a + ld a, [hli] + ld [wcd49], a + push hl + push de + ld hl, $c608 + ld e, b + ld d, $0 + add hl, de + ld a, [hli] + ld [wcd4b], a + ld a, [hl] + ld [wcd4c], a + pop de + pop hl + inc b + inc b + dec c + dec c + jr z, .asm_17d684 + push bc + push de + ld a, [wcd49] + ld c, a + ld a, [wcd4a] + ld b, a + ld a, [wcd4b] + ld e, a + ld a, [wcd4c] + ld d, a +.asm_17d67a + add hl, de + dec bc + ld a, c + or b + jr nz, .asm_17d67a + pop de + pop bc + jr .asm_17d63b + +.asm_17d684 + call CloseSRAM + ld a, $5 + call GetSRAMBank + ld hl, $c708 + ld de, $b1b3 + ld a, [$b1b1] + ld c, a + ld a, [$b1b2] + ld b, a + call CopyBytes + call CloseSRAM + ret +; 17d6a1 + + +Function17d6a1: ; 17d6a1 + push hl + ld a, [wcd6e] + ld c, a + ld b, $0 + ld a, $5 + call GetSRAMBank + ld hl, $b1d3 + add hl, bc + add hl, bc + ld a, [hli] + ld [wcd47], a + ld a, [hl] + ld [BGMapPalBuffer], a + ld hl, $b1b3 + add hl, bc + add hl, bc + ld a, [hli] + ld c, a + ld a, [hl] + ld h, a + ld l, c + call CloseSRAM + ld a, $6 + call GetSRAMBank + ld a, l + ld [wcd5e], a + ld a, h + ld [wcd5f], a + ld de, wcd60 + ld bc, $4 + call CopyBytes + inc hl + inc hl + ld de, wcd64 + ld bc, $4 + call CopyBytes + ld a, [hli] + ld [wcd69], a + ld a, [hli] + ld [wcd68], a + ld a, l + ld [wcd6a], a + ld a, h + ld [wcd6b], a + call CloseSRAM + pop hl + ret +; 17d6fd + +Function17d6fd: ; 17d6fd + ld a, [wcd77] + bit 7, a + jr nz, asm_17d721 + ld a, [wcd78] + ld l, a + ld a, [wcd79] + ld h, a + ld a, [hl] + cp $ff + jr z, asm_17d721 + +Function17d711: +.crash_loop + cp $31 + jr nc, .crash_loop + ld e, a + ld d, 0 + ld hl, Jumptable17d72a + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp hl + +asm_17d721 + call Function17e5af + ld a, $2 + ld [wcd77], a + ret +; 17d72a + +Jumptable17d72a: ; 17d72a + dw Function17d78c + dw Function17d78d + dw Function17d7b4 + dw Function17d7c2 + dw Function17d7d3 + dw Function17d7e5 + dw Function17d818 + dw Function17d833 + dw Function17d85d + dw Function17d902 + dw Function17d93a + dw Function17d98b + dw Function17d9e3 + dw Function17da31 + dw Function17da9c + dw Function17dadc + dw Function17db2d + dw Function17db56 + dw Function17db77 + dw Function17dbe9 + dw Function17dc1f + dw Function17dc9f + dw Function17dca9 + dw Function17dccf + dw Function17dd13 + dw Function17dd30 + dw Function17dd49 + dw Function17ddcd + dw Function17de32 + dw Function17de91 + dw Function17ded9 + dw Function17e0fd + dw Function17e133 + dw Function17e165 + dw Function17e1a1 + dw Function17e254 + dw Function17e261 + dw Function17e270 + dw Function17e27f + dw Function17e293 + dw Function17e2a7 + dw Function17e367 + dw Function17e37e + dw Function17e395 + dw Function17e3ac + dw Function17e3c3 + dw Function17e3e0 + dw Function17e3f0 + dw Function17e409 +; 17d78c + +Function17d78c: ; 17d78c + ret +; 17d78d + +Function17d78d: ; 17d78d + call Function17e415 + ld a, [hli] + ld c, a + ld a, [hli] + ld b, a + call Function17e41e + ld a, $6 + call GetSRAMBank + ld hl, $a006 + add hl, bc + ld de, UnknBGPals + ld bc, $1000 + call CopyBytes + call CloseSRAM + xor a + ld [wcd77], a + call ClearBGPalettes + ret +; 17d7b4 + +Function17d7b4: ; 17d7b4 + call Function17e415 + ld a, [hli] + ld e, a + ld d, $0 + call PlayMusic2 + call Function17e41e + ret +; 17d7c2 + +Function17d7c2: ; 17d7c2 + call Function17e415 + ld a, [hli] + ld e, a + ld d, $0 + call PlaySFX + call WaitSFX + call Function17e41e + ret +; 17d7d3 + +Function17d7d3: ; 17d7d3 + call Function17e415 + ld a, [hli] + dec a + ld e, a + ld d, $0 + call PlayCryHeader + call WaitSFX + call Function17e41e + ret +; 17d7e5 + +Function17d7e5: ; 17d7e5 + call Function17e415 + ld a, [hli] + ld [wcd4f], a + ld a, [hli] + ld [wcd50], a + ld a, [hli] + ld [wcd51], a + ld a, [hli] + ld [wcd52], a + ld a, [hli] + sla a + sla a + sla a + add $98 + ld [wcd53], a + ld de, wcd4f + call Function17e613 + ld a, [hli] + ld [wcd53], a + ld de, wcd4f + call Function17e691 + call Function17e41e + ret +; 17d818 + +Function17d818: ; 17d818 + call Function17e415 + ld a, [hli] + ld c, a + ld a, [hli] + ld b, a + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + call Function17e41e + call Function17e447 + ld e, l + ld d, h + hlcoord 0, 0 + add hl, bc + call PlaceString + ret +; 17d833 + +Function17d833: ; 17d833 + call Function17e415 + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + ld a, [hli] + ld c, a + ld a, [hli] + ld b, a + call Function17e41e + push de + push bc + call Function17e32b + pop bc + pop de + call Function17e43d + ld c, l + ld b, h + hlcoord 0, 0 + add hl, de + ld e, l + ld d, h + callba Function11c08f + call Function17e349 + ret +; 17d85d + +Function17d85d: ; 17d85d + call Function17e415 + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + push hl + ld hl, UnknBGPals + add hl, de + ld de, wcc60 +.asm_17d86c + ld a, [hli] + ld [de], a + inc de + and a + jr nz, .asm_17d86c + pop hl + ld de, $c608 + ld c, $0 +.asm_17d878 + ld a, [hli] + cp $ff + jr z, .asm_17d8c7 + ld [wcd4f], a + ld a, [hli] + ld [wcd50], a + ld a, [hli] + ld [wcd51], a + ld a, [hli] + ld [wcd52], a + ld a, [wcd51] + push af + cp $c0 + jr c, .asm_17d89b + ld a, [wcd4f] + ld [rSVBK], a + jr .asm_17d8a1 + +.asm_17d89b + ld a, [wcd4f] + call GetSRAMBank + +.asm_17d8a1 + push hl + ld a, [wcd50] + ld l, a + ld a, [wcd51] + ld h, a + ld a, [wcd52] +.asm_17d8ad + push af + ld a, [hli] + ld [de], a + inc de + inc c + pop af + dec a + jr nz, .asm_17d8ad + pop hl + pop af + cp $c0 + jr c, .asm_17d8c2 + ld a, $4 + ld [rSVBK], a + jr .asm_17d878 + +.asm_17d8c2 + call CloseSRAM + jr .asm_17d878 + +.asm_17d8c7 + call Function17e41e + push bc + ld a, $3 + ld [rSVBK], a + ld hl, $c608 + ld de, UnknBGPals + ld b, $0 + call CopyBytes + ld a, $4 + ld [rSVBK], a + call Function17e32b + pop bc + ld a, c + ld [wcd3b], a + xor a + ld [wcf66], a + callba Function118329 + ld a, [wc300] + and a + jr z, .asm_17d8fe + cp $a + jr z, .asm_17d8fe + call Function17e309 + ret + +.asm_17d8fe + call Function17e349 + ret +; 17d902 + +Function17d902: ; 17d902 + call Function17e415 + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + push de + call Function17e41e + call Function17e32b + pop de + ld hl, UnknBGPals + add hl, de + ld de, wcc60 +.asm_17d918 + ld a, [hli] + ld [de], a + inc de + and a + jr nz, .asm_17d918 + xor a + ld [wcf66], a + callba Function11837a + ld a, [wc300] + and a + jr z, .asm_17d936 + cp $a + jr z, .asm_17d936 + call Function17e309 + ret + +.asm_17d936 + call Function17e349 + ret +; 17d93a + +Function17d93a: ; 17d93a + call Function17e415 + ld de, $c708 + ld bc, $5 + call CopyBytes + call Function17e41e + call Function17e32b + ld a, [rSVBK] + push af + ld a, $1 + ld [rSVBK], a + ld a, [$c70c] + call Function17e6de + ld a, [$c70a] + ld [CurPartySpecies], a + ld a, [$c70c] + ld e, a + callba LoadMonPaletteAsNthBGPal + call SetPalettes + ld a, [$c708] + ld l, a + ld a, [$c709] + ld h, a + ld a, [$c70b] + ld c, a + decoord 0, 0 + add hl, de + ld e, l + ld d, h + callba HOF_AnimateFrontpic + pop af + ld [rSVBK], a + call Function17e349 + ret +; 17d98b + +Function17d98b: ; 17d98b + call Function17e415 + ld de, $c708 + ld bc, $4 + call CopyBytes + call Function17e41e + call Function17e32b + ld a, [rSVBK] + push af + ld a, $1 + ld [rSVBK], a + ld a, [$c70b] + call Function17e6de + ld a, [$c70a] + ld [TrainerClass], a + ld a, [$c70b] + ld e, a + callba LoadTrainerClassPaletteAsNthBGPal + call SetPalettes + ld a, [$c708] + ld e, a + ld a, [$c709] + ld d, a + push de + ld de, VTiles2 + callba GetTrainerPic + pop hl + decoord 0, 0 + add hl, de + ld bc, $707 + predef PlaceGraphic + pop af + ld [rSVBK], a + call Function17e349 + ret +; 17d9e3 + +Function17d9e3: ; 17d9e3 + call Function17e415 + ld de, $c708 + ld bc, $7 + call CopyBytes + call Function17e41e + ld a, [$c70b] + push af + cp $c0 + jr c, .asm_17da01 + ld a, [$c70c] + ld [rSVBK], a + jr .asm_17da07 + +.asm_17da01 + ld a, [$c70c] + call GetSRAMBank + +.asm_17da07 + ld a, [$c708] + ld l, a + ld a, [$c709] + ld h, a + ld a, [$c70a] + ld e, a + ld a, [$c70b] + ld d, a + ld a, [$c70d] + ld c, a + ld a, [$c70e] + ld b, a + call CopyBytes + pop af + cp $c0 + jr c, .asm_17da2d + ld a, $4 + ld [rSVBK], a + jr .asm_17da30 + +.asm_17da2d + call CloseSRAM + +.asm_17da30 + ret +; 17da31 + +Function17da31: ; 17da31 + call Function17e415 + ld de, $c708 + ld bc, $4 + call CopyBytes + call Function17e41e + ld a, [$c709] + push af + cp $c0 + jr c, .asm_17da4f + ld a, [$c70a] + ld [rSVBK], a + jr .asm_17da55 + +.asm_17da4f + ld a, [$c70a] + call GetSRAMBank + +.asm_17da55 + ld a, [$c708] + ld e, a + ld a, [$c709] + ld d, a + ld a, [$c70b] + ld c, a + bit 7, c + jr nz, .asm_17da70 + ld hl, Unknown_17da8c + ld b, $0 + add hl, bc + ld a, [de] + or [hl] + ld [de], a + jr .asm_17da7d + +.asm_17da70 + ld hl, Unknown_17da94 + ld a, c + and $7f + ld c, a + ld b, $0 + add hl, bc + ld a, [de] + and [hl] + ld [de], a + +.asm_17da7d + pop af + cp $c0 + jr c, .asm_17da88 + ld a, $4 + ld [rSVBK], a + jr .asm_17da8b + +.asm_17da88 + call CloseSRAM + +.asm_17da8b + ret +; 17da8c + +Unknown_17da8c: +x = 0 + rept 8 + db 1 << x +x = x + 1 + endr + +Unknown_17da94: +x = 0 + rept 8 + db (1 << x) ^ $ff +x = x + 1 + endr +; 17da9c + +Function17da9c: ; 17da9c + ld a, [wcd31] + dec a + jr z, .asm_17dabd + push af + call Function17e566 + pop af + ld [wcd31], a + ld hl, wcd24 + ld a, [wcd2e] + sub [hl] + ld [wcd2e], a + call Function17e55b + call Function17e5af +.asm_17daba + jp Function17e415 + +.asm_17dabd + ld a, [wcd2f] + and a + jr z, .asm_17daba + ld hl, wcd24 + sub [hl] + ld [wcd2f], a + ld a, [wcd2e] + sub [hl] + ld [wcd2e], a + call Function17e451 + call Function17e55b + call Function17e5af + jr .asm_17daba +; 17dadc + +Function17dadc: ; 17dadc + ld a, [wcd2e] + ld hl, wcd24 + add [hl] + ld hl, wcd42 + cp [hl] + jr z, .asm_17db0e + jr nc, .asm_17db0e + ld hl, wcd31 + ld a, [wcd2b] + cp [hl] + jr z, .asm_17db11 + call Function17e566 + ld a, [wcd31] + inc a + ld [wcd31], a + ld hl, wcd24 + ld a, [wcd2e] + add [hl] + ld [wcd2e], a + call Function17e55b + call Function17e5af + +.asm_17db0e + jp Function17e415 + +.asm_17db11 + ld hl, wcd24 + ld a, [wcd2f] + add [hl] + ld [wcd2f], a + ld a, [wcd2e] + add [hl] + ld [wcd2e], a + call Function17e451 + call Function17e55b + call Function17e5af + jr .asm_17db0e +; 17db2d + +Function17db2d: ; 17db2d + ld a, [wcd30] + ld hl, wcd24 + cp [hl] + jr z, .asm_17db53 + ld hl, wcd42 + ld a, [wcd2e] + inc a + cp [hl] + jr z, .asm_17db53 + ld [wcd2e], a + call Function17e566 + ld a, [wcd30] + inc a + ld [wcd30], a + call Function17e55b + call Function17e5af + +.asm_17db53 + jp Function17e415 +; 17db56 + +Function17db56: ; 17db56 + ld a, [wcd30] + cp $1 + jr z, .asm_17db74 + call Function17e566 + ld a, [wcd30] + dec a + ld [wcd30], a + ld a, [wcd2e] + dec a + ld [wcd2e], a + call Function17e55b + call Function17e5af + +.asm_17db74 + jp Function17e415 +; 17db77 + +Function17db77: ; 17db77 + ld hl, wcd2d + ld a, [wcd2f] + add [hl] + ld hl, wcd42 + cp [hl] + jr z, .asm_17dbae + jr nc, .asm_17dbae + call Function17e566 + ld hl, wcd2d + ld a, [wcd2f] + add [hl] + ld [wcd2f], a + ld a, [wcd2e] + add [hl] + ld hl, wcd42 + cp [hl] + jr c, .asm_17db9f + ld a, [hl] + dec a + +.asm_17db9f + ld [wcd2e], a + call Function17dbb1 + call Function17e451 + call Function17e55b + call Function17e5af + +.asm_17dbae + jp Function17e415 +; 17dbb1 + +Function17dbb1: ; 17dbb1 + ld hl, wcd2f + ld a, [wcd42] + sub [hl] + ld hl, wcd2d + cp [hl] + ret nc + ld a, $1 + ld [wcd30], a + ld [wcd31], a + ld a, [wcd24] + ld c, a + ld a, [wcd24] + ld b, a + ld a, [wcd2e] + ld hl, wcd2f + sub [hl] +.asm_17dbd4 + and a + ret z + push af + ld hl, wcd30 + ld a, b + cp [hl] + jr nz, .asm_17dbe4 + ld a, $1 + ld [hl], a + ld hl, wcd31 + +.asm_17dbe4 + inc [hl] + pop af + dec a + jr .asm_17dbd4 +; 17dbe9 + +Function17dbe9: ; 17dbe9 + ld hl, wcd2d + ld a, [wcd2f] + sub [hl] + bit 7, a + jr z, .asm_17dbf5 + xor a + +.asm_17dbf5 + ld [wcd2f], a + ld a, [wcd30] + dec a + ld c, a + ld a, [wcd31] + ld b, a + xor a + ld hl, wcd24 +.asm_17dc05 + dec b + jr z, .asm_17dc0b + add [hl] + jr .asm_17dc05 + +.asm_17dc0b + add c + ld hl, wcd2f + add [hl] + ld [wcd2e], a + call Function17e451 + call Function17e55b + call Function17e5af + jp Function17e415 +; 17dc1f + +Function17dc1f: ; 17dc1f + call Function17e415 + ld de, $c688 + ld bc, $6 + call CopyBytes + call Function17e32b + ld a, [rSVBK] + push af + ld a, $1 + ld [rSVBK], a + ld hl, $c688 + ld a, $40 + ld [$c708], a + ld a, [hli] + ld [$c70a], a + add $5 + ld [$c70c], a + ld a, [hli] + ld [$c709], a + add $4 + ld [$c70b], a + ld a, $96 + ld [$c70d], a + ld a, $5c + ld [$c70e], a + ld a, $1 + ld [$c70f], a + ld hl, $c708 + call LoadMenuDataHeader + call VerticalMenu + jr nc, .asm_17dc6e + ld a, $2 + ld [wMenuCursorY], a + +.asm_17dc6e + call CloseWindow + pop af + ld [rSVBK], a + ld a, [wMenuCursorY] + cp $1 + jr nz, .asm_17dc85 + ld a, [$c68a] + ld l, a + ld a, [$c68a + 1] + ld h, a + jr .asm_17dc8d + +.asm_17dc85 + ld a, [$c68a + 2] + ld l, a + ld a, [$c68a + 3] + ld h, a + +.asm_17dc8d + push hl + call Function17e349 + pop hl + call Function17e40f + ret +; 17dc96 + +MenuData2_17dc96: + db $e0 ; flags + db 2 + db "はい@" + db "いいえ@" +; 17dc9f + +Function17dc9f: ; 17dc9f + call Function17e415 + call Function17e41e + call RotateFourPalettesLeft + ret +; 17dca9 + +Function17dca9: ; 17dca9 + call Function17e415 + call Function17e41e + +Function17dcaf: + ld a, $5 + ld [rSVBK], a + ld hl, UnknBGPals + ld de, $8 + ld c, $8 +.asm_17dcbb + push hl + ld a, $ff + ld [hli], a + ld a, $7f + ld [hl], a + pop hl + add hl, de + dec c + jr nz, .asm_17dcbb + call RotateThreePalettesRight + ld a, $4 + ld [rSVBK], a + ret +; 17dccf + +Function17dccf: ; 17dccf + call Function17e415 + push hl + ld a, [wcd4b] + ld l, a + ld a, [wcd4c] + ld h, a + ld a, [wcd2e] + ld c, a + ld b, $0 + add hl, bc + add hl, bc + ld a, [hli] + ld c, a + ld a, [hl] + ld b, a + call Function17e43d + call Function17e41e +.asm_17dced + ld a, [wcd78] + ld l, a + ld a, [wcd79] + ld h, a + ld a, [hl] + cp $ff + jr z, .asm_17dd0d +.crash_loop + cp $31 + jr nc, .crash_loop + call Function17d711 + ld a, [wcd77] + bit 7, a + jr nz, .asm_17dd0d + and a + jr z, .asm_17dd11 + jr .asm_17dced + +.asm_17dd0d + pop hl + jp Function17e41e + +.asm_17dd11 + pop hl + ret +; 17dd13 + +Function17dd13: ; 17dd13 + call Function17e415 + ld a, [hli] + ld c, a + ld a, [hli] + ld b, a + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + call Function17e41e + call Function17e447 + push hl + hlcoord 0, 0 + add hl, bc + push hl + pop bc + pop hl + call PlaceHLTextAtBC + ret +; 17dd30 + +Function17dd30: ; 17dd30 + call Function17e415 + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + ld a, [hli] + ld c, a + ld b, $0 + ld a, [hli] + push af + call Function17e41e + pop af + hlcoord 0, 0 + add hl, de + call Function17e600 + ret +; 17dd49 + +Function17dd49: ; 17dd49 + call Function17e415 + ld de, $c708 + ld bc, $a + call CopyBytes + ld a, [$c711] + ld c, a + ld b, $0 + call CopyBytes + ld a, [$c70a] + cp $c0 + jr c, .sram + ld a, [$c708] + ld [rSVBK], a + jr .got_bank + +.sram + ld a, [$c708] + call GetSRAMBank + +.got_bank + ld a, [$c709] + ld l, a + ld a, [$c70a] + ld h, a + ld de, $c688 + ld a, [$c711] + ld c, a + ld b, $0 + call CopyBytes + ld a, [$c70a] + cp $c0 + jr c, .close_sram + ld a, $4 + ld [rSVBK], a + jr .exited_bank + +.close_sram + call CloseSRAM + +.exited_bank + ld a, [$c711] + ld c, a + ld hl, $c712 + ld de, $c688 +.loop + ld a, [de] + inc de + cp [hl] + inc hl + jr z, .next + jr c, .load + jr .load2 + +.next + dec c + jr nz, .loop + ld a, [$c70d] + ld l, a + ld a, [$c70e] + ld h, a + jr .done + +.load2 + ld a, [$c70f] + ld l, a + ld a, [$c710] + ld h, a + jr .done + +.load + ld a, [$c70b] + ld l, a + ld a, [$c70c] + ld h, a + +.done + call Function17e40f + ret +; 17ddcd + +Function17ddcd: ; 17ddcd + call Function17e415 + ld de, $c708 + ld bc, $8 + call CopyBytes + ld a, [$c70a] + cp $c0 + jr c, .asm_17dde7 + ld a, [$c708] + ld [rSVBK], a + jr .asm_17dded + +.asm_17dde7 + ld a, [$c708] + call GetSRAMBank + +.asm_17dded + ld a, [$c709] + ld e, a + ld a, [$c70a] + ld d, a + ld a, [de] + ld [$c710], a + ld a, [$c70b] + ld c, a + ld b, $0 + ld a, [$c70a] + cp $c0 + jr c, .asm_17de0c + ld a, $4 + ld [rSVBK], a + jr .asm_17de0f + +.asm_17de0c + call CloseSRAM + +.asm_17de0f + push hl + ld hl, Unknown_17da8c + add hl, bc + ld a, [hl] + ld hl, $c710 + and [hl] + pop hl + jr nz, .asm_17de26 + ld a, [$c70e] + ld l, a + ld a, [$c70f] + ld h, a + jr .asm_17de2e + +.asm_17de26 + ld a, [$c70c] + ld l, a + ld a, [$c70d] + ld h, a + +.asm_17de2e + call Function17e40f + ret +; 17de32 + +Function17de32: ; 17de32 + call Function17e415 + ld de, $c708 + ld bc, $9 + call CopyBytes + ld a, [$c710] + ld c, a + ld b, $0 + call CopyBytes + ld a, $6 + call GetSRAMBank + call Function17f4f6 + ld a, [$c708] + ld e, a + ld a, [$c709] + ld d, a + add hl, de + ld e, l + ld d, h + ld a, [$c710] + ld c, a + ld hl, $c711 +.asm_17de61 + ld a, [de] + inc de + cp [hl] + inc hl + jr z, .asm_17de6b + jr c, .asm_17de82 + jr .asm_17de78 + +.asm_17de6b + dec c + jr nz, .asm_17de61 + ld a, [$c70c] + ld l, a + ld a, [$c70d] + ld h, a + jr .asm_17de8a + +.asm_17de78 + ld a, [$c70e] + ld l, a + ld a, [$c70f] + ld h, a + jr .asm_17de8a + +.asm_17de82 + ld a, [$c70a] + ld l, a + ld a, [$c70b] + ld h, a + +.asm_17de8a + call CloseSRAM + call Function17e40f + ret +; 17de91 + +Function17de91: ; 17de91 + call Function17e415 + ld de, $c708 + ld bc, $7 + call CopyBytes + ld a, $6 + call GetSRAMBank + call Function17f4f6 + ld a, [$c708] + ld e, a + ld a, [$c709] + ld d, a + add hl, de + ld e, l + ld d, h + ld a, [$c70a] + ld c, a + ld b, $0 + ld hl, Unknown_17da8c + add hl, bc + ld a, [hl] + ld l, e + ld h, d + and [hl] + jr nz, .asm_17deca + ld a, [$c70d] + ld l, a + ld a, [$c70e] + ld h, a + jr .asm_17ded2 + +.asm_17deca + ld a, [$c70b] + ld l, a + ld a, [$c70c] + ld h, a + +.asm_17ded2 + call CloseSRAM + call Function17e40f + ret +; 17ded9 + +Function17ded9: ; 17ded9 + call Function17e415 + ld de, $c708 + ld bc, $1f + call CopyBytes + call Function17e32b + ld a, [rSVBK] + push af + ld a, $1 + ld [rSVBK], a + ld hl, $c708 + ld a, [hli] + ld [CurPartySpecies], a + ld [TempEnemyMonSpecies], a + ld a, [hli] + ld [CurPartyLevel], a + ld a, [hli] + ld b, a + ld a, [PartyCount] + cp $6 + jp nc, Function17e026 + xor a + ld [MonType], a + push hl + push bc + predef TryAddMonToParty + callba SetCaughtData + pop bc + pop hl + bit 1, b + jr z, .asm_17df33 + push bc + push hl + ld a, [PartyCount] + dec a + ld hl, PartyMonNicknames + call SkipNames + ld d, h + ld e, l + pop hl + call CopyBytes + pop bc + jr .asm_17df37 + +.asm_17df33 + ld de, $6 + add hl, de + +.asm_17df37 + bit 2, b + jr z, .asm_17df5a + push bc + push hl + ld a, [PartyCount] + dec a + ld hl, PartyMonOT + call SkipNames + ld d, h + ld e, l + pop hl + call CopyBytes + ld a, [hli] + ld b, a + push hl + callba SetGiftPartyMonCaughtData + pop hl + pop bc + jr .asm_17df5e + +.asm_17df5a + ld de, $7 + add hl, de + +.asm_17df5e + bit 3, b + jr z, .asm_17df79 + push bc + push hl + ld a, [PartyCount] + dec a + ld hl, PartyMon1ID + call GetPartyLocation + ld d, h + ld e, l + pop hl + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + ld [de], a + pop bc + jr .asm_17df7b + +.asm_17df79 + inc hl + inc hl + +.asm_17df7b + bit 4, b + jr z, .asm_17dfd0 + push bc + push hl + ld a, [PartyCount] + dec a + ld hl, PartyMon1DVs + call GetPartyLocation + ld d, h + ld e, l + pop hl + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + ld [de], a + push hl + ld a, [PartyCount] + dec a + ld hl, PartyMon1Species + call GetPartyLocation + ld a, [hl] + ld [CurSpecies], a + call GetBaseData + ld a, [PartyCount] + dec a + ld hl, PartyMon1MaxHP + call GetPartyLocation + ld d, h + ld e, l + push hl + ld b, $0 + callba CalcPkmnStats + ld a, [PartyCount] + dec a + ld hl, PartyMon1HP + call GetPartyLocation + ld d, h + ld e, l + pop hl + ld a, [hli] + ld [de], a + inc de + ld a, [hl] + ld [de], a + pop hl + pop bc + jr .asm_17dfd2 + +.asm_17dfd0 + inc hl + inc hl + +.asm_17dfd2 + bit 5, b + jr z, .asm_17dfea + push bc + push hl + ld a, [PartyCount] + dec a + ld hl, PartyMon1Item + call GetPartyLocation + ld d, h + ld e, l + pop hl + ld a, [hli] + ld [de], a + pop bc + jr .asm_17dfeb + +.asm_17dfea + inc hl + +.asm_17dfeb + bit 6, b + jr z, .asm_17e01f + push bc + push hl + ld a, [PartyCount] + dec a + ld hl, PartyMon1Moves + call GetPartyLocation + ld d, h + ld e, l + pop hl + push de + ld bc, $4 + call CopyBytes + pop de + push hl + push de + ld a, [PartyCount] + dec a + ld hl, PartyMon1PP + call GetPartyLocation + ld d, h + ld e, l + pop hl + predef FillPP + pop hl + pop bc + jp asm_17e0ee + +.asm_17e01f + ld de, $4 + add hl, de + jp asm_17e0ee +; 17e026 + +Function17e026: ; 17e026 + ld a, BANK(sBoxCount) + call GetSRAMBank + ld a, [sBoxCount] + call CloseSRAM + cp $14 + jp nc, .asm_17e0ea + bit 0, b + jp z, .asm_17e0ea + push bc + push hl + callba LoadEnemyMon + callba SentPkmnIntoBox + callba SetBoxMonCaughtData + pop hl + pop bc + ld a, BANK(sBoxMonNicknames) + call GetSRAMBank + bit 1, b + jr z, .asm_17e067 + push bc + ld bc, $b + ld de, sBoxMonNicknames + call CopyBytes + pop bc + jr .asm_17e06b + +.asm_17e067 + ld de, $6 + add hl, de + +.asm_17e06b + bit 2, b + jr z, .asm_17e08e + push bc + ld bc, $6 + ld de, sBoxMonOT + call CopyBytes + ld a, [hli] + ld b, a + push hl + call CloseSRAM + callba SetGiftBoxMonCaughtData + ld a, $1 + call GetSRAMBank + pop hl + pop bc + jr .asm_17e092 + +.asm_17e08e + ld de, $7 + add hl, de + +.asm_17e092 + bit 3, b + jr z, .asm_17e0a2 + push bc + ld de, sBoxMon1ID + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + ld [de], a + pop bc + jr .asm_17e0a4 + +.asm_17e0a2 + inc hl + inc hl + +.asm_17e0a4 + bit 4, b + jr z, .asm_17e0b4 + push bc + ld de, sBoxMon1DVs + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + ld [de], a + pop bc + jr .asm_17e0b6 + +.asm_17e0b4 + inc hl + inc hl + +.asm_17e0b6 + bit 5, b + ld a, [hli] + jr z, .asm_17e0be + ld [sBoxMon1Item], a + +.asm_17e0be + bit 6, b + jr z, .asm_17e0e1 + push bc + ld de, sBoxMon1Moves + ld bc, $4 + call CopyBytes + push hl + ld hl, sBoxMon1Moves + ld de, sBoxMon1PP + predef FillPP + call CloseSRAM + pop hl + pop bc + inc hl + inc hl + jr asm_17e0ee + +.asm_17e0e1 + call CloseSRAM + ld de, $6 + add hl, de + jr asm_17e0ee + +.asm_17e0ea + ld bc, $1a + add hl, bc + +asm_17e0ee + ld a, [hli] + ld h, [hl] + ld l, a + pop af + ld [rSVBK], a + push hl + call Function17e349 + pop hl + call Function17e40f + ret +; 17e0fd + +Function17e0fd: ; 17e0fd + call Function17e415 + ld de, $c708 + ld bc, $6 + call CopyBytes + ld a, [rSVBK] + push af + ld a, $1 + ld [rSVBK], a + ld hl, $c708 + ld a, [hli] + ld [CurItem], a + ld a, [hli] + ld [wItemQuantityChangeBuffer], a + push hl + ld hl, NumItems + call ReceiveItem + pop hl + jr c, .asm_17e127 + inc hl + inc hl + +.asm_17e127 + ld a, [hli] + ld b, a + ld a, [hl] + ld h, a + ld l, b + pop af + ld [rSVBK], a + call Function17e40f + ret +; 17e133 + +Function17e133: ; 17e133 + call Function17e415 + ld de, $c708 + ld bc, $5 + call CopyBytes + ld a, [rSVBK] + push af + ld a, $1 + ld [rSVBK], a + ld hl, $c708 + ld a, [hli] + ld [ScriptVar], a + push hl + callba MobileCheckOwnMonAnywhere + pop hl + jr c, .asm_17e159 + inc hl + inc hl + +.asm_17e159 + ld a, [hli] + ld b, a + ld a, [hl] + ld h, a + ld l, b + pop af + ld [rSVBK], a + call Function17e40f + ret +; 17e165 + +Function17e165: ; 17e165 + call Function17e415 + ld de, $c708 + ld bc, $5 + call CopyBytes + ld a, [rSVBK] + push af + ld a, $1 + ld [rSVBK], a + ld hl, $c708 + ld a, [hli] + ld [CurItem], a + push hl + ld hl, NumItems + call CheckItem + pop hl + jr c, .asm_17e195 + push hl + ld hl, PCItems + call CheckItem + pop hl + jr c, .asm_17e195 + inc hl + inc hl + +.asm_17e195 + ld a, [hli] + ld b, a + ld a, [hl] + ld h, a + ld l, b + pop af + ld [rSVBK], a + call Function17e40f + ret +; 17e1a1 + +Function17e1a1: ; 17e1a1 + call Function17e415 + ld de, $c708 + ld bc, $d + call CopyBytes + ld a, [$c70a] + cp $c0 + jr c, .asm_17e1bb + ld a, [$c708] + ld [rSVBK], a + jr .asm_17e1c1 + +.asm_17e1bb + ld a, [$c708] + call GetSRAMBank + +.asm_17e1c1 + ld a, [$c709] + ld l, a + ld a, [$c70a] + ld h, a + ld de, $c608 + ld a, [$c70b] + ld c, a + ld b, $0 + call CopyBytes + ld a, [$c70a] + cp $c0 + jr c, .asm_17e1e2 + ld a, $4 + ld [rSVBK], a + jr .asm_17e1e5 + +.asm_17e1e2 + call CloseSRAM + +.asm_17e1e5 + ld a, [$c70e] + cp $c0 + jr c, .asm_17e1f3 + ld a, [$c70c] + ld [rSVBK], a + jr .asm_17e1f9 + +.asm_17e1f3 + ld a, [$c70c] + call GetSRAMBank + +.asm_17e1f9 + ld a, [$c70d] + ld l, a + ld a, [$c70e] + ld h, a + ld de, $c688 + ld a, [$c70b] + ld c, a + ld b, $0 + call CopyBytes + ld a, [$c70e] + cp $c0 + jr c, .asm_17e21a + ld a, $4 + ld [rSVBK], a + jr .asm_17e21d + +.asm_17e21a + call CloseSRAM + +.asm_17e21d + ld a, [$c70b] + ld c, a + ld hl, $c688 + ld de, $c608 +.asm_17e227 + ld a, [de] + inc de + cp [hl] + inc hl + jr z, .asm_17e231 + jr c, .asm_17e23e + jr .asm_17e248 + +.asm_17e231 + dec c + jr nz, .asm_17e227 + ld a, [$c711] + ld l, a + ld a, [$c712] + ld h, a + jr .asm_17e250 + +.asm_17e23e + ld a, [$c70f] + ld l, a + ld a, [$c710] + ld h, a + jr .asm_17e250 + +.asm_17e248 + ld a, [$c712 + 1] + ld l, a + ld a, [$c712 + 2] + ld h, a + +.asm_17e250 + call Function17e40f + ret +; 17e254 + +Function17e254: ; 17e254 + call Function17e415 + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + ld a, [hli] + ld [de], a + call Function17e41e + ret +; 17e261 + +Function17e261: ; 17e261 + call Function17e415 + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + ld a, [de] + add [hl] + ld [de], a + inc hl + call Function17e41e + ret +; 17e270 + +Function17e270: ; 17e270 + call Function17e415 + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + ld a, [de] + sub [hl] + ld [de], a + inc hl + call Function17e41e + ret +; 17e27f + +Function17e27f: ; 17e27f + call Function17e415 + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + ld a, [hli] + ld c, a + ld a, [hli] + ld b, a + call Function17e41e + ld l, c + ld h, b + ld a, [de] + add [hl] + ld [de], a + ret +; 17e293 + +Function17e293: ; 17e293 + call Function17e415 + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + ld a, [hli] + ld c, a + ld a, [hli] + ld b, a + call Function17e41e + ld l, c + ld h, b + ld a, [de] + sub [hl] + ld [de], a + ret +; 17e2a7 + +Function17e2a7: ; 17e2a7 + call Function17e415 + call Function17e41e + call Function17e32b + xor a + ld [wcf66], a + callba Function118233 + ld de, GFX_17eb7e + ld hl, VTiles2 tile $60 + lb bc, BANK(GFX_17eb7e), 1 + call Get2bpp + ld a, [wc300] + and a + jr z, .asm_17e2d8 + cp $a + jr z, .asm_17e2f7 + cp $b + jr z, .asm_17e300 + call Function17e309 + ret + +.asm_17e2d8 + call Function17d60b + call Function17e349 + xor a + ld [wcd7a], a + ld a, $5 + call GetSRAMBank + ld hl, $aa73 + ld de, $aa7f + ld bc, $c + call CopyBytes + call CloseSRAM + ret + +.asm_17e2f7 + call Function17e349 + ld a, $1 + ld [wcd7a], a + ret + +.asm_17e300 + call Function17e349 + ld a, $2 + ld [wcd7a], a + ret +; 17e309 + +Function17e309: ; 17e309 + ld a, $2 + ld [wc303], a + call Function17dcaf + call ClearScreen + call Function17e349 + call Function17d5f6 + callba DisplayMobileError + call Function17e349 + call Function17dcaf + xor a + ld [wcd77], a + ret +; 17e32b + +Function17e32b: ; 17e32b + ld a, $5 + call GetSRAMBank + ld hl, $c608 + ld de, $b0b1 + ld bc, $40 + call CopyBytes + ld hl, BGMapBuffer + ld bc, $5b + call CopyBytes + call CloseSRAM + ret +; 17e349 + +Function17e349: ; 17e349 + ld a, $5 + call GetSRAMBank + ld hl, $b0b1 + ld de, $c608 + ld bc, $40 + call CopyBytes + ld de, BGMapBuffer + ld bc, $5b + call CopyBytes + call CloseSRAM + ret +; 17e367 + +Function17e367: ; 17e367 + call Function17e415 + call Function17e41e + ld a, [rSVBK] + push af + ld a, $1 + ld [rSVBK], a + callba SaveGameData_ + pop af + ld [rSVBK], a + ret +; 17e37e + +Function17e37e: ; 17e37e + call Function17e415 + call Function17e41e + ld a, [rSVBK] + push af + ld a, $1 + ld [rSVBK], a + callba SaveAfterLinkTrade + pop af + ld [rSVBK], a + ret +; 17e395 + +Function17e395: ; 17e395 + call Function17e415 + call Function17e41e + ld a, [rSVBK] + push af + ld a, $1 + ld [rSVBK], a + callba SaveBox + pop af + ld [rSVBK], a + ret +; 17e3ac + +Function17e3ac: ; 17e3ac + call Function17e415 + call Function17e41e + ld a, [rSVBK] + push af + ld a, $1 + ld [rSVBK], a + callba SaveChecksum + pop af + ld [rSVBK], a + ret +; 17e3c3 + +Function17e3c3: ; 17e3c3 + call Function17e415 + call Function17e41e + ld a, [rSVBK] + push af + ld a, $1 + ld [rSVBK], a + callba UpdateTrainerRankingsChecksum2 + callba BackupMobileEventIndex + pop af + ld [rSVBK], a + ret +; 17e3e0 + +Function17e3e0: ; 17e3e0 + call Function17e415 + ld a, [hli] + ld c, a + call Function17e41e + ld a, $1 + ld [hBGMapMode], a + call DelayFrames + ret +; 17e3f0 + +Function17e3f0: ; 17e3f0 + call Function17e415 + call Function17e41e +.asm_17e3f6 + call JoyTextDelay + ld hl, hJoyPressed + ld a, [hl] + and $1 + ret nz + ld a, [hl] + and $2 + ret nz + call WaitBGMap + jr .asm_17e3f6 +; 17e409 + +Function17e409: ; 17e409 + ld hl, wcd77 + set 7, [hl] + ret +; 17e40f + +Function17e40f: ; 17e40f + ld de, UnknBGPals + add hl, de + jr Function17e41e + +Function17e415: + ld a, [wcd78] + ld l, a + ld a, [wcd79] + ld h, a + inc hl + +Function17e41e: + ld a, l + ld [wcd78], a + ld a, h + ld [wcd79], a + ret +; 17e427 + +Function17e427: ; 17e427 + ld hl, hJoyPressed + ld a, [hl] + and $1 + jr nz, .asm_17e432 + and $2 + ret z + +.asm_17e432 + ld a, $3 + ld [wcd77], a + ret +; 17e438 + +Function17e438: ; 17e438 + ld hl, wcd77 + inc [hl] + ret +; 17e43d + +Function17e43d: ; 17e43d + ld a, [BGMapBuffer] + ld l, a + ld a, [wcd21] + ld h, a + add hl, bc + ret +; 17e447 + +Function17e447: ; 17e447 + ld a, [BGMapBuffer] + ld l, a + ld a, [wcd21] + ld h, a + add hl, de + ret +; 17e451 + +Function17e451: ; 17e451 + ld a, [wcd42] + and a + ret z + call Function17e51b + call Function17e4dd + ld a, [wcd2e] + push af + ld a, [wcd49] + ld l, a + ld a, [wcd4a] + ld h, a + ld a, [wcd2f] + ld [wcd2e], a + ld c, a + ld b, $0 + add hl, bc + add hl, bc + push hl + hlcoord 0, 0 + ld bc, $14 + ld a, [wcd23] + call AddNTimes + ld a, [CreditsTimer] + ld c, a + ld b, $0 + add hl, bc + pop bc + ld a, [wMobileCommsJumptableIndex] +.asm_17e48b + push af + push hl + ld a, [wcd24] +.asm_17e490 + push af + push hl + ld a, [bc] + inc bc + ld e, a + ld a, [bc] + inc bc + ld d, a + push bc + push hl + ld a, [BGMapBuffer] + ld l, a + ld a, [wcd21] + ld h, a + add hl, de + push hl + pop de + pop hl + call PlaceString + pop bc + pop hl + ld a, [wcd26] + ld e, a + ld d, $0 + add hl, de + ld a, [wcd2e] + inc a + ld [wcd2e], a + ld e, a + ld a, [wcd42] + cp e + jr z, .asm_17e4d5 + pop af + dec a + jr nz, .asm_17e490 + pop hl + ld a, [wcd27] + ld de, $14 +.asm_17e4cb + add hl, de + dec a + jr nz, .asm_17e4cb + pop af + dec a + jr nz, .asm_17e48b + jr .asm_17e4d8 + +.asm_17e4d5 + pop af + pop hl + pop af + +.asm_17e4d8 + pop af + ld [wcd2e], a + ret +; 17e4dd + +Function17e4dd: ; 17e4dd + ld a, [wcd2c] + and $1 + ret z + ld a, [wcd29] + hlcoord 0, 0 + ld bc, $14 + call AddNTimes + ld a, [wcd28] + ld c, a + ld b, $0 + add hl, bc + ld a, [wcd2f] + and a + jr z, .asm_17e4ff + ld a, $61 + ld [hl], a + +.asm_17e4ff + ld a, [wcd2a] + ld bc, $14 + call AddNTimes + ld a, [wcd42] + ld c, a + ld a, [wcd2e] + ld b, a + ld a, [wcd24] + add b + cp c + ret z + ret nc + ld a, $ee + ld [hl], a + ret +; 17e51b + +Function17e51b: ; 17e51b + ld a, [wcd28] + ld hl, CreditsTimer + sub [hl] + inc a + ld [wcd4f], a + hlcoord 0, 0 + ld bc, $14 + ld a, [wcd23] + dec a + call AddNTimes + ld a, [CreditsTimer] + ld c, a + ld b, $0 + add hl, bc + ld a, [wMobileCommsJumptableIndex] + ld c, a + ld a, [wcd27] + call SimpleMultiply +.asm_17e544 + push af + push hl + ld a, [wcd4f] + ld c, a + ld b, $0 + ld a, $7f + call ByteFill + pop hl + ld bc, $14 + add hl, bc + pop af + dec a + jr nz, .asm_17e544 + ret +; 17e55b + +Function17e55b: ; 17e55b + ld a, [wcd42] + and a + ret z + ld a, $ed + call Function17e571 + ret +; 17e566 + +Function17e566: ; 17e566 + ld a, [wcd42] + and a + ret z + ld a, $7f + call Function17e571 + ret +; 17e571 + +Function17e571: ; 17e571 + push af + hlcoord 0, 0 + ld bc, $14 + ld a, [wcd23] + call AddNTimes + ld a, [CreditsTimer] + ld c, a + ld b, $0 + add hl, bc + dec hl + push hl + ld a, [wcd31] + dec a + ld c, a + ld a, [wcd27] + call SimpleMultiply + ld l, $0 + ld h, l + ld bc, $14 + call AddNTimes + ld a, [wcd30] + dec a + ld c, a + ld a, [wcd26] + call SimpleMultiply + ld c, a + ld b, $0 + add hl, bc + pop bc + add hl, bc + pop af + ld [hl], a + ret +; 17e5af + +Function17e5af: ; 17e5af + ld a, [wcd2c] + and $2 + ret z + ld a, [wcd43] + ld l, a + ld a, [wMobileInactivityTimerMinutes] + ld h, a + bccoord 0, 0 + add hl, bc + ld bc, $ffec + add hl, bc + ld a, [wMobileInactivityTimerSeconds] + ld c, a + ld b, $0 + ld a, [wMobileInactivityTimerFrames] + call Function17e600 + ld a, [wcd2e] + ld c, a + ld b, $0 + ld a, [wcd4d] + ld l, a + ld a, [wcd4e] + ld h, a + add hl, bc + add hl, bc + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + ld a, [BGMapBuffer] + ld l, a + ld a, [wcd21] + ld h, a + add hl, de + push hl + pop de + ld a, [wcd43] + ld l, a + ld a, [wMobileInactivityTimerMinutes] + ld h, a + bccoord 0, 0 + add hl, bc + call PlaceString + ret +; 17e600 + +Function17e600: ; 17e600 +.asm_17e600 + push af + push hl + push bc + ld a, $7f + call ByteFill + pop bc + pop hl + ld de, $14 + add hl, de + pop af + dec a + jr nz, .asm_17e600 + ret +; 17e613 + +Function17e613: ; 17e613 + push hl + hlcoord 0, 0 + ld bc, $14 + ld a, [de] + inc de + push af + ld a, [de] + inc de + and a +.asm_17e620 + jr z, .asm_17e626 + add hl, bc + dec a + jr .asm_17e620 + +.asm_17e626 + pop af + ld c, a + ld b, $0 + add hl, bc + push hl + ld a, [wcd53] + ld [hli], a + ld a, [de] + inc de + dec a + dec a + jr z, .asm_17e63f + ld c, a + ld a, [wcd53] + inc a +.asm_17e63b + ld [hli], a + dec c + jr nz, .asm_17e63b + +.asm_17e63f + ld a, [wcd53] + add $2 + ld [hl], a + pop hl + ld bc, $14 + add hl, bc + ld a, [de] + dec de + dec a + dec a + jr z, .asm_17e674 + ld b, a +.asm_17e651 + push hl + ld a, [wcd53] + add $3 + ld [hli], a + ld a, [de] + dec a + dec a + jr z, .asm_17e664 + ld c, a + ld a, $7f +.asm_17e660 + ld [hli], a + dec c + jr nz, .asm_17e660 + +.asm_17e664 + ld a, [wcd53] + add $4 + ld [hl], a + pop hl + push bc + ld bc, $14 + add hl, bc + pop bc + dec b + jr nz, .asm_17e651 + +.asm_17e674 + ld a, [wcd53] + add $5 + ld [hli], a + ld a, [de] + dec a + dec a + jr z, .asm_17e689 + ld c, a + ld a, [wcd53] + add $6 +.asm_17e685 + ld [hli], a + dec c + jr nz, .asm_17e685 + +.asm_17e689 + ld a, [wcd53] + add $7 + ld [hl], a + pop hl + ret +; 17e691 + +Function17e691: ; 17e691 + push hl + ld hl, NULL + ld bc, $14 + ld a, [de] + inc de + push af + ld a, [de] + inc de + inc de + and a +.asm_17e69f + jr z, .asm_17e6a5 + add hl, bc + dec a + jr .asm_17e69f + +.asm_17e6a5 + pop af + ld c, a + ld b, $0 + add hl, bc + ld a, [de] + dec de +.asm_17e6ac + push af + push hl + ld a, [de] +.asm_17e6af + push af + push hl + push hl + bccoord 0, 0 + add hl, bc + ld a, [hl] + cp $7f + jr z, .asm_17e6c2 + ld a, [wcd53] + add $8 + jr .asm_17e6c7 + +.asm_17e6c2 + ld a, [wcd53] + jr .asm_17e6c7 + +.asm_17e6c7 + pop hl + bccoord 0, 0, AttrMap + add hl, bc + ld [hl], a + pop hl + inc hl + pop af + dec a + jr nz, .asm_17e6af + pop hl + ld bc, $14 + add hl, bc + pop af + dec a + jr nz, .asm_17e6ac + pop hl + ret +; 17e6de + +Function17e6de: ; 17e6de + push af + ld a, [$c708] + ld l, a + ld a, [$c709] + ld h, a + decoord 0, 0, AttrMap + add hl, de + pop af + ld b, $7 +.asm_17e6ee + push hl + ld c, $7 +.asm_17e6f1 + ld [hli], a + dec c + jr nz, .asm_17e6f1 + pop hl + ld de, $14 + add hl, de + dec b + jr nz, .asm_17e6ee + ret +; 17e6fe + + +PokemonNewsGFX: ; 17e6fe +INCBIN "gfx/mobile/pokemon_news.2bpp" + +GFX_17eb7e: +INCBIN "gfx/unknown/17eb7e.2bpp" + +TileAttrmap_17eb8e: +INCBIN "gfx/unknown/17eb8e.attrmap" + +Palette_17eff6: + RGB 24, 9, 8 + RGB 4, 9, 18 + RGB 18, 18, 12 + RGB 0, 0, 0 + RGB 24, 24, 18 + RGB 18, 18, 12 + RGB 4, 9, 18 + RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 23, 11, 10 + RGB 13, 6, 5 + RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 15, 25, 5 + RGB 10, 20, 0 + RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 20, 28, 20 + RGB 10, 18, 15 + RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 22, 22, 12 + RGB 17, 12, 5 + RGB 0, 0, 0 + RGB 5, 5, 16 + RGB 8, 19, 28 + RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 27, 24, 0 + RGB 24, 16, 3 + RGB 0, 0, 0 + + +Function17f036:: ; 17f036 + ld a, $6 + call GetSRAMBank + inc de +.asm_17f03c + call Function17f047 + jr c, .asm_17f043 + jr .asm_17f03c + +.asm_17f043 + call CloseSRAM + ret +; 17f047 + +Function17f047: ; 17f047 + ld a, [de] + inc de + cp $50 + jr z, .finished + cp $10 + jr nc, .finished + dec a + push de + ld e, a + ld d, 0 + ld hl, .Jumptable + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp hl + +.finished + scf + ret +; 17f061 + +.Jumptable: ; 17f061 + dw Function17f081 ; 0 + dw Function17f0f8 ; 1 + dw Function17f154 ; 2 + dw Function17f181 ; 3 + dw Function17f1d0 ; 4 + dw Function17f220 ; 5 + dw Function17f27b ; 6 + dw Function17f2cb ; 7 + dw Function17f2ff ; 8 + dw Function17f334 ; 9 + dw Function17f382 ; a + dw Function17f3c9 ; b + dw Function17f3f0 ; c + dw Function17f41d ; d + dw Function17f44f ; e + dw Function17f44f ; f +; 17f081 + +Function17f081: ; 17f081 + pop hl + call Function17f524 + jr c, .asm_17f09f + ld de, 4 + add hl, de + ld a, [hli] + inc hl + inc hl + ld e, l + ld d, h + ld l, c + ld h, b + ld c, a + ld b, $0 + add hl, bc + ld a, [de] + cp $50 + jr z, .asm_17f09d + and a + ret + +.asm_17f09d + scf + ret + +.asm_17f09f + push bc + ld de, wcd54 + ld bc, 7 + call CopyBytes + pop bc + push hl + push bc + call Function17f4f6 + pop bc + ld a, [wcd54] + ld e, a + ld a, [wcd55] + ld d, a + add hl, de + ld e, l + ld d, h + ld l, c + ld h, b + push hl + ld a, [wcd56] + ld b, a + ld a, [wcd57] + ld c, a + call MobilePrintNum + ld a, l + ld [wcd52], a + ld a, h + ld [wcd53], a + ld a, [wcd59] + and a + jr z, .asm_17f0ee + ld c, a + ld a, [wcd57] + inc a + ld b, a + ld e, l + ld d, h + dec de +.asm_17f0e0 + ld a, c + cp b + jr z, .asm_17f0ea + ld a, [de] + dec de + ld [hld], a + dec b + jr .asm_17f0e0 + +.asm_17f0ea + ld a, [wcd5a] + ld [hl], a + +.asm_17f0ee + pop hl + ld a, [wcd58] + call Function17f50f + pop de + and a + ret +; 17f0f8 + +Function17f0f8: ; 17f0f8 + pop hl + call Function17f524 + jr c, .asm_17f114 + ld de, $3 + add hl, de + ld a, [hli] + ld e, l + ld d, h + ld l, c + ld h, b + ld c, a + ld b, $0 + add hl, bc + ld a, [de] + cp $50 + jr z, .asm_17f112 + and a + ret + +.asm_17f112 + scf + ret + +.asm_17f114 + push bc + ld de, wcd54 + ld bc, $4 + call CopyBytes + pop bc + push hl + push bc + call Function17f4f6 + ld a, [wcd54] + ld e, a + ld a, [wcd55] + ld d, a + add hl, de + ld de, $c608 + ld a, [wcd56] + ld c, a + ld b, $0 + call CopyBytes + ld a, $50 + ld [de], a + pop hl + ld de, $c608 + call PlaceString + ld a, c + ld [wcd52], a + ld a, b + ld [wcd53], a + ld a, [wcd57] + call Function17f50f + pop de + and a + ret +; 17f154 + +Function17f154: ; 17f154 + pop hl + call Function17f524 + jr c, .asm_17f167 + inc hl + inc hl + ld e, l + ld d, h + ld a, [de] + cp $50 + jr z, .asm_17f165 + and a + ret + +.asm_17f165 + scf + ret + +.asm_17f167 + push bc + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + pop bc + push hl + push bc + call Function17f4f6 + add hl, de + ld c, l + ld b, h + pop de + callba Function11c08f + ld c, l + ld b, h + pop de + and a + ret +; 17f181 + +Function17f181: ; 17f181 + pop hl + call Function17f524 + jr c, .asm_17f19d + ld de, $2 + add hl, de + ld a, [hli] + ld e, l + ld d, h + ld l, c + ld h, b + ld c, a + ld b, $0 + add hl, bc + ld a, [de] + cp $50 + jr z, .asm_17f19b + and a + ret + +.asm_17f19b + scf + ret + +.asm_17f19d + push bc + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + ld a, [hli] + ld [wcd54], a + pop bc + push hl + push bc + call Function17f4f6 + add hl, de + ld a, [hl] + ld c, a + ld de, $c608 + callba Function48c63 + pop hl + ld de, $c608 + call PlaceString + ld a, c + ld [wcd52], a + ld a, b + ld [wcd53], a + ld a, [wcd54] + call Function17f50f + pop de + and a + ret +; 17f1d0 + +Function17f1d0: ; 17f1d0 + pop hl + call Function17f524 + jr c, .asm_17f1ec + ld de, $2 + add hl, de + ld a, [hli] + ld e, l + ld d, h + ld l, c + ld h, b + ld c, a + ld b, $0 + add hl, bc + ld a, [de] + cp $50 + jr z, .asm_17f1ea + and a + ret + +.asm_17f1ea + scf + ret + +.asm_17f1ec + push bc + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + ld a, [hli] + ld [wcd54], a + pop bc + push hl + push bc + call Function17f4f6 + add hl, de + ld a, [hl] + ld a, $1 + ld [rSVBK], a + ld [wd265], a + call GetPokemonName + pop hl + call PlaceString + ld a, c + ld [wcd52], a + ld a, b + ld [wcd53], a + ld a, $4 + ld [rSVBK], a + ld a, [wcd54] + call Function17f50f + pop de + and a + ret +; 17f220 + +Function17f220: ; 17f220 + pop hl + call Function17f524 + jr c, .asm_17f23c + ld de, $2 + add hl, de + ld a, [hli] + ld e, l + ld d, h + ld l, c + ld h, b + ld c, a + ld b, $0 + add hl, bc + ld a, [de] + cp $50 + jr z, .asm_17f23a + and a + ret + +.asm_17f23a + scf + ret + +.asm_17f23c + push bc + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + ld a, [hli] + ld [wcd54], a + pop bc + push hl + push bc + call Function17f4f6 + add hl, de + ld a, [hl] + ld e, a + ld d, 0 + ld hl, .Genders + add hl, de + add hl, de + ld a, [hli] + ld e, a + ld a, [hl] + ld d, a + pop hl + call PlaceString + ld a, c + ld [wcd52], a + ld a, b + ld [wcd53], a + ld a, [wcd54] + call Function17f50f + pop de + and a + ret +; 17f26e + +.Genders: dw .Boy, .Girl +.Boy: db "Boy@" +.Girl: db "Girl@" + +Function17f27b: ; 17f27b + pop hl + call Function17f524 + jr c, .asm_17f297 + ld de, $2 + add hl, de + ld a, [hli] + ld e, l + ld d, h + ld l, c + ld h, b + ld c, a + ld b, $0 + add hl, bc + ld a, [de] + cp $50 + jr z, .asm_17f295 + and a + ret + +.asm_17f295 + scf + ret + +.asm_17f297 + push bc + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + ld a, [hli] + ld [wcd54], a + pop bc + push hl + push bc + call Function17f4f6 + add hl, de + ld a, [hl] + ld a, $1 + ld [rSVBK], a + ld [wd265], a + call GetItemName + pop hl + call PlaceString + ld a, c + ld [wcd52], a + ld a, b + ld [wcd53], a + ld a, $4 + ld [rSVBK], a + ld a, [wcd54] + call Function17f50f + pop de + and a + ret +; 17f2cb + +Function17f2cb: ; 17f2cb + pop hl + push bc + ld a, [hli] + ld [wcd54], a + ld a, [hli] + ld [wcd55], a + ld a, [wcd2e] + inc a + ld [wcd56], a + pop bc + push hl + ld l, c + ld h, b + push hl + ld de, wcd56 + ld b, $1 + ld a, [wcd54] + ld c, a + call MobilePrintNum + ld a, l + ld [wcd52], a + ld a, h + ld [wcd53], a + pop hl + ld a, [wcd55] + call Function17f50f + pop de + and a + ret +; 17f2ff + +Function17f2ff: ; 17f2ff + pop hl + push bc + ld a, [hli] + ld [wcd54], a + pop bc + push hl + push bc + ld a, $1 + ld [rSVBK], a + ld hl, PlayerName + ld de, $c608 + ld bc, $6 + call CopyBytes + ld a, $4 + ld [rSVBK], a + pop hl + ld de, $c608 + call PlaceString + ld a, c + ld [wcd52], a + ld a, b + ld [wcd53], a + ld a, [wcd54] + call Function17f50f + pop de + and a + ret +; 17f334 + +Function17f334: ; 17f334 + pop hl + push bc + ld a, [hli] + ld [wcd55], a + and $f + ld [wcd54], a + pop bc + push hl + ld l, c + ld h, b + push hl + ld a, [wcd55] + bit 7, a + jr nz, .asm_17f355 + ld a, BANK(sCrystalData) + call GetSRAMBank + ld a, [sCrystalData + 2] + jr .asm_17f35d + +.asm_17f355 + ld a, $5 + call GetSRAMBank + ld a, [$b2f3] + +.asm_17f35d + ld c, a + call CloseSRAM + ld de, $c608 + callba Function48c63 + pop hl + ld de, $c608 + call PlaceString + ld a, c + ld [wcd52], a + ld a, b + ld [wcd53], a + ld a, [wcd54] + call Function17f50f + pop de + and a + ret +; 17f382 + +Function17f382: ; 17f382 + pop hl + push bc + ld a, [hli] + ld [wcd55], a + and $f + ld [wcd54], a + pop bc + push hl + push bc + ld l, c + ld h, b + ld a, [wcd55] + bit 7, a + jr nz, .asm_17f3a3 + ld a, BANK(sCrystalData) + call GetSRAMBank + ld de, sCrystalData + 3 + jr .asm_17f3ab + +.asm_17f3a3 + ld a, $5 + call GetSRAMBank + ld de, $b2f4 + +.asm_17f3ab + ld a, PRINTNUM_LEADINGZEROS | 2 + ld b, a + ld a, 3 + ld c, a + call PrintNum + call CloseSRAM + ld a, l + ld [wcd52], a + ld a, h + ld [wcd53], a + pop hl + ld a, [wcd54] + call Function17f50f + pop de + and a + ret +; 17f3c9 + +Function17f3c9: ; 17f3c9 + push bc + ld hl, wcd36 + ld de, $c708 + ld bc, 12 + call CopyBytes + pop de + ld c, $0 + callba Function11c075 + push hl + ld hl, $c708 + ld de, wcd36 + ld bc, $c + call CopyBytes + pop bc + pop de + and a + ret +; 17f3f0 + +Function17f3f0: ; 17f3f0 + pop hl + push hl + ld a, [hli] + push af + push bc + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + ld a, [de] + ld c, a + ld b, $0 + add hl, bc + add hl, bc + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + ld hl, UnknBGPals + add hl, de + ld e, l + ld d, h + pop hl + call PlaceString + pop af + ld e, a + ld d, $0 + pop hl + add hl, de + add hl, de + inc hl + inc hl + inc hl + ld e, l + ld d, h + ld l, c + ld h, b + scf + ret +; 17f41d + +Function17f41d: ; 17f41d + pop hl + ld a, [hli] + push hl + push af + ld l, c + ld h, b + ld bc, -TileMap + $10000 + add hl, bc + ld de, -SCREEN_WIDTH + ld c, $1 +.asm_17f42c + ld a, h + and a + jr nz, .asm_17f435 + ld a, l + cp SCREEN_WIDTH + jr c, .asm_17f439 + +.asm_17f435 + add hl, de + inc c + jr .asm_17f42c + +.asm_17f439 + hlcoord 0, 0 + ld de, SCREEN_WIDTH + ld a, c +.asm_17f440 + and a + jr z, .asm_17f447 + add hl, de + dec a + jr .asm_17f440 + +.asm_17f447 + pop af + ld e, a + ld d, 0 + add hl, de + pop de + and a + ret +; 17f44f + +Function17f44f: ; 17f44f + pop hl + call Function17f524 + jr c, .asm_17f46d + ld de, $5 + add hl, de + ld a, [hli] + inc hl + inc hl + ld e, l + ld d, h + ld l, c + ld h, b + ld c, a + ld b, 0 + add hl, bc + ld a, [de] + cp $50 + jr z, .asm_17f46b + and a + ret + +.asm_17f46b + scf + ret + +.asm_17f46d + push bc + ld de, wcd54 + ld bc, $8 + call CopyBytes + pop bc + push hl + push bc + ld a, [wcd56] + cp $c0 + jr c, .asm_17f488 + ld a, [wcd54] + ld [rSVBK], a + jr .asm_17f48e + +.asm_17f488 + ld a, [wcd54] + call GetSRAMBank + +.asm_17f48e + ld a, [wcd55] + ld l, a + ld a, [wcd56] + ld h, a + ld de, $c608 + ld a, [wcd57] + ld c, a + ld b, $0 + call CopyBytes + ld a, [wcd56] + cp $c0 + jr c, .asm_17f4af + ld a, $4 + ld [rSVBK], a + jr .asm_17f4b7 + +.asm_17f4af + call CloseSRAM + ld a, $6 + call GetSRAMBank + +.asm_17f4b7 + ld de, $c608 + pop hl + push hl + ld a, [wcd57] + ld b, a + ld a, [wcd58] + ld c, a + call MobilePrintNum + ld a, l + ld [wcd52], a + ld a, h + ld [wcd53], a + ld a, [wcd5a] + and a + jr z, .asm_17f4ec + ld c, a + ld a, [wcd58] + inc a + ld b, a + ld e, l + ld d, h + dec de +.asm_17f4de + ld a, c + cp b + jr z, .asm_17f4e8 + ld a, [de] + dec de + ld [hld], a + dec b + jr .asm_17f4de + +.asm_17f4e8 + ld a, [wcd5b] + ld [hl], a + +.asm_17f4ec + pop hl + ld a, [wcd59] + call Function17f50f + pop de + and a + ret +; 17f4f6 + +Function17f4f6: ; 17f4f6 + ld a, [wcd6a] + ld l, a + ld a, [wcd6b] + ld h, a + ld a, [wcd47] + ld c, a + ld a, [BGMapPalBuffer] + ld b, a + ld a, [wcd2e] +.asm_17f509 + and a + ret z + dec a + add hl, bc + jr .asm_17f509 +; 17f50f + +Function17f50f: ; 17f50f + and a + jr z, .asm_17f519 + ld c, a + ld b, $0 + add hl, bc + ld c, l + ld b, h + ret + +.asm_17f519 + ld a, [wcd52] + ld c, a + ld l, a + ld a, [wcd53] + ld b, a + ld h, a + ret +; 17f524 + +Function17f524: ; 17f524 + push hl + push bc + push de + ld a, [wcd42] + dec a + ld b, a + ld a, [wcd2e] + cp b + jr z, .asm_17f53a + ld hl, wcd68 + cp [hl] +.asm_17f536 + pop de + pop bc + pop hl + ret + +.asm_17f53a + scf + jr .asm_17f536 +; 17f53d + +BattleTowerMobileError: ; 17f53d + call FadeToMenu + xor a + ld [wc303], a + ld a, [rSVBK] + push af + ld a, $1 + ld [rSVBK], a + + call DisplayMobileError + + pop af + ld [rSVBK], a + call ExitAllMenus + ret +; 17f555 + +DisplayMobileError: ; 17f555 +.loop + call JoyTextDelay + call .RunJumptable + ld a, [wc303] + bit 7, a + jr nz, .quit + callba HDMATransferAttrMapAndTileMapToWRAMBank3 + jr .loop + +.quit + call .deinit + ret + +.deinit + ld a, [wc300] + cp $22 + jr z, .asm_17f597 + cp $31 + jr z, .asm_17f58a + cp $33 + ret nz + ld a, [wc301] + cp $1 + ret nz + ld a, [wc302] + cp $2 + ret nz + jr .asm_17f5a1 + +.asm_17f58a + ld a, [wc301] + cp $3 + ret nz + ld a, [wc302] + and a + ret nz + jr .asm_17f5a1 + +.asm_17f597 + ld a, [wc301] + and a + ret nz + ld a, [wc302] + and a + ret nz + +.asm_17f5a1 + ld a, BANK(sMobileLoginPassword) + call GetSRAMBank + xor a + ld [sMobileLoginPassword], a + call CloseSRAM + ret +; 17f5ae + +.RunJumptable: ; 17f5ae + jumptable .Jumptable, wc303 +; 17f5bd + +.Jumptable: ; 17f5bd + dw Function17f5c3 + dw Function17ff23 + dw Function17f5d2 +; 17f5c3 + +Function17f5c3: ; 17f5c3 + call Function17f5e4 + callba FinishExitMenu + ld a, $1 + ld [wc303], a + ret +; 17f5d2 + +Function17f5d2: ; 17f5d2 + call Function17f5e4 + callba HDMATransferAttrMapAndTileMapToWRAMBank3 + call SetPalettes + ld a, $1 + ld [wc303], a + ret +; 17f5e4 + +Function17f5e4: ; 17f5e4 + ld a, $8 + ld [MusicFade], a + ld de, MUSIC_NONE + ld a, e + ld [MusicFadeID], a + ld a, d + ld [MusicFadeID + 1], a + ld a, " " + hlcoord 0, 0 + ld bc, SCREEN_WIDTH * SCREEN_HEIGHT + call ByteFill + ld a, $6 + hlcoord 0, 0, AttrMap + ld bc, SCREEN_WIDTH * SCREEN_HEIGHT + call ByteFill + hlcoord 2, 1 + ld b, $1 + ld c, $e + call Function3eea + hlcoord 1, 4 + ld b, $c + ld c, $10 + call Function3eea + hlcoord 3, 2 + ld de, String_17f6dc + call PlaceString + call Function17ff3c + jr nc, .asm_17f632 + hlcoord 11, 2 + call Function17f6b7 + +.asm_17f632 + ld a, [wc300] + cp $d0 + jr nc, .asm_17f684 + cp $10 + jr c, .asm_17f679 + sub $10 + cp $24 + jr nc, .asm_17f679 + ld e, a + ld d, $0 + ld hl, Table_17f706 + add hl, de + add hl, de + ld a, [wc301] + ld e, a + ld a, [wc302] + ld d, a + ld a, [hli] + ld c, a + ld a, [hl] + ld h, a + ld l, c + ld a, [hli] + and a + jr z, .asm_17f679 + ld c, a +.asm_17f65d + ld a, [hli] + ld b, a + ld a, [hli] + cp $ff + jr nz, .asm_17f667 + cp b + jr z, .asm_17f66e + +.asm_17f667 + xor d + jr nz, .asm_17f674 + ld a, b + xor e + jr nz, .asm_17f674 + +.asm_17f66e + ld a, [hli] + ld e, a + ld a, [hl] + ld d, a + jr .asm_17f67d + +.asm_17f674 + inc hl + inc hl + dec c + jr nz, .asm_17f65d + +.asm_17f679 + ld a, $d9 + jr .asm_17f684 + +.asm_17f67d + hlcoord 2, 6 + call PlaceString + ret + +.asm_17f684 + sub $d0 + ld e, a + ld d, 0 + ld hl, Table_17f699 + add hl, de + add hl, de + ld a, [hli] + ld e, a + ld a, [hl] + ld d, a + hlcoord 2, 6 + call PlaceString + ret +; 17f699 + +Table_17f699: ; 17f699 + dw String_17fedf + dw String_17fdd9 + dw String_17fdd9 + dw String_17fe03 + dw String_17fd84 + dw String_17fe63 + dw String_17fdb2 + dw String_17fe4b + dw String_17fe03 + dw String_17fe03 + dw String_17fe03 +; 17f6af + +Palette_17f6af: ; 17f6af + RGB 5, 5, 16 + RGB 8, 19, 28 + RGB 0, 0, 0 + RGB 31, 31, 31 +; 17f6b7 + +Function17f6b7: ; 17f6b7 + ld a, [wc300] + call .bcd_two_digits + inc hl + ld a, [wc302] + and $f + call .bcd_digit + ld a, [wc301] + call .bcd_two_digits + ret +; 17f6cd + +.bcd_two_digits ; 17f6cd + ld c, a + and $f0 + swap a + call .bcd_digit + ld a, c + and $f + +.bcd_digit ; 17f6d8 + add "0" + ld [hli], a + ret +; 17f6dc + +String_17f6dc: ; 17f6dc + db "つうしんエラー ー@" +; 17f6e8 + +String_17f6e8: ; 17f6e8 + db "みていぎ", $25, "エラーです" + next "プログラム", $1f + next "かくにん してください" + db "@" +; 17f706 + +Table_17f706: + dw Unknown_17f74e + dw Unknown_17f753 + dw Unknown_17f758 + dw Unknown_17f75d + dw Unknown_17f762 + dw Unknown_17f767 + dw Unknown_17f778 + dw Unknown_17f77d + dw Unknown_17f782 + dw Unknown_17f782 + dw Unknown_17f782 + dw Unknown_17f782 + dw Unknown_17f782 + dw Unknown_17f782 + dw Unknown_17f782 + dw Unknown_17f782 + dw Unknown_17f782 + dw Unknown_17f787 + dw Unknown_17f78c + dw Unknown_17f791 + dw Unknown_17f796 + dw Unknown_17f79b + dw Unknown_17f7a0 + dw Unknown_17f7a5 + dw Unknown_17f7a5 + dw Unknown_17f7a5 + dw Unknown_17f7a5 + dw Unknown_17f7a5 + dw Unknown_17f7a5 + dw Unknown_17f7a5 + dw Unknown_17f7a5 + dw Unknown_17f7a5 + dw Unknown_17f7a5 + dw Unknown_17f7ea + dw Unknown_17f7ff + dw Unknown_17f844 + +Unknown_17f74e: db 1 + dbbw $0, $0, String_17f891 + +Unknown_17f753: db 1 + dbbw $0, $0, String_17f8d1 + +Unknown_17f758: db 1 + dbbw $0, $0, String_17f913 + +Unknown_17f75d: db 1 + dbbw $0, $0, String_17f8d1 + +Unknown_17f762: db 1 + dbbw $0, $0, String_17fa71 + +Unknown_17f767: db 4 + dbbw $0, $0, String_17f946 + dbbw $1, $0, String_17f946 + dbbw $2, $0, String_17f946 + dbbw $3, $0, String_17f946 + +Unknown_17f778: db 1 + dbbw $0, $0, String_17f98e + +Unknown_17f77d: db 1 + dbbw $0, $0, String_17f98e + +Unknown_17f782: db 1 + dbbw $0, $0, String_17f98e + +Unknown_17f787: db 1 + dbbw $0, $0, String_17f98e + +Unknown_17f78c: db 1 + dbbw $0, $0, String_17f9d0 + +Unknown_17f791: db 1 + dbbw $0, $0, String_17fa14 + +Unknown_17f796: db 1 + dbbw $0, $0, String_17fcbf + +Unknown_17f79b: db 1 + dbbw $0, $0, String_17fa71 + +Unknown_17f7a0: db 1 + dbbw $0, $0, String_17fbfe + +Unknown_17f7a5: db 17 + dbbw $0, $0, String_17f98e + dbbw $21, $2, String_17fcbf + dbbw $21, $4, String_17fcbf + dbbw $50, $4, String_17faf9 + dbbw $51, $4, String_17fcbf + dbbw $52, $4, String_17fcbf + dbbw $0, $5, String_17f98e + dbbw $1, $5, String_17f98e + dbbw $2, $5, String_17f98e + dbbw $3, $5, String_17f98e + dbbw $4, $5, String_17f98e + dbbw $50, $5, String_17faf9 + dbbw $51, $5, String_17faf9 + dbbw $52, $5, String_17fcbf + dbbw $53, $5, String_17faf9 + dbbw $54, $5, String_17fcbf + dbbw $ff, $ff, String_17fcbf + +Unknown_17f7ea: db 5 + dbbw $0, $0, String_17f98e + dbbw $2, $0, String_17fb2a + dbbw $3, $0, String_17fb6e + dbbw $4, $0, String_17f98e + dbbw $ff, $ff, String_17fcbf + +Unknown_17f7ff: db 17 + dbbw $0, $0, String_17f98e + dbbw $1, $3, String_17f98e + dbbw $2, $3, String_17f98e + dbbw $0, $4, String_17f98e + dbbw $1, $4, String_17f98e + dbbw $3, $4, String_17fbb6 + dbbw $4, $4, String_17fbb6 + dbbw $5, $4, String_17f98e + dbbw $6, $4, String_17f98e + dbbw $7, $4, String_17f98e + dbbw $8, $4, String_17fbfe + dbbw $0, $5, String_17fa49 + dbbw $1, $5, String_17f98e + dbbw $2, $5, String_17fa49 + dbbw $3, $5, String_17fab0 + dbbw $4, $5, String_17fa49 + dbbw $ff, $ff, String_17fa49 + +Unknown_17f844: db 19 + dbbw $1, $1, String_17fc3e + dbbw $2, $1, String_17fc88 + dbbw $3, $1, String_17fcff + dbbw $4, $1, String_17fd84 + dbbw $5, $1, String_17fd84 + dbbw $6, $1, String_17fd47 + dbbw $1, $2, String_17fb6e + dbbw $2, $2, String_17f98e + dbbw $3, $2, String_17fd84 + dbbw $4, $2, String_17f98e + dbbw $5, $2, String_17fa49 + dbbw $6, $2, String_17fd84 + dbbw $99, $2, String_17fc88 + dbbw $1, $3, String_17fa49 + dbbw $1, $4, String_17fa49 + dbbw $2, $4, String_17fa49 + dbbw $3, $4, String_17fa49 + dbbw $4, $4, String_17fa49 + dbbw $ff, $ff, String_17fa49 + +String_17f891: ; 17f891 + db "モバイルアダプタが ただしく" + next "さしこまれていません" + next "とりあつかいせつめいしょを" + next "ごらんのうえ しっかりと" + next "さしこんで ください" + db "@" + +String_17f8d1: ; 17f8d1 + db "でんわが うまく かけられないか" + next "でんわかいせんが こんでいるので" + next "つうしん できません" + next "しばらく まって" + next "かけなおして ください" + db "@" + +String_17f913: ; 17f913 + db "でんわかいせんが こんでいるため" + next "でんわが かけられません" + next "しばらく まって" + next "かけなおして ください" + db "@" + +String_17f946: ; 17f946 + db "モバイルアダプタの エラーです" + next "しばらく まって" + next "かけなおして ください" + next "なおらない ときは" + next "モバイルサポートセンターへ" + next "おといあわせください" + db "@" + +String_17f98e: ; 17f98e + db "つうしんエラーです" + next "しばらく まって" + next "かけなおして ください" + next "なおらない ときは" + next "モバイルサポートセンターへ" + next "おといあわせください" + db "@" + +String_17f9d0: ; 17f9d0 + db "ログインパスワードか" + next "ログイン アイディーに" + next "まちがいがあります" + next "パスワードを かくにんして" + next "しばらく まって" + next "かけなおして ください" + db "@" + +String_17fa14: ; 17fa14 + db "でんわが きれました" + next "とりあつかいせつめいしょを" + next "ごらんのうえ" + next "しばらく まって" + next "かけなおして ください" + db "@" + +String_17fa49: ; 17fa49 + db "モバイルセンターの" + next "つうしんエラーです" + next "しばらくまって" + next "かけなおして ください" + db "@" + +String_17fa71: ; 17fa71 + db "モバイルアダプタに" + next "とうろくされた じょうほうが" + next "ただしく ありません" + next "モバイルトレーナーで" + next "しょきとうろくを してください" + db "@" + +String_17fab0: ; 17fab0 + db "モバイルセンターが" + next "こんでいて つながりません" + next "しばらくまって" + next "かけなおして ください" + next "くわしくは とりあつかい" + next "せつめいしょを ごらんください" + db "@" + +String_17faf9: ; 17faf9 + db "あてさき メールアドレスに" + next "まちがいがあります" + next "ただしい メールアドレスを" + next "いれなおしてください" + db "@" + +String_17fb2a: ; 17fb2a + db "メールアドレスに" + next "まちがいが あります" + next "とりあつかいせつめいしょを" + next "ごらんのうえ" + next "モバイルトレーナーで" + next "しょきとうろくを してください" + db "@" + +String_17fb6e: ; 17fb6e + db "ログインパスワードに" + next "まちがいが あるか" + next "モバイルセンターの エラーです" + next "パスワードを かくにんして" + next "しばらく まって" + next "かけなおして ください" + db "@" + +String_17fbb6: ; 17fbb6 + db "データの よみこみが できません" + next "しばらくまって" + next "かけなおして ください" + next "なおらない ときは" + next "モバイルサポートセンターへ" + next "おといあわせください" + db "@" + +String_17fbfe: ; 17fbfe + db "じかんぎれです" + next "でんわが きれました" + next "でんわを かけなおしてください" + next "くわしくは とりあつかい" + next "せつめいしょを ごらんください" + db "@" + +String_17fc3e: ; 17fc3e + db "ごりよう りょうきんの " + next "おしはらいが おくれたばあいには" + next "ごりようが できなくなります" + next "くわしくは とりあつかい" + next "せつめいしょを ごらんください" + db "@" + +String_17fc88: ; 17fc88 + db "おきゃくさまの ごつごうにより" + next "ごりようできません" + next "くわしくは とりあつかい" + next "せつめいしょを ごらんください" + db "@" + +String_17fcbf: ; 17fcbf + db "でんわかいせんが こんでいるか" + next "モバイルセンターの エラーで" + next "つうしんが できません" + next "しばらく まって" + next "かけなおして ください" + db "@" + +String_17fcff: ; 17fcff + db "ごりよう りょうきんが" + next "じょうげんを こえているため" + next "こんげつは ごりようできません" + next "くわしくは とりあつかい" + next "せつめいしょを ごらんください" + db "@" + +String_17fd47: ; 17fd47 + db "げんざい モバイルセンターの" + next "てんけんを しているので" + next "つうしんが できません" + next "しばらく まって" + next "かけなおして ください" + db "@" + +String_17fd84: ; 17fd84 + db "データの よみこみが できません" + next "くわしくは とりあつかい" + next "せつめいしょを ごらんください" + db "@" + + +String_17fdb2: ; 17fdb2 + db "3ぷん いじょう なにも" + next "にゅうりょく しなかったので" + next "でんわが きれました" + db "@" + +String_17fdd9: ; 17fdd9 + db "つうしんが うまく" + next "できませんでした" + next "もういちど はじめから" + next "やりなおしてください" + db "@" + +String_17fe03: ; 17fe03 + db "データの よみこみが できません" + next "しばらくまって" + next "かけなおして ください" + next "なおらない ときは" + next "モバイルサポートセンターへ" + next "おといあわせください" + db "@" + +String_17fe4b: ; 17fe4b + db "まちじかんが ながいので" + next "でんわが きれました" + db "@" + +String_17fe63: ; 17fe63 + db "あいての モバイルアダプタと" + next "タイプが ちがいます" + next "くわしくは とりあつかい" + next "せつめいしょを ごらんください" + db "@" + +String_17fe9a: ; 17fe9a ; unreferenced + db "ポケモンニュースが" + next "あたらしくなっているので" + next "レポートを おくれません" + next "あたらしい ポケモンニュースの" + next "よみこみを さきに してください" + db "@" + +String_17fedf: ; 17fedf + db "つうしんの じょうきょうが" + next "よくないか かけるあいてが" + next "まちがっています" + next "もういちど かくにんをして" + next "でんわを かけなおして ください" + db "@" +; 17ff23 + +Function17ff23: ; 17ff23 + ld a, [hJoyPressed] + and a + ret z + ld a, $8 + ld [MusicFade], a + ld a, [wMapMusic] + ld [MusicFadeID], a + xor a + ld [MusicFadeID + 1], a + ld hl, wc303 + set 7, [hl] + ret +; 17ff3c + +Function17ff3c: ; 17ff3c + nop + ld a, [wc300] + cp $d0 + ret c + hlcoord 10, 2 + ld de, String_17ff68 + call PlaceString + ld a, [wc300] + push af + sub $d0 + inc a + ld [wc300], a + hlcoord 14, 2 + ld de, wc300 + lb bc, PRINTNUM_LEADINGZEROS | 1, 3 + call PrintNum + pop af + ld [wc300], a + and a + ret +; 17ff68 + +String_17ff68: ; 17ff68 + db "101@" +; 17ff6c diff --git a/mobile/mobile_menu.asm b/mobile/mobile_menu.asm new file mode 100755 index 000000000..1bee0cced --- /dev/null +++ b/mobile/mobile_menu.asm @@ -0,0 +1,879 @@ +MainMenu_Mobile: ; 49efc + call ClearBGPalettes + ld a, MUSIC_MOBILE_ADAPTER_MENU + ld [wMapMusic], a + ld de, MUSIC_MOBILE_ADAPTER_MENU + call Function4a6c5 +Function49f0a: ; 49f0a + call ClearBGPalettes + call Function4a3a7 + call Function4a492 + call ClearBGPalettes +Function49f16: ; 49f16 + call MobileMenu_InitMenuBuffers + ld c, 12 + call DelayFrames + hlcoord 4, 0 + ld b, 10 + ld c, 10 + call Function48cdc + hlcoord 6, 2 + ld de, MobileString1 + call PlaceString + hlcoord 0, 12 + ld b, 4 + ld c, SCREEN_HEIGHT + call TextBox + xor a + ld de, String_0x49fe9 + hlcoord 1, 14 + call PlaceString + call WaitBGMap2 + call SetPalettes + call StaticMenuJoypad + ld hl, wMenuCursorY + ld b, [hl] + push bc + jr .check_buttons + +.joy_loop + call ScrollingMenuJoypad + ld hl, wMenuCursorY + ld b, [hl] + push bc + +.check_buttons + bit A_BUTTON_F, a + jr nz, .a_button + bit B_BUTTON_F, a + jr nz, .b_button + jr .next + +.a_button + ld hl, wMenuCursorY + ld a, [hl] + cp 1 + jp z, Function4a098 + cp 2 + jp z, Function4a0b9 + cp 3 + jp z, Function4a0c2 + cp 4 + jp z, Function4a100 + ld a, 1 + call MenuClickSound +.b_button + pop bc + call ClearBGPalettes + call ClearTileMap + ld a, MUSIC_MAIN_MENU + ld [wMapMusic], a + ld de, MUSIC_MAIN_MENU + call Function4a6c5 + ret + +.next + ld hl, wMenuCursorY + ld a, [hl] + dec a + ld hl, MobileStrings2 + call GetNthString + ld d, h + ld e, l + hlcoord 1, 13 + ld b, 4 + ld c, SCREEN_HEIGHT + call ClearBox + hlcoord 1, 14 + call PlaceString + jp .useless_jump + +.useless_jump + call MobileMenu_InitMenuBuffers + pop bc + ld hl, wMenuCursorY + ld [hl], b + ld b, $a + ld c, $1 + hlcoord 5, 1 + call ClearBox + jp .joy_loop +; 49fcc + + +MobileString1: ; 49fcc + db "めいしフ,ルダー" + next "あいさつ" + next "プロフィール" + next "せ", $1e, "い" + next "もどる" + db "@" +; 49fe9 + + +MobileStrings2: + +String_0x49fe9: ; 49fe9 + db "めいし¯つくったり" + next "ほぞんしておける フ,ルダーです@" +; 4a004 + +String_0x4a004: ; 4a004 + db "モバイルたいせんや じぶんのめいしで" + next "つかう あいさつ¯つくります@" +; 4a026 + +String_0x4a026: ; 4a026 + db "あなた%じゅうしょや ねんれいの" + next "せ", $1e, "い¯かえられます@" +; 4a042 + +String_0x4a042: ; 4a042 + db "モバイルセンター", $1d, "せつぞくするとき" + next "ひつような こと¯きめます@" +; 4a062 + +String_0x4a062: ; 4a062 + db "まえ%がめん ", $1d, "もどります" + next "@" +; 4a071 + +MobileMenu_InitMenuBuffers: ; 4a071 (12:6071) + ld hl, w2DMenuCursorInitY + ld a, 2 + ld [hli], a + ld a, 5 ; w2DMenuCursorInitX + ld [hli], a + ld a, 5 ; w2DMenuNumRows + ld [hli], a + ld a, 1 ; w2DMenuNumCols + ld [hli], a + ld [hl], $0 ; w2DMenuFlags1 + set 5, [hl] + inc hl + xor a ; w2DMenuFlags2 + ld [hli], a + ld a, $20 ; w2DMenuCursorOffsets + ld [hli], a + ; this is a stupid way to load $c3 + ld a, A_BUTTON + add D_UP + add D_DOWN + add B_BUTTON + ld [hli], a ; wMenuJoypadFilter + ld a, 1 + ld [hli], a ; wMenuCursorY, wMenuCursorX + ld [hli], a ; wMenuCursorY, wMenuCursorX + ret + +Function4a098: ; 4a098 (12:6098) + ld a, 2 + call MenuClickSound + call PlaceHollowCursor + call WaitBGMap + call LoadStandardMenuDataHeader + callba Function89de0 + call Call_ExitMenu + call MG_Mobile_Layout_LoadPals + call Function4a485 + pop bc + jp Function49f16 + +Function4a0b9: ; 4a0b9 (12:60b9) + ld a, 2 + call MenuClickSound + pop bc + jp Function4a4c4 + +Function4a0c2: ; 4a0c2 (12:60c2) + ld a, 2 + call MenuClickSound + ld a, BANK(sPlayerData) + call GetSRAMBank + ld hl, sPlayerData + PlayerName - wPlayerData + ld de, PlayerName + ld bc, 6 ; japanese name length + call CopyBytes + call CloseSRAM + callba _LoadData + ld c, 2 + call DelayFrames + ld c, $1 + call InitMobileProfile + push af + call ClearBGPalettes + pop af + and a + jr nz, .skip_save + callba _SaveData +.skip_save + ld c, 5 + call DelayFrames + jr asm_4a111 + +Function4a100: ; 4a100 (12:6100) + ld a, 2 + call MenuClickSound + call ClearBGPalettes + call Function4a13b + call ClearBGPalettes + call ClearTileMap + +asm_4a111: ; 4a111 (12:6111) + pop bc + call LoadFontsExtra + jp Function49f0a + +Function4a118: ; 4a118 (12:6118) + ld hl, w2DMenuCursorInitY + ld a, $1 + ld [hli], a + ld a, $d + ld [hli], a + ld a, $3 + ld [hli], a + ld a, $1 + ld [hli], a + ld [hl], $0 + set 5, [hl] + inc hl + xor a + ld [hli], a + ld a, $20 + ld [hli], a + ld a, $1 + add $2 + ld [hli], a + ld a, $1 + ld [hli], a + ld [hli], a + ret + +Function4a13b: ; 4a13b (12:613b) + call Function4a3a7 + call Function4a492 + call Function4a373 + ld c, 10 + call DelayFrames + +Function4a149: ; 4a149 (12:6149) + hlcoord 1, 2 + ld b, $6 + ld c, $10 + call Function48cdc + hlcoord 3, 4 + ld de, String_4a1ef + call PlaceString + hlcoord 0, 12 + ld b, $4 + ld c, $12 + call TextBox + ld a, [wMenuCursorY] + dec a + ld hl, Strings_4a23d + call GetNthString + ld d, h + ld e, l + hlcoord 1, 13 + ld b, $4 + ld c, $12 + call ClearBox + hlcoord 1, 14 + call PlaceString + callba Mobile_OpenAndCloseMenu_HDMATransferTileMapAndAttrMap + call SetPalettes + call StaticMenuJoypad + ld hl, wMenuCursorY + ld b, [hl] + push bc + jr asm_4a19d + +Function4a195: ; 4a195 (12:6195) + call ScrollingMenuJoypad + ld hl, wMenuCursorY + ld b, [hl] + push bc + +asm_4a19d: ; 4a19d (12:619d) + bit 0, a + jr nz, .asm_4a1a7 + bit 1, a + jr nz, .asm_4a1ba + jr .asm_4a1bc +.asm_4a1a7 + ld hl, wMenuCursorY + ld a, [hl] + cp $1 + jp z, Function4a20e + cp $2 + jp z, Function4a221 + ld a, $1 + call MenuClickSound +.asm_4a1ba + pop bc + ret +.asm_4a1bc + ld hl, wMenuCursorY + ld a, [hl] + dec a + ld hl, Strings_4a23d + call GetNthString + ld d, h + ld e, l + hlcoord 1, 13 + ld b, $4 + ld c, $12 + call ClearBox + hlcoord 1, 14 + call PlaceString + jr .asm_4a1db +.asm_4a1db + call Function4a373 + pop bc + ld hl, wMenuCursorY + ld [hl], b + lb bc, 6, 1 + hlcoord 2, 3 + call ClearBox + jp Function4a195 +; 4a1ef (12:61ef) + +String_4a1ef: ; 4a1ef + db "モバイルセンター¯えらぶ" + next "ログインパスワード¯いれる" + next "もどる@" +; 4a20e + +Function4a20e: ; 4a20e (12:620e) + ld a, $1 + call MenuClickSound + callba Function1719c8 + call ClearBGPalettes + call DelayFrame + jr Function4a239 + +Function4a221: ; 4a221 (12:6221) + ld a, $1 + call MenuClickSound + call Function4a28a + jr c, Function4a239 + call Function4a373 + ld a, $2 + ld [wMenuCursorY], a + jr .asm_4a235 +.asm_4a235 + pop bc + jp Function4a149 + +Function4a239: ; 4a239 (12:6239) + pop bc + jp Function4a13b +; 4a23d (12:623d) + +Strings_4a23d: ; 4a23d + db "いつも せつぞく¯する" + next "モバイルセンター¯えらびます@" + + db "モバイルセンター", $1d, "せつぞくするとき" + next "つかうパスワード¯ほぞんできます@" + + db "まえ%がめん ", $1d, "もどります@" + + db "@" +; 4a28a + +Function4a28a: ; 4a28a (12:628a) + hlcoord 2, 3 + lb bc, 6, 1 + ld a, " " + call Function4a6d8 + call PlaceHollowCursor + call WaitBGMap + call LoadStandardMenuDataHeader + ld a, $5 + call GetSRAMBank + ld a, [$aa4b] + call CloseSRAM + and a + jr z, .asm_4a2df + hlcoord 12, 0 + ld b, $5 + ld c, $6 + call Function48cdc + hlcoord 14, 1 + ld de, String_4a34b + call PlaceString + callba Mobile_OpenAndCloseMenu_HDMATransferTileMapAndAttrMap + call Function4a118 + call ScrollingMenuJoypad + push af + call PlayClickSFX + pop af + bit B_BUTTON_F, a + jr nz, .quit + ld a, [wMenuCursorY] + cp $2 + jr z, .DeleteLoginPassword + cp $3 + jr z, .quit +.asm_4a2df + callba Function11765d + call ClearBGPalettes + call Call_ExitMenu + call LoadFontsExtra + scf + ret + +.DeleteLoginPassword: + call PlaceHollowCursor + ld hl, UnknownText_0x4a358 + call PrintText + hlcoord 14, 7 + ld b, 3 + ld c, 4 + call TextBox + callba Mobile_OpenAndCloseMenu_HDMATransferTileMapAndAttrMap + ld hl, DeletePassword_YesNo_MenuDataHeader + call LoadMenuDataHeader + call VerticalMenu + bit B_BUTTON_F, a + jr nz, .dont_delete_password + ld a, [wMenuCursorY] + cp $2 + jr z, .dont_delete_password + ld a, BANK(sMobileLoginPassword) + call GetSRAMBank + ld hl, sMobileLoginPassword + xor a + ld bc, MOBILE_LOGIN_PASSWORD_LENGTH + call ByteFill + call CloseSRAM + ld hl, UnknownText_0x4a35d + call PrintText + call JoyWaitAorB +.dont_delete_password + call ExitMenu +.quit + call Call_ExitMenu + callba Mobile_OpenAndCloseMenu_HDMATransferTileMapAndAttrMap + xor a + ret +; 4a346 (12:6346) + +MenuDataHeader_0x4a346: ; 0x4a346 + db $40 ; flags + db 00, 12 ; start coords + db 06, 19 ; end coords + +String_4a34b: ; 4a34b + db "いれなおす" + next "けす" + next "もどる@" +; 4a358 + +UnknownText_0x4a358: ; 0x4a358 + ; Delete the saved LOG-IN PASSWORD? + text_jump UnknownText_0x1c5196 + db "@" +; 0x4a35d + +UnknownText_0x4a35d: ; 0x4a35d + ; Deleted the LOG-IN PASSWORD. + text_jump UnknownText_0x1c51b9 + db "@" +; 0x4a362 + +DeletePassword_YesNo_MenuDataHeader: ; 0x4a362 + db $40 ; flags + db 07, 14 ; start coords + db 11, 19 ; end coords + dw MenuData2_0x4a36a + db 2 ; default option +; 0x4a36a + +MenuData2_0x4a36a: ; 0x4a36a + db $e0 ; flags + db 2 ; items + db "はい@" + db "いいえ@" +; 0x4a373 + +Function4a373: ; 4a373 (12:6373) + ld hl, w2DMenuCursorInitY + ld a, $4 + ld [hli], a + ld a, $2 + ld [hli], a + ld a, $3 + ld [hli], a + ld a, $1 + ld [hli], a + ld [hl], $0 + set 5, [hl] + inc hl + xor a + ld [hli], a + ld a, $20 + ld [hli], a + ld a, $1 + add $40 + add $80 + add $2 + ld [hli], a + ld a, $1 + ld [hli], a + ld [hli], a + ret +; 4a39a (12:639a) + +Function4a39a: ; 4a39a + call Function4a485 + call Function4a492 + call Function4a3aa + call SetPalettes + ret +; 4a3a7 + +Function4a3a7: ; 4a3a7 (12:63a7) + call Function4a485 +Function4a3aa: ; 4a3aa + hlcoord 0, 0 + lb bc, 3, 1 + xor a + call Function4a6d8 + lb bc, 1, 1 + ld a, $1 + call Function4a6d8 + lb bc, 1, 1 + xor a + call Function4a6d8 + lb bc, 1, 1 + ld a, $1 + call Function4a6d8 + lb bc, 4, 1 + ld a, $2 + call Function4a6d8 + lb bc, 1, 1 + ld a, $3 + call Function4a6d8 + lb bc, 1, 1 + ld a, " " + call Function4a6d8 + hlcoord 1, 0 + ld a, $1 + lb bc, 3, 18 + call Function4a6d8 + lb bc, 1, 18 + ld a, $0 + call Function4a6d8 + lb bc, 1, 18 + ld a, $1 + call Function4a6d8 + lb bc, 1, 18 + ld a, $2 + call Function4a6d8 + lb bc, 11, 18 + ld a, " " + call Function4a6d8 + hlcoord 19, 0 + lb bc, 3, 1 + ld a, $0 + call Function4a6d8 + lb bc, 1, 1 + ld a, $1 + call Function4a6d8 + lb bc, 1, 1 + xor a + call Function4a6d8 + lb bc, 1, 1 + ld a, $1 + call Function4a6d8 + lb bc, 4, 1 + ld a, $2 + call Function4a6d8 + lb bc, 1, 1 + ld a, $3 + call Function4a6d8 + lb bc, 1, 1 + ld a, " " + call Function4a6d8 + ret +; 4a449 (12:6449) + +Function4a449: ; 4a449 + ld bc, 3 * SCREEN_WIDTH + ld a, $0 + hlcoord 0, 0 + call ByteFill + ld bc, 2 * SCREEN_WIDTH + ld a, $1 + call ByteFill + ld bc, 2 * SCREEN_WIDTH + ld a, $0 + call ByteFill + ld bc, 2 * SCREEN_WIDTH + ld a, $1 + call ByteFill + ld bc, SCREEN_WIDTH + ld a, $2 + call ByteFill + ld bc, SCREEN_WIDTH + ld a, $3 + call ByteFill + ld bc, SCREEN_WIDTH + ld a, " " + call ByteFill + ret +; 4a485 + +Function4a485: ; 4a485 (12:6485) + ld de, GFX_49c0c + ld hl, VTiles2 tile $00 + lb bc, BANK(GFX_49c0c), 13 + call Get2bpp + ret + +Function4a492: ; 4a492 (12:6492) + call MG_Mobile_Layout00 + ret + + +MainMenu_MobileStudium: ; 4a496 + ld a, [StartDay] + ld b, a + ld a, [StartHour] + ld c, a + ld a, [StartMinute] + ld d, a + ld a, [StartSecond] + ld e, a + push bc + push de + callba MobileStudium + call ClearBGPalettes + pop de + pop bc + ld a, b + ld [StartDay], a + ld a, c + ld [StartHour], a + ld a, d + ld [StartMinute], a + ld a, e + ld [StartSecond], a + ret +; 4a4c4 + + +Function4a4c4: ; 4a4c4 (12:64c4) + call ClearBGPalettes + call Function4a3a7 + call Function4a492 + call Function4a680 + call ClearBGPalettes + ld c, 20 + call DelayFrames + hlcoord 2, 0 + ld b, $a + ld c, $e + call Function48cdc + hlcoord 4, 2 + ld de, String_4a5c5 + call PlaceString + hlcoord 4, 4 + ld de, String_4a5cd + call PlaceString + hlcoord 4, 6 + ld de, String_4a5da + call PlaceString + hlcoord 4, 8 + ld de, String_4a5e6 + call PlaceString + hlcoord 4, 10 + ld de, String_4a5f2 + call PlaceString + hlcoord 0, 12 + ld b, $4 + ld c, $12 + call TextBox + xor a + ld hl, Strings_4a5f6 + ld d, h + ld e, l + hlcoord 1, 14 + call PlaceString + ld a, $1 + ld hl, Strings_4a5f6 + call GetNthString + ld d, h + ld e, l + hlcoord 1, 16 + call PlaceString + call WaitBGMap2 + call SetPalettes + call StaticMenuJoypad + ld hl, wMenuCursorY + ld b, [hl] + push bc + jr asm_4a54d + +Function4a545: ; 4a545 (12:6545) + call ScrollingMenuJoypad + ld hl, wMenuCursorY + ld b, [hl] + push bc + +asm_4a54d: ; 4a54d (12:654d) + bit 0, a + jr nz, .asm_4a557 + bit 1, a + jr nz, .asm_4a574 + jr .asm_4a57e +.asm_4a557 + ld hl, wMenuCursorY + ld a, [hl] + cp $1 + jp z, Function4a6ab + cp $2 + jp z, Function4a6ab + cp $3 + jp z, Function4a6ab + cp $4 + jp z, Function4a6ab + ld a, $1 + call MenuClickSound +.asm_4a574 + pop bc + call ClearBGPalettes + call ClearTileMap + jp Function49f0a +.asm_4a57e + ld hl, wMenuCursorY + ld a, [hl] + dec a + add a + push af + ld hl, Strings_4a5f6 + call GetNthString + ld d, h + ld e, l + hlcoord 1, 13 + ld b, $4 + ld c, $12 + call ClearBox + hlcoord 1, 14 + call PlaceString + pop af + inc a + ld hl, Strings_4a5f6 + call GetNthString + ld d, h + ld e, l + hlcoord 1, 16 + call PlaceString + jp Function4a5b0 + +Function4a5b0: ; 4a5b0 (12:65b0) + call Function4a680 + pop bc + ld hl, wMenuCursorY + ld [hl], b + ld b, $a + ld c, $1 + hlcoord 3, 1 + call ClearBox + jp Function4a545 +; 4a5c5 (12:65c5) + +String_4a5c5: ; 4a5c5 + db "じこしょうかい@" +String_4a5cd: ; 4a5cd + db "たいせん ", $4a, "はじまるとき@" +String_4a5da: ; 4a5da + db "たいせん ", $1d, "かったとき@" +String_4a5e6: ; 4a5e6 + db "たいせん ", $1d, "まけたとき@" +String_4a5f2: ; 4a5f2 + db "もどる@" +; 4a5f6 + +Strings_4a5f6: ; 4a5f6 + db "めいし や ニュース ", $1d, "のせる@" + db "あなた%あいさつです@" + db "モバイル たいせん", $4a, "はじまるとき@" + db "あいて", $1d, "みえる あいさつです@" + db "モバイル たいせんで かったとき@" + db "あいて", $1d, "みえる あいさつです@" + db "モバイル たいせんで まけたとき@" + db "あいて", $1d, "みえる あいさつです@" + db "まえ%がめん ", $1d, "もどります@" + db "@" +; 4a680 + +Function4a680: ; 4a680 (12:6680) + ld hl, w2DMenuCursorInitY + ld a, $2 + ld [hli], a + ld a, $3 + ld [hli], a + ld a, $5 + ld [hli], a + ld a, $1 + ld [hli], a + ld [hl], $0 + set 5, [hl] + inc hl + xor a + ld [hli], a + ld a, $20 + ld [hli], a + ld a, $1 + add $40 + add $80 + add $2 + ld [hli], a + ld a, $1 + ld [hli], a + ld [hli], a + xor a + ld [hli], a + ld [hli], a + ld [hli], a + ret + +Function4a6ab: ; 4a6ab (12:66ab) + ld a, $2 + call MenuClickSound + call ClearBGPalettes + ld b, SCGB_DIPLOMA + call GetSGBLayout + callba Function11c1ab + pop bc + call LoadFontsExtra + jp Function4a4c4 + +Function4a6c5: ; 4a6c5 (12:66c5) + ld a, $5 + ld [MusicFade], a + ld a, e + ld [MusicFadeID], a + ld a, d + ld [MusicFadeID + 1], a + ld c, 22 + call DelayFrames + ret + +Function4a6d8: ; 4a6d8 (12:66d8) + push bc + push hl +.asm_4a6da + ld [hli], a + dec c + jr nz, .asm_4a6da + pop hl + ld bc, SCREEN_WIDTH + add hl, bc + pop bc + dec b + jr nz, Function4a6d8 + ret -- cgit v1.2.3