summaryrefslogtreecommitdiff
path: root/mobile/mobile_42.asm
diff options
context:
space:
mode:
Diffstat (limited to 'mobile/mobile_42.asm')
-rw-r--r--mobile/mobile_42.asm2009
1 files changed, 2009 insertions, 0 deletions
diff --git a/mobile/mobile_42.asm b/mobile/mobile_42.asm
new file mode 100644
index 000000000..98bbcf485
--- /dev/null
+++ b/mobile/mobile_42.asm
@@ -0,0 +1,2009 @@
+MobileTradeAnimation_SendGivemonToGTS: ; 108000
+ ld a, $80
+ ld [wcf65], a
+ ld de, .TradeAnimScript
+ jp RunMobileTradeAnim_NoFrontpics
+; 10800b
+
+.TradeAnimScript:
+ mobiletradeanim_showgtsgivemon
+ mobiletradeanim_12
+ mobiletradeanim_10
+ mobiletradeanim_sendmon
+ mobiletradeanim_06
+ mobiletradeanim_0f
+ mobiletradeanim_end
+
+MobileTradeAnimation_RetrieveGivemonFromGTS:
+ ld a, $80
+ jr asm_108018
+
+MobileTradeAnimation_ReceiveGetmonFromGTS: ; 108016
+ ld a, $0
+asm_108018:
+ ld [wcf65], a
+ ld de, .TradeAnimScript
+ jp RunMobileTradeAnim_NoFrontpics
+; 108021
+
+.TradeAnimScript:
+ mobiletradeanim_11
+ mobiletradeanim_07
+ mobiletradeanim_receivemon
+ mobiletradeanim_showgtsgetmon
+ mobiletradeanim_end
+
+Function108026: ; 108026
+ ld a, $0
+ jr asm_10802c
+
+Function10802a: ; 10802a
+ ld a, $1
+
+asm_10802c:
+ ld [wcf65], a
+ ld de, .TradeAnimScript
+ jp RunMobileTradeAnim_Frontpics
+; 108035
+
+.TradeAnimScript: ; trade
+ mobiletradeanim_showgivemon
+ mobiletradeanim_12
+ mobiletradeanim_02
+ mobiletradeanim_sendmon
+ mobiletradeanim_05
+ mobiletradeanim_receivemon
+ mobiletradeanim_showgetmon
+ mobiletradeanim_end
+
+Function10803d: ; 10803d
+ ld a, $0
+ ld [wcf65], a
+ ld de, .TradeAnimScript
+ jp RunMobileTradeAnim_NoFrontpics
+; 108048
+
+.TradeAnimScript:
+ mobiletradeanim_11
+ mobiletradeanim_07
+ mobiletradeanim_receivemon
+ mobiletradeanim_showoddegg
+ mobiletradeanim_end
+
+Function10804d: ; 10804d
+ ld a, $0
+ ld [wcf65], a
+ ld de, .TradeAnimScript
+ jp RunMobileTradeAnim_NoFrontpics
+; 108058
+
+.TradeAnimScript:
+ mobiletradeanim_11
+ mobiletradeanim_showgtsgetmon
+ mobiletradeanim_end
+
+RunMobileTradeAnim_Frontpics: ; 10805b
+ ld hl, wTradeAnimAddress
+ ld [hl], e
+ inc hl
+ ld [hl], d
+ ld a, [hMapAnims]
+ push af
+ xor a
+ ld [hMapAnims], a
+ ld hl, VramState
+ ld a, [hl]
+ push af
+ res 0, [hl]
+ ld hl, Options
+ ld a, [hl]
+ push af
+ set NO_TEXT_SCROLL, [hl]
+ call Function1080b7
+.loop
+ call MobileTradeAnim_JumptableLoop
+ jr nc, .loop
+ pop af
+ ld [Options], a
+ pop af
+ ld [VramState], a
+ pop af
+ ld [hMapAnims], a
+ ret
+; 108089
+
+RunMobileTradeAnim_NoFrontpics: ; 108089
+ ld hl, wTradeAnimAddress
+ ld [hl], e
+ inc hl
+ ld [hl], d
+ ld a, [hMapAnims]
+ push af
+ xor a
+ ld [hMapAnims], a
+ ld hl, VramState
+ ld a, [hl]
+ push af
+ res 0, [hl]
+ ld hl, Options
+ ld a, [hl]
+ push af
+ set NO_TEXT_SCROLL, [hl]
+ call Function108157
+.loop
+ call MobileTradeAnim_JumptableLoop
+ jr nc, .loop
+ pop af
+ ld [Options], a
+ pop af
+ ld [VramState], a
+ pop af
+ ld [hMapAnims], a
+ ret
+; 1080b7
+
+Function1080b7: ; 1080b7
+ xor a
+ ld [wJumptableIndex], a
+ call ClearBGPalettes
+ call ClearSprites
+ call ClearTileMap
+ call DisableLCD
+ call MobileTradeAnim_ClearVTiles
+ call MobileTradeAnim_ClearBGMap
+ call LoadStandardFont
+ call LoadFontsBattleExtra
+
+ ld a, $1
+ ld [rVBK], a
+ ld hl, LZ_108da7
+ ld de, VTiles2
+ call Decompress
+
+ ld a, $0
+ ld [rVBK], a
+ ld hl, LZ_108d27
+ ld de, VTiles0 tile $20
+ call Decompress
+
+ call EnableLCD
+
+ xor a
+ ld [hSCX], a
+ ld [hSCY], a
+ ld a, $7
+ ld [hWX], a
+ ld a, $90
+ ld [hWY], a
+ callba ClearSpriteAnims
+
+ call DelayFrame
+
+ ld de, TradeBallGFX
+ ld hl, VTiles0
+ lb bc, BANK(TradeBallGFX), $06
+ call Request2bpp
+
+ ld de, TradePoofGFX
+ ld hl, VTiles0 tile $06
+ lb bc, BANK(TradePoofGFX), $0c
+ call Request2bpp
+
+ xor a
+ ld hl, wSpriteAnimDict
+ ld [hli], a
+ ld [hl], $0
+
+ ld a, [wPlayerTrademonSpecies]
+ ld hl, wPlayerTrademonDVs
+ ld de, VTiles0 tile $30
+ call MobileTradeAnim_GetFrontpic
+
+ ld a, [wOTTrademonSpecies]
+ ld hl, wOTTrademonDVs
+ ld de, VTiles2 tile $31
+ call MobileTradeAnim_GetFrontpic
+
+ ld a, [wPlayerTrademonSpecies]
+ ld de, wPlayerTrademonSpeciesName
+ call MobileTradeAnim_InitSpeciesName
+
+ ld a, [wOTTrademonSpecies]
+ ld de, wOTTrademonSpeciesName
+ call MobileTradeAnim_InitSpeciesName
+
+ xor a
+ call Function108b98
+ call Function108af4
+ ret
+; 108157
+
+Function108157: ; 108157
+ xor a
+ ld [wJumptableIndex], a
+ call ClearBGPalettes
+ call ClearSprites
+ call ClearTileMap
+ call DisableLCD
+ call MobileTradeAnim_ClearVTiles
+ call MobileTradeAnim_ClearBGMap
+ call LoadStandardFont
+ call LoadFontsBattleExtra
+ call EnableLCD
+ xor a
+ ld [hSCX], a
+ ld [hSCY], a
+ ld a, $7
+ ld [hWX], a
+ ld a, $90
+ ld [hWY], a
+ callba ClearSpriteAnims
+ xor a
+ ld hl, wSpriteAnimDict
+ ld [hli], a
+ ld [hl], $0
+ call DelayFrame
+ ld a, [wPlayerTrademonSpecies]
+ ld de, wPlayerTrademonSpeciesName
+ call MobileTradeAnim_InitSpeciesName
+ ld a, [wOTTrademonSpecies]
+ ld de, wOTTrademonSpeciesName
+ call MobileTradeAnim_InitSpeciesName
+ xor a
+ call Function108b98
+ call Function108af4
+ ret
+; 1081ad
+
+MobileTradeAnim_ClearVTiles: ; 1081ad
+ ld a, $1
+ ld [rVBK], a
+ ld hl, VTiles0
+ ld bc, 3 * $80 tiles
+ xor a
+ call ByteFill
+ ld a, $0
+ ld [rVBK], a
+ ld hl, VTiles0
+ ld bc, 3 * $80 tiles
+ xor a
+ call ByteFill
+ ret
+; 1081ca
+
+MobileTradeAnim_ClearBGMap: ; 1081ca
+ ld a, $1
+ ld [rVBK], a
+ hlbgcoord 0, 0
+ ld bc, 2 * BG_MAP_HEIGHT * BG_MAP_WIDTH
+ ld a, $0
+ call ByteFill
+ ld a, $0
+ ld [rVBK], a
+ hlbgcoord 0, 0
+ ld bc, 2 * BG_MAP_HEIGHT * BG_MAP_WIDTH
+ ld a, $7f
+ call ByteFill
+ ret
+; 1081e9
+
+MobileTradeAnim_GetFrontpic: ; 1081e9
+ push de
+ push af
+ predef GetUnownLetter
+ pop af
+ ld [CurPartySpecies], a
+ ld [CurSpecies], a
+ call GetBaseData
+ pop de
+ predef GetFrontpic
+ ret
+; 108201
+
+Function108201: ; 108201
+ push de
+ push af
+ predef GetUnownLetter
+ pop af
+ ld [CurPartySpecies], a
+ ld [CurSpecies], a
+ call GetBaseData
+ pop de
+ predef FrontpicPredef
+ ret
+; 108219
+
+Function108219: ; 108219
+ ld [CurPartySpecies], a
+ hlcoord 7, 2
+ ld d, $0
+ ld e, ANIM_MON_TRADE
+ predef AnimateFrontpic
+ ret
+; 108229
+
+Function108229: ; 108229
+ ld [CurPartySpecies], a
+ hlcoord 7, 2
+ ld d, $0
+ ld e, ANIM_MON_TRADE
+ predef LoadMonAnimation
+ ret
+; 108239
+
+MobileTradeAnim_InitSpeciesName: ; 108239
+ push de
+ ld [wd265], a
+ call GetPokemonName
+ ld hl, StringBuffer1
+ pop de
+ ld bc, PKMN_NAME_LENGTH
+ call CopyBytes
+ ret
+; 10824b
+
+MobileTradeAnim_JumptableLoop: ; 10824b
+ ld a, [wJumptableIndex]
+ bit 7, a
+ jr nz, .StopAnim
+ call .ExecuteMobileTradeAnimCommand
+ call DelayFrame
+ and a
+ ret
+
+.StopAnim:
+ xor a
+ ld [hSCX], a
+ ld [hSCY], a
+ ld a, $7
+ ld [hWX], a
+ ld a, $90
+ ld [hWY], a
+ call LoadStandardFont
+ call LoadFontsBattleExtra
+ callba MobileFunc_106462
+ callba Function106464
+ scf
+ ret
+; 10827b
+
+.ExecuteMobileTradeAnimCommand: ; 10827b
+ ld a, [wJumptableIndex]
+ ld e, a
+ ld d, 0
+ ld hl, .Jumptable
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp hl
+; 10828a
+
+.Jumptable: ; 10828a
+
+ dw GetMobileTradeAnimByte ; 00
+ dw MobileTradeAnim_ShowPlayerMonToBeSent ; 01
+ dw MobileTradeAnim_02 ; 02
+ dw MobileTradeAnim_GiveTrademon1 ; 03
+ dw MobileTradeAnim_GiveTrademon2 ; 04
+ dw MobileTradeAnim_05 ; 05
+ dw MobileTradeAnim_06 ; 06
+ dw MobileTradeAnim_07 ; 07
+ dw MobileTradeAnim_GetTrademon1 ; 08
+ dw MobileTradeAnim_GetTrademon2 ; 09
+ dw MobileTradeAnim_GetTrademon3 ; 0a
+ dw MobileTradeAnim_ShowOTMonFromTrade ; 0b
+ dw EndMobileTradeAnim ; 0c
+ dw MobileTradeAnim_ShowPlayerMonForGTS ; 0d
+ dw MobileTradeAnim_ShowOTMonFromGTS ; 0e
+ dw MobileTradeAnim_0f ; 0f
+ dw MobileTradeAnim_10 ; 10
+ dw MobileTradeAnim_11 ; 11
+ dw MobileTradeAnim_FadeToBlack ; 12
+ dw MobileTradeAnim_GetOddEgg ; 13 get odd egg
+; 1082b2
+
+MobileTradeAnim_Next: ; 1082b2
+ ld hl, wJumptableIndex
+ inc [hl]
+ ret
+; 1082b7
+
+GetMobileTradeAnimByte: ; 1082b7
+ ld hl, wTradeAnimAddress
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ld a, [de]
+ ld [wJumptableIndex], a
+ inc de
+ ld [hl], d
+ dec hl
+ ld [hl], e
+ ret
+; 1082c6
+
+EndMobileTradeAnim: ; 1082c6
+ ld hl, wJumptableIndex
+ set 7, [hl]
+ ret
+; 1082cc
+
+WaitMobileTradeSpriteAnims: ; 1082cc
+.loop
+ push bc
+ callba PlaySpriteAnimations
+ pop bc
+ call DelayFrame
+ dec c
+ jr nz, .loop
+ ret
+; 1082db
+
+Function1082db: ; 1082db
+.loop
+ callba PlaySpriteAnimations
+ callba SetUpPokeAnim
+ callba HDMATransferTileMapToWRAMBank3
+ jr nc, .loop
+ ret
+; 1082f0
+
+Function1082f0: ; 1082f0
+.loop
+ call Function108b78
+ call DelayFrame
+ dec c
+ jr nz, .loop
+ ret
+; 1082fa
+
+Function1082fa: ; 1082fa
+.loop
+ call Function108b78
+ push hl
+ push bc
+ callba PlaySpriteAnimations
+ pop bc
+ pop hl
+ call DelayFrame
+ dec c
+ jr nz, .loop
+ ret
+; 10830e
+
+MobileTradeAnim_ShowPlayerMonToBeSent: ; 10830e
+ ld de, MUSIC_EVOLUTION
+ call PlayMusic2
+ ld a, $80
+ ld [hSCX], a
+ xor a
+ ld [hSCY], a
+ ld a, $87
+ ld [hWX], a
+ ld a, $50
+ ld [hWY], a
+ call MobileTradeAnim_DisplayMonToBeSent
+ ld a, [wPlayerTrademonSpecies]
+ ld [CurPartySpecies], a
+ call Function10895e
+ ld a, [wPlayerTrademonDVs]
+ ld [TempMonDVs], a
+ ld a, [wPlayerTrademonDVs + 1]
+ ld [TempMonDVs + 1], a
+ ld b, SCGB_PLAYER_OR_MON_FRONTPIC_PALS
+ call GetSGBLayout
+ ld a, %11100100 ; 3,2,1,0
+ call DmgToCgbBGPals
+ call WaitBGMap
+.loop
+ ld a, [hWX]
+ cp $7
+ jr z, .okay
+ sub $4
+ ld [hWX], a
+ ld a, [hSCX]
+ sub $4
+ ld [hSCX], a
+ call DelayFrame
+ jr .loop
+
+.okay
+ ld a, $7
+ ld [hWX], a
+ xor a
+ ld [hSCX], a
+ ld a, [wPlayerTrademonSpecies]
+ call GetCryIndex
+ jr c, .skip_cry
+ ld e, c
+ ld d, b
+ call PlayCryHeader
+
+.skip_cry
+ ld c, 80
+ call DelayFrames
+ call Function108bec
+ depixel 10, 11, 4, 0
+ ld a, SPRITE_ANIM_INDEX_MOBILE_TRADE_SENT_BALL
+ call _InitSpriteAnimStruct
+ ld de, SFX_BALL_POOF
+ call PlaySFX
+ hlcoord 0, 0
+ ld bc, 12 * SCREEN_WIDTH
+ ld a, " "
+ call ByteFill
+ ld c, 80
+ call WaitMobileTradeSpriteAnims
+ call GetMobileTradeAnimByte
+ ret
+; 10839b
+
+MobileTradeAnim_ShowOTMonFromTrade: ; 10839b
+ call ClearBGPalettes
+ call ClearSprites
+ call ClearTileMap
+ call DisableLCD
+ call MobileTradeAnim_ClearBGMap
+ ld a, [wOTTrademonSpecies]
+ ld [CurPartySpecies], a
+ ld hl, wOTTrademonDVs
+ ld de, VTiles2
+ call Function108201
+ call EnableLCD
+ callba DeinitializeAllSprites
+ xor a
+ ld [hSCX], a
+ ld [hSCY], a
+ ld a, $7
+ ld [hWX], a
+ ld a, $90
+ ld [hWY], a
+ depixel 10, 11, 4, 0
+ ld a, SPRITE_ANIM_INDEX_MOBILE_TRADE_OT_BALL
+ call _InitSpriteAnimStruct
+ call Function108b45
+ ld a, $1
+ call Function108b98
+ call Function108af4
+ ld c, 48
+ call WaitMobileTradeSpriteAnims
+ ld de, SFX_BALL_POOF
+ call PlaySFX
+ call MobileTradeAnim_DisplayReceivedMon
+ xor a
+ ld [hSCX], a
+ ld [hSCY], a
+ ld a, $7
+ ld [hWX], a
+ ld a, $50
+ ld [hWY], a
+ ld a, [wOTTrademonSpecies]
+ ld [CurPartySpecies], a
+ ld a, [wOTTrademonDVs]
+ ld [TempMonDVs], a
+ ld a, [wOTTrademonDVs + 1]
+ ld [TempMonDVs + 1], a
+ ld b, SCGB_PLAYER_OR_MON_FRONTPIC_PALS
+ call GetSGBLayout
+ ld a, %11100100 ; 3,2,1,0
+ call DmgToCgbBGPals
+ call Function108963
+ ld a, [wOTTrademonSpecies]
+ call Function108229
+ call Function1082db
+ call Function108c16
+ call GetMobileTradeAnimByte
+ ret
+; 10842c
+
+MobileTradeAnim_ShowPlayerMonForGTS: ; 10842c
+ ld de, MUSIC_EVOLUTION
+ call PlayMusic2
+ ld a, $80
+ ld [hSCX], a
+ xor a
+ ld [hSCY], a
+ ld a, $87
+ ld [hWX], a
+ ld a, $50
+ ld [hWY], a
+ call MobileTradeAnim_DisplayMonToBeSent
+ ld a, [wPlayerTrademonSpecies]
+ ld [CurPartySpecies], a
+ ld hl, wPlayerTrademonDVs
+ call Function10898a
+ call DelayFrame
+ ld de, TradeBallGFX
+ ld hl, VTiles0
+ lb bc, BANK(TradeBallGFX), $06
+ call Request2bpp
+ ld de, TradePoofGFX
+ ld hl, VTiles0 tile $06
+ lb bc, BANK(TradePoofGFX), $0c
+ call Request2bpp
+ ld a, [wPlayerTrademonDVs]
+ ld [TempMonDVs], a
+ ld a, [wPlayerTrademonDVs + 1]
+ ld [TempMonDVs + 1], a
+ ld b, SCGB_PLAYER_OR_MON_FRONTPIC_PALS
+ call GetSGBLayout
+ ld a, %11100100 ; 3,2,1,0
+ call DmgToCgbBGPals
+ call WaitBGMap
+.loop
+ ld a, [hWX]
+ cp $7
+ jr z, .done
+ sub $4
+ ld [hWX], a
+ ld a, [hSCX]
+ sub $4
+ ld [hSCX], a
+ call DelayFrame
+ jr .loop
+
+.done
+ ld a, $7
+ ld [hWX], a
+ xor a
+ ld [hSCX], a
+ ld a, [wPlayerTrademonSpecies]
+ call GetCryIndex
+ jr c, .skip_cry
+ ld e, c
+ ld d, b
+ call PlayCryHeader
+
+.skip_cry
+ ld c, 80
+ call DelayFrames
+ call Function108c2b
+ depixel 10, 11, 4, 0
+ ld a, SPRITE_ANIM_INDEX_MOBILE_TRADE_SENT_BALL
+ call _InitSpriteAnimStruct
+ ld de, SFX_BALL_POOF
+ call PlaySFX
+ hlcoord 0, 0
+ ld bc, 12 * SCREEN_WIDTH
+ ld a, " "
+ call ByteFill
+ ld c, 80
+ call WaitMobileTradeSpriteAnims
+ call GetMobileTradeAnimByte
+ ret
+; 1084d7
+
+MobileTradeAnim_ShowOTMonFromGTS: ; 1084d7
+ call ClearBGPalettes
+ call ClearSprites
+ call ClearTileMap
+ call DisableLCD
+ call MobileTradeAnim_ClearBGMap
+ ld a, [wOTTrademonSpecies]
+ ld [CurPartySpecies], a
+ ld hl, wOTTrademonDVs
+ ld de, VTiles2
+ call Function108201
+ call EnableLCD
+ callba DeinitializeAllSprites
+ call DelayFrame
+ ld de, TradeBallGFX
+ ld hl, VTiles0
+ lb bc, BANK(TradeBallGFX), $06
+ call Request2bpp
+ ld de, TradePoofGFX
+ ld hl, VTiles0 tile $06
+ lb bc, BANK(TradePoofGFX), $0c
+ call Request2bpp
+ xor a
+ ld [hSCX], a
+ ld [hSCY], a
+ ld a, $7
+ ld [hWX], a
+ ld a, $90
+ ld [hWY], a
+ depixel 10, 11, 4, 0
+ ld a, SPRITE_ANIM_INDEX_MOBILE_TRADE_OT_BALL
+ call _InitSpriteAnimStruct
+ call Function108b45
+ ld a, $1
+ call Function108b98
+ call Function108af4
+ ld c, 48
+ call WaitMobileTradeSpriteAnims
+ ld de, SFX_BALL_POOF
+ call PlaySFX
+ call MobileTradeAnim_DisplayReceivedMon
+ xor a
+ ld [hSCX], a
+ ld [hSCY], a
+ ld a, $7
+ ld [hWX], a
+ ld a, $50
+ ld [hWY], a
+ ld a, [wOTTrademonSpecies]
+ ld [CurPartySpecies], a
+ ld a, [wOTTrademonDVs]
+ ld [TempMonDVs], a
+ ld a, [wOTTrademonDVs + 1]
+ ld [TempMonDVs + 1], a
+ ld b, SCGB_PLAYER_OR_MON_FRONTPIC_PALS
+ call GetSGBLayout
+ ld a, %11100100 ; 3,2,1,0
+ call DmgToCgbBGPals
+ ld a, [wOTTrademonSpecies]
+ ld hl, wOTTrademonDVs
+ call Function10898a
+ ld a, [wOTTrademonSpecies]
+ call Function108229
+ call Function1082db
+ call Function108c40
+ call GetMobileTradeAnimByte
+ ret
+; 108589
+
+MobileTradeAnim_GetOddEgg: ; 108589
+ call ClearBGPalettes
+ call ClearSprites
+ call ClearTileMap
+ call DisableLCD
+ call MobileTradeAnim_ClearBGMap
+ ld a, [wOTTrademonSpecies]
+ ld [CurPartySpecies], a
+ ld hl, wOTTrademonDVs
+ ld de, VTiles2
+ call Function108201
+ call EnableLCD
+ callba DeinitializeAllSprites
+ call DelayFrame
+ ld de, TradeBallGFX
+ ld hl, VTiles0
+ lb bc, BANK(TradeBallGFX), $06
+ call Request2bpp
+ ld de, TradePoofGFX
+ ld hl, VTiles0 tile $06
+ lb bc, BANK(TradePoofGFX), $0c
+ call Request2bpp
+ xor a
+ ld [hSCX], a
+ ld [hSCY], a
+ ld a, $7
+ ld [hWX], a
+ ld a, $90
+ ld [hWY], a
+ depixel 10, 11, 4, 0
+ ld a, SPRITE_ANIM_INDEX_MOBILE_TRADE_OT_BALL
+ call _InitSpriteAnimStruct
+ call Function108b45
+ ld a, $1
+ call Function108b98
+ call Function108af4
+ ld c, 48
+ call WaitMobileTradeSpriteAnims
+ ld de, SFX_BALL_POOF
+ call PlaySFX
+ call Function108a33
+ xor a
+ ld [hSCX], a
+ ld [hSCY], a
+ ld a, $7
+ ld [hWX], a
+ ld a, $50
+ ld [hWY], a
+ ld a, [wOTTrademonSpecies]
+ ld [CurPartySpecies], a
+ ld a, [wOTTrademonDVs]
+ ld [TempMonDVs], a
+ ld a, [wOTTrademonDVs + 1]
+ ld [TempMonDVs + 1], a
+ ld b, SCGB_PLAYER_OR_MON_FRONTPIC_PALS
+ call GetSGBLayout
+ ld a, %11100100 ; 3,2,1,0
+ call DmgToCgbBGPals
+ ld a, [wOTTrademonSpecies]
+ ld hl, wOTTrademonDVs
+ call Function10898a
+ ld a, [wOTTrademonSpecies]
+ call Function108229
+ call Function1082db
+ call GetMobileTradeAnimByte
+ ret
+; 108638
+
+MobileTradeAnim_02: ; 108638
+ callba DeinitializeAllSprites
+ call ClearBGPalettes
+ call ClearSprites
+ call ClearTileMap
+ xor a
+ ld [hBGMapMode], a
+ call DisableLCD
+ call MobileTradeAnim_ClearBGMap
+ call Function108c80
+ call Function108c6d
+ call EnableLCD
+ ld a, $c
+ ld [hSCX], a
+ ld a, $78
+ ld [hSCY], a
+ ld a, $7
+ ld [hWX], a
+ ld a, $90
+ ld [hWY], a
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld hl, Palette_109107
+ ld de, UnknBGPals
+ ld bc, 8 palettes
+ call CopyBytes
+ pop af
+ ld [rSVBK], a
+ call Function108d07
+ call Function108af4
+ call GetMobileTradeAnimByte
+ ret
+; 108689
+
+MobileTradeAnim_10: ; 108689
+ callba DeinitializeAllSprites
+ call ClearBGPalettes
+ call ClearSprites
+ call ClearTileMap
+ xor a
+ ld [hBGMapMode], a
+ call DisableLCD
+ call MobileTradeAnim_ClearBGMap
+ ld a, $1
+ ld [rVBK], a
+ ld hl, LZ_108da7
+ ld de, VTiles2
+ call Decompress
+ ld a, $0
+ ld [rVBK], a
+ ld hl, LZ_108d27
+ ld de, VTiles0 tile $20
+ call Decompress
+ call Function108c80
+ call Function108c6d
+ call EnableLCD
+ ld a, $c
+ ld [hSCX], a
+ ld a, $78
+ ld [hSCY], a
+ ld a, $7
+ ld [hWX], a
+ ld a, $90
+ ld [hWY], a
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld hl, Palette_109107
+ ld de, UnknBGPals
+ ld bc, 8 palettes
+ call CopyBytes
+ pop af
+ ld [rSVBK], a
+ call Function108d07
+ call Function108af4
+ call GetMobileTradeAnimByte
+ ret
+; 1086f4
+
+MobileTradeAnim_11: ; 1086f4
+ call ClearBGPalettes
+ call ClearSprites
+ call ClearTileMap
+ xor a
+ ld [hBGMapMode], a
+ call DisableLCD
+ ld a, $1
+ ld [rVBK], a
+ ld hl, LZ_108da7
+ ld de, VTiles2
+ call Decompress
+ ld a, $0
+ ld [rVBK], a
+ ld hl, LZ_108d27
+ ld de, VTiles0 tile $20
+ call Decompress
+ call Function108c80
+ call Function108c6d
+ call EnableLCD
+ ld a, $80
+ ld [hSCX], a
+ ld a, $90
+ ld [hSCY], a
+ ld a, $7
+ ld [hWX], a
+ ld a, $90
+ ld [hWY], a
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld hl, Palette_109107
+ ld de, UnknBGPals
+ ld bc, 8 palettes
+ call CopyBytes
+ pop af
+ ld [rSVBK], a
+ call Function108d07
+ call Function108af4
+ call Function108b5a
+ ld a, $e0
+ ld [hSCX], a
+ ld de, MUSIC_EVOLUTION
+ call PlayMusic2
+ call GetMobileTradeAnimByte
+ ret
+; 108763
+
+MobileTradeAnim_GiveTrademon1: ; 108763
+ ld de, SFX_GIVE_TRADEMON
+ call PlaySFX
+ ld c, 40
+ ld hl, BGPals palette 6
+ call Function1082f0
+ call Function108af4
+.loop
+ ld a, [hSCX]
+ cp $e0
+ jr z, .loop2
+ dec a
+ dec a
+ ld [hSCX], a
+ cp $f8
+ jr nz, .next
+ depixel 10, 11, 4, 0
+ ld a, SPRITE_ANIM_INDEX_MOBILE_22
+ call _InitSpriteAnimStruct
+
+.next
+ ld c, 1
+ call WaitMobileTradeSpriteAnims
+ jr .loop
+
+.loop2
+ ld a, [hSCY]
+ cp $f8
+ jr z, .done
+ dec a
+ dec a
+ ld [hSCY], a
+ cp $40
+ jr z, .init
+ cp $30
+ jr z, .delete
+ cp $68
+ jr z, .replace
+ jr .next2
+
+.init
+ depixel 10, 11, 4, 0
+ ld a, SPRITE_ANIM_INDEX_MOBILE_22
+ call _InitSpriteAnimStruct
+ xor a
+ call Function108ad4
+ jr .next2
+
+.delete
+ call MobileTradeAnim_DeleteSprites
+ jr .next2
+
+.replace
+ call MobileTradeAnim_DeleteSprites
+ ld a, $1
+ call Function108ad4
+.next2
+ ld c, 1
+ call WaitMobileTradeSpriteAnims
+ jr .loop2
+
+.done
+ call MobileTradeAnim_Next
+ ret
+; 1087cf
+
+MobileTradeAnim_GiveTrademon2: ; 1087cf
+ ld c, 40
+ ld hl, BGPals + 1 palettes
+ call Function1082f0
+ call Function108af4
+ call Function108b5a
+ depixel 9, 10, 2, 0
+ ld a, SPRITE_ANIM_INDEX_MOBILE_25
+ call _InitSpriteAnimStruct
+ ld de, SFX_FORESIGHT
+ call PlaySFX
+ ld c, 10
+ call WaitMobileTradeSpriteAnims
+ xor a
+ ld [wcf64], a
+ depixel 9, 10, 2, 0
+ ld a, SPRITE_ANIM_INDEX_MOBILE_23
+ call _InitSpriteAnimStruct
+.loop
+ ld a, [hSCY]
+ cp $90
+ jr z, .done
+ sub $8
+ ld [hSCY], a
+ ld c, 1
+ call WaitMobileTradeSpriteAnims
+ jr .loop
+
+.done
+ call GetMobileTradeAnimByte
+ ret
+; 108811
+
+MobileTradeAnim_05: ; 108811
+ ld c, 40
+ call WaitMobileTradeSpriteAnims
+ ld a, $1
+ ld [wcf64], a
+ ld de, SFX_SHARPEN
+ call PlaySFX
+ ld c, 60
+ call WaitMobileTradeSpriteAnims
+ depixel 30, 10, 2, 0
+ ld a, SPRITE_ANIM_INDEX_MOBILE_24
+ call _InitSpriteAnimStruct
+ call GetMobileTradeAnimByte
+ ld de, SFX_THROW_BALL
+ call PlaySFX
+ ret
+; 108838
+
+MobileTradeAnim_06: ; 108838
+ ld c, 40
+ call WaitMobileTradeSpriteAnims
+ ld a, $1
+ ld [wcf64], a
+ ld de, SFX_SHARPEN
+ call PlaySFX
+ call GetMobileTradeAnimByte
+ ret
+; 10884c
+
+MobileTradeAnim_07: ; 10884c
+ ld c, 80
+ call DelayFrames
+ depixel 30, 10, 2, 0
+ ld a, SPRITE_ANIM_INDEX_MOBILE_24
+ call _InitSpriteAnimStruct
+ call GetMobileTradeAnimByte
+ ld de, SFX_THROW_BALL
+ call PlaySFX
+ ret
+; 108863
+
+MobileTradeAnim_GetTrademon1: ; 108863
+ ld c, 40
+ call WaitMobileTradeSpriteAnims
+.loop
+ ld a, [hSCY]
+ cp $f8
+ jr z, .done
+ add $8
+ ld [hSCY], a
+ ld c, 1
+ call WaitMobileTradeSpriteAnims
+ jr .loop
+
+.done
+ callba DeinitializeAllSprites
+ depixel 9, 10, 2, 0
+ ld a, SPRITE_ANIM_INDEX_MOBILE_25
+ call _InitSpriteAnimStruct
+ ld de, SFX_GLASS_TING_2
+ call PlaySFX
+ call Function108af4
+ call MobileTradeAnim_Next
+ ret
+; 108894
+
+MobileTradeAnim_GetTrademon2: ; 108894
+ ld c, 20
+ ld hl, BGPals + 1 palettes
+ call Function1082fa
+ ld de, SFX_GIVE_TRADEMON
+ call PlaySFX
+ ld c, 20
+ ld hl, BGPals + 1 palettes
+ call Function1082fa
+ call Function108af4
+.asm_1088ad
+ ld a, [hSCY]
+ cp $78
+ jr z, .asm_1088ee
+ inc a
+ inc a
+ ld [hSCY], a
+ cp $30
+ jr z, .asm_1088c5
+ cp $40
+ jr z, .asm_1088dd
+ cp $68
+ jr z, .asm_1088cf
+ jr .asm_1088e7
+
+.asm_1088c5
+ depixel 10, 11, 4, 0
+ ld a, SPRITE_ANIM_INDEX_MOBILE_22
+ call _InitSpriteAnimStruct
+ jr .asm_1088e7
+
+.asm_1088cf
+ depixel 10, 11, 4, 0
+ ld a, SPRITE_ANIM_INDEX_MOBILE_22
+ call _InitSpriteAnimStruct
+ xor a
+ call Function108ad4
+ jr .asm_1088e7
+
+.asm_1088dd
+ call MobileTradeAnim_DeleteSprites
+ ld a, $1
+ call Function108ad4
+ jr .asm_1088e7
+
+.asm_1088e7
+ ld c, 1
+ call WaitMobileTradeSpriteAnims
+ jr .asm_1088ad
+
+.asm_1088ee
+ ld a, [hSCX]
+ cp $c
+ jr z, .asm_108906
+ inc a
+ inc a
+ ld [hSCX], a
+ cp -8
+ jr nz, .asm_1088e7
+ call MobileTradeAnim_DeleteSprites
+ ld c, 1
+ call WaitMobileTradeSpriteAnims
+ jr .asm_1088ee
+
+.asm_108906
+ call MobileTradeAnim_Next
+ ret
+; 10890a
+
+MobileTradeAnim_GetTrademon3: ; 10890a
+ ld c, 40
+ ld hl, BGPals palette 6
+ call Function1082f0
+ call Function108af4
+ call GetMobileTradeAnimByte
+ ret
+; 108919
+
+MobileTradeAnim_0f: ; 108919
+ ld c, 40
+ call WaitMobileTradeSpriteAnims
+ callba DeinitializeAllSprites
+ call ClearBGPalettes
+ call ClearSprites
+ call ClearTileMap
+ call DisableLCD
+ call MobileTradeAnim_ClearVTiles
+ call MobileTradeAnim_ClearBGMap
+ call EnableLCD
+ call GetMobileTradeAnimByte
+ ret
+; 10893d
+
+MobileTradeAnim_FadeToBlack: ; 10893d
+.loop
+ ld a, [rBGP]
+ and a
+ jr z, .blank
+ sla a
+ sla a
+ call DmgToCgbBGPals
+ call DmgToCgbObjPal0
+ ld c, 4
+ call DelayFrames
+ jr .loop
+
+.blank
+ xor a
+ call DmgToCgbBGPals
+ call DmgToCgbObjPal0
+ call GetMobileTradeAnimByte
+ ret
+; 10895e
+
+Function10895e: ; 10895e
+ ld de, VTiles0 tile $30
+ jr asm_108966
+
+Function108963:
+ ld de, VTiles2 tile $31
+asm_108966
+ call DelayFrame
+ ld hl, VTiles2
+ lb bc, $a, $31 ; $a is the bank of ?????
+ call Request2bpp
+ call WaitTop
+ call MobileTradeAnim_ClearTilemap
+ hlcoord 7, 2
+ xor a
+ ld [hGraphicStartTile], a
+ lb bc, 7, 7
+ predef PlaceGraphic
+ call WaitBGMap
+ ret
+; 10898a
+
+Function10898a: ; 10898a
+ ld de, VTiles2
+ call MobileTradeAnim_GetFrontpic
+ call WaitTop
+ call MobileTradeAnim_ClearTilemap
+ hlcoord 7, 2
+ xor a
+ ld [hGraphicStartTile], a
+ lb bc, 7, 7
+ predef PlaceGraphic
+ call WaitBGMap
+ ret
+; 1089a8
+
+MobileTradeAnim_DisplayMonToBeSent: ; 1089a8
+ ld de, wPlayerTrademonSpecies
+ ld a, [de]
+ cp EGG
+ jr z, MobileTradeAnim_DisplayEggData
+ call MobileTradeAnim_LoadMonTemplate
+ ld de, wPlayerTrademonSpecies
+ call MobileTradeAnim_MonDisplay_PrintSpeciesNumber
+ ld de, wPlayerTrademonSpeciesName
+ call MobileTradeAnim_MonDisplay_PrintSpeciesName
+ ld a, [wPlayerTrademonCaughtData]
+ ld de, wPlayerTrademonOTName
+ call MobileTradeAnim_MonDisplay_PrintOTNameAndGender
+ ld de, wPlayerTrademonID
+ call MobileTradeAnim_MonDisplay_PrintIDNumber
+ call MobileTradeAnim_MonDisplay_UpdateBGMap
+ ret
+
+MobileTradeAnim_DisplayReceivedMon:
+ ld de, wOTTrademonSpecies
+ ld a, [de]
+ cp EGG
+ jr z, MobileTradeAnim_DisplayEggData
+ call MobileTradeAnim_LoadMonTemplate
+ ld de, wOTTrademonSpecies
+ call MobileTradeAnim_MonDisplay_PrintSpeciesNumber
+ ld de, wOTTrademonSpeciesName
+ call MobileTradeAnim_MonDisplay_PrintSpeciesName
+ ld a, [wOTTrademonCaughtData]
+ ld de, wOTTrademonOTName
+ call MobileTradeAnim_MonDisplay_PrintOTNameAndGender
+ ld de, wOTTrademonID
+ call MobileTradeAnim_MonDisplay_PrintIDNumber
+ call MobileTradeAnim_MonDisplay_UpdateBGMap
+ ret
+
+MobileTradeAnim_DisplayEggData
+ call WaitTop
+ call MobileTradeAnim_ClearTilemap
+ ld a, VBGMap1 / $100
+ ld [hBGMapAddress + 1], a
+ hlcoord 5, 0
+ ld b, 6
+ ld c, 9
+ call TextBox
+ hlcoord 6, 2
+ ld de, .EggTemplate
+ call PlaceString
+ call MobileTradeAnim_MonDisplay_UpdateBGMap
+ ret
+; 108a1d
+
+.EggTemplate: ; 108a1d
+ db "タマゴ"
+ next "おや/?????"
+ next "<ID>№<DOT>?????"
+ db "@"
+; 108a33
+
+Function108a33: ; 108a33
+ call WaitTop
+ call MobileTradeAnim_ClearTilemap
+ ld a, VBGMap1 / $100
+ ld [hBGMapAddress + 1], a
+ hlcoord 5, 0
+ ld b, 6
+ ld c, 9
+ call TextBox
+ hlcoord 7, 4
+ ld de, .OddEgg
+ call PlaceString
+ call MobileTradeAnim_MonDisplay_UpdateBGMap
+ ret
+; 108a54
+
+.OddEgg: ; 108a54
+ db "なぞのタマゴ@"
+; 108a5b
+
+MobileTradeAnim_LoadMonTemplate: ; 108a5b
+ call WaitTop
+ call MobileTradeAnim_ClearTilemap
+ ld a, VBGMap1 / $100
+ ld [hBGMapAddress + 1], a
+ hlcoord 4, 0
+ ld b, 6
+ ld c, 10
+ call TextBox
+ hlcoord 5, 0
+ ld de, .MonTemplate
+ call PlaceString
+ ret
+; 108a79
+
+.MonTemplate: ; 108a79
+ db "─ №<DOT>"
+ next ""
+ next "おや/"
+ next "<ID>№<DOT>"
+ db "@"
+; 108a87
+
+MobileTradeAnim_MonDisplay_UpdateBGMap: ; 108a87
+ call WaitBGMap
+ call WaitTop
+ ld a, VBGMap0 / $100
+ ld [hBGMapAddress + 1], a
+ ret
+; 108a92
+
+MobileTradeAnim_MonDisplay_PrintSpeciesNumber: ; 108a92
+ hlcoord 9, 0
+ lb bc, PRINTNUM_LEADINGZEROS | 1, 3
+ call PrintNum
+ ret
+; 108a9c
+
+MobileTradeAnim_MonDisplay_PrintSpeciesName: ; 108a9c
+ hlcoord 5, 2
+ call PlaceString
+ ret
+; 108aa3
+
+MobileTradeAnim_MonDisplay_PrintOTNameAndGender: ; 108aa3
+ cp $3
+ jr c, .got_gender
+ xor a
+.got_gender
+ push af
+ hlcoord 8, 4
+ call PlaceString
+ inc bc
+ pop af
+ ld hl, .GenderChars
+ ld d, 0
+ ld e, a
+ add hl, de
+ ld a, [hl]
+ ld [bc], a
+ ret
+; 108abb
+
+.GenderChars: ; 108abb
+ db " "
+ db "♂"
+ db "♀"
+; 108abe
+
+MobileTradeAnim_MonDisplay_PrintIDNumber: ; 108abe
+ hlcoord 8, 6
+ lb bc, PRINTNUM_LEADINGZEROS | 2, 5
+ call PrintNum
+ ret
+; 108ac8
+
+MobileTradeAnim_ClearTilemap: ; 108ac8
+ hlcoord 0, 0
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
+ ld a, " "
+ call ByteFill
+ ret
+; 108ad4
+
+Function108ad4: ; 108ad4
+ and a
+ jr z, .asm_108adc
+ ld de, GFX_1092c7
+ jr .asm_108adf
+
+.asm_108adc
+ ld de, GFX_1091c7
+.asm_108adf
+ ld a, $1
+ ld [rVBK], a
+ ld hl, VTiles2 tile $4a
+ lb bc, BANK(GFX_1092c7), 16
+ call Get2bpp_2
+ call DelayFrame
+ ld a, $0
+ ld [rVBK], a
+ ret
+; 108af4
+
+Function108af4: ; 108af4
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld a, [wcf65]
+ and $1
+ jr z, .copy_palette_109147
+ ld hl, Palette_109187
+ ld de, UnknOBPals
+ ld bc, 8 palettes
+ call CopyBytes
+ ld hl, Palette_109187
+ ld de, OBPals
+ ld bc, 8 palettes
+ call CopyBytes
+ jr .done_copy
+
+.copy_palette_109147
+ ld hl, Palette_109147
+ ld de, UnknOBPals
+ ld bc, 8 palettes
+ call CopyBytes
+ ld hl, Palette_109147
+ ld de, OBPals
+ ld bc, 8 palettes
+ call CopyBytes
+
+.done_copy
+ pop af
+ ld [rSVBK], a
+ ld a, %11100100 ; 3,2,1,0
+ call DmgToCgbObjPal0
+ ld a, %11100100 ; 3,2,1,0
+ call DmgToCgbBGPals
+ call DelayFrame
+ ret
+; 108b45
+
+Function108b45: ; 108b45
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld de, (31 << 10) + (31 << 5) + 31 ; $7fff
+ ld hl, UnknBGPals
+ ld a, e
+ ld [hli], a
+ ld d, a
+ ld [hli], a
+ pop af
+ ld [rSVBK], a
+ ret
+; 108b5a
+
+Function108b5a: ; 108b5a
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld de, (15 << 10) + (31 << 5) + 18 ; $3ff2
+ ld hl, BGPals + 4 palettes
+ ld c, $10
+.loop
+ ld a, e
+ ld [hli], a
+ ld a, d
+ ld [hli], a
+ dec c
+ jr nz, .loop
+ pop af
+ ld [rSVBK], a
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ ret
+; 108b78
+
+Function108b78: ; 108b78
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld a, c
+ and $2
+ jr z, .Orange
+ ld de, (31 << 10) + (31 << 5) + 31 ; $7fff
+ jr .load_pal
+
+.Orange:
+ ld de, ( 1 << 10) + (15 << 5) + 31 ; $05ff
+.load_pal
+ ld a, e
+ ld [hli], a
+ ld a, d
+ ld [hld], a
+ pop af
+ ld [rSVBK], a
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ ret
+; 108b98
+
+Palette_108b98:
+; removed
+
+Function108b98: ; 108b98
+ ld d, a
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld a, [wcf65]
+ and $1
+ xor d
+ jr z, .asm_108bad
+ ld hl, Palette_108b98 + 1 palettes
+ jr .asm_108bb0
+
+.asm_108bad
+ ld hl, Palette_108b98
+.asm_108bb0
+ ld de, UnknBGPals + 7 palettes
+ ld bc, 8 palettes
+ call CopyBytes
+ pop af
+ ld [rSVBK], a
+ ret
+; 108bbd
+
+MobileTradeAnim_DeleteSprites: ; 108bbd
+ callba DeinitializeAllSprites
+ call ClearSprites
+ ret
+; 108bc7
+
+Function108bc7: ; 108bc7 (42:4bc7)
+ ld a, [wcf64]
+ and a
+ ret z
+ ld hl, SPRITEANIMSTRUCT_YCOORD
+ add hl, bc
+ ld a, [hl]
+ cp -1 * 8 - 6
+ jr z, .delete
+ sub 1 * 8
+ ld [hl], a
+ ret
+
+.delete
+ callba DeinitializeSprite
+ ret
+
+Function108be0: ; 108be0 (42:4be0)
+ ld hl, SPRITEANIMSTRUCT_YCOORD
+ add hl, bc
+ ld a, [hl]
+ cp 9 * 8 + 2
+ ret z
+ add 1 * 8
+ ld [hl], a
+ ret
+; 108bec (42:4bec)
+
+Function108bec: ; 108bec
+ ld a, $90
+ ld [hWY], a
+ ld hl, .PlayerWillTradeMon
+ call PrintText
+ ld c, 80
+ call DelayFrames
+ ld hl, .ForPartnersMon
+ call PrintText
+ ld c, 80
+ call DelayFrames
+ ret
+; 108c07
+
+.PlayerWillTradeMon: ; 0x108c07
+ text_jump UnknownText_0x1bc787
+ db "@"
+; 0x108c0c
+
+.ForPartnersMon: ; 0x108c0c
+ text_jump UnknownText_0x1bc79d
+ db "@"
+; 0x108c11
+
+.UnusedTextPlayersMonTrade: ; 0x108c11
+ text_jump UnknownText_0x1bc7b0
+ db "@"
+; 0x108c16
+
+Function108c16: ; 108c16
+ ld a, $90
+ ld [hWY], a
+ ld hl, .TakeGoodCareOfMon
+ call PrintText
+ ld c, 80
+ call DelayFrames
+ ret
+; 108c26
+
+.TakeGoodCareOfMon: ; 0x108c26
+ text_jump UnknownText_0x1bc7c3
+ db "@"
+; 0x108c2b
+
+Function108c2b: ; 108c2b
+ ld a, $90
+ ld [hWY], a
+ ld hl, .PlayersMonTrade
+ call PrintText
+ ld c, 80
+ call DelayFrames
+ ret
+; 108c3b
+
+.PlayersMonTrade: ; 0x108c3b
+ text_jump UnknownText_0x1bc7dd
+ db "@"
+; 0x108c40
+
+Function108c40: ; 108c40
+ ld a, $90
+ ld [hWY], a
+ ld a, [wcf65]
+ and %10000000
+ jr z, .Getmon
+ ld hl, .CameBack
+ call PrintText
+ ld c, 80
+ call DelayFrames
+ ret
+
+.Getmon:
+ ld hl, .TakeGoodCareOf
+ call PrintText
+ ld c, 80
+ call DelayFrames
+ ret
+; 108c63
+
+.TakeGoodCareOf: ; 0x108c63
+ text_jump UnknownText_0x1bc7f0
+ db "@"
+; 0x108c68
+
+.CameBack: ; 0x108c68
+ text_jump UnknownText_0x1bc80a
+ db "@"
+; 0x108c6d
+
+Function108c6d: ; 108c6d
+ ld hl, LZ_108fe7
+ debgcoord 0, 0
+ call Decompress
+ ld hl, LZ_108fe7
+ debgcoord 0, 0, VBGMap1
+ call Decompress
+ ret
+; 108c80
+
+Function108c80: ; 108c80
+ ld a, $1
+ ld [rVBK], a
+ ld hl, LZ_1090a7
+ debgcoord 0, 0
+ call Decompress
+ ld hl, LZ_1090a7
+ debgcoord 0, 0, VBGMap1
+ call Decompress
+ ld a, $0
+ ld [rVBK], a
+ ret
+; 108c9b
+
+DebugMobileTrade: ; 108c9b
+; localization error: NAME_LENGTH (11) should be NAME_LENGTH_JAPANESE (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