fixed inputs still missing sometimes, updated build script
This commit is contained in:
@@ -1,11 +1,21 @@
|
||||
INCLUDE "hardware.inc"
|
||||
|
||||
EXPORT JoypadDown, JoypadPressed
|
||||
Section "Joypad memory", HRAM
|
||||
; Bits 0..7 are A, B, Select, Start, Right, Left, Up, Down
|
||||
JoypadPressed: ds 1
|
||||
JoypadWasPressed: ds 1
|
||||
JoypadNewlyPressed: ds 1
|
||||
JoypadDown: ds 1
|
||||
|
||||
EXPORT InitJoypad
|
||||
SECTION "Init joypad", ROM0
|
||||
InitJoypad:
|
||||
xor a
|
||||
ldh [JoypadDown], a
|
||||
ldh [JoypadPressed], a
|
||||
ldh [JoypadNewlyPressed], a
|
||||
ret
|
||||
|
||||
EXPORT ReadJoypad
|
||||
SECTION "Read Joypad", ROM0
|
||||
ReadJoypad:
|
||||
@@ -33,9 +43,12 @@ ReadJoypad:
|
||||
; complement so that active buttons read as 1
|
||||
or a, b
|
||||
cpl
|
||||
|
||||
; store currently pressed buttons
|
||||
ldh [JoypadPressed], a
|
||||
|
||||
; add to currently pressed buttons
|
||||
ld b, a
|
||||
ldh a, [JoypadNewlyPressed]
|
||||
or a, b
|
||||
ldh [JoypadNewlyPressed], a
|
||||
|
||||
; reset joypad
|
||||
ld a, $30
|
||||
@@ -43,27 +56,23 @@ ReadJoypad:
|
||||
|
||||
ret
|
||||
|
||||
EXPORT UpdateJoypad
|
||||
SECTION "Update joypad", ROM0
|
||||
UpdateJoypad:
|
||||
; compute & store just pressed buttons
|
||||
ldh a, [JoypadPressed]
|
||||
ldh a, [JoypadNewlyPressed]
|
||||
ld b, a
|
||||
ldh a, [JoypadWasPressed]
|
||||
ldh a, [JoypadPressed]
|
||||
cpl
|
||||
and a, b
|
||||
ldh [JoypadDown], a
|
||||
|
||||
; update was pressed
|
||||
; update pressed
|
||||
ld a, b
|
||||
ldh [JoypadWasPressed], a
|
||||
ldh [JoypadPressed], a
|
||||
|
||||
; reset newly pressed
|
||||
xor a
|
||||
ldh [JoypadNewlyPressed], a
|
||||
|
||||
ret
|
||||
|
||||
EXPORT InitJoypad
|
||||
SECTION "Init joypad", ROM0
|
||||
InitJoypad:
|
||||
xor a
|
||||
ldh [JoypadDown], a
|
||||
ldh [JoypadPressed], a
|
||||
ldh [JoypadWasPressed], a
|
||||
ret
|
||||
|
||||
Reference in New Issue
Block a user