Dr. Andrew Broad
Sinclair ZX Spectrum
Download Page
Advanced MM/JSW Trainer

22nd May 2006: v0.1.0 beta-released; updates in orange below.
20th May 2006: v0.0.9 beta-released; updates in magenta below.
18th May 2006: v0.0.8 beta-released; updates in red below.

Quirky features are the magic of MM/JSW for me, and yet their deliberate exploitation has proved to be off-putting when MM/JSW games are introduced to the wider Spectrum community.

What the scene needs, IMO, is a game to demonstrate quirky features in their minimal forms, to train the lay player in the more arcane aspects of game-mechanics.

Recent discussions have suggested to me that such a game is now long overdue, so I have promoted it in my list of priorities, ahead of the other games I plan to write. Having now started Advanced MM/JSW Trainer, I plan to write the bulk of it in April 2006, and to put my other games on hold until Advanced MM/JSW Trainer is up to v1.0.0.

I intend to keep the development-process as open to the public as possible, so I'm uploading the latest revision of Advanced MM/JSW Trainer here after every day of working on it, so anyone will have ample opportunities for making suggestions.

Click to download Advanced MM/JSW Trainer v0.1.0:

  • [v0.1.0] New room "Sticky conveyors" [15]; placed an additional conveyor at the bottom-left of "Basic conveyor-mechanics" [13] (see ROOMS_JSW64.TXT).
  • [v0.0.9] New room "Stopping on conveyors" [14] (see ROOMS_JSW64.TXT).
  • [v0.0.9] Harmful-guardians POKE applied on a room-by-room basis (see TECHNICA.TXT).
  • [v0.0.8] New room "Basic conveyor-mechanics" [13] (see ROOMS_JSW64.TXT).
  • This is a beta-revision which I plan to update regularly, so please do not distribute Advanced MM/JSW Trainer elsewhere until I release v1.0.0.


    I have created the main variant of Advanced MM/JSW Trainer as a JSW64 game, as this will allow me to cover almost all the features of MM and JSW in a single game.

    I have chosen JSW64 Variant V because it allows up to 128 rooms, and allows the cell-type of each cell-class to be set on a room-by-room basis, while I don't anticipate needing more than 8 cell-classes per room (the other variants would give me more cell-classes per room, but their cell-types would have to be set globally).

    But JSW64 doesn't allow you to combine the behaviours of cell-types by giving them the same colour-attribute, and there's no way to have invalid ramps, either. So I have created a JSW48 annex for these and any other features that JSW64 can't handle. The features that JSW64 adds to JSW48 are well-documented, but the JSW48 annex will be a useful illustration of what you lose with JSW64.

    I have also created a MM48 annex for the remaining features that JSW48 and JSW64 cannot handle: the different Earth-cell behaviour; combining Crumbly with other cell-types (Air, Earth and Conveyor), and the quirky behaviour when walking/jumping/falling off the edges of the screen (assuming I decide not to patch-vector this into a JSW64 room).

    I might even do a JSW II annex. The JSW II game-engine was recoded from scratch, and contains many fewer quirks than the MM and JSW I engines, but there are some quirky features that are unique to JSW II.

    General design-principles

    All room-connections shall be two-way, and will probably all be teleporters (except for the inter-room features), and the teleporters in each room shall be close together. This is to allow the selective user to navigate as quickly as possible from the start-room to the room (s)he wants.

    Each teleporter shall not be invisible, but shall be marked with a thing-like-a-portal-sprite (technically four cells, two switch-guardians, or two stationary guardians with a harmless-guardian patch-vector) that shall give a visual clue to its destination (e.g. a picture of an Earth-cell for the Earth-cells trainer).

    The teleporters shall be coloured as follows:

    When entering a room, the room-setup patch-vector recolours the teleporter that led to it dull cyan.

    Cell-graphics shall be the same in every room, and the game will also serve as a source of screenshots for my Quirky Features page.

    The cells' PAPER-colours shall alternate between black and blue in a chessboard-pattern throughout the whole game, to facilitate counting the number of Air-cells. Rather than having twice the number of cell-classes per room, I have written a patch to achieve this, applicable to JSW64, JSW48, MM48 and hopefully even JSW II. The user is given the option to enable or disable this patch in the BASIC loader, along with infinite lives.

    For each feature that does not apply to all game-engines, the room for that feature shall display an indicator (implemented as a stationary guardian, probably a switch) for each game-engine to which it does apply. Each such indicator shall be one of the following:

    A game-engine indicator (or the lack of one) does not mean that the room would convert perfectly to (all) the game-engine(s) specified - only that the essential features of the room are applicable to those game-engine(s).

    JSW II is not covered by the above indicators, because its game-mechanics are radically different. Thus the lack of an indicator, or the JSW indicator, does not mean that a feature is applicable to JSW II.

    Room-ideas: JSW64 main game

    I will divide the game into various categories, with a cluster of rooms for each category, and a teleporter to each category from the start-room ("Main menu" [0]).

    The numbers below correspond roughly to room-numbers, but some of them may be merged or split (candidates for merging are marked with '^'), and new rooms may be inserted.

    All features on my Quirky Features page are included here, but not vice versa (yet). I have tried to use the same wording wherever possible to describe each feature that is common to both pages, to facilitate looking up text-diagrams.

    Room-ideas so far (those in "quotes" have already been implemented and assigned the corresponding room-numbers):

    1. "Main menu"
    2. "Master Bedroom"
    3. Water-cells and basic jumping

    4. "Water-cells and basic jumping"
    5. "Water-cells: Pitfalls to avoid"
    6. Earth-cells

    7. "Earth-cells: Snagging your head"
    8. "Jumping into Earth-cells"
    9. "Jumping left thru' overhead ECs"
    10. "Walking left thru' head-high ECs"
    11. "Columns of alternate Earth-cells"
    12. Fire-cells

    13. "Fire-cells"
    14. "Fire-cells: Pitfalls to avoid"
    15. "Fire-cells: Landing in adj cells"
    16. "Trap-cells (harmless Fire-cells)"
    17. Conveyors

    18. "Basic conveyor-mechanics"
    19. "Stopping on conveyors"
    20. "Sticky conveyors"
    21. Ramps

    22. Jumping through ramps: when precisely you can jump through the ramp, and when it catches you. Jumping over Fire-cells from the bottom step of a ramp. Doing a 2x4 jump from the bottom step of a ramp. Falling onto the bottom step of a ramp from a height of 4 cell-rows.
    23. Jumping into Ramp-cells.
    24. Jumping out of the underside of a ramp.
    25. Conveyor-Ramps.
    26. Walking up through Earth-cells using ramps, and pressing jump to avoid doing so.
    27. Effects of \ and / ramps that are horizontally adjacent.^
    28. Crumbly cells

    29. The trick of having two adjacent columns of Crumbly cells, where the player has to come down on one side only, leaving the other as an escape-route.^
    30. Jumping onto and off a Crumbly cell, then falling back down onto it and walking off (first usage).^
    31. Jumping onto and off a Crumbly cell, then falling back down onto it and walking off (second usage).^
    32. Fast-crumbling cells that do not leave ghosts.
    33. Fast-crumbling cells that do leave ghosts.
    34. Trampolines

    35. Trampolines. The way you can walk on to them and still jump straight up as well as diagonally.
    36. Conventional guardians

    37. Basic avoidance of HGs and VGs (which pass through items without collision), including standing on the very edge of a platform and facing in to avoid a HG, and having to stand far enough back to jump over a VG.
    38. Having to stand in one cell-column to jump up past a VG, including VGs whose animation-phase varies between successive occurrences of the same combination of position and direction, such that it will kill you in one animation-phase but not another.
    39. HGs which straddle cell-rows, and jumping over a bird in the cell-row above Willy.^
    40. HGs which go off the vertical edges of the screen, including one which has a right-boundary of 31.
    41. Jumping over a short HG with Earth-cells four cell-rows above the platform.^
    42. Passing through forcefields (stationary VGs with slow animation, which are blank for six sprite-frames).
    43. Slow HGs (MM, JSW128 and JSW64).
    44. Ultrafast VGs.
    45. Skylabs (MM and JSW64).
    46. Eugene (MM and JSW64): which item to collect last.
    47. Guardians which can pass through non-Air cells without pixel-collision, including a time-frame perfect fall onto a platform with a vertical guardian going into it.
    48. Guardians with full pixel-patterns in Water-cells which the player can stand on the edge of and jump up.
    49. Guardians which use memory that changes during play as their sprite-pages, e.g. video RAM (#4000-5AFF) or JSW's runtime buffers - whatever causes the most dramatic changes in the sprites' appearance as Willy and the guardians move around the screen (this room may be dropped).^
    50. JSW128 guardians

    51. Fast HGs (JSW128 and JSW64).
    52. Diagonal guardians.^
    53. JSW64 guardians

    54. Switches.^
    55. Triggers.^
    56. Vanishing walls.^
    57. Kong Beast room.
    58. Rigor Mortis.
    59. Stoppers.
    60. Lifts (guardian-type #58).^
    61. Droplets (guardian-type #78).^
    62. Other experimental guardian-types (#68 and #D8).^
    63. Arrows

    64. Hiding from arrows by standing in a non-Air cell, or an inkless non-white guardian.
    65. Kari Krišníková is thin enough to walk through an arrow at neck-height without collision if she times it correctly.
    66. Bouncing arrows (eight arrows giving the illusion of one).
    67. Harmless and harmful collisions with conventional guardians (a harmful collision imposes a time-limit on the room).
    68. Invalid arrows.
    69. Ropes

    70. Jumping up off the top of the screen from a rope which stops you climbing that high (in a room [r] whose up-exit is r itself). Jumping off a rope onto a stand-onable cell that is as far away as possible (at (6,27) for a standard rope in column 16). Falling off a rope into a 2-column gap that is in the most awkward position (columns 21/22 for a standard rope in column 16). Jumping into Water-cells off a rope. Jumping through Earth-cells off a rope. Walking into Earth-cells off a rope. Jumping for items so that you land on the same rope again after collecting them.
    71. Avoiding Fire-cells as you jump off a rope.
    72. A rope which collides with other pixels already on the screen and picks you up from wherever you are.
    73. Non-swinging ropes.
    74. A killer-rope.
    75. A rope which goes beyond the vertical edges of the screen.
    76. Using ropes to pass through Earth-cells.
    77. The rope-teleport bug (when I understand it well enough to induce it at will - probably not for v1.0).
    78. Edges of the screen

    79. Jumping left/right from the very top-left/right corner of the screen takes you immediately to the room above the room to the left/right.
    80. Entering a room inside a Fire-cell such that you can escape from it if you move immediately (both variants in the same room).
    81. Being able to jump a gap of six cells when you enter a room.
    82. ILBs in the leftmost or rightmost cell-column that dump you even if they're blocked, if you jump through them from the room to the left/right.^
    83. Items

    84. Jumping for items that are sandwiched between Earth- and Fire-cells.
    85. Items in Crumbly cells, including one where you have to jump off after seven time-frames or you'll fall to your death.
    86. White-ink guardians collect items for you (show a HG, a VG and an arrow all collecting items in Water-cells). Willy can't collect items whilst standing in the colour-attribute of an inkless guardian-sprite.
    87. Item below portal (see The Sixteenth Cavern).^
    88. If the portal is already flashing, you don't need to collect the items.
    89. Items only appear when you enter a room via an exit that gives the room-number directly, as opposed to modulo 64; therefore, room-exits greater than 63 (in a game-engine that only supports 64 rooms) cause items not to appear.^
    90. Special effects

    91. Solar power (and limited air-supply): a full demonstration of absorption and deflection, including the effect of items that have the colour-attribute of Air or of Earth for one frame of their colour-cycle.
    92. Fall without dying.
    93. Superjump (including quirky interactions with Earth-cells and Trampolines).

    94. Applying arbitrary POKEs and patches is a possibility for future revisions of Advanced MM/JSW Trainer, but not for v1.0.0 because I wouldn't know when to stop and release the game!

      Invisible challenges

      A JSW64:V room can only have 13 guardians, so the teleporter to this cluster in "Main menu" [0] will be marked with Water-cells.
    95. Invisible platforms, but the player and items are visible.
    96. White-PAPER Air makes the player invisible.
    97. Invisible guardians (perhaps with hints to make it fairer).
    98. An invisible rope.
    99. Invisible items (room cannot be escaped until you've collected them all).
    100. Toilet-run

      These rooms will use patch-vectors to apply runtime POKE 34271,2 so that the player can practise toilet-run mechanics without having bed-completed the game.
    101. If Willy falls onto a stand-onable cell, he can stop by holding left.
    102. Willy can stop by pressing 'P', and can stop and face left by pressing 'P' and left together. This room will train Willy to avoid vertical guardians using both methods.
    103. A right-conveyor stops Willy, but he can run forward by pressing any right-key except 'P'. He can also face left by pressing left. This room will train Willy to avoid vertical guardians using both methods.
    104. If Willy falls onto a left-conveyor during the toilet-run, or presses 'P' whilst running over a left-conveyor, he stops and cannot move; this could be exploited by having an invalid arrow take out the conveyor, or possibly allowing Willy to run onto a vertical lift.
    105. Willy cannot stop whilst running over a sticky conveyor. If he falls onto a sticky conveyor, he is trapped as per left-conveyors.
    106. Willy can stop on a rope by holding 'P' - and in some cases, left - and can thus control where he falls off the rope. This could be used to choose between a left-conveyor and a right-conveyor, with a time-limit in case he gets stuck.

    Room-ideas: JSW48 annex

    1. Main menu.

      Combined cell-types (same colour-attributes)

    2. Earth-Air: Willy falls through it, but cannot walk or jump through it.
    3. Ramp-Air (aka springy platforms): Willy hops up into the cell-row above when walking into an Air-cell to the {right/left} of his legs if the ramp-direction is {/,\}; a stand-onable cell that is horizontally adjacent to an Air-cell behaves as Ramp.
    4. Conveyor-Air: stand-onable cells behave as Conveyor if he is also standing on top of an Air-cell.
    5. Earth-Fire: Willy cannot walk or jump through it, and it kills him if he stands on it, or if he tries to walk or jump through it via a quirky feature.
    6. Earth-Ramp: Willy can walk diagonally along it, but cannot jump through it or walk the wrong way through it (except as per the quirky features for Earth-cells).
    7. Earth-Conveyor: behaves as Earth except that Willy is conveyed when he stands on it.
    8. Conveyor-Ramp-Air: combines the behaviours of Ramp-Air and Conveyor-Air.
    9. Earth-Conveyor-Ramp: combines the behaviours of Earth-Ramp and Conveyor-Ramp.
    10. Conveyors

    11. Ghost-conveyor (the conveyor-animation extends beyond the bottom-right of the playing-area).
    12. Invalid ramps

      Lifts? (when implemented)

      Vertical conveyors? (when implemented)

      Features from Geoff-mode?

      Features from Erix1-mode?

    Room-ideas: MM48 annex

      Earth-cell behaviour

    1. Earth-cells: you can't jump through overhead Earth-cells, walk left through Earth-cells at head-height, jump and land under an Earth-cell, or collect items sandwiched between an Earth-cell and a Fire-cell.
    2. Using an overhead Earth-cell to jump left into an Earth-cell at leg-height.
    3. Combined cell-types (same colour-attributes)

    4. Crumbly Air: any on-pixels in Air's pixel-pattern will crumble. The only application of this which affects gameplay would be to remove Crumbly-Air cells from a guardian's path.
    5. Crumbly Earth: behaves as Earth, but crumbles when Willy stands on it.
    6. Crumbly Conveyor: when Willy stands on it, it both crumbles and conveys him - leaving a smear if the conveyor is animated!
    7. Crumbly Earth-Conveyor: combines the behaviours of Crumbly Earth and Earth-Conveyor.
    8. Crumbly Fire: jumping over a Crumbly-Fire cell so as to land just past it causes it to crumble, as in MM4's "Dotty"!
    9. Edges of the screen

    10. Walking off the right edge of the screen moves down down a cell-row; walking off the left edge moves you up a cell-row.
    11. Falling off the bottom of the screen cannot be repeated in the same column.
    12. Jumping up off the top of the screen gives you something to stand on from lower than you'd think.
    13. Standing on a Crumbly cell in row 0 causes row 8 to crumble!
    14. Guardians

    15. A vertical guardian kills you if it collides with an item.
    16. Eugene kills you if he collides with an item.
    17. A proper Kong Beast room: colour-based collision-detection for switches, and proper opening walls.
    18. Items

    19. Invisible items (watch the score!).
    20. Air-supply

    1. An infinite air-supply causes the Spectrum to lock up when you enter the portal.

    Room-ideas: JSW II annex

    I plan to import all the rooms from the JSW64 main game into JSW II, to see which patterns still apply, and keep those rooms. I will then add rooms for the quirky features of JSW II.

    To do

    Email me 1