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: 7198
Author: rushforthian
Date: 02/06/2018
Subject: Re: ANNOUNCE: Party Willy [Special Edition 2007]
Andrew wrote:
> * reniM cinaM: a laterally-inverted version of MM, generated by a program called MirrorMM which will be > released in the future as part of Version 1.3 of my SPECSAISIE toolkit (SPECSAISIE 1.3 is currently > available as a beta-version). I've even worked out how to edit the title-screen tune, the switch-behaviour in > the Kong-Beast rooms, and mirror the solar beam!
The switch patch in reniM cinaM is imperfect - Willy must be aligned so that the top-right cell occupied by his sprite coincides with the location of the switch in the attribute buffer. In the original MM, either the top-left or top-right of Willy's sprite can coincide with the switch in order to flip it.
You can prove this difference in behaviour by placing a Fire cell immediately to the left of the switch. In MM, it is possible to flip the switch by moving Willy up to the high platform to the right of the switch, standing far enough back (so that he won't hit the new Fire cell), and then jumping leftwards (although he will fall short of the platform on the descent after flipping the switch, and drop a fatal distance, you can see the opening wall start to open before he lands).
In original MM, there are the following commands at #921E-9220: INC A
AND #FE
In reniM cinaM, this has been modifed to: INC A AND #FF Which caters for the fact that, in a mirrored game, the switch has been moved from an even to an odd coordinate. (Without which, flipping the switch is completely impossible whichever angle Willy hits it from!) However, as described above, that is only a partial fix.
But I have now come up with a comprehensive fix, which allows a switch to be located in any location for which the low byte of the switch's coordinates has an odd value: NOP (replacing the INC A) OR #01 (replacing the AND gate)
