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: 4040
Author: andrewbroad
Date: 03/04/2004
Subject: Re: MM-to-JSW conversion
dasse68 wrote:
>No! I would never sell my MM/JSW games for money. The free-software
> SORRY I am so lousy to understand english in many cases so I hope
> you have indulgence for that..
>
>> Jet Set Willy (in order to generate the new JSW:MM for the Party
>> Willy box-set),
>
> Are you going to sell it or what? :)
culture helps to keep the MM/JSW community alive today.
Box-set just means there are several TAP files in the release, since
I don't really want to release MM:JSW, the old JSW:MM, the new
JSW:MM, MirrorMM and MirrorJSW as separate entities.
Talking of the new JSW:MM (generated by SPECSAISIE MMtoJSW), I've
now done basic horizontal and vertical guardians, and items.
Which leaves only special effects such as Eugene, Kong-Beasts and
Skylabs to do - all of which I intend to simulate using vertical
guardians (each Skylab will be represented by just one VG, going up
as well as down, with an animation-mask of 000 rather than 011 - the
only thing that MMtoJSW will alter for VGs which happen to be
Skylabs).
Some differences between MM and JSW:
* Horizontal guardians which go left initially start on their
leftmost left-facing sprite rather than their rightmost left-facing
sprite, which means that a JSW horizontal guardian appears to start
one column to the left of its specified start-column.
* The path of a vertical guardian with the same data for start-row,
top row and bottom row, is slightly different in MM and JSW - and
even causes them to crash into the floor in the JSW conversion
of "Amoebatrons' Revenge" [17] and "Solar Power Generator" [18]!
Look into this I must...
* Items colour-cycle forwards in JSW [magenta, green, cyan, yellow]
but backwards in MM [yellow, cyan, green, magenta].
>> JSW horizontal guardians (each guardian in MM uses up oneEach room in JSW can have up to eight guardians (horizontal,
>> guardian-class, which refers to the one sprite-page associated
>> with the room it's in).
>
> sometimes I wish I was born in england so I could understand ALL
> english sentences.. ;)
vertical, arrows or ropes). I call these "guardian-instances"
because each one is an instance of a "guardian-class".
A regular JSW game can have up to 127 guardian-classes, which are
stored in a table separate from the rooms.
Each guardian-instance specifies the start-column (if it's a
horizontal guardian), column (if it's a vertical guardian or a rope)
or row (if it's an arrow), and also specifies the start-sprite
(within the sprite-page, which is specified in the guardian-class).
Each guardian-instance specifies which guardian-class it is an
instance of, and all the other data are specified in the guardian-
class.
Guardian-class data include which type of guardian it is (HG, VG,
rope or arrow), its colour-attribute, its row (if it's a HG), start-
row (if it's a VG), start-column (if it's an arrow), path-
boundaries, sprite-page and animation-mask.
A sprite-page is a 256-byte area of memory which stores the graphics
for guardian-classes which use that sprite-page. Any 256-byte area
whose start-address is divisible by 256 can be used as a sprite-
page, although many such areas are unsafe to edit because they are
used for other things (i.e. they can be read as sprite-pages, but
must not be overwritten).
>> MMtoJSW is (unlike MirrorMM and MirrorJSW) only semi-automatic.Semi-automatic means that the game generated by MMtoJSW has to be
>
> What do you mean by "semi-automatic" ?
post-edited by a human, in order to produce a working game. This is
because I'll need to make value-judgements about where to knock
holes in walls to set the exit to the next room, how to make up for
the fact that MMtoJSW converts crumbling floors to ordinary floors,
and other minor tweaks that I'm not prepared to work into the
conversion-algorithm.
It's not uncommon for a data-transformation program to be only semi-
automatic, as it's often desirable to leave the value-judgements to
humans rather than attempt to capture them by rules that may not
apply in all situations.
However, MirrorMM and MirrorJSW are fully automatic, as laterally
inverting the rooms does not involve value-judgements - maybe just
the odd tweak required for situations such as the Kong-Beast rooms
in MirrorMM (the positions of the switches are hard-wired into the
game-engine, and I don't know where in the code), the lower
horizontal guardian in "Conservatory Roof" causing infinite death in
MirrorJSW, and what to do about Maria, the bed and the toilet, which
are hard-wired into the JSW game-engine.
>> By hand will I be knocking holes in walls and setting theI was the first to convert MM to JSW, and JSW to MM, when I did it
>> connections from one room to the next, and deciding what to
>> convert crumbling floors to in each case!
>
> wow! sounds really cool! have someone made it before?
by hand in 1992-1996 - except for Richard Hallas
converting "Eugene's Lair" to JSW for _Join The Jet-Set!_ (1985).
The DrUnKeN mAsTeR included reinterpretations of the 20 MM caverns
in _Willy The Rogue_ (2002).
>> There's no fun like developing automatic transformations for MMThat I'm really enjoying writing a program to convert Manic Miner
>> and JSW. :-)
>
> and that means? :)
rooms to Jet Set Willy, and I really enjoyed writing my other
automatic transformation-programs: MirrorMM and MirrorJSW. For sure
will I write a program to convert Jet Set Willy to Manic Miner
(SPECSAISIE JSWtoMM) too - but not before Party Willy, because I'm
pretty much satisfied with my manual conversion (MM:JSW).
I wonder what automatic transformations I might consider in the
future? JSW II to JSW? JSW II to MM? Upside-down MM and JSW? MM and
JSW rotated through 90 degrees?
--
Dr. Andrew Broad
http://www.geocities.com/andrewbroad/
http://www.geocities.com/andrewbroad/spectrum/
http://www.geocities.com/andrewbroad/spectrum/willy/
