diff options
Diffstat (limited to 'mobile/mobile_5c.asm')
-rwxr-xr-x | mobile/mobile_5c.asm | 946 |
1 files changed, 946 insertions, 0 deletions
diff --git a/mobile/mobile_5c.asm b/mobile/mobile_5c.asm new file mode 100755 index 000000000..005bb1a1b --- /dev/null +++ b/mobile/mobile_5c.asm @@ -0,0 +1,946 @@ +Function170000: ; 170000 + ld a, [$c62b] + ld [wPlayerTrademonSpecies], a + ld hl, $c62e + ld de, wPlayerTrademonSenderName + ld bc, $0005 + call CopyBytes + ld a, $50 + ld [de], a + ld hl, $c663 + ld de, wPlayerTrademonOTName + ld bc, $0005 + call CopyBytes + ld a, $50 + ld [de], a + ld hl, $c648 + ld a, [hli] + ld [wPlayerTrademonDVs], a + ld a, [hl] + ld [wPlayerTrademonDVs + 1], a + ld hl, $c639 + ld a, [hli] + ld [wPlayerTrademonID], a + ld a, [hl] + ld [wPlayerTrademonID + 1], a + ld bc, $c633 + farcall GetCaughtGender + ld a, c + ld [wPlayerTrademonCaughtData], a + ld a, [wcd81] + ld [wc74e], a + ld hl, $c608 + ld de, $d800 + ld bc, $008f + call CopyBytes + ret + +; 17005a + +Function17005a: ; 17005a + ld a, $5 + call GetSRAMBank + ld a, [$a824] + ld [wOTTrademonSpecies], a + ld hl, $a827 + ld de, wOTTrademonSenderName + ld bc, NAME_LENGTH_JAPANESE - 1 + call CopyBytes + ld a, "@" + ld [de], a + ld hl, $a85c + ld de, wOTTrademonOTName + ld bc, NAME_LENGTH_JAPANESE - 1 + call CopyBytes + ld a, "@" + ld [de], a + ld hl, $a841 + ld a, [hli] + ld [wOTTrademonDVs], a + ld a, [hl] + ld [wOTTrademonDVs + 1], a + ld hl, $a832 + ld a, [hli] + ld [wOTTrademonID], a + ld a, [hl] + ld [wOTTrademonID + 1], a + ld bc, $a82c + farcall GetCaughtGender + ld a, c + ld [wOTTrademonCaughtData], a + ld a, [wcd81] + ld [wc74e], a + call CloseSRAM + ret + +; 1700b0 + +INCLUDE "mobile/battle_tower_5c.asm" + +Function170be4: ; 170be4 + ld a, $5 + call GetSRAMBank + xor a + ld hl, $a894 + ld bc, $0008 + call ByteFill + call CloseSRAM + ret + +; 170bf7 + +Clears5_a89a: ; 170bf7 + ld a, $5 + call GetSRAMBank + ld hl, $a89a + xor a + ld [hli], a + ld [hl], a + call CloseSRAM + ret + +; 170c06 + +Function170c06: ; 170c06 + ld a, $5 + call GetSRAMBank + ld hl, $a894 + ld a, [wBattleResult] + and a + jr nz, .asm_170c15 + inc [hl] + +.asm_170c15 + inc hl + inc hl + ld a, [$a89b] + add [hl] + ld [hld], a + ld a, [$a89a] + adc [hl] + ld [hli], a + jr nc, .asm_170c27 + ld a, $ff + ld [hld], a + ld [hli], a + +.asm_170c27 + inc hl + push hl + ld de, 0 + xor a + ld [wd265], a +.asm_170c30 + ld hl, PartyMon1HP + ld a, [wd265] + call GetPartyLocation + ld a, [hli] + ld b, a + ld c, [hl] + inc hl + inc hl + ld a, [hld] + sub c + ld c, a + ld a, [hl] + sbc b + ld b, a + push de + pop hl + add hl, bc + push hl + pop de + jr c, .asm_170c58 + ld a, [wd265] + inc a + ld [wd265], a + cp $3 + jr c, .asm_170c30 + jr .asm_170c5b + +.asm_170c58 + ld de, -1 + +.asm_170c5b + pop hl + inc hl + ld a, e + add [hl] + ld [hld], a + ld a, d + adc [hl] + ld [hli], a + jr nc, .asm_170c69 + ld a, $ff + ld [hld], a + ld [hli], a + +.asm_170c69 + inc hl + push hl + ld b, $0 + ld c, $0 +.asm_170c6f + ld hl, PartyMon1HP + ld a, b + push bc + call GetPartyLocation + pop bc + ld a, [hli] + or [hl] + jr nz, .asm_170c7d + inc c + +.asm_170c7d + inc b + ld a, b + cp $3 + jr c, .asm_170c6f + pop hl + ld a, [hl] + add c + ld [hl], a + call CloseSRAM + ret + +; 170c8b + +Function170c8b: ; 170c8b + ld hl, LastEnemyCounterMove + ld b, $5 +.asm_170c90 + ld a, [hl] + xor $ff + ld [hli], a + dec b + jr nz, .asm_170c90 + ret + +; 170c98 + +CheckBTMonMovesForErrors: ; 170c98 + ld c, BATTLETOWER_NROFPKMNS + ld hl, wBT_OTTempPkmn1Moves +.loop + push hl + ld a, [hl] + cp NUM_ATTACKS + 1 + jr c, .okay + ld a, POUND + ld [hl], a + +.okay + inc hl + ld b, NUM_MOVES - 1 +.loop2 + ld a, [hl] + and a + jr z, .loop3 + cp NUM_ATTACKS + 1 + jr c, .next + +.loop3 + xor a + ld [hl], a + inc hl + dec b + jr nz, .loop3 + jr .done + +.next + inc hl + dec b + jr nz, .loop2 + +.done + pop hl + ld de, PARTYMON_STRUCT_LENGTH + PKMN_NAME_LENGTH + add hl, de + dec c + jr nz, .loop + ret + +; 170cc6 + +Function170cc6: ; 170cc6 + ld a, [rSVBK] + push af + ld a, $6 + ld [rSVBK], a + ld hl, LZ_170d16 + ld de, wDecompressScratch + call Decompress + ld a, $1 + ld [rVBK], a + ld de, wd000 + ld hl, VTiles0 + lb bc, $6, $c1 + call Get2bpp + xor a + ld [rVBK], a + ld hl, LZ_1715a4 + ld de, wd000 + call Decompress + ld de, UnknBGPals + ld hl, VTiles0 + lb bc, $6, $53 + call Get2bpp + pop af + ld [rSVBK], a + ret + +; 170d02 + +Function170d02: ; 170d02 + ld a, $1 + ld [rVBK], a + ld de, GFX_171848 + ld hl, VTiles1 tile $41 + lb bc, BANK(GFX_171848), $18 + call Get2bpp + xor a + ld [rVBK], a + ret + +; 170d16 + +LZ_170d16: +INCBIN "gfx/mobile/pichu_animated.2bpp.lz" + +LZ_1715a4: +INCBIN "gfx/mobile/electro_ball.2bpp.lz" + +GFX_171848: +INCBIN "gfx/unknown/171848.2bpp" + +Function1719c8: ; 1719c8 (5c:59c8) + ld a, [hInMenu] + push af + ld a, $1 + ld [hInMenu], a + call Function1719d6 + pop af + ld [hInMenu], a + ret + +Function1719d6: ; 1719d6 (5c:59d6) + farcall BattleTowerRoomMenu_InitRAM + call Function1719ed + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + call Function171a11 + pop af + ld [rSVBK], a + ret + +Function1719ed: ; 1719ed (5c:59ed) + xor a + ld [wcd49], a + ld [wcd4a], a + dec a + ld [wcd4b], a + call ClearBGPalettes + call ClearSprites + farcall Function171d2b + farcall ReloadMapPart + farcall ClearSpriteAnims + ret + +Function171a11: ; 171a11 (5c:5a11) +.loop + call JoyTextDelay + ld a, [wcd49] + bit 7, a + jr nz, .done + call Function171a36 + farcall PlaySpriteAnimations + farcall ReloadMapPart + jr .loop +.done + farcall ClearSpriteAnims + call ClearSprites + ret + +Function171a36: ; 171a36 (5c:5a36) + ld a, [wcd49] + ld e, a + ld d, 0 + ld hl, Jumptable_171a45 + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp hl + +Jumptable_171a45: ; 171a45 (5c:5a45) + dw Function171a95 + dw Function171ac9 + dw Function171a5d + dw Function171ad7 + dw Function171a5d + dw Function171aec + dw Function171b4b + dw Function171b85 + dw Function171bcc + dw Function171c2c + dw Function171c39 + dw Function171c41 + + +Function171a5d: ; 171a5d (5c:5a5d) + ld a, [wc821] + bit 1, a + jr nz, .asm_171a6a + bit 0, a + ret nz + jp Function171c66 + +.asm_171a6a + ld a, $0 + call Function3e32 + ld [wc300], a + ld a, l + ld [wc301], a + ld a, h + ld [wc302], a + ld a, $a + call Function3e32 + ld a, [rSVBK] + push af + ld a, $1 + ld [rSVBK], a + farcall BattleTowerRoomMenu_Cleanup + pop af + ld [rSVBK], a + ld a, $a + ld [wcd49], a + ret + +Function171a95: ; 171a95 (5c:5a95) + farcall Function171ccd + hlcoord 2, 8 + ld de, String_171aa7 + call PlaceString + jp Function171c66 + +; 171aa7 (5c:5aa7) + +String_171aa7: ; 171aa7 + db "モバイルアダプタに" + next "せつぞく しています" + next "しばらく おまちください" + db "@" +; 171ac9 + +Function171ac9: ; 171ac9 (5c:5ac9) + ld de, wcd81 + ld hl, $5c + ld a, $2 + call Function3e32 + jp Function171c66 + +Function171ad7: ; 171ad7 (5c:5ad7) + xor a + ld hl, $c608 + ld bc, $66 + call ByteFill + ld de, $c608 + ld a, $c + call Function3e32 + jp Function171c66 + +Function171aec: ; 171aec (5c:5aec) + ld a, [rSVBK] + push af + ld a, $1 + ld [rSVBK], a + farcall BattleTowerRoomMenu_Cleanup + pop af + ld [rSVBK], a + hlcoord 2, 6 + ld a, $8 +.asm_171b01 + push af + push hl + xor a + ld bc, $10 + call ByteFill + pop hl + ld de, $14 + add hl, de + pop af + dec a + jr nz, .asm_171b01 + hlcoord 2, 7 + ld a, $3 + ld de, $c608 +.asm_171b1b + push af + push hl + ld a, [de] + and a + jr z, .asm_171b34 + ld a, [wcd4b] + inc a + ld [wcd4b], a + push hl + call Function171b42 + pop hl + ld bc, $ffec + add hl, bc + call Function171b42 +.asm_171b34 + pop hl + ld bc, $14 + add hl, bc + add hl, bc + add hl, bc + pop af + dec a + jr nz, .asm_171b1b + jp Function171c66 + +Function171b42: ; 171b42 (5c:5b42) + ld a, [de] + inc de + and a + ret z + sub $20 + ld [hli], a + jr Function171b42 + +Function171b4b: ; 171b4b (5c:5b4b) + depixel 8, 2 + ld a, SPRITE_ANIM_INDEX_1D + call _InitSpriteAnimStruct + ld hl, SPRITEANIMSTRUCT_0C + add hl, bc + ld a, $8 + ld [hl], a + + depixel 8, 19 + ld a, SPRITE_ANIM_INDEX_1D + call _InitSpriteAnimStruct + ld hl, SPRITEANIMSTRUCT_0C + add hl, bc + ld a, $9 + ld [hl], a + + depixel 17, 14, 2, 0 + ld a, SPRITE_ANIM_INDEX_1D + call _InitSpriteAnimStruct + ld hl, SPRITEANIMSTRUCT_0C + add hl, bc + ld a, $a + ld [hl], a + + ld a, $4 + ld [wcd23], a + ld a, $8 + ld [wcd24], a + jp Function171c66 + +Function171b85: ; 171b85 (5c:5b85) + ld hl, hJoyPressed ; $ffa7 + ld a, [hl] + and $2 + jp nz, Function171b9f + ld a, [hl] + and $1 + jp nz, Function171bbd + ld a, [hl] + and $40 + jr nz, asm_171ba5 + ld a, [hl] + and $80 + jr nz, asm_171baf + ret + +Function171b9f: ; 171b9f (5c:5b9f) + ld a, $80 + ld [wcd49], a + ret + +asm_171ba5: ; 171ba5 (5c:5ba5) + ld a, [wcd4a] + and a + ret z + dec a + ld [wcd4a], a + ret + +asm_171baf: ; 171baf (5c:5baf) + ld a, [wcd4b] + ld c, a + ld a, [wcd4a] + cp c + ret z + inc a + ld [wcd4a], a + ret + +Function171bbd: ; 171bbd (5c:5bbd) + call PlayClickSFX + ld a, $8 + ld [wcd23], a + xor a + ld [wcd24], a + jp Function171c66 + +Function171bcc: ; 171bcc (5c:5bcc) + ld hl, hJoyPressed ; $ffa7 + ld a, [hl] + and $2 + jp nz, Function171bdc + ld a, [hl] + and $1 + jp nz, Function171beb + ret + +Function171bdc: ; 171bdc (5c:5bdc) + ld a, $4 + ld [wcd23], a + ld a, $8 + ld [wcd24], a + ld hl, wcd49 + dec [hl] + ret + +Function171beb: ; 171beb (5c:5beb) + ld a, $5 + call GetSRAMBank + ld a, [wcd4a] + ld [$aa4a], a + call CloseSRAM + ld hl, MenuDataHeader_171c6b + call LoadMenuDataHeader + call MenuBox + call MenuBoxCoord2Tile + farcall ReloadMapPart + hlcoord 1, 14 + ld de, String_171c73 + call PlaceString + ld a, [wcd4a] + cp $2 + jr z, .asm_171c1f + ld a, $8 + jr .asm_171c21 +.asm_171c1f + ld a, $c +.asm_171c21 + ld [wcd24], a + ld a, $1e + ld [wcd4c], a + call Function171c66 + +Function171c2c: ; 171c2c (5c:5c2c) + ld hl, wcd4c + dec [hl] + ret nz + call ExitMenu + call ClearBGPalettes + jr asm_171c60 + +Function171c39: ; 171c39 (5c:5c39) + ld a, $28 + ld [wcd4c], a + call Function171c66 + +Function171c41: ; 171c41 (5c:5c41) + ld hl, wcd4c + dec [hl] + ret nz + call ClearBGPalettes + farcall MobileFunc_106462 + farcall Function106464 + ld a, $2 + ld [wc303], a + farcall DisplayMobileError +asm_171c60: ; 171c60 (5c:5c60) + ld a, $80 + ld [wcd49], a + ret + +Function171c66: ; 171c66 (5c:5c66) + ld hl, wcd49 + inc [hl] + ret + +; 171c6b (5c:5c6b) + +MenuDataHeader_171c6b: ; 171c6b + db $40 ; flags + db 12, 0 ; start coords + db 17, 19 ; end coords + dw NULL + db 0 ; default option +; 171c73 + +String_171c73: ; 171c73 + db "モバイルセンターを けってい" + next "しました@" +; 171c87 + +Function171c87: ; 171c87 (5c:5c87) + call DisableLCD + ld hl, GFX_171db1 + ld de, VTiles2 tile $00 + ld bc, $6e0 + call CopyBytes + ld hl, LZ_172abd + ld de, VTiles0 tile $00 + call Decompress + call EnableLCD + ld hl, Tilemap_172491 + decoord 0, 0 + ld bc, $168 + call CopyBytes + ld hl, Attrmap_1727ed + decoord 0, 0, AttrMap + ld bc, $168 + call CopyBytes + hlcoord 3, 2 + ld de, String_172e31 + call PlaceString + hlcoord 3, 16 + ld de, String_172e3f + call PlaceString + ret + +Function171ccd: ; 171ccd (5c:5ccd) + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + ld hl, Palette_171d71 + ld de, UnknBGPals + ld bc, $40 + call CopyBytes + ld hl, EngineBuffer5 + ld a, $ff + ld [hli], a + ld a, $7f + ld [hl], a + call SetPalettes + pop af + ld [rSVBK], a + ret + +Function171cf0: ; 171cf0 (5c:5cf0) + xor a + hlcoord 4, 15 + ld [hli], a + ld [hli], a + ld a, [wcd4b] + xor $1 + ld [wcd4b], a + and a + jr nz, .asm_171d16 + ld hl, Tilemap_17251d + decoord 0, 7 + ld bc, $8c + call CopyBytes + hlcoord 3, 16 + ld de, String_172e3f + jp PlaceString + +.asm_171d16 + ld hl, Tilemap_1725f9 + decoord 0, 7 + ld bc, $8c + call CopyBytes + hlcoord 3, 16 + ld de, String_172e4e + jp PlaceString + +Function171d2b: ; 171d2b (5c:5d2b) + call DisableLCD + ld hl, GFX_171db1 + ld de, VTiles2 tile $00 + ld bc, $6e0 + call CopyBytes + ld hl, LZ_172abd + ld de, VTiles0 tile $00 + call Decompress + call EnableLCD + ld hl, Tilemap_172685 + decoord 0, 0 + ld bc, $168 + call CopyBytes + ld hl, Attrmap_172955 + decoord 0, 0, AttrMap + ld bc, $168 + call CopyBytes + hlcoord 2, 2 + ld de, String_172e5d + call PlaceString + hlcoord 14, 16 + ld de, String_172e58 + call PlaceString + ret + +; 171d71 (5c:5d71) + +Palette_171d71: + RGB 0, 0, 0 + RGB 3, 0, 0 + RGB 5, 0, 0 + RGB 31, 31, 29 + RGB 0, 2, 10 + RGB 2, 10, 21 + RGB 0, 0, 0 + RGB 10, 26, 31 + RGB 0, 0, 0 + RGB 0, 7, 8 + RGB 31, 8, 0 + RGB 1, 17, 15 + RGB 31, 16, 0 + RGB 31, 22, 0 + RGB 31, 27, 0 + RGB 31, 31, 0 + RGB 31, 18, 6 + RGB 0, 3, 0 + RGB 0, 9, 0 + RGB 0, 12, 0 + RGB 0, 16, 0 + RGB 0, 22, 0 + RGB 0, 25, 0 + RGB 0, 27, 0 + RGB 5, 5, 16 + RGB 8, 19, 28 + RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 31, 29 + RGB 21, 21, 20 + RGB 11, 11, 10 + RGB 0, 0, 0 + +GFX_171db1: +INCBIN "gfx/mobile/ascii_font.2bpp" + +Tilemap_172491: +INCBIN "gfx/unknown/172491.tilemap" +Tilemap_17251d: +INCBIN "gfx/unknown/17251d.tilemap" +Tilemap_1725f9: +INCBIN "gfx/unknown/1725f9.tilemap" +Tilemap_172685: +INCBIN "gfx/unknown/172685.tilemap" +Attrmap_1727ed: +INCBIN "gfx/unknown/1727ed.attrmap" +Attrmap_172955: +INCBIN "gfx/unknown/172955.attrmap" + +LZ_172abd: +INCBIN "gfx/pokedex/slowpoke.2bpp.lz" + +String_172e31: ; 172e31 + db "パスワード", $1f, "いれてください@" +String_172e3f: ; 172e3f + db "きりかえ やめる けってい@" +String_172e4e: ; 172e4e + db "きりかえ やめる " +String_172e58: + db "けってい@" +String_172e5d: ; 172e5d + db "せつぞくする モバイルセンターを" + next "えらんで ください@" +; 172e78 + + +Function172e78: ; 172e78 (5c:6e78) + ld a, $7f + hlcoord 0, 0 + ld bc, $168 + call ByteFill + ld a, $7 + hlcoord 0, 0, AttrMap + ld bc, $168 + call ByteFill + call DisableLCD + ld hl, GameBoyN64GFX + ld de, VTiles2 tile $00 + ld bc, $610 + call CopyBytes + call EnableLCD + ld hl, Tilemap_1733af + decoord 0, 0 + ld bc, $168 + call CopyBytes + ld hl, Attrmap_173517 + decoord 0, 0, AttrMap + ld bc, $168 + call CopyBytes + ret + +; 172eb9 (5c:6eb9) + +Function172eb9: + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + ld hl, Palette_172edf + ld de, UnknBGPals + ld bc, $40 + call CopyBytes + ld hl, Palette_172edf + ld de, BGPals + ld bc, $40 + call CopyBytes + call SetPalettes + pop af + ld [rSVBK], a + ret + +; 172edf (5c:6edf) + +Palette_172edf: + RGB 5, 12, 17 + RGB 31, 31, 31 + RGB 18, 25, 28 + RGB 10, 17, 21 + RGB 6, 13, 18 + RGB 31, 31, 31 + RGB 20, 26, 28 + RGB 12, 19, 23 + RGB 3, 10, 16 + RGB 31, 31, 31 + RGB 6, 13, 18 + RGB 20, 26, 28 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 5, 5, 16 + RGB 8, 19, 28 + RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + +GameBoyN64GFX: +INCBIN "gfx/trade/game_boy_n64.2bpp" + +Tilemap_1733af: +IF DEF(CRYSTAL11) +INCBIN "gfx/unknown/1733af_corrupt.tilemap" +ELSE +INCBIN "gfx/unknown/1733af.tilemap" +ENDC + +Attrmap_173517: +INCBIN "gfx/unknown/173517.attrmap" |