From 75e2589091665676dafc22bd3d79c97ad086631e Mon Sep 17 00:00:00 2001 From: Daniel Borges Date: Sun, 6 Jan 2019 09:39:25 +0100 Subject: [PATCH] fixed inputs still missing sometimes, updated build script --- Code/edit.asm | 5 +---- Code/joypad.asm | 43 ++++++++++++++++++++++++++----------------- Code/main.asm | 1 + build.bat | 17 +++++++++-------- rom.gb | Bin 32768 -> 32768 bytes 5 files changed, 37 insertions(+), 29 deletions(-) diff --git a/Code/edit.asm b/Code/edit.asm index 256bb59..db04293 100644 --- a/Code/edit.asm +++ b/Code/edit.asm @@ -13,12 +13,9 @@ InitEdit: ldh [SelectY], a ret - EXPORT EditOldBuffer SECTION "Edit old buffer", ROM0 -EditOldBuffer: - call UpdateJoypad - +EditOldBuffer: ldh a, [JoypadDown] and a, %1000 ret z diff --git a/Code/joypad.asm b/Code/joypad.asm index 809aa82..2d1eba8 100644 --- a/Code/joypad.asm +++ b/Code/joypad.asm @@ -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 diff --git a/Code/main.asm b/Code/main.asm index 02ad584..bd68ee7 100644 --- a/Code/main.asm +++ b/Code/main.asm @@ -86,6 +86,7 @@ ENDC call StartRender call UpdateAutomata call WaitRender + call UpdateJoypad call EditOldBuffer call SwapBuffers jp .mainloop diff --git a/build.bat b/build.bat index e5f3fc6..67100a2 100644 --- a/build.bat +++ b/build.bat @@ -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 \ No newline at end of file diff --git a/rom.gb b/rom.gb index de1b9c6c94c319cae5889a9e216226ec6c7ac3df..bac0aefbfb32cf296371b29cc8b6824a105a54e6 100644 GIT binary patch delta 377 zcmYk1u}eZx6voeeYMNSCGejc6=g`n%M$y#Gig@kOT3fZ%Qb-QICMC7ZHxx~_2hVsz zYg9&$xYVC;f)LuSg8n`VJn5`t**zoJ z)sb4SFvZ?bk)a&S43GffA0UGoEDVwW^yZ&1kSg#ss^cOq$Z!@867X0o!%Z;cCtLOj z-=O>w_$p-{oM$Sg_!Q-J!joX-;8EZexT}#ch}@>gZ)@*fpYcqR5@{O5x$BVD`?Oc@ zg?8!8xW5m(v$vBji$mI+>)crGKPBYFKyRG5X=UdZUo@cS delta 270 zcmZo@U}|V!njouXC-R`tPUt~{9pi)l>wkaXKl!0y`-w6Ji65U&Rw;2;Y*hGpQi6>E z1SY!Ib4n=*gT#KEoZQG`IEm3OkAWGi@d5wYZoV>x^$#5Eo;+|@WSAhB&C4jjc=i~B zB13~%kJ3}+`X9A3*fxshFX^9@ErCZ-omK(@?e0cP{faV(0=jA5G_*p(QW zG+9APCVQ~X+8oF^ossD{Cy>8zaxRzoExBh|J$<2lQ{RNX7 G_