pokecrystal/misc/mobile_40.asm

8157 lines
118 KiB
NASM

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 [hFFC6], 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 [hFFC6], 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 Function17f555
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, BANK[$40]
charmap " ", $20 ; revert to ascii
Unknown_100b0a: ; 100b0a
db "tetsuji", 0
; 100b12
SECTION "bank40_2", ROMX, BANK[$40]
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, [wd0d2]
ld [wMenuCursorBuffer], a
call Function100e72
call Function100b45
callba InitPartyMenuBGPal7
call Function100ed4
ld a, [wMenuCursorBuffer]
ld [wd0d2], 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, BANK[$40]
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, BANK[$40]
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 DetermineMobileBattleResult
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 [wd10b], 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 Function14a58
callba MobileFn_1060af
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 5, a
jr nz, .left
bit 4, a
jr nz, .right
bit 1, a
jr nz, .b
bit 0, a
jr nz, .a
bit 6, a
jr nz, .up
bit 7, a
jr nz, .down
ret
.up
ld a, [wd1f0]
dec a
ld [wd1f0], a
cp $01
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, $01
ld [wd1f0], a
ret
.b
call PlayClickSFX
ld hl, Buffer2
set 7, [hl]
ret
.a
ld a, [wd1f3]
cp $03
jr nz, .asm_103412
ld de, SFX_TRANSACTION
call PlaySFX
ld hl, Buffer2
set 7, [hl]
ld hl, Buffer2
set 6, [hl]
ret
.left
.right
.asm_103412
ld a, [wd1f3]
cp $03
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