summaryrefslogtreecommitdiff
path: root/main.asm
diff options
context:
space:
mode:
authorPikalaxALT <PikalaxALT@gmail.com>2015-11-19 18:07:20 -0500
committerPikalaxALT <PikalaxALT@gmail.com>2015-11-19 18:09:11 -0500
commit93a129eb6dc261faccaf2b2d58daf3db204ab3ba (patch)
tree9095a3735deb1608ce6e4a23dcea4a5f43b4be95 /main.asm
parent8a6a1a7d77fdcd1f8468f0c411795a8f039d4bd8 (diff)
main.asm is now under 30k lines
Diffstat (limited to 'main.asm')
-rw-r--r--main.asm9893
1 files changed, 17 insertions, 9876 deletions
diff --git a/main.asm b/main.asm
index 7414d769a..0c2625399 100644
--- a/main.asm
+++ b/main.asm
@@ -4839,7 +4839,7 @@ CutDownTreeOrGrass: ; c810
ld e, a
callba OWCutAnimation
call BufferScreen
- call Function2914
+ call GetMovementPermissions
call UpdateSprites
call DelayFrame
call LoadStandardFont
@@ -5952,7 +5952,7 @@ DisappearWhirlpool: ; ce1d
ld e, a
callba PlayWhirlpoolSound
call BufferScreen
- call Function2914
+ call GetMovementPermissions
ret
; ce3e
@@ -7350,7 +7350,7 @@ Functiond4e5: ; d4e5 (3:54e5)
ret
Jumptable_d4f2: ; d4f2 (3:54f2)
- dw Function2914
+ dw GetMovementPermissions
dw BufferScreen
dw .mobile
dw .fail2
@@ -18307,7 +18307,7 @@ Function4aa7a: ; 4aa7a
push hl
cp -1
jr z, .done
- ld hl, wc314
+ ld hl, wSpriteAnimationStructs
inc a
ld d, a
.inner_loop
@@ -24674,3901 +24674,23 @@ Function80422:: ; 80422
-EngineFlagAction:: ; 80430
-; Do action b on engine flag de
-;
-; b = 0: reset flag
-; = 1: set flag
-; > 1: check flag, result in c
-;
-; Setting/resetting does not return a result.
-
-
-; 16-bit flag ids are considered invalid, but it's nice
-; to know that the infrastructure is there.
-
- ld a, d
- cp 0
- jr z, .ceiling
- jr c, .read ; cp 0 can't set carry!
- jr .invalid
-
-; There are only $a2 engine flags, so
-; anything beyond that is invalid too.
-
-.ceiling
- ld a, e
- cp NUM_ENGINE_FLAGS
- jr c, .read
-
-; Invalid flags are treated as flag 00.
-
-.invalid
- xor a
- ld e, a
- ld d, a
-
-; Get this flag's location.
-
-.read
- ld hl, EngineFlags
-; location
-rept 2
- add hl, de
-endr
-; bit
- add hl, de
-
-; location
- ld e, [hl]
- inc hl
- ld d, [hl]
- inc hl
-; bit
- ld c, [hl]
-
-; What are we doing with this flag?
-
- ld a, b
- cp 1
- jr c, .reset ; b = 0
- jr z, .set ; b = 1
-
-; Return the given flag in c.
-.check
- ld a, [de]
- and c
- ld c, a
- ret
-
-; Set the given flag.
-.set
- ld a, [de]
- or c
- ld [de], a
- ret
-
-; Reset the given flag.
-.reset
- ld a, c
- cpl ; AND all bits except the one in question
- ld c, a
- ld a, [de]
- and c
- ld [de], a
- ret
-; 80462
-
-
-EngineFlags: ; 80462
INCLUDE "engine/engine_flags.asm"
; 80648
-
-
-_GetVarAction:: ; 80648 (20:4648)
- ld a, c
- cp NUM_VARS
- jr c, .valid
- xor a
-.valid
- ld c, a
- ld b, 0
- ld hl, .VarActionTable
-rept 3
- add hl, bc
-endr
- ld e, [hl]
- inc hl
- ld d, [hl]
- inc hl
- ld b, [hl]
- ld a, b
- and RETVAR_EXECUTE
- jr nz, .call
- ld a, b
- and RETVAR_ADDR_DE
- ret nz
- ld a, [de]
- jr .loadstringbuffer2
-
-.call
- call _de_
- ret
-
-.loadstringbuffer2: ; 8066c (20:466c)
- ld de, StringBuffer2
- ld [de], a
- ret
-; 80671 (20:4671)
-
-.VarActionTable: ; 80671
-; $00: copy [de] to StringBuffer2
-; $40: return address in de
-; $80: call function
- dwb StringBuffer2, RETVAR_STRBUF2
- dwb PartyCount, RETVAR_STRBUF2
- dwb .BattleResult, RETVAR_EXECUTE
- dwb BattleType, RETVAR_ADDR_DE
- dwb TimeOfDay, RETVAR_STRBUF2
- dwb .CountCaughtMons, RETVAR_EXECUTE
- dwb .CountSeenMons, RETVAR_EXECUTE
- dwb .CountBadges, RETVAR_EXECUTE
- dwb PlayerState, RETVAR_ADDR_DE
- dwb .PlayerFacing, RETVAR_EXECUTE
- dwb hHours, RETVAR_STRBUF2
- dwb .DayOfWeek, RETVAR_EXECUTE
- dwb MapGroup, RETVAR_STRBUF2
- dwb MapNumber, RETVAR_STRBUF2
- dwb .UnownCaught, RETVAR_EXECUTE
- dwb wPermission, RETVAR_STRBUF2
- dwb .BoxFreeSpace, RETVAR_EXECUTE
- dwb wBugContestMinsRemaining, RETVAR_STRBUF2
- dwb XCoord, RETVAR_STRBUF2
- dwb YCoord, RETVAR_STRBUF2
- dwb wSpecialPhoneCallID, RETVAR_STRBUF2
- dwb wcf64, RETVAR_STRBUF2
- dwb wKurtApricornQuantity, RETVAR_STRBUF2
- dwb wCurrentCaller, RETVAR_ADDR_DE
- dwb wBlueCardBalance, RETVAR_ADDR_DE
- dwb wBuenasPassword, RETVAR_ADDR_DE
- dwb wdc58, RETVAR_STRBUF2
- dwb NULL, RETVAR_STRBUF2
-; 806c5
-
-.CountCaughtMons: ; 806c5
-; Caught mons.
- ld hl, PokedexCaught
- ld b, EndPokedexCaught - PokedexCaught
- call CountSetBits
- ld a, [wd265]
- jp .loadstringbuffer2
-; 806d3
-
-.CountSeenMons: ; 806d3
-; Seen mons.
- ld hl, PokedexSeen
- ld b, EndPokedexSeen - PokedexSeen
- call CountSetBits
- ld a, [wd265]
- jp .loadstringbuffer2
-; 806e1
-
-.CountBadges: ; 806e1
-; Number of owned badges.
- ld hl, Badges
- ld b, 2
- call CountSetBits
- ld a, [wd265]
- jp .loadstringbuffer2
-; 806ef
-
-.PlayerFacing: ; 806ef
-; The direction the player is facing.
- ld a, [PlayerDirection]
- and $c
- rrca
- rrca
- jp .loadstringbuffer2
-; 806f9
-
-.DayOfWeek: ; 806f9
-; The day of the week.
- call GetWeekday
- jp .loadstringbuffer2
-; 806ff
-
-.UnownCaught: ; 806ff
-; Number of unique Unown caught.
- call .count
- ld a, b
- jp .loadstringbuffer2
-
-.count
- ld hl, UnownDex
- ld b, 0
-.loop
- ld a, [hli]
- and a
- ret z
- inc b
- ld a, b
- cp 26
- jr c, .loop
- ret
-; 80715
-
-.BoxFreeSpace: ; 80715
-; Remaining slots in the current box.
- ld a, BANK(sBoxCount)
- call GetSRAMBank
- ld hl, sBoxCount
- ld a, MONS_PER_BOX
- sub [hl]
- ld b, a
- call CloseSRAM
- ld a, b
- jp .loadstringbuffer2
-; 80728
-
-.BattleResult: ; 80728
- ld a, [wBattleResult]
- and $3f
- jp .loadstringbuffer2
-; 80730
-
+INCLUDE "engine/variables.asm"
BattleText::
INCLUDE "text/battle.asm"
-
-ColorTest: ; 818ac
-; A debug menu to test monster and trainer palettes at runtime.
-
- ld a, [hCGB]
- and a
- jr nz, .asm_818b5
- ld a, [hSGB]
- and a
- ret z
-
-.asm_818b5
- ld a, [hInMenu]
- push af
- ld a, $1
- ld [hInMenu], a
- call DisableLCD
- call Function81948
- call Function8197c
- call Function819a7
- call Function818f4
- call EnableLCD
- ld de, MUSIC_NONE
- call PlayMusic
- xor a
- ld [wJumptableIndex], a
- ld [wcf66], a
- ld [wd003], a
-.asm_818de
- ld a, [wJumptableIndex]
- bit 7, a
- jr nz, .asm_818f0
- call Function81a74
- call Function81f5e
- call DelayFrame
- jr .asm_818de
-
-.asm_818f0
- pop af
- ld [hInMenu], a
- ret
-; 818f4
-
-Function818f4: ; 818f4
- ld a, [wd002]
- and a
- jr nz, Function81911
- ld hl, PokemonPalettes
-
-Function818fd: ; 818fd
- ld de, OverworldMap
- ld c, NUM_POKEMON + 1
-.asm_81902
- push bc
- push hl
- call Function81928
- pop hl
- ld bc, 8
- add hl, bc
- pop bc
- dec c
- jr nz, .asm_81902
- ret
-
-Function81911: ; 81911
- ld hl, TrainerPalettes
- ld de, OverworldMap
- ld c, NUM_TRAINER_CLASSES
-.asm_81919
- push bc
- push hl
- call Function81928
- pop hl
- ld bc, 4
- add hl, bc
- pop bc
- dec c
- jr nz, .asm_81919
- ret
-; 81928
-
-Function81928: ; 81928
- ld a, BANK(PokemonPalettes) ; BANK(TrainerPalettes)
- call GetFarByte
- ld [de], a
- inc de
- inc hl
- ld a, BANK(PokemonPalettes) ; BANK(TrainerPalettes)
- call GetFarByte
- ld [de], a
- inc de
- inc hl
- ld a, BANK(PokemonPalettes) ; BANK(TrainerPalettes)
- call GetFarByte
- ld [de], a
- inc de
- inc hl
- ld a, BANK(PokemonPalettes) ; BANK(TrainerPalettes)
- call GetFarByte
- ld [de], a
- inc de
- ret
-; 81948
-
-Function81948: ; 81948
- ld a, $1
- ld [rVBK], a
- ld hl, VTiles0
- ld bc, sScratch - VTiles0
- xor a
- call ByteFill
- ld a, $0
- ld [rVBK], a
- ld hl, VTiles0
- ld bc, sScratch - VTiles0
- xor a
- call ByteFill
- hlcoord 0, 0, AttrMap
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- xor a
- call ByteFill
- hlcoord 0, 0
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- xor a
- call ByteFill
- call ClearSprites
- ret
-; 8197c
-
-Function8197c: ; 8197c
- ld hl, DebugColorTestGFX + $10
- ld de, VTiles2 tile $6a
- ld bc, $160
- call CopyBytes
- ld hl, DebugColorTestGFX
- ld de, VTiles0
- ld bc, $10
- call CopyBytes
- call LoadStandardFont
- ld hl, VTiles1
- lb bc, 8, 0
-.asm_8199d
- ld a, [hl]
- xor $ff
- ld [hli], a
- dec bc
- ld a, c
- or b
- jr nz, .asm_8199d
- ret
-; 819a7
-
-Function819a7: ; 819a7
- ld a, [hCGB]
- and a
- ret z
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld hl, Palette_819f4
- ld de, BGPals
- ld bc, $80
- call CopyBytes
- ld a, $80
- ld [rBGPI], a
- ld hl, Palette_819f4
- ld c, $40
- xor a
-.asm_819c8
- ld [rBGPD], a
- dec c
- jr nz, .asm_819c8
- ld a, $80
- ld [rOBPI], a
- ld hl, Palette_81a34
- ld c, $40
-.asm_819d6
- ld a, [hli]
- ld [rOBPD], a
- dec c
- jr nz, .asm_819d6
- ld a, $94
- ld [wc608], a
- ld a, $52
- ld [wc608 + 1], a
- ld a, $4a
- ld [wc608 + 2], a
- ld a, $29
- ld [wc608 + 3], a
- pop af
- ld [rSVBK], a
- ret
-; 819f4
-
-Palette_819f4: ; 819f4
- ; white
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 00, 00, 00
-
- ; red
- RGB 31, 00, 00
- RGB 31, 00, 00
- RGB 31, 00, 00
- RGB 00, 00, 00
-
- ; green
- RGB 00, 31, 00
- RGB 00, 31, 00
- RGB 00, 31, 00
- RGB 00, 00, 00
-
- ; blue
- RGB 00, 00, 31
- RGB 00, 00, 31
- RGB 00, 00, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 00, 00, 00
-
-Palette_81a34: ; 81a34
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 00, 00, 00
-
- ; red
- RGB 31, 31, 31
- RGB 31, 00, 00
- RGB 31, 00, 00
- RGB 00, 00, 00
-
- ; green
- RGB 31, 31, 31
- RGB 00, 31, 00
- RGB 00, 31, 00
- RGB 00, 00, 00
-
- ; blue
- RGB 31, 31, 31
- RGB 00, 00, 31
- RGB 00, 00, 31
- RGB 00, 00, 00
-; 81a74
-
-Function81a74: ; 81a74
- call JoyTextDelay
- ld a, [wJumptableIndex]
- cp $4
- jr nc, .asm_81a8b
- ld hl, hJoyLast
- ld a, [hl]
- and SELECT
- jr nz, .asm_81a9a
- ld a, [hl]
- and START
- jr nz, .asm_81aab
-
-.asm_81a8b
- ld a, [wJumptableIndex]
- ld e, a
- ld d, 0
- ld hl, Jumptable_81acf
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-
-.asm_81a9a
- call Function81eca
- call Function81ac3
- ld e, a
- ld a, [wcf66]
- inc a
- cp e
- jr c, .asm_81aba
- xor a
- jr .asm_81aba
-
-.asm_81aab
- call Function81eca
- ld a, [wcf66]
- dec a
- cp $ff
- jr nz, .asm_81aba
- call Function81ac3
- dec a
-
-.asm_81aba
- ld [wcf66], a
- ld a, $0
- ld [wJumptableIndex], a
- ret
-; 81ac3
-
-Function81ac3: ; 81ac3
-; Looping back around the pic set.
- ld a, [wd002]
- and a
- jr nz, .asm_81acc
- ld a, NUM_POKEMON ; CELEBI
- ret
-
-.asm_81acc
- ld a, NUM_TRAINER_CLASSES - 1 ; MYSTICALMAN
- ret
-; 81acf
-
-Jumptable_81acf: ; 81acf
- dw Function81adb
- dw Function81c18
- dw Function81c33
- dw Function81cc2
- dw Function81d8e
- dw Function81daf
-; 81adb
-
-Function81adb: ; 81adb
- xor a
- ld [hBGMapMode], a
- hlcoord 0, 0
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- ld a, $6f
- call ByteFill
- hlcoord 1, 3
- lb bc, 7, 18
- ld a, $6c
- call Bank20_FillBoxWithByte
- hlcoord 11, 0
- lb bc, 2, 3
- ld a, $6d
- call Bank20_FillBoxWithByte
- hlcoord 16, 0
- lb bc, 2, 3
- ld a, $6e
- call Bank20_FillBoxWithByte
- call Function81bc0
- call Function81bf4
- ld a, [wcf66]
- inc a
- ld [CurPartySpecies], a
- ld [wd265], a
- hlcoord 0, 1
- ld de, wd265
- lb bc, PRINTNUM_LEADINGZEROS | 1, 3
- call PrintNum
- ld a, [wd002]
- and a
- jr nz, .asm_81b7a
- ld a, $1
- ld [UnownLetter], a
- call GetPokemonName
- hlcoord 4, 1
- call PlaceString
- xor a
- ld [wc2c6], a
- hlcoord 12, 3
- call _PrepMonFrontpic
- ld de, VTiles2 tile $31
- predef GetBackpic
- ld a, $31
- ld [hFillBox], a
- hlcoord 2, 4
- lb bc, 6, 6
- predef FillBox
- ld a, [wd003]
- and a
- jr z, .asm_81b66
- ld de, String_81baf
- jr .asm_81b69
-
-.asm_81b66
- ld de, String_81bb4
-
-.asm_81b69
- hlcoord 7, 17
- call PlaceString
- hlcoord 0, 17
- ld de, String_81bb9
- call PlaceString
- jr .asm_81ba9
-
-.asm_81b7a
- ld a, [wd265]
- ld [TrainerClass], a
- callab Function3957b
- ld de, StringBuffer1
- hlcoord 4, 1
- call PlaceString
- ld de, VTiles2
- callab GetTrainerPic
- xor a
- ld [TempEnemyMonSpecies], a
- ld [hFillBox], a
- hlcoord 2, 3
- lb bc, 7, 7
- predef FillBox
-
-.asm_81ba9
- ld a, $1
- ld [wJumptableIndex], a
- ret
-; 81baf
-
-String_81baf: db "レア", $6f, $6f, "@" ; rare (shiny)
-String_81bb4: db "ノーマル@" ; normal
-String_81bb9: db $7a, "きりかえ▶@" ; (A) switches
-; 81bc0
-
-Function81bc0: ; 81bc0
- decoord 0, 11, AttrMap
- hlcoord 2, 11
- ld a, $1
- call Function81bde
- decoord 0, 13, AttrMap
- hlcoord 2, 13
- ld a, $2
- call Function81bde
- decoord 0, 15, AttrMap
- hlcoord 2, 15
- ld a, $3
-
-Function81bde: ; 81bde
- push af
- ld a, $6a
- ld [hli], a
- ld bc, $f
- ld a, $6b
- call ByteFill
- ld l, e
- ld h, d
- pop af
- ld bc, $28
- call ByteFill
- ret
-; 81bf4
-
-Function81bf4: ; 81bf4
- ld a, [wcf66]
- inc a
- ld l, a
- ld h, $0
-rept 2
- add hl, hl
-endr
- ld de, OverworldMap
- add hl, de
- ld de, wc608
- ld bc, 4
- call CopyBytes
- xor a
- ld [wcf64], a
- ld [wcf65], a
- ld de, wc608
- call Function81ea5
- ret
-; 81c18
-
-Function81c18: ; 81c18
- ld a, [hCGB]
- and a
- jr z, .asm_81c2a
- ld a, $2
- ld [hBGMapMode], a
- call DelayFrame
- call DelayFrame
- call DelayFrame
-
-.asm_81c2a
- call WaitBGMap
- ld a, $2
- ld [wJumptableIndex], a
- ret
-; 81c33
-
-Function81c33: ; 81c33
- ld a, [hCGB]
- and a
- jr z, .asm_81c69
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld hl, BGPals
- ld de, wc608
- ld c, $1
- call Function81ee3
- hlcoord 10, 2
- ld de, wc608
- call Function81ca7
- hlcoord 15, 2
- ld de, wc608 + 2
- call Function81ca7
- ld a, $1
- ld [hCGBPalUpdate], a
- ld a, $3
- ld [wJumptableIndex], a
- pop af
- ld [rSVBK], a
- ret
-
-.asm_81c69
- ld hl, wcda9
- ld a, $1
- ld [hli], a
- ld a, $ff
- ld [hli], a
- ld a, $7f
- ld [hli], a
- ld a, [wc608]
- ld [hli], a
- ld a, [wc608 + 1]
- ld [hli], a
- ld a, [wc608 + 2]
- ld [hli], a
- ld a, [wc608 + 3]
- ld [hli], a
- xor a
-rept 2
- ld [hli], a
-endr
- ld [hl], a
- ld hl, wcda9
- call Function81f0c
- hlcoord 10, 2
- ld de, wc608
- call Function81ca7
- hlcoord 15, 2
- ld de, wc608 + 2
- call Function81ca7
- ld a, $3
- ld [wJumptableIndex], a
- ret
-; 81ca7
-
-Function81ca7: ; 81ca7
-rept 3
- inc hl
-endr
- ld a, [de]
- call Function81cbc
- ld a, [de]
- swap a
- call Function81cbc
- inc de
- ld a, [de]
- call Function81cbc
- ld a, [de]
- swap a
-
-Function81cbc: ; 81cbc
- and $f
- add $70
- ld [hld], a
- ret
-; 81cc2
-
-Function81cc2: ; 81cc2
- ld a, [hJoyLast]
- and B_BUTTON
- jr nz, .asm_81cdf
- ld a, [hJoyLast]
- and A_BUTTON
- jr nz, .asm_81ce5
- ld a, [wcf64]
- and $3
- ld e, a
- ld d, 0
- ld hl, Jumptable_81d02
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-
-.asm_81cdf
- ld a, $4
- ld [wJumptableIndex], a
- ret
-
-.asm_81ce5
- ld a, [wd002]
- and a
- ret nz
- ld a, [wd003]
- xor $4
- ld [wd003], a
- ld c, a
- ld b, 0
- ld hl, PokemonPalettes
- add hl, bc
- call Function818fd
- ld a, $0
- ld [wJumptableIndex], a
- ret
-; 81d02
-
-Jumptable_81d02: ; 81d02
- dw Function81d0a
- dw Function81d34
- dw Function81d46
- dw Function81d58
-; 81d0a
-
-Function81d0a: ; 81d0a
- ld hl, hJoyLast
- ld a, [hl]
- and D_DOWN
- jr nz, Function81d89
- ld a, [hl]
- and D_LEFT
- jr nz, .asm_81d1d
- ld a, [hl]
- and D_RIGHT
- jr nz, .asm_81d28
- ret
-
-.asm_81d1d
- xor a
- ld [wcf65], a
- ld de, wc608
- call Function81ea5
- ret
-
-.asm_81d28
- ld a, $1
- ld [wcf65], a
- ld de, wc608 + 2
- call Function81ea5
- ret
-
-Function81d34: ; 81d34
- ld hl, hJoyLast
- ld a, [hl]
- and D_DOWN
- jr nz, Function81d89
- ld a, [hl]
- and D_UP
- jr nz, Function81d84
- ld hl, wc608 + 10
- jr Function81d63
-
-Function81d46: ; 81d46
- ld hl, hJoyLast
- ld a, [hl]
- and D_DOWN
- jr nz, Function81d89
- ld a, [hl]
- and D_UP
- jr nz, Function81d84
- ld hl, wc608 + 11
- jr Function81d63
-
-Function81d58: ; 81d58
- ld hl, hJoyLast
- ld a, [hl]
- and D_UP
- jr nz, Function81d84
- ld hl, wc608 + 12
-
-Function81d63: ; 81d63
- ld a, [hJoyLast]
- and D_RIGHT
- jr nz, Function81d70
- ld a, [hJoyLast]
- and D_LEFT
- jr nz, Function81d77
- ret
-
-Function81d70: ; 81d70
- ld a, [hl]
- cp $1f
- ret nc
- inc [hl]
- jr Function81d7b
-
-Function81d77: ; 81d77
- ld a, [hl]
- and a
- ret z
- dec [hl]
-
-Function81d7b: ; 81d7b
- call Function81e67
- ld a, $2
- ld [wJumptableIndex], a
- ret
-
-Function81d84: ; 81d84
- ld hl, wcf64
- dec [hl]
- ret
-
-Function81d89: ; 81d89
- ld hl, wcf64
- inc [hl]
- ret
-; 81d8e
-
-Function81d8e: ; 81d8e
- hlcoord 0, 10
- ld bc, $a0
- ld a, $6f
- call ByteFill
- hlcoord 2, 12
- ld de, String_81fcd
- call PlaceString
- xor a
- ld [wd004], a
- call Function81df4
- ld a, $5
- ld [wJumptableIndex], a
- ret
-; 81daf
-
-Function81daf: ; 81daf
- ld hl, hJoyPressed
- ld a, [hl]
- and B_BUTTON
- jr nz, .asm_81dbb
- call Function81dc7
- ret
-
-.asm_81dbb
- ld a, $0
- ld [wJumptableIndex], a
- ret
-; 81dc1
-
-Function81dc1: ; 81dc1
- ld hl, wJumptableIndex
- set 7, [hl]
- ret
-; 81dc7
-
-Function81dc7: ; 81dc7
- ld hl, hJoyLast
- ld a, [hl]
- and D_UP
- jr nz, .asm_81dd5
- ld a, [hl]
- and D_DOWN
- jr nz, .asm_81de2
- ret
-
-.asm_81dd5
- ld a, [wd004]
- cp $3b
- jr z, .asm_81ddf
- inc a
- jr .asm_81ded
-
-.asm_81ddf
- xor a
- jr .asm_81ded
-
-.asm_81de2
- ld a, [wd004]
- and a
- jr z, .asm_81deb
- dec a
- jr .asm_81ded
-
-.asm_81deb
- ld a, $3b
-
-.asm_81ded
- ld [wd004], a
- call Function81df4
- ret
-; 81df4
-
-Function81df4: ; 81df4
- hlcoord 10, 11
- call Function81e5e
- hlcoord 10, 12
- call Function81e5e
- hlcoord 10, 13
- call Function81e5e
- hlcoord 10, 14
- call Function81e5e
- ld a, [wd004]
- inc a
- ld [wd265], a
- predef GetTMHMMove
- ld a, [wd265]
- ld [wd262], a
- call GetMoveName
- hlcoord 10, 12
- call PlaceString
- ld a, [wd004]
- call Function81e55
- ld [CurItem], a
- predef CanLearnTMHMMove
- ld a, c
- and a
- ld de, String_81e46
- jr nz, .asm_81e3f
- ld de, String_81e4d
-
-.asm_81e3f
- hlcoord 10, 14
- call PlaceString
- ret
-; 81e46
-
-String_81e46: db "おぼえられる@" ; can be taught
-String_81e4d: db "おぼえられない@" ; cannot be taught
-; 81e55
-
-Function81e55: ; 81e55
- cp $32
- jr c, .asm_81e5b
-rept 2
- inc a
-endr
-
-.asm_81e5b
- add $bf
- ret
-; 81e5e
-
-Function81e5e: ; 81e5e
- ld bc, $a
- ld a, $6f
- call ByteFill
- ret
-; 81e67
-
-Function81e67: ; 81e67
- ld a, [wc608 + 10]
- and $1f
- ld e, a
- ld a, [wc608 + 11]
- and $7
- sla a
- swap a
- or e
- ld e, a
- ld a, [wc608 + 11]
- and $18
- sla a
- swap a
- ld d, a
- ld a, [wc608 + 12]
- and $1f
- sla a
- sla a
- or d
- ld d, a
- ld a, [wcf65]
- and a
- jr z, .asm_81e9c
- ld a, e
- ld [wc608 + 2], a
- ld a, d
- ld [wc608 + 3], a
- ret
-
-.asm_81e9c
- ld a, e
- ld [wc608], a
- ld a, d
- ld [wc608 + 1], a
- ret
-; 81ea5
-
-Function81ea5: ; 81ea5
- ld a, [de]
- and $1f
- ld [wc608 + 10], a
- ld a, [de]
- and $e0
- swap a
- srl a
- ld b, a
- inc de
- ld a, [de]
- and $3
- swap a
- srl a
- or b
- ld [wc608 + 11], a
- ld a, [de]
- and $7c
- srl a
- srl a
- ld [wc608 + 12], a
- ret
-; 81eca
-
-Function81eca: ; 81eca
- ld a, [wcf66]
- inc a
- ld l, a
- ld h, $0
-rept 2
- add hl, hl
-endr
- ld de, OverworldMap
- add hl, de
- ld e, l
- ld d, h
- ld hl, wc608
- ld bc, 4
- call CopyBytes
- ret
-; 81ee3
-
-Function81ee3: ; 81ee3
-.asm_81ee3
- ld a, $ff
- ld [hli], a
- ld a, $7f
- ld [hli], a
- ld a, [de]
- inc de
- ld [hli], a
- ld a, [de]
- inc de
- ld [hli], a
- ld a, [de]
- inc de
- ld [hli], a
- ld a, [de]
- inc de
- ld [hli], a
- xor a
-rept 2
- ld [hli], a
-endr
- dec c
- jr nz, .asm_81ee3
- ret
-; 81efc
-
-Bank20_FillBoxWithByte: ; 81efc
-; For some reason, we have another copy of FillBoxWithByte here
-.row
- push bc
- push hl
-.col
- ld [hli], a
- dec c
- jr nz, .col
- pop hl
- ld bc, SCREEN_WIDTH
- add hl, bc
- pop bc
- dec b
- jr nz, .row
- ret
-; 81f0c
-
-Function81f0c: ; 81f0c
- ld a, [wcfbe]
- push af
- set 7, a
- ld [wcfbe], a
- call Function81f1d
- pop af
- ld [wcfbe], a
- ret
-; 81f1d
-
-Function81f1d: ; 81f1d
- ld a, [hl]
- and $7
- ret z
- ld b, a
-.asm_81f22
- push bc
- xor a
- ld [rJOYP], a
- ld a, $30
- ld [rJOYP], a
- ld b, $10
-.asm_81f2c
- ld e, $8
- ld a, [hli]
- ld d, a
-.asm_81f30
- bit 0, d
- ld a, $10
- jr nz, .asm_81f38
- ld a, $20
-
-.asm_81f38
- ld [rJOYP], a
- ld a, $30
- ld [rJOYP], a
- rr d
- dec e
- jr nz, .asm_81f30
- dec b
- jr nz, .asm_81f2c
- ld a, $20
- ld [rJOYP], a
- ld a, $30
- ld [rJOYP], a
- ld de, 7000
-.asm_81f51
- nop
- nop
- nop
- dec de
- ld a, d
- or e
- jr nz, .asm_81f51
- pop bc
- dec b
- jr nz, .asm_81f22
- ret
-; 81f5e
-
-Function81f5e: ; 81f5e
- ld a, $6f
- hlcoord 10, 0
- ld [hl], a
- hlcoord 15, 0
- ld [hl], a
- hlcoord 1, 11
- ld [hl], a
- hlcoord 1, 13
- ld [hl], a
- hlcoord 1, 15
- ld [hl], a
- ld a, [wJumptableIndex]
- cp $3
- jr nz, .asm_81fc9
- ld a, [wcf64]
- and a
- jr z, .asm_81f8d
- dec a
- hlcoord 1, 11
- ld bc, 2 * SCREEN_WIDTH
- call AddNTimes
- ld [hl], $ed
-
-.asm_81f8d
- ld a, [wcf65]
- and a
- jr z, .asm_81f98
- hlcoord 15, 0
- jr .asm_81f9b
-
-.asm_81f98
- hlcoord 10, 0
-
-.asm_81f9b
- ld [hl], $ed
- ld b, $70
- ld c, $5
- ld hl, Sprites
- ld de, wc608 + 10
- call .asm_81fb7
- ld de, wc608 + 11
- call .asm_81fb7
- ld de, wc608 + 12
- call .asm_81fb7
- ret
-
-.asm_81fb7
- ld a, b
- ld [hli], a
- ld a, [de]
-rept 2
- add a
-endr
- add $18
- ld [hli], a
- xor a
- ld [hli], a
- ld a, c
- ld [hli], a
- ld a, $10
- add b
- ld b, a
- inc c
- ret
-
-.asm_81fc9
- call ClearSprites
- ret
-; 81fcd
-
-String_81fcd: ; 81fcd
- db "おわりますか?" ; Are you finished?
- next "はい", $f2, $f2, $f2, $7a ; YES (A)
- next "いいえ", $f2, $f2, $7b ; NO (B)
- db "@"
-; 81fe3
-
-DebugColorTestGFX:
-INCBIN "gfx/debug/color_test.2bpp"
-
-
-TilesetColorTest:
- ret
- xor a
- ld [wJumptableIndex], a
- ld [wcf64], a
- ld [wcf65], a
- ld [wcf66], a
- ld [hMapAnims], a
- call ClearSprites
- call OverworldTextModeSwitch
- call Function3200
- xor a
- ld [hBGMapMode], a
- ld de, DebugColorTestGFX + $10
- ld hl, VTiles2 tile $6a
- lb bc, BANK(DebugColorTestGFX), $16
- call Request2bpp
- ld de, DebugColorTestGFX
- ld hl, VTiles1
- lb bc, BANK(DebugColorTestGFX), 1
- call Request2bpp
- ld a, VBGMap1 / $100
- ld [hBGMapAddress + 1], a
- hlcoord 0, 0
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- ld a, $6f
- call ByteFill
- hlcoord 0, 0, AttrMap
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- ld a, $7
- call ByteFill
- ld de, $15
- ld a, $6c
- call Function821d2
- ld de, $1a
- ld a, $6d
- call Function821d2
- ld de, $1f
- ld a, $6e
- call Function821d2
- ld de, $24
- ld a, $6f
- call Function821d2
- call Function821f4
- call Function8220f
- call Function3200
- ld [wJumptableIndex], a
- ld a, $40
- ld [hWY], a
- ret
-; 821d2
-
-Function821d2: ; 821d2
- hlcoord 0, 0
- call Function821de
-
-Function821d8: ; 821d8
- ld a, [wcf64]
- hlcoord 0, 0, AttrMap
-
-Function821de: ; 821de
- add hl, de
-rept 4
- ld [hli], a
-endr
- ld bc, $10
- add hl, bc
-rept 4
- ld [hli], a
-endr
- ld bc, $10
- add hl, bc
-rept 4
- ld [hli], a
-endr
- ret
-; 821f4
-
-Function821f4: ; 821f4
- hlcoord 2, 4
- call Function82203
- hlcoord 2, 6
- call Function82203
- hlcoord 2, 8
-
-Function82203: ; 82203
- ld a, $6a
- ld [hli], a
- ld bc, $10 - 1
- ld a, $6b
- call ByteFill
- ret
-; 8220f
-
-Function8220f: ; 8220f
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld a, [wcf64]
- ld l, a
- ld h, $0
-rept 3
- add hl, hl
-endr
- ld de, wMapPals
- add hl, de
- ld de, wc608
- ld bc, 8
- call CopyBytes
- ld de, wc608
- call Function81ea5
- pop af
- ld [rSVBK], a
- ret
-; 82236
-
-
-Function82236: ; 82236
- ld hl, hJoyLast
- ld a, [hl]
- and SELECT
- jr nz, .loop7
- ld a, [hl]
- and B_BUTTON
- jr nz, .asm_82299
- call Function822f0
- ret
-
-.loop7
- ld hl, wcf64
- ld a, [hl]
- inc a
- and $7
- cp $7
- jr nz, .asm_82253
- xor a
-
-.asm_82253
- ld [hl], a
- ld de, $15
- call Function821d8
- ld de, $1a
- call Function821d8
- ld de, $1f
- call Function821d8
- ld de, $24
- call Function821d8
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld hl, BGPals
- ld a, [wcf64]
- ld bc, 8
- call AddNTimes
- ld de, wc608
- ld bc, 8
- call CopyBytes
- pop af
- ld [rSVBK], a
- ld a, $2
- ld [hBGMapMode], a
- ld c, 3
- call DelayFrames
- ld a, $1
- ld [hBGMapMode], a
- ret
-
-.asm_82299
- call ClearSprites
- ld a, [hWY]
- xor $d0
- ld [hWY], a
- ret
-; 822a3
-
-Function822a3: ; 822a3
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld hl, BGPals
- ld a, [wcf64]
- ld bc, 8
- call AddNTimes
- ld e, l
- ld d, h
- ld hl, wc608
- ld bc, 8
- call CopyBytes
- hlcoord 1, 0
- ld de, wc608
- call Function81ca7
- hlcoord 6, 0
- ld de, wc608 + 2
- call Function81ca7
- hlcoord 11, 0
- ld de, wc608 + 4
- call Function81ca7
- hlcoord 16, 0
- ld de, wc608 + 6
- call Function81ca7
- pop af
- ld [rSVBK], a
- ld a, $1
- ld [hCGBPalUpdate], a
- call DelayFrame
- ret
-; 822f0
-
-Function822f0: ; 822f0
- ld a, [wcf65]
- and 3
- ld e, a
- ld d, 0
- ld hl, .jumptable
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-; 82301
-
-.jumptable: ; 82301
- dw Function82309
- dw Function82339
- dw Function8234b
- dw Function8235d
-; 82309
-
-Function82309: ; 82309
- ld hl, hJoyLast
- ld a, [hl]
- and D_DOWN
- jr nz, Function8238c
- ld a, [hl]
- and D_LEFT
- jr nz, .asm_8231c
- ld a, [hl]
- and D_RIGHT
- jr nz, .asm_82322
- ret
-
-.asm_8231c
- ld a, [wcf66]
- dec a
- jr .asm_82326
-
-.asm_82322
- ld a, [wcf66]
- inc a
-
-.asm_82326
- and $3
- ld [wcf66], a
- ld e, a
- ld d, $0
- ld hl, wc608
-rept 2
- add hl, de
-endr
- ld e, l
- ld d, h
- call Function81ea5
- ret
-
-Function82339: ; 82338
- ld hl, hJoyLast
- ld a, [hl]
- and D_DOWN
- jr nz, Function8238c
- ld a, [hl]
- and D_UP
- jr nz, Function82387
- ld hl, wc608 + 10
- jr Function82368
-
-Function8234b: ; 8234b
- ld hl, hJoyLast
- ld a, [hl]
- and D_DOWN
- jr nz, Function8238c
- ld a, [hl]
- and D_UP
- jr nz, Function82387
- ld hl, wc608 + 11
- jr Function82368
-
-Function8235d: ; 8235d
- ld hl, hJoyLast
- ld a, [hl]
- and D_UP
- jr nz, Function82387
- ld hl, wc608 + 12
-
-Function82368: ; 82368
- ld a, [hJoyLast]
- and D_RIGHT
- jr nz, .asm_82375
- ld a, [hJoyLast]
- and D_LEFT
- jr nz, .asm_8237c
- ret
-
-.asm_82375
- ld a, [hl]
- cp $1f
- ret nc
- inc [hl]
- jr .asm_82380
-
-.asm_8237c
- ld a, [hl]
- and a
- ret z
- dec [hl]
-
-.asm_82380
- call Function82391
- call Function822a3
- ret
-
-Function82387: ; 82387
- ld hl, wcf65
- dec [hl]
- ret
-
-Function8238c: ; 8238c
- ld hl, wcf65
- inc [hl]
- ret
-; 82391
-
-Function82391: ; 82391
- ld a, [wc608 + 10]
- and $1f
- ld e, a
- ld a, [wc608 + 11]
- and $7
- sla a
- swap a
- or e
- ld e, a
- ld a, [wc608 + 11]
- and $18
- sla a
- swap a
- ld d, a
- ld a, [wc608 + 12]
- and $1f
- sla a
- sla a
- or d
- ld d, a
- ld a, [wcf66]
- ld c, a
- ld b, $0
- ld hl, wc608
-rept 2
- add hl, bc
-endr
- ld a, e
- ld [hli], a
- ld [hl], d
- ret
-; 823c6
-
-Function823c6: ; 823c6
- ret
-
-Function823c7: ; 823c7
- ret
-; 823c8
-
+INCLUDE "engine/debug.asm"
SECTION "bank21", ROMX, BANK[$21]
-Function84000: ; 84000
- ld hl, OverworldMap
- lb bc, 4, 12
- xor a
- call Function842ab
- xor a
- ld [rSB], a
- ld [rSC], a
- ld [wc2d5], a
- ld hl, wc2d4
- set 0, [hl]
- ld a, [GBPrinter]
- ld [wcbfb], a
- xor a
- ld [wJumptableIndex], a
- ret
-; 84022
-
-Function84022: ; 84022
- ld a, [wJumptableIndex]
- ld e, a
- ld d, 0
- ld hl, Jumptable_84031
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-; 84031
-
-
-Jumptable_84031: ; 84031 (21:4031)
- dw Function84077
- dw Function84143
- dw Function84120
- dw Function84099
- dw Function84180
- dw Function8412e
- dw Function840c5
- dw Function84180
- dw Function84120
- dw Function840de
- dw Function84180
- dw Function84120
- dw Function841a1
- dw Function84063
- dw Function8406d
- dw Function84120
- dw Function84103
- dw Function84071
- dw Function841b0
- dw Function841b3
-
-
-Function84059: ; 84059 (21:4059)
- ld hl, wJumptableIndex
- inc [hl]
- ret
-
-Function8405e: ; 8405e (21:405e)
- ld hl, wJumptableIndex
- dec [hl]
- ret
-
-Function84063: ; 84063 (21:4063)
- xor a
- ld [wca89], a
- ld hl, wJumptableIndex
- set 7, [hl]
- ret
-
-Function8406d: ; 8406d (21:406d)
- call Function84059
- ret
-
-Function84071: ; 84071 (21:4071)
- ld a, $1
- ld [wJumptableIndex], a
- ret
-
-Function84077: ; 84077 (21:4077)
- call Function841fb
- ld hl, Unknown_842b7
- call Function841e2
- xor a
- ld [wca8e], a
- ld [wca8f], a
- ld a, [wcf65]
- ld [wca81], a
- call Function84059
- call Function841c3
- ld a, $1
- ld [wcbf8], a
- ret
-
-Function84099: ; 84099 (21:4099)
- call Function841fb
- ld hl, wca81
- ld a, [hl]
- and a
- jr z, Function840c5
- ld hl, Unknown_842c3
- call Function841e2
- call Function84260
- ld a, $80
- ld [wca8e], a
- ld a, $2
- ld [wca8f], a
- call Function84219
- call Function84059
- call Function841c3
- ld a, $2
- ld [wcbf8], a
- ret
-
-Function840c5: ; 840c5 (21:40c5)
- ld a, $6
- ld [wJumptableIndex], a
- ld hl, Unknown_842c9
- call Function841e2
- xor a
- ld [wca8e], a
- ld [wca8f], a
- call Function84059
- call Function841c3
- ret
-
-Function840de: ; 840de (21:40de)
- call Function841fb
- ld hl, Unknown_842bd
- call Function841e2
- call Function84249
- ld a, $4
- ld [wca8e], a
- ld a, $0
- ld [wca8f], a
- call Function84219
- call Function84059
- call Function841c3
- ld a, $3
- ld [wcbf8], a
- ret
-
-Function84103: ; 84103 (21:4103)
- call Function841fb
- ld hl, Unknown_842b7
- call Function841e2
- xor a
- ld [wca8e], a
- ld [wca8f], a
- ld a, [wcf65]
- ld [wca81], a
- call Function84059
- call Function841c3
- ret
-
-Function84120: ; 84120 (21:4120)
- ld hl, wca8b
- inc [hl]
- ld a, [hl]
- cp $6
- ret c
- xor a
- ld [hl], a
- call Function84059
- ret
-
-Function8412e: ; 8412e (21:412e)
- ld hl, wca8b
- inc [hl]
- ld a, [hl]
- cp $6
- ret c
- xor a
- ld [hl], a
- ld hl, wca81
- dec [hl]
- call Function8405e
- call Function8405e
- ret
-
-Function84143: ; 84143 (21:4143)
- ld a, [wc2d5]
- and a
- ret nz
- ld a, [wca88]
- cp $ff
- jr nz, .printer_connected
- ld a, [wca89]
- cp $ff
- jr z, .printer_error
-
-.printer_connected
- ld a, [wca88]
- cp $81
- jr nz, .printer_error
- ld a, [wca89]
- cp $0
- jr nz, .printer_error
- ld hl, wc2d4
- set 1, [hl]
- ld a, $5
- ld [wca8a], a
- call Function84059
- ret
-
-.printer_error
- ld a, $ff
- ld [wca88], a
- ld [wca89], a
- ld a, $e
- ld [wJumptableIndex], a
- ret
-
-Function84180: ; 84180 (21:4180)
- ld a, [wc2d5]
- and a
- ret nz
- ld a, [wca89]
- and $f0
- jr nz, .asm_8419b
- ld a, [wca89]
- and $1
- jr nz, .asm_84197
- call Function84059
- ret
-.asm_84197
- call Function8405e
- ret
-.asm_8419b
- ld a, $12
- ld [wJumptableIndex], a
- ret
-
-Function841a1: ; 841a1 (21:41a1)
- ld a, [wc2d5]
- and a
- ret nz
- ld a, [wca89]
- and $f3
- ret nz
- call Function84059
- ret
-
-Function841b0: ; 841b0 (21:41b0)
- call Function84059
-
-Function841b3: ; 841b3 (21:41b3)
- ld a, [wc2d5]
- and a
- ret nz
- ld a, [wca89]
- and $f0
- ret nz
- xor a
- ld [wJumptableIndex], a
- ret
-
-Function841c3: ; 841c3 (21:41c3)
- ld a, [wc2d5]
- and a
- jr nz, Function841c3
- xor a
- ld [wca8c], a
- ld [wca8d], a
- ld a, $1
- ld [wc2d5], a
- ld a, $88
- ld [rSB], a
- ld a, $1
- ld [rSC], a
- ld a, $81
- ld [rSC], a
- ret
-
-Function841e2: ; 841e2 (21:41e2)
- ld a, [hli]
- ld [wca82], a
- ld a, [hli]
- ld [wca83], a
- ld a, [hli]
- ld [wca84], a
- ld a, [hli]
- ld [wca85], a
- ld a, [hli]
- ld [wca86], a
- ld a, [hl]
- ld [wca87], a
- ret
-
-Function841fb: ; 841fb (21:41fb)
- xor a
- ld hl, wca82
-rept 3
- ld [hli], a
-endr
- ld [hl], a
- ld hl, wca86
- ld [hli], a
- ld [hl], a
- xor a
- ld [wca8e], a
- ld [wca8f], a
- ld hl, OverworldMap
- ld bc, $280
- call Function842ab
- ret
-
-Function84219: ; 84219 (21:4219)
- ld hl, 0
- ld bc, $4
- ld de, wca82
- call Function8423c
- ld a, [wca8e]
- ld c, a
- ld a, [wca8f]
- ld b, a
- ld de, OverworldMap
- call Function8423c
- ld a, l
- ld [wca86], a
- ld a, h
- ld [wca87], a
- ret
-
-Function8423c: ; 8423c (21:423c)
- ld a, [de]
- inc de
- add l
- jr nc, .asm_84242
- inc h
-.asm_84242
- ld l, a
- dec bc
- ld a, c
- or b
- jr nz, Function8423c
- ret
-
-Function84249: ; 84249 (21:4249)
- ld a, $1
- ld [OverworldMap], a
- ld a, [wcbfa]
- ld [wc801], a
- ld a, $e4
- ld [wc802], a
- ld a, [wcbfb]
- ld [wc803], a
- ret
-
-Function84260: ; 84260 (21:4260)
- ld a, [wca81]
- xor $ff
- ld d, a
- ld a, [wcf65]
- inc a
- add d
- ld hl, wca90
- ld de, $28
-.asm_84271
- and a
- jr z, .asm_84278
- add hl, de
- dec a
- jr .asm_84271
-.asm_84278
- ld e, l
- ld d, h
- ld hl, OverworldMap
- ld c, $28
-.asm_8427f
- ld a, [de]
- inc de
- push bc
- push de
- push hl
- swap a
- ld d, a
- and $f0
- ld e, a
- ld a, d
- and $f
- ld d, a
- and $8
- ld a, d
- jr nz, .asm_84297
- or $90
- jr .asm_84299
-.asm_84297
- or $80
-.asm_84299
- ld d, a
- lb bc, $21, 1
- call Request2bpp
- pop hl
- ld de, $10
- add hl, de
- pop de
- pop bc
- dec c
- jr nz, .asm_8427f
- ret
-
-Function842ab: ; 842ab
- push de
- ld e, a
-.asm_842ad
- ld [hl], e
- inc hl
- dec bc
- ld a, c
- or b
- jr nz, .asm_842ad
- ld a, e
- pop de
- ret
-; 842b7
-
-Unknown_842b7: db 1, 0, $00, 0, 1, 0
-Unknown_842bd: db 2, 0, $04, 0, 0, 0
-Unknown_842c3: db 4, 0, $80, 2, 0, 0
-Unknown_842c9: db 4, 0, $00, 0, 4, 0
-Unknown_842cf: db 8, 0, $00, 0, 8, 0 ; unused
-Unknown_842d5: db 15, 0, $00, 0, 15, 0 ; unused
-; 842db
-
-
-Function842db:: ; 842db
- ld a, [wc2d5]
- add a
- ld e, a
- ld d, 0
- ld hl, Jumptable_842ea
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-; 842ea
-
-
-Jumptable_842ea: ; 842ea (21:42ea)
- dw Function8432f
- dw Function84330
- dw Function84339
- dw Function84343
- dw Function8434d
- dw Function84357
- dw Function84361
- dw Function8438b
- dw Function84395
- dw Function8439f
- dw Function843a8
- dw Function843b6
- dw Function84330
- dw Function843c0
- dw Function843c9
- dw Function843c9
- dw Function843c9
- dw Function843c0
- dw Function843c9
- dw Function8439f
- dw Function843a8
- dw Function843e6
- dw Function84330
- dw Function843d2
- dw Function843c9
- dw Function843c9
- dw Function843c9
- dw Function843d2
- dw Function843c9
- dw Function8439f
- dw Function843a8
- dw Function843b6
-
-
-Function8432a: ; 8432a (21:432a)
- ld hl, wc2d5
- inc [hl]
- ret
-
-Function8432f: ; 8432f (21:432f)
- ret
-
-Function84330: ; 84330 (21:4330)
- ld a, $33
- call Function843db
- call Function8432a
- ret
-
-Function84339: ; 84339 (21:4339)
- ld a, [wca82]
- call Function843db
- call Function8432a
- ret
-
-Function84343: ; 84343 (21:4343)
- ld a, [wca83]
- call Function843db
- call Function8432a
- ret
-
-Function8434d: ; 8434d (21:434d)
- ld a, [wca84]
- call Function843db
- call Function8432a
- ret
-
-Function84357: ; 84357 (21:4357)
- ld a, [wca85]
- call Function843db
- call Function8432a
- ret
-
-Function84361: ; 84361 (21:4361)
- ld hl, wca8e
- ld a, [hli]
- ld d, [hl]
- ld e, a
- or d
- jr z, .asm_84388
- dec de
- ld [hl], d
- dec hl
- ld [hl], e
- ld a, [wca8c]
- ld e, a
- ld a, [wca8d]
- ld d, a
- ld hl, OverworldMap
- add hl, de
- inc de
- ld a, e
- ld [wca8c], a
- ld a, d
- ld [wca8d], a
- ld a, [hl]
- call Function843db
- ret
-.asm_84388
- call Function8432a
-
-Function8438b: ; 8438b (21:438b)
- ld a, [wca86]
- call Function843db
- call Function8432a
- ret
-
-Function84395: ; 84395 (21:4395)
- ld a, [wca87]
- call Function843db
- call Function8432a
- ret
-
-Function8439f: ; 8439f (21:439f)
- ld a, $0
- call Function843db
- call Function8432a
- ret
-
-Function843a8: ; 843a8 (21:43a8)
- ld a, [rSB]
- ld [wca88], a
- ld a, $0
- call Function843db
- call Function8432a
- ret
-
-Function843b6: ; 843b6 (21:43b6)
- ld a, [rSB]
- ld [wca89], a
- xor a
- ld [wc2d5], a
- ret
-
-Function843c0: ; 843c0 (21:43c0)
- ld a, $f
- call Function843db
- call Function8432a
- ret
-
-Function843c9: ; 843c9 (21:43c9)
- ld a, $0
- call Function843db
- call Function8432a
- ret
-
-Function843d2: ; 843d2 (21:43d2)
- ld a, $8
- call Function843db
- call Function8432a
- ret
-
-Function843db: ; 843db (21:43db)
- ld [rSB], a
- ld a, $1
- ld [rSC], a
- ld a, $81
- ld [rSC], a
- ret
-
-Function843e6: ; 843e6 (21:43e6)
- ld a, [rSB]
- ld [wca89], a
- xor a
- ld [wc2d5], a
- ret
-
-Function843f0: ; 843f0
-.asm_843f0
- call JoyTextDelay
- call Function846f6
- jr c, .asm_8440f
- ld a, [wJumptableIndex]
- bit 7, a
- jr nz, .asm_8440d
- call Function84022
- call Function84757
- call Function84785
- call DelayFrame
- jr .asm_843f0
-
-.asm_8440d
- and a
- ret
-
-.asm_8440f
- scf
- ret
-; 84411
-
-Function84411: ; 84411
- xor a
- ld [wc2d4], a
- ld [wc2d5], a
- ret
-; 84419
-
-Function84419: ; 84419
- push af
- call Function84000
- pop af
- ld [wcbfa], a
- call Function84728
- ret
-; 84425
-
-Function84425: ; 84425
- call ReturnToMapFromSubmenu
- call Function84753
- ret
-; 8442c
-
-Function8442c: ; 8442c
- ld a, [wcf65]
- push af
- ld hl, VTiles1
- ld de, FontInversed
- lb bc, BANK(FontInversed), $80
- call Request1bpp
- xor a
- ld [$ffac], a
- call Function8474c
- ld a, [rIE]
- push af
- xor a
- ld [rIF], a
- ld a, $9
- ld [rIE], a
- call Function84000
- ld a, $10
- ld [wcbfa], a
- callba Function1dc1b0
- call ClearTileMap
- ld a, $e4
- call DmgToCgbBGPals
- call DelayFrame
- ld hl, hVBlank
- ld a, [hl]
- push af
- ld [hl], $4
- ld a, $8
- ld [wcf65], a
- call Function84742
- call Function843f0
- jr c, .asm_8449d
- call Function84411
- ld c, 12
- call DelayFrames
- xor a
- ld [hBGMapMode], a
- call Function84000
- ld a, $3
- ld [wcbfa], a
- callba Function1dc213
- call Function84742
- ld a, $4
- ld [wcf65], a
- call Function843f0
-
-.asm_8449d
- pop af
- ld [hVBlank], a
- call Function84411
- xor a
- ld [rIF], a
- pop af
- ld [rIE], a
- call Function84425
- ld c, $8
-.asm_844ae
- call LowVolume
- call DelayFrame
- dec c
- jr nz, .asm_844ae
- pop af
- ld [wcf65], a
- ret
-; 844bc
-
-Function844bc: ; 844bc (21:44bc)
- ld a, [wcf65]
- push af
- ld a, $9
- ld [wcf65], a
- ld a, e
- ld [wd004], a
- ld a, d
- ld [StartFlypoint], a
- ld a, b
- ld [EndFlypoint], a
- ld a, c
- ld [MovementBuffer], a
- xor a
- ld [$ffac], a
- ld [wd003], a
- call Function8474c
- ld a, [rIE]
- push af
- xor a
- ld [rIF], a
- ld a, $9
- ld [rIE], a
- ld hl, hVBlank
- ld a, [hl]
- push af
- ld [hl], $4
- xor a
- ld [hBGMapMode], a
- call Function84817
- ld a, $10
- call Function84419
- call Function84559
- jr c, .asm_84545
- call Function84411
- ld c, 12
- call DelayFrames
- xor a
- ld [hBGMapMode], a
- call Function8486f
- ld a, $0
- call Function84419
- call Function84559
- jr c, .asm_84545
- call Function84411
- ld c, 12
- call DelayFrames
- xor a
- ld [hBGMapMode], a
- call Function84893
- ld a, $0
- call Function84419
- call Function84559
- jr c, .asm_84545
- call Function84411
- ld c, 12
- call DelayFrames
- xor a
- ld [hBGMapMode], a
- call Function848b7
- ld a, $3
- call Function84419
- call Function84559
-.asm_84545
- pop af
- ld [hVBlank], a
- call Function84411
- xor a
- ld [rIF], a
- pop af
- ld [rIE], a
- call Function84425
- pop af
- ld [wcf65], a
- ret
-
-Function84559: ; 84559 (21:4559)
- call Function84742
- call Function843f0
- ret
-
-Function84560: ; 84560
- ld a, [wcf65]
- push af
- xor a
- ld [$ffac], a
- call Function8474c
- ld a, [rIE]
- push af
- xor a
- ld [rIF], a
- ld a, $9
- ld [rIE], a
- ld hl, hVBlank
- ld a, [hl]
- push af
- ld [hl], $4
- xor a
- ld [hBGMapMode], a
- call LoadTileMapToTempTileMap
- callba Function16dac
- ld a, $0
- call Function84419
- call Call_LoadTempTileMapToTileMap
- call Function84742
- ld a, $9
- ld [wcf65], a
-.asm_84597
- call JoyTextDelay
- call Function846f6
- jr c, .asm_845c0
- ld a, [wJumptableIndex]
- bit 7, a
- jr nz, .asm_845c0
- call Function84022
- ld a, [wJumptableIndex]
- cp $2
- jr nc, .asm_845b5
- ld a, $3
- ld [wca81], a
-
-.asm_845b5
- call Function84757
- call Function84785
- call DelayFrame
- jr .asm_84597
-
-.asm_845c0
- pop af
- ld [hVBlank], a
- call Function84411
- call Call_LoadTempTileMapToTileMap
- xor a
- ld [rIF], a
- pop af
- ld [rIE], a
- pop af
- ld [wcf65], a
- ret
-; 845d4
-
-Function845d4: ; 845d4
- call Function845db
- call Function84425
- ret
-; 845db
-
-Function845db: ; 845db
- ld a, [wcf65]
- push af
- xor a
- ld [$ffac], a
- call Function8474c
- ld a, [rIE]
- push af
- xor a
- ld [rIF], a
- ld a, $9
- ld [rIE], a
- xor a
- ld [hBGMapMode], a
- ld a, $13
- call Function84419
- ld hl, hVBlank
- ld a, [hl]
- push af
- ld [hl], $4
- ld a, $9
- ld [wcf65], a
- call Function843f0
- pop af
- ld [hVBlank], a
- call Function84411
- call Function84735
- xor a
- ld [rIF], a
- pop af
- ld [rIE], a
- pop af
- ld [wcf65], a
- ret
-; 8461a
-
-Function8461a: ; 8461a
- ld a, [wcf65]
- push af
- xor a
- ld [$ffac], a
- call Function8474c
- ld a, [rIE]
- push af
- xor a
- ld [rIF], a
- ld a, $9
- ld [rIE], a
- xor a
- ld [hBGMapMode], a
- callba Function1dc381
- ld a, $10
- call Function84419
- ld hl, hVBlank
- ld a, [hl]
- push af
- ld [hl], $4
- ld a, $8
- ld [wcf65], a
- call Function84742
- call Function843f0
- jr c, .asm_84671
- call Function84411
- ld c, 12
- call DelayFrames
- xor a
- ld [hBGMapMode], a
- callba Function1dc47b
- ld a, $3
- call Function84419
- ld a, $9
- ld [wcf65], a
- call Function84742
- call Function843f0
-
-.asm_84671
- pop af
- ld [hVBlank], a
- call Function84411
- call Function84735
- xor a
- ld [rIF], a
- pop af
- ld [rIE], a
- call Function84425
- pop af
- ld [wcf65], a
- ret
-; 84688
-
-_PrintDiploma: ; 84688
- ld a, [wcf65]
- push af
- callba Function1dd709
- xor a
- ld [$ffac], a
- call Function8474c
- ld a, [rIE]
- push af
- xor a
- ld [rIF], a
- ld a, $9
- ld [rIE], a
- ld hl, hVBlank
- ld a, [hl]
- push af
- ld [hl], $4
- ld a, $10
- call Function84419
- call Function84742
- ld a, $9
- ld [wcf65], a
- call Function843f0
- jr c, .asm_846e2
- call Function84411
- ld c, 12
- call DelayFrames
- call LoadTileMapToTempTileMap
- xor a
- ld [hBGMapMode], a
- callba Function1dd7ae
- ld a, $3
- call Function84419
- call Call_LoadTempTileMapToTileMap
- call Function84742
- ld a, $9
- ld [wcf65], a
- call Function843f0
-
-.asm_846e2
- pop af
- ld [hVBlank], a
- call Function84411
- xor a
- ld [rIF], a
- pop af
- ld [rIE], a
- call Function84425
- pop af
- ld [wcf65], a
- ret
-; 846f6
-
-Function846f6: ; 846f6
- ld a, [hJoyDown]
- and B_BUTTON
- jr nz, .asm_846fe
- and a
- ret
-
-.asm_846fe
- ld a, [wca80]
- cp $c
- jr nz, .asm_84722
-.asm_84705
- ld a, [wc2d5]
- and a
- jr nz, .asm_84705
- ld a, $16
- ld [wc2d5], a
- ld a, $88
- ld [rSB], a
- ld a, $1
- ld [rSC], a
- ld a, $81
- ld [rSC], a
-.asm_8471c
- ld a, [wc2d5]
- and a
- jr nz, .asm_8471c
-
-.asm_84722
- ld a, $1
- ld [$ffac], a
- scf
- ret
-; 84728
-
-Function84728: ; 84728
- hlcoord 0, 0
- ld de, wca90
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- call CopyBytes
- ret
-; 84735
-
-Function84735: ; 84735
- ld hl, wca90
- decoord 0, 0
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- call CopyBytes
- ret
-; 84742
-
-Function84742: ; 84742
- xor a
- ld [hJoyReleased], a
- ld [hJoyPressed], a
- ld [hJoyDown], a
- ld [hJoyLast], a
- ret
-; 8474c
-
-Function8474c: ; 8474c
- ld de, MUSIC_PRINTER
- call PlayMusic2
- ret
-; 84753
-
-Function84753: ; 84753
- call RestartMapMusic
- ret
-; 84757
-
-Function84757: ; 84757
- ld a, [wca88]
- cp -1
- jr nz, .printer_connected
- ld a, [wca89]
- cp -1
- jr z, .error_2
-
-.printer_connected
- ld a, [wca89]
- and %11100000
- ret z ; no error
-
- bit 7, a
- jr nz, .error_1
- bit 6, a
- jr nz, .error_4
- ld a, 6 ; error 3
- jr .load_text_index
-
-.error_4
- ld a, 7 ; error 4
- jr .load_text_index
-
-.error_1
- ld a, 4 ; error 1
- jr .load_text_index
-
-.error_2
- ld a, 5 ; error 2
-
-.load_text_index
- ld [wcbf8], a
- ret
-; 84785
-
-Function84785: ; 84785
- ld a, [wcbf8]
- and a
- ret z
- push af
- xor a
- ld [hBGMapMode], a
- hlcoord 0, 5
- lb bc, 10, 18
- call TextBox
- pop af
- ld e, a
- ld d, 0
- ld hl, PrinterStatusStringPointers
-rept 2
- add hl, de
-endr
- ld e, [hl]
- inc hl
- ld d, [hl]
- hlcoord 1, 7
- ld a, BANK(GBPrinterStrings)
- call FarString
- hlcoord 2, 15
- ld de, String_PressBToCancel
- call PlaceString
- ld a, $1
- ld [hBGMapMode], a
- xor a
- ld [wcbf8], a
- ret
-; 847bd
-
-Function847bd: ; 847bd
- ld a, [wcbf8]
- and a
- ret z
- push af
- xor a
- ld [hBGMapMode], a
- hlcoord 2, 4
- lb bc, 13, 16
- call ClearBox
- pop af
- ld e, a
- ld d, 0
- ld hl, PrinterStatusStringPointers
-rept 2
- add hl, de
-endr
- ld e, [hl]
- inc hl
- ld d, [hl]
- hlcoord 4, 7
- ld a, BANK(GBPrinterStrings)
- call FarString
- hlcoord 4, 15
- ld de, String_PressBToCancel
- call PlaceString
- ld a, $1
- ld [hBGMapMode], a
- xor a
- ld [wcbf8], a
- ret
-; 847f5
-
-String_PressBToCancel:
- db "Press B to Cancel@"
-; 84807
-
-PrinterStatusStringPointers: ; 84807
- dw String_1dc275 ; @
- dw String_1dc276 ; CHECKING LINK
- dw String_1dc289 ; TRANSMITTING
- dw String_1dc29c ; PRINTING
- dw String_1dc2ad ; error 1
- dw String_1dc2e2 ; error 2
- dw String_1dc317 ; error 3
- dw String_1dc34c ; error 4
-; 84817
-
-Function84817: ; 84817 (21:4817)
- xor a
- ld [wd002], a
- hlcoord 0, 0
- ld bc, SCREEN_HEIGHT * SCREEN_WIDTH
- ld a, " "
- call ByteFill
- call Function84a0e
- hlcoord 0, 0
- ld bc, 9 * SCREEN_WIDTH
- ld a, " "
- call ByteFill
- call Function849e9
- call Function849d7
- hlcoord 4, 3
- ld de, String_84865
- call PlaceString
- ld a, [wd007]
- ld bc, BOX_NAME_LENGTH
- ld hl, wBoxNames
- call AddNTimes
- ld d, h
- ld e, l
- hlcoord 6, 5
- call PlaceString
- ld a, $1
- call Function849c6
- hlcoord 2, 9
- ld c, $3
- call Function848e7
- ret
-; 84865 (21:4865)
-
-String_84865:
- db "#MON LIST@"
-; 8486f
-
-Function8486f: ; 8486f (21:486f)
- hlcoord 0, 0
- ld bc, SCREEN_HEIGHT * SCREEN_WIDTH
- ld a, " "
- call ByteFill
- call Function84a0e
- call Function849e9
- ld a, [wd003]
- and a
- ret nz
- ld a, $4
- call Function849c6
- hlcoord 2, 0
- ld c, $6
- call Function848e7
- ret
-
-Function84893: ; 84893 (21:4893)
- hlcoord 0, 0
- ld bc, SCREEN_HEIGHT * SCREEN_WIDTH
- ld a, " "
- call ByteFill
- call Function84a0e
- call Function849e9
- ld a, [wd003]
- and a
- ret nz
- ld a, $a
- call Function849c6
- hlcoord 2, 0
- ld c, $6
- call Function848e7
- ret
-
-Function848b7: ; 848b7 (21:48b7)
- hlcoord 0, 0
- ld bc, SCREEN_HEIGHT * SCREEN_WIDTH
- ld a, " "
- call ByteFill
- call Function84a0e
- hlcoord 1, 15
- lb bc, 2, 18
- call ClearBox
- call Function849e9
- call Function849fc
- ld a, [wd003]
- and a
- ret nz
- ld a, $10
- call Function849c6
- hlcoord 2, 0
- ld c, $5
- call Function848e7
- ret
-
-Function848e7: ; 848e7 (21:48e7)
- ld a, [EndFlypoint]
- call GetSRAMBank
-
-Function848ed: ; 848ed (21:48ed)
- ld a, c
- and a
- jp z, Function84986
- dec c
- ld a, [de]
- cp $ff
- jp z, Function84981
- ld [wd265], a
- ld [CurPartySpecies], a
- push bc
- push hl
- push de
- push hl
- ld bc, $10
- ld a, " "
- call ByteFill
- pop hl
- push hl
- call GetBasePokemonName
- pop hl
- push hl
- call PlaceString
- ld a, [CurPartySpecies]
- cp $fd
- pop hl
- jr z, .ok2
- ld bc, $b
- add hl, bc
- call Function8498a
- ld bc, $9
- add hl, bc
- ld a, $f3
- ld [hli], a
- push hl
- ld bc, $e
- ld a, " "
- call ByteFill
- pop hl
- push hl
- ld a, [wd004]
- ld l, a
- ld a, [StartFlypoint]
- ld h, a
- ld bc, $372
- add hl, bc
- ld bc, $b
- ld a, [wd002]
- call AddNTimes
- ld e, l
- ld d, h
- pop hl
- push hl
- call PlaceString
- pop hl
- ld bc, $b
- add hl, bc
- push hl
- ld a, [wd004]
- ld l, a
- ld a, [StartFlypoint]
- ld h, a
- ld bc, $35
- add hl, bc
- ld bc, $20
- ld a, [wd002]
- call AddNTimes
- ld a, [hl]
- pop hl
- call Function383d
-.ok2
- ld hl, wd002
- inc [hl]
- pop de
- pop hl
- ld bc, $3c
- add hl, bc
- pop bc
- inc de
- jp Function848ed
-
-Function84981: ; 84981 (21:4981)
- ld a, $1
- ld [wd003], a
-
-Function84986: ; 84986 (21:4986)
- call CloseSRAM
- ret
-
-Function8498a: ; 8498a (21:498a)
- push hl
- ld a, [wd004]
- ld l, a
- ld a, [StartFlypoint]
- ld h, a
- ld bc, $2b
- add hl, bc
- ld bc, $20
- ld a, [wd002]
- call AddNTimes
- ld de, TempMonDVs
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hli]
- ld [de], a
- ld a, [wd002]
- ld [CurPartyMon], a
- ld a, $3
- ld [MonType], a
- callba GetGender
- ld a, $7f
- jr c, .asm_849c3
- ld a, $ef
- jr nz, .asm_849c3
- ld a, $f5
-.asm_849c3
- pop hl
- ld [hli], a
- ret
-
-Function849c6: ; 849c6 (21:49c6)
- push hl
- ld e, a
- ld d, $0
- ld a, [wd004]
- ld l, a
- ld a, [StartFlypoint]
- ld h, a
- add hl, de
- ld e, l
- ld d, h
- pop hl
- ret
-
-Function849d7: ; 849d7 (21:49d7)
- hlcoord 0, 0
- ld a, $79
- ld [hli], a
- ld a, $7a
- ld c, $12
-.asm_849e1
- ld [hli], a
- dec c
- jr nz, .asm_849e1
- ld a, $7b
- ld [hl], a
- ret
-
-Function849e9: ; 849e9 (21:49e9)
- hlcoord 0, 0
- ld de, $13
- ld c, $12
-.asm_849f1
- ld a, $7c
- ld [hl], a
- add hl, de
- ld a, $7c
- ld [hli], a
- dec c
- jr nz, .asm_849f1
- ret
-
-Function849fc: ; 849fc (21:49fc)
- hlcoord 0, 17
- ld a, $7d
- ld [hli], a
- ld a, $7a
- ld c, $12
-.asm_84a06
- ld [hli], a
- dec c
- jr nz, .asm_84a06
- ld a, $7e
- ld [hl], a
- ret
-
-Function84a0e: ; 84a0e (21:4a0e)
- hlcoord 2, 0
- ld c, $6
-.asm_84a13
- push bc
- push hl
- ld de, String84a25
- call PlaceString
- pop hl
- ld bc, $3c
- add hl, bc
- pop bc
- dec c
- jr nz, .asm_84a13
- ret
-; 84a25 (21:4a25)
-
-String84a25: ; 84a25
- db " ------@"
-; 84a2e
-
+INCLUDE "engine/printer.asm"
INCLUDE "battle/anim_gfx.asm"
-
-HallOfFame:: ; 0x8640e
- call Function8648e
- ld a, [StatusFlags]
- push af
- ld a, 1
- ld [wc2cd], a
- call DisableSpriteUpdates
- ld a, SPAWN_LANCE
- ld [wSpawnAfterChampion], a
-
- ; Enable the Pokégear map to cycle through all of Kanto
- ld hl, StatusFlags
- set 6, [hl] ; hall of fame
-
- callba Function14da0
-
- ld hl, wHallOfFameCount
- ld a, [hl]
- cp 200
- jr nc, .ok
- inc [hl]
-.ok
- callba SaveGameData
- call GetHallOfFameParty
- callba AddHallOfFameEntry
-
- xor a
- ld [wc2cd], a
- call Function864c3
- pop af
- ld b, a
- callba Function109847
- ret
-; 0x86455
-
-RedCredits:: ; 86455
- ld a, MUSIC_NONE % $100
- ld [MusicFadeIDLo], a
- ld a, MUSIC_NONE / $100
- ld [MusicFadeIDHi], a
- ld a, $a
- ld [MusicFade], a
- callba FadeOutPalettes
- xor a
- ld [VramState], a
- ld [hMapAnims], a
- callba Function4e8c2
- ld c, 8
- call DelayFrames
- call DisableSpriteUpdates
- ld a, SPAWN_RED
- ld [wSpawnAfterChampion], a
- ld a, [StatusFlags]
- ld b, a
- callba Function109847
- ret
-; 8648e
-
-Function8648e: ; 8648e
- ld a, MUSIC_NONE % $100
- ld [MusicFadeIDLo], a
- ld a, MUSIC_NONE / $100
- ld [MusicFadeIDHi], a
- ld a, 10
- ld [MusicFade], a
- callba FadeOutPalettes
- xor a
- ld [VramState], a
- ld [hMapAnims], a
- callba Function4e881
- ld c, 100
- jp DelayFrames
-; 864b4
-
-Function864b4: ; 864b4
- push de
- ld de, MUSIC_NONE
- call PlayMusic
- call DelayFrame
- pop de
- call PlayMusic
- ret
-; 864c3
-
-Function864c3: ; 864c3
- xor a
- ld [wJumptableIndex], a
- call Function8671c
- jr c, .done
- ld de, SCREEN_WIDTH
- call Function864b4
- xor a
- ld [wcf64], a
-.loop
- ld a, [wcf64]
- cp 6
- jr nc, .done
- ld hl, wc608 + 1
- ld bc, $10
- call AddNTimes
- ld a, [hl]
- cp -1
- jr z, .done
- push hl
- call Function865b5
- pop hl
- call Function8650c
- jr c, .done
- ld hl, wcf64
- inc [hl]
- jr .loop
-
-.done
- call Function86810
- ld a, $4
- ld [MusicFade], a
- call FadeToWhite
- ld c, 8
- call DelayFrames
- ret
-; 8650c
-
-Function8650c: ; 8650c
- call Function86748
- ld de, String_8652c
- hlcoord 1, 2
- call PlaceString
- call WaitBGMap
- decoord 6, 5
- ld c, $6
- predef Functiond066e
- ld c, 60
- call DelayFrames
- and a
- ret
-; 8652c
-
-String_8652c:
- db "New Hall of Famer!@"
-; 8653f
-
-
-GetHallOfFameParty: ; 8653f
- ld hl, OverworldMap
- ld bc, HOF_LENGTH
- xor a
- call ByteFill
- ld a, [wHallOfFameCount]
- ld de, OverworldMap
- ld [de], a
- inc de
- ld hl, PartySpecies
- ld c, 0
-.next
- ld a, [hli]
- cp -1
- jr z, .done
- cp EGG
- jr nz, .mon
- inc c
- jr .next
-
-.mon
- push hl
- push de
- push bc
-
- ld a, c
- ld hl, PartyMons
- ld bc, PARTYMON_STRUCT_LENGTH
- call AddNTimes
- ld c, l
- ld b, h
-
- ld hl, MON_SPECIES
- add hl, bc
- ld a, [hl]
- ld [de], a
- inc de
-
- ld hl, MON_ID
- add hl, bc
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hl]
- ld [de], a
- inc de
-
- ld hl, MON_DVS
- add hl, bc
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hl]
- ld [de], a
- inc de
-
- ld hl, MON_LEVEL
- add hl, bc
- ld a, [hl]
- ld [de], a
- inc de
-
- pop bc
- push bc
- ld a, c
- ld hl, PartyMonNicknames
- ld bc, PKMN_NAME_LENGTH
- call AddNTimes
- ld bc, PKMN_NAME_LENGTH - 1
- call CopyBytes
-
- pop bc
- inc c
- pop de
- ld hl, HOF_MON_LENGTH
- add hl, de
- ld e, l
- ld d, h
- pop hl
- jr .next
-
-.done
- ld a, $ff
- ld [de], a
- ret
-; 865b5
-
-Function865b5: ; 865b5
- push hl
- call ClearBGPalettes
- callba Function4e906
- pop hl
- ld a, [hli]
- ld [TempMonSpecies], a
- ld [CurPartySpecies], a
-rept 2
- inc hl
-endr
- ld a, [hli]
- ld [TempMonDVs], a
- ld a, [hli]
- ld [TempMonDVs + 1], a
- ld hl, TempMonDVs
- predef GetUnownLetter
- hlcoord 0, 0
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- ld a, " "
- call ByteFill
- ld de, VTiles2 tile $31
- predef GetBackpic
- ld a, $31
- ld [hFillBox], a
- hlcoord 6, 6
- lb bc, 6, 6
- predef FillBox
- ld a, $d0
- ld [hSCY], a
- ld a, $90
- ld [hSCX], a
- call WaitBGMap
- xor a
- ld [hBGMapMode], a
- ld b, SCGB_1A
- call GetSGBLayout
- call SetPalettes
- call Function86635
- xor a
- ld [wc2c6], a
- hlcoord 0, 0
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- ld a, " "
- call ByteFill
- hlcoord 6, 5
- call _PrepMonFrontpic
- call WaitBGMap
- xor a
- ld [hBGMapMode], a
- ld [hSCY], a
- call Function86643
- ret
-; 86635
-
-Function86635: ; 86635
-.loop
- ld a, [hSCX]
- cp $70
- ret z
- add $4
- ld [hSCX], a
- call DelayFrame
- jr .loop
-; 86643
-
-Function86643: ; 86643
-.loop
- ld a, [hSCX]
- and a
- ret z
-rept 2
- dec a
-endr
- ld [hSCX], a
- call DelayFrame
- jr .loop
-; 86650
-
-_HallOfFamePC: ; 86650
- call LoadFontsBattleExtra
- xor a
- ld [wJumptableIndex], a
-.loop
- call Function8671c
- ret c
- call Function86665
- ret c
- ld hl, wJumptableIndex
- inc [hl]
- jr .loop
-; 86665
-
-Function86665: ; 86665
- xor a
- ld [wcf64], a
-.next
- call Function86692
- jr c, .start_button
-.loop
- call JoyTextDelay
- ld hl, hJoyLast
- ld a, [hl]
- and B_BUTTON
- jr nz, .b_button
- ld a, [hl]
- and A_BUTTON
- jr nz, .a_button
- ld a, [hl]
- and START
- jr nz, .start_button
- call DelayFrame
- jr .loop
-
-.a_button
- ld hl, wcf64
- inc [hl]
- jr .next
-
-.b_button
- scf
- ret
-
-.start_button
- and a
- ret
-; 86692
-
-Function86692: ; 86692
-; Print the number of times the player has entered the Hall of Fame.
-; If that number is above 200, print "HOF Master!" instead.
- ld a, [wcf64]
- cp $6
- jr nc, .fail
- ld hl, wc608 + 1
- ld bc, $10
- call AddNTimes
- ld a, [hl]
- cp $ff
- jr nz, .okay
-
-.fail
- scf
- ret
-
-.okay
- push hl
- call ClearBGPalettes
- pop hl
- call Function86748
- ld a, [wc608]
- cp 200 + 1
- jr c, .print_num_hof
- ld de, String_866fc
- hlcoord 1, 2
- call PlaceString
- hlcoord 13, 2
- jr .finish
-
-.print_num_hof
- ld de, String_8670c
- hlcoord 1, 2
- call PlaceString
- hlcoord 2, 2
- ld de, wc608
- lb bc, 1, 3
- call PrintNum
- hlcoord 11, 2
-
-.finish
- ld de, String_866fb
- call PlaceString
- call WaitBGMap
- ld b, SCGB_1A
- call GetSGBLayout
- call SetPalettes
- decoord 6, 5
- ld c, $6
- predef Functiond066e
- and a
- ret
-; 866fb
-
-String_866fb:
- db "@"
-; 866fc
-
-String_866fc:
- db " HOF Master!@"
-; 8670c
-
-String_8670c:
- db " -Time Famer@"
-; 8671c
-
-
-Function8671c: ; 8671c
- ld a, [wJumptableIndex]
- cp NUM_HOF_TEAMS
- jr nc, .full
- ld hl, sHallOfFame
- ld bc, HOF_LENGTH
- call AddNTimes
- ld a, BANK(sHallOfFame)
- call GetSRAMBank
- ld a, [hl]
- and a
- jr z, .fail
- ld de, wc608
- ld bc, HOF_LENGTH
- call CopyBytes
- call CloseSRAM
- and a
- ret
-
-.fail
- call CloseSRAM
-
-.full
- scf
- ret
-; 86748
-
-Function86748: ; 86748
- xor a
- ld [hBGMapMode], a
- ld a, [hli]
- ld [TempMonSpecies], a
- ld a, [hli]
- ld [TempMonID], a
- ld a, [hli]
- ld [TempMonID + 1], a
- ld a, [hli]
- ld [TempMonDVs], a
- ld a, [hli]
- ld [TempMonDVs + 1], a
- ld a, [hli]
- ld [TempMonLevel], a
- ld de, StringBuffer2
- ld bc, 10
- call CopyBytes
- ld a, "@"
- ld [StringBuffer2 + 10], a
- hlcoord 0, 0
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- ld a, " "
- call ByteFill
- hlcoord 0, 0
- lb bc, 3, SCREEN_WIDTH - 2
- call TextBox
- hlcoord 0, 12
- lb bc, 4, SCREEN_WIDTH - 2
- call TextBox
- ld a, [TempMonSpecies]
- ld [CurPartySpecies], a
- ld [wd265], a
- ld hl, TempMonDVs
- predef GetUnownLetter
- xor a
- ld [wc2c6], a
- hlcoord 6, 5
- call _PrepMonFrontpic
- ld a, [CurPartySpecies]
- cp EGG
- jr z, .print_id_no
- hlcoord 1, 13
- ld a, $74
- ld [hli], a
- ld [hl], $f2
- hlcoord 3, 13
- ld de, wd265
- lb bc, PRINTNUM_LEADINGZEROS | 1, 3
- call PrintNum
- call GetBasePokemonName
- hlcoord 7, 13
- call PlaceString
- ld a, $3
- ld [MonType], a
- callba GetGender
- ld a, " "
- jr c, .got_gender
- ld a, "♂"
- jr nz, .got_gender
- ld a, "♀"
-
-.got_gender
- hlcoord 18, 13
- ld [hli], a
- hlcoord 8, 14
- ld a, "/"
- ld [hli], a
- ld de, StringBuffer2
- call PlaceString
- hlcoord 1, 16
- call PrintLevel
-
-.print_id_no
- hlcoord 7, 16
- ld a, "<ID>"
- ld [hli], a
- ld a, "№"
- ld [hli], a
- ld [hl], "/"
- hlcoord 10, 16
- ld de, TempMonID
- lb bc, PRINTNUM_LEADINGZEROS | 2, 5
- call PrintNum
- ret
-; 86810
-
-Function86810: ; 86810
- call ClearBGPalettes
- ld hl, VTiles2 tile $63
- ld de, FontExtra + $d0
- lb bc, BANK(FontExtra), 1
- call Request2bpp
- hlcoord 0, 0
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- ld a, " "
- call ByteFill
- callba GetPlayerBackpic
- ld a, $31
- ld [hFillBox], a
- hlcoord 6, 6
- lb bc, 6, 6
- predef FillBox
- ld a, $d0
- ld [hSCY], a
- ld a, $90
- ld [hSCX], a
- call WaitBGMap
- xor a
- ld [hBGMapMode], a
- ld [CurPartySpecies], a
- ld b, SCGB_1A
- call GetSGBLayout
- call SetPalettes
- call Function86635
- xor a
- ld [wc2c6], a
- hlcoord 0, 0
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- ld a, " "
- call ByteFill
- callba Function88840
- xor a
- ld [hFillBox], a
- hlcoord 12, 5
- lb bc, 7, 7
- predef FillBox
- ld a, $c0
- ld [hSCX], a
- call WaitBGMap
- xor a
- ld [hBGMapMode], a
- ld [hSCY], a
- call Function86643
- xor a
- ld [hBGMapMode], a
- hlcoord 0, 2
- lb bc, 8, 9
- call TextBox
- hlcoord 0, 12
- lb bc, 4, 18
- call TextBox
- hlcoord 2, 4
- ld de, PlayerName
- call PlaceString
- hlcoord 1, 6
- ld a, $73
- ld [hli], a
- ld a, $74
- ld [hli], a
- ld [hl], $f3
- hlcoord 4, 6
- ld de, PlayerID
- lb bc, PRINTNUM_LEADINGZEROS | 2, 5
- call PrintNum
- hlcoord 1, 8
- ld de, .PlayTime
- call PlaceString
- hlcoord 3, 9
- ld de, GameTimeHours
- lb bc, 2, 3
- call PrintNum
- ld [hl], $63
- inc hl
- ld de, GameTimeMinutes
- lb bc, PRINTNUM_LEADINGZEROS | 1, 2
- call PrintNum
- call WaitBGMap
- callba Function26601
- ret
-; 868ed
-
-.PlayTime
- db "PLAY TIME@"
-; 868f7
-
+INCLUDE "event/halloffame.asm"
SECTION "bank22", ROMX, BANK[$22]
@@ -29053,543 +25175,6 @@ Function8cf4f: ; 8cf4f
INCLUDE "engine/sprites.asm"
-Function8e79d: ; 8e79d
- ld a, [hSGB]
- ld de, GFX_8e7f4
- and a
- jr z, .asm_8e7a8
- ld de, GFX_8e804
-
-.asm_8e7a8
- ld hl, VTiles0
- lb bc, BANK(GFX_8e7f4), 1
- call Request2bpp
- ld c, $8
- ld d, $0
-.asm_8e7b5
- push bc
- call Function8e7c6
- call DelayFrame
- pop bc
-rept 2
- inc d
-endr
- dec c
- jr nz, .asm_8e7b5
- call ClearSprites
- ret
-; 8e7c6
-
-Function8e7c6: ; 8e7c6
- ld hl, Sprites
- ld c, $8
-.asm_8e7cb
- ld a, c
- and a
- ret z
- dec c
- ld a, c
- sla a
- sla a
- sla a
- push af
- push de
- push hl
- call Function8e72c
- pop hl
- pop de
- add $68
- ld [hli], a
- pop af
- push de
- push hl
- call Function8e72a
- pop hl
- pop de
- add $54
- ld [hli], a
- ld a, $0
- ld [hli], a
- ld a, $6
- ld [hli], a
- jr .asm_8e7cb
-; 8e7f4
-
-GFX_8e7f4: ; 8e7f4
-INCBIN "gfx/unknown/08e7f4.2bpp"
-GFX_8e804: ; 8e804
-INCBIN "gfx/unknown/08e804.2bpp"
-
-InefficientlyClear121BytesAtwc300: ; 8e814
- push hl
- push de
- push bc
- push af
- ld hl, wc300
- ld bc, wc3c1 - wc300
-.loop
- ld [hl], $0
- inc hl
- dec bc
- ld a, c
- or b
- jr nz, .loop
- pop af
- pop bc
- pop de
- pop hl
- ret
-; 8e82b
-
-Function8e82b: ; 8e82b
- ld a, e
- call ReadMonMenuIcon
- ld l, a
- ld h, 0
- add hl, hl
- ld de, IconPointers
- add hl, de
- ld a, [hli]
- ld e, a
- ld d, [hl]
- ld b, BANK(Icons)
- ld c, 8
- ret
-; 8e83f
-
-Function8e83f: ; 8e83f
- push hl
- push de
- push bc
- call Function8e849
- pop bc
- pop de
- pop hl
- ret
-; 8e849
-
-Function8e849: ; 8e849
- ld d, 0
- ld hl, Jumptable_8e854
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-; 8e854
-
-
-Jumptable_8e854: ; 8e854 (23:6854)
- dw Function8e8d5
- dw Function8e961
- dw Function8e97d
- dw Function8e99a
- dw Function8e898
- dw Function8e8b1
- dw Function8e862
-
-
-Function8e862: ; 8e862 (23:6862)
- call Function8e908
- call Function8e86c
- call Function8e936
- ret
-
-Function8e86c: ; 8e86c (23:686c)
- push bc
- ld a, [hObjectStructIndexBuffer]
- ld hl, PartyMon1Item
- ld bc, PARTYMON_STRUCT_LENGTH
- call AddNTimes
- pop bc
- ld a, [hl]
- and a
- jr z, .asm_8e890
- push hl
- push bc
- ld d, a
- callab ItemIsMail
- pop bc
- pop hl
- jr c, .asm_8e88e
- ld a, $6
- jr .asm_8e892
-.asm_8e88e
- ld a, $5
-.asm_8e890
- ld a, $4
-.asm_8e892
- ld hl, $1
- add hl, bc
- ld [hl], a
- ret
-
-Function8e898: ; 8e898 (23:6898)
- call Function8e8d5
- ld hl, $2
- add hl, bc
- ld a, $0
- ld [hl], a
- ld hl, $4
- add hl, bc
- ld a, $48
- ld [hl], a
- ld hl, $5
- add hl, bc
- ld a, $48
- ld [hl], a
- ret
-
-Function8e8b1: ; 8e8b1 (23:68b1)
- call Function8e908
- call Function8e936
- ld hl, $2
- add hl, bc
- ld a, $0
- ld [hl], a
- ld hl, $4
- add hl, bc
- ld a, $18
- ld [hl], a
- ld hl, $5
- add hl, bc
- ld a, $60
- ld [hl], a
- ld a, c
- ld [wc608], a
- ld a, b
- ld [wc608 + 1], a
- ret
-
-Function8e8d5: ; 8e8d5 (23:68d5)
- call Function8e908
- call Function8e8df
- call Function8e936
- ret
-
-Function8e8df: ; 8e8df (23:68df)
- push bc
- ld a, [hObjectStructIndexBuffer]
- ld hl, PartyMon1Item
- ld bc, $30
- call AddNTimes
- pop bc
- ld a, [hl]
- and a
- ret z
- push hl
- push bc
- ld d, a
- callab ItemIsMail
- pop bc
- pop hl
- jr c, .asm_8e900
- ld a, $3
- jr .asm_8e902
-.asm_8e900
- ld a, $2
-.asm_8e902
- ld hl, $1
- add hl, bc
- ld [hl], a
- ret
-
-Function8e908: ; 8e908 (23:6908)
- ld a, [wc3b7]
- push af
- ld a, [hObjectStructIndexBuffer]
- ld hl, PartySpecies
- ld e, a
- ld d, $0
- add hl, de
- ld a, [hl]
- call ReadMonMenuIcon
- ld [CurIcon], a
- call Function8e9db
- ld a, [hObjectStructIndexBuffer]
-; y coord
-rept 4
- add a
-endr
- add $1c
- ld d, a
-; x coord
- ld e, $10
-; type is partymon icon
- ld a, SPRITE_ANIM_INDEX_00
- call InitSpriteAnimStruct
- pop af
- ld hl, $3
- add hl, bc
- ld [hl], a
- ret
-
-Function8e936: ; 8e936 (23:6936)
- push bc
- ld a, [hObjectStructIndexBuffer]
- ld b, a
- call Function8e94c
- ld a, b
- pop bc
- ld hl, $9
- add hl, bc
- ld [hl], a
- rlca
- rlca
- ld hl, $d
- add hl, bc
- ld [hl], a
- ret
-
-Function8e94c: ; 8e94c (23:694c)
- callba PlacePartymonHPBar
- call GetHPPal
- ld e, d
- ld d, 0
- ld hl, Unknown_8e95e
- add hl, de
- ld b, [hl]
- ret
-; 8e95e (23:695e)
-
-Unknown_8e95e: ; 8e95e
- db $00, $40, $80
-; 8e961
-
-Function8e961: ; 8e961 (23:6961)
- ld a, [wd265]
- call ReadMonMenuIcon
- ld [CurIcon], a
- xor a
- call GetIconGFX
- lb de, $24, $20
- ld a, SPRITE_ANIM_INDEX_00
- call InitSpriteAnimStruct
- ld hl, $2
- add hl, bc
- ld [hl], $0
- ret
-
-Function8e97d: ; 8e97d (23:697d)
- ld a, [wd265]
- call ReadMonMenuIcon
- ld [CurIcon], a
- xor a
- call GetIconGFX
- ld d, $1a
- ld e, $24
- ld a, SPRITE_ANIM_INDEX_00
- call InitSpriteAnimStruct
- ld hl, $2
- add hl, bc
- ld [hl], $0
- ret
-
-Function8e99a: ; 8e99a (23:699a)
- ld a, [wd265]
- call ReadMonMenuIcon
- ld [CurIcon], a
- ld a, $62
- ld [wc3b7], a
- call Function8e9db
- ret
-
-GetSpeciesIcon: ; 8e9ac
-; Load species icon into VRAM at tile a
- push de
- ld a, [wd265]
- call ReadMonMenuIcon
- ld [CurIcon], a
- pop de
- ld a, e
- call GetIconGFX
- ret
-; 8e9bc
-
-
-Function8e9bc: ; 8e9bc (23:69bc)
- push de
- ld a, [wd265]
- call ReadMonMenuIcon
- ld [CurIcon], a
- pop de
- ld a, e
- call GetIcon_a
- ret
-; 8e9cc (23:69cc)
-
-Function8e9cc: ; 8e9cc
- push de
- ld a, [wd265]
- call ReadMonMenuIcon
- ld [CurIcon], a
- pop de
- call GetIcon_de
- ret
-; 8e9db
-
-Function8e9db: ; 8e9db (23:69db)
- ld a, [wc3b7]
-
-GetIconGFX: ; 8e9de
- call GetIcon_a
- ld de, $80 ; 8 tiles
- add hl, de
- ld de, HeldItemIcons
- lb bc, BANK(HeldItemIcons), 2
- call GetGFXUnlessMobile
- ld a, [wc3b7]
- add 10
- ld [wc3b7], a
- ret
-
-HeldItemIcons:
-INCBIN "gfx/icon/mail.2bpp"
-INCBIN "gfx/icon/item.2bpp"
-; 8ea17
-
-GetIcon_de: ; 8ea17
-; Load icon graphics into VRAM starting from tile de.
- ld l, e
- ld h, d
- jr GetIcon
-
-GetIcon_a: ; 8ea1b
-; Load icon graphics into VRAM starting from tile a.
- ld l, a
- ld h, 0
-
-GetIcon: ; 8ea1e
-; Load icon graphics into VRAM starting from tile hl.
-
-; One tile is 16 bytes long.
-rept 4
- add hl, hl
-endr
-
- ld de, VTiles0
- add hl, de
- push hl
-
-; The icons are contiguous, in order and of the same
-; size, so the pointer table is somewhat redundant.
- ld a, [CurIcon]
- push hl
- ld l, a
- ld h, 0
- add hl, hl
- ld de, IconPointers
- add hl, de
- ld a, [hli]
- ld e, a
- ld d, [hl]
- pop hl
-
- lb bc, BANK(Icons), 8
- call GetGFXUnlessMobile
-
- pop hl
- ret
-; 8ea3f
-
-GetGFXUnlessMobile: ; 8ea3f
- ld a, [wLinkMode]
- cp LINK_MOBILE
- jp nz, Request2bpp
- jp Get2bpp_2
-; 8ea4a
-
-Function8ea4a: ; 8ea4a
- ld hl, wc314
- ld e, $6
- ld a, [MenuSelection2]
- ld d, a
-.loop
- ld a, [hl]
- and a
- jr z, .next
- cp d
- jr z, .loadwithtwo
- ld a, $0
- jr .ok
-
-.loadwithtwo
- ld a, $2
-
-.ok
- push hl
- ld c, l
- ld b, h
- ld hl, $2
- add hl, bc
- ld [hl], a
- pop hl
-
-.next
- ld bc, $10
- add hl, bc
- dec e
- jr nz, .loop
- ret
-; 8ea71
-
-Function8ea71: ; 8ea71
- ld hl, wc314
- ld e, $6
-.loop
- ld a, [hl]
- and a
- jr z, .zero
- push hl
- ld c, l
- ld b, h
- ld hl, $2
- add hl, bc
- ld [hl], $1
- pop hl
-.zero
- ld bc, $10
- add hl, bc
- dec e
- jr nz, .loop
- ret
-; 8ea8c (23:6a8c)
-
-Function8ea8c: ; 8ea8c
- ld hl, wc314
- ld e, $6
- ld a, [wd0e3]
- ld d, a
-.asm_8ea95
- ld a, [hl]
- and a
- jr z, .asm_8eaab
- cp d
- jr z, .asm_8eaa0
- ld a, $3
- jr .asm_8eaa2
-.asm_8eaa0
- ld a, $2
-.asm_8eaa2
- push hl
- ld c, l
- ld b, h
- ld hl, $2
- add hl, bc
- ld [hl], a
- pop hl
-.asm_8eaab
- ld bc, $10
- add hl, bc
- dec e
- jr nz, .asm_8ea95
- ret
-
-
-INCLUDE "menu/mon_icons.asm"
-
SECTION "bank24", ROMX, BANK[$24]
@@ -29638,1095 +25223,7 @@ INCLUDE "engine/events_3.asm"
INCLUDE "engine/radio.asm"
-ReadPartyMonMail: ; b9229
- ld a, [CurPartyMon]
- ld hl, sPartyMail
- ld bc, MAIL_STRUCT_LENGTH
- call AddNTimes
- ld d, h
- ld e, l
-ReadAnyMail: ; b9237
- push de
- call ClearBGPalettes
- call ClearSprites
- call ClearTileMap
- call DisableLCD
- call LoadFontsExtra
- pop de
- push de
- ld a, BANK(sPartyMail)
- call GetSRAMBank
- callba Function1de5c8
- call CloseSRAM
- ld a, c
- ld de, GFX_1de5e6
- or a
- jr z, .asm_b9268
- ld de, GFX_1de9e6
- sub $3
- jr c, .asm_b9268
- ld de, GFX_1dede6
-
-.asm_b9268
- ld hl, VTiles1
- lb bc, BANK(GFX_1de5e6), $80
- call Get1bpp
- pop de
- call Functionb92b8
- call EnableLCD
- call WaitBGMap
- ld a, [wd1ec]
- ld e, a
- callba Function8cb4
- call SetPalettes
- xor a
- ld [hJoyPressed], a
- call Functionb929a
- call ClearBGPalettes
- call DisableLCD
- call LoadStandardFont
- jp EnableLCD
-; b929a
-
-Functionb929a: ; b929a
-.asm_b929a
- call GetJoypad
- ld a, [hJoyPressed]
- and A_BUTTON | B_BUTTON | START
- jr z, .asm_b929a
- and START
- jr nz, .asm_b92a8
- ret
-
-.asm_b92a8
- ld a, [wJumptableIndex]
- push af
- callab Function845d4
- pop af
- ld [wJumptableIndex], a
- jr .asm_b929a
-; b92b8
-
-Functionb92b8: ; b92b8
- ld h, d
- ld l, e
- push hl
- ld a, $0
- call GetSRAMBank
- ld de, $2b
- add hl, de
- ld a, [hli]
- ld [Buffer1], a
- ld a, [hli]
- ld [Buffer2], a
- ld a, [hli]
- ld [CurPartySpecies], a
- ld b, [hl]
- call CloseSRAM
- ld hl, Unknown_b92f8
- ld c, 0
-.asm_b92d9
- ld a, [hli]
- cp b
- jr z, .asm_b92ea
- cp $ff
- jr z, .asm_b92e6
- inc c
-rept 2
- inc hl
-endr
- jr .asm_b92d9
-
-.asm_b92e6
- ld hl, Unknown_b92f8
- inc hl
-
-.asm_b92ea
- ld a, c
- ld [wd1ec], a
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld de, .done
- pop bc
- push de
- jp [hl]
-.done
- ret
-; b92f8
-
-Unknown_b92f8: ; b92f8
- dbw FLOWER_MAIL, Functionb963e
- dbw SURF_MAIL, Functionb9317
- dbw LITEBLUEMAIL, Functionb9335
- dbw PORTRAITMAIL, Functionb96ca
- dbw LOVELY_MAIL, Functionb944b
- dbw EON_MAIL, Functionb93d2
- dbw MORPH_MAIL, Functionb94d6
- dbw BLUESKY_MAIL, Functionb9582
- dbw MUSIC_MAIL, Functionb9710
- dbw MIRAGE_MAIL, Functionb9776
- db $ff
-; b9317
-
-Functionb9317: ; b9317
- push bc
- ld hl, VTiles2 tile $31
- ld de, Unknown_b9d46
- ld c, $40
- call Functionb9915
- ld de, MailLaprasGFX
- ld c, $30
- call Functionb991e
- ld de, Unknown_b994e
- ld c, $8
- call Functionb9915
- jr Functionb9351
-
-Functionb9335: ; b9335
- push bc
- ld hl, VTiles2 tile $31
- ld de, Unknown_b9dc6
- ld c, $40
- call Functionb9915
- ld de, MailDratiniGFX
- ld c, $30
- call Functionb991e
- ld de, Unknown_b995e
- ld c, $8
- call Functionb9915
-
-Functionb9351: ; b9351
- ld de, Unknown_b9976
- ld c, $10
- call Functionb9915
- ld c, $10
- call Functionb990c
- ld de, Unknown_b9c3e
- ld c, $40
- call Functionb990c
- ld c, $40
- call Functionb9915
- call Functionb9858
- hlcoord 2, 15
- ld a, $3f
- call Functionb98d4
- ld a, $39
- hlcoord 15, 14
- call Functionb98fc
- ld a, $44
- hlcoord 2, 2
- call Functionb98ee
- hlcoord 15, 11
- call Functionb98ee
- ld a, $4c
- hlcoord 3, 12
- call Functionb98ee
- hlcoord 15, 2
- call Functionb98ee
- ld a, $50
- hlcoord 6, 3
- call Functionb98ee
- ld a, $40
- hlcoord 13, 2
- ld [hli], a
- hlcoord 6, 14
- ld [hl], a
- ld a, $41
- hlcoord 4, 5
- ld [hli], a
- hlcoord 17, 5
- ld [hli], a
- hlcoord 13, 12
- ld [hl], a
- ld a, $42
- hlcoord 9, 2
- ld [hli], a
- hlcoord 14, 5
- ld [hli], a
- hlcoord 3, 10
- ld [hl], a
- ld a, $43
- hlcoord 6, 11
- ld [hli], a
- pop hl
- jp Functionb9803
-; b93d2
-
-Functionb93d2: ; b93d2
- push bc
- ld hl, VTiles2 tile $31
- ld de, Unknown_b997e
- ld c, $8
- call Functionb9915
- ld de, Unknown_b998e
- ld c, $8
- call Functionb990c
- ld de, Unknown_b998e
- ld c, $8
- call Functionb990c
- ld de, Unknown_b997e
- ld c, $8
- call Functionb9915
- ld de, Unknown_b9d76
- ld c, $8
- call Functionb9915
- ld de, MailPikaGFX
- ld c, $30
- call Functionb991e
- ld hl, VTiles2 tile $3d
- ld de, Unknown_b9c9e
- ld c, $20
- call Functionb990c
- ld de, Unknown_b998e
- ld c, $8
- call Functionb9915
- ld a, $31
- hlcoord 0, 0
- call Functionb98a8
- hlcoord 1, 17
- call Functionb98a8
- ld a, $33
- hlcoord 0, 1
- call Functionb98ba
- hlcoord 19, 0
- call Functionb98ba
- hlcoord 2, 15
- ld a, $35
- call Functionb98d4
- inc a
- hlcoord 15, 14
- call Functionb98fc
- call Functionb9491
- pop hl
- jp Functionb9803
-; b944b
-
-Functionb944b: ; b944b
- push bc
- ld hl, VTiles2 tile $31
- ld de, Unknown_b9e26
- ld c, $28
- call Functionb9915
- ld de, MailPoliwagGFX
- ld c, $30
- call Functionb991e
- ld de, Unknown_b9966
- ld c, $8
- call Functionb9915
- ld de, Unknown_b9c5e
- ld c, $20
- call Functionb9915
- ld de, Unknown_b996e
- ld c, $8
- call Functionb990c
- call Functionb987b
- hlcoord 2, 15
- ld a, $3c
- call Functionb98d4
- ld a, $36
- hlcoord 15, 14
- call Functionb98fc
- call Functionb9491
- pop hl
- jp Functionb9803
-; b9491
-
-Functionb9491: ; b9491
- ld a, $3d
- hlcoord 2, 2
- call Functionb98ee
- hlcoord 16, 2
- call Functionb98ee
- hlcoord 9, 4
- call Functionb98ee
- hlcoord 2, 11
- call Functionb98ee
- hlcoord 6, 12
- call Functionb98ee
- hlcoord 12, 11
- call Functionb98ee
- ld a, $41
- hlcoord 5, 4
- ld [hl], a
- hlcoord 6, 2
- ld [hl], a
- hlcoord 12, 4
- ld [hl], a
- hlcoord 14, 2
- ld [hl], a
- hlcoord 3, 13
- ld [hl], a
- hlcoord 9, 11
- ld [hl], a
- hlcoord 16, 12
- ld [hl], a
- ret
-; b94d6
-
-Functionb94d6: ; b94d6
- push bc
- ld hl, VTiles2 tile $31
- ld bc, $28
- call Functionb97f8
- ld de, Unknown_b9c96
- ld c, 8
- call Functionb9915
- ld de, Unknown_b9c7e
- ld c, 8
- call Functionb9915
- ld de, Unknown_b993e
- ld c, 8
- call Functionb9915
- ld de, Unknown_b997e
- ld c, 8
- call Functionb990c
- ld de, Unknown_b9926
- ld c, 8
- call Functionb9915
- ld de, MailDittoGFX
- ld c, $30
- call Functionb991e
- call Functionb987b
- ld a, $31
- hlcoord 1, 1
- call Functionb98ee
- hlcoord 17, 15
- call Functionb98ee
- hlcoord 1, 3
- ld [hl], a
- hlcoord 3, 1
- ld [hl], a
- hlcoord 16, 16
- ld [hl], a
- hlcoord 18, 14
- ld [hl], a
- ld a, $36
- hlcoord 1, 4
- ld [hl], a
- hlcoord 2, 3
- ld [hl], a
- hlcoord 3, 2
- ld [hl], a
- hlcoord 4, 1
- ld [hl], a
- inc a
- hlcoord 15, 16
- ld [hl], a
- hlcoord 16, 15
- ld [hl], a
- hlcoord 17, 14
- ld [hl], a
- hlcoord 18, 13
- ld [hl], a
- inc a
- hlcoord 2, 15
- ld b, $e
- call Functionb98de
- inc a
- hlcoord 2, 11
- call Functionb98d4
- hlcoord 2, 5
- call Functionb98d4
- inc a
- hlcoord 6, 1
- call Functionb98d0
- hlcoord 1, 16
- call Functionb98d0
- inc a
- hlcoord 3, 13
- call Functionb98fc
- pop hl
- jp Functionb9803
-; b9582
-
-Functionb9582: ; b9582
- push bc
- ld hl, VTiles2 tile $31
- ld de, Unknown_b997e
- ld c, $8
- call Functionb9915
- ld a, $ff
- ld bc, $10
- call ByteFill
- ld de, Unknown_b992e
- ld c, $8
- call Functionb991e
- ld de, MailDragoniteGFX
- ld c, $b8
- call Functionb991e
- ld de, MailCloudGFX
- ld c, $30
- call Functionb990c
- ld de, Unknown_b9db6
- ld c, $8
- call Functionb990c
- ld de, MailCloudGFX
- ld c, $8
- call Functionb990c
- ld de, Unknown_b9d26
- ld c, $10
- call Functionb990c
- ld de, Unknown_b9d3e
- ld c, $8
- call Functionb990c
- ld a, $31
- hlcoord 0, 0
- call Functionb98dc
- hlcoord 0, 1
- call Functionb98e3
- hlcoord 19, 1
- call Functionb98e3
- inc a
- hlcoord 0, 17
- call Functionb98dc
- inc a
- hlcoord 0, 16
- call Functionb98dc
- inc a
- hlcoord 2, 2
- call Functionb9636
- hlcoord 3, 3
- call Functionb9636
- hlcoord 4, 4
- call Functionb9636
- dec hl
- ld [hl], $7f
- dec a
- hlcoord 15, 14
- call Functionb98ee
- add $4
- hlcoord 15, 16
- ld [hli], a
- inc a
- ld [hl], a
- inc a
- push af
- hlcoord 12, 1
- call Functionb98fc
- pop af
- hlcoord 15, 4
- call Functionb98fc
- inc a
- hlcoord 2, 11
- call Functionb98d4
- inc a
- hlcoord 10, 3
- call Functionb98ee
- pop hl
- jp Functionb9803
-; b9636
-
-Functionb9636: ; b9636
- ld b, $6
-.asm_b9638
- ld [hli], a
- inc a
- dec b
- jr nz, .asm_b9638
- ret
-; b963e
-
-Functionb963e: ; b963e
- push bc
- ld hl, VTiles2 tile $31
- ld de, Unknown_b9d86
- ld c, $40
- call Functionb990c
- ld de, MailOddishGFX
- ld c, $20
- call Functionb991e
- ld de, Unknown_b9db6
- ld c, $8
- call Functionb9915
- ld de, Unknown_b9cbe
- ld c, $20
- call Functionb990c
- ld c, $20
- call Functionb9915
- call Functionb9858
- hlcoord 2, 15
- ld a, $3d
- call Functionb98d4
- ld a, $39
- hlcoord 16, 13
- call Functionb98ee
- hlcoord 2, 13
- call Functionb98ee
- ld a, $3e
- hlcoord 2, 2
- call Functionb98ee
- hlcoord 5, 3
- call Functionb98ee
- hlcoord 10, 2
- call Functionb98ee
- hlcoord 16, 3
- call Functionb98ee
- hlcoord 5, 11
- call Functionb98ee
- hlcoord 16, 10
- call Functionb98ee
- ld a, $42
- hlcoord 3, 4
- call Functionb98ee
- hlcoord 12, 3
- call Functionb98ee
- hlcoord 14, 2
- call Functionb98ee
- hlcoord 2, 10
- call Functionb98ee
- hlcoord 14, 11
- call Functionb98ee
- pop hl
- jp Functionb9803
-; b96ca
-
-Functionb96ca: ; b96ca
- push bc
- ld hl, VTiles2 tile $31
- ld de, Unknown_b9e4e
- ld c, $28
- call Functionb9915
- ld de, Unknown_b995e
- ld c, $8
- call Functionb9915
- ld hl, VTiles2 tile $3d
- ld de, Unknown_b9bfe
- ld c, $20
- call Functionb990c
- ld de, Unknown_b9936
- ld c, $8
- call Functionb9915
- call Functionb987b
- hlcoord 8, 15
- ld a, $36
- ld b, $a
- call Functionb98de
- call Functionb9491
- ld a, $1
- ld [UnownLetter], a
- hlcoord 1, 10
- call PrepMonFrontpic
- pop hl
- jp Functionb9803
-; b9710
-
-Functionb9710: ; b9710
- push bc
- ld hl, VTiles2 tile $31
- ld de, Unknown_b9e06
- ld c, $20
- call Functionb9915
- ld de, Unknown_b993e
- ld c, $10
- call Functionb9915
- ld de, Unknown_b9996
- ld c, $30
- call Functionb991e
- xor a
- ld bc, $10
- call ByteFill
- ld de, Unknown_b9cfe
- ld c, $18
- call Functionb990c
- ld de, Unknown_b9946
- ld c, $8
- call Functionb990c
- ld a, $31
- hlcoord 0, 0
- call Functionb98a8
- hlcoord 1, 17
- call Functionb98a8
- ld a, $33
- hlcoord 0, 1
- call Functionb98ba
- hlcoord 19, 0
- call Functionb98ba
- ld a, $35
- hlcoord 2, 15
- call Functionb989e
- ld a, $37
- hlcoord 15, 14
- call Functionb98fc
- call Functionb9491
- pop hl
- jp Functionb9803
-; b9776
-
-Functionb9776: ; b9776
- push bc
- ld hl, VTiles2 tile $31
- ld bc, $28
- call Functionb97f8
- ld de, Unknown_b992e
- ld c, $8
- call Functionb9915
- ld de, MailMewGFX
- ld c, $90
- call Functionb9915
- ld de, Unknown_b9dce
- ld c, $8
- call Functionb990c
- ld de, Unknown_b9df6
- ld c, $8
- call Functionb990c
- call Functionb987b
- ld a, $36
- hlcoord 1, 16
- call Functionb98d8
- inc a
- hlcoord 15, 14
- call Functionb98fc
- inc a
- hlcoord 15, 16
- ld [hli], a
- inc a
- ld [hl], a
- ld a, $3f
- hlcoord 1, 1
- call Functionb98a8
- ld a, $41
- hlcoord 0, 2
- call Functionb98b5
- ld a, $43
- hlcoord 19, 2
- call Functionb98b5
- ld a, $45
- hlcoord 0, 1
- ld [hl], a
- inc a
- hlcoord 19, 1
- ld [hl], a
- inc a
- hlcoord 0, 16
- ld [hl], a
- inc a
- hlcoord 19, 16
- ld [hl], a
- inc a
- hlcoord 2, 5
- call Functionb98d4
- inc a
- hlcoord 2, 11
- call Functionb98d4
- pop hl
- jp Functionb9803
-; b97f8
-
-Functionb97f8: ; b97f8
-.asm_b97f8
- xor a
- ld [hli], a
- ld a, $ff
- ld [hli], a
- dec bc
- ld a, b
- or c
- jr nz, .asm_b97f8
- ret
-; b9803
-
-Functionb9803: ; b9803
- ld bc, $2f
- ld de, wd002
- ld a, $0
- call GetSRAMBank
- call CopyBytes
- call CloseSRAM
- ld hl, wd023
- ld de, wd050
- ld bc, $a
- call CopyBytes
- ld a, $50
- ld [wd023], a
- ld [wd05a], a
- ld de, wd002
- hlcoord 2, 7
- call PlaceString
- ld de, wd050
- ld a, [de]
- and a
- ret z
- ld a, [wd1ec]
- hlcoord 8, 14
- cp $3
- jr z, .asm_b984b
- hlcoord 6, 14
- cp $6
- jr z, .asm_b984b
- hlcoord 5, 14
-
-.asm_b984b
- jp PlaceString
-; b984e
-
-Functionb984e: ; b984e
-.asm_b984e
- ld a, [hl]
- xor $ff
- ld [hli], a
- dec bc
- ld a, b
- or c
- jr nz, .asm_b984e
- ret
-; b9858
-
-Functionb9858: ; b9858
- hlcoord 0, 0
- ld a, $31
- ld [hli], a
- inc a
- call Functionb98d8
- inc a
- ld [hli], a
- inc a
- call Functionb98e3
- ld a, $36
- ld [hli], a
- inc a
- call Functionb98d8
- hlcoord 19, 1
- ld a, $35
- call Functionb98e3
- ld a, $38
- ld [hl], a
- ret
-; b987b
-
-Functionb987b: ; b987b
- hlcoord 0, 0
- ld a, $31
- ld [hli], a
- inc a
- call Functionb98d8
- ld [hl], $31
- inc hl
- inc a
- call Functionb98e3
- ld [hl], $31
- inc hl
- inc a
- call Functionb98d8
- hlcoord 19, 1
- ld a, $35
- call Functionb98e3
- ld [hl], $31
- ret
-; b989e
-
-Functionb989e: ; b989e
- push af
- ld b, $7
- jr Functionb98ab
-
-Functionb98a3: ; b98a3
- push af
- ld b, $8
- jr Functionb98ab
-
-Functionb98a8: ; b98a8
- push af
- ld b, $9
-
-Functionb98ab: ; b98ab
- ld [hli], a
- inc a
- ld [hli], a
- dec a
- dec b
- jr nz, Functionb98ab
- ld [hl], a
- pop af
- ret
-; b98b5
-
-Functionb98b5: ; b98b5
- push af
- ld b, $7
- jr Functionb98bd
-
-Functionb98ba: ; b98ba
- push af
- ld b, $8
-
-Functionb98bd: ; b98bd
- ld [hl], a
- ld de, SCREEN_WIDTH
- add hl, de
- inc a
- ld [hl], a
- add hl, de
- dec a
- dec b
- jr nz, Functionb98bd
- ld [hl], a
- pop af
- ret
-; b98cc
-
-Functionb98cc: ; b98cc
- ld b, $7
- jr Functionb98de
-
-Functionb98d0: ; b98d0
- ld b, $d
- jr Functionb98de
-
-Functionb98d4: ; b98d4
- ld b, $10
- jr Functionb98de
-
-Functionb98d8: ; b98d8
- ld b, $12
- jr Functionb98de
-
-Functionb98dc: ; b98dc
- ld b, $14
-
-Functionb98de: ; b98de
- ld [hli], a
- dec b
- jr nz, Functionb98de
- ret
-; b98e3
-
-Functionb98e3: ; b98e3
- ld b, $10
- ld de, SCREEN_WIDTH
-.asm_b98e8
- ld [hl], a
- add hl, de
- dec b
- jr nz, .asm_b98e8
- ret
-; b98ee
-
-Functionb98ee: ; b98ee
- push af
- ld [hli], a
- inc a
- ld [hl], a
- ld bc, $13
- add hl, bc
- inc a
- ld [hli], a
- inc a
- ld [hl], a
- pop af
- ret
-; b98fc
-
-Functionb98fc: ; b98fc
- ld [hli], a
- inc a
- ld [hli], a
- inc a
- ld [hl], a
- ld bc, SCREEN_HEIGHT
- add hl, bc
- inc a
- ld [hli], a
- inc a
- ld [hli], a
- inc a
- ld [hl], a
- ret
-; b990c
-
-Functionb990c: ; b990c
-.asm_b990c
- ld a, [de]
- inc de
- ld [hli], a
- xor a
- ld [hli], a
- dec c
- jr nz, .asm_b990c
- ret
-; b9915
-
-Functionb9915: ; b9915
-.asm_b9915
- xor a
- ld [hli], a
- ld a, [de]
- inc de
- ld [hli], a
- dec c
- jr nz, .asm_b9915
- ret
-; b991e
-
-Functionb991e: ; b991e
-.asm_b991e
- ld a, [de]
- inc de
-rept 2
- ld [hli], a
-endr
- dec c
- jr nz, .asm_b991e
- ret
-; b9926
-
-Unknown_b9926: ; b9926
-INCBIN "gfx/unknown/0b9926.1bpp"
-
-Unknown_b992e: ; b992e
-INCBIN "gfx/unknown/0b992e.1bpp"
-
-Unknown_b9936: ; b9936
-INCBIN "gfx/unknown/0b9936.1bpp"
-
-Unknown_b993e: ; b993e
-INCBIN "gfx/unknown/0b993e.1bpp"
-
-Unknown_b9946: ; b9946
-INCBIN "gfx/unknown/0b9946.1bpp"
-
-Unknown_b994e: ; b994e
-INCBIN "gfx/unknown/0b994e.1bpp"
-
-Unknown_b995e: ; b995e
-INCBIN "gfx/unknown/0b995e.1bpp"
-
-Unknown_b9966: ; b9966
-INCBIN "gfx/unknown/0b9966.1bpp"
-
-Unknown_b996e: ; b996e
-INCBIN "gfx/unknown/0b996e.1bpp"
-
-Unknown_b9976: ; b9976
-INCBIN "gfx/unknown/0b9976.1bpp"
-
-Unknown_b997e: ; b997e
-INCBIN "gfx/unknown/0b997e.1bpp"
-
-Unknown_b998e: ; b998e
-INCBIN "gfx/unknown/0b998e.1bpp"
-
-Unknown_b9996: ; b9996
-INCBIN "gfx/unknown/0b9996.1bpp"
-
-MailDratiniGFX: ; b99c6
-INCBIN "gfx/unknown/0b99c6.1bpp"
-
-MailPoliwagGFX: ; b99f6
-INCBIN "gfx/unknown/0b99f6.1bpp"
-
-MailLaprasGFX: ; b9a26
-INCBIN "gfx/unknown/0b9a26.1bpp"
-
-MailPikaGFX: ; b9a56
-INCBIN "gfx/unknown/0b9a56.1bpp"
-
-MailDittoGFX: ; b9a86
-INCBIN "gfx/unknown/0b9a86.1bpp"
-
-MailMewGFX: ; b9ab6
-INCBIN "gfx/unknown/0b9ab6.1bpp"
-
-MailDragoniteGFX: ; b9b46
-INCBIN "gfx/unknown/0b9b46.1bpp"
-
-MailSentretGFX: ; b9bce
-INCBIN "gfx/unknown/0b9bce.1bpp"
-
-Unknown_b9bee: ; b9bee
-INCBIN "gfx/unknown/0b9bee.1bpp"
-
-Unknown_b9bfe: ; b9bfe
-INCBIN "gfx/unknown/0b9bfe.1bpp"
-
-MailOddishGFX: ; b9c1e
-INCBIN "gfx/unknown/0b9c1e.1bpp"
-
-Unknown_b9c3e: ; b9c3e
-INCBIN "gfx/unknown/0b9c3e.1bpp"
-
-Unknown_b9c5e: ; b9c5e
-INCBIN "gfx/unknown/0b9c5e.1bpp"
-
-Unknown_b9c7e: ; b9c7e
-INCBIN "gfx/unknown/0b9c7e.1bpp"
-
-Unknown_b9c96: ; b9c96
-INCBIN "gfx/unknown/0b9c96.1bpp"
-
-Unknown_b9c9e: ; b9c9e
-INCBIN "gfx/unknown/0b9c9e.1bpp"
-
-Unknown_b9cbe: ; b9cbe
-INCBIN "gfx/unknown/0b9cbe.1bpp"
-
-Unknown_b9cde: ; b9cde
-INCBIN "gfx/unknown/0b9cde.1bpp"
-
-Unknown_b9cfe: ; b9cfe
-INCBIN "gfx/unknown/0b9cfe.1bpp"
-
-MailCloudGFX: ; b9d16
-INCBIN "gfx/unknown/0b9d16.1bpp"
-
-Unknown_b9d26: ; b9d26
-INCBIN "gfx/unknown/0b9d26.1bpp"
-
-Unknown_b9d3e: ; b9d3e
-INCBIN "gfx/unknown/0b9d3e.1bpp"
-
-Unknown_b9d46: ; b9d46
-INCBIN "gfx/unknown/0b9d46.1bpp"
-
-Unknown_b9d76: ; b9d76
-INCBIN "gfx/unknown/0b9d76.1bpp"
-
-Unknown_b9d86: ; b9d86
-INCBIN "gfx/unknown/0b9d86.1bpp"
-
-Unknown_b9db6: ; b9db6
-INCBIN "gfx/unknown/0b9db6.1bpp"
-
-Unknown_b9dc6: ; b9dc6
-INCBIN "gfx/unknown/0b9dc6.1bpp"
-
-Unknown_b9dce: ; b9dce
-INCBIN "gfx/unknown/0b9dce.1bpp"
-
-Unknown_b9df6: ; b9df6
-INCBIN "gfx/unknown/0b9df6.1bpp"
-
-Unknown_b9e06: ; b9e06
-INCBIN "gfx/unknown/0b9e06.1bpp"
-
-Unknown_b9e26: ; b9e26
-INCBIN "gfx/unknown/0b9e26.1bpp"
-
-Unknown_b9e4e: ; b9e4e
-INCBIN "gfx/unknown/0b9e4e.1bpp"
-
-
-ItemIsMail: ; b9e76
- ld a, d
- ld hl, .items
- ld de, 1
- jp IsInArray
-; b9e80
-
-.items
- db FLOWER_MAIL
- db SURF_MAIL
- db LITEBLUEMAIL
- db PORTRAITMAIL
- db LOVELY_MAIL
- db EON_MAIL
- db MORPH_MAIL
- db BLUESKY_MAIL
- db MUSIC_MAIL
- db MIRAGE_MAIL
- db $ff
-; b9e8b
-
+INCLUDE "gfx/mail.asm"
SECTION "bank2F", ROMX, BANK[$2F]
@@ -31159,3463 +25656,12 @@ INCBIN "gfx/misc/copyright.2bpp"
; e41d0
INCLUDE "engine/options_menu.asm"
-
-Functione455c: ; e455c
- hlcoord 1, 1
- ld de, SCREEN_WIDTH
- ld c, $10
-.asm_e4564
- ld [hl], $7f
- add hl, de
- dec c
- jr nz, .asm_e4564
- hlcoord 1, 2
- ld bc, $28
- ld a, [wJumptableIndex]
- call AddNTimes
- ld [hl], $ed
- ret
-; e4579
-
-
-Functione4579: ; e4579
- ld de, MUSIC_NONE
- call PlayMusic
- call ClearBGPalettes
- call ClearTileMap
- ld a, VBGMap0 / $100
- ld [hBGMapAddress + 1], a
- xor a
- ld [hBGMapAddress], a
- ld [hJoyDown], a
- ld [hSCX], a
- ld [hSCY], a
- ld a, $90
- ld [hWY], a
- call WaitBGMap
- ld b, SCGB_19
- call GetSGBLayout
- call SetPalettes
- ld c, 10
- call DelayFrames
- callab Copyright
- call WaitBGMap
- ld c, 100
- call DelayFrames
- call ClearTileMap
- callba GBCOnlyScreen
- call Functione45e8
-.joy_loop
- call JoyTextDelay
- ld a, [hJoyLast]
- and BUTTONS
- jr nz, .pressed_button
- ld a, [wJumptableIndex]
- bit 7, a
- jr nz, .finish
- call PlaceGameFreakPresents
- callba Function8cf69
- call DelayFrame
- jr .joy_loop
-
-.pressed_button
- call Functione465e
- scf
- ret
-
-.finish
- call Functione465e
- and a
- ret
-; e45e8
-
-Functione45e8: ; e45e8
- ld de, GameFreakLogo
- ld hl, VTiles2
- lb bc, BANK(GameFreakLogo), $1c
- call Get1bpp
-
- ld a, [rSVBK]
- push af
- ld a, $6
- ld [rSVBK], a
-
- ld hl, IntroLogoGFX
- ld de, w6_d000
- ld a, BANK(IntroLogoGFX)
- call FarDecompress
-
- ld hl, VTiles0
- ld de, w6_d000
- lb bc, 1, 8 tiles
- call Request2bpp
-
- ld hl, VTiles1
- ld de, w6_d000 + $80 tiles
- lb bc, 1, 8 tiles
- call Request2bpp
-
- pop af
- ld [rSVBK], a
-
- callba Function8cf53
- depixel 10, 11, 4, 0
- ld a, SPRITE_ANIM_INDEX_03
- call _InitSpriteAnimStruct
- ld hl, $7
- add hl, bc
- ld [hl], $a0
- ld hl, $c
- add hl, bc
- ld [hl], $60
- ld hl, $d
- add hl, bc
- ld [hl], $30
- xor a
- ld [wJumptableIndex], a
- ld [wcf64], a
- ld [wcf65], a
- ld [hSCX], a
- ld [hSCY], a
- ld a, $1
- ld [hBGMapMode], a
- ld a, $90
- ld [hWY], a
- ld de, $e4e4
- call DmgToCgbObjPals
- ret
-; e465e
-
-Functione465e: ; e465e
- callba Function8cf53
- call ClearTileMap
- call ClearSprites
- ld c, 16
- call DelayFrames
- ret
-; e4670
-
-PlaceGameFreakPresents: ; e4670
- ld a, [wJumptableIndex]
- ld e, a
- ld d, 0
- ld hl, .jumptable
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-; e467f
-
-.jumptable: ; e467f
- dw PlaceGameFreakPresents_0
- dw PlaceGameFreakPresents_1
- dw PlaceGameFreakPresents_2
- dw PlaceGameFreakPresents_3
-; e4687
-
-PlaceGameFreakPresents_AdvanceIndex: ; e4687
- ld hl, wJumptableIndex
- inc [hl]
- ret
-; e468c
-
-PlaceGameFreakPresents_0: ; e468c
- ret
-; e468d
-
-PlaceGameFreakPresents_1: ; e468d
- ld hl, wcf65
- ld a, [hl]
- cp $20
- jr nc, .PlaceGameFreak
- inc [hl]
- ret
-
-.PlaceGameFreak
- ld [hl], 0
- ld hl, .GAME_FREAK
- decoord 5, 10
- ld bc, .end - .GAME_FREAK
- call CopyBytes
- call PlaceGameFreakPresents_AdvanceIndex
- ld de, SFX_GAME_FREAK_PRESENTS
- call PlaySFX
- ret
-; e46af
-
-.GAME_FREAK
- ; G A M E _ F R E A K
- db 0, 1, 2, 3, 13, 4, 5, 3, 1, 6
-.end
- db "@"
-; e46ba
-
-PlaceGameFreakPresents_2: ; e46ba
- ld hl, wcf65
- ld a, [hl]
- cp $40
- jr nc, .place_presents
- inc [hl]
- ret
-
-.place_presents
- ld [hl], 0
- ld hl, .presents
- decoord 7,11
- ld bc, .end - .presents
- call CopyBytes
- call PlaceGameFreakPresents_AdvanceIndex
- ret
-; e46d6
-
-.presents
- db 7, 8, 9, 10, 11, 12
-.end
- db "@"
-; e46dd
-
-PlaceGameFreakPresents_3: ; e46dd
- ld hl, wcf65
- ld a, [hl]
- cp $80
- jr nc, .finish
- inc [hl]
- ret
-
-.finish
- ld hl, wJumptableIndex
- set 7, [hl]
- ret
-; e46ed
-
-
-
-GameFreakLogoJumper: ; e46ed (39:46ed)
- ld hl, $b
- add hl, bc
- ld e, [hl]
- ld d, 0
- ld hl, GameFreakLogoScenes
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-
-GameFreakLogoScenes: ; e46fd (39:46fd)
- dw GameFreakLogoScene1
- dw GameFreakLogoScene2
- dw GameFreakLogoScene3
- dw GameFreakLogoScene4
- dw GameFreakLogoScene5
-
-
-GameFreakLogoScene1: ; e4707 (39:4707)
- ld hl, $b
- add hl, bc
- inc [hl]
- ret
-
-GameFreakLogoScene2: ; e470d (39:470d)
- ld hl, $c
- add hl, bc
- ld a, [hl]
- and a
- jr z, .asm_e4747
- ld d, a
- ld hl, $d
- add hl, bc
- ld a, [hl]
- and $3f
- cp $20
- jr nc, .asm_e4723
- add $20
-.asm_e4723
- ld e, a
- callba Functionce765
- ld hl, $7
- add hl, bc
- ld [hl], e
- ld hl, $d
- add hl, bc
- ld a, [hl]
- dec [hl]
- and $1f
- ret nz
- ld hl, $c
- add hl, bc
- ld a, [hl]
- sub $30
- ld [hl], a
- ld de, SFX_DITTO_BOUNCE
- call PlaySFX
- ret
-.asm_e4747
- ld hl, $b
- add hl, bc
- inc [hl]
- ld hl, $d
- add hl, bc
- ld [hl], $0
- ld de, SFX_DITTO_POP_UP
- call PlaySFX
- ret
-
-GameFreakLogoScene3: ; e4759 (39:4759)
- ld hl, $d
- add hl, bc
- ld a, [hl]
- cp $20
- jr nc, .asm_e4764
- inc [hl]
- ret
-.asm_e4764
- ld hl, $b
- add hl, bc
- inc [hl]
- ld hl, $d
- add hl, bc
- ld [hl], $0
- ld de, SFX_DITTO_TRANSFORM
- call PlaySFX
- ret
-
-GameFreakLogoScene4: ; e4776 (39:4776)
- ld hl, $d
- add hl, bc
- ld a, [hl]
- cp $40
- jr z, .asm_e47a3
- inc [hl]
- srl a
- srl a
- ld e, a
- ld d, $0
- ld hl, GameFreakLogoPalettes
-rept 2
- add hl, de
-endr
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld a, [hli]
- ld [OBPals + 12], a
- ld a, [hli]
- ld [OBPals + 13], a
- pop af
- ld [rSVBK], a
- ld a, $1
- ld [hCGBPalUpdate], a
- ret
-.asm_e47a3
- ld hl, $b
- add hl, bc
- inc [hl]
- call PlaceGameFreakPresents_AdvanceIndex
-
-GameFreakLogoScene5: ; e47ab (39:47ab)
- ret
-; e47ac (39:47ac)
-
-GameFreakLogoPalettes: ; e47ac
-; Ditto's color as it turns into the Game Freak logo.
-; Fade from pink to orange.
-; One color per step.
- RGB 23, 12, 28
- RGB 23, 12, 27
- RGB 23, 13, 26
- RGB 23, 13, 24
- RGB 24, 14, 22
- RGB 24, 14, 20
- RGB 24, 15, 18
- RGB 24, 15, 16
- RGB 25, 16, 14
- RGB 25, 16, 12
- RGB 25, 17, 10
- RGB 25, 17, 08
- RGB 26, 18, 06
- RGB 26, 18, 04
- RGB 26, 19, 02
- RGB 26, 19, 00
-;' e47cc
-
-GameFreakLogo: ; e47cc
-INCBIN "gfx/splash/logo.1bpp"
-; e48ac
-
-CrystalIntro: ; e48ac
- ld a, [rSVBK]
- push af
- ld a, 5
- ld [rSVBK], a
- ld a, [hInMenu]
- push af
- ld a, [hVBlank]
- push af
- call Functione4901
-.loop: ; e48bc
- call JoyTextDelay
- ld a, [hJoyLast]
- and BUTTONS
- jr nz, .ShutOffMusic
- ld a, [wJumptableIndex]
- bit 7, a
- jr nz, .done
- call IntroSceneJumper
- callba Function8cf69
- call DelayFrame
- jp .loop
-
-.ShutOffMusic
- ld de, MUSIC_NONE
- call PlayMusic
-
-.done
- call ClearBGPalettes
- call ClearSprites
- call ClearTileMap
- xor a
- ld [hSCX], a
- ld [hSCY], a
- ld a, $7
- ld [hWX], a
- ld a, $90
- ld [hWY], a
- pop af
- ld [hVBlank], a
- pop af
- ld [hInMenu], a
- pop af
- ld [rSVBK], a
- ret
-; e4901
-
-Functione4901: ; e4901
- xor a
- ld [hVBlank], a
- ld a, $1
- ld [hInMenu], a
- xor a
- ld [hMapAnims], a
- ld [wJumptableIndex], a
- ret
-; e490f
-
-IntroSceneJumper: ; e490f
- ld a, [wJumptableIndex]
- ld e, a
- ld d, 0
- ld hl, IntroScenes
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-; e491e
-
-
-IntroScenes: ; e491e (39:491e)
- dw IntroScene1
- dw IntroScene2
- dw IntroScene3
- dw IntroScene4
- dw IntroScene5
- dw IntroScene6
- dw IntroScene7
- dw IntroScene8
- dw IntroScene9
- dw IntroScene10
- dw IntroScene11
- dw IntroScene12
- dw IntroScene13
- dw IntroScene14
- dw IntroScene15
- dw IntroScene16
- dw IntroScene17
- dw IntroScene18
- dw IntroScene19
- dw IntroScene20
- dw IntroScene21
- dw IntroScene22
- dw IntroScene23
- dw IntroScene24
- dw IntroScene25
- dw IntroScene26
- dw IntroScene27
- dw IntroScene28
-
-
-NextIntroScene: ; e4956 (39:4956)
- ld hl, wJumptableIndex
- inc [hl]
- ret
-
-IntroScene1: ; e495b (39:495b)
-; Setup the next scene.
- call Functione54a3
- call ClearSprites
- call ClearTileMap
- xor a
- ld [hBGMapMode], a
- ld a, $1
- ld [rVBK], a
- ld hl, IntroTilemap001
- ld de, VBGMap0 tile $00
- call Functione54fa
- ld a, $0
- ld [rVBK], a
- ld hl, IntroUnownsGFX
- ld de, VTiles2 tile $00
- call Functione54c2
- ld hl, IntroPulseGFX
- ld de, VTiles0 tile $00
- call Functione54c2
- ld hl, IntroTilemap002
- ld de, VBGMap0 tile $00
- call Functione54fa
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld hl, Palette_365ad
- ld de, wMapPals
- ld bc, $80
- call CopyBytes
- ld hl, Palette_365ad
- ld de, BGPals
- ld bc, $80
- call CopyBytes
- pop af
- ld [rSVBK], a
- xor a
- ld [hSCX], a
- ld [hSCY], a
- ld a, $7
- ld [hWX], a
- ld a, $90
- ld [hWY], a
- callba Function8cf53
- call Functione549e
- xor a
- ld [wIntroSceneFrameCounter], a
- ld [wcf65], a
- call NextIntroScene
- ret
-
-IntroScene2: ; e49d6 (39:49d6)
-; First Unown (A) fades in, pulses, then fades out.
- ld hl, wIntroSceneFrameCounter
- ld a, [hl]
- inc [hl]
- cp $80
- jr nc, .endscene
- cp $60
- jr nz, .DontPlaySound
- push af
- ld de, $5858
- call Functione51dc
- ld de, SFX_INTRO_UNOWN_1
- call PlaySFX
- pop af
-.DontPlaySound
- ld [wcf65], a
- xor a
- call Functione5223
- ret
-.endscene
- call NextIntroScene
- ret
-
-IntroScene3: ; e49fd (39:49fd)
-; More setup. Transition to the outdoor scene.
- call Functione54a3
- call ClearSprites
- call ClearTileMap
- xor a
- ld [hBGMapMode], a
- ld a, $1
- ld [rVBK], a
- ld hl, IntroTilemap003
- ld de, VBGMap0 tile $00
- call Functione54fa
- ld a, $0
- ld [rVBK], a
- ld hl, IntroBackgroundGFX
- ld de, VTiles2 tile $00
- call Functione54c2
- ld hl, IntroTilemap004
- ld de, VBGMap0 tile $00
- call Functione54fa
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld hl, Palette_e5edd
- ld de, wMapPals
- ld bc, $80
- call CopyBytes
- ld hl, Palette_e5edd
- ld de, BGPals
- ld bc, $80
- call CopyBytes
- pop af
- ld [rSVBK], a
- xor a
- ld [hSCX], a
- ld [hSCY], a
- ld a, $7
- ld [hWX], a
- ld a, $90
- ld [hWY], a
- call Functione5516
- call Functione549e
- xor a
- ld [wIntroSceneFrameCounter], a
- call NextIntroScene
- ret
-
-IntroScene4: ; e4a69 (39:4a69)
-; Scroll the outdoor panorama for a bit.
- call Functione552f
- ld hl, wIntroSceneFrameCounter
- ld a, [hl]
- cp $80
- jr z, .endscene
- inc [hl]
- ret
-.endscene
- call NextIntroScene
- ret
-
-IntroScene5: ; e4a7a (39:4a7a)
-; Go back to the Unown.
- call Functione54a3
- call ClearSprites
- call ClearTileMap
- xor a
- ld [hBGMapMode], a
- ld [hLCDStatCustom], a
- ld a, $1
- ld [rVBK], a
- ld hl, IntroTilemap005
- ld de, VBGMap0 tile $00
- call Functione54fa
- ld a, $0
- ld [rVBK], a
- ld hl, IntroUnownsGFX
- ld de, VTiles2 tile $00
- call Functione54c2
- ld hl, IntroPulseGFX
- ld de, VTiles0 tile $00
- call Functione54c2
- ld hl, IntroTilemap006
- ld de, VBGMap0 tile $00
- call Functione54fa
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld hl, Palette_365ad
- ld de, wMapPals
- ld bc, $80
- call CopyBytes
- ld hl, Palette_365ad
- ld de, BGPals
- ld bc, $80
- call CopyBytes
- pop af
- ld [rSVBK], a
- xor a
- ld [hSCX], a
- ld [hSCY], a
- ld a, $7
- ld [hWX], a
- ld a, $90
- ld [hWY], a
- callba Function8cf53
- call Functione549e
- xor a
- ld [wcf64], a
- ld [wcf65], a
- call NextIntroScene
- ret
-
-IntroScene6: ; e4af7 (39:4af7)
-; Two more Unown (I, H) fade in.
- ld hl, wcf64
- ld a, [hl]
- inc [hl]
- cp $80
- jr nc, .endscene
- cp $60
- jr z, .SecondUnown
- cp $40
- jr nc, .StopUnown
- cp $20
- jr z, .FirstUnown
- jr .NoUnown
-.FirstUnown
- push af
- ld de, $3878
- call Functione51dc
- ld de, SFX_INTRO_UNOWN_2
- call PlaySFX
- pop af
-.NoUnown
- ld [wcf65], a
- xor a
- call Functione5223
- ret
-.SecondUnown
- push af
- ld de, $7030
- call Functione51dc
- ld de, SFX_INTRO_UNOWN_1
- call PlaySFX
- pop af
-.StopUnown
- ld [wcf65], a
- ld a, $1
- call Functione5223
- ret
-.endscene
- call NextIntroScene
- ret
-
-IntroScene7: ; e4b3f (39:4b3f)
-; Back to the outdoor scene.
- call Functione54a3
- call ClearSprites
- call ClearTileMap
- xor a
- ld [hBGMapMode], a
- ld a, $1
- ld [rVBK], a
- ld hl, IntroTilemap003
- ld de, VBGMap0 tile $00
- call Functione54fa
- ld hl, IntroPichuWooperGFX
- ld de, VTiles0 tile $00
- call Functione54c2
- ld a, $0
- ld [rVBK], a
- ld hl, IntroSuicuneRunGFX
- ld de, VTiles0 tile $00
- call Functione54de
- ld hl, IntroBackgroundGFX
- ld de, VTiles2 tile $00
- call Functione54c2
- ld hl, IntroTilemap004
- ld de, VBGMap0 tile $00
- call Functione54fa
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld hl, Palette_e5edd
- ld de, wMapPals
- ld bc, $80
- call CopyBytes
- ld hl, Palette_e5edd
- ld de, BGPals
- ld bc, $80
- call CopyBytes
- pop af
- ld [rSVBK], a
- xor a
- ld [hSCX], a
- ld [hSCY], a
- ld a, $7
- ld [hWX], a
- ld a, $90
- ld [hWY], a
- call Functione5516
- callba Function8cf53
- depixel 13, 27, 4, 0
- ld a, SPRITE_ANIM_INDEX_26
- call _InitSpriteAnimStruct
- ld a, $f0
- ld [wc3c0], a
- call Functione549e
- xor a
- ld [wIntroSceneFrameCounter], a
- ld [wcf65], a
- call NextIntroScene
- ret
-
-IntroScene8: ; e4bd3 (39:4bd3)
-; Scroll the scene, then show Suicune running across the screen.
- ld hl, wIntroSceneFrameCounter
- ld a, [hl]
- inc [hl]
- cp $40
- jr z, .asm_e4be2
- jr nc, .asm_e4be8
- call Functione552f
- ret
-.asm_e4be2
- ld de, SFX_INTRO_SUICUNE_3
- call PlaySFX
-.asm_e4be8
- ld a, [wc3c0]
- and a
- jr z, .asm_e4bf4
- sub $8
- ld [wc3c0], a
- ret
-.asm_e4bf4
- ld de, SFX_INTRO_SUICUNE_2
- call PlaySFX
- callba Function8d03d
- call NextIntroScene
- ret
-
-IntroScene9: ; e4c04 (39:4c04)
-; Set up the next scene (same bg).
- xor a
- ld [hLCDStatCustom], a
- call ClearSprites
- hlcoord 0, 0, AttrMap
- ld bc, $f0
- ld a, $1
- call ByteFill
- ld bc, $3c
- ld a, $2
- call ByteFill
- ld bc, $3c
- ld a, $3
- call ByteFill
- ld a, $2
- ld [hBGMapMode], a
- call DelayFrame
- call DelayFrame
- call DelayFrame
- ld a, $c
- ld [hBGMapAddress], a
- call DelayFrame
- call DelayFrame
- call DelayFrame
- xor a
- ld [hBGMapMode], a
- ld [hBGMapAddress], a
- ld [wc3c0], a
- xor a
- ld [wcf64], a
- call NextIntroScene
- ret
-
-IntroScene10: ; e4c4f (39:4c4f)
-; Wooper and Pichu enter.
- call Functione546d
- ld hl, wcf64
- ld a, [hl]
- inc [hl]
- cp $c0
- jr z, .done
- cp $20
- jr z, .wooper
- cp $40
- jr z, .pichu
- ret
-
-.pichu
- depixel 21, 16, 1, 0
- ld a, SPRITE_ANIM_INDEX_27
- call _InitSpriteAnimStruct
- ld de, SFX_INTRO_PICHU
- call PlaySFX
- ret
-
-.wooper
- depixel 22, 6
- ld a, SPRITE_ANIM_INDEX_28
- call _InitSpriteAnimStruct
- ld de, SFX_INTRO_PICHU
- call PlaySFX
- ret
-.done
- call NextIntroScene
- ret
-
-IntroScene11: ; e4c86 (39:4c86)
-; Back to Unown again.
- call Functione54a3
- call ClearSprites
- call ClearTileMap
- xor a
- ld [hBGMapMode], a
- ld [hLCDStatCustom], a
- ld a, $1
- ld [rVBK], a
- ld hl, IntroTilemap007
- ld de, VBGMap0 tile $00
- call Functione54fa
- ld a, $0
- ld [rVBK], a
- ld hl, IntroUnownsGFX
- ld de, VTiles2 tile $00
- call Functione54c2
- ld hl, IntroTilemap008
- ld de, VBGMap0 tile $00
- call Functione54fa
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld hl, Palette_365ad
- ld de, wMapPals
- ld bc, $80
- call CopyBytes
- ld hl, Palette_365ad
- ld de, BGPals
- ld bc, $80
- call CopyBytes
- pop af
- ld [rSVBK], a
- xor a
- ld [hSCX], a
- ld [hSCY], a
- ld a, $7
- ld [hWX], a
- ld a, $90
- ld [hWY], a
- callba Function8cf53
- call Functione549e
- xor a
- ld [wIntroSceneFrameCounter], a
- ld [wcf65], a
- call NextIntroScene
- ret
-
-IntroScene12: ; e4cfa (39:4cfa)
-; Even more Unown.
- call Functione4d36
- ld hl, wIntroSceneFrameCounter
- ld a, [hl]
- inc [hl]
- cp $c0
- jr nc, .asm_e4d32
- cp $80
- jr nc, .asm_e4d1d
- ld c, a
- and $1f
- sla a
- ld [wcf65], a
- ld a, c
- and $e0
- srl a
- swap a
- call Functione5223
- ret
-.asm_e4d1d
- ld c, a
- and $f
- sla a
- sla a
- ld [wcf65], a
- ld a, c
- and $70
- or $40
- swap a
- call Functione5223
- ret
-.asm_e4d32
- call NextIntroScene
- ret
-
-Functione4d36: ; e4d36 (39:4d36)
- ld a, [wIntroSceneFrameCounter]
- ld c, a
- ld hl, .UnownSounds
-.loop
- ld a, [hli]
- cp -1
- ret z
- cp c
- jr z, .playsound
-rept 2
- inc hl
-endr
- jr .loop
-.playsound
- ld a, [hli]
- ld d, [hl]
- ld e, a
- push de
- call SFXChannelsOff
- pop de
- call PlaySFX
- ret
-; e4d54 (39:4d54)
-
-.UnownSounds: ; e4d54
- dbw $00, SFX_INTRO_UNOWN_3
- dbw $20, SFX_INTRO_UNOWN_2
- dbw $40, SFX_INTRO_UNOWN_1
- dbw $60, SFX_INTRO_UNOWN_2
- dbw $80, SFX_INTRO_UNOWN_3
- dbw $90, SFX_INTRO_UNOWN_2
- dbw $a0, SFX_INTRO_UNOWN_1
- dbw $b0, SFX_INTRO_UNOWN_2
- db $ff
-; e4d6d
-
-IntroScene13: ; e4d6d (39:4d6d)
-; Switch scenes again.
- call Functione54a3
- call ClearSprites
- call ClearTileMap
- xor a
- ld [hBGMapMode], a
- ld a, $1
- ld [rVBK], a
- ld hl, IntroTilemap003
- ld de, VBGMap0 tile $00
- call Functione54fa
- ld a, $0
- ld [rVBK], a
- ld hl, IntroSuicuneRunGFX
- ld de, VTiles0 tile $00
- call Functione54de
- ld hl, IntroBackgroundGFX
- ld de, VTiles2 tile $00
- call Functione54c2
- ld hl, IntroTilemap004
- ld de, VBGMap0 tile $00
- call Functione54fa
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld hl, Palette_e5edd
- ld de, wMapPals
- ld bc, $80
- call CopyBytes
- ld hl, Palette_e5edd
- ld de, BGPals
- ld bc, $80
- call CopyBytes
- pop af
- ld [rSVBK], a
- xor a
- ld [hSCX], a
- ld [hSCY], a
- ld a, $7
- ld [hWX], a
- ld a, $90
- ld [hWY], a
- callba Function8cf53
- depixel 13, 11, 4, 0
- ld a, SPRITE_ANIM_INDEX_26
- call _InitSpriteAnimStruct
- ld de, MUSIC_CRYSTAL_OPENING
- call PlayMusic
- xor a
- ld [wc3c0], a
- call Functione549e
- xor a
- ld [wcf64], a
- ld [wcf65], a
- call NextIntroScene
- ret
-
-IntroScene14: ; e4dfa (39:4dfa)
-; Suicune runs then jumps.
- ld a, [hSCX]
- sub 10
- ld [hSCX], a
- ld hl, wcf64
- ld a, [hl]
- inc [hl]
- cp $80
- jr z, .done
- cp $60
- jr z, .jump
- jr nc, .asm_e4e1a
- cp $40
- jr nc, .asm_e4e33
- ret
-
-.jump
- ld de, SFX_INTRO_SUICUNE_4
- call PlaySFX
-
-.asm_e4e1a
- ld a, $1
- ld [wcf65], a
- ld a, [wc3c0]
- cp $88
- jr c, .asm_e4e2c
- sub $8
- ld [wc3c0], a
- ret
-
-.asm_e4e2c
- callba Function8d03d
- ret
-
-.asm_e4e33
- ld a, [wc3c0]
- sub $2
- ld [wc3c0], a
- ret
-
-.done
- call NextIntroScene
- ret
-
-IntroScene15: ; e4e40 (39:4e40)
-; Transition to a new scene.
- call Functione54a3
- call ClearSprites
- call ClearTileMap
- xor a
- ld [hBGMapMode], a
- ld a, $1
- ld [rVBK], a
- ld hl, IntroTilemap009
- ld de, VBGMap0 tile $00
- call Functione54fa
- ld a, $0
- ld [rVBK], a
- ld hl, IntroSuicuneJumpGFX
- ld de, VTiles2 tile $00
- call Functione54c2
- ld hl, IntroUnownBackGFX
- ld de, VTiles0 tile $00
- call Functione54c2
- ld de, GFX_e7a5d
- ld hl, VTiles1 tile $00
- lb bc, BANK(GFX_e7a5d), 1
- call Request2bpp
- ld hl, IntroTilemap010
- ld de, VBGMap0 tile $00
- call Functione54fa
- call Functione541b
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld hl, Palette_e77dd
- ld de, wMapPals
- ld bc, $80
- call CopyBytes
- ld hl, Palette_e77dd
- ld de, BGPals
- ld bc, $80
- call CopyBytes
- pop af
- ld [rSVBK], a
- xor a
- ld [hSCX], a
- ld a, $90
- ld [hSCY], a
- ld a, $7
- ld [hWX], a
- ld a, $90
- ld [hWY], a
- callba Function8cf53
- call Functione549e
- depixel 8, 5
- ld a, SPRITE_ANIM_INDEX_2A
- call _InitSpriteAnimStruct
- depixel 12, 0
- ld a, SPRITE_ANIM_INDEX_2B
- call _InitSpriteAnimStruct
- xor a
- ld [wcf64], a
- ld [wcf65], a
- call NextIntroScene
- ret
-
-IntroScene16: ; e4edc (39:4edc)
-; Suicune shows its face. An Unown appears in front.
- ld hl, wcf64
- ld a, [hl]
- inc [hl]
- cp $80
- jr nc, .done
- call Functione5441
- ld a, [hSCY]
- and a
- ret z
- add 8
- ld [hSCY], a
- ret
-.done
- call NextIntroScene
- ret
-
-IntroScene17: ; e4ef5 (39:4ef5)
-; ...
- call Functione54a3
- call ClearSprites
- call ClearTileMap
- xor a
- ld [hBGMapMode], a
- ld a, $1
- ld [rVBK], a
- ld hl, IntroTilemap011
- ld de, VBGMap0 tile $00
- call Functione54fa
- ld a, $0
- ld [rVBK], a
- ld hl, IntroSuicuneCloseGFX
- ld de, VTiles1 tile $00
- call Functione54de
- ld hl, IntroTilemap012
- ld de, VBGMap0 tile $00
- call Functione54fa
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld hl, Palette_e6d6d
- ld de, wMapPals
- ld bc, $80
- call CopyBytes
- ld hl, Palette_e6d6d
- ld de, BGPals
- ld bc, $80
- call CopyBytes
- pop af
- ld [rSVBK], a
- xor a
- ld [hSCX], a
- ld [hSCY], a
- ld a, $7
- ld [hWX], a
- ld a, $90
- ld [hWY], a
- callba Function8cf53
- call Functione549e
- xor a
- ld [wcf64], a
- ld [wcf65], a
- call NextIntroScene
- ret
-
-IntroScene18: ; e4f67 (39:4f67)
-; Suicune close up.
- ld hl, wcf64
- ld a, [hl]
- inc [hl]
- cp $60
- jr nc, .done
- ld a, [hSCX]
- cp $60
- ret z
- add 8
- ld [hSCX], a
- ret
-.done
- call NextIntroScene
- ret
-
-IntroScene19: ; e4f7e (39:4f7e)
-; More setup.
- call Functione54a3
- call ClearSprites
- call ClearTileMap
- xor a
- ld [hBGMapMode], a
- ld a, $1
- ld [rVBK], a
- ld hl, IntroTilemap013
- ld de, VBGMap0 tile $00
- call Functione54fa
- ld a, $0
- ld [rVBK], a
- ld hl, IntroSuicuneBackGFX
- ld de, VTiles2 tile $00
- call Functione54c2
- ld hl, IntroUnownsGFX
- ld de, VTiles1 tile $00
- call Functione54c2
- ld de, GFX_e7a5d
- ld hl, VTiles1 tile $7f
- lb bc, BANK(GFX_e7a5d), 1
- call Request2bpp
- ld hl, IntroTilemap014
- ld de, VBGMap0 tile $00
- call Functione54fa
- call Functione541b
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld hl, Palette_e77dd
- ld de, wMapPals
- ld bc, $80
- call CopyBytes
- ld hl, Palette_e77dd
- ld de, BGPals
- ld bc, $80
- call CopyBytes
- pop af
- ld [rSVBK], a
- xor a
- ld [hSCX], a
- ld a, $d8
- ld [hSCY], a
- ld a, $7
- ld [hWX], a
- ld a, $90
- ld [hWY], a
- callba Function8cf53
- ld hl, wc300
- xor a
- ld [hli], a
- ld [hl], $7f
- call Functione549e
- depixel 12, 0
- ld a, SPRITE_ANIM_INDEX_2B
- call _InitSpriteAnimStruct
- xor a
- ld [wcf64], a
- ld [wcf65], a
- call NextIntroScene
- ret
-
-IntroScene20: ; e5019 (39:5019)
-; Suicune running away. A bunch of Unown appear.
- ld hl, wcf64
- ld a, [hl]
- inc [hl]
- cp $98
- jr nc, .asm_e5059
- cp $58
- ret nc
- cp $40
- jr nc, .asm_e5032
- cp $28
- ret nc
- ld a, [hSCY]
- inc a
- ld [hSCY], a
- ret
-
-.asm_e5032
- sub $18
- ld c, a
- and $3
- cp $3
- ret nz
- ld a, c
- and $1c
- srl a
- srl a
- ld [wcf65], a
- xor a
- call Functione5348
- ret
-; e5049 (39:5049)
-
- ld a, c
- and $1c
- srl a
- srl a
- ld [wcf65], a
- ld a, 1
- call Functione5348
- ret
-
-.asm_e5059
- call NextIntroScene
- ret
-
-IntroScene21: ; e505d (39:505d)
-; Suicune gets more distant and turns black.
- call Functione5451
- ld c, 3
- call DelayFrames
- xor a
- ld [hBGMapMode], a
- ld [wcf64], a
- ld [wcf65], a
- call NextIntroScene
- ret
-
-IntroScene22: ; e5072 (39:5072)
- ld hl, wcf64
- ld a, [hl]
- inc [hl]
- cp $8
- jr nc, .done
- ret
-.done
- callba Function8d03d
- call NextIntroScene
- ret
-
-IntroScene23: ; e5086 (39:5086)
- xor a
- ld [wcf64], a
- call NextIntroScene
- ret
-
-IntroScene24: ; e508e (39:508e)
-; Fade to white.
- ld hl, wcf64
- ld a, [hl]
- inc [hl]
- cp $20
- jr nc, .done
-
- ld c, a
- and $3
- ret nz
- ld a, c
- and $1c
- sla a
- call Functione5172
- ret
-
-.done
- ld a, $40
- ld [wcf64], a
- call NextIntroScene
- ret
-
-IntroScene25: ; e50ad (39:50ad)
-; Wait around a bit.
- ld a, [wcf64]
- dec a
- jr z, .done
- ld [wcf64], a
- ret
-.done
- call NextIntroScene
- ret
-
-IntroScene26: ; e50bb (39:50bb)
-; Load the final scene.
- call ClearBGPalettes
- call ClearSprites
- call ClearTileMap
- xor a
- ld [hBGMapMode], a
- ld a, $1
- ld [rVBK], a
- ld hl, IntroTilemap015
- ld de, VBGMap0 tile $00
- call Functione54fa
- ld a, $0
- ld [rVBK], a
- ld hl, IntroCrystalUnownsGFX
- ld de, VTiles2 tile $00
- call Functione54c2
- ld hl, IntroTilemap017
- ld de, VBGMap0 tile $00
- call Functione54fa
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld hl, Palette_e679d
- ld de, wMapPals
- ld bc, $80
- call CopyBytes
- ld hl, Palette_e679d
- ld de, BGPals
- ld bc, $80
- call CopyBytes
- pop af
- ld [rSVBK], a
- xor a
- ld [hSCX], a
- ld [hSCY], a
- ld a, $7
- ld [hWX], a
- ld a, $90
- ld [hWY], a
- callba Function8cf53
- call Functione549e
- xor a
- ld [wcf64], a
- ld [wcf65], a
- call NextIntroScene
- ret
-
-IntroScene27: ; e512d (39:512d)
-; Spell out C R Y S T A L with Unown.
- ld hl, wcf65
- inc [hl]
- ld hl, wcf64
- ld a, [hl]
- inc [hl]
- cp $80
- jr nc, .done
-
- ld c, a
- and $f
- ld [wcf65], a
- ld a, c
- and $70
- swap a
- call Functione539d
- ret
-
-.done
- call NextIntroScene
- ld a, $80
- ld [wcf64], a
- ret
-
-IntroScene28: ; e5152 (39:5152)
-; Cut out when the music ends, and lead into the title screen.
- ld hl, wcf64
- ld a, [hl]
- and a
- jr z, .done
- dec [hl]
- cp $18
- jr z, .clear
- cp $8
- ret nz
-
- ld de, SFX_UNKNOWN_CB
- call PlaySFX
- ret
-
-.clear
- call ClearBGPalettes
- ret
-
-.done
- ld hl, wJumptableIndex
- set 7, [hl]
- ret
-
-
-Functione5172: ; e5172 (39:5172)
- ld hl, Unknown_e519c
- add l
- ld l, a
- ld a, $0
- adc h
- ld h, a
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld de, BGPals
- ld b, $8
-.asm_e5187
- push hl
- ld c, $8
-.asm_e518a
- ld a, [hli]
- ld [de], a
- inc de
- dec c
- jr nz, .asm_e518a
- pop hl
- dec b
- jr nz, .asm_e5187
- pop af
- ld [rSVBK], a
- ld a, $1
- ld [hCGBPalUpdate], a
- ret
-; e519c (39:519c)
-
-Unknown_e519c: ; e519c
-; Fade to white.
- RGB 24, 12, 09
- RGB 31, 31, 31
- RGB 12, 00, 31
- RGB 00, 00, 00
-
- RGB 31, 19, 05
- RGB 31, 31, 31
- RGB 15, 05, 31
- RGB 07, 07, 07
-
- RGB 31, 21, 09
- RGB 31, 31, 31
- RGB 18, 09, 31
- RGB 11, 11, 11
-
- RGB 31, 23, 13
- RGB 31, 31, 31
- RGB 21, 13, 31
- RGB 15, 15, 15
-
- RGB 31, 25, 17
- RGB 31, 31, 31
- RGB 25, 17, 31
- RGB 19, 19, 19
-
- RGB 31, 27, 21
- RGB 31, 31, 31
- RGB 27, 21, 31
- RGB 23, 23, 23
-
- RGB 31, 29, 25
- RGB 31, 31, 31
- RGB 29, 26, 31
- RGB 27, 27, 27
-
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
-; e51dc
-
-Functione51dc: ; e51dc (39:51dc)
- push de
- ld a, SPRITE_ANIM_INDEX_29
- call _InitSpriteAnimStruct
- ld hl, $c
- add hl, bc
- ld [hl], $8
- ld a, $3c
- call Function3b3c
- pop de
-
- push de
- ld a, SPRITE_ANIM_INDEX_29
- call _InitSpriteAnimStruct
- ld hl, $c
- add hl, bc
- ld [hl], $18
- ld a, $3b
- call Function3b3c
- pop de
-
- push de
- ld a, SPRITE_ANIM_INDEX_29
- call _InitSpriteAnimStruct
- ld hl, $c
- add hl, bc
- ld [hl], $28
- ld a, $39
- call Function3b3c
- pop de
-
- ld a, SPRITE_ANIM_INDEX_29
- call _InitSpriteAnimStruct
- ld hl, $c
- add hl, bc
- ld [hl], $38
- ld a, $3a
- call Function3b3c
- ret
-
-Functione5223: ; e5223 (39:5223)
-rept 3
- add a
-endr
- ld e, a
- ld d, $0
- ld hl, BGPals
- add hl, de
-rept 2
- inc hl
-endr
- ld a, [wcf65]
- and $3f
- cp $1f
- jr z, .asm_e523e
- jr c, .asm_e523e
- ld c, a
- ld a, $3f
- sub c
-.asm_e523e
- ld c, a
- ld b, $0
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- push hl
- push bc
- ld hl, BGPals
- ld bc, $40
- xor a
- call ByteFill
- pop bc
- pop hl
- push hl
- ld hl, Unknown_e5288
-rept 2
- add hl, bc
-endr
- ld a, [hli]
- ld d, [hl]
- ld e, a
- pop hl
- ld a, e
- ld [hli], a
- ld a, d
- ld [hli], a
- push hl
- ld hl, Unknown_e52c8
-rept 2
- add hl, bc
-endr
- ld a, [hli]
- ld d, [hl]
- ld e, a
- pop hl
- ld a, e
- ld [hli], a
- ld a, d
- ld [hli], a
- push hl
- ld hl, Unknown_e5308
-rept 2
- add hl, bc
-endr
- ld a, [hli]
- ld d, [hl]
- ld e, a
- pop hl
- ld a, e
- ld [hli], a
- ld a, d
- ld [hli], a
- pop af
- ld [rSVBK], a
- ld a, $1
- ld [hCGBPalUpdate], a
- ret
-; e5288 (39:5288)
-
-Unknown_e5288: ; e5288
-; Fade between black and white.
-hue = 0
-rept 32
- RGB hue, hue, hue
-hue = hue + 1
-endr
-; e52c8
-
-Unknown_e52c8: ; e52c8
-; Fade between black and light blue.
-hue = 0
-rept 32
- RGB 0, hue / 2, hue
-hue = hue + 1
-endr
-; e5308
-
-Unknown_e5308: ; e5308
-; Fade between black and blue.
-hue = 0
-rept 32
- RGB 0, 0, hue
-hue = hue + 1
-endr
-; e5348
-
-Functione5348: ; e5348 (39:5348)
- and a
- jr nz, .asm_e5350
- ld hl, Palette_e538d
- jr .asm_e5353
-.asm_e5350
- ld hl, Palette_e5395
-.asm_e5353
- ld a, [wcf65]
- and $7
-rept 3
- add a
-endr
- ld c, a
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- push bc
- ld de, BGPals
- ld a, c
- add e
- ld e, a
- ld a, $0
- adc d
- ld d, a
- ld bc, $8
- call CopyBytes
- pop bc
- ld de, wMapPals
- ld a, c
- add e
- ld e, a
- ld a, $0
- adc d
- ld d, a
- ld bc, $8
- call CopyBytes
- pop af
- ld [rSVBK], a
- ld a, $1
- ld [hCGBPalUpdate], a
- ret
-; e538d (39:538d)
-
-Palette_e538d: ; e538d
- RGB 24, 12, 09
- RGB 31, 31, 31
- RGB 12, 00, 31
- RGB 00, 00, 00
-; e5395
-
-Palette_e5395: ; e5395
- RGB 24, 12, 09
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
-; e539d
-
-Functione539d: ; e539d (39:539d)
-rept 3
- add a
-endr
- ld e, a
- ld d, $0
- ld hl, BGPals
- add hl, de
-rept 4
- inc hl
-endr
- ld a, [wcf65]
- add a
- ld c, a
- ld b, $0
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- push hl
- ld hl, Palette_e53db
- add hl, bc
- ld a, [hli]
- ld d, [hl]
- ld e, a
- pop hl
- ld a, e
- ld [hli], a
- ld a, d
- ld [hli], a
- push hl
- ld hl, Palette_e53fb
- add hl, bc
- ld a, [hli]
- ld d, [hl]
- ld e, a
- pop hl
- ld a, e
- ld [hli], a
- ld a, d
- ld [hli], a
- pop af
- ld [rSVBK], a
- ld a, $1
- ld [hCGBPalUpdate], a
- ret
-; e53db (39:53db)
-
-Palette_e53db: ; e53db
-hue = 31
-rept 8
- RGB hue, hue, hue
-hue = hue + -1
- RGB hue, hue, hue
-hue = hue + -2
-endr
-; e53fb
-
-Palette_e53fb: ; e53fb
-hue = 31
-rept 16
- RGB hue, hue, hue
-hue = hue + -1
-endr
-; e541b
-
-Functione541b: ; e541b (39:541b)
- ld a, [rSVBK]
- push af
- ld a, $6
- ld [rSVBK], a
- ld hl, w6_d000
- decoord 0, 0
- ld b, SCREEN_HEIGHT
-.asm_e542a
- ld c, SCREEN_WIDTH
-.asm_e542c
- ld a, [hli]
- ld [de], a
- inc de
- dec c
- jr nz, .asm_e542c
- ld a, $c
- add l
- ld l, a
- ld a, $0
- adc h
- ld h, a
- dec b
- jr nz, .asm_e542a
- pop af
- ld [rSVBK], a
- ret
-
-Functione5441: ; e5441 (39:5441)
- ld a, [wcf64]
- and $3
- jr z, Functione5451
- cp $3
- jr z, .asm_e544d
- ret
-.asm_e544d
- xor a
- ld [hBGMapMode], a
- ret
-
-Functione5451: ; e5451 (39:5451)
- hlcoord 0, 0
- ld bc, SCREEN_HEIGHT * SCREEN_WIDTH
-.asm_e5457
- ld a, [hl]
- and a
- jr z, .asm_e5462
- cp $80
- jr nc, .asm_e5462
- xor $8
- ld [hl], a
-.asm_e5462
- inc hl
- dec bc
- ld a, c
- or b
- jr nz, .asm_e5457
- ld a, $1
- ld [hBGMapMode], a
- ret
-
-Functione546d: ; e546d (39:546d)
- ld a, [wcf64]
- cp $24
- ret nc
- and $c
- srl a
- ld e, a
- ld d, $0
- ld hl, Unknown_e5496
- add hl, de
- ld a, [hli]
- ld [Requested2bppSource], a
- ld a, [hli]
- ld [Requested2bppSource + 1], a
- ld a, (VTiles2 tile $09) % $100
- ld [Requested2bppDest], a
- ld a, (VTiles2 tile $09) / $100
- ld [Requested2bppDest + 1], a
- ld a, $4
- ld [Requested2bpp], a
- ret
-; e5496 (39:5496)
-
-Unknown_e5496: ; e5496
- dw GFX_e799d
- dw GFX_e79dd
- dw GFX_e7a1d
- dw GFX_e79dd
-; e549e
-
-Functione549e: ; e549e (39:549e)
- ld a, $1
- ld [hCGBPalUpdate], a
- ret
-
-Functione54a3: ; e54a3 (39:54a3)
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld hl, BGPals
- ld bc, $80
- xor a
- call ByteFill
- pop af
- ld [rSVBK], a
- ld a, $1
- ld [hCGBPalUpdate], a
- call DelayFrame
- call DelayFrame
- ret
-
-Functione54c2: ; e54c2 (39:54c2)
- ld a, [rSVBK]
- push af
- ld a, $6
- ld [rSVBK], a
- push de
- ld de, w6_d000
- call Decompress
- pop hl
- ld de, w6_d000
- ld bc, $180
- call Request2bpp
- pop af
- ld [rSVBK], a
- ret
-
-Functione54de: ; e54de (39:54de)
- ld a, [rSVBK]
- push af
- ld a, $6
- ld [rSVBK], a
- push de
- ld de, w6_d000
- call Decompress
- pop hl
- ld de, w6_d000
- ld bc, $1ff
- call Request2bpp
- pop af
- ld [rSVBK], a
- ret
-
-Functione54fa: ; e54fa (39:54fa)
- ld a, [rSVBK]
- push af
- ld a, $6
- ld [rSVBK], a
- push de
- ld de, w6_d000
- call Decompress
- pop hl
- ld de, w6_d000
- ld bc, $140
- call Request2bpp
- pop af
- ld [rSVBK], a
- ret
-
-Functione5516: ; e5516 (39:5516)
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld hl, LYOverrides
- ld bc, $90
- xor a
- call ByteFill
- pop af
- ld [rSVBK], a
- ld a, $43
- ld [hLCDStatCustom], a
- ret
-
-Functione552f: ; e552f (39:552f)
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld a, [wcf64]
- and $1
- jr z, .asm_e5548
- ld hl, LYOverrides
- ld a, [hl]
- inc a
- ld bc, $5f
- call ByteFill
-.asm_e5548
- ld hl, LYOverrides + $5f
- ld a, [hl]
-rept 2
- inc a
-endr
- ld bc, $31
- call ByteFill
- ld a, [LYOverrides + 0]
- ld [hSCX], a
- pop af
- ld [rSVBK], a
- ret
-
-IntroSuicuneRunGFX: ; e555d
-INCBIN "gfx/intro/suicune_run.2bpp.lz"
-; e592d
-
-IntroPichuWooperGFX: ; e592d
-INCBIN "gfx/intro/pichu_wooper.2bpp.lz"
-; e5c7d
-
-IntroBackgroundGFX: ; e5c7d
-INCBIN "gfx/intro/background.2bpp.lz"
-; e5e6d
-
-IntroTilemap004: ; e5e6d
-INCBIN "gfx/intro/004.tilemap.lz"
-; e5ecd
-
-IntroTilemap003: ; e5ecd
-INCBIN "gfx/intro/003.tilemap.lz"
-; e5edd
-
-Palette_e5edd: ; e5edd
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
- RGB 0, 4, 5
- RGB 1, 8, 5
- RGB 4, 12, 9
- RGB 24, 12, 9
- RGB 0, 4, 5
- RGB 9, 6, 8
- RGB 8, 16, 5
- RGB 5, 10, 4
- RGB 31, 31, 31
- RGB 9, 6, 8
- RGB 18, 9, 9
- RGB 13, 8, 9
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 2, 5, 22
- RGB 1, 5, 12
- RGB 31, 31, 31
- RGB 31, 10, 25
- RGB 31, 21, 0
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 21, 31
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
-
-IntroUnownsGFX: ; e5f5d
-INCBIN "gfx/intro/unowns.2bpp.lz"
-; e634d
-
-IntroPulseGFX: ; e634d
-INCBIN "gfx/intro/pulse.2bpp.lz"
-; e63dd
-
-IntroTilemap002: ; e63dd
-INCBIN "gfx/intro/002.tilemap.lz"
-; e641d
-
-IntroTilemap001: ; e641d
-INCBIN "gfx/intro/001.tilemap.lz"
-; e642d
-
-IntroTilemap006: ; e642d
-INCBIN "gfx/intro/006.tilemap.lz"
-; e647d
-
-IntroTilemap005: ; e647d
-INCBIN "gfx/intro/005.tilemap.lz"
-; e649d
-
-IntroTilemap008: ; e649d
-INCBIN "gfx/intro/008.tilemap.lz"
-; e655d
-
-IntroTilemap007: ; e655d
-INCBIN "gfx/intro/007.tilemap.lz"
-; e65ad
-
-Palette_365ad: ; e65ad
- 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 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 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 31, 31, 31
- RGB 10, 0, 10
- RGB 19, 0, 19
- RGB 31, 0, 31
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
-
-IntroCrystalUnownsGFX: ; e662d
-INCBIN "gfx/intro/crystal_unowns.2bpp.lz"
-; e672d
-
-IntroTilemap017: ; e672d
-INCBIN "gfx/intro/017.tilemap.lz"
-; e676d
-
-IntroTilemap015: ; e676d
-INCBIN "gfx/intro/015.tilemap.lz"
-; e679d
-
-Palette_e679d: ; e679d
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
-
-IntroSuicuneCloseGFX: ; e681d
-INCBIN "gfx/intro/suicune_close.2bpp.lz"
-; e6c3d
-
-IntroTilemap012: ; e6c3d
-INCBIN "gfx/intro/012.tilemap.lz"
-; e6d0d
-
-IntroTilemap011: ; e6d0d
-INCBIN "gfx/intro/011.tilemap.lz"
-; e6d6d
-
-Palette_e6d6d: ; e6d6d
- RGB 24, 12, 9
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
- RGB 24, 12, 9
- RGB 31, 31, 31
- RGB 8, 9, 31
- RGB 0, 0, 0
- RGB 24, 12, 9
- RGB 12, 20, 31
- RGB 19, 8, 31
- RGB 0, 0, 0
- RGB 12, 20, 31
- RGB 8, 9, 31
- RGB 19, 8, 31
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 12, 20, 31
- RGB 8, 9, 31
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
-
-IntroSuicuneJumpGFX: ; e6ded
-INCBIN "gfx/intro/suicune_jump.2bpp.lz"
-; e72ad
-
-IntroSuicuneBackGFX: ; e72ad
-INCBIN "gfx/intro/suicune_back.2bpp.lz"
-; e764d
-
-IntroTilemap010: ; e764d
-INCBIN "gfx/intro/010.tilemap.lz"
-; e76ad
-
-IntroTilemap009: ; e76ad
-INCBIN "gfx/intro/009.tilemap.lz"
-; e76bd
-
-IntroTilemap014: ; e76bd
-INCBIN "gfx/intro/014.tilemap.lz"
-; e778d
-
-IntroTilemap013: ; e778d
-INCBIN "gfx/intro/013.tilemap.lz"
-; e77dd
-
-Palette_e77dd: ; e77dd
- RGB 24, 12, 9
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
- RGB 24, 12, 9
- RGB 31, 31, 31
- RGB 8, 9, 31
- RGB 0, 0, 0
- RGB 24, 12, 9
- RGB 24, 12, 9
- RGB 24, 12, 9
- RGB 24, 12, 9
- RGB 24, 12, 9
- RGB 24, 12, 9
- RGB 24, 12, 9
- RGB 24, 12, 9
- RGB 24, 12, 9
- RGB 24, 12, 9
- RGB 24, 12, 9
- RGB 24, 12, 9
- RGB 24, 12, 9
- RGB 24, 12, 9
- RGB 24, 12, 9
- RGB 24, 12, 9
- RGB 24, 12, 9
- RGB 24, 12, 9
- RGB 24, 12, 9
- RGB 24, 12, 9
- RGB 24, 12, 9
- RGB 24, 12, 9
- RGB 24, 12, 9
- RGB 24, 12, 9
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 12, 0, 31
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 21, 9, 0
- RGB 21, 9, 0
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
-
-IntroUnownBackGFX: ; e785d
-INCBIN "gfx/intro/unown_back.2bpp.lz"
-; e799d
-
-GFX_e799d: ; e799d
-INCBIN "gfx/unknown/0e799d.2bpp"
-GFX_e79dd: ; e79dd
-INCBIN "gfx/unknown/0e79dd.2bpp"
-GFX_e7a1d: ; e7a1d
-INCBIN "gfx/unknown/0e7a1d.2bpp"
-
-GFX_e7a5d: ; e7a5d
-INCBIN "gfx/unknown/0e7a5d.2bpp"
-
-
+INCLUDE "engine/crystal_intro.asm"
SECTION "bank3E", ROMX, BANK[$3E]
-FontExtra:
-INCBIN "gfx/misc/font_extra.2bpp"
-
-Font:
-INCBIN "gfx/misc/font.1bpp"
-
-FontBattleExtra:
-INCBIN "gfx/misc/font_battle_extra.2bpp"
-
-Frames: ; f8800
-INCBIN "gfx/frames/1.1bpp"
-INCBIN "gfx/frames/2.1bpp"
-INCBIN "gfx/frames/3.1bpp"
-INCBIN "gfx/frames/4.1bpp"
-INCBIN "gfx/frames/5.1bpp"
-INCBIN "gfx/frames/6.1bpp"
-INCBIN "gfx/frames/7.1bpp"
-INCBIN "gfx/frames/8.1bpp"
-INCBIN "gfx/frames/9.1bpp"
-; f89b0
-
-; TODO: Various misc graphics here.
-
-GFX_f89b0: ; f89b0
-INCBIN "gfx/unknown/0f89b0.2bpp"
-; f8a90
-
-ShinyIcon: ; f8a90
-INCBIN "gfx/stats/shiny.2bpp"
-
-GFX_f8aa0: ; f8aa0
-INCBIN "gfx/unknown/0f8aa0.2bpp"
-; f8ac0
-
-EnemyHPBarBorderGFX: ; f8ac0
-INCBIN "gfx/battle/enemy_hp_bar_border.1bpp"
-; f8ae0
-
-HPExpBarBorderGFX: ; f8ae0
-INCBIN "gfx/battle/hp_exp_bar_border.1bpp"
-; f8b10
-
-ExpBarGFX: ; f8b10
-INCBIN "gfx/battle/expbar.2bpp"
-; f8ba0
-
-TownMapGFX: ; f8ba0
-INCBIN "gfx/misc/town_map.2bpp.lz"
-; f8ea4
-
-GFX_f8ea4: ; unused
-INCBIN "gfx/unknown/0f8ea4.2bpp"
-; f8f24
-
-OverworldPhoneIconGFX: ; f8f24
-INCBIN "gfx/mobile/overworld_phone_icon.2bpp"
-; f8f34
-
-GFX_f8f34: ; unused
-INCBIN "gfx/unknown/0f8f34.2bpp"
-; f9204
-
-TextBoxSpaceGFX: ; f9204
-INCBIN "gfx/frames/space.2bpp"
-; f9214
-
-MobilePhoneTilesGFX: ; f9214
-INCBIN "gfx/mobile/phone_tiles.2bpp"
-; f9344
-
-MapEntryFrameGFX: ; f9344
-INCBIN "gfx/frames/map_entry_sign.2bpp"
-; f9424
-
-GFX_f9424: ; f9424
-INCBIN "gfx/unknown/0f9424.2bpp"
-; f9434
-
-Footprints: ; f9434
-INCBIN "gfx/misc/footprints.1bpp"
-; fb434
-
-; This and the following two functions are unreferenced.
-Unknown_fb434:
- db 0
-
-Functionfb435: ; 4b435
- ld a, [Unknown_fb434]
- and a
- jp nz, Get1bpp_2
- jp Get1bpp
-; fb43f
-
-Functionfb43f: ; fb43f
- ld a, [Unknown_fb434]
- and a
- jp nz, Get2bpp_2
- jp Get2bpp
-; End unreferenced block
-; fb449
-
-_LoadStandardFont:: ; fb449
- ld de, Font
- ld hl, VTiles1
- lb bc, BANK(Font), $80
- ld a, [rLCDC]
- bit 7, a
- jp z, Copy1bpp
-
- ld de, Font
- ld hl, VTiles1
- lb bc, BANK(Font), $20
- call Get1bpp_2
- ld de, Font + $20 * LEN_1BPP_TILE
- ld hl, VTiles1 tile $20
- lb bc, BANK(Font), $20
- call Get1bpp_2
- ld de, Font + $40 * LEN_1BPP_TILE
- ld hl, VTiles1 tile $40
- lb bc, BANK(Font), $20
- call Get1bpp_2
- ld de, Font + $60 * LEN_1BPP_TILE
- ld hl, VTiles1 tile $60
- lb bc, BANK(Font), $20
- call Get1bpp_2
- ret
-; fb48a
-
-_LoadFontsExtra1:: ; fb48a
- ld de, MobilePhoneTilesGFX
- ld hl, VTiles2 tile $60
- lb bc, BANK(MobilePhoneTilesGFX), 1
- call Get1bpp_2
- ld de, OverworldPhoneIconGFX
- ld hl, VTiles2 tile $62
- lb bc, BANK(OverworldPhoneIconGFX), 1
- call Get2bpp_2
- ld de, FontExtra + 3 * LEN_2BPP_TILE
- ld hl, VTiles2 tile $63
- lb bc, BANK(FontExtra), $16
- call Get2bpp_2
- jr LoadFrame
-; fb4b0
-
-_LoadFontsExtra2:: ; fb4b0
- ld de, GFX_f9424
- ld hl, VTiles2 tile $61
- ld b, BANK(GFX_f9424)
- ld c, 1
- call Get2bpp_2
- ret
-; fb4be
-
-_LoadFontsBattleExtra:: ; fb4be
- ld de, FontBattleExtra
- ld hl, VTiles2 tile $60
- lb bc, BANK(FontBattleExtra), $19
- call Get2bpp_2
- jr LoadFrame
-; fb4cc
-
-LoadFrame: ; fb4cc
- ld a, [TextBoxFrame]
- and 7
- ld bc, TILES_PER_FRAME * LEN_1BPP_TILE
- ld hl, Frames
- call AddNTimes
- ld d, h
- ld e, l
- ld hl, VTiles2 tile $79
- lb bc, BANK(Frames), TILES_PER_FRAME
- call Get1bpp_2
- ld hl, VTiles2 tile $7f
- ld de, TextBoxSpaceGFX
- lb bc, BANK(TextBoxSpaceGFX), 1
- call Get1bpp_2
- ret
-; fb4f2
-
-LoadBattleFontsHPBar: ; fb4f2
- ld de, FontBattleExtra
- ld hl, VTiles2 tile $60
- lb bc, BANK(FontBattleExtra), $c
- call Get2bpp_2
- ld hl, VTiles2 tile $70
- ld de, FontBattleExtra + $10 * LEN_2BPP_TILE
- lb bc, BANK(FontBattleExtra), 3
- call Get2bpp_2
- call LoadFrame
-
-LoadHPBar: ; fb50d
- ld de, EnemyHPBarBorderGFX
- ld hl, VTiles2 tile $6c
- lb bc, BANK(EnemyHPBarBorderGFX), 4
- call Get1bpp_2
- ld de, HPExpBarBorderGFX
- ld hl, VTiles2 tile $73
- lb bc, BANK(HPExpBarBorderGFX), 6
- call Get1bpp_2
- ld de, ExpBarGFX
- ld hl, VTiles2 tile $55
- lb bc, BANK(ExpBarGFX), 9
- call Get2bpp_2
- ld de, MobilePhoneTilesGFX + 9 * LEN_2BPP_TILE
- ld hl, VTiles2 tile $5e
- lb bc, BANK(MobilePhoneTilesGFX), 2
- call Get2bpp_2
- ret
-; fb53e
-
-Functionfb53e: ; fb53e
- call _LoadFontsBattleExtra
- ld de, EnemyHPBarBorderGFX
- ld hl, VTiles2 tile $6c
- lb bc, BANK(EnemyHPBarBorderGFX), 4
- call Get1bpp_2
- ld de, HPExpBarBorderGFX
- ld hl, VTiles2 tile $78
- lb bc, BANK(HPExpBarBorderGFX), 1
- call Get1bpp_2
- ld de, HPExpBarBorderGFX + 3 * LEN_1BPP_TILE
- ld hl, VTiles2 tile $76
- lb bc, BANK(HPExpBarBorderGFX), 2
- call Get1bpp_2
- ld de, ExpBarGFX
- ld hl, VTiles2 tile $55
- lb bc, BANK(ExpBarGFX), 8
- call Get2bpp_2
-
-Functionfb571: ; fb571
- ld de, GFX_f89b0
- ld hl, VTiles2 tile $31
- lb bc, BANK(GFX_f89b0), $11
- call Get2bpp_2
- ret
-; fb57e
-
-; These functions seem to be related to backwards compatibility
-
-Functionfb57e: ; fb57e
- ld a, [wd003]
- ld hl, OTPartyMon1Species
- call GetPartyLocation
- push hl
- ld a, [wd003]
- inc a
- ld c, a
- ld b, 0
- ld hl, OTPartyCount
- add hl, bc
- ld a, [hl]
- pop hl
- cp EGG
- jr z, .asm_fb59c
- cp [hl]
- jr nz, .asm_fb5db
-
-.asm_fb59c
- ld b, h
- ld c, l
- ld hl, MON_LEVEL
- add hl, bc
- ld a, [hl]
- cp 101
- jr nc, .asm_fb5db
- ld a, [wLinkMode]
- cp LINK_TIMECAPSULE
- jr nz, .asm_fb5d9
- ld hl, OTPartySpecies
- ld a, [wd003]
- ld c, a
- ld b, 0
- add hl, bc
- ld a, [hl]
-
- ; Magnemite and Magneton's types changed
- ; from Electric to Electric/Steel.
- cp MAGNEMITE
- jr z, .asm_fb5d9
- cp MAGNETON
- jr z, .asm_fb5d9
-
- ld [CurSpecies], a
- call GetBaseData
- ld hl, wcbea
-rept 2
- add hl, bc
-endr
- ld a, [BaseType1]
- cp [hl]
- jr nz, .asm_fb5db
- inc hl
- ld a, [BaseType2]
- cp [hl]
- jr nz, .asm_fb5db
-
-.asm_fb5d9
- and a
- ret
-
-.asm_fb5db
- scf
- ret
-; fb5dd
-
-Functionfb5dd: ; fb5dd
- ld a, [wd002]
- ld d, a
- ld a, [PartyCount]
- ld b, a
- ld c, $0
-.asm_fb5e7
- ld a, c
- cp d
- jr z, .asm_fb5f8
- push bc
- ld a, c
- ld hl, PartyMon1HP
- call GetPartyLocation
- pop bc
- ld a, [hli]
- or [hl]
- jr nz, .asm_fb60b
-
-.asm_fb5f8
- inc c
- dec b
- jr nz, .asm_fb5e7
- ld a, [wd003]
- ld hl, OTPartyMon1HP
- call GetPartyLocation
- ld a, [hli]
- or [hl]
- jr nz, .asm_fb60b
- scf
- ret
-
-.asm_fb60b
- and a
- ret
-; fb60d
-
-Functionfb60d: ; fb60d
- hlcoord 4, 0
- ld de, PlayerName
- call PlaceString
- ld a, $14
- ld [bc], a
- hlcoord 4, 8
- ld de, wd26b
- call PlaceString
- ld a, $14
- ld [bc], a
- hlcoord 7, 1
- ld de, PartySpecies
- call Functionfb634
- hlcoord 7, 9
- ld de, OTPartySpecies
-
-Functionfb634: ; fb634
- ld c, $0
-.asm_fb636
- ld a, [de]
- cp $ff
- ret z
- ld [wd265], a
- push bc
- push hl
- push de
- push hl
- ld a, c
- ld [hProduct], 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 .asm_fb636
-; fb656
-
-KantoMonSpecials: ; fb656
-; The original special base stat for
-; each Kanto monster from Red/Blue.
- db 65 ; BULBASAUR
- db 80 ; IVYSAUR
- db 100 ; VENUSAUR
- db 50 ; CHARMANDER
- db 65 ; CHARMELEON
- db 85 ; CHARIZARD
- db 50 ; SQUIRTLE
- db 65 ; WARTORTLE
- db 85 ; BLASTOISE
- db 20 ; CATERPIE
- db 25 ; METAPOD
- db 80 ; BUTTERFREE
- db 20 ; WEEDLE
- db 25 ; KAKUNA
- db 45 ; BEEDRILL
- db 35 ; PIDGEY
- db 50 ; PIDGEOTTO
- db 70 ; PIDGEOT
- db 25 ; RATTATA
- db 50 ; RATICATE
- db 31 ; SPEAROW
- db 61 ; FEAROW
- db 40 ; EKANS
- db 65 ; ARBOK
- db 50 ; PIKACHU
- db 90 ; RAICHU
- db 30 ; SANDSHREW
- db 55 ; SANDSLASH
- db 40 ; NIDORAN_F
- db 55 ; NIDORINA
- db 75 ; NIDOQUEEN
- db 40 ; NIDORAN_M
- db 55 ; NIDORINO
- db 75 ; NIDOKING
- db 60 ; CLEFAIRY
- db 85 ; CLEFABLE
- db 65 ; VULPIX
- db 100 ; NINETALES
- db 25 ; JIGGLYPUFF
- db 50 ; WIGGLYTUFF
- db 40 ; ZUBAT
- db 75 ; GOLBAT
- db 75 ; ODDISH
- db 85 ; GLOOM
- db 100 ; VILEPLUME
- db 55 ; PARAS
- db 80 ; PARASECT
- db 40 ; VENONAT
- db 90 ; VENOMOTH
- db 45 ; DIGLETT
- db 70 ; DUGTRIO
- db 40 ; MEOWTH
- db 65 ; PERSIAN
- db 50 ; PSYDUCK
- db 80 ; GOLDUCK
- db 35 ; MANKEY
- db 60 ; PRIMEAPE
- db 50 ; GROWLITHE
- db 80 ; ARCANINE
- db 40 ; POLIWAG
- db 50 ; POLIWHIRL
- db 70 ; POLIWRATH
- db 105 ; ABRA
- db 120 ; KADABRA
- db 135 ; ALAKAZAM
- db 35 ; MACHOP
- db 50 ; MACHOKE
- db 65 ; MACHAMP
- db 70 ; BELLSPROUT
- db 85 ; WEEPINBELL
- db 100 ; VICTREEBEL
- db 100 ; TENTACOOL
- db 120 ; TENTACRUEL
- db 30 ; GEODUDE
- db 45 ; GRAVELER
- db 55 ; GOLEM
- db 65 ; PONYTA
- db 80 ; RAPIDASH
- db 40 ; SLOWPOKE
- db 80 ; SLOWBRO
- db 95 ; MAGNEMITE
- db 120 ; MAGNETON
- db 58 ; FARFETCH_D
- db 35 ; DODUO
- db 60 ; DODRIO
- db 70 ; SEEL
- db 95 ; DEWGONG
- db 40 ; GRIMER
- db 65 ; MUK
- db 45 ; SHELLDER
- db 85 ; CLOYSTER
- db 100 ; GASTLY
- db 115 ; HAUNTER
- db 130 ; GENGAR
- db 30 ; ONIX
- db 90 ; DROWZEE
- db 115 ; HYPNO
- db 25 ; KRABBY
- db 50 ; KINGLER
- db 55 ; VOLTORB
- db 80 ; ELECTRODE
- db 60 ; EXEGGCUTE
- db 125 ; EXEGGUTOR
- db 40 ; CUBONE
- db 50 ; MAROWAK
- db 35 ; HITMONLEE
- db 35 ; HITMONCHAN
- db 60 ; LICKITUNG
- db 60 ; KOFFING
- db 85 ; WEEZING
- db 30 ; RHYHORN
- db 45 ; RHYDON
- db 105 ; CHANSEY
- db 100 ; TANGELA
- db 40 ; KANGASKHAN
- db 70 ; HORSEA
- db 95 ; SEADRA
- db 50 ; GOLDEEN
- db 80 ; SEAKING
- db 70 ; STARYU
- db 100 ; STARMIE
- db 100 ; MR__MIME
- db 55 ; SCYTHER
- db 95 ; JYNX
- db 85 ; ELECTABUZZ
- db 85 ; MAGMAR
- db 55 ; PINSIR
- db 70 ; TAUROS
- db 20 ; MAGIKARP
- db 100 ; GYARADOS
- db 95 ; LAPRAS
- db 48 ; DITTO
- db 65 ; EEVEE
- db 110 ; VAPOREON
- db 110 ; JOLTEON
- db 110 ; FLAREON
- db 75 ; PORYGON
- db 90 ; OMANYTE
- db 115 ; OMASTAR
- db 45 ; KABUTO
- db 70 ; KABUTOPS
- db 60 ; AERODACTYL
- db 65 ; SNORLAX
- db 125 ; ARTICUNO
- db 125 ; ZAPDOS
- db 125 ; MOLTRES
- db 50 ; DRATINI
- db 70 ; DRAGONAIR
- db 100 ; DRAGONITE
- db 154 ; MEWTWO
- db 100 ; MEW
-; fb6ed
-
-
-INCLUDE "event/name_rater.asm"
-
-
-PlaySlowCry: ; fb841
- ld a, [ScriptVar]
- call LoadCryHeader
- jr c, .done
-
- ld hl, CryPitch
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld bc, -$140
- add hl, bc
- ld a, l
- ld [CryPitch], a
- ld a, h
- ld [CryPitch + 1], a
- ld hl, CryLength
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld bc, $60
- add hl, bc
- ld a, l
- ld [CryLength], a
- ld a, h
- ld [CryLength + 1], a
- callba _PlayCryHeader
- call WaitSFX
-
-.done
- ret
-; fb877
-
-NewPokedexEntry: ; fb877
- ld a, [hMapAnims]
- push af
- xor a
- ld [hMapAnims], a
- call LowVolume
- call ClearBGPalettes
- call ClearTileMap
- call UpdateSprites
- call ClearSprites
- ld a, [wPokedexStatus]
- push af
- ld a, [hSCX]
- add $5
- ld [hSCX], a
- xor a
- ld [wPokedexStatus], a
- callba Function41a7f
- call WaitPressAorB_BlinkCursor
- ld a, $1
- ld [wPokedexStatus], a
- callba Function4424d
- call WaitPressAorB_BlinkCursor
- pop af
- ld [wPokedexStatus], a
- call MaxVolume
- call FadeToWhite
- ld a, [hSCX]
- add $fb
- ld [hSCX], a
- call Functionfb8c8
- pop af
- ld [hMapAnims], a
- ret
-; fb8c8
-
-Functionfb8c8: ; fb8c8
- call ClearTileMap
- call LoadFontsExtra
- call LoadStandardFont
- callba Function40ab2
- call Function3200
- callba GetEnemyMonDVs
- ld a, [hli]
- ld [TempMonDVs], a
- ld a, [hl]
- ld [TempMonDVs + 1], a
- ld b, SCGB_1C
- call GetSGBLayout
- call SetPalettes
- ret
-; fb8f1
-
-ConvertMon_2to1: ; fb8f1
-; Takes the Gen-2 Pokemon number stored in wd265, finds it in the Pokered_MonIndices table, and returns its index in wd265.
- push bc
- push hl
- ld a, [wd265]
- ld b, a
- ld c, 0
- ld hl, Pokered_MonIndices
-.loop
- inc c
- ld a, [hli]
- cp b
- jr nz, .loop
- ld a, c
- ld [wd265], a
- pop hl
- pop bc
- ret
-; fb908
-
-ConvertMon_1to2: ; fb908
-; Takes the Gen-1 Pokemon number stored in wd265 and returns the corresponding value from Pokered_MonIndices in wd265.
- push bc
- push hl
- ld a, [wd265]
- dec a
- ld hl, Pokered_MonIndices
- ld b, 0
- ld c, a
- add hl, bc
- ld a, [hl]
- ld [wd265], a
- pop hl
- pop bc
- ret
-; fb91c
-
-Pokered_MonIndices: ; fb91c
- db RHYDON
- db KANGASKHAN
- db NIDORAN_M
- db CLEFAIRY
- db SPEAROW
- db VOLTORB
- db NIDOKING
- db SLOWBRO
- db IVYSAUR
- db EXEGGUTOR
- db LICKITUNG
- db EXEGGCUTE
- db GRIMER
- db GENGAR
- db NIDORAN_F
- db NIDOQUEEN
- db CUBONE
- db RHYHORN
- db LAPRAS
- db ARCANINE
- db MEW
- db GYARADOS
- db SHELLDER
- db TENTACOOL
- db GASTLY
- db SCYTHER
- db STARYU
- db BLASTOISE
- db PINSIR
- db TANGELA
- db SCIZOR
- db SHUCKLE
- db GROWLITHE
- db ONIX
- db FEAROW
- db PIDGEY
- db SLOWPOKE
- db KADABRA
- db GRAVELER
- db CHANSEY
- db MACHOKE
- db MR__MIME
- db HITMONLEE
- db HITMONCHAN
- db ARBOK
- db PARASECT
- db PSYDUCK
- db DROWZEE
- db GOLEM
- db HERACROSS
- db MAGMAR
- db HO_OH
- db ELECTABUZZ
- db MAGNETON
- db KOFFING
- db SNEASEL
- db MANKEY
- db SEEL
- db DIGLETT
- db TAUROS
- db TEDDIURSA
- db URSARING
- db SLUGMA
- db FARFETCH_D
- db VENONAT
- db DRAGONITE
- db MAGCARGO
- db SWINUB
- db PILOSWINE
- db DODUO
- db POLIWAG
- db JYNX
- db MOLTRES
- db ARTICUNO
- db ZAPDOS
- db DITTO
- db MEOWTH
- db KRABBY
- db CORSOLA
- db REMORAID
- db OCTILLERY
- db VULPIX
- db NINETALES
- db PIKACHU
- db RAICHU
- db DELIBIRD
- db MANTINE
- db DRATINI
- db DRAGONAIR
- db KABUTO
- db KABUTOPS
- db HORSEA
- db SEADRA
- db SKARMORY
- db HOUNDOUR
- db SANDSHREW
- db SANDSLASH
- db OMANYTE
- db OMASTAR
- db JIGGLYPUFF
- db WIGGLYTUFF
- db EEVEE
- db FLAREON
- db JOLTEON
- db VAPOREON
- db MACHOP
- db ZUBAT
- db EKANS
- db PARAS
- db POLIWHIRL
- db POLIWRATH
- db WEEDLE
- db KAKUNA
- db BEEDRILL
- db HOUNDOOM
- db DODRIO
- db PRIMEAPE
- db DUGTRIO
- db VENOMOTH
- db DEWGONG
- db KINGDRA
- db PHANPY
- db CATERPIE
- db METAPOD
- db BUTTERFREE
- db MACHAMP
- db DONPHAN
- db GOLDUCK
- db HYPNO
- db GOLBAT
- db MEWTWO
- db SNORLAX
- db MAGIKARP
- db PORYGON2
- db STANTLER
- db MUK
- db SMEARGLE
- db KINGLER
- db CLOYSTER
- db TYROGUE
- db ELECTRODE
- db CLEFABLE
- db WEEZING
- db PERSIAN
- db MAROWAK
- db HITMONTOP
- db HAUNTER
- db ABRA
- db ALAKAZAM
- db PIDGEOTTO
- db PIDGEOT
- db STARMIE
- db BULBASAUR
- db VENUSAUR
- db TENTACRUEL
- db SMOOCHUM
- db GOLDEEN
- db SEAKING
- db ELEKID
- db MAGBY
- db MILTANK
- db BLISSEY
- db PONYTA
- db RAPIDASH
- db RATTATA
- db RATICATE
- db NIDORINO
- db NIDORINA
- db GEODUDE
- db PORYGON
- db AERODACTYL
- db RAIKOU
- db MAGNEMITE
- db ENTEI
- db SUICUNE
- db CHARMANDER
- db SQUIRTLE
- db CHARMELEON
- db WARTORTLE
- db CHARIZARD
- db LARVITAR
- db PUPITAR
- db TYRANITAR
- db LUGIA
- db ODDISH
- db GLOOM
- db VILEPLUME
- db BELLSPROUT
- db WEEPINBELL
- db VICTREEBEL
- db CHIKORITA
- db BAYLEEF
- db MEGANIUM
- db CYNDAQUIL
- db QUILAVA
- db TYPHLOSION
- db TOTODILE
- db CROCONAW
- db FERALIGATR
- db SENTRET
- db FURRET
- db HOOTHOOT
- db NOCTOWL
- db LEDYBA
- db LEDIAN
- db SPINARAK
- db ARIADOS
- db CROBAT
- db CHINCHOU
- db LANTURN
- db PICHU
- db CLEFFA
- db IGGLYBUFF
- db TOGEPI
- db TOGETIC
- db NATU
- db XATU
- db MAREEP
- db FLAAFFY
- db AMPHAROS
- db BELLOSSOM
- db MARILL
- db AZUMARILL
- db SUDOWOODO
- db POLITOED
- db HOPPIP
- db SKIPLOOM
- db JUMPLUFF
- db AIPOM
- db SUNKERN
- db SUNFLORA
- db YANMA
- db WOOPER
- db QUAGSIRE
- db ESPEON
- db UMBREON
- db MURKROW
- db SLOWKING
- db MISDREAVUS
- db UNOWN
- db WOBBUFFET
- db GIRAFARIG
- db PINECO
- db FORRETRESS
- db DUNSPARCE
- db GLIGAR
- db STEELIX
- db SNUBBULL
- db GRANBULL
- db QWILFISH
- db WOBBUFFET
- db WOBBUFFET
-; fba18
-
+INCLUDE "gfx/font.asm"
+INCLUDE "engine/time_capsule/conversion.asm"
UpdateUnownDex: ; fba18
ld a, [UnownLetter]
@@ -34747,914 +25793,9 @@ SECTION "bank3F", ROMX, BANK[$3F]
INCLUDE "tilesets/animations.asm"
+INCLUDE "engine/npctrade.asm"
-; Trade struct
-TRADE_DIALOG EQU 0
-TRADE_GIVEMON EQU 1
-TRADE_GETMON EQU 2
-TRADE_NICK EQU 3
-TRADE_DVS EQU 14
-TRADE_ITEM EQU 16
-TRADE_OT_ID EQU 17
-TRADE_OT_NAME EQU 19
-TRADE_GENDER EQU 30
-TRADE_PADDING EQU 31
-
-; Trade dialogs
-TRADE_INTRO EQU 0
-TRADE_CANCEL EQU 1
-TRADE_WRONG EQU 2
-TRADE_COMPLETE EQU 3
-TRADE_AFTER EQU 4
-
-NPCTrade:: ; fcba8
- ld a, e
- ld [wJumptableIndex], a
- call Functionfcc59
- ld b, CHECK_FLAG
- call TradeFlagAction
- ld a, TRADE_AFTER
- jr nz, .done
-
- ld a, TRADE_INTRO
- call PrintTradeText
-
- call YesNoBox
- ld a, TRADE_CANCEL
- jr c, .done
-
-; Select givemon from party
- ld b, 6
- callba Function5001d
- ld a, TRADE_CANCEL
- jr c, .done
-
- ld e, TRADE_GIVEMON
- call GetTradeAttribute
- ld a, [CurPartySpecies]
- cp [hl]
- ld a, TRADE_WRONG
- jr nz, .done
-
- call CheckTradeGender
- ld a, TRADE_WRONG
- jr c, .done
-
- ld b, SET_FLAG
- call TradeFlagAction
-
- ld hl, ConnectLinkCableText
- call PrintText
-
- call Functionfcc63
- call Functionfcc07
- call GetTradeMonNames
-
- ld hl, TradedForText
- call PrintText
-
- call RestartMapMusic
-
- ld a, TRADE_COMPLETE
-
-.done
- call PrintTradeText
- ret
-; fcc07
-
-Functionfcc07: ; fcc07
- call DisableSpriteUpdates
- ld a, [wJumptableIndex]
- push af
- ld a, [wcf64]
- push af
- predef Function28f24
- pop af
- ld [wcf64], a
- pop af
- ld [wJumptableIndex], a
- call Function2b74
- ret
-; fcc23
-
-CheckTradeGender: ; fcc23
- xor a
- ld [MonType], a
-
- ld e, TRADE_GENDER
- call GetTradeAttribute
- ld a, [hl]
- and a
- jr z, .asm_fcc46
- cp 1
- jr z, .asm_fcc3e
-
- callba GetGender
- jr nz, .asm_fcc48
- jr .asm_fcc46
-
-.asm_fcc3e
- callba GetGender
- jr z, .asm_fcc48
-
-.asm_fcc46
- and a
- ret
-
-.asm_fcc48
- scf
- ret
-; fcc4a
-
-TradeFlagAction: ; fcc4a
- ld hl, wd960
- ld a, [wJumptableIndex]
- ld c, a
- predef FlagPredef
- ld a, c
- and a
- ret
-; fcc59
-
-Functionfcc59: ; fcc59
- ld e, TRADE_DIALOG
- call GetTradeAttribute
- ld a, [hl]
- ld [wcf64], a
- ret
-; fcc63
-
-Functionfcc63: ; fcc63
- ld e, TRADE_GIVEMON
- call GetTradeAttribute
- ld a, [hl]
- ld [wc6d0], a
-
- ld e, TRADE_GETMON
- call GetTradeAttribute
- ld a, [hl]
- ld [wc702], a
-
- ld a, [wc6d0]
- ld de, wc6d1
- call Functionfcde8
- call Functionfcdf4
-
- ld a, [wc702]
- ld de, wc703
- call Functionfcde8
- call Functionfcdf4
-
- ld hl, PartyMonOT
- ld bc, NAME_LENGTH
- call Functionfcdd7
- ld de, wc6f2
- call Functionfcdf4
-
- ld hl, PlayerName
- ld de, wc6e7
- call Functionfcdf4
-
- ld hl, PartyMon1ID
- ld bc, PARTYMON_STRUCT_LENGTH
- call Functionfcdd7
- ld de, wc6ff
- call Functionfce0f
-
- ld hl, PartyMon1DVs
- ld bc, PARTYMON_STRUCT_LENGTH
- call Functionfcdd7
- ld de, wc6fd
- call Functionfce0f
-
- ld hl, PartyMon1Species
- ld bc, PARTYMON_STRUCT_LENGTH
- call Functionfcdd7
- ld b, h
- ld c, l
- callba GetCaughtGender
- ld a, c
- ld [wc701], a
-
- ld e, TRADE_DIALOG
- call GetTradeAttribute
- ld a, [hl]
- cp TRADE_COMPLETE
- ld a, 1
- jr c, .asm_fcce6
- ld a, 2
-.asm_fcce6
- ld [wEnemyCharging], a
-
- ld hl, PartyMon1Level
- ld bc, PARTYMON_STRUCT_LENGTH
- call Functionfcdd7
- ld a, [hl]
- ld [CurPartyLevel], a
- ld a, [wc702]
- ld [CurPartySpecies], a
- xor a
- ld [MonType], a
- ld [wPokemonWithdrawDepositParameter], a
- callab Functione039
- predef TryAddMonToParty
-
- ld e, TRADE_DIALOG
- call GetTradeAttribute
- ld a, [hl]
- cp TRADE_COMPLETE
- ld b, 0
- jr c, .asm_fcd1c
- ld b, 1
-.asm_fcd1c
- callba SetGiftPartyMonCaughtData
-
- ld e, TRADE_NICK
- call GetTradeAttribute
- ld de, wc70e
- call Functionfcdf4
-
- ld hl, PartyMonNicknames
- ld bc, PKMN_NAME_LENGTH
- call Functionfcdde
- ld hl, wc70e
- call Functionfcdf4
-
- ld e, TRADE_OT_NAME
- call GetTradeAttribute
- push hl
- ld de, wc724
- call Functionfcdf4
- pop hl
- ld de, wc719
- call Functionfcdf4
-
- ld hl, PartyMonOT
- ld bc, NAME_LENGTH
- call Functionfcdde
- ld hl, wc724
- call Functionfcdf4
-
- ld e, TRADE_DVS
- call GetTradeAttribute
- ld de, wEnemyTrappingMove
- call Functionfce0f
-
- ld hl, PartyMon1DVs
- ld bc, PARTYMON_STRUCT_LENGTH
- call Functionfcdde
- ld hl, wEnemyTrappingMove
- call Functionfce0f
-
- ld e, TRADE_OT_ID
- call GetTradeAttribute
- ld de, wPlayerCharging
- call Functionfce15
-
- ld hl, PartyMon1ID
- ld bc, PARTYMON_STRUCT_LENGTH
- call Functionfcdde
- ld hl, wEnemyWrapCount
- call Functionfce0f
-
- ld e, TRADE_ITEM
- call GetTradeAttribute
- push hl
- ld hl, PartyMon1Item
- ld bc, PARTYMON_STRUCT_LENGTH
- call Functionfcdde
- pop hl
- ld a, [hl]
- ld [de], a
-
- push af
- push bc
- push de
- push hl
- ld a, [CurPartyMon]
- push af
- ld a, [PartyCount]
- dec a
- ld [CurPartyMon], a
- callba Functione134
- pop af
- ld [CurPartyMon], a
- pop hl
- pop de
- pop bc
- pop af
- ret
-; fcdc2
-
-
-GetTradeAttribute: ; 0xfcdc2
- ld d, 0
- push de
- ld a, [wJumptableIndex]
- and $f
- swap a
- ld e, a
- ld d, 0
- ld hl, NPCTrades
-rept 2
- add hl, de
-endr
- pop de
- add hl, de
- ret
-; 0xfcdd7
-
-Functionfcdd7: ; fcdd7
- ld a, [CurPartyMon]
- call AddNTimes
- ret
-; fcdde
-
-Functionfcdde: ; fcdde
- ld a, [PartyCount]
- dec a
- call AddNTimes
- ld e, l
- ld d, h
- ret
-; fcde8
-
-Functionfcde8: ; fcde8
- push de
- ld [wd265], a
- call GetBasePokemonName
- ld hl, StringBuffer1
- pop de
- ret
-; fcdf4
-
-Functionfcdf4: ; fcdf4
- ld bc, NAME_LENGTH
- call CopyBytes
- ret
-; fcdfb
-
-Functionfcdfb: ; fcdfb
- ld bc, 4
- call CopyBytes
- ld a, $50
- ld [de], a
- ret
-; fce05
-
-Functionfce05: ; fce05
- ld bc, 3
- call CopyBytes
- ld a, $50
- ld [de], a
- ret
-; fce0f
-
-Functionfce0f: ; fce0f
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hl]
- ld [de], a
- ret
-; fce15
-
-Functionfce15: ; fce15
- ld a, [hli]
- ld [de], a
- dec de
- ld a, [hl]
- ld [de], a
- ret
-; fce1b
-
-GetTradeMonNames: ; fce1b
- ld e, TRADE_GETMON
- call GetTradeAttribute
- ld a, [hl]
- call Functionfcde8
-
- ld de, StringBuffer2
- call Functionfcdf4
-
- ld e, TRADE_GIVEMON
- call GetTradeAttribute
- ld a, [hl]
- call Functionfcde8
-
- ld de, wd050
- call Functionfcdf4
-
- ld hl, StringBuffer1
-.loop
- ld a, [hli]
- cp "@"
- jr nz, .loop
-
- dec hl
- push hl
- ld e, TRADE_GENDER
- call GetTradeAttribute
- ld a, [hl]
- pop hl
- and a
- ret z
-
- cp 1
- ld a, "♂"
- jr z, .done
- ld a, "♀"
-.done
- ld [hli], a
- ld [hl], "@"
- ret
-; fce58
-
-
-NPCTrades: ; fce58
- db 0, ABRA, MACHOP, "MUSCLE@@@@@", $37, $66, GOLD_BERRY, $54, $92, "MIKE@@@@@@@", 0, 0
- db 0, BELLSPROUT, ONIX, "ROCKY@@@@@@", $96, $66, BITTER_BERRY, $1e, $bf, "KYLE@@@@@@@", 0, 0
- db 1, KRABBY, VOLTORB, "VOLTY@@@@@@", $98, $88, PRZCUREBERRY, $05, $72, "TIM@@@@@@@@", 0, 0
- db 3, DRAGONAIR, DODRIO, "DORIS@@@@@@", $77, $66, SMOKE_BALL, $1b, $01, "EMY@@@@@@@@", 2, 0
- db 2, HAUNTER, XATU, "PAUL@@@@@@@", $96, $86, MYSTERYBERRY, $00, $3d, "CHRIS@@@@@@", 0, 0
- db 3, CHANSEY, AERODACTYL, "AEROY@@@@@@", $96, $66, GOLD_BERRY, $7b, $67, "KIM@@@@@@@@", 0, 0
- db 0, DUGTRIO, MAGNETON, "MAGGIE@@@@@", $96, $66, METAL_COAT, $a2, $c3, "FOREST@@@@@", 0, 0
-; fcf38
-
-
-PrintTradeText: ; fcf38
- push af
- call GetTradeMonNames
- pop af
- ld bc, 2 * 4
- ld hl, TradeTexts
- call AddNTimes
- ld a, [wcf64]
- ld c, a
-rept 2
- add hl, bc
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- call PrintText
- ret
-; fcf53
-
-TradeTexts: ; fcf53
-; intro
- dw TradeIntroText1
- dw TradeIntroText2
- dw TradeIntroText3
- dw TradeIntroText4
-
-; cancel
- dw TradeCancelText1
- dw TradeCancelText2
- dw TradeCancelText3
- dw TradeCancelText4
-
-; wrong mon
- dw TradeWrongText1
- dw TradeWrongText2
- dw TradeWrongText3
- dw TradeWrongText4
-
-; completed
- dw TradeCompleteText1
- dw TradeCompleteText2
- dw TradeCompleteText3
- dw TradeCompleteText4
-
-; after
- dw TradeAfterText1
- dw TradeAfterText2
- dw TradeAfterText3
- dw TradeAfterText4
-; fcf7b
-
-
-ConnectLinkCableText: ; 0xfcf7b
- ; OK, connect the Game Link Cable.
- text_jump UnknownText_0x1bd407
- db "@"
-; 0xfcf80
-
-
-TradedForText: ; 0xfcf80
- ; traded givemon for getmon
- text_jump UnknownText_0x1bd429
- start_asm
-
- ld de, MUSIC_NONE
- call PlayMusic
- call DelayFrame
- ld hl, .done
- ret
-
-.done
- ; sound0x0A
- ; interpret_data
- text_jump UnknownText_0x1bd445
- db "@"
-; 0xfcf97
-
-
-TradeIntroText1: ; 0xfcf97
- ; I collect #MON. Do you have @ ? Want to trade it for my @ ?
- text_jump UnknownText_0x1bd449
- db "@"
-; 0xfcf9c
-
-TradeCancelText1: ; 0xfcf9c
- ; You don't want to trade? Aww…
- text_jump UnknownText_0x1bd48c
- db "@"
-; 0xfcfa1
-
-TradeWrongText1: ; 0xfcfa1
- ; Huh? That's not @ . What a letdown…
- text_jump UnknownText_0x1bd4aa
- db "@"
-; 0xfcfa6
-
-TradeCompleteText1: ; 0xfcfa6
- ; Yay! I got myself @ ! Thanks!
- text_jump UnknownText_0x1bd4d2
- db "@"
-; 0xfcfab
-
-TradeAfterText1: ; 0xfcfab
- ; Hi, how's my old @ doing?
- text_jump UnknownText_0x1bd4f4
- db "@"
-; 0xfcfb0
-
-
-TradeIntroText2:
-TradeIntroText3: ; 0xfcfb0
- ; Hi, I'm looking for this #MON. If you have @ , would you trade it for my @ ?
- text_jump UnknownText_0x1bd512
- db "@"
-; 0xfcfb5
-
-TradeCancelText2:
-TradeCancelText3: ; 0xfcfb5
- ; You don't have one either? Gee, that's really disappointing…
- text_jump UnknownText_0x1bd565
- db "@"
-; 0xfcfba
-
-TradeWrongText2:
-TradeWrongText3: ; 0xfcfba
- ; You don't have @ ? That's too bad, then.
- text_jump UnknownText_0x1bd5a1
- db "@"
-; 0xfcfbf
-
-TradeCompleteText2: ; 0xfcfbf
- ; Great! Thank you! I finally got @ .
- text_jump UnknownText_0x1bd5cc
- db "@"
-; 0xfcfc4
-
-TradeAfterText2: ; 0xfcfc4
- ; Hi! The @ you traded me is doing great!
- text_jump UnknownText_0x1bd5f4
- db "@"
-; 0xfcfc9
-
-
-TradeIntroText4: ; 0xfcfc9
- ; 's cute, but I don't have it. Do you have @ ? Want to trade it for my @ ?
- text_jump UnknownText_0x1bd621
- db "@"
-; 0xfcfce
-
-TradeCancelText4: ; 0xfcfce
- ; You don't want to trade? Oh, darn…
- text_jump UnknownText_0x1bd673
- db "@"
-; 0xfcfd3
-
-TradeWrongText4: ; 0xfcfd3
- ; That's not @ . Please trade with me if you get one.
- text_jump UnknownText_0x1bd696
- db "@"
-; 0xfcfd8
-
-TradeCompleteText4: ; 0xfcfd8
- ; Wow! Thank you! I always wanted @ !
- text_jump UnknownText_0x1bd6cd
- db "@"
-; 0xfcfdd
-
-TradeAfterText4: ; 0xfcfdd
- ; How is that @ I traded you doing? Your @ 's so cute!
- text_jump UnknownText_0x1bd6f5
- db "@"
-; 0xfcfe2
-
-
-TradeCompleteText3: ; 0xfcfe2
- ; Uh? What happened?
- text_jump UnknownText_0x1bd731
- db "@"
-; 0xfcfe7
-
-TradeAfterText3: ; 0xfcfe7
- ; Trading is so odd… I still have a lot to learn about it.
- text_jump UnknownText_0x1bd745
- db "@"
-; 0xfcfec
-
-
-MomTriesToBuySomething:: ; fcfec
- ld a, [wMapReentryScriptQueueFlag]
- and a
- ret nz
- call GetMapHeaderPhoneServiceNybble
- and a
- ret nz
- xor a
- ld [wdc18], a
- call CheckBalance_MomItem2
- ret nc
- call Functionfd0c3
- ret nc
- ld b, BANK(UnknownScript_0xfd00f)
- ld de, UnknownScript_0xfd00f
- callba LoadScriptBDE
- scf
- ret
-; fd00f
-
-UnknownScript_0xfd00f: ; 0xfd00f
- callasm Functionfd017
- farjump Script_ReceivePhoneCall
-; 0xfd017
-
-Functionfd017: ; fd017
- call MomBuysItem_DeductFunds
- call Functionfd0eb
- ld a, [wdc18]
- and a
- jr nz, .ok
- ld hl, wdc17
- inc [hl]
-.ok
- ld a, 1
- ld [wCurrentCaller], a
- ld bc, wd03f
- ld hl, 0
- add hl, bc
- ld [hl], 0
- inc hl
- ld [hl], 1
- ld hl, 9
- add hl, bc
- ld a, $3f
- ld [hli], a
- ld a, e
- ld [hli], a
- ld a, d
- ld [hl], a
- ret
-; fd044
-
-CheckBalance_MomItem2: ; fd044
- ld a, [wdc17]
- cp 10
- jr nc, .nope
- call GetItemFromMom
- ld a, [hli]
- ld [hMoneyTemp], a
- ld a, [hli]
- ld [hMoneyTemp + 1], a
- ld a, [hli]
- ld [hMoneyTemp + 2], a
- ld de, wMomsMoney
- ld bc, hMoneyTemp
- callba CompareMoney
- jr nc, .have_enough_money
-
-.nope
- jr .check_have_2300
-
-.have_enough_money
- scf
- ret
-
-.check_have_2300
- ld hl, hMoneyTemp
- ld [hl], (2300 / $10000) ; $00
- inc hl
- ld [hl], ((2300 % $10000) / $100) ; $08
- inc hl
- ld [hl], (2300 % $100) ; $fc
-.loop
- ld de, wdc19
- ld bc, wMomsMoney
- callba CompareMoney
- jr z, .exact
- jr nc, .less_than
- call Functionfd099
- jr .loop
-
-.less_than
- xor a
- ret
-
-.exact
- call Functionfd099
- ld a, 5
- call RandomRange
- inc a
- ld [wdc18], a
- scf
- ret
-; fd099
-
-Functionfd099: ; fd099
- ld de, wdc19
- ld bc, hMoneyTemp
- callba AddMoney
- ret
-; fd0a6
-
-
-MomBuysItem_DeductFunds: ; fd0a6 (3f:50a6)
- call GetItemFromMom
- ld de, 3
- add hl, de
- ld a, [hli]
- ld [hMoneyTemp], a
- ld a, [hli]
- ld [hMoneyTemp + 1], a
- ld a, [hli]
- ld [hMoneyTemp + 2], a
- ld de, wMomsMoney
- ld bc, hMoneyTemp
- callba TakeMoney
- ret
-
-
-Functionfd0c3: ; fd0c3
- call GetItemFromMom
- ld de, 6
- add hl, de
- ld a, [hli]
- cp 1
- jr z, .not_doll
- ld a, [hl]
- ld c, a
- ld b, 1
- callba DecorationFlagAction_c
- scf
- ret
-
-.not_doll
- ld a, [hl]
- ld [CurItem], a
- ld a, $1
- ld [wItemQuantityChangeBuffer], a
- ld hl, PCItems
- call ReceiveItem
- ret
-; fd0eb
-
-
-Functionfd0eb: ; fd0eb (3f:50eb)
- call GetItemFromMom
- ld de, 6 ; field
- add hl, de
- ld a, [hli]
- ld de, Script_MomBoughtItem
- cp 1
- ret z
- ld de, Script_MomBoughtDoll
- ret
-; fd0fd (3f:50fd)
-
-Script_MomBoughtItem: ; 0xfd0fd
- writetext _MomText_HiHowAreYou
- writetext _MomText_FoundAnItem
- writetext _MomText_BoughtWithYourMoney
- writetext _MomText_ItsInPC
- end
-; 0xfd10a
-
-Script_MomBoughtDoll: ; 0xfd10a
- writetext _MomText_HiHowAreYou
- writetext _MomText_FoundADoll
- writetext _MomText_BoughtWithYourMoney
- writetext _MomText_ItsInRoom
- end
-; 0xfd117
-
-
-GetItemFromMom: ; fd117
- ld a, [wdc18]
- and a
- jr z, .zero
- dec a
- ld de, MomItems_1
- jr .incave
-
-.zero
- ld a, [wdc17]
- cp 10 ; length of MomItems_2
- jr c, .ok
- xor a
-
-.ok
- ld de, MomItems_2
-
-.incave
- ld l, a
- ld h, 0
-rept 3 ; multiply hl by 8
- add hl, hl
-endr
- add hl, de
- ret
-; fd136
-
-momitem: macro
-; money to trigger, cost, kind, item
- dt \1
- dt \2
- db \3, \4
-ENDM
-
-
-MomItems_1: ; fd136
- momitem 0, 600, MOM_ITEM, SUPER_POTION
- momitem 0, 90, MOM_ITEM, ANTIDOTE
- momitem 0, 180, MOM_ITEM, POKE_BALL
- momitem 0, 450, MOM_ITEM, ESCAPE_ROPE
- momitem 0, 500, MOM_ITEM, GREAT_BALL
-; fd15e
-
-MomItems_2: ; fd15e
- momitem 900, 600, MOM_ITEM, SUPER_POTION
- momitem 4000, 270, MOM_ITEM, REPEL
- momitem 7000, 600, MOM_ITEM, SUPER_POTION
- momitem 10000, 1800, MOM_DOLL, DECO_CHARMANDER_DOLL
- momitem 15000, 3000, MOM_ITEM, MOON_STONE
- momitem 19000, 600, MOM_ITEM, SUPER_POTION
- momitem 30000, 4800, MOM_DOLL, DECO_CLEFAIRY_DOLL
- momitem 40000, 900, MOM_ITEM, HYPER_POTION
- momitem 50000, 8000, MOM_DOLL, DECO_PIKACHU_DOLL
- momitem 100000, 22800, MOM_DOLL, DECO_BIG_SNORLAX_DOLL
-; fd1ae
-
- db 0, 0, 0 ; XXX
-
-_MomText_HiHowAreYou: ; 0xfd1b1
- ; Hi, ! How are you?
- text_jump UnknownText_0x1bc615
- db "@"
-; 0xfd1b6
-
-_MomText_FoundAnItem: ; 0xfd1b6
- ; I found a useful item shopping, so
- text_jump UnknownText_0x1bc62a
- db "@"
-; 0xfd1bb
-
-_MomText_BoughtWithYourMoney: ; 0xfd1bb
- ; I bought it with your money. Sorry!
- text_jump UnknownText_0x1bc64e
- db "@"
-; 0xfd1c0
-
-_MomText_ItsInPC: ; 0xfd1c0
- ; It's in your PC. You'll like it!
- text_jump UnknownText_0x1bc673
- db "@"
-; 0xfd1c5
-
-_MomText_FoundADoll: ; 0xfd1c5
- ; While shopping today, I saw this adorable doll, so
- text_jump UnknownText_0x1bc693
- db "@"
-; 0xfd1ca
-
-_MomText_ItsInRoom: ; 0xfd1ca
- ; It's in your room. You'll love it!
- text_jump UnknownText_0x1bc6c7
- db "@"
-; 0xfd1cf
-
- db 0 ; XXX
-
-Functionfd1d0: ; fd1d0
- ret
-; fd1d1
-
- ret ; XXX
-
+INCLUDE "event/mom_phone.asm"
INCLUDE "misc/mobile_40.asm"
@@ -35716,7 +25857,7 @@ Function10404d: ; 10404d
ret
; 104061
-Function104061:: ; 104061
+ReloadMapPart:: ; 104061
ld hl, Function104067
jp Function104177
; 104067
@@ -35746,7 +25887,7 @@ Function104067: ; 104067
ret
Function104099: ; 104099
- ld hl, Function104061
+ ld hl, ReloadMapPart ; useless
ld hl, Function1040a2
jp Function104177
; 1040a2
@@ -36585,7 +26726,7 @@ LoadMapPalettes: ; 1047eb
RefreshMapSprites: ; 1047f0
call ClearSprites
callba ReturnFromMapSetupScript
- call Function2914
+ call GetMovementPermissions
callba Function579d
callba CheckReplaceKrisSprite
ld hl, wPlayerSpriteSetupFlags