fixed inputs still missing sometimes, updated build script

This commit is contained in:
2019-01-06 09:39:25 +01:00
parent 07803eae64
commit 75e2589091
5 changed files with 37 additions and 29 deletions

View File

@@ -13,12 +13,9 @@ InitEdit:
ldh [SelectY], a
ret
EXPORT EditOldBuffer
SECTION "Edit old buffer", ROM0
EditOldBuffer:
call UpdateJoypad
ldh a, [JoypadDown]
and a, %1000
ret z

View File

@@ -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:
@@ -34,8 +44,11 @@ ReadJoypad:
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
ret
EXPORT InitJoypad
SECTION "Init joypad", ROM0
InitJoypad:
xor a
ldh [JoypadDown], a
ldh [JoypadPressed], a
ldh [JoypadWasPressed], a
; reset newly pressed
xor a
ldh [JoypadNewlyPressed], a
ret

View File

@@ -86,6 +86,7 @@ ENDC
call StartRender
call UpdateAutomata
call WaitRender
call UpdateJoypad
call EditOldBuffer
call SwapBuffers
jp .mainloop

View File

@@ -1,9 +1,10 @@
..\..\Assembler\rgbasm -i ..\..\Include\ -i Graphics\ -i Code\ -o Build\main.o Code\main.asm
..\..\Assembler\rgbasm -i ..\..\Include\ -i Graphics\ -i Code\ -o Build\data.o Code\data.asm
..\..\Assembler\rgbasm -i ..\..\Include\ -i Graphics\ -i Code\ -o Build\automata.o Code\automata.asm
..\..\Assembler\rgbasm -i ..\..\Include\ -i Graphics\ -i Code\ -o Build\render.o Code\render.asm
..\..\Assembler\rgbasm -i ..\..\Include\ -i Graphics\ -i Code\ -o Build\utils.o Code\utils.asm
..\..\Assembler\rgbasm -i ..\..\Include\ -i Graphics\ -i Code\ -o Build\nintendo-out.o Code\nintendo-out.asm
..\..\Assembler\rgbasm -i ..\..\Include\ -i Graphics\ -i Code\ -o Build\edit.o Code\edit.asm
..\..\Assembler\rgblink -n rom.sym -w -t -o rom.gb -d Build/main.o Build/data.o Build/automata.o Build/render.o Build/utils.o Build/nintendo-out.o Build/edit.o
..\..\Assembler\rgbasm %* -i ..\..\Include\ -i Graphics\ -i Code\ -o Build\main.o Code\main.asm
..\..\Assembler\rgbasm %* -i ..\..\Include\ -i Graphics\ -i Code\ -o Build\data.o Code\data.asm
..\..\Assembler\rgbasm %* -i ..\..\Include\ -i Graphics\ -i Code\ -o Build\automata.o Code\automata.asm
..\..\Assembler\rgbasm %* -i ..\..\Include\ -i Graphics\ -i Code\ -o Build\render.o Code\render.asm
..\..\Assembler\rgbasm %* -i ..\..\Include\ -i Graphics\ -i Code\ -o Build\utils.o Code\utils.asm
..\..\Assembler\rgbasm %* -i ..\..\Include\ -i Graphics\ -i Code\ -o Build\nintendo-out.o Code\nintendo-out.asm
..\..\Assembler\rgbasm %* -i ..\..\Include\ -i Graphics\ -i Code\ -o Build\edit.o Code\edit.asm
..\..\Assembler\rgbasm %* -i ..\..\Include\ -i Graphics\ -i Code\ -o Build\joypad.o Code\joypad.asm
..\..\Assembler\rgblink -n rom.sym -w -t -o rom.gb -d Build/main.o Build/data.o Build/automata.o Build/render.o Build/utils.o Build/nintendo-out.o Build/edit.o Build/joypad.o
..\..\Assembler\rgbfix -t "Game of Life" -v -p 0 rom.gb

BIN
rom.gb

Binary file not shown.