This is my working directory for a clone of Oh Mummy based on the CPC464 by Amsoft ported to the ZX Spectrum Next using NextBASIC.
The completed game is available at https://remysharp.itch.io/go-mummy (where you can donate if you'd like to… I'm sure you do!).
The full source code is also here with heavy documentation throughout explaining some of my decisions and how I structured my code which I hope can help you with your own development.
I also wrote a number of tools to help me develop this game:
- Sprite, tiles, audio and bitmap tools: https://zx.remysharp.com
- txt2bas, bas2txt and validator: https://github.com/remy/txt2bas
- VS Code extension for NextBASIC: https://github.com/remy/vscode-nextbasic
I've also completed a devlog here: https://remysharp.com/devlog/go-mummy
For the OG version, I've used the Internet Archive's copy of the Oh Mummy as reference.
- Sprites and tile maps created with my ZX Sprite Tools
- Coded mostly in VS Code using my NextBASIC VS Code extension
- Dev previews in Cspect then running hardware tests on my ZX Spectrum Next.
Also in this repository are the previous attempts at a NextBASIC version of Oh Mummy kept partly for learning, partly for my own amusement.
Numerically lower files are older, mummy-1.bas
being the oldest.
General way points:
- mummy-1 - has a working sprite, uses
INKEY$
for directions and block characters█
for the wall (.bas file) - mummy-2 - starts to introduce
TILE BANK
but also adding Kemptston joystick support via bitwise checks onIN 31
. Also uses tests likeIF %y MOD 48 <> 0 THEN RETURN
to check whether the player can move along an isle (.bas file) - mummy-3 - introducing baddies using an array to render, also using
DEFPROC
for a bit more organisation (.bas file) - mummy-4 - mostly a refactor to clean code and make it slightly more readable, adds tracking lives and combines keyboard and joystick movement (.bas file)
- mummy-5 - more code reorg, adding footsteps (wrongly aligned) and a lot of code optimisations specific to NextBASIC (.bas file)
- mummy-6 - finally solved logic for completing a circuit of a tomb (which is gnarly, also moves to
SPRITE CONTINUE
for better sprite rendering (.bas file) - tomb-check.js - JavaScript (my native tongue) code to solve tomb surrounding logic
- methods -
DEFPROC
code for working out when mummy's bumped into each other, but the cost of the function calls was too high so it became all inline code