New kid on the TZX block
Posted: Mon May 06, 2019 9:17 pm
Hi, my name is Michael.
I started out on the ZX81 and ZX Spectrum back in the day, progressing to the Amstrad CPC, then Amiga 500, and 1200.
Although I dabbled with BASIC on those machines, I never tried learning assembly. I remember thinking it would be way too hard to learn :/ Once I'd moved on to the PC in '94, assembly was a thing of the past.
I'd messed around with emulators ever since I got the PC, so those old arcade and speccy games always brought back fond memories, but with it also curiosity about how they were coded. Sometime around 2015 I started trying to find out more info and it was this that led me to Richard Dymond's excellent Skoolkit project where I found his Manic Miner disassembly!
I figured a good way to learn assembly would be to try porting Manic Miner to the C language. After a few months I had a working game, albeit without sound. I'd learned a lot about how assembly worked along with improving my basic C coding skills.
After this I started wondering how on earth did Richard manage to disassemble the game and started thinking about giving it a go myself. After false starts with both Cyclone and Chuckie Egg, I decided to change to a game that held more importance for me, and as a bonus it was only a 16K game. That was Jetpac!
I finished my disassembly at the end of 2018 and because I'd been watching Keith's videos for most of the year, I fancied trying to fix up Jetpac to run on multiple systems like he was doing in his vids.
My first task was to do some refactoring to try and make the game a little easier to run on different systems; things like removing the self-modifying code and de-optimising some of the more cryptic stuff -- the game now needs a 48K speccy!
I took break for a little while but a couple of weeks ago I started working on this again - setting up a build toolchain and moving away from the Pasmo assembler to VASM. Perhaps the first system I'll try will be the Amstrad CPC.
I don't know if I'll ever finish this project, but it's been a blast demystifying my childhood!
I started out on the ZX81 and ZX Spectrum back in the day, progressing to the Amstrad CPC, then Amiga 500, and 1200.
Although I dabbled with BASIC on those machines, I never tried learning assembly. I remember thinking it would be way too hard to learn :/ Once I'd moved on to the PC in '94, assembly was a thing of the past.
I'd messed around with emulators ever since I got the PC, so those old arcade and speccy games always brought back fond memories, but with it also curiosity about how they were coded. Sometime around 2015 I started trying to find out more info and it was this that led me to Richard Dymond's excellent Skoolkit project where I found his Manic Miner disassembly!
I figured a good way to learn assembly would be to try porting Manic Miner to the C language. After a few months I had a working game, albeit without sound. I'd learned a lot about how assembly worked along with improving my basic C coding skills.
After this I started wondering how on earth did Richard manage to disassemble the game and started thinking about giving it a go myself. After false starts with both Cyclone and Chuckie Egg, I decided to change to a game that held more importance for me, and as a bonus it was only a 16K game. That was Jetpac!
I finished my disassembly at the end of 2018 and because I'd been watching Keith's videos for most of the year, I fancied trying to fix up Jetpac to run on multiple systems like he was doing in his vids.
My first task was to do some refactoring to try and make the game a little easier to run on different systems; things like removing the self-modifying code and de-optimising some of the more cryptic stuff -- the game now needs a 48K speccy!
I took break for a little while but a couple of weeks ago I started working on this again - setting up a build toolchain and moving away from the Pasmo assembler to VASM. Perhaps the first system I'll try will be the Amstrad CPC.
I don't know if I'll ever finish this project, but it's been a blast demystifying my childhood!