mirror of
https://github.com/thornAvery/kep-hack.git
synced 2025-09-17 02:40:50 +12:00
Split out joypad code from main.asm.
This commit is contained in:
parent
6d8c6055b5
commit
b32abf1f16
51
engine/joypad.asm
Normal file
51
engine/joypad.asm
Normal file
|
@ -0,0 +1,51 @@
|
||||||
|
_Joypad::
|
||||||
|
ld a, [hJoyInput]
|
||||||
|
cp A_BUTTON + B_BUTTON + SELECT + START ; soft reset
|
||||||
|
jp z, TrySoftReset
|
||||||
|
ld b, a
|
||||||
|
ld a, [hJoyHeldLast]
|
||||||
|
ld e, a
|
||||||
|
xor b
|
||||||
|
ld d, a
|
||||||
|
and e
|
||||||
|
ld [hJoyReleased], a
|
||||||
|
ld a, d
|
||||||
|
and b
|
||||||
|
ld [hJoyPressed], a
|
||||||
|
ld a, b
|
||||||
|
ld [hJoyHeldLast], a
|
||||||
|
ld a, [wd730]
|
||||||
|
bit 5, a
|
||||||
|
jr nz, DiscardButtonPresses
|
||||||
|
ld a, [hJoyHeldLast]
|
||||||
|
ld [hJoyHeld], a
|
||||||
|
ld a, [wJoyIgnore]
|
||||||
|
and a
|
||||||
|
ret z
|
||||||
|
cpl
|
||||||
|
ld b, a
|
||||||
|
ld a, [hJoyHeld]
|
||||||
|
and b
|
||||||
|
ld [hJoyHeld], a
|
||||||
|
ld a, [hJoyPressed]
|
||||||
|
and b
|
||||||
|
ld [hJoyPressed], a
|
||||||
|
ret
|
||||||
|
|
||||||
|
DiscardButtonPresses:
|
||||||
|
xor a
|
||||||
|
ld [hJoyHeld], a
|
||||||
|
ld [hJoyPressed], a
|
||||||
|
ld [hJoyReleased], a
|
||||||
|
ret
|
||||||
|
|
||||||
|
TrySoftReset:
|
||||||
|
call DelayFrame
|
||||||
|
; reset joypad (to make sure the
|
||||||
|
; player is really trying to reset)
|
||||||
|
ld a, $30
|
||||||
|
ld [rJOYP], a
|
||||||
|
ld hl, hSoftReset
|
||||||
|
dec [hl]
|
||||||
|
jp z, SoftReset
|
||||||
|
jp Joypad
|
52
main.asm
52
main.asm
|
@ -1940,57 +1940,7 @@ Func_7c18: ; 7c18 (1:7c18)
|
||||||
|
|
||||||
SECTION "bank3",ROMX,BANK[$3]
|
SECTION "bank3",ROMX,BANK[$3]
|
||||||
|
|
||||||
_Joypad::
|
INCLUDE "engine/joypad.asm"
|
||||||
ld a, [hJoyInput]
|
|
||||||
cp A_BUTTON + B_BUTTON + SELECT + START ; soft reset
|
|
||||||
jp z, TrySoftReset
|
|
||||||
ld b, a
|
|
||||||
ld a, [hJoyHeldLast]
|
|
||||||
ld e, a
|
|
||||||
xor b
|
|
||||||
ld d, a
|
|
||||||
and e
|
|
||||||
ld [hJoyReleased], a
|
|
||||||
ld a, d
|
|
||||||
and b
|
|
||||||
ld [hJoyPressed], a
|
|
||||||
ld a, b
|
|
||||||
ld [hJoyHeldLast], a
|
|
||||||
ld a, [wd730]
|
|
||||||
bit 5, a
|
|
||||||
jr nz, DiscardButtonPresses
|
|
||||||
ld a, [hJoyHeldLast]
|
|
||||||
ld [hJoyHeld], a
|
|
||||||
ld a, [wJoyIgnore]
|
|
||||||
and a
|
|
||||||
ret z
|
|
||||||
cpl
|
|
||||||
ld b, a
|
|
||||||
ld a, [hJoyHeld]
|
|
||||||
and b
|
|
||||||
ld [hJoyHeld], a
|
|
||||||
ld a, [hJoyPressed]
|
|
||||||
and b
|
|
||||||
ld [hJoyPressed], a
|
|
||||||
ret
|
|
||||||
|
|
||||||
DiscardButtonPresses:
|
|
||||||
xor a
|
|
||||||
ld [hJoyHeld], a
|
|
||||||
ld [hJoyPressed], a
|
|
||||||
ld [hJoyReleased], a
|
|
||||||
ret
|
|
||||||
|
|
||||||
TrySoftReset:
|
|
||||||
call DelayFrame
|
|
||||||
; reset joypad (to make sure the
|
|
||||||
; player is really trying to reset)
|
|
||||||
ld a, $30
|
|
||||||
ld [rJOYP], a
|
|
||||||
ld hl, hSoftReset
|
|
||||||
dec [hl]
|
|
||||||
jp z, SoftReset
|
|
||||||
jp Joypad
|
|
||||||
|
|
||||||
INCLUDE "data/map_songs.asm"
|
INCLUDE "data/map_songs.asm"
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue