mirror of
https://github.com/pret/pokepinball.git
synced 2026-10-01 22:34:09 -04:00
fb7aa4b2e0
* First test commit * XIL: All changes for pokepinball to work with rgbds v0.8.0
815 lines
9.4 KiB
NASM
815 lines
9.4 KiB
NASM
Func_14c4: ; 14c4 (0:14c4)
|
|
ld a, [wd8dc]
|
|
and a
|
|
jp nz, Func_165f
|
|
ld a, [wd8ad]
|
|
cp $7
|
|
jp z, Func_1612
|
|
ld a, [wd8af]
|
|
and a
|
|
jr nz, .asm_14df
|
|
call Func_1502
|
|
jp Func_1663
|
|
|
|
.asm_14df
|
|
ld a, [wd8b0]
|
|
and a
|
|
jr z, .asm_14fc
|
|
ld a, [wd8b1]
|
|
and a
|
|
jr z, .asm_14fc
|
|
ld a, [wd8b2]
|
|
cp $2
|
|
jr z, .asm_14f7
|
|
call Func_15e1
|
|
jr .asm_14ff
|
|
|
|
.asm_14f7
|
|
call Func_15f8
|
|
jr .asm_14ff
|
|
|
|
.asm_14fc
|
|
call Func_1527
|
|
.asm_14ff
|
|
jp Func_1663
|
|
|
|
Func_1502: ; 1502 (0:1502)
|
|
ld hl, wd8b9
|
|
ld c, [hl]
|
|
inc [hl]
|
|
ld b, $0
|
|
ld hl, SerialTranfserData_18ff
|
|
add hl, bc
|
|
ld a, [hl]
|
|
ldh [rSB], a
|
|
ld a, $1
|
|
ldh [rSC], a
|
|
ld a, $81
|
|
ldh [rSC], a
|
|
ld a, [wd8b9]
|
|
cp $2
|
|
ret nz
|
|
xor a
|
|
ld [wd8b9], a
|
|
inc a
|
|
ld [wd8af], a
|
|
ret
|
|
|
|
Func_1527: ; 1527 (0:1527)
|
|
ld a, [wd8b9]
|
|
ld c, a
|
|
ld a, [wd8ba]
|
|
ld b, a
|
|
ld a, [wd8bb]
|
|
ld l, a
|
|
ld a, [wd8bc]
|
|
ld h, a
|
|
add hl, bc
|
|
ldh a, [rSB]
|
|
ld [wd8c8 + 1], a
|
|
ld a, [hl]
|
|
ldh [rSB], a
|
|
ld l, a
|
|
ld a, [wd8c3]
|
|
add l
|
|
ld [wd8c3], a
|
|
ld a, [wd8c4]
|
|
adc $0
|
|
ld [wd8c4], a
|
|
ld a, $1
|
|
ldh [rSC], a
|
|
ld a, $81
|
|
ldh [rSC], a
|
|
ld hl, wd8b9
|
|
inc [hl]
|
|
jr nz, .asm_1560
|
|
inc hl
|
|
inc [hl]
|
|
.asm_1560
|
|
ld hl, wd8b9
|
|
ld a, [wd8b3]
|
|
cp [hl]
|
|
jr nz, .asm_1570
|
|
inc hl
|
|
ld a, [wd8b4]
|
|
cp [hl]
|
|
jr z, .asm_1572
|
|
.asm_1570
|
|
jr .asm_15b0
|
|
|
|
.asm_1572
|
|
ld hl, wd8b0
|
|
ld a, [hl]
|
|
and a
|
|
jr z, .asm_157c
|
|
ld hl, wd8b1
|
|
.asm_157c
|
|
inc [hl]
|
|
ld a, [wd8cc]
|
|
and a
|
|
jr z, .asm_15b5
|
|
ld a, [wd8ad]
|
|
cp $6
|
|
jr z, .asm_15b5
|
|
ld hl, wd8b1
|
|
ld a, [hl]
|
|
and a
|
|
jr nz, .asm_15b1
|
|
xor a
|
|
ld [wd8b9], a
|
|
ld [wd8ba], a
|
|
ld a, [wd8bf]
|
|
ld [wd8bb], a
|
|
ld a, [wd8c0]
|
|
ld [wd8bc], a
|
|
ld a, [wd8b7]
|
|
ld [wd8b3], a
|
|
ld a, [wd8b8]
|
|
ld [wd8b4], a
|
|
.asm_15b0
|
|
ret
|
|
|
|
.asm_15b1
|
|
call Func_15c8
|
|
ret
|
|
|
|
.asm_15b5
|
|
ld a, [wd8c8 + 1]
|
|
ld [wd8c8], a
|
|
Func_15bb:
|
|
ld a, $7
|
|
ld [wd8ad], a
|
|
ld a, $1
|
|
ld [wd8c5], a
|
|
call Func_16bf
|
|
Func_15c8: ; 15c8 (0:15c8)
|
|
ld a, [wd8b5]
|
|
ld [wd8b3], a
|
|
ld a, [wd8b6]
|
|
ld [wd8b4], a
|
|
ld a, [wd8bd]
|
|
ld [wd8bb], a
|
|
ld a, [wd8be]
|
|
ld [wd8bc], a
|
|
ret
|
|
|
|
Func_15e1: ; 15e1 (0:15e1)
|
|
ld c, a
|
|
ld b, $0
|
|
ld hl, wd8c3
|
|
add hl, bc
|
|
ld a, [hl]
|
|
ldh [rSB], a
|
|
ld a, $1
|
|
ldh [rSC], a
|
|
ld a, $81
|
|
ldh [rSC], a
|
|
ld hl, wd8b2
|
|
inc [hl]
|
|
ret
|
|
|
|
Func_15f8: ; 15f8 (0:15f8)
|
|
ldh a, [rSB]
|
|
ld [wd8c8], a
|
|
xor a
|
|
ldh [rSB], a
|
|
ld a, $1
|
|
ldh [rSC], a
|
|
ld a, $81
|
|
ldh [rSC], a
|
|
ld hl, wd8c6
|
|
inc [hl]
|
|
ld a, [hl]
|
|
cp $2
|
|
jr z, Func_15bb
|
|
ret
|
|
|
|
Func_1612: ; 1612 (0:1612)
|
|
ld a, [wd8cb]
|
|
ld [wd8ae], a
|
|
ld a, [wd8c7]
|
|
ld [wd86e + 2], a
|
|
cp $ff
|
|
jr z, .asm_1625
|
|
ld [wd86e + 1], a
|
|
.asm_1625
|
|
ldh a, [rSB]
|
|
ld [wd8c7], a
|
|
cp $ff
|
|
jr nz, .asm_163a
|
|
ld a, $0
|
|
ld [wd8db], a
|
|
ld [wd8ad], a
|
|
ld a, $2
|
|
jr .asm_1652
|
|
|
|
.asm_163a
|
|
bit 1, a
|
|
jr z, .asm_1643
|
|
ld a, $1
|
|
ld [wd8e2], a
|
|
.asm_1643
|
|
bit 4, a
|
|
ld a, $0
|
|
ld [wd8ad], a
|
|
ld a, $1
|
|
jr nz, .asm_1651
|
|
ld [wd8ad], a
|
|
.asm_1651
|
|
inc a
|
|
.asm_1652
|
|
ld [wd8c5], a
|
|
ld a, [wd8cc]
|
|
and a
|
|
jr nz, Func_165f
|
|
xor a
|
|
ld [wd8db], a
|
|
Func_165f: ; 165f (0:165f)
|
|
ret
|
|
|
|
Func_1660:
|
|
xor a
|
|
ldh [rSC], a
|
|
Func_1663: ; 1663 (0:1663)
|
|
ret
|
|
|
|
Func_1664:
|
|
push af
|
|
ldh a, [rSC]
|
|
bit 7, a
|
|
jr nz, .asm_1679
|
|
push bc
|
|
push de
|
|
push hl
|
|
ld a, $1
|
|
ld [wd8ca], a
|
|
call Func_14c4
|
|
pop hl
|
|
pop de
|
|
pop bc
|
|
.asm_1679
|
|
pop af
|
|
reti
|
|
Func_167b: ; 0x167b
|
|
ld a, [wd8ad]
|
|
cp $1
|
|
ret nz
|
|
ld a, [wd8c7]
|
|
cp $ff
|
|
ret z
|
|
ld a, [wd8db]
|
|
and a
|
|
ret nz
|
|
ld hl, wd8e0
|
|
inc [hl]
|
|
ld a, [hl]
|
|
cp $6
|
|
ret c
|
|
xor a
|
|
ld [hl], a
|
|
ld [wd8e2], a
|
|
call Func_18ac
|
|
ret
|
|
|
|
Func_169d:
|
|
xor a
|
|
ldh [rSC], a
|
|
ldh [rSB], a
|
|
; fallthrough
|
|
|
|
Func_16a2: ; 0x16a2
|
|
xor a
|
|
ldh [rSB], a
|
|
ldh [rSC], a
|
|
ld [wd8ad], a
|
|
dec a
|
|
ld [wd8c7], a
|
|
ld [wd8c8], a
|
|
call Func_16b5
|
|
ret
|
|
|
|
Func_16b5: ; 0x16b5
|
|
xor a
|
|
ld [wd8c5], a
|
|
ld [wd8ca], a
|
|
ld [wd8db], a
|
|
; fall through
|
|
Func_16bf: ; 0x16bf
|
|
xor a
|
|
ld [wd8af], a
|
|
ld [wd8b0], a
|
|
ld [wd8b1], a
|
|
ld [wd8b2], a
|
|
ld [wd8c6], a
|
|
ld [wd8c3], a
|
|
ld [wd8c4], a
|
|
ld [wd8b9], a
|
|
ld [wd8ba], a
|
|
ld [wd8dc], a
|
|
ld [wd8e2], a
|
|
ret
|
|
|
|
Func_16e2: ; 0x16e2
|
|
ld a, [wd8db]
|
|
and a
|
|
jr z, .asm_16ec
|
|
call Func_16fd
|
|
ret nc
|
|
.asm_16ec
|
|
ld a, [wd8ae]
|
|
cp $1
|
|
jr nz, .asm_16f7
|
|
call Func_16fd
|
|
ret nc
|
|
.asm_16f7
|
|
call Func_1925
|
|
jp Func_19e5
|
|
|
|
Func_16fd: ; 0x16fd
|
|
ld a, [wd8c5]
|
|
cp $2
|
|
jr nz, .asm_173c
|
|
xor a
|
|
ld [wd8e0], a
|
|
ld [wd8ae], a
|
|
inc a
|
|
ld [wd8ad], a
|
|
ld a, [wd8c7]
|
|
cp $ff
|
|
jr z, .asm_1735
|
|
bit 0, a
|
|
jr nz, .asm_172e
|
|
bit 1, a
|
|
jr nz, .asm_172e
|
|
bit 4, a
|
|
jr z, .asm_173a
|
|
xor a
|
|
ld [wd8ad], a
|
|
ld [wd8ae], a
|
|
ld a, [wd8c7]
|
|
jr .asm_173a
|
|
|
|
.asm_172e
|
|
scf
|
|
ret
|
|
|
|
.asm_1730
|
|
xor a
|
|
ld [wd8ae], a
|
|
dec a
|
|
.asm_1735
|
|
inc a
|
|
ld [wd8ad], a
|
|
dec a
|
|
.asm_173a
|
|
and a
|
|
ret
|
|
|
|
.asm_173c
|
|
xor a
|
|
ld a, $f0
|
|
ret
|
|
|
|
Func_1740: ; 0x1740
|
|
ld a, [wd8ad]
|
|
cp $1
|
|
jr z, .asm_1752
|
|
cp $2
|
|
jr z, .asm_1752
|
|
and a
|
|
ld a, $ff
|
|
ret z
|
|
.asm_174f
|
|
ld a, $f0
|
|
ret
|
|
|
|
.asm_1752
|
|
ld a, [wd8e2]
|
|
and a
|
|
jr nz, .asm_174f
|
|
ld a, [wd8db]
|
|
and a
|
|
jr z, .asm_1762
|
|
call Func_16fd
|
|
ret nc
|
|
.asm_1762
|
|
ld a, [wd8ae]
|
|
cp $2
|
|
jr nz, .asm_176d
|
|
call Func_16fd
|
|
ret nc
|
|
.asm_176d
|
|
ld a, [wd8c7]
|
|
cp $ff
|
|
ret z
|
|
call Func_1932
|
|
jp Func_19e5
|
|
|
|
Func_1779: ; 0x1779
|
|
ld c, a
|
|
ld a, [wd8ad]
|
|
and a
|
|
ld a, [wd8c7]
|
|
ret z
|
|
ld a, [wd8ad]
|
|
cp $1
|
|
jr z, .asm_1790
|
|
cp $3
|
|
jr z, .asm_1790
|
|
ld a, $f0
|
|
ret
|
|
|
|
.asm_1790
|
|
ld a, [wd8db]
|
|
and a
|
|
jr nz, .asm_17df
|
|
ld a, c
|
|
inc a
|
|
ld [wd8de], a
|
|
ld a, l
|
|
ld [wd8c1], a
|
|
ld a, h
|
|
ld [wd8c2], a
|
|
ld a, [wd8c7]
|
|
cp $ff
|
|
ret z
|
|
ld a, [wd8ab]
|
|
ld [wd8ac], a
|
|
and a
|
|
jr z, .asm_17d6
|
|
ld a, [wd8de]
|
|
dec a
|
|
dec a
|
|
push af
|
|
ld c, a
|
|
ld b, $0
|
|
push hl
|
|
ld hl, wd89d
|
|
add hl, bc
|
|
ld a, [hl]
|
|
pop hl
|
|
ld [wd8ac], a
|
|
pop af
|
|
add a
|
|
ld c, a
|
|
ld b, $0
|
|
push hl
|
|
ld hl, wd88b
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld b, [hl]
|
|
pop hl
|
|
ld c, a
|
|
jp .asm_17d9
|
|
|
|
.asm_17d6
|
|
ld bc, $0280
|
|
.asm_17d9
|
|
call Func_1989
|
|
jp Func_19e5
|
|
|
|
.asm_17df
|
|
ld a, [wd8c5]
|
|
cp $2
|
|
ld a, $f0
|
|
jp nz, .asm_1869
|
|
ld hl, wd8de
|
|
ld a, [wd8c7]
|
|
bit 4, a
|
|
jp nz, .asm_1859
|
|
bit 1, a
|
|
jp nz, .asm_1804
|
|
bit 0, a
|
|
jp nz, .asm_1804
|
|
dec [hl]
|
|
ld a, [wd8c7]
|
|
jr z, .asm_1860
|
|
.asm_1804
|
|
ld a, [hl]
|
|
cp $1
|
|
jr z, .asm_186a
|
|
ld bc, $0280
|
|
ld a, [wd8ab]
|
|
ld [wd8ac], a
|
|
and a
|
|
jr z, .asm_1836
|
|
ld a, [wd8de]
|
|
dec a
|
|
dec a
|
|
push af
|
|
ld c, a
|
|
ld b, $0
|
|
push hl
|
|
ld hl, wd89d
|
|
add hl, bc
|
|
ld a, [hl]
|
|
pop hl
|
|
ld [wd8ac], a
|
|
pop af
|
|
add a
|
|
ld c, a
|
|
ld b, $0
|
|
push hl
|
|
ld hl, wd88b
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld b, [hl]
|
|
pop hl
|
|
ld c, a
|
|
.asm_1836
|
|
ld a, [wd8c7]
|
|
bit 1, a
|
|
jp nz, .asm_184e
|
|
ld a, [wd8bf]
|
|
add $80
|
|
ld [wd8bf], a
|
|
ld a, [wd8c0]
|
|
adc $2
|
|
ld [wd8c0], a
|
|
.asm_184e
|
|
ld a, [wd8bf]
|
|
ld l, a
|
|
ld a, [wd8c0]
|
|
ld h, a
|
|
jp .asm_17d9
|
|
|
|
.asm_1859
|
|
push af
|
|
ld a, $1
|
|
ld [wd8dc], a
|
|
pop af
|
|
.asm_1860
|
|
push af
|
|
xor a
|
|
ld [wd8cc], a
|
|
ld [wd8db], a
|
|
pop af
|
|
.asm_1869
|
|
ret
|
|
|
|
.asm_186a
|
|
ld a, [wd8dd]
|
|
and a
|
|
ld a, [wd8c7]
|
|
jr z, .asm_1860
|
|
call Func_19d7
|
|
jp Func_19e5
|
|
|
|
Func_1879:
|
|
ld a, [wd8ad]
|
|
cp $1
|
|
jr z, .asm_188b
|
|
cp $3
|
|
jr z, .asm_188b
|
|
and a
|
|
ld a, $ff
|
|
ret z
|
|
ld a, $f0
|
|
ret
|
|
|
|
.asm_188b
|
|
ld a, [wd8db]
|
|
and a
|
|
jr z, .asm_1895
|
|
call Func_16fd
|
|
ret nc
|
|
.asm_1895
|
|
ld a, [wd8ae]
|
|
cp $4
|
|
jr nz, .asm_18a0
|
|
call Func_16fd
|
|
ret nc
|
|
.asm_18a0
|
|
ld a, [wd8c7]
|
|
cp $ff
|
|
ret z
|
|
call Func_19bd
|
|
jp Func_19e5
|
|
|
|
Func_18ac: ; 0x18ac
|
|
ld a, [wd8ad]
|
|
cp $1
|
|
jr z, .asm_18be
|
|
cp $3
|
|
jr z, .asm_18be
|
|
and a
|
|
ld a, $ff
|
|
ret z
|
|
ld a, $f0
|
|
ret
|
|
|
|
.asm_18be
|
|
ld a, [wd8db]
|
|
and a
|
|
jr z, .asm_18c8
|
|
call Func_16fd
|
|
ret nc
|
|
.asm_18c8
|
|
ld a, [wd8c7]
|
|
cp $ff
|
|
ret z
|
|
call Func_19ca
|
|
jp Func_19e5
|
|
|
|
Func_18d4: ; 0x18d4
|
|
ld [wd8cb], a
|
|
ld a, d
|
|
ld [wd8cc], a
|
|
ld a, l
|
|
ld [wd8bb], a
|
|
ld [wd8bd], a
|
|
ld a, h
|
|
ld [wd8bc], a
|
|
ld [wd8be], a
|
|
ld a, c
|
|
ld [wd8b3], a
|
|
ld [wd8b5], a
|
|
ld a, b
|
|
ld [wd8b4], a
|
|
ld [wd8b6], a
|
|
xor a
|
|
ld [wd8c5], a
|
|
call Func_16bf
|
|
ret
|
|
|
|
SerialTranfserData_18ff: ; 0x18ff
|
|
db $88
|
|
db $33
|
|
|
|
SerialTransferData_1901: ; 0x1901
|
|
db $01
|
|
db $00
|
|
db $00
|
|
db $00
|
|
db $01
|
|
db $00
|
|
db $00
|
|
db $00
|
|
|
|
SerialTransferData_1909: ; 0x1909
|
|
db $02
|
|
db $00
|
|
db $04
|
|
db $00
|
|
|
|
SerialTransferData_190d: ; 0x190d
|
|
db $04
|
|
db $00
|
|
db $00
|
|
db $00
|
|
db $04
|
|
db $00
|
|
db $00
|
|
db $00
|
|
|
|
SerialTransferData_1915: ; 0x1915
|
|
db $08
|
|
db $00
|
|
db $00
|
|
db $00
|
|
db $08
|
|
db $00
|
|
db $00
|
|
db $00
|
|
|
|
SerialTransferData_191d: ; 0x191d
|
|
db $0F
|
|
db $00
|
|
db $00
|
|
db $00
|
|
db $0F
|
|
db $00
|
|
db $00
|
|
db $00
|
|
|
|
Func_1925: ; 0x1925
|
|
ld a, $1
|
|
ld d, $0
|
|
ld hl, SerialTransferData_1901
|
|
ld bc, $0008
|
|
jp Func_18d4
|
|
|
|
Func_1932: ; 0x19332
|
|
ld a, $2
|
|
ld d, $0
|
|
ld hl, wd8cd
|
|
ld bc, $000c
|
|
call Func_18d4
|
|
ld hl, SerialTransferData_1909
|
|
ld de, wd8cd
|
|
ld bc, $0004
|
|
call LocalCopyData
|
|
ld de, $0006
|
|
ld a, [wd8a8]
|
|
ld [wd8d1], a
|
|
call Func_1982
|
|
ld a, [wd8a9]
|
|
ld [wd8d2], a
|
|
call Func_1982
|
|
ld a, [wd8aa]
|
|
ld [wd8d3], a
|
|
call Func_1982
|
|
ld a, [wd8a7]
|
|
ld [wd8d4], a
|
|
call Func_1982
|
|
ld a, e
|
|
ld [wd8d5], a
|
|
ld a, d
|
|
ld [wd8d6], a
|
|
xor a
|
|
ld [wd8d7], a
|
|
ld [wd8d8], a
|
|
ret
|
|
|
|
Func_1982: ; 0x1982
|
|
add e
|
|
ld e, a
|
|
ld a, d
|
|
adc $0
|
|
ld d, a
|
|
ret
|
|
|
|
Func_1989: ; 0x1989
|
|
ld a, l
|
|
ld [wd8bf], a
|
|
ld a, h
|
|
ld [wd8c0], a
|
|
ld a, c
|
|
ld [wd8b7], a
|
|
ld a, b
|
|
ld [wd8b8], a
|
|
push bc
|
|
ld a, $3
|
|
ld d, $1
|
|
ld hl, wd8cd
|
|
ld bc, $0004
|
|
call Func_18d4
|
|
ld a, [SerialTransferData_190d]
|
|
ld [wd8cd], a
|
|
ld a, [wd8ac]
|
|
ld [wd8ce], a
|
|
pop bc
|
|
ld a, c
|
|
ld [wd8cf], a
|
|
ld a, b
|
|
ld [wd8d0], a
|
|
ret
|
|
|
|
Func_19bd: ; 19bd (0:19bd)
|
|
ld a, $4
|
|
ld d, $0
|
|
ld hl, SerialTransferData_1915
|
|
ld bc, $8
|
|
jp Func_18d4
|
|
|
|
Func_19ca: ; 0x19ca
|
|
ld a, $5
|
|
ld d, $0
|
|
ld hl, SerialTransferData_191d
|
|
ld bc, $0008
|
|
jp Func_18d4
|
|
|
|
Func_19d7: ; 0x19d7
|
|
ld a, $6
|
|
ld d, $1
|
|
ld hl, SerialTransferData_190d
|
|
ld bc, $0008
|
|
jp Func_18d4
|
|
|
|
; unused
|
|
ret
|
|
|
|
Func_19e5: ; 0x19e5
|
|
ld a, [wd8ad]
|
|
cp $1
|
|
jr z, .asm_19f8
|
|
and a
|
|
jr nz, .asm_19f6
|
|
ld a, [wd8cb]
|
|
cp $1
|
|
jr z, .asm_1a02
|
|
.asm_19f6
|
|
scf
|
|
ret
|
|
|
|
.asm_19f8
|
|
ld a, [wd8cb]
|
|
cp $1
|
|
jr z, .asm_19f6
|
|
ld [wd8ad], a
|
|
.asm_1a02
|
|
xor a
|
|
ld [wd8c5], a
|
|
ld [wd8ae], a
|
|
ld a, $1
|
|
ld [wd8b9], a
|
|
ld [wd8db], a
|
|
ld a, [SerialTranfserData_18ff]
|
|
ldh [rSB], a
|
|
ld a, $1
|
|
ldh [rSC], a
|
|
ld a, $81
|
|
ldh [rSC], a
|
|
ld a, $f0
|
|
ret
|