mirror of
https://github.com/pret/pokepinball.git
synced 2026-04-25 23:36:59 -05:00
Split out HOME
This commit is contained in:
parent
c752c88bf9
commit
354bccef2d
|
|
@ -5,7 +5,7 @@ Func_3c000: ; 0x3c000
|
|||
push af
|
||||
call Func_3cb1b
|
||||
ld hl, wdd01
|
||||
ld de, $01af
|
||||
ld de, wdeb0 - wdd01
|
||||
.clearLoop
|
||||
xor a
|
||||
ld [hli], a
|
||||
|
|
@ -1687,7 +1687,7 @@ Func_3ca2b: ; 0x3ca2b
|
|||
ld h, d
|
||||
add hl, de
|
||||
add hl, hl
|
||||
ld de, $4b20 ; todo
|
||||
ld de, $4b20
|
||||
add hl, de
|
||||
ld e, [hl]
|
||||
inc hl
|
||||
|
|
|
|||
782
home/serial.asm
Executable file
782
home/serial.asm
Executable file
|
|
@ -0,0 +1,782 @@
|
|||
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, Data_18ff
|
||||
add hl, bc
|
||||
ld a, [hl]
|
||||
ld [rSB], a
|
||||
ld a, $1
|
||||
ld [rSC], a
|
||||
ld a, $81
|
||||
ld [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
|
||||
ld a, [rSB]
|
||||
ld [wd8c8 + 1], a
|
||||
ld a, [hl]
|
||||
ld [rSB], a
|
||||
ld l, a
|
||||
ld a, [wd8c3]
|
||||
add l
|
||||
ld [wd8c3], a
|
||||
ld a, [wd8c4]
|
||||
adc $0
|
||||
ld [wd8c4], a
|
||||
ld a, $1
|
||||
ld [rSC], a
|
||||
ld a, $81
|
||||
ld [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
|
||||
asm_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]
|
||||
ld [rSB], a
|
||||
ld a, $1
|
||||
ld [rSC], a
|
||||
ld a, $81
|
||||
ld [rSC], a
|
||||
ld hl, wd8b2
|
||||
inc [hl]
|
||||
ret
|
||||
|
||||
Func_15f8: ; 15f8 (0:15f8)
|
||||
ld a, [rSB]
|
||||
ld [wd8c8], a
|
||||
xor a
|
||||
ld [rSB], a
|
||||
ld a, $1
|
||||
ld [rSC], a
|
||||
ld a, $81
|
||||
ld [rSC], a
|
||||
ld hl, wd8c6
|
||||
inc [hl]
|
||||
ld a, [hl]
|
||||
cp $2
|
||||
jr z, asm_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
|
||||
ld 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
|
||||
ld [rSC], a
|
||||
Func_1663: ; 1663 (0:1663)
|
||||
ret
|
||||
|
||||
Func_1664:
|
||||
push af
|
||||
ld 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
|
||||
ld [rSC], a
|
||||
ld [rSB], a
|
||||
; fallthrough
|
||||
|
||||
Func_16a2: ; 0x16a2
|
||||
xor a
|
||||
ld [rSB], a
|
||||
ld [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
|
||||
|
||||
Data_18ff:
|
||||
dr $18ff, $1901
|
||||
|
||||
Data_1901:
|
||||
dr $1901, $1909
|
||||
|
||||
Data_1909:
|
||||
dr $1909, $190d
|
||||
|
||||
Data_190d:
|
||||
dr $190d, $1915
|
||||
|
||||
Data_1915:
|
||||
dr $1915, $191d
|
||||
|
||||
Data_191d:
|
||||
dr $191d, $1925
|
||||
|
||||
Func_1925: ; 0x1925
|
||||
ld a, $1
|
||||
ld d, $0
|
||||
ld hl, Data_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, Data_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, [Data_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, Data_1915
|
||||
ld bc, $8
|
||||
jp Func_18d4
|
||||
|
||||
Func_19ca: ; 0x19ca
|
||||
ld a, $5
|
||||
ld d, $0
|
||||
ld hl, Data_191d
|
||||
ld bc, $0008
|
||||
jp Func_18d4
|
||||
|
||||
Func_19d7: ; 0x19d7
|
||||
ld a, $6
|
||||
ld d, $1
|
||||
ld hl, Data_190d
|
||||
ld bc, $0008
|
||||
jp Func_18d4
|
||||
|
||||
; XXX
|
||||
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, [Data_18ff]
|
||||
ld [rSB], a
|
||||
ld a, $1
|
||||
ld [rSC], a
|
||||
ld a, $81
|
||||
ld [rSC], a
|
||||
ld a, $f0
|
||||
ret
|
||||
277
home/sgb.asm
Executable file
277
home/sgb.asm
Executable file
|
|
@ -0,0 +1,277 @@
|
|||
FarSendSGBPackets: ; 0x12a1
|
||||
; send 16*b bytes at a:hl via the joypad register
|
||||
ld [hROMBankBuffer], a
|
||||
ld a, [hLoadedROMBank]
|
||||
push af
|
||||
ld a, [hROMBankBuffer]
|
||||
ld [hLoadedROMBank], a
|
||||
ld [MBC5RomBank], a
|
||||
ld a, [hl]
|
||||
and $7
|
||||
jr z, .quit
|
||||
ld b, a
|
||||
ld c, $0
|
||||
.loop
|
||||
push bc
|
||||
ld a, $0
|
||||
ld [$ff00+c], a
|
||||
ld a, $30
|
||||
ld [$ff00+c], a
|
||||
ld b, $10
|
||||
.inner_loop
|
||||
ld e, $8
|
||||
ld a, [hli]
|
||||
ld d, a
|
||||
.innermost_loop
|
||||
bit 0, d
|
||||
ld a, $10
|
||||
jr nz, .got_data
|
||||
ld a, $20
|
||||
.got_data
|
||||
ld [$ff00+c], a
|
||||
ld a, $30
|
||||
ld [$ff00+c], a
|
||||
rr d
|
||||
dec e
|
||||
jr nz, .innermost_loop
|
||||
dec b
|
||||
jr nz, .inner_loop
|
||||
ld a, $20
|
||||
ld [$ff00+c], a
|
||||
ld a, $30
|
||||
ld [$ff00+c], a
|
||||
pop bc
|
||||
dec b
|
||||
jr z, .quit
|
||||
call SGBWait7000
|
||||
jr .loop
|
||||
|
||||
.quit
|
||||
pop af
|
||||
ld [hLoadedROMBank], a
|
||||
ld [MBC5RomBank], a
|
||||
ret
|
||||
|
||||
SGBWait7000: ; 0x12ec
|
||||
ld de, 7000
|
||||
.asm_12ef
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
dec de
|
||||
ld a, d
|
||||
or e
|
||||
jr nz, .asm_12ef
|
||||
ret
|
||||
|
||||
InitSGB: ; 0x12f8
|
||||
ld a, BANK(Data_38010)
|
||||
ld hl, Data_38010
|
||||
call FarSendSGBPackets
|
||||
call SGBWait7000
|
||||
ld a, [rJOYP]
|
||||
and $3
|
||||
cp $3
|
||||
jr nz, .asm_1346
|
||||
ld a, $20
|
||||
ld [rJOYP], a
|
||||
ld a, [rJOYP]
|
||||
ld a, [rJOYP]
|
||||
ld a, $30
|
||||
ld [rJOYP], a
|
||||
ld a, $10
|
||||
ld [rJOYP], a
|
||||
ld a, [rJOYP]
|
||||
ld a, [rJOYP]
|
||||
ld a, [rJOYP]
|
||||
ld a, [rJOYP]
|
||||
ld a, [rJOYP]
|
||||
ld a, [rJOYP]
|
||||
ld a, $30
|
||||
ld [rJOYP], a
|
||||
ld a, [rJOYP]
|
||||
ld a, [rJOYP]
|
||||
ld a, [rJOYP]
|
||||
ld a, [rJOYP]
|
||||
and $3
|
||||
cp $3
|
||||
jr nz, .asm_1346
|
||||
ld a, BANK(Data_38000)
|
||||
ld hl, Data_38000
|
||||
call FarSendSGBPackets
|
||||
call SGBWait7000
|
||||
and a
|
||||
ret
|
||||
|
||||
.asm_1346
|
||||
ld a, BANK(Data_38000)
|
||||
ld hl, Data_38000
|
||||
call FarSendSGBPackets
|
||||
call SGBWait7000
|
||||
scf
|
||||
ret
|
||||
|
||||
FarSendSGBPacket_BGMapRows: ; 0x1353
|
||||
ld [hROMBankBuffer], a
|
||||
ld a, [hLoadedROMBank]
|
||||
push af
|
||||
ld a, [hROMBankBuffer]
|
||||
ld [hLoadedROMBank], a
|
||||
ld [MBC5RomBank], a
|
||||
push af
|
||||
push hl
|
||||
ld a, $e4
|
||||
ld [rBGP], a
|
||||
ld de, $0010
|
||||
add hl, de
|
||||
ld de, vTiles1 ; tiles
|
||||
call LocalCopyData
|
||||
ld hl, vBGMap0 ; bgmap
|
||||
ld de, $000c
|
||||
ld a, $80
|
||||
ld c, $d
|
||||
.row
|
||||
ld b, $14
|
||||
.col
|
||||
ld [hli], a
|
||||
inc a
|
||||
dec b
|
||||
jr nz, .col
|
||||
add hl, de
|
||||
dec c
|
||||
jr nz, .row
|
||||
ld a, $81
|
||||
ld [rLCDC], a
|
||||
ld bc, $0005
|
||||
call SGBWait1750
|
||||
pop hl
|
||||
pop af
|
||||
call FarSendSGBPackets
|
||||
ld bc, $0006
|
||||
call SGBWait1750
|
||||
ld a, [hBGP]
|
||||
ld [rBGP], a
|
||||
ld a, [hLCDC]
|
||||
ld [rLCDC], a
|
||||
pop af
|
||||
ld [hLoadedROMBank], a
|
||||
ld [MBC5RomBank], a
|
||||
ret
|
||||
|
||||
SendSGBBorder: ; 0x13a8
|
||||
ld a, [hSGBFlag]
|
||||
and a
|
||||
ret z
|
||||
ld bc, $0078
|
||||
call SGBWait1750
|
||||
call SignalStartSGBBorderTransmission
|
||||
ld a, BANK(Data_3a9e6)
|
||||
ld hl, Data_3a9e6
|
||||
call FarSendSGBPackets
|
||||
ld bc, $0004
|
||||
call SGBWait1750
|
||||
ld a, BANK(Data_3a9f6)
|
||||
ld hl, Data_3a9f6
|
||||
call FarSendSGBPackets
|
||||
ld bc, $0004
|
||||
call SGBWait1750
|
||||
ld a, BANK(Data_3aa06)
|
||||
ld hl, Data_3aa06
|
||||
call FarSendSGBPackets
|
||||
ld bc, $0004
|
||||
call SGBWait1750
|
||||
ld a, BANK(Data_3aa16)
|
||||
ld hl, Data_3aa16
|
||||
call FarSendSGBPackets
|
||||
ld bc, $0004
|
||||
call SGBWait1750
|
||||
ld a, BANK(Data_3aa26)
|
||||
ld hl, Data_3aa26
|
||||
call FarSendSGBPackets
|
||||
ld bc, $0004
|
||||
call SGBWait1750
|
||||
ld a, BANK(Data_3aa36)
|
||||
ld hl, Data_3aa36
|
||||
call FarSendSGBPackets
|
||||
ld bc, $0004
|
||||
call SGBWait1750
|
||||
ld a, BANK(Data_3aa46)
|
||||
ld hl, Data_3aa46
|
||||
call FarSendSGBPackets
|
||||
ld bc, $0004
|
||||
call SGBWait1750
|
||||
ld a, BANK(Data_3aa56)
|
||||
ld hl, Data_3aa56
|
||||
call FarSendSGBPackets
|
||||
ld bc, $0004
|
||||
call SGBWait1750
|
||||
ld bc, Data_39166 - Data_38156 - $10
|
||||
ld a, BANK(Data_38156)
|
||||
ld hl, Data_38156
|
||||
call FarSendSGBPacket_BGMapRows
|
||||
ld bc, $0004
|
||||
call SGBWait1750
|
||||
ld bc, Data_3a176 - Data_39166 - $10
|
||||
ld a, BANK(Data_39166)
|
||||
ld hl, Data_39166
|
||||
call FarSendSGBPacket_BGMapRows
|
||||
ld bc, $0004
|
||||
call SGBWait1750
|
||||
ld bc, Data_3a9e6 - Data_3a176 - $10
|
||||
ld a, BANK(Data_3a176)
|
||||
ld hl, Data_3a176
|
||||
call FarSendSGBPacket_BGMapRows
|
||||
ld bc, $0004
|
||||
call SGBWait1750
|
||||
ld bc, Data_38156 - Data_380a6 - $10
|
||||
ld a, BANK(Data_380a6)
|
||||
ld hl, Data_380a6
|
||||
call FarSendSGBPacket_BGMapRows
|
||||
ld bc, $0004
|
||||
call SGBWait1750
|
||||
ld bc, Data_3809a - Data_38030 - $10
|
||||
ld a, BANK(Data_38030)
|
||||
ld hl, Data_38030
|
||||
call FarSendSGBPacket_BGMapRows
|
||||
ld bc, $0004
|
||||
call SGBWait1750
|
||||
ld a, BANK(Data_38020)
|
||||
ld hl, Data_38020
|
||||
call FarSendSGBPackets
|
||||
ld bc, $0004
|
||||
call SGBWait1750
|
||||
ret
|
||||
|
||||
SignalStartSGBBorderTransmission: ; 0x1489
|
||||
ld a, [hSGBFlag]
|
||||
and a
|
||||
ret z
|
||||
ld a, [hSGBInit]
|
||||
and a
|
||||
ret nz
|
||||
ld a, BANK(Data_3aa66)
|
||||
ld hl, Data_3aa66
|
||||
call FarSendSGBPackets
|
||||
ld bc, $0004
|
||||
call SGBWait1750
|
||||
ld a, $ff
|
||||
ld [hSGBInit], a
|
||||
ret
|
||||
|
||||
SGBNormal: ; 0x14a4
|
||||
ld a, [hSGBFlag]
|
||||
and a
|
||||
ret z
|
||||
ld bc, $0002
|
||||
call SGBWait1750
|
||||
ld a, [hSGBInit]
|
||||
and a
|
||||
ret z
|
||||
ld a, BANK(Data_3aa76)
|
||||
ld hl, Data_3aa76
|
||||
call FarSendSGBPackets
|
||||
ld bc, $0004
|
||||
call SGBWait1750
|
||||
xor a
|
||||
ld [hSGBInit], a
|
||||
ret
|
||||
2
hram.asm
2
hram.asm
|
|
@ -42,4 +42,6 @@ hFFC4 = $FFC4
|
|||
|
||||
hLoadedROMBank EQU $FFF8 ; this is updated whenever the code switches ROM Banks
|
||||
hROMBankBuffer EQU $FFFA
|
||||
hSGBFlag EQU $FFFB
|
||||
hSGBInit EQU $FFFC
|
||||
hGameBoyColorFlag EQU $FFFE ; this is set to $01 if a GameBoy Color is running the game. $00, otherwise.
|
||||
|
|
|
|||
14
wram.asm
14
wram.asm
|
|
@ -97,7 +97,10 @@ wcb00:: ; 0xcb00
|
|||
SECTION "WRAM Bank 1", WRAMX, BANK[1]
|
||||
|
||||
wOAMBuffer:: ; 0xd000
|
||||
ds $200
|
||||
ds $a0
|
||||
|
||||
wOAMBufferEnd:: ; 0xd0a0
|
||||
ds $160
|
||||
|
||||
wPaletteData:: ; 0xd200
|
||||
ds $80
|
||||
|
|
@ -1845,7 +1848,7 @@ wd800:: ; 0xd800
|
|||
wd801:: ; 0xd801
|
||||
ds $1
|
||||
|
||||
wd802:: ; 0xd802
|
||||
wOAMBufferSize:: ; 0xd802
|
||||
ds $1
|
||||
|
||||
wd803:: ; 0xd803
|
||||
|
|
@ -2616,9 +2619,12 @@ wdead:: ; 0xdead
|
|||
ds $1
|
||||
|
||||
wdeae:: ; 0xdeae
|
||||
ds $52
|
||||
ds $2
|
||||
|
||||
wStack::
|
||||
wdeb0:: ; 0xdeb0
|
||||
ds $50
|
||||
|
||||
wStack:: ; 0xdf00
|
||||
ds $ff
|
||||
|
||||
wdfff:: ; 0xdfff
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user