Dragons Hobbies Forum
Gaming => Video Games => Topic started by: Dragon on October 16, 2025, 23:50:21
-
Today I came across an article mentioning an educational game about developing game software.
https://hackaday.com/2025/10/16/emudevz-is-literally-a-software-game/
EmuDevz, a game in which you develop an 8-bit emulator by [Rodrigo Alfonso].
https://afska.github.io/emudevz/#/
I've never done anything with Assembly language before, so it's been an interesting experience. My progress today...
Intro
* Introduction (https://afska.github.io/emudevz/#/levels/getting-started-introduction?r=19)
* Quick Tutorial
* Architecture
Assembly
* Example Program
* Now It's Your Turn
* Reading From Memory
* Flags
* Branching (https://afska.github.io/emudevz/#/levels/assembly-addressing-modes-1-3?r=18)
-
"Scream through the memory addresses...." AAAAAAAAAAA ;D (https://afska.github.io/emudevz/#/levels/assembly-addressing-modes-2-3?r=31)
It took a while for me to get this to work because I was jumping back to the wrong spot. It had also been a couple weeks since doing anything with this, so I had forgotten some things. Fortunately, the "help" command will show all the instructions that have been taught so far.
LDA #$AA ; Load AA into [A] (Accumulator Register)
BNE @write ; branch aka jump to write
@write:
STA $4080,X ; Write the value of [A] into address 4080+[X]
INX ; Increment X by 1
CPX #$40 ; Compare [X] to the stopping point, 64 places (40 hexidecimal) and store the result in [Z]
BEQ @end ; If [Z] is equal to 1, jump to the end
JMP $4024 ; Otherwise, jump to the beginning of the loop
@end:
INY ; Increment Y just to show it's done
Next up... https://afska.github.io/emudevz/#/levels/assembly-addressing-modes-3-3?r=32