mirror of
https://github.com/pret/poketcg.git
synced 2026-10-05 07:37:15 -04:00
600 lines
8.5 KiB
NASM
Executable File
600 lines
8.5 KiB
NASM
Executable File
Func_fc000: ; fc000 (3f:4000)
|
|
jp Func_fc006
|
|
|
|
Func_fc003: ; fc003 (3f:4003)
|
|
jp Func_fc059
|
|
|
|
Func_fc006: ; fc006 (3f:4006)
|
|
ld hl, NumberOfSFX
|
|
cp [hl]
|
|
jr nc, .asm_fc058
|
|
add a
|
|
ld c, a
|
|
ld b, $0
|
|
ld a, [$de53]
|
|
or a
|
|
jr z, .asm_fc019
|
|
call Func_fc279
|
|
.asm_fc019
|
|
ld a, $1
|
|
ld [$de53], a
|
|
ld hl, SFXHeaderPointers
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
ld a, [hli]
|
|
ld [$dd8c], a
|
|
ld [$de54], a
|
|
ld de, $de4b
|
|
ld c, $0
|
|
.asm_fc031
|
|
ld a, [$de54]
|
|
rrca
|
|
ld [$de54], a
|
|
jr nc, .asm_fc050
|
|
ld a, [hli]
|
|
ld [de], a
|
|
inc de
|
|
ld a, [hli]
|
|
ld [de], a
|
|
inc de
|
|
push hl
|
|
ld hl, $de2f
|
|
add hl, bc
|
|
ld [hl], $0
|
|
ld hl, $de33
|
|
add hl, bc
|
|
ld [hl], $1
|
|
pop hl
|
|
jr .asm_fc052
|
|
.asm_fc050
|
|
inc de
|
|
inc de
|
|
.asm_fc052
|
|
inc c
|
|
ld a, $4
|
|
cp c
|
|
jr nz, .asm_fc031
|
|
.asm_fc058
|
|
ret
|
|
|
|
Func_fc059: ; fc059 (3f:4059)
|
|
ld a, [$dd8c]
|
|
or a
|
|
jr nz, .asm_fc063
|
|
call Func_fc26c
|
|
ret
|
|
.asm_fc063
|
|
xor a
|
|
ld b, a
|
|
ld c, a
|
|
ld a, [$dd8c]
|
|
ld [$de54], a
|
|
.asm_fc06c
|
|
ld hl, $de54
|
|
ld a, [hl]
|
|
rrca
|
|
ld [hl], a
|
|
jr nc, .asm_fc08d
|
|
ld hl, $de33
|
|
add hl, bc
|
|
ld a, [hl]
|
|
dec a
|
|
jr z, .asm_fc082
|
|
ld [hl], a
|
|
call Func_fc18d
|
|
jr .asm_fc08d
|
|
.asm_fc082
|
|
ld hl, $de4b
|
|
add hl, bc
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
call Func_fc094
|
|
.asm_fc08d
|
|
inc c
|
|
ld a, c
|
|
cp $4
|
|
jr nz, .asm_fc06c
|
|
ret
|
|
|
|
Func_fc094: ; fc094 (3f:4094)
|
|
ld a, [hl]
|
|
and $f0
|
|
swap a
|
|
add a
|
|
ld e, a
|
|
ld d, $0
|
|
ld a, [hli]
|
|
push hl
|
|
and $f
|
|
ld hl, SFX_CommandTable
|
|
add hl, de
|
|
ld e, [hl]
|
|
inc hl
|
|
ld d, [hl]
|
|
ld h, d
|
|
ld l, e
|
|
jp [hl]
|
|
|
|
SFX_CommandTable: ; fc0ab (3f:40ab)
|
|
dw SFX_0
|
|
dw SFX_1
|
|
dw SFX_2
|
|
dw SFX_loop
|
|
dw SFX_endloop
|
|
dw SFX_5
|
|
dw SFX_6
|
|
dw SFX_7
|
|
dw SFX_8
|
|
dw SFX_unused
|
|
dw SFX_unused
|
|
dw SFX_unused
|
|
dw SFX_unused
|
|
dw SFX_unused
|
|
dw SFX_unused
|
|
dw SFX_end
|
|
|
|
SFX_unused: ; fc0cb (3f:40cb)
|
|
jp Func_fc094
|
|
|
|
SFX_0: ; fc0ce (3f:40ce)
|
|
ld d, a
|
|
pop hl
|
|
ld a, [hli]
|
|
ld e, a
|
|
push hl
|
|
ld hl, $de37
|
|
add hl, bc
|
|
add hl, bc
|
|
push bc
|
|
ld b, [hl]
|
|
ld [hl], e
|
|
inc hl
|
|
ld [hl], d
|
|
ld a, c
|
|
cp $3
|
|
jr nz, .asm_fc0e9
|
|
ld a, b
|
|
xor e
|
|
and $8
|
|
swap a
|
|
ld d, a
|
|
.asm_fc0e9
|
|
pop bc
|
|
ld hl, $de2b
|
|
add hl, bc
|
|
ld a, [hl]
|
|
ld [hl], $0
|
|
or d
|
|
ld d, a
|
|
ld hl, $ff11
|
|
ld a, c
|
|
add a
|
|
add a
|
|
add c
|
|
add l
|
|
ld l, a
|
|
ld a, [hl]
|
|
and $c0
|
|
ld [hli], a
|
|
inc hl
|
|
ld a, e
|
|
ld [hli], a
|
|
ld [hl], d
|
|
pop de
|
|
Func_fc105: ; fc105 (3f:4105)
|
|
ld hl, $de4b
|
|
add hl, bc
|
|
add hl, bc
|
|
ld [hl], e
|
|
inc hl
|
|
ld [hl], d
|
|
ret
|
|
|
|
SFX_1: ; fc10e (3f:410e)
|
|
ld hl, $de2b
|
|
add hl, bc
|
|
ld a, $80
|
|
ld [hl], a
|
|
pop hl
|
|
ld a, [hli]
|
|
ld e, a
|
|
push hl
|
|
ld hl, $ff12
|
|
ld a, c
|
|
add a
|
|
add a
|
|
add c
|
|
add l
|
|
ld l, a
|
|
ld [hl], e
|
|
pop hl
|
|
jp Func_fc094
|
|
|
|
SFX_2: ; fc127 (3f:4127)
|
|
swap a
|
|
ld e, a
|
|
ld hl, $ff11
|
|
ld a, c
|
|
add a
|
|
add a
|
|
add c
|
|
add l
|
|
ld l, a
|
|
ld [hl], e
|
|
pop hl
|
|
jp Func_fc094
|
|
|
|
SFX_loop: ; fc138 (3f:4138)
|
|
ld hl, $de43
|
|
add hl, bc
|
|
add hl, bc
|
|
pop de
|
|
ld a, [de]
|
|
inc de
|
|
ld [hl], e
|
|
inc hl
|
|
ld [hl], d
|
|
ld hl, $de3f
|
|
add hl, bc
|
|
ld [hl], a
|
|
ld l, e
|
|
ld h, d
|
|
jp Func_fc094
|
|
|
|
SFX_endloop: ; fc14d (3f:414d)
|
|
ld hl, $de3f
|
|
add hl, bc
|
|
ld a, [hl]
|
|
dec a
|
|
jr z, .asm_fc162
|
|
ld [hl], a
|
|
ld hl, $de43
|
|
add hl, bc
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
pop de
|
|
jp Func_fc094
|
|
.asm_fc162
|
|
pop hl
|
|
jp Func_fc094
|
|
|
|
SFX_5: ; fc166 (3f:4166)
|
|
ld hl, $de2f
|
|
add hl, bc
|
|
ld e, l
|
|
ld d, h
|
|
pop hl
|
|
ld a, [hli]
|
|
ld [de], a
|
|
jp Func_fc094
|
|
|
|
SFX_6: ; fc172 (3f:4172)
|
|
ld a, c
|
|
cp $3
|
|
jr nz, .asm_fc17c
|
|
call Func_fc1cd
|
|
jr .asm_fc17f
|
|
.asm_fc17c
|
|
call Func_fc18d
|
|
.asm_fc17f
|
|
ld hl, $de33
|
|
add hl, bc
|
|
ld e, l
|
|
ld d, h
|
|
pop hl
|
|
ld a, [hli]
|
|
ld [de], a
|
|
ld e, l
|
|
ld d, h
|
|
jp Func_fc105
|
|
|
|
Func_fc18d: ; fc18d (3f:418d)
|
|
ld hl, $de2f
|
|
add hl, bc
|
|
ld a, [hl]
|
|
or a
|
|
jr z, .asm_fc1cc
|
|
ld hl, $de37
|
|
add hl, bc
|
|
add hl, bc
|
|
bit 7, a
|
|
jr z, .asm_fc1aa
|
|
xor $ff
|
|
inc a
|
|
ld d, a
|
|
ld a, [hl]
|
|
sub d
|
|
ld [hli], a
|
|
ld e, a
|
|
ld a, [hl]
|
|
sbc b
|
|
jr .asm_fc1b1
|
|
.asm_fc1aa
|
|
ld d, a
|
|
ld a, [hl]
|
|
add d
|
|
ld [hli], a
|
|
ld e, a
|
|
ld a, [hl]
|
|
adc b
|
|
.asm_fc1b1
|
|
ld [hl], a
|
|
ld hl, $de2b
|
|
add hl, bc
|
|
ld d, [hl]
|
|
ld [hl], $0
|
|
or d
|
|
ld d, a
|
|
ld hl, $ff11
|
|
ld a, c
|
|
add a
|
|
add a
|
|
add c
|
|
add l
|
|
ld l, a
|
|
ld a, [hl]
|
|
and $c0
|
|
ld [hli], a
|
|
inc hl
|
|
ld a, e
|
|
ld [hli], a
|
|
ld [hl], d
|
|
.asm_fc1cc
|
|
ret
|
|
|
|
Func_fc1cd: ; fc1cd (3f:41cd)
|
|
ld hl, $de32
|
|
ld a, [hl]
|
|
or a
|
|
jr z, .asm_fc201
|
|
ld hl, $de3d
|
|
bit 7, a
|
|
jr z, .asm_fc1e5
|
|
xor $ff
|
|
inc a
|
|
ld d, a
|
|
ld e, [hl]
|
|
ld a, e
|
|
sub d
|
|
ld [hl], a
|
|
jr .asm_fc1ea
|
|
.asm_fc1e5
|
|
ld d, a
|
|
ld e, [hl]
|
|
ld a, e
|
|
add d
|
|
ld [hl], a
|
|
.asm_fc1ea
|
|
ld d, a
|
|
xor e
|
|
and $8
|
|
swap a
|
|
ld hl, $de2e
|
|
ld e, [hl]
|
|
ld [hl], $0
|
|
or e
|
|
ld e, a
|
|
ld hl, $ff20
|
|
xor a
|
|
ld [hli], a
|
|
inc hl
|
|
ld a, d
|
|
ld [hli], a
|
|
ld [hl], e
|
|
.asm_fc201
|
|
ret
|
|
|
|
SFX_7: ; fc202 (3f:4202)
|
|
add a
|
|
ld d, $0
|
|
ld e, a
|
|
ld hl, SFX_WaveInstruments
|
|
add hl, de
|
|
ld a, [hli]
|
|
ld h, [hl]
|
|
ld l, a
|
|
ld a, $0
|
|
ld [$ff1a], a
|
|
ld b, d
|
|
ld de, $ff30
|
|
.asm_fc215
|
|
ld a, [hli]
|
|
ld [de], a
|
|
inc de
|
|
inc b
|
|
ld a, b
|
|
cp $10
|
|
jr nz, .asm_fc215
|
|
ld a, $1
|
|
ld [$dd8b], a
|
|
ld a, $80
|
|
ld [$ff1a], a
|
|
ld b, $0
|
|
pop hl
|
|
jp Func_fc094
|
|
|
|
SFX_8: ; fc22d (3f:422d)
|
|
pop hl
|
|
ld a, [hli]
|
|
push hl
|
|
push bc
|
|
inc c
|
|
ld e, $ee
|
|
.asm_fc234
|
|
dec c
|
|
jr z, .asm_fc23c
|
|
rlca
|
|
rlc e
|
|
jr .asm_fc234
|
|
.asm_fc23c
|
|
ld d, a
|
|
ld hl, $dd85
|
|
ld a, [hl]
|
|
and e
|
|
or d
|
|
ld [hl], a
|
|
pop bc
|
|
pop hl
|
|
jp Func_fc094
|
|
|
|
SFX_end: ; fc249 (3f:4249)
|
|
ld e, c
|
|
inc e
|
|
ld a, $7f
|
|
.asm_fc24d
|
|
rlca
|
|
dec e
|
|
jr nz, .asm_fc24d
|
|
ld e, a
|
|
ld a, [$dd8c]
|
|
and e
|
|
ld [$dd8c], a
|
|
ld a, c
|
|
rlca
|
|
rlca
|
|
add c
|
|
ld e, a
|
|
ld d, b
|
|
ld hl, $ff12
|
|
add hl, de
|
|
ld a, $8
|
|
ld [hli], a
|
|
inc hl
|
|
swap a
|
|
ld [hl], a
|
|
pop hl
|
|
ret
|
|
|
|
Func_fc26c: ; fc26c (3f:426c)
|
|
xor a
|
|
ld [$de53], a
|
|
ld [$dd83], a
|
|
ld a, $80
|
|
ld [$dd82], a
|
|
ret
|
|
|
|
Func_fc279: ; fc279 (3f:4279)
|
|
ld a, $8
|
|
ld a, [$ff12]
|
|
ld a, [$ff17]
|
|
ld a, [$ff1c]
|
|
ld a, [$ff21]
|
|
ld a, $80
|
|
ld a, [$ff14]
|
|
ld a, [$ff19]
|
|
ld a, [$ff23]
|
|
xor a
|
|
ld [$dd8c], a
|
|
ret
|
|
|
|
INCLUDE "data/sfx_headers.asm"
|
|
|
|
SFX_WaveInstruments: ; fc485 (3f:4485)
|
|
INCLUDE "data/wave_instruments.asm"
|
|
|
|
INCLUDE "audio/sfx/sfx_01.asm"
|
|
INCLUDE "audio/sfx/sfx_02.asm"
|
|
INCLUDE "audio/sfx/sfx_03.asm"
|
|
INCLUDE "audio/sfx/sfx_04.asm"
|
|
INCLUDE "audio/sfx/sfx_05.asm"
|
|
INCLUDE "audio/sfx/sfx_06.asm"
|
|
INCLUDE "audio/sfx/sfx_07.asm"
|
|
INCLUDE "audio/sfx/sfx_08.asm"
|
|
INCLUDE "audio/sfx/sfx_09.asm"
|
|
INCLUDE "audio/sfx/sfx_0a.asm"
|
|
INCLUDE "audio/sfx/sfx_0b.asm"
|
|
INCLUDE "audio/sfx/sfx_0c.asm"
|
|
INCLUDE "audio/sfx/sfx_0d.asm"
|
|
INCLUDE "audio/sfx/sfx_0e.asm"
|
|
INCLUDE "audio/sfx/sfx_0f.asm"
|
|
INCLUDE "audio/sfx/sfx_10.asm"
|
|
INCLUDE "audio/sfx/sfx_11.asm"
|
|
INCLUDE "audio/sfx/sfx_12.asm"
|
|
INCLUDE "audio/sfx/sfx_13.asm"
|
|
INCLUDE "audio/sfx/sfx_14.asm"
|
|
INCLUDE "audio/sfx/sfx_15.asm"
|
|
INCLUDE "audio/sfx/sfx_16.asm"
|
|
INCLUDE "audio/sfx/sfx_17.asm"
|
|
INCLUDE "audio/sfx/sfx_18.asm"
|
|
INCLUDE "audio/sfx/sfx_19.asm"
|
|
INCLUDE "audio/sfx/sfx_1a.asm"
|
|
INCLUDE "audio/sfx/sfx_1b.asm"
|
|
INCLUDE "audio/sfx/sfx_1c.asm"
|
|
INCLUDE "audio/sfx/sfx_1d.asm"
|
|
INCLUDE "audio/sfx/sfx_1e.asm"
|
|
INCLUDE "audio/sfx/sfx_1f.asm"
|
|
INCLUDE "audio/sfx/sfx_20.asm"
|
|
INCLUDE "audio/sfx/sfx_21.asm"
|
|
INCLUDE "audio/sfx/sfx_22.asm"
|
|
INCLUDE "audio/sfx/sfx_23.asm"
|
|
INCLUDE "audio/sfx/sfx_24.asm"
|
|
INCLUDE "audio/sfx/sfx_25.asm"
|
|
INCLUDE "audio/sfx/sfx_26.asm"
|
|
INCLUDE "audio/sfx/sfx_27.asm"
|
|
INCLUDE "audio/sfx/sfx_28.asm"
|
|
INCLUDE "audio/sfx/sfx_29.asm"
|
|
INCLUDE "audio/sfx/sfx_2a.asm"
|
|
INCLUDE "audio/sfx/sfx_2b.asm"
|
|
INCLUDE "audio/sfx/sfx_2c.asm"
|
|
INCLUDE "audio/sfx/sfx_2d.asm"
|
|
INCLUDE "audio/sfx/sfx_2e.asm"
|
|
INCLUDE "audio/sfx/sfx_2f.asm"
|
|
INCLUDE "audio/sfx/sfx_30.asm"
|
|
INCLUDE "audio/sfx/sfx_31.asm"
|
|
INCLUDE "audio/sfx/sfx_32.asm"
|
|
INCLUDE "audio/sfx/sfx_33.asm"
|
|
INCLUDE "audio/sfx/sfx_34.asm"
|
|
INCLUDE "audio/sfx/sfx_35.asm"
|
|
INCLUDE "audio/sfx/sfx_36.asm"
|
|
INCLUDE "audio/sfx/sfx_37.asm"
|
|
INCLUDE "audio/sfx/sfx_38.asm"
|
|
INCLUDE "audio/sfx/sfx_39.asm"
|
|
INCLUDE "audio/sfx/sfx_3a.asm"
|
|
INCLUDE "audio/sfx/sfx_3b.asm"
|
|
INCLUDE "audio/sfx/sfx_3c.asm"
|
|
INCLUDE "audio/sfx/sfx_3d.asm"
|
|
INCLUDE "audio/sfx/sfx_3e.asm"
|
|
INCLUDE "audio/sfx/sfx_3f.asm"
|
|
INCLUDE "audio/sfx/sfx_40.asm"
|
|
INCLUDE "audio/sfx/sfx_41.asm"
|
|
INCLUDE "audio/sfx/sfx_42.asm"
|
|
INCLUDE "audio/sfx/sfx_43.asm"
|
|
INCLUDE "audio/sfx/sfx_44.asm"
|
|
INCLUDE "audio/sfx/sfx_45.asm"
|
|
INCLUDE "audio/sfx/sfx_46.asm"
|
|
INCLUDE "audio/sfx/sfx_47.asm"
|
|
INCLUDE "audio/sfx/sfx_48.asm"
|
|
INCLUDE "audio/sfx/sfx_49.asm"
|
|
INCLUDE "audio/sfx/sfx_4a.asm"
|
|
INCLUDE "audio/sfx/sfx_4b.asm"
|
|
INCLUDE "audio/sfx/sfx_4c.asm"
|
|
INCLUDE "audio/sfx/sfx_4d.asm"
|
|
INCLUDE "audio/sfx/sfx_4e.asm"
|
|
INCLUDE "audio/sfx/sfx_4f.asm"
|
|
INCLUDE "audio/sfx/sfx_50.asm"
|
|
INCLUDE "audio/sfx/sfx_51.asm"
|
|
INCLUDE "audio/sfx/sfx_52.asm"
|
|
INCLUDE "audio/sfx/sfx_53.asm"
|
|
INCLUDE "audio/sfx/sfx_54.asm"
|
|
INCLUDE "audio/sfx/sfx_55.asm"
|
|
INCLUDE "audio/sfx/sfx_56.asm"
|
|
INCLUDE "audio/sfx/sfx_57.asm"
|
|
INCLUDE "audio/sfx/sfx_58.asm"
|
|
INCLUDE "audio/sfx/sfx_59.asm"
|
|
INCLUDE "audio/sfx/sfx_5a.asm"
|
|
INCLUDE "audio/sfx/sfx_5b.asm"
|
|
INCLUDE "audio/sfx/sfx_5c.asm"
|
|
INCLUDE "audio/sfx/sfx_5d.asm"
|
|
INCLUDE "audio/sfx/sfx_5e.asm"
|
|
INCLUDE "audio/sfx/sfx_5f.asm"
|
|
|
|
rept $c1
|
|
db $ff
|
|
endr
|