mirror of https://github.com/pret/pokecrystal.git
1373 lines
16 KiB
NASM
1373 lines
16 KiB
NASM
|
|
INCLUDE "predef/sgb.asm"
|
|
|
|
|
|
CheckShininess: ; 8a68
|
|
; Check if a mon is shiny by DVs at bc.
|
|
; Return carry if shiny.
|
|
|
|
ld l, c
|
|
ld h, b
|
|
|
|
; Attack
|
|
ld a, [hl]
|
|
and %0010 << 4
|
|
jr z, .NotShiny
|
|
|
|
; Defense
|
|
ld a, [hli]
|
|
and %1111
|
|
cp %1010
|
|
jr nz, .NotShiny
|
|
|
|
; Speed
|
|
ld a, [hl]
|
|
and %1111 << 4
|
|
cp %1010 << 4
|
|
jr nz, .NotShiny
|
|
|
|
; Special
|
|
ld a, [hl]
|
|
and %1111
|
|
cp %1010
|
|
jr nz, .NotShiny
|
|
|
|
.Shiny
|
|
scf
|
|
ret
|
|
|
|
.NotShiny
|
|
and a
|
|
ret
|
|
; 8a88
|
|
|
|
|
|
CheckContestMon: ; 8a88
|
|
; Check a mon's DVs at hl in the bug catching contest.
|
|
; Return carry if its DVs are good enough to place in the contest.
|
|
|
|
; Attack
|
|
ld a, [hl]
|
|
cp 10 << 4
|
|
jr c, .Bad
|
|
|
|
; Defense
|
|
ld a, [hli]
|
|
and $f
|
|
cp 10
|
|
jr c, .Bad
|
|
|
|
; Speed
|
|
ld a, [hl]
|
|
cp 10 << 4
|
|
jr c, .Bad
|
|
|
|
; Special
|
|
ld a, [hl]
|
|
and $f
|
|
cp 10
|
|
jr c, .Bad
|
|
|
|
.Good
|
|
scf
|
|
ret
|
|
|
|
.Bad
|
|
and a
|
|
ret
|
|
; 8aa4
|
|
|
|
|
|
Function8aa4: ; 8aa4
|
|
push de
|
|
push bc
|
|
ld hl, $5ce6
|
|
ld de, $cda9
|
|
ld bc, $0010
|
|
call CopyBytes
|
|
pop bc
|
|
pop de
|
|
ld a, c
|
|
ld [$cdac], a
|
|
ld a, b
|
|
ld [$cdad], a
|
|
ld a, e
|
|
ld [$cdae], a
|
|
ld a, d
|
|
ld [$cdaf], a
|
|
ld hl, $cda9
|
|
call Function9809
|
|
ld hl, $5a86
|
|
call Function9809
|
|
ret
|
|
; 8ad1
|
|
|
|
|
|
Function8ad1: ; 8ad1
|
|
ld hl, $5c57
|
|
call Function9610
|
|
call Function971a
|
|
call Function9699
|
|
ret
|
|
; 8ade
|
|
|
|
Function8ade: ; 8ade
|
|
ld hl, $cd9b
|
|
ld a, [$cda9]
|
|
ld e, a
|
|
ld d, $0
|
|
add hl, de
|
|
ld e, l
|
|
ld d, h
|
|
ld a, [de]
|
|
and a
|
|
ld e, $5
|
|
jr z, .asm_8af7
|
|
dec a
|
|
ld e, $a
|
|
jr z, .asm_8af7
|
|
ld e, $f
|
|
|
|
.asm_8af7
|
|
push de
|
|
ld hl, $cdb3
|
|
ld bc, $0006
|
|
ld a, [$cda9]
|
|
call AddNTimes
|
|
pop de
|
|
ld [hl], e
|
|
ret
|
|
; 8b07
|
|
|
|
Function8b07: ; 8b07
|
|
call CheckCGB
|
|
ret z
|
|
ld hl, Palette8b2f
|
|
ld de, $d000
|
|
ld bc, $0008
|
|
ld a, $5
|
|
call FarCopyWRAM
|
|
|
|
ld hl, Palette8b37
|
|
ld de, MartPointer
|
|
ld bc, $0008
|
|
ld a, $5
|
|
call FarCopyWRAM
|
|
|
|
call Function96a4
|
|
ld a, $1
|
|
ld [hCGBPalUpdate], a
|
|
ret
|
|
; 8b2f
|
|
|
|
Palette8b2f: ; 8b2f
|
|
RGB 31, 31, 31
|
|
RGB 18, 23, 31
|
|
RGB 15, 20, 31
|
|
RGB 00, 00, 00
|
|
; 8b37
|
|
|
|
Palette8b37: ; 8b37
|
|
RGB 31, 31, 31
|
|
RGB 31, 31, 12
|
|
RGB 08, 16, 28
|
|
RGB 00, 00, 00
|
|
; 8b3f
|
|
|
|
Function8b3f: ; 8b3f
|
|
call CheckCGB
|
|
ret nz
|
|
ld a, [hSGB]
|
|
and a
|
|
ret z
|
|
ld hl, $5a86
|
|
jp Function9809
|
|
; 8b4d
|
|
|
|
Function8b4d: ; 8b4d
|
|
call CheckCGB
|
|
jr nz, .asm_8b5c
|
|
ld a, [hSGB]
|
|
and a
|
|
ret z
|
|
ld hl, $5c26
|
|
jp Function9809
|
|
|
|
.asm_8b5c
|
|
ld de, Unkn2Pals
|
|
ld a, $3b
|
|
call Function9625
|
|
jp Function9630
|
|
; 8b67
|
|
|
|
Function8b67: ; 8b67
|
|
call CheckCGB
|
|
jr nz, .asm_8b76
|
|
ld a, [hSGB]
|
|
and a
|
|
ret z
|
|
ld hl, $5c36
|
|
jp Function9809
|
|
|
|
.asm_8b76
|
|
ld de, Unkn2Pals
|
|
ld a, $3c
|
|
call Function9625
|
|
jp Function9630
|
|
; 8b81
|
|
|
|
Function8b81: ; 8b81
|
|
call CheckCGB
|
|
jr nz, .asm_8bb2
|
|
ld a, [hSGB]
|
|
and a
|
|
ret z
|
|
ld a, c
|
|
push af
|
|
ld hl, $5ce6
|
|
ld de, $cda9
|
|
ld bc, $0010
|
|
call CopyBytes
|
|
pop af
|
|
call Function9775
|
|
ld a, [hli]
|
|
ld [$cdac], a
|
|
ld a, [hli]
|
|
ld [$cdad], a
|
|
ld a, [hli]
|
|
ld [$cdae], a
|
|
ld a, [hl]
|
|
ld [$cdaf], a
|
|
ld hl, $cda9
|
|
jp Function9809
|
|
|
|
.asm_8bb2
|
|
ld de, Unkn2Pals
|
|
ld a, c
|
|
call Function9775
|
|
call Function9643
|
|
ret
|
|
; 8bbd
|
|
|
|
Function8bbd: ; 8bbd
|
|
ld a, [TrainerClass]
|
|
call Function976b
|
|
ld a, e
|
|
jr .asm_8bd7
|
|
|
|
ld a, [CurPartySpecies]
|
|
call Function97ee
|
|
ld a, e
|
|
bit 7, a
|
|
jr z, .asm_8bd7
|
|
and $7f
|
|
inc hl
|
|
inc hl
|
|
inc hl
|
|
inc hl
|
|
|
|
.asm_8bd7
|
|
push hl
|
|
ld hl, Unkn1Pals
|
|
ld de, $0008
|
|
.asm_8bde
|
|
and a
|
|
jr z, .asm_8be5
|
|
add hl, de
|
|
dec a
|
|
jr .asm_8bde
|
|
|
|
.asm_8be5
|
|
ld e, l
|
|
ld d, h
|
|
pop hl
|
|
call Function9643
|
|
ret
|
|
; 8bec
|
|
|
|
Function8bec: ; 8bec
|
|
ld a, [hCGB]
|
|
and a
|
|
jr nz, .asm_8bf7
|
|
ld hl, PlayerLightScreenCount
|
|
jp Function9809
|
|
|
|
.asm_8bf7
|
|
ld a, [EnemyLightScreenCount]
|
|
ld c, a
|
|
ld a, [EnemyReflectCount]
|
|
ld hl, AttrMap
|
|
ld de, $0014
|
|
.asm_8c04
|
|
and a
|
|
jr z, .asm_8c0b
|
|
add hl, de
|
|
dec a
|
|
jr .asm_8c04
|
|
|
|
.asm_8c0b
|
|
ld b, $0
|
|
add hl, bc
|
|
ld bc, $0604
|
|
ld a, [$c705]
|
|
and $3
|
|
call Function9663
|
|
call Function323d
|
|
ret
|
|
; 8c1d
|
|
|
|
Function8c1d: ; 8c1d
|
|
call CheckCGB
|
|
ret z
|
|
ld a, e
|
|
and a
|
|
jr z, .asm_8c2d
|
|
ld a, [CurPartySpecies]
|
|
call Function9775
|
|
jr .asm_8c33
|
|
|
|
.asm_8c2d
|
|
ld a, [TrainerClass]
|
|
call Function976b
|
|
|
|
.asm_8c33
|
|
ld de, Unkn1Pals
|
|
call Function9643
|
|
call Function9699
|
|
call Function96b3
|
|
call Function96a4
|
|
ret
|
|
; 8c43
|
|
|
|
Function8c43: ; 8c43
|
|
ld a, [$d10a]
|
|
and a
|
|
jr z, .asm_8c52
|
|
cp $1
|
|
jr z, .asm_8c57
|
|
cp $2
|
|
jr z, .asm_8c70
|
|
ret
|
|
|
|
.asm_8c52
|
|
ld de, $d092
|
|
jr .asm_8c5a
|
|
|
|
.asm_8c57
|
|
ld de, $d09a
|
|
|
|
.asm_8c5a
|
|
ld l, c
|
|
ld h, $0
|
|
add hl, hl
|
|
add hl, hl
|
|
ld bc, $68be
|
|
add hl, bc
|
|
ld bc, $0004
|
|
ld a, $5
|
|
call FarCopyWRAM
|
|
ld a, $1
|
|
ld [hCGBPalUpdate], a
|
|
ret
|
|
|
|
.asm_8c70
|
|
ld e, c
|
|
inc e
|
|
ld hl, $cdf8
|
|
ld bc, $0028
|
|
ld a, [CurPartyMon]
|
|
.asm_8c7b
|
|
and a
|
|
jr z, .asm_8c82
|
|
add hl, bc
|
|
dec a
|
|
jr .asm_8c7b
|
|
|
|
.asm_8c82
|
|
ld bc, $0208
|
|
ld a, e
|
|
call Function9663
|
|
ret
|
|
; 8c8a
|
|
|
|
Function8c8a: ; 8c8a
|
|
call CheckCGB
|
|
ret z
|
|
ld hl, $4f6a
|
|
ld b, $0
|
|
dec c
|
|
add hl, bc
|
|
add hl, bc
|
|
ld a, [rSVBK]
|
|
push af
|
|
ld a, $5
|
|
ld [rSVBK], a
|
|
ld a, [hli]
|
|
ld [Unkn1Pals], a
|
|
ld [$d010], a
|
|
ld a, [hl]
|
|
ld [$d001], a
|
|
ld [$d011], a
|
|
pop af
|
|
ld [rSVBK], a
|
|
call Function96a4
|
|
ld a, $1
|
|
ret
|
|
; 8cb4
|
|
|
|
Function8cb4: ; 8cb4
|
|
ld l, e
|
|
ld h, $0
|
|
add hl, hl
|
|
add hl, hl
|
|
add hl, hl
|
|
ld de, Data8d05
|
|
add hl, de
|
|
call CheckCGB
|
|
jr nz, .asm_8cf0
|
|
push hl
|
|
ld hl, $5ce6
|
|
ld de, $cda9
|
|
ld bc, $0010
|
|
call CopyBytes
|
|
pop hl
|
|
inc hl
|
|
inc hl
|
|
ld a, [hli]
|
|
ld [$cdac], a
|
|
ld a, [hli]
|
|
ld [$cdad], a
|
|
ld a, [hli]
|
|
ld [$cdae], a
|
|
ld a, [hli]
|
|
ld [$cdaf], a
|
|
ld hl, $cda9
|
|
call Function9809
|
|
ld hl, $5a86
|
|
call Function9809
|
|
ret
|
|
|
|
.asm_8cf0
|
|
ld de, $d000
|
|
ld bc, $0008
|
|
ld a, $5
|
|
call FarCopyWRAM
|
|
call Function96a4
|
|
call Function9699
|
|
call Function96b3
|
|
ret
|
|
; 8d05
|
|
|
|
Data8d05: ; 8d05
|
|
INCBIN "baserom.gbc", $8d05, $8d55 - $8d05
|
|
; 8d55
|
|
|
|
INCLUDE "predef/cgb.asm"
|
|
|
|
|
|
INCBIN "baserom.gbc", $95f0, $9610 - $95f0
|
|
|
|
|
|
Function9610: ; 9610
|
|
ld de, $d000
|
|
ld c, $4
|
|
|
|
Function9615: ; 9615
|
|
push bc
|
|
ld a, [hli]
|
|
push hl
|
|
call Function9625
|
|
call Function9630
|
|
pop hl
|
|
inc hl
|
|
pop bc
|
|
dec c
|
|
jr nz, Function9615
|
|
ret
|
|
; 9625
|
|
|
|
Function9625: ; 9625
|
|
ld l, a
|
|
ld h, $0
|
|
add hl, hl
|
|
add hl, hl
|
|
add hl, hl
|
|
ld bc, $5df6
|
|
add hl, bc
|
|
ret
|
|
; 9630
|
|
|
|
Function9630: ; 9630
|
|
ld a, [rSVBK]
|
|
push af
|
|
ld a, $5
|
|
ld [rSVBK], a
|
|
ld c, $8
|
|
.asm_9639
|
|
ld a, [hli]
|
|
ld [de], a
|
|
inc de
|
|
dec c
|
|
jr nz, .asm_9639
|
|
pop af
|
|
ld [rSVBK], a
|
|
ret
|
|
; 9643
|
|
|
|
Function9643: ; 9643
|
|
ld a, [rSVBK]
|
|
push af
|
|
ld a, $5
|
|
ld [rSVBK], a
|
|
ld a, $ff
|
|
ld [de], a
|
|
inc de
|
|
ld a, $7f
|
|
ld [de], a
|
|
inc de
|
|
ld c, $4
|
|
.asm_9654
|
|
ld a, [hli]
|
|
ld [de], a
|
|
inc de
|
|
dec c
|
|
jr nz, .asm_9654
|
|
xor a
|
|
ld [de], a
|
|
inc de
|
|
ld [de], a
|
|
inc de
|
|
pop af
|
|
ld [rSVBK], a
|
|
ret
|
|
; 9663
|
|
|
|
Function9663: ; 9663
|
|
.asm_9663
|
|
push bc
|
|
push hl
|
|
.asm_9665
|
|
ld [hli], a
|
|
dec c
|
|
jr nz, .asm_9665
|
|
pop hl
|
|
ld bc, $0014
|
|
add hl, bc
|
|
pop bc
|
|
dec b
|
|
jr nz, .asm_9663
|
|
ret
|
|
; 9673
|
|
|
|
Function9673: ; 9673
|
|
push af
|
|
push bc
|
|
push de
|
|
push hl
|
|
ld a, [rSVBK]
|
|
push af
|
|
ld a, $5
|
|
ld [rSVBK], a
|
|
ld hl, $d000
|
|
ld c, $8
|
|
.asm_9683
|
|
ld a, $ff
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
xor a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
ld [hli], a
|
|
dec c
|
|
jr nz, .asm_9683
|
|
pop af
|
|
ld [rSVBK], a
|
|
pop hl
|
|
pop de
|
|
pop bc
|
|
pop af
|
|
ret
|
|
; 9699
|
|
|
|
|
|
Function9699: ; 9699
|
|
ld hl, AttrMap
|
|
ld bc, $0168
|
|
xor a
|
|
call ByteFill
|
|
ret
|
|
; 96a4
|
|
|
|
Function96a4: ; 96a4
|
|
ld hl, $d000
|
|
ld de, $d080
|
|
ld bc, $0080
|
|
ld a, $5
|
|
call FarCopyWRAM
|
|
ret
|
|
; 96b3
|
|
|
|
Function96b3: ; 96b3
|
|
ld a, [rLCDC]
|
|
bit 7, a
|
|
jr z, .asm_96d0
|
|
ld a, [hBGMapMode]
|
|
push af
|
|
ld a, $2
|
|
ld [hBGMapMode], a
|
|
call DelayFrame
|
|
call DelayFrame
|
|
call DelayFrame
|
|
call DelayFrame
|
|
pop af
|
|
ld [hBGMapMode], a
|
|
ret
|
|
|
|
.asm_96d0
|
|
ld hl, AttrMap
|
|
ld de, VBGMap0
|
|
ld b, $12
|
|
ld a, $1
|
|
ld [rVBK], a
|
|
.asm_96dc
|
|
ld c, $14
|
|
.asm_96de
|
|
ld a, [hli]
|
|
ld [de], a
|
|
inc de
|
|
dec c
|
|
jr nz, .asm_96de
|
|
ld a, $c
|
|
add e
|
|
jr nc, .asm_96ea
|
|
inc d
|
|
|
|
.asm_96ea
|
|
ld e, a
|
|
dec b
|
|
jr nz, .asm_96dc
|
|
ld a, $0
|
|
ld [rVBK], a
|
|
ret
|
|
; 96f3
|
|
|
|
Function96f3: ; 96f3
|
|
ld hl, $cd9b
|
|
ld a, [$cda9]
|
|
ld e, a
|
|
ld d, $0
|
|
add hl, de
|
|
ld e, l
|
|
ld d, h
|
|
ld a, [de]
|
|
inc a
|
|
ld e, a
|
|
ld hl, $ce0c
|
|
ld bc, $0028
|
|
ld a, [$cda9]
|
|
.asm_970b
|
|
and a
|
|
jr z, .asm_9712
|
|
add hl, bc
|
|
dec a
|
|
jr .asm_970b
|
|
|
|
.asm_9712
|
|
ld bc, $0208
|
|
ld a, e
|
|
call Function9663
|
|
ret
|
|
; 971a
|
|
|
|
|
|
Function971a: ; 971a
|
|
ld hl, $7681
|
|
ld de, MartPointer
|
|
ld bc, $0010
|
|
ld a, $5
|
|
call FarCopyWRAM
|
|
ret
|
|
; 9729
|
|
|
|
Function9729: ; 9729
|
|
push de
|
|
callba Function3da85
|
|
ld c, l
|
|
ld b, h
|
|
ld a, [TempBattleMonSpecies]
|
|
call Function974b
|
|
pop de
|
|
ret
|
|
; 973a
|
|
|
|
Function973a: ; 973a
|
|
push de
|
|
callba Function3da97
|
|
ld c, l
|
|
ld b, h
|
|
ld a, [TempEnemyMonSpecies]
|
|
call Function9764
|
|
pop de
|
|
ret
|
|
; 974b
|
|
|
|
Function974b: ; 974b
|
|
and a
|
|
jp nz, Function97f9
|
|
ld a, [$d45b]
|
|
bit 2, a
|
|
jr nz, .asm_9760
|
|
ld a, [PlayerGender]
|
|
and a
|
|
jr z, .asm_9760
|
|
ld hl, FalknerPalette
|
|
ret
|
|
|
|
.asm_9760
|
|
ld hl, $70ce
|
|
ret
|
|
; 9764
|
|
|
|
Function9764: ; 9764
|
|
and a
|
|
jp nz, Function97f9
|
|
ld a, [TrainerClass]
|
|
|
|
Function976b: ; 976b
|
|
ld l, a
|
|
ld h, $0
|
|
add hl, hl
|
|
add hl, hl
|
|
ld bc, $70ce
|
|
add hl, bc
|
|
ret
|
|
; 9775
|
|
|
|
Function9775: ; 9775
|
|
call Function97ee
|
|
ret
|
|
; 9779
|
|
|
|
INCBIN "baserom.gbc", $9779, $97ee - $9779
|
|
|
|
Function97ee: ; 97ee
|
|
ld l, a
|
|
ld h, $0
|
|
add hl, hl
|
|
add hl, hl
|
|
add hl, hl
|
|
ld bc, $68ce
|
|
add hl, bc
|
|
ret
|
|
; 97f9
|
|
|
|
Function97f9: ; 97f9
|
|
push bc
|
|
call Function97ee
|
|
pop bc
|
|
push hl
|
|
call CheckShininess
|
|
pop hl
|
|
ret nc
|
|
inc hl
|
|
inc hl
|
|
inc hl
|
|
inc hl
|
|
ret
|
|
; 9809
|
|
|
|
Function9809: ; 9809
|
|
ld a, [$cfbe]
|
|
push af
|
|
set 7, a
|
|
ld [$cfbe], a
|
|
call Function981a
|
|
pop af
|
|
ld [$cfbe], a
|
|
ret
|
|
; 981a
|
|
|
|
Function981a: ; 981a
|
|
ld a, [hl]
|
|
and $7
|
|
ret z
|
|
ld b, a
|
|
.asm_981f
|
|
push bc
|
|
xor a
|
|
ld [rJOYP], a
|
|
ld a, $30
|
|
ld [rJOYP], a
|
|
ld b, $10
|
|
.asm_9829
|
|
ld e, $8
|
|
ld a, [hli]
|
|
ld d, a
|
|
.asm_982d
|
|
bit 0, d
|
|
ld a, $10
|
|
jr nz, .asm_9835
|
|
ld a, $20
|
|
|
|
.asm_9835
|
|
ld [rJOYP], a
|
|
ld a, $30
|
|
ld [rJOYP], a
|
|
rr d
|
|
dec e
|
|
jr nz, .asm_982d
|
|
dec b
|
|
jr nz, .asm_9829
|
|
ld a, $20
|
|
ld [rJOYP], a
|
|
ld a, $30
|
|
ld [rJOYP], a
|
|
call Function9a7a
|
|
pop bc
|
|
dec b
|
|
jr nz, .asm_981f
|
|
ret
|
|
; 9853
|
|
|
|
Function9853: ; 9853
|
|
call CheckCGB
|
|
ret nz
|
|
di
|
|
ld a, [$cfbe]
|
|
push af
|
|
set 7, a
|
|
ld [$cfbe], a
|
|
xor a
|
|
ld [rJOYP], a
|
|
ld [hSGB], a
|
|
call Function994a
|
|
jr nc, .asm_988a
|
|
ld a, $1
|
|
ld [hSGB], a
|
|
call Function98eb
|
|
call Function99b4
|
|
call Function9a7a
|
|
call Function993f
|
|
call Function992c
|
|
call Function9a7a
|
|
call Function993f
|
|
ld hl, $5d66
|
|
call Function981a
|
|
|
|
.asm_988a
|
|
pop af
|
|
ld [$cfbe], a
|
|
ei
|
|
ret
|
|
; 9890
|
|
|
|
|
|
Function9890:: ; 9890
|
|
call CheckCGB
|
|
ret z
|
|
ld a, $1
|
|
ld [rVBK], a
|
|
ld hl, VTiles0
|
|
ld bc, $2000
|
|
xor a
|
|
call ByteFill
|
|
ld a, $0
|
|
ld [rVBK], a
|
|
ld a, $80
|
|
ld [rBGPI], a
|
|
ld c, $20
|
|
.asm_98ac
|
|
ld a, $ff
|
|
ld [rBGPD], a
|
|
ld a, $7f
|
|
ld [rBGPD], a
|
|
dec c
|
|
jr nz, .asm_98ac
|
|
ld a, $80
|
|
ld [rOBPI], a
|
|
ld c, $20
|
|
.asm_98bd
|
|
ld a, $ff
|
|
ld [rOBPD], a
|
|
ld a, $7f
|
|
ld [rOBPD], a
|
|
dec c
|
|
jr nz, .asm_98bd
|
|
ld a, [rSVBK]
|
|
push af
|
|
ld a, $5
|
|
ld [rSVBK], a
|
|
ld hl, $d000
|
|
call Function98df
|
|
ld hl, $d080
|
|
call Function98df
|
|
pop af
|
|
ld [rSVBK], a
|
|
ret
|
|
; 98df
|
|
|
|
Function98df: ; 98df
|
|
ld c, $40
|
|
.asm_98e1
|
|
ld a, $ff
|
|
ld [hli], a
|
|
ld a, $7f
|
|
ld [hli], a
|
|
dec c
|
|
jr nz, .asm_98e1
|
|
ret
|
|
; 98eb
|
|
|
|
Function98eb: ; 98eb
|
|
ld hl, $58ff
|
|
ld c, $9
|
|
.asm_98f0
|
|
push bc
|
|
ld a, [hli]
|
|
push hl
|
|
ld h, [hl]
|
|
ld l, a
|
|
call Function981a
|
|
pop hl
|
|
inc hl
|
|
pop bc
|
|
dec c
|
|
jr nz, .asm_98f0
|
|
ret
|
|
; 98ff
|
|
|
|
INCBIN "baserom.gbc", $98ff, $992c - $98ff
|
|
|
|
Function992c: ; 992c
|
|
call Function9938
|
|
push de
|
|
call Function9a24
|
|
pop hl
|
|
call Function99d8
|
|
ret
|
|
; 9938
|
|
|
|
Function9938: ; 9938
|
|
ld hl, SGBBorder
|
|
ld de, $606e
|
|
ret
|
|
; 993f
|
|
|
|
Function993f: ; 993f
|
|
ld hl, VTiles0
|
|
ld bc, $2000
|
|
xor a
|
|
call ByteFill
|
|
ret
|
|
; 994a
|
|
|
|
Function994a: ; 994a
|
|
ld hl, $5d26
|
|
call Function981a
|
|
call Function9a7a
|
|
ld a, [rJOYP]
|
|
and $3
|
|
cp $3
|
|
jr nz, .asm_99a6
|
|
ld a, $20
|
|
ld [rJOYP], a
|
|
ld a, [rJOYP]
|
|
ld a, [rJOYP]
|
|
call Function9a7a
|
|
call Function9a7a
|
|
ld a, $30
|
|
ld [rJOYP], a
|
|
call Function9a7a
|
|
call Function9a7a
|
|
ld a, $10
|
|
ld [rJOYP], a
|
|
ld a, [rJOYP]
|
|
ld a, [rJOYP]
|
|
ld a, [rJOYP]
|
|
ld a, [rJOYP]
|
|
ld a, [rJOYP]
|
|
ld a, [rJOYP]
|
|
call Function9a7a
|
|
call Function9a7a
|
|
ld a, $30
|
|
ld [rJOYP], a
|
|
ld a, [rJOYP]
|
|
ld a, [rJOYP]
|
|
ld a, [rJOYP]
|
|
call Function9a7a
|
|
call Function9a7a
|
|
ld a, [rJOYP]
|
|
and $3
|
|
cp $3
|
|
jr nz, .asm_99a6
|
|
call Function99ab
|
|
and a
|
|
ret
|
|
|
|
.asm_99a6
|
|
call Function99ab
|
|
scf
|
|
ret
|
|
; 99ab
|
|
|
|
Function99ab: ; 99ab
|
|
ld hl, $5d16
|
|
call Function981a
|
|
jp Function9a7a
|
|
; 99b4
|
|
|
|
Function99b4: ; 99b4
|
|
call DisableLCD
|
|
ld a, $e4
|
|
ld [rBGP], a
|
|
ld hl, $5df6
|
|
ld de, VTiles1
|
|
ld bc, $1000
|
|
call CopyData
|
|
call DrawDefaultTiles
|
|
ld a, $e3
|
|
ld [rLCDC], a
|
|
ld hl, $5d06
|
|
call Function981a
|
|
xor a
|
|
ld [rBGP], a
|
|
ret
|
|
; 99d8
|
|
|
|
Function99d8: ; 99d8
|
|
call DisableLCD
|
|
ld a, $e4
|
|
ld [rBGP], a
|
|
ld de, VTiles1
|
|
ld bc, $0140
|
|
call CopyData
|
|
ld b, $12
|
|
.asm_99ea
|
|
push bc
|
|
ld bc, $000c
|
|
call CopyData
|
|
ld bc, $0028
|
|
call ClearBytes
|
|
ld bc, $000c
|
|
call CopyData
|
|
pop bc
|
|
dec b
|
|
jr nz, .asm_99ea
|
|
ld bc, $0140
|
|
call CopyData
|
|
ld bc, Start
|
|
call ClearBytes
|
|
ld bc, $0080
|
|
call CopyData
|
|
call DrawDefaultTiles
|
|
ld a, $e3
|
|
ld [rLCDC], a
|
|
ld hl, $5d46
|
|
call Function981a
|
|
xor a
|
|
ld [rBGP], a
|
|
ret
|
|
; 9a24
|
|
|
|
Function9a24: ; 9a24
|
|
call DisableLCD
|
|
ld a, $e4
|
|
ld [rBGP], a
|
|
ld de, VTiles1
|
|
ld b, $80
|
|
.asm_9a30
|
|
push bc
|
|
ld bc, $0010
|
|
call CopyData
|
|
ld bc, $0010
|
|
call ClearBytes
|
|
pop bc
|
|
dec b
|
|
jr nz, .asm_9a30
|
|
call DrawDefaultTiles
|
|
ld a, $e3
|
|
ld [rLCDC], a
|
|
ld hl, $5d36
|
|
call Function981a
|
|
xor a
|
|
ld [rBGP], a
|
|
ret
|
|
; 9a52
|
|
|
|
CopyData: ; 0x9a52
|
|
; copy bc bytes of data from hl to de
|
|
ld a, [hli]
|
|
ld [de], a
|
|
inc de
|
|
dec bc
|
|
ld a, c
|
|
or b
|
|
jr nz, CopyData
|
|
ret
|
|
; 0x9a5b
|
|
|
|
ClearBytes: ; 0x9a5b
|
|
; clear bc bytes of data starting from de
|
|
xor a
|
|
ld [de], a
|
|
inc de
|
|
dec bc
|
|
ld a, c
|
|
or b
|
|
jr nz, ClearBytes
|
|
ret
|
|
; 0x9a64
|
|
|
|
DrawDefaultTiles: ; 0x9a64
|
|
; Draw 240 tiles (2/3 of the screen) from tiles in VRAM
|
|
ld hl, VBGMap0 ; BG Map 0
|
|
ld de, 32 - 20
|
|
ld a, $80 ; starting tile
|
|
ld c, 12 + 1
|
|
.line
|
|
ld b, 20
|
|
.tile
|
|
ld [hli], a
|
|
inc a
|
|
dec b
|
|
jr nz, .tile
|
|
; next line
|
|
add hl, de
|
|
dec c
|
|
jr nz, .line
|
|
ret
|
|
; 0x9a7a
|
|
|
|
Function9a7a: ; 9a7a
|
|
ld de, $1b58
|
|
.asm_9a7d
|
|
nop
|
|
nop
|
|
nop
|
|
dec de
|
|
ld a, d
|
|
or e
|
|
jr nz, .asm_9a7d
|
|
ret
|
|
; 9a86
|
|
|
|
INCBIN "baserom.gbc", $9a86, $a51e - $9a86
|
|
|
|
SGBBorder:
|
|
INCBIN "gfx/misc/sgb_border.2bpp"
|
|
|
|
INCBIN "baserom.gbc", $a8be, $a8d6 - $a8be
|
|
|
|
PokemonPalettes:
|
|
INCLUDE "gfx/pics/palette_pointers.asm"
|
|
|
|
INCBIN "baserom.gbc", $b0ae, $b0d2 - $b0ae
|
|
|
|
TrainerPalettes:
|
|
INCLUDE "gfx/trainers/palette_pointers.asm"
|
|
|
|
Functionb1de: ; b1de
|
|
callba Function494ac
|
|
jr c, .asm_b230
|
|
ld a, [$d19a]
|
|
and $7
|
|
ld e, a
|
|
ld d, $0
|
|
ld hl, $7279
|
|
add hl, de
|
|
add hl, de
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
ld a, [TimeOfDayPal]
|
|
and $3
|
|
add a
|
|
add a
|
|
add a
|
|
ld e, a
|
|
ld d, $0
|
|
add hl, de
|
|
ld e, l
|
|
ld d, h
|
|
ld a, [rSVBK]
|
|
push af
|
|
ld a, $5
|
|
ld [rSVBK], a
|
|
ld hl, Unkn1Pals
|
|
ld b, $8
|
|
.asm_b210
|
|
ld a, [de]
|
|
push de
|
|
push hl
|
|
ld l, a
|
|
ld h, $0
|
|
add hl, hl
|
|
add hl, hl
|
|
add hl, hl
|
|
ld de, MornPal
|
|
add hl, de
|
|
ld e, l
|
|
ld d, h
|
|
pop hl
|
|
ld c, $8
|
|
.asm_b222
|
|
ld a, [de]
|
|
inc de
|
|
ld [hli], a
|
|
dec c
|
|
jr nz, .asm_b222
|
|
pop de
|
|
inc de
|
|
dec b
|
|
jr nz, .asm_b210
|
|
pop af
|
|
ld [rSVBK], a
|
|
|
|
.asm_b230
|
|
ld a, [TimeOfDayPal]
|
|
and $3
|
|
ld bc, $0040
|
|
ld hl, $7469
|
|
call AddNTimes
|
|
ld de, Unkn2Pals
|
|
ld bc, $0040
|
|
ld a, $5
|
|
call FarCopyWRAM
|
|
ld a, [$d19a]
|
|
cp $1
|
|
jr z, .asm_b253
|
|
cp $2
|
|
ret nz
|
|
|
|
.asm_b253
|
|
ld a, [MapGroup]
|
|
ld l, a
|
|
ld h, $0
|
|
add hl, hl
|
|
add hl, hl
|
|
add hl, hl
|
|
ld de, $7569
|
|
add hl, de
|
|
ld a, [TimeOfDayPal]
|
|
and $3
|
|
cp $2
|
|
jr c, .asm_b26d
|
|
inc hl
|
|
inc hl
|
|
inc hl
|
|
inc hl
|
|
|
|
.asm_b26d
|
|
ld de, $d032
|
|
ld bc, $0004
|
|
ld a, $5
|
|
call FarCopyWRAM
|
|
ret
|
|
; b279
|
|
|
|
INCBIN "baserom.gbc", $b279, $b319 - $b279
|
|
|
|
MornPal: ; 0xb319
|
|
INCLUDE "tilesets/morn.pal"
|
|
; 0xb359
|
|
|
|
DayPal: ; 0xb359
|
|
INCLUDE "tilesets/day.pal"
|
|
; 0xb399
|
|
|
|
NitePal: ; 0xb399
|
|
INCLUDE "tilesets/nite.pal"
|
|
; 0xb3d9
|
|
|
|
DarkPal: ; 0xb3d9
|
|
INCLUDE "tilesets/dark.pal"
|
|
; 0xb419
|
|
|
|
INCBIN "baserom.gbc", $b419, $b7a9 - $b419
|
|
|
|
Paletteb7a9: ; b7a9
|
|
RGB 31, 31, 31
|
|
RGB 24, 25, 28
|
|
RGB 24, 24, 09
|
|
RGB 00, 00, 00
|
|
|
|
RGB 31, 31, 31
|
|
RGB 30, 10, 06
|
|
RGB 24, 24, 09
|
|
RGB 00, 00, 00
|
|
|
|
RGB 31, 31, 31
|
|
RGB 15, 31, 00
|
|
RGB 24, 24, 09
|
|
RGB 00, 00, 00
|
|
|
|
RGB 31, 31, 31
|
|
RGB 31, 15, 31
|
|
RGB 24, 24, 09
|
|
RGB 00, 00, 00
|
|
|
|
RGB 31, 31, 31
|
|
RGB 15, 21, 31
|
|
RGB 24, 24, 09
|
|
RGB 00, 00, 00
|
|
|
|
RGB 31, 31, 11
|
|
RGB 31, 31, 06
|
|
RGB 24, 24, 09
|
|
RGB 00, 00, 00
|
|
|
|
RGB 31, 31, 31
|
|
RGB 16, 19, 29
|
|
RGB 25, 22, 00
|
|
RGB 00, 00, 00
|
|
|
|
RGB 31, 31, 31
|
|
RGB 21, 21, 21
|
|
RGB 13, 13, 13
|
|
RGB 00, 00, 00
|
|
|
|
RGB 31, 31, 31
|
|
RGB 30, 10, 06
|
|
RGB 31, 00, 00
|
|
RGB 00, 00, 00
|
|
|
|
RGB 31, 31, 31
|
|
RGB 12, 25, 01
|
|
RGB 05, 14, 00
|
|
RGB 00, 00, 00
|
|
|
|
RGB 31, 31, 31
|
|
RGB 12, 25, 01
|
|
RGB 30, 10, 06
|
|
RGB 00, 00, 00
|
|
|
|
RGB 31, 31, 31
|
|
RGB 31, 31, 06
|
|
RGB 20, 15, 03
|
|
RGB 00, 00, 00
|
|
|
|
RGB 31, 31, 31
|
|
RGB 31, 31, 06
|
|
RGB 15, 21, 31
|
|
RGB 00, 00, 00
|
|
|
|
RGB 31, 31, 31
|
|
RGB 31, 31, 06
|
|
RGB 20, 15, 03
|
|
RGB 00, 00, 00
|
|
|
|
RGB 31, 31, 31
|
|
RGB 31, 24, 21
|
|
RGB 31, 13, 31
|
|
RGB 00, 00, 00
|
|
|
|
RGB 31, 31, 31
|
|
RGB 31, 31, 31
|
|
RGB 00, 00, 00
|
|
RGB 00, 00, 00
|
|
; b829
|
|
|