mirror of
https://gitlab.com/xCrystal/pokecrystal-board.git
synced 2024-11-16 11:27:33 -08:00
e6ea1889fb
The former is arguably misleading (as you don’t access the memory location in hl to retrieve the jump location), and is consequently deprecated in newer versions of rgbds. This fix silences these deprecation warnings.
2010 lines
32 KiB
NASM
2010 lines
32 KiB
NASM
MobileTradeAnimation_SendGivemonToGTS: ; 108000
|
|
ld a, $80
|
|
ld [wcf65], a
|
|
ld de, .TradeAnimScript
|
|
jp RunMobileTradeAnim_NoFrontpics
|
|
; 10800b
|
|
|
|
.TradeAnimScript:
|
|
mobiletradeanim_showgtsgivemon
|
|
mobiletradeanim_12
|
|
mobiletradeanim_10
|
|
mobiletradeanim_sendmon
|
|
mobiletradeanim_06
|
|
mobiletradeanim_0f
|
|
mobiletradeanim_end
|
|
|
|
MobileTradeAnimation_RetrieveGivemonFromGTS:
|
|
ld a, $80
|
|
jr asm_108018
|
|
|
|
MobileTradeAnimation_ReceiveGetmonFromGTS: ; 108016
|
|
ld a, $0
|
|
asm_108018:
|
|
ld [wcf65], a
|
|
ld de, .TradeAnimScript
|
|
jp RunMobileTradeAnim_NoFrontpics
|
|
; 108021
|
|
|
|
.TradeAnimScript:
|
|
mobiletradeanim_11
|
|
mobiletradeanim_07
|
|
mobiletradeanim_receivemon
|
|
mobiletradeanim_showgtsgetmon
|
|
mobiletradeanim_end
|
|
|
|
Function108026: ; 108026
|
|
ld a, $0
|
|
jr asm_10802c
|
|
|
|
Function10802a: ; 10802a
|
|
ld a, $1
|
|
|
|
asm_10802c:
|
|
ld [wcf65], a
|
|
ld de, .TradeAnimScript
|
|
jp RunMobileTradeAnim_Frontpics
|
|
; 108035
|
|
|
|
.TradeAnimScript: ; trade
|
|
mobiletradeanim_showgivemon
|
|
mobiletradeanim_12
|
|
mobiletradeanim_02
|
|
mobiletradeanim_sendmon
|
|
mobiletradeanim_05
|
|
mobiletradeanim_receivemon
|
|
mobiletradeanim_showgetmon
|
|
mobiletradeanim_end
|
|
|
|
Function10803d: ; 10803d
|
|
ld a, $0
|
|
ld [wcf65], a
|
|
ld de, .TradeAnimScript
|
|
jp RunMobileTradeAnim_NoFrontpics
|
|
; 108048
|
|
|
|
.TradeAnimScript:
|
|
mobiletradeanim_11
|
|
mobiletradeanim_07
|
|
mobiletradeanim_receivemon
|
|
mobiletradeanim_showoddegg
|
|
mobiletradeanim_end
|
|
|
|
Function10804d: ; 10804d
|
|
ld a, $0
|
|
ld [wcf65], a
|
|
ld de, .TradeAnimScript
|
|
jp RunMobileTradeAnim_NoFrontpics
|
|
; 108058
|
|
|
|
.TradeAnimScript:
|
|
mobiletradeanim_11
|
|
mobiletradeanim_showgtsgetmon
|
|
mobiletradeanim_end
|
|
|
|
RunMobileTradeAnim_Frontpics: ; 10805b
|
|
ld hl, wTradeAnimPointer
|
|
ld [hl], e
|
|
inc hl
|
|
ld [hl], d
|
|
ld a, [hMapAnims]
|
|
push af
|
|
xor a
|
|
ld [hMapAnims], a
|
|
ld hl, VramState
|
|
ld a, [hl]
|
|
push af
|
|
res 0, [hl]
|
|
ld hl, Options
|
|
ld a, [hl]
|
|
push af
|
|
set NO_TEXT_SCROLL, [hl]
|
|
call Function1080b7
|
|
.loop
|
|
call MobileTradeAnim_JumptableLoop
|
|
jr nc, .loop
|
|
pop af
|
|
ld [Options], a
|
|
pop af
|
|
ld [VramState], a
|
|
pop af
|
|
ld [hMapAnims], a
|
|
ret
|
|
; 108089
|
|
|
|
RunMobileTradeAnim_NoFrontpics: ; 108089
|
|
ld hl, wTradeAnimPointer
|
|
ld [hl], e
|
|
inc hl
|
|
ld [hl], d
|
|
ld a, [hMapAnims]
|
|
push af
|
|
xor a
|
|
ld [hMapAnims], a
|
|
ld hl, VramState
|
|
ld a, [hl]
|
|
push af
|
|
res 0, [hl]
|
|
ld hl, Options
|
|
ld a, [hl]
|
|
push af
|
|
set NO_TEXT_SCROLL, [hl]
|
|
call Function108157
|
|
.loop
|
|
call MobileTradeAnim_JumptableLoop
|
|
jr nc, .loop
|
|
pop af
|
|
ld [Options], a
|
|
pop af
|
|
ld [VramState], a
|
|
pop af
|
|
ld [hMapAnims], a
|
|
ret
|
|
; 1080b7
|
|
|
|
Function1080b7: ; 1080b7
|
|
xor a
|
|
ld [wJumptableIndex], a
|
|
call ClearBGPalettes
|
|
call ClearSprites
|
|
call ClearTileMap
|
|
call DisableLCD
|
|
call MobileTradeAnim_ClearVTiles
|
|
call MobileTradeAnim_ClearBGMap
|
|
call LoadStandardFont
|
|
call LoadFontsBattleExtra
|
|
|
|
ld a, $1
|
|
ld [rVBK], a
|
|
ld hl, LZ_108da7
|
|
ld de, VTiles2
|
|
call Decompress
|
|
|
|
ld a, $0
|
|
ld [rVBK], a
|
|
ld hl, LZ_108d27
|
|
ld de, VTiles0 tile $20
|
|
call Decompress
|
|
|
|
call EnableLCD
|
|
|
|
xor a
|
|
ld [hSCX], a
|
|
ld [hSCY], a
|
|
ld a, $7
|
|
ld [hWX], a
|
|
ld a, $90
|
|
ld [hWY], a
|
|
callba ClearSpriteAnims
|
|
|
|
call DelayFrame
|
|
|
|
ld de, TradeBallGFX
|
|
ld hl, VTiles0
|
|
lb bc, BANK(TradeBallGFX), $06
|
|
call Request2bpp
|
|
|
|
ld de, TradePoofGFX
|
|
ld hl, VTiles0 tile $06
|
|
lb bc, BANK(TradePoofGFX), $0c
|
|
call Request2bpp
|
|
|
|
xor a
|
|
ld hl, wSpriteAnimDict
|
|
ld [hli], a
|
|
ld [hl], $0
|
|
|
|
ld a, [wPlayerTrademonSpecies]
|
|
ld hl, wPlayerTrademonDVs
|
|
ld de, VTiles0 tile $30
|
|
call MobileTradeAnim_GetFrontpic
|
|
|
|
ld a, [wOTTrademonSpecies]
|
|
ld hl, wOTTrademonDVs
|
|
ld de, VTiles2 tile $31
|
|
call MobileTradeAnim_GetFrontpic
|
|
|
|
ld a, [wPlayerTrademonSpecies]
|
|
ld de, wPlayerTrademonSpeciesName
|
|
call MobileTradeAnim_InitSpeciesName
|
|
|
|
ld a, [wOTTrademonSpecies]
|
|
ld de, wOTTrademonSpeciesName
|
|
call MobileTradeAnim_InitSpeciesName
|
|
|
|
xor a
|
|
call Function108b98
|
|
call Function108af4
|
|
ret
|
|
; 108157
|
|
|
|
Function108157: ; 108157
|
|
xor a
|
|
ld [wJumptableIndex], a
|
|
call ClearBGPalettes
|
|
call ClearSprites
|
|
call ClearTileMap
|
|
call DisableLCD
|
|
call MobileTradeAnim_ClearVTiles
|
|
call MobileTradeAnim_ClearBGMap
|
|
call LoadStandardFont
|
|
call LoadFontsBattleExtra
|
|
call EnableLCD
|
|
xor a
|
|
ld [hSCX], a
|
|
ld [hSCY], a
|
|
ld a, $7
|
|
ld [hWX], a
|
|
ld a, $90
|
|
ld [hWY], a
|
|
callba ClearSpriteAnims
|
|
xor a
|
|
ld hl, wSpriteAnimDict
|
|
ld [hli], a
|
|
ld [hl], $0
|
|
call DelayFrame
|
|
ld a, [wPlayerTrademonSpecies]
|
|
ld de, wPlayerTrademonSpeciesName
|
|
call MobileTradeAnim_InitSpeciesName
|
|
ld a, [wOTTrademonSpecies]
|
|
ld de, wOTTrademonSpeciesName
|
|
call MobileTradeAnim_InitSpeciesName
|
|
xor a
|
|
call Function108b98
|
|
call Function108af4
|
|
ret
|
|
; 1081ad
|
|
|
|
MobileTradeAnim_ClearVTiles: ; 1081ad
|
|
ld a, $1
|
|
ld [rVBK], a
|
|
ld hl, VTiles0
|
|
ld bc, 3 * $80 tiles
|
|
xor a
|
|
call ByteFill
|
|
ld a, $0
|
|
ld [rVBK], a
|
|
ld hl, VTiles0
|
|
ld bc, 3 * $80 tiles
|
|
xor a
|
|
call ByteFill
|
|
ret
|
|
; 1081ca
|
|
|
|
MobileTradeAnim_ClearBGMap: ; 1081ca
|
|
ld a, $1
|
|
ld [rVBK], a
|
|
hlbgcoord 0, 0
|
|
ld bc, 2 * BG_MAP_HEIGHT * BG_MAP_WIDTH
|
|
ld a, $0
|
|
call ByteFill
|
|
ld a, $0
|
|
ld [rVBK], a
|
|
hlbgcoord 0, 0
|
|
ld bc, 2 * BG_MAP_HEIGHT * BG_MAP_WIDTH
|
|
ld a, $7f
|
|
call ByteFill
|
|
ret
|
|
; 1081e9
|
|
|
|
MobileTradeAnim_GetFrontpic: ; 1081e9
|
|
push de
|
|
push af
|
|
predef GetUnownLetter
|
|
pop af
|
|
ld [CurPartySpecies], a
|
|
ld [CurSpecies], a
|
|
call GetBaseData
|
|
pop de
|
|
predef GetFrontpic
|
|
ret
|
|
; 108201
|
|
|
|
Function108201: ; 108201
|
|
push de
|
|
push af
|
|
predef GetUnownLetter
|
|
pop af
|
|
ld [CurPartySpecies], a
|
|
ld [CurSpecies], a
|
|
call GetBaseData
|
|
pop de
|
|
predef FrontpicPredef
|
|
ret
|
|
; 108219
|
|
|
|
Function108219: ; 108219
|
|
ld [CurPartySpecies], a
|
|
hlcoord 7, 2
|
|
ld d, $0
|
|
ld e, ANIM_MON_TRADE
|
|
predef AnimateFrontpic
|
|
ret
|
|
; 108229
|
|
|
|
Function108229: ; 108229
|
|
ld [CurPartySpecies], a
|
|
hlcoord 7, 2
|
|
ld d, $0
|
|
ld e, ANIM_MON_TRADE
|
|
predef LoadMonAnimation
|
|
ret
|
|
; 108239
|
|
|
|
MobileTradeAnim_InitSpeciesName: ; 108239
|
|
push de
|
|
ld [wd265], a
|
|
call GetPokemonName
|
|
ld hl, StringBuffer1
|
|
pop de
|
|
ld bc, PKMN_NAME_LENGTH
|
|
call CopyBytes
|
|
ret
|
|
; 10824b
|
|
|
|
MobileTradeAnim_JumptableLoop: ; 10824b
|
|
ld a, [wJumptableIndex]
|
|
bit 7, a
|
|
jr nz, .StopAnim
|
|
call .ExecuteMobileTradeAnimCommand
|
|
call DelayFrame
|
|
and a
|
|
ret
|
|
|
|
.StopAnim:
|
|
xor a
|
|
ld [hSCX], a
|
|
ld [hSCY], a
|
|
ld a, $7
|
|
ld [hWX], a
|
|
ld a, $90
|
|
ld [hWY], a
|
|
call LoadStandardFont
|
|
call LoadFontsBattleExtra
|
|
callba MobileFunc_106462
|
|
callba Function106464
|
|
scf
|
|
ret
|
|
; 10827b
|
|
|
|
.ExecuteMobileTradeAnimCommand: ; 10827b
|
|
ld a, [wJumptableIndex]
|
|
ld e, a
|
|
ld d, 0
|
|
ld hl, .Jumptable
|
|
add hl, de
|
|
add hl, de
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
jp hl
|
|
; 10828a
|
|
|
|
.Jumptable: ; 10828a
|
|
|
|
dw GetMobileTradeAnimByte ; 00
|
|
dw MobileTradeAnim_ShowPlayerMonToBeSent ; 01
|
|
dw MobileTradeAnim_02 ; 02
|
|
dw MobileTradeAnim_GiveTrademon1 ; 03
|
|
dw MobileTradeAnim_GiveTrademon2 ; 04
|
|
dw MobileTradeAnim_05 ; 05
|
|
dw MobileTradeAnim_06 ; 06
|
|
dw MobileTradeAnim_07 ; 07
|
|
dw MobileTradeAnim_GetTrademon1 ; 08
|
|
dw MobileTradeAnim_GetTrademon2 ; 09
|
|
dw MobileTradeAnim_GetTrademon3 ; 0a
|
|
dw MobileTradeAnim_ShowOTMonFromTrade ; 0b
|
|
dw EndMobileTradeAnim ; 0c
|
|
dw MobileTradeAnim_ShowPlayerMonForGTS ; 0d
|
|
dw MobileTradeAnim_ShowOTMonFromGTS ; 0e
|
|
dw MobileTradeAnim_0f ; 0f
|
|
dw MobileTradeAnim_10 ; 10
|
|
dw MobileTradeAnim_11 ; 11
|
|
dw MobileTradeAnim_FadeToBlack ; 12
|
|
dw MobileTradeAnim_GetOddEgg ; 13 get odd egg
|
|
; 1082b2
|
|
|
|
MobileTradeAnim_Next: ; 1082b2
|
|
ld hl, wJumptableIndex
|
|
inc [hl]
|
|
ret
|
|
; 1082b7
|
|
|
|
GetMobileTradeAnimByte: ; 1082b7
|
|
ld hl, wTradeAnimPointer
|
|
ld e, [hl]
|
|
inc hl
|
|
ld d, [hl]
|
|
ld a, [de]
|
|
ld [wJumptableIndex], a
|
|
inc de
|
|
ld [hl], d
|
|
dec hl
|
|
ld [hl], e
|
|
ret
|
|
; 1082c6
|
|
|
|
EndMobileTradeAnim: ; 1082c6
|
|
ld hl, wJumptableIndex
|
|
set 7, [hl]
|
|
ret
|
|
; 1082cc
|
|
|
|
WaitMobileTradeSpriteAnims: ; 1082cc
|
|
.loop
|
|
push bc
|
|
callba PlaySpriteAnimations
|
|
pop bc
|
|
call DelayFrame
|
|
dec c
|
|
jr nz, .loop
|
|
ret
|
|
; 1082db
|
|
|
|
Function1082db: ; 1082db
|
|
.loop
|
|
callba PlaySpriteAnimations
|
|
callba SetUpPokeAnim
|
|
callba HDMATransferTileMapToWRAMBank3
|
|
jr nc, .loop
|
|
ret
|
|
; 1082f0
|
|
|
|
Function1082f0: ; 1082f0
|
|
.loop
|
|
call Function108b78
|
|
call DelayFrame
|
|
dec c
|
|
jr nz, .loop
|
|
ret
|
|
; 1082fa
|
|
|
|
Function1082fa: ; 1082fa
|
|
.loop
|
|
call Function108b78
|
|
push hl
|
|
push bc
|
|
callba PlaySpriteAnimations
|
|
pop bc
|
|
pop hl
|
|
call DelayFrame
|
|
dec c
|
|
jr nz, .loop
|
|
ret
|
|
; 10830e
|
|
|
|
MobileTradeAnim_ShowPlayerMonToBeSent: ; 10830e
|
|
ld de, MUSIC_EVOLUTION
|
|
call PlayMusic2
|
|
ld a, $80
|
|
ld [hSCX], a
|
|
xor a
|
|
ld [hSCY], a
|
|
ld a, $87
|
|
ld [hWX], a
|
|
ld a, $50
|
|
ld [hWY], a
|
|
call MobileTradeAnim_DisplayMonToBeSent
|
|
ld a, [wPlayerTrademonSpecies]
|
|
ld [CurPartySpecies], a
|
|
call Function10895e
|
|
ld a, [wPlayerTrademonDVs]
|
|
ld [TempMonDVs], a
|
|
ld a, [wPlayerTrademonDVs + 1]
|
|
ld [TempMonDVs + 1], a
|
|
ld b, SCGB_PLAYER_OR_MON_FRONTPIC_PALS
|
|
call GetSGBLayout
|
|
ld a, %11100100 ; 3,2,1,0
|
|
call DmgToCgbBGPals
|
|
call WaitBGMap
|
|
.loop
|
|
ld a, [hWX]
|
|
cp $7
|
|
jr z, .okay
|
|
sub $4
|
|
ld [hWX], a
|
|
ld a, [hSCX]
|
|
sub $4
|
|
ld [hSCX], a
|
|
call DelayFrame
|
|
jr .loop
|
|
|
|
.okay
|
|
ld a, $7
|
|
ld [hWX], a
|
|
xor a
|
|
ld [hSCX], a
|
|
ld a, [wPlayerTrademonSpecies]
|
|
call GetCryIndex
|
|
jr c, .skip_cry
|
|
ld e, c
|
|
ld d, b
|
|
call PlayCryHeader
|
|
|
|
.skip_cry
|
|
ld c, 80
|
|
call DelayFrames
|
|
call Function108bec
|
|
depixel 10, 11, 4, 0
|
|
ld a, SPRITE_ANIM_INDEX_20
|
|
call _InitSpriteAnimStruct
|
|
ld de, SFX_BALL_POOF
|
|
call PlaySFX
|
|
hlcoord 0, 0
|
|
ld bc, 12 * SCREEN_WIDTH
|
|
ld a, " "
|
|
call ByteFill
|
|
ld c, 80
|
|
call WaitMobileTradeSpriteAnims
|
|
call GetMobileTradeAnimByte
|
|
ret
|
|
; 10839b
|
|
|
|
MobileTradeAnim_ShowOTMonFromTrade: ; 10839b
|
|
call ClearBGPalettes
|
|
call ClearSprites
|
|
call ClearTileMap
|
|
call DisableLCD
|
|
call MobileTradeAnim_ClearBGMap
|
|
ld a, [wOTTrademonSpecies]
|
|
ld [CurPartySpecies], a
|
|
ld hl, wOTTrademonDVs
|
|
ld de, VTiles2
|
|
call Function108201
|
|
call EnableLCD
|
|
callba DeinitializeAllSprites
|
|
xor a
|
|
ld [hSCX], a
|
|
ld [hSCY], a
|
|
ld a, $7
|
|
ld [hWX], a
|
|
ld a, $90
|
|
ld [hWY], a
|
|
depixel 10, 11, 4, 0
|
|
ld a, SPRITE_ANIM_INDEX_21
|
|
call _InitSpriteAnimStruct
|
|
call Function108b45
|
|
ld a, $1
|
|
call Function108b98
|
|
call Function108af4
|
|
ld c, 48
|
|
call WaitMobileTradeSpriteAnims
|
|
ld de, SFX_BALL_POOF
|
|
call PlaySFX
|
|
call MobileTradeAnim_DisplayReceivedMon
|
|
xor a
|
|
ld [hSCX], a
|
|
ld [hSCY], a
|
|
ld a, $7
|
|
ld [hWX], a
|
|
ld a, $50
|
|
ld [hWY], a
|
|
ld a, [wOTTrademonSpecies]
|
|
ld [CurPartySpecies], a
|
|
ld a, [wOTTrademonDVs]
|
|
ld [TempMonDVs], a
|
|
ld a, [wOTTrademonDVs + 1]
|
|
ld [TempMonDVs + 1], a
|
|
ld b, SCGB_PLAYER_OR_MON_FRONTPIC_PALS
|
|
call GetSGBLayout
|
|
ld a, %11100100 ; 3,2,1,0
|
|
call DmgToCgbBGPals
|
|
call Function108963
|
|
ld a, [wOTTrademonSpecies]
|
|
call Function108229
|
|
call Function1082db
|
|
call Function108c16
|
|
call GetMobileTradeAnimByte
|
|
ret
|
|
; 10842c
|
|
|
|
MobileTradeAnim_ShowPlayerMonForGTS: ; 10842c
|
|
ld de, MUSIC_EVOLUTION
|
|
call PlayMusic2
|
|
ld a, $80
|
|
ld [hSCX], a
|
|
xor a
|
|
ld [hSCY], a
|
|
ld a, $87
|
|
ld [hWX], a
|
|
ld a, $50
|
|
ld [hWY], a
|
|
call MobileTradeAnim_DisplayMonToBeSent
|
|
ld a, [wPlayerTrademonSpecies]
|
|
ld [CurPartySpecies], a
|
|
ld hl, wPlayerTrademonDVs
|
|
call Function10898a
|
|
call DelayFrame
|
|
ld de, TradeBallGFX
|
|
ld hl, VTiles0
|
|
lb bc, BANK(TradeBallGFX), $06
|
|
call Request2bpp
|
|
ld de, TradePoofGFX
|
|
ld hl, VTiles0 tile $06
|
|
lb bc, BANK(TradePoofGFX), $0c
|
|
call Request2bpp
|
|
ld a, [wPlayerTrademonDVs]
|
|
ld [TempMonDVs], a
|
|
ld a, [wPlayerTrademonDVs + 1]
|
|
ld [TempMonDVs + 1], a
|
|
ld b, SCGB_PLAYER_OR_MON_FRONTPIC_PALS
|
|
call GetSGBLayout
|
|
ld a, %11100100 ; 3,2,1,0
|
|
call DmgToCgbBGPals
|
|
call WaitBGMap
|
|
.loop
|
|
ld a, [hWX]
|
|
cp $7
|
|
jr z, .done
|
|
sub $4
|
|
ld [hWX], a
|
|
ld a, [hSCX]
|
|
sub $4
|
|
ld [hSCX], a
|
|
call DelayFrame
|
|
jr .loop
|
|
|
|
.done
|
|
ld a, $7
|
|
ld [hWX], a
|
|
xor a
|
|
ld [hSCX], a
|
|
ld a, [wPlayerTrademonSpecies]
|
|
call GetCryIndex
|
|
jr c, .skip_cry
|
|
ld e, c
|
|
ld d, b
|
|
call PlayCryHeader
|
|
|
|
.skip_cry
|
|
ld c, 80
|
|
call DelayFrames
|
|
call Function108c2b
|
|
depixel 10, 11, 4, 0
|
|
ld a, SPRITE_ANIM_INDEX_20
|
|
call _InitSpriteAnimStruct
|
|
ld de, SFX_BALL_POOF
|
|
call PlaySFX
|
|
hlcoord 0, 0
|
|
ld bc, 12 * SCREEN_WIDTH
|
|
ld a, " "
|
|
call ByteFill
|
|
ld c, 80
|
|
call WaitMobileTradeSpriteAnims
|
|
call GetMobileTradeAnimByte
|
|
ret
|
|
; 1084d7
|
|
|
|
MobileTradeAnim_ShowOTMonFromGTS: ; 1084d7
|
|
call ClearBGPalettes
|
|
call ClearSprites
|
|
call ClearTileMap
|
|
call DisableLCD
|
|
call MobileTradeAnim_ClearBGMap
|
|
ld a, [wOTTrademonSpecies]
|
|
ld [CurPartySpecies], a
|
|
ld hl, wOTTrademonDVs
|
|
ld de, VTiles2
|
|
call Function108201
|
|
call EnableLCD
|
|
callba DeinitializeAllSprites
|
|
call DelayFrame
|
|
ld de, TradeBallGFX
|
|
ld hl, VTiles0
|
|
lb bc, BANK(TradeBallGFX), $06
|
|
call Request2bpp
|
|
ld de, TradePoofGFX
|
|
ld hl, VTiles0 tile $06
|
|
lb bc, BANK(TradePoofGFX), $0c
|
|
call Request2bpp
|
|
xor a
|
|
ld [hSCX], a
|
|
ld [hSCY], a
|
|
ld a, $7
|
|
ld [hWX], a
|
|
ld a, $90
|
|
ld [hWY], a
|
|
depixel 10, 11, 4, 0
|
|
ld a, SPRITE_ANIM_INDEX_21
|
|
call _InitSpriteAnimStruct
|
|
call Function108b45
|
|
ld a, $1
|
|
call Function108b98
|
|
call Function108af4
|
|
ld c, 48
|
|
call WaitMobileTradeSpriteAnims
|
|
ld de, SFX_BALL_POOF
|
|
call PlaySFX
|
|
call MobileTradeAnim_DisplayReceivedMon
|
|
xor a
|
|
ld [hSCX], a
|
|
ld [hSCY], a
|
|
ld a, $7
|
|
ld [hWX], a
|
|
ld a, $50
|
|
ld [hWY], a
|
|
ld a, [wOTTrademonSpecies]
|
|
ld [CurPartySpecies], a
|
|
ld a, [wOTTrademonDVs]
|
|
ld [TempMonDVs], a
|
|
ld a, [wOTTrademonDVs + 1]
|
|
ld [TempMonDVs + 1], a
|
|
ld b, SCGB_PLAYER_OR_MON_FRONTPIC_PALS
|
|
call GetSGBLayout
|
|
ld a, %11100100 ; 3,2,1,0
|
|
call DmgToCgbBGPals
|
|
ld a, [wOTTrademonSpecies]
|
|
ld hl, wOTTrademonDVs
|
|
call Function10898a
|
|
ld a, [wOTTrademonSpecies]
|
|
call Function108229
|
|
call Function1082db
|
|
call Function108c40
|
|
call GetMobileTradeAnimByte
|
|
ret
|
|
; 108589
|
|
|
|
MobileTradeAnim_GetOddEgg: ; 108589
|
|
call ClearBGPalettes
|
|
call ClearSprites
|
|
call ClearTileMap
|
|
call DisableLCD
|
|
call MobileTradeAnim_ClearBGMap
|
|
ld a, [wOTTrademonSpecies]
|
|
ld [CurPartySpecies], a
|
|
ld hl, wOTTrademonDVs
|
|
ld de, VTiles2
|
|
call Function108201
|
|
call EnableLCD
|
|
callba DeinitializeAllSprites
|
|
call DelayFrame
|
|
ld de, TradeBallGFX
|
|
ld hl, VTiles0
|
|
lb bc, BANK(TradeBallGFX), $06
|
|
call Request2bpp
|
|
ld de, TradePoofGFX
|
|
ld hl, VTiles0 tile $06
|
|
lb bc, BANK(TradePoofGFX), $0c
|
|
call Request2bpp
|
|
xor a
|
|
ld [hSCX], a
|
|
ld [hSCY], a
|
|
ld a, $7
|
|
ld [hWX], a
|
|
ld a, $90
|
|
ld [hWY], a
|
|
depixel 10, 11, 4, 0
|
|
ld a, SPRITE_ANIM_INDEX_21
|
|
call _InitSpriteAnimStruct
|
|
call Function108b45
|
|
ld a, $1
|
|
call Function108b98
|
|
call Function108af4
|
|
ld c, 48
|
|
call WaitMobileTradeSpriteAnims
|
|
ld de, SFX_BALL_POOF
|
|
call PlaySFX
|
|
call Function108a33
|
|
xor a
|
|
ld [hSCX], a
|
|
ld [hSCY], a
|
|
ld a, $7
|
|
ld [hWX], a
|
|
ld a, $50
|
|
ld [hWY], a
|
|
ld a, [wOTTrademonSpecies]
|
|
ld [CurPartySpecies], a
|
|
ld a, [wOTTrademonDVs]
|
|
ld [TempMonDVs], a
|
|
ld a, [wOTTrademonDVs + 1]
|
|
ld [TempMonDVs + 1], a
|
|
ld b, SCGB_PLAYER_OR_MON_FRONTPIC_PALS
|
|
call GetSGBLayout
|
|
ld a, %11100100 ; 3,2,1,0
|
|
call DmgToCgbBGPals
|
|
ld a, [wOTTrademonSpecies]
|
|
ld hl, wOTTrademonDVs
|
|
call Function10898a
|
|
ld a, [wOTTrademonSpecies]
|
|
call Function108229
|
|
call Function1082db
|
|
call GetMobileTradeAnimByte
|
|
ret
|
|
; 108638
|
|
|
|
MobileTradeAnim_02: ; 108638
|
|
callba DeinitializeAllSprites
|
|
call ClearBGPalettes
|
|
call ClearSprites
|
|
call ClearTileMap
|
|
xor a
|
|
ld [hBGMapMode], a
|
|
call DisableLCD
|
|
call MobileTradeAnim_ClearBGMap
|
|
call Function108c80
|
|
call Function108c6d
|
|
call EnableLCD
|
|
ld a, $c
|
|
ld [hSCX], a
|
|
ld a, $78
|
|
ld [hSCY], a
|
|
ld a, $7
|
|
ld [hWX], a
|
|
ld a, $90
|
|
ld [hWY], a
|
|
ld a, [rSVBK]
|
|
push af
|
|
ld a, $5
|
|
ld [rSVBK], a
|
|
ld hl, Palette_109107
|
|
ld de, UnknBGPals
|
|
ld bc, 8 palettes
|
|
call CopyBytes
|
|
pop af
|
|
ld [rSVBK], a
|
|
call Function108d07
|
|
call Function108af4
|
|
call GetMobileTradeAnimByte
|
|
ret
|
|
; 108689
|
|
|
|
MobileTradeAnim_10: ; 108689
|
|
callba DeinitializeAllSprites
|
|
call ClearBGPalettes
|
|
call ClearSprites
|
|
call ClearTileMap
|
|
xor a
|
|
ld [hBGMapMode], a
|
|
call DisableLCD
|
|
call MobileTradeAnim_ClearBGMap
|
|
ld a, $1
|
|
ld [rVBK], a
|
|
ld hl, LZ_108da7
|
|
ld de, VTiles2
|
|
call Decompress
|
|
ld a, $0
|
|
ld [rVBK], a
|
|
ld hl, LZ_108d27
|
|
ld de, VTiles0 tile $20
|
|
call Decompress
|
|
call Function108c80
|
|
call Function108c6d
|
|
call EnableLCD
|
|
ld a, $c
|
|
ld [hSCX], a
|
|
ld a, $78
|
|
ld [hSCY], a
|
|
ld a, $7
|
|
ld [hWX], a
|
|
ld a, $90
|
|
ld [hWY], a
|
|
ld a, [rSVBK]
|
|
push af
|
|
ld a, $5
|
|
ld [rSVBK], a
|
|
ld hl, Palette_109107
|
|
ld de, UnknBGPals
|
|
ld bc, 8 palettes
|
|
call CopyBytes
|
|
pop af
|
|
ld [rSVBK], a
|
|
call Function108d07
|
|
call Function108af4
|
|
call GetMobileTradeAnimByte
|
|
ret
|
|
; 1086f4
|
|
|
|
MobileTradeAnim_11: ; 1086f4
|
|
call ClearBGPalettes
|
|
call ClearSprites
|
|
call ClearTileMap
|
|
xor a
|
|
ld [hBGMapMode], a
|
|
call DisableLCD
|
|
ld a, $1
|
|
ld [rVBK], a
|
|
ld hl, LZ_108da7
|
|
ld de, VTiles2
|
|
call Decompress
|
|
ld a, $0
|
|
ld [rVBK], a
|
|
ld hl, LZ_108d27
|
|
ld de, VTiles0 tile $20
|
|
call Decompress
|
|
call Function108c80
|
|
call Function108c6d
|
|
call EnableLCD
|
|
ld a, $80
|
|
ld [hSCX], a
|
|
ld a, $90
|
|
ld [hSCY], a
|
|
ld a, $7
|
|
ld [hWX], a
|
|
ld a, $90
|
|
ld [hWY], a
|
|
ld a, [rSVBK]
|
|
push af
|
|
ld a, $5
|
|
ld [rSVBK], a
|
|
ld hl, Palette_109107
|
|
ld de, UnknBGPals
|
|
ld bc, 8 palettes
|
|
call CopyBytes
|
|
pop af
|
|
ld [rSVBK], a
|
|
call Function108d07
|
|
call Function108af4
|
|
call Function108b5a
|
|
ld a, $e0
|
|
ld [hSCX], a
|
|
ld de, MUSIC_EVOLUTION
|
|
call PlayMusic2
|
|
call GetMobileTradeAnimByte
|
|
ret
|
|
; 108763
|
|
|
|
MobileTradeAnim_GiveTrademon1: ; 108763
|
|
ld de, SFX_GIVE_TRADEMON
|
|
call PlaySFX
|
|
ld c, 40
|
|
ld hl, BGPals + 6 palettes
|
|
call Function1082f0
|
|
call Function108af4
|
|
.loop
|
|
ld a, [hSCX]
|
|
cp $e0
|
|
jr z, .loop2
|
|
dec a
|
|
dec a
|
|
ld [hSCX], a
|
|
cp $f8
|
|
jr nz, .next
|
|
depixel 10, 11, 4, 0
|
|
ld a, SPRITE_ANIM_INDEX_22
|
|
call _InitSpriteAnimStruct
|
|
|
|
.next
|
|
ld c, 1
|
|
call WaitMobileTradeSpriteAnims
|
|
jr .loop
|
|
|
|
.loop2
|
|
ld a, [hSCY]
|
|
cp $f8
|
|
jr z, .done
|
|
dec a
|
|
dec a
|
|
ld [hSCY], a
|
|
cp $40
|
|
jr z, .init
|
|
cp $30
|
|
jr z, .delete
|
|
cp $68
|
|
jr z, .replace
|
|
jr .next2
|
|
|
|
.init
|
|
depixel 10, 11, 4, 0
|
|
ld a, SPRITE_ANIM_INDEX_22
|
|
call _InitSpriteAnimStruct
|
|
xor a
|
|
call Function108ad4
|
|
jr .next2
|
|
|
|
.delete
|
|
call MobileTradeAnim_DeleteSprites
|
|
jr .next2
|
|
|
|
.replace
|
|
call MobileTradeAnim_DeleteSprites
|
|
ld a, $1
|
|
call Function108ad4
|
|
.next2
|
|
ld c, 1
|
|
call WaitMobileTradeSpriteAnims
|
|
jr .loop2
|
|
|
|
.done
|
|
call MobileTradeAnim_Next
|
|
ret
|
|
; 1087cf
|
|
|
|
MobileTradeAnim_GiveTrademon2: ; 1087cf
|
|
ld c, 40
|
|
ld hl, BGPals + 1 palettes
|
|
call Function1082f0
|
|
call Function108af4
|
|
call Function108b5a
|
|
depixel 9, 10, 2, 0
|
|
ld a, SPRITE_ANIM_INDEX_25
|
|
call _InitSpriteAnimStruct
|
|
ld de, SFX_FORESIGHT
|
|
call PlaySFX
|
|
ld c, 10
|
|
call WaitMobileTradeSpriteAnims
|
|
xor a
|
|
ld [wcf64], a
|
|
depixel 9, 10, 2, 0
|
|
ld a, SPRITE_ANIM_INDEX_23
|
|
call _InitSpriteAnimStruct
|
|
.loop
|
|
ld a, [hSCY]
|
|
cp $90
|
|
jr z, .done
|
|
sub $8
|
|
ld [hSCY], a
|
|
ld c, 1
|
|
call WaitMobileTradeSpriteAnims
|
|
jr .loop
|
|
|
|
.done
|
|
call GetMobileTradeAnimByte
|
|
ret
|
|
; 108811
|
|
|
|
MobileTradeAnim_05: ; 108811
|
|
ld c, 40
|
|
call WaitMobileTradeSpriteAnims
|
|
ld a, $1
|
|
ld [wcf64], a
|
|
ld de, SFX_SHARPEN
|
|
call PlaySFX
|
|
ld c, 60
|
|
call WaitMobileTradeSpriteAnims
|
|
depixel 30, 10, 2, 0
|
|
ld a, SPRITE_ANIM_INDEX_24
|
|
call _InitSpriteAnimStruct
|
|
call GetMobileTradeAnimByte
|
|
ld de, SFX_THROW_BALL
|
|
call PlaySFX
|
|
ret
|
|
; 108838
|
|
|
|
MobileTradeAnim_06: ; 108838
|
|
ld c, 40
|
|
call WaitMobileTradeSpriteAnims
|
|
ld a, $1
|
|
ld [wcf64], a
|
|
ld de, SFX_SHARPEN
|
|
call PlaySFX
|
|
call GetMobileTradeAnimByte
|
|
ret
|
|
; 10884c
|
|
|
|
MobileTradeAnim_07: ; 10884c
|
|
ld c, 80
|
|
call DelayFrames
|
|
depixel 30, 10, 2, 0
|
|
ld a, SPRITE_ANIM_INDEX_24
|
|
call _InitSpriteAnimStruct
|
|
call GetMobileTradeAnimByte
|
|
ld de, SFX_THROW_BALL
|
|
call PlaySFX
|
|
ret
|
|
; 108863
|
|
|
|
MobileTradeAnim_GetTrademon1: ; 108863
|
|
ld c, 40
|
|
call WaitMobileTradeSpriteAnims
|
|
.loop
|
|
ld a, [hSCY]
|
|
cp $f8
|
|
jr z, .done
|
|
add $8
|
|
ld [hSCY], a
|
|
ld c, 1
|
|
call WaitMobileTradeSpriteAnims
|
|
jr .loop
|
|
|
|
.done
|
|
callba DeinitializeAllSprites
|
|
depixel 9, 10, 2, 0
|
|
ld a, SPRITE_ANIM_INDEX_25
|
|
call _InitSpriteAnimStruct
|
|
ld de, SFX_GLASS_TING_2
|
|
call PlaySFX
|
|
call Function108af4
|
|
call MobileTradeAnim_Next
|
|
ret
|
|
; 108894
|
|
|
|
MobileTradeAnim_GetTrademon2: ; 108894
|
|
ld c, 20
|
|
ld hl, BGPals + 1 palettes
|
|
call Function1082fa
|
|
ld de, SFX_GIVE_TRADEMON
|
|
call PlaySFX
|
|
ld c, 20
|
|
ld hl, BGPals + 1 palettes
|
|
call Function1082fa
|
|
call Function108af4
|
|
.asm_1088ad
|
|
ld a, [hSCY]
|
|
cp $78
|
|
jr z, .asm_1088ee
|
|
inc a
|
|
inc a
|
|
ld [hSCY], a
|
|
cp $30
|
|
jr z, .asm_1088c5
|
|
cp $40
|
|
jr z, .asm_1088dd
|
|
cp $68
|
|
jr z, .asm_1088cf
|
|
jr .asm_1088e7
|
|
|
|
.asm_1088c5
|
|
depixel 10, 11, 4, 0
|
|
ld a, SPRITE_ANIM_INDEX_22
|
|
call _InitSpriteAnimStruct
|
|
jr .asm_1088e7
|
|
|
|
.asm_1088cf
|
|
depixel 10, 11, 4, 0
|
|
ld a, SPRITE_ANIM_INDEX_22
|
|
call _InitSpriteAnimStruct
|
|
xor a
|
|
call Function108ad4
|
|
jr .asm_1088e7
|
|
|
|
.asm_1088dd
|
|
call MobileTradeAnim_DeleteSprites
|
|
ld a, $1
|
|
call Function108ad4
|
|
jr .asm_1088e7
|
|
|
|
.asm_1088e7
|
|
ld c, 1
|
|
call WaitMobileTradeSpriteAnims
|
|
jr .asm_1088ad
|
|
|
|
.asm_1088ee
|
|
ld a, [hSCX]
|
|
cp $c
|
|
jr z, .asm_108906
|
|
inc a
|
|
inc a
|
|
ld [hSCX], a
|
|
cp -8
|
|
jr nz, .asm_1088e7
|
|
call MobileTradeAnim_DeleteSprites
|
|
ld c, 1
|
|
call WaitMobileTradeSpriteAnims
|
|
jr .asm_1088ee
|
|
|
|
.asm_108906
|
|
call MobileTradeAnim_Next
|
|
ret
|
|
; 10890a
|
|
|
|
MobileTradeAnim_GetTrademon3: ; 10890a
|
|
ld c, 40
|
|
ld hl, BGPals + 6 palettes
|
|
call Function1082f0
|
|
call Function108af4
|
|
call GetMobileTradeAnimByte
|
|
ret
|
|
; 108919
|
|
|
|
MobileTradeAnim_0f: ; 108919
|
|
ld c, 40
|
|
call WaitMobileTradeSpriteAnims
|
|
callba DeinitializeAllSprites
|
|
call ClearBGPalettes
|
|
call ClearSprites
|
|
call ClearTileMap
|
|
call DisableLCD
|
|
call MobileTradeAnim_ClearVTiles
|
|
call MobileTradeAnim_ClearBGMap
|
|
call EnableLCD
|
|
call GetMobileTradeAnimByte
|
|
ret
|
|
; 10893d
|
|
|
|
MobileTradeAnim_FadeToBlack: ; 10893d
|
|
.loop
|
|
ld a, [rBGP]
|
|
and a
|
|
jr z, .blank
|
|
sla a
|
|
sla a
|
|
call DmgToCgbBGPals
|
|
call DmgToCgbObjPal0
|
|
ld c, 4
|
|
call DelayFrames
|
|
jr .loop
|
|
|
|
.blank
|
|
xor a
|
|
call DmgToCgbBGPals
|
|
call DmgToCgbObjPal0
|
|
call GetMobileTradeAnimByte
|
|
ret
|
|
; 10895e
|
|
|
|
Function10895e: ; 10895e
|
|
ld de, VTiles0 tile $30
|
|
jr asm_108966
|
|
|
|
Function108963:
|
|
ld de, VTiles2 tile $31
|
|
asm_108966
|
|
call DelayFrame
|
|
ld hl, VTiles2
|
|
lb bc, $a, $31 ; $a is the bank of ?????
|
|
call Request2bpp
|
|
call WaitTop
|
|
call MobileTradeAnim_ClearTilemap
|
|
hlcoord 7, 2
|
|
xor a
|
|
ld [hGraphicStartTile], a
|
|
lb bc, 7, 7
|
|
predef PlaceGraphic
|
|
call WaitBGMap
|
|
ret
|
|
; 10898a
|
|
|
|
Function10898a: ; 10898a
|
|
ld de, VTiles2
|
|
call MobileTradeAnim_GetFrontpic
|
|
call WaitTop
|
|
call MobileTradeAnim_ClearTilemap
|
|
hlcoord 7, 2
|
|
xor a
|
|
ld [hGraphicStartTile], a
|
|
lb bc, 7, 7
|
|
predef PlaceGraphic
|
|
call WaitBGMap
|
|
ret
|
|
; 1089a8
|
|
|
|
MobileTradeAnim_DisplayMonToBeSent: ; 1089a8
|
|
ld de, wPlayerTrademonSpecies
|
|
ld a, [de]
|
|
cp EGG
|
|
jr z, MobileTradeAnim_DisplayEggData
|
|
call MobileTradeAnim_LoadMonTemplate
|
|
ld de, wPlayerTrademonSpecies
|
|
call MobileTradeAnim_MonDisplay_PrintSpeciesNumber
|
|
ld de, wPlayerTrademonSpeciesName
|
|
call MobileTradeAnim_MonDisplay_PrintSpeciesName
|
|
ld a, [wPlayerTrademonCaughtData]
|
|
ld de, wPlayerTrademonOTName
|
|
call MobileTradeAnim_MonDisplay_PrintOTNameAndGender
|
|
ld de, wPlayerTrademonID
|
|
call MobileTradeAnim_MonDisplay_PrintIDNumber
|
|
call MobileTradeAnim_MonDisplay_UpdateBGMap
|
|
ret
|
|
|
|
MobileTradeAnim_DisplayReceivedMon:
|
|
ld de, wOTTrademonSpecies
|
|
ld a, [de]
|
|
cp EGG
|
|
jr z, MobileTradeAnim_DisplayEggData
|
|
call MobileTradeAnim_LoadMonTemplate
|
|
ld de, wOTTrademonSpecies
|
|
call MobileTradeAnim_MonDisplay_PrintSpeciesNumber
|
|
ld de, wOTTrademonSpeciesName
|
|
call MobileTradeAnim_MonDisplay_PrintSpeciesName
|
|
ld a, [wOTTrademonCaughtData]
|
|
ld de, wOTTrademonOTName
|
|
call MobileTradeAnim_MonDisplay_PrintOTNameAndGender
|
|
ld de, wOTTrademonID
|
|
call MobileTradeAnim_MonDisplay_PrintIDNumber
|
|
call MobileTradeAnim_MonDisplay_UpdateBGMap
|
|
ret
|
|
|
|
MobileTradeAnim_DisplayEggData
|
|
call WaitTop
|
|
call MobileTradeAnim_ClearTilemap
|
|
ld a, VBGMap1 / $100
|
|
ld [hBGMapAddress + 1], a
|
|
hlcoord 5, 0
|
|
ld b, 6
|
|
ld c, 9
|
|
call TextBox
|
|
hlcoord 6, 2
|
|
ld de, .EggTemplate
|
|
call PlaceString
|
|
call MobileTradeAnim_MonDisplay_UpdateBGMap
|
|
ret
|
|
; 108a1d
|
|
|
|
.EggTemplate: ; 108a1d
|
|
db "タマゴ"
|
|
next "おや/?????"
|
|
next "<ID>№·?????"
|
|
db "@"
|
|
; 108a33
|
|
|
|
Function108a33: ; 108a33
|
|
call WaitTop
|
|
call MobileTradeAnim_ClearTilemap
|
|
ld a, VBGMap1 / $100
|
|
ld [hBGMapAddress + 1], a
|
|
hlcoord 5, 0
|
|
ld b, 6
|
|
ld c, 9
|
|
call TextBox
|
|
hlcoord 7, 4
|
|
ld de, .OddEgg
|
|
call PlaceString
|
|
call MobileTradeAnim_MonDisplay_UpdateBGMap
|
|
ret
|
|
; 108a54
|
|
|
|
.OddEgg: ; 108a54
|
|
db "なぞのタマゴ@"
|
|
; 108a5b
|
|
|
|
MobileTradeAnim_LoadMonTemplate: ; 108a5b
|
|
call WaitTop
|
|
call MobileTradeAnim_ClearTilemap
|
|
ld a, VBGMap1 / $100
|
|
ld [hBGMapAddress + 1], a
|
|
hlcoord 4, 0
|
|
ld b, 6
|
|
ld c, 10
|
|
call TextBox
|
|
hlcoord 5, 0
|
|
ld de, .MonTemplate
|
|
call PlaceString
|
|
ret
|
|
; 108a79
|
|
|
|
.MonTemplate: ; 108a79
|
|
db "─ №·"
|
|
next ""
|
|
next "おや/"
|
|
next "<ID>№·"
|
|
db "@"
|
|
; 108a87
|
|
|
|
MobileTradeAnim_MonDisplay_UpdateBGMap: ; 108a87
|
|
call WaitBGMap
|
|
call WaitTop
|
|
ld a, VBGMap0 / $100
|
|
ld [hBGMapAddress + 1], a
|
|
ret
|
|
; 108a92
|
|
|
|
MobileTradeAnim_MonDisplay_PrintSpeciesNumber: ; 108a92
|
|
hlcoord 9, 0
|
|
lb bc, PRINTNUM_LEADINGZEROS | 1, 3
|
|
call PrintNum
|
|
ret
|
|
; 108a9c
|
|
|
|
MobileTradeAnim_MonDisplay_PrintSpeciesName: ; 108a9c
|
|
hlcoord 5, 2
|
|
call PlaceString
|
|
ret
|
|
; 108aa3
|
|
|
|
MobileTradeAnim_MonDisplay_PrintOTNameAndGender: ; 108aa3
|
|
cp $3
|
|
jr c, .got_gender
|
|
xor a
|
|
.got_gender
|
|
push af
|
|
hlcoord 8, 4
|
|
call PlaceString
|
|
inc bc
|
|
pop af
|
|
ld hl, .GenderChars
|
|
ld d, 0
|
|
ld e, a
|
|
add hl, de
|
|
ld a, [hl]
|
|
ld [bc], a
|
|
ret
|
|
; 108abb
|
|
|
|
.GenderChars: ; 108abb
|
|
db " "
|
|
db "♂"
|
|
db "♀"
|
|
; 108abe
|
|
|
|
MobileTradeAnim_MonDisplay_PrintIDNumber: ; 108abe
|
|
hlcoord 8, 6
|
|
lb bc, PRINTNUM_LEADINGZEROS | 2, 5
|
|
call PrintNum
|
|
ret
|
|
; 108ac8
|
|
|
|
MobileTradeAnim_ClearTilemap: ; 108ac8
|
|
hlcoord 0, 0
|
|
ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
|
|
ld a, " "
|
|
call ByteFill
|
|
ret
|
|
; 108ad4
|
|
|
|
Function108ad4: ; 108ad4
|
|
and a
|
|
jr z, .asm_108adc
|
|
ld de, GFX_1092c7
|
|
jr .asm_108adf
|
|
|
|
.asm_108adc
|
|
ld de, GFX_1091c7
|
|
.asm_108adf
|
|
ld a, $1
|
|
ld [rVBK], a
|
|
ld hl, VTiles2 tile $4a
|
|
lb bc, BANK(GFX_1092c7), 16
|
|
call Get2bpp_2
|
|
call DelayFrame
|
|
ld a, $0
|
|
ld [rVBK], a
|
|
ret
|
|
; 108af4
|
|
|
|
Function108af4: ; 108af4
|
|
ld a, [rSVBK]
|
|
push af
|
|
ld a, $5
|
|
ld [rSVBK], a
|
|
ld a, [wcf65]
|
|
and $1
|
|
jr z, .copy_palette_109147
|
|
ld hl, Palette_109187
|
|
ld de, UnknOBPals
|
|
ld bc, 8 palettes
|
|
call CopyBytes
|
|
ld hl, Palette_109187
|
|
ld de, OBPals
|
|
ld bc, 8 palettes
|
|
call CopyBytes
|
|
jr .done_copy
|
|
|
|
.copy_palette_109147
|
|
ld hl, Palette_109147
|
|
ld de, UnknOBPals
|
|
ld bc, 8 palettes
|
|
call CopyBytes
|
|
ld hl, Palette_109147
|
|
ld de, OBPals
|
|
ld bc, 8 palettes
|
|
call CopyBytes
|
|
|
|
.done_copy
|
|
pop af
|
|
ld [rSVBK], a
|
|
ld a, %11100100 ; 3,2,1,0
|
|
call DmgToCgbObjPal0
|
|
ld a, %11100100 ; 3,2,1,0
|
|
call DmgToCgbBGPals
|
|
call DelayFrame
|
|
ret
|
|
; 108b45
|
|
|
|
Function108b45: ; 108b45
|
|
ld a, [rSVBK]
|
|
push af
|
|
ld a, $5
|
|
ld [rSVBK], a
|
|
ld de, (31 << 10) + (31 << 5) + 31 ; $7fff
|
|
ld hl, UnknBGPals
|
|
ld a, e
|
|
ld [hli], a
|
|
ld d, a
|
|
ld [hli], a
|
|
pop af
|
|
ld [rSVBK], a
|
|
ret
|
|
; 108b5a
|
|
|
|
Function108b5a: ; 108b5a
|
|
ld a, [rSVBK]
|
|
push af
|
|
ld a, $5
|
|
ld [rSVBK], a
|
|
ld de, (15 << 10) + (31 << 5) + 18 ; $3ff2
|
|
ld hl, BGPals + 4 palettes
|
|
ld c, $10
|
|
.loop
|
|
ld a, e
|
|
ld [hli], a
|
|
ld a, d
|
|
ld [hli], a
|
|
dec c
|
|
jr nz, .loop
|
|
pop af
|
|
ld [rSVBK], a
|
|
ld a, $1
|
|
ld [hCGBPalUpdate], a
|
|
ret
|
|
; 108b78
|
|
|
|
Function108b78: ; 108b78
|
|
ld a, [rSVBK]
|
|
push af
|
|
ld a, $5
|
|
ld [rSVBK], a
|
|
ld a, c
|
|
and $2
|
|
jr z, .Orange
|
|
ld de, (31 << 10) + (31 << 5) + 31 ; $7fff
|
|
jr .load_pal
|
|
|
|
.Orange:
|
|
ld de, ( 1 << 10) + (15 << 5) + 31 ; $05ff
|
|
.load_pal
|
|
ld a, e
|
|
ld [hli], a
|
|
ld a, d
|
|
ld [hld], a
|
|
pop af
|
|
ld [rSVBK], a
|
|
ld a, $1
|
|
ld [hCGBPalUpdate], a
|
|
ret
|
|
; 108b98
|
|
|
|
Palette_108b98:
|
|
; removed
|
|
|
|
Function108b98: ; 108b98
|
|
ld d, a
|
|
ld a, [rSVBK]
|
|
push af
|
|
ld a, $5
|
|
ld [rSVBK], a
|
|
ld a, [wcf65]
|
|
and $1
|
|
xor d
|
|
jr z, .asm_108bad
|
|
ld hl, Palette_108b98 + 1 palettes
|
|
jr .asm_108bb0
|
|
|
|
.asm_108bad
|
|
ld hl, Palette_108b98
|
|
.asm_108bb0
|
|
ld de, UnknBGPals + 7 palettes
|
|
ld bc, 8 palettes
|
|
call CopyBytes
|
|
pop af
|
|
ld [rSVBK], a
|
|
ret
|
|
; 108bbd
|
|
|
|
MobileTradeAnim_DeleteSprites: ; 108bbd
|
|
callba DeinitializeAllSprites
|
|
call ClearSprites
|
|
ret
|
|
; 108bc7
|
|
|
|
Function108bc7: ; 108bc7 (42:4bc7)
|
|
ld a, [wcf64]
|
|
and a
|
|
ret z
|
|
ld hl, SPRITEANIMSTRUCT_YCOORD
|
|
add hl, bc
|
|
ld a, [hl]
|
|
cp -1 * 8 - 6
|
|
jr z, .delete
|
|
sub 1 * 8
|
|
ld [hl], a
|
|
ret
|
|
|
|
.delete
|
|
callba DeinitializeSprite
|
|
ret
|
|
|
|
Function108be0: ; 108be0 (42:4be0)
|
|
ld hl, SPRITEANIMSTRUCT_YCOORD
|
|
add hl, bc
|
|
ld a, [hl]
|
|
cp 9 * 8 + 2
|
|
ret z
|
|
add 1 * 8
|
|
ld [hl], a
|
|
ret
|
|
; 108bec (42:4bec)
|
|
|
|
Function108bec: ; 108bec
|
|
ld a, $90
|
|
ld [hWY], a
|
|
ld hl, .PlayerWillTradeMon
|
|
call PrintText
|
|
ld c, 80
|
|
call DelayFrames
|
|
ld hl, .ForPartnersMon
|
|
call PrintText
|
|
ld c, 80
|
|
call DelayFrames
|
|
ret
|
|
; 108c07
|
|
|
|
.PlayerWillTradeMon: ; 0x108c07
|
|
text_jump UnknownText_0x1bc787
|
|
db "@"
|
|
; 0x108c0c
|
|
|
|
.ForPartnersMon: ; 0x108c0c
|
|
text_jump UnknownText_0x1bc79d
|
|
db "@"
|
|
; 0x108c11
|
|
|
|
.UnusedTextPlayersMonTrade: ; 0x108c11
|
|
text_jump UnknownText_0x1bc7b0
|
|
db "@"
|
|
; 0x108c16
|
|
|
|
Function108c16: ; 108c16
|
|
ld a, $90
|
|
ld [hWY], a
|
|
ld hl, .TakeGoodCareOfMon
|
|
call PrintText
|
|
ld c, 80
|
|
call DelayFrames
|
|
ret
|
|
; 108c26
|
|
|
|
.TakeGoodCareOfMon: ; 0x108c26
|
|
text_jump UnknownText_0x1bc7c3
|
|
db "@"
|
|
; 0x108c2b
|
|
|
|
Function108c2b: ; 108c2b
|
|
ld a, $90
|
|
ld [hWY], a
|
|
ld hl, .PlayersMonTrade
|
|
call PrintText
|
|
ld c, 80
|
|
call DelayFrames
|
|
ret
|
|
; 108c3b
|
|
|
|
.PlayersMonTrade: ; 0x108c3b
|
|
text_jump UnknownText_0x1bc7dd
|
|
db "@"
|
|
; 0x108c40
|
|
|
|
Function108c40: ; 108c40
|
|
ld a, $90
|
|
ld [hWY], a
|
|
ld a, [wcf65]
|
|
and %10000000
|
|
jr z, .Getmon
|
|
ld hl, .CameBack
|
|
call PrintText
|
|
ld c, 80
|
|
call DelayFrames
|
|
ret
|
|
|
|
.Getmon:
|
|
ld hl, .TakeGoodCareOf
|
|
call PrintText
|
|
ld c, 80
|
|
call DelayFrames
|
|
ret
|
|
; 108c63
|
|
|
|
.TakeGoodCareOf: ; 0x108c63
|
|
text_jump UnknownText_0x1bc7f0
|
|
db "@"
|
|
; 0x108c68
|
|
|
|
.CameBack: ; 0x108c68
|
|
text_jump UnknownText_0x1bc80a
|
|
db "@"
|
|
; 0x108c6d
|
|
|
|
Function108c6d: ; 108c6d
|
|
ld hl, LZ_108fe7
|
|
debgcoord 0, 0
|
|
call Decompress
|
|
ld hl, LZ_108fe7
|
|
debgcoord 0, 0, VBGMap1
|
|
call Decompress
|
|
ret
|
|
; 108c80
|
|
|
|
Function108c80: ; 108c80
|
|
ld a, $1
|
|
ld [rVBK], a
|
|
ld hl, LZ_1090a7
|
|
debgcoord 0, 0
|
|
call Decompress
|
|
ld hl, LZ_1090a7
|
|
debgcoord 0, 0, VBGMap1
|
|
call Decompress
|
|
ld a, $0
|
|
ld [rVBK], a
|
|
ret
|
|
; 108c9b
|
|
|
|
DebugMobileTrade: ; 108c9b
|
|
; localization error: NAME_LENGTH (11) should be 6 here
|
|
|
|
ld hl, .DebugTradeData
|
|
ld a, [hli]
|
|
ld [wPlayerTrademonSpecies], a
|
|
|
|
ld de, wPlayerTrademonSenderName
|
|
ld c, NAME_LENGTH
|
|
.your_name_loop
|
|
ld a, [hli]
|
|
ld [de], a
|
|
inc de
|
|
dec c
|
|
jr nz, .your_name_loop
|
|
|
|
ld de, wPlayerTrademonID
|
|
ld c, 2
|
|
.your_id_loop
|
|
ld a, [hli]
|
|
ld [de], a
|
|
inc de
|
|
dec c
|
|
jr nz, .your_id_loop
|
|
|
|
ld de, wPlayerTrademonOTName
|
|
ld c, NAME_LENGTH
|
|
.your_ot_loop
|
|
ld a, [hli]
|
|
ld [de], a
|
|
inc de
|
|
dec c
|
|
jr nz, .your_ot_loop
|
|
|
|
ld a, [hli]
|
|
ld [wOTTrademonSpecies], a
|
|
|
|
ld de, wOTTrademonSenderName
|
|
ld c, NAME_LENGTH
|
|
.their_name_loop
|
|
ld a, [hli]
|
|
ld [de], a
|
|
inc de
|
|
dec c
|
|
jr nz, .their_name_loop
|
|
|
|
ld de, wOTTrademonID
|
|
ld c, 2
|
|
.their_id_loop
|
|
ld a, [hli]
|
|
ld [de], a
|
|
inc de
|
|
dec c
|
|
jr nz, .their_id_loop
|
|
|
|
ld de, wOTTrademonOTName
|
|
ld c, NAME_LENGTH
|
|
.their_ot_loop
|
|
ld a, [hli]
|
|
ld [de], a
|
|
inc de
|
|
dec c
|
|
jr nz, .their_ot_loop
|
|
|
|
ret
|
|
; 108ce9
|
|
|
|
.DebugTradeData:
|
|
db VENUSAUR
|
|
db "ゲーフり@@"
|
|
dw $0123
|
|
db "かびーん@@"
|
|
db CHARIZARD
|
|
db "クりーチャ@"
|
|
dw $0456
|
|
db "マツミヤ@@"
|
|
; 108d07
|
|
|
|
Function108d07: ; 108d07
|
|
ld a, [wc74e]
|
|
and $7f
|
|
cp $8
|
|
jr c, .asm_108d12
|
|
ld a, $7
|
|
|
|
.asm_108d12
|
|
ld bc, 1 palettes
|
|
ld hl, Palette_1093c7
|
|
call AddNTimes
|
|
ld a, $5
|
|
ld de, UnknBGPals + 4 palettes
|
|
ld bc, 1 palettes
|
|
call FarCopyWRAM
|
|
ret
|
|
; 108d27
|
|
|
|
LZ_108d27:
|
|
INCBIN "gfx/unknown/108d27.2bpp.lz"
|
|
|
|
LZ_108da7:
|
|
INCBIN "gfx/unknown/108da7.2bpp.lz"
|
|
|
|
LZ_108fe7:
|
|
INCBIN "gfx/unknown/108fe7.tilemap.lz"
|
|
|
|
LZ_1090a7:
|
|
INCBIN "gfx/unknown/1090a7.tilemap.lz"
|
|
|
|
Palette_1090f7:
|
|
; unreferenced
|
|
RGB 31, 31, 31
|
|
RGB 0, 0, 0
|
|
|
|
RGB 31, 0, 25
|
|
RGB 0, 0, 0
|
|
|
|
RGB 31, 31, 31
|
|
RGB 0, 0, 0
|
|
|
|
RGB 9, 19, 31
|
|
RGB 0, 0, 0
|
|
|
|
Palette_109107:
|
|
RGB 18, 31, 15
|
|
RGB 20, 20, 20
|
|
RGB 11, 11, 11
|
|
RGB 0, 0, 0
|
|
|
|
RGB 31, 15, 1
|
|
RGB 14, 14, 31
|
|
RGB 12, 9, 31
|
|
RGB 0, 0, 0
|
|
|
|
RGB 18, 31, 15
|
|
RGB 14, 14, 31
|
|
RGB 12, 9, 31
|
|
RGB 0, 0, 0
|
|
|
|
RGB 18, 31, 15
|
|
RGB 20, 20, 20
|
|
RGB 11, 11, 11
|
|
RGB 0, 0, 0
|
|
|
|
RGB 18, 31, 15
|
|
RGB 31, 7, 9
|
|
RGB 18, 0, 1
|
|
RGB 0, 0, 0
|
|
|
|
RGB 18, 31, 15
|
|
RGB 20, 20, 20
|
|
RGB 11, 11, 11
|
|
RGB 0, 0, 0
|
|
|
|
RGB 31, 15, 1
|
|
RGB 18, 0, 30
|
|
RGB 9, 0, 17
|
|
RGB 0, 0, 0
|
|
|
|
RGB 18, 31, 15
|
|
RGB 18, 0, 30
|
|
RGB 9, 0, 17
|
|
RGB 0, 0, 0
|
|
|
|
Palette_109147:
|
|
RGB 31, 31, 31
|
|
RGB 31, 31, 12
|
|
RGB 31, 13, 12
|
|
RGB 0, 0, 0
|
|
|
|
RGB 31, 31, 31
|
|
RGB 31, 23, 15
|
|
RGB 31, 18, 7
|
|
RGB 31, 15, 0
|
|
|
|
RGB 31, 31, 31
|
|
RGB 20, 20, 20
|
|
RGB 11, 11, 11
|
|
RGB 0, 0, 0
|
|
|
|
RGB 31, 31, 31
|
|
RGB 31, 0, 25
|
|
RGB 31, 0, 25
|
|
RGB 0, 0, 0
|
|
|
|
RGB 31, 31, 31
|
|
RGB 9, 19, 31
|
|
RGB 9, 19, 31
|
|
RGB 0, 0, 0
|
|
|
|
RGB 31, 31, 31
|
|
RGB 0, 0, 0
|
|
RGB 0, 0, 0
|
|
RGB 0, 0, 0
|
|
|
|
RGB 31, 31, 31
|
|
RGB 0, 0, 0
|
|
RGB 0, 0, 0
|
|
RGB 0, 0, 0
|
|
|
|
RGB 31, 31, 31
|
|
RGB 0, 0, 0
|
|
RGB 0, 0, 0
|
|
RGB 0, 0, 0
|
|
|
|
Palette_109187:
|
|
RGB 31, 31, 31
|
|
RGB 31, 31, 12
|
|
RGB 31, 13, 12
|
|
RGB 0, 0, 0
|
|
|
|
RGB 31, 31, 31
|
|
RGB 31, 23, 15
|
|
RGB 31, 18, 7
|
|
RGB 31, 15, 0
|
|
|
|
RGB 31, 31, 31
|
|
RGB 20, 20, 20
|
|
RGB 11, 11, 11
|
|
RGB 0, 0, 0
|
|
|
|
RGB 31, 31, 31
|
|
RGB 9, 19, 31
|
|
RGB 9, 19, 31
|
|
RGB 0, 0, 0
|
|
|
|
RGB 31, 31, 31
|
|
RGB 31, 0, 25
|
|
RGB 31, 0, 25
|
|
RGB 0, 0, 0
|
|
|
|
RGB 31, 31, 31
|
|
RGB 0, 0, 0
|
|
RGB 0, 0, 0
|
|
RGB 0, 0, 0
|
|
|
|
RGB 31, 31, 31
|
|
RGB 0, 0, 0
|
|
RGB 0, 0, 0
|
|
RGB 0, 0, 0
|
|
|
|
RGB 31, 31, 31
|
|
RGB 0, 0, 0
|
|
RGB 0, 0, 0
|
|
RGB 0, 0, 0
|
|
|
|
GFX_1091c7:
|
|
INCBIN "gfx/unknown/1091c7.2bpp"
|
|
GFX_1092c7:
|
|
INCBIN "gfx/unknown/1092c7.2bpp"
|
|
|
|
Palette_1093c7:
|
|
RGB 18, 31, 15
|
|
RGB 4, 13, 31
|
|
RGB 0, 0, 31
|
|
RGB 0, 0, 0
|
|
|
|
RGB 18, 31, 15
|
|
RGB 31, 31, 0
|
|
RGB 31, 15, 0
|
|
RGB 0, 0, 0
|
|
|
|
RGB 18, 31, 15
|
|
RGB 9, 24, 0
|
|
RGB 2, 16, 0
|
|
RGB 0, 0, 0
|
|
|
|
RGB 18, 31, 15
|
|
RGB 31, 7, 9
|
|
RGB 18, 0, 1
|
|
RGB 0, 0, 0
|
|
|
|
RGB 18, 31, 15
|
|
RGB 28, 5, 31
|
|
RGB 17, 0, 17
|
|
RGB 0, 0, 0
|
|
|
|
RGB 18, 31, 15
|
|
RGB 9, 9, 9
|
|
RGB 4, 4, 4
|
|
RGB 0, 0, 0
|
|
|
|
RGB 18, 31, 15
|
|
RGB 31, 13, 21
|
|
RGB 27, 7, 12
|
|
RGB 0, 0, 0
|
|
|
|
RGB 18, 31, 15
|
|
RGB 21, 20, 20
|
|
RGB 14, 14, 31
|
|
RGB 0, 0, 0
|