/next-go-mummy

Oh Mummy clone in NextBASIC

Primary LanguageJavaScript

Go Mummy - Spectrum Next clone

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:

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.


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 on IN 31. Also uses tests like IF %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