mirror of https://github.com/pret/pokecrystal.git
1518 lines
19 KiB
NASM
Executable File
1518 lines
19 KiB
NASM
Executable File
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
|