Resource centre for ZX Spectrum games
using Manic Miner and Jet Set Willy game engines
Archive of the
Manic Miner & Jet Set Willy Yahoo! Group
messages
|
|
||
|
|
Message: 6835
Author: john_elliott_uk
Date: 09/04/2015
Subject: Re: Mutant Monty
Thread necromancy!
Mutant Monty and Mutant Monty And The Temple Of Doom (hereinafter MMTD) are the work of two different authors. That's quite clear when you look at the coding style, as well as their behaviour.
Mutant Monty has 40 levels, each 256 bytes, starting at 0A000h. Format of a level is:
0000 DB 'name' ; 32 characters
0020 DB tilemap; 160 sprites forming the level. Gold is hardcoded as sprite 0x36.
00C0 DB x ; Monty's initial x position
00C1 DB y ; Monty's initial y position
00C2 DB z ; Unknown
00C3 DB guardians: up to 10, each 6 bytes.
The colour of a sprite in Mutant Monty is intrinsic to it; so gold is always bright yellow, the first-screen guardians are always green/cyan, etcetera. If different frames of a guardian have different colours, that results in colour-cycling guardians.
MMTD has 20 rooms, each 500 bytes. Or rather, it has 16 rooms, because rooms 17-20 are blank. A room is formed:
0000 DB room data. This is a 0-terminated sequence of 6-byte drawing instructions:
{ row, column, attribute, tile number, count, horizontal/vertical flag }
A room can have at most one ring (collectable item) in it; if present, this must be the first drawing instruction.
Cell behaviour is hardwired to its colour: magenta on black for fire, red/green/cyan on black for water, yellow on black for items, black or white on black for air, other values earth.
012C DB guardian table (working copy)
0190 DB guardian table (original copy). Each guardian is 15 bytes long; where Matthew Smith would use a single bit to indicate something, Paul Watson uses an entire byte. The guardian list is 0-terminated.
MMTD contains a lot of seemingly unused space, plus two complete Spectrum screens which use up nigh on 13k of storage. Now, if those screens could be shunted off to one of the other 128k memory banks, it might be possible to use their space for more rooms, or more sprites, or try to introduce conveyors or ramps or ropes. There's also an odd little bit of code that distinguishes between damage from fire, damage from guardians or damage from falling -- and then deducts the same amount from Monty's energy each time.
