Files
Xillicis fb7aa4b2e0 Update to rgbds v0.8.0 (#57)
* First test commit

* XIL: All changes for pokepinball to work with rgbds v0.8.0
2024-12-22 17:53:44 -06:00

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