ref: ebf3bfb6b289bf684941a86cafe1286d8ce212fe
parent: 253c09949b421ec09a688af2945eb3df1fc00777
author: Remy Oukaour <[email protected]>
date: Fri Dec 15 07:53:33 EST 2017
Move some misc/ files into meaningful directories
--- 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
--- 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
--- /dev/null
+++ b/engine/dma_transfer.asm
@@ -1,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
--- /dev/null
+++ b/engine/gbc_only.asm
@@ -1,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
--- a/engine/init_gender.asm
+++ b/engine/init_gender.asm
@@ -20,7 +20,7 @@
ret
; 4802f
-INCLUDE "misc/mobile_12.asm"
+INCLUDE "mobile/mobile_12.asm"
InitGender: ; 48dcb (12:4dcb)
call InitGenderScreen
--- /dev/null
+++ b/engine/print_party.asm
@@ -1,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], "<SHINY>"
+ ret
+; 1dc550
+
+String1dc550: ; 1dc550
+ db "OT/@"
+
+String1dc554: ; 1dc554
+ db "MOVE@"
+
+String1dc559: ; 1dc559
+ db "<ID>№.@"
+
+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"
--- /dev/null
+++ b/engine/unused_title.asm
@@ -1,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
--- /dev/null
+++ b/gfx/emotes.asm
@@ -1,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"
binary files a/gfx/mobile/hp.png /dev/null differ
binary files a/gfx/mobile/lv.png /dev/null differ
binary files /dev/null b/gfx/printer/hp.png differ
binary files /dev/null b/gfx/printer/lv.png differ
--- a/main.asm
+++ b/main.asm
@@ -1784,9 +1784,9 @@
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 @@
scf
ret
-INCLUDE "misc/gbc_only.asm"
+INCLUDE "engine/gbc_only.asm"
INCLUDE "event/poke_seer.asm"
@@ -4604,12 +4604,12 @@
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 @@
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 @@
SECTION "mobile_42", ROMX
-INCLUDE "misc/mobile_42.asm"
+INCLUDE "mobile/mobile_42.asm"
SECTION "Intro Logo", ROMX
@@ -5131,10 +5131,10 @@
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 @@
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 @@
callba FinishBattleAnim
ret
-INCLUDE "misc/mobile_5f.asm"
+INCLUDE "mobile/mobile_5f.asm"
SECTION "Common Text 1", ROMX
@@ -5210,13 +5210,7 @@
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
--- a/misc/battle_tower_47.asm
+++ b/misc/battle_tower_47.asm
@@ -85,7 +85,7 @@
ret
; 11c05d
-INCLUDE "misc/fixed_words.asm"
+INCLUDE "mobile/fixed_words.asm"
BTTrainerClassGenders: ; 11f2f0
db MALE ; FALKNER
--- a/misc/fixed_words.asm
+++ /dev/null
@@ -1,4294 +1,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 "<NEXT>"
- ld [hl], "<NEXT>"
- rra
- jr c, .got_line_terminator
- ; else, insert "<CONT>"
- ld [hl], "<CONT>"
-
-.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 "<DONE>"
- ld [hl], "<DONE>"
- ; 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:
--- a/misc/gbc_only.asm
+++ /dev/null
@@ -1,149 +1,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
--- a/misc/gfx_41.asm
+++ /dev/null
@@ -1,638 +1,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"
--- a/misc/mobile_12.asm
+++ /dev/null
@@ -1,1845 +1,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
--- a/misc/mobile_12_2.asm
+++ /dev/null
@@ -1,936 +1,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
--- a/misc/mobile_22.asm
+++ /dev/null
@@ -1,4448 +1,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 "あたらしい めいし<PKMN>できまし<LNBRK>@"
-; 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
--- a/misc/mobile_22_2.asm
+++ /dev/null
@@ -1,1162 +1,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
--- a/misc/mobile_40.asm
+++ /dev/null
@@ -1,8156 +1,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 "あいてがわ<PKMN>えらんだ "
- next "いじょう<PKMN>あるようです!!"
- 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 "いじょう<PKMN>あるようです!!"
- 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
--- a/misc/mobile_41.asm
+++ /dev/null
@@ -1,1115 +1,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"
--- a/misc/mobile_42.asm
+++ /dev/null
@@ -1,2009 +1,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 "<ID>№<DOT>?????"
- 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 "─ №<DOT>"
- next ""
- next "おや/"
- next "<ID>№<DOT>"
- 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
--- a/misc/mobile_45.asm
+++ /dev/null
@@ -1,7690 +1,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 "パスワード<PKMN>にゅうりょく"
- 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
--- a/misc/mobile_45_sprite_engine.asm
+++ /dev/null
@@ -1,922 +1,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
--- a/misc/mobile_46.asm
+++ /dev/null
@@ -1,7986 +1,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
-
-
--- a/misc/mobile_5b.asm
+++ /dev/null
@@ -1,833 +1,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
--- a/misc/mobile_5c.asm
+++ /dev/null
@@ -1,944 +1,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"
--- a/misc/mobile_5f.asm
+++ /dev/null
@@ -1,5310 +1,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 "<PLAY_G>"
- 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 "<DEXEND>" + 1
- jr nc, .next
- cp "<NEXT>"
- jr z, .next
- cp "@"
- jr z, .next
-
- cp $5
- jr c, .end
- cp "<PLAY_G>"
- jr c, .next
- cp $19
- jr c, .end
- cp $1d
- jr c, .next
- cp "%" + 1
- jr c, .end
- cp $35
- jr c, .next
- cp "<GREEN>" + 1
- jr c, .end
- cp "<ENEMY>"
- jr c, .next
- cp "<ENEMY>" + 1
- jr c, .end
- cp "<MOM>"
- 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 "<NEXT>"
- 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
--- a/misc/mobile_menu.asm
+++ /dev/null
@@ -1,879 +1,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
--- a/misc/printer_77.asm
+++ /dev/null
@@ -1,356 +1,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], "<SHINY>"
- ret
-; 1dc550
-
-String1dc550: ; 1dc550
- db "OT/@"
-
-String1dc554: ; 1dc554
- db "MOVE@"
-
-String1dc559: ; 1dc559
- db "<ID>№.@"
-
-String1dc55d: ; 1dc55d
- db "ATTACK"
- next "DEFENSE"
- next "SPCL.ATK"
- next "SPCL.DEF"
- next "SPEED"
- db "@"
-
-String1dc584: ; 1dc584
- db "------------@"
-; 1dc591
--- a/misc/unused_title.asm
+++ /dev/null
@@ -1,556 +1,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
--- /dev/null
+++ b/mobile/fixed_words.asm
@@ -1,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 "<NEXT>"
+ ld [hl], "<NEXT>"
+ rra
+ jr c, .got_line_terminator
+ ; else, insert "<CONT>"
+ ld [hl], "<CONT>"
+
+.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 "<DONE>"
+ ld [hl], "<DONE>"
+ ; 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:
--- /dev/null
+++ b/mobile/mobile_12.asm
@@ -1,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
--- /dev/null
+++ b/mobile/mobile_12_2.asm
@@ -1,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
--- /dev/null
+++ b/mobile/mobile_22.asm
@@ -1,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 "あたらしい めいし<PKMN>できまし<LNBRK>@"
+; 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
--- /dev/null
+++ b/mobile/mobile_22_2.asm
@@ -1,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
--- /dev/null
+++ b/mobile/mobile_40.asm
@@ -1,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 "あいてがわ<PKMN>えらんだ "
+ next "いじょう<PKMN>あるようです!!"
+ 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 "いじょう<PKMN>あるようです!!"
+ 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
--- /dev/null
+++ b/mobile/mobile_41.asm
@@ -1,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"
--- /dev/null
+++ b/mobile/mobile_42.asm
@@ -1,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 "<ID>№<DOT>?????"
+ 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 "─ №<DOT>"
+ next ""
+ next "おや/"
+ next "<ID>№<DOT>"
+ 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
--- /dev/null
+++ b/mobile/mobile_45.asm
@@ -1,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 "パスワード<PKMN>にゅうりょく"
+ 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
--- /dev/null
+++ b/mobile/mobile_45_sprite_engine.asm
@@ -1,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
--- /dev/null
+++ b/mobile/mobile_46.asm
@@ -1,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
+
+
--- /dev/null
+++ b/mobile/mobile_5b.asm
@@ -1,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
--- /dev/null
+++ b/mobile/mobile_5c.asm
@@ -1,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"
--- /dev/null
+++ b/mobile/mobile_5f.asm
@@ -1,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 "<PLAY_G>"
+ 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 "<DEXEND>" + 1
+ jr nc, .next
+ cp "<NEXT>"
+ jr z, .next
+ cp "@"
+ jr z, .next
+
+ cp $5
+ jr c, .end
+ cp "<PLAY_G>"
+ jr c, .next
+ cp $19
+ jr c, .end
+ cp $1d
+ jr c, .next
+ cp "%" + 1
+ jr c, .end
+ cp $35
+ jr c, .next
+ cp "<GREEN>" + 1
+ jr c, .end
+ cp "<ENEMY>"
+ jr c, .next
+ cp "<ENEMY>" + 1
+ jr c, .end
+ cp "<MOM>"
+ 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 "<NEXT>"
+ 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
--- /dev/null
+++ b/mobile/mobile_menu.asm
@@ -1,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