diff options
-rw-r--r-- | engine/joypad.asm | 20 | ||||
-rwxr-xr-x | engine/palettes.asm | 7 | ||||
-rw-r--r-- | hram.asm | 2 |
3 files changed, 19 insertions, 10 deletions
diff --git a/engine/joypad.asm b/engine/joypad.asm index d2ad1c31..31e197e2 100644 --- a/engine/joypad.asm +++ b/engine/joypad.asm @@ -1,9 +1,13 @@ _Joypad:: +; hJoyReleased: (hJoyLast ^ hJoyInput) & hJoyLast +; hJoyPressed: (hJoyLast ^ hJoyInput) & hJoyInput + ld a, [hJoyInput] cp A_BUTTON + B_BUTTON + SELECT + START ; soft reset jp z, TrySoftReset + ld b, a - ld a, [hJoyHeldLast] + ld a, [hJoyLast] ld e, a xor b ld d, a @@ -13,15 +17,19 @@ _Joypad:: and b ld [hJoyPressed], a ld a, b - ld [hJoyHeldLast], a + ld [hJoyLast], a + ld a, [wd730] bit 5, a jr nz, DiscardButtonPresses - ld a, [hJoyHeldLast] + + ld a, [hJoyLast] ld [hJoyHeld], a + ld a, [wJoyIgnore] and a ret z + cpl ld b, a ld a, [hJoyHeld] @@ -41,11 +49,13 @@ DiscardButtonPresses: TrySoftReset: call DelayFrame - ; reset joypad (to make sure the - ; player is really trying to reset) + + ; deselect (redundant) ld a, $30 ld [rJOYP], a + ld hl, hSoftReset dec [hl] jp z, SoftReset + jp Joypad diff --git a/engine/palettes.asm b/engine/palettes.asm index 67afc12d..ed06cf4e 100755 --- a/engine/palettes.asm +++ b/engine/palettes.asm @@ -381,7 +381,7 @@ SendSGBPacket: ; 71feb (1c:5feb) LoadSGB: ; 7202b (1c:602b) xor a ld [wOnSGB], a - call Func_7209b + call CheckSGB ret nc ld a, $1 ld [wOnSGB], a @@ -440,7 +440,7 @@ PointerTable_72089: ; 72089 (1c:6089) dw DataSnd_725a8 dw DataSnd_725b8 -Func_7209b: ; 7209b (1c:609b) +CheckSGB: ; 7209b (1c:609b) ld hl, MltReq2Packet di call SendSGBPacket @@ -536,8 +536,7 @@ Func_7210b: ; 7210b (1c:610b) ret Wait7000: ; 7214a (1c:614a) -; each loop takes about 10 cycles so this routine actually loops through 70000 -; cycles. +; Each loop takes 9 cycles so this routine actually waits 63000 cycles. ld de, 7000 .loop nop @@ -58,7 +58,7 @@ hSCX EQU $FFAE hSCY EQU $FFAF hWY EQU $FFB0 -hJoyHeldLast EQU $FFB1 +hJoyLast EQU $FFB1 hJoyReleased EQU $FFB2 hJoyPressed EQU $FFB3 hJoyHeld EQU $FFB4 |