A shameless bit of self-promotion.
It’s 3 years since I got it into my head that I wanted to make a Spectrum game. I’d done BASIC in my salad days, but never machine code… How hard could it be?
I picked the ancient 1982 arcade game The Pit, which had never been ported to the Speccy and looked like a good fit. Here’s the original:
https://www.youtube.com/watch?v=mTIjYc-ZH-A
I spent a month drowning in ASM, but finally finished it… and here is what I came up with:
https://youtu.be/YQeyKqAeEaY?t=128
https://dokdave.itch.io/the-pit
My main goal, as well as learning machine code, was to get it as close as possible to the arcade - not easy given the Spectrum’s limitations.
Luckily, The Pit helped me out - its colour scheme is basically the Speccy palette. It is based on 8x8 blocks, like the Speccy. It’s horizontal res was similar as well. Only the vertical res was challenging.
In the end, I settled on having the screen flip between top and bottom, rather than be single screen. But it seems to work fine.
The most rewarding part of the project was focusing on the fine details - the weird title screen, the font, the high-score and instruction text.
And the biggest challenge was actually making the gameplay feel like the arcade. Not easy when you’re terrible at the game and can barely finish the first cavern.
Oh, and, of course, machine code…
Honestly, it feels a bit like a fever dream. It’s so different from the modern programming languages I’m used to. Needing to think of memory as something you actually need to care about and consider is so alien to me. No variables, as such; self-modifying code; considering how quickly you can get a new screen generated and copied to the “TV”… By the end of it, I was thinking in t-states and frames and little else.
It’s all gone now, of course, lost in a whirlwind of pandemic and other distractions. I doubt I could remember a tenth of the things I learned in that month…
But maybe I’ll get the urge one day and dust off the old assembler again. Maybe I’ll wonder anew at how the hell bedroom coders did it back in the 80s, without the convenience of modern IDEs, debugging and such.
As a nice bookend to this project, later that year I opened my copy of the Crash 2020 Annual and found this…
My fanboy scream probably registered on seismographs!
Oh wow. I’ll give that a whirl.
What tools/resources did you use?
To develop, I coded in Visual Studio code with an ASM extension for highlighting. I used the sjasmplus cross compiler to generate files that I loaded into the ZEsarUX emulator, which comes with lots of handy debugging tools. Honestly, being able to debug in VS code was the only thing that kept me sane… no idea how they worked without such modern luxuries!