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: 5800
Author: andrewbroad
Date: 14/04/2006
Subject: Re: Guardian-boundaries / Walking through arrows / Ropes
I have updated my Advanced MM/JSW Trainer page with Daniel Gromann's
recent suggestions:
http://geocities.com/andrewbroad/spectrum/download/trainer.html
[Re: In response to some points from Andrew]
Daniel wrote:
>It is kind of you to say so, but I had hoped for much more in terms
>> April promises me more time for MM/JSW after the tennis-
>> distractions of March. :-)
>
> That's very good news for the MM/JSW community :-) And you've done
> a lot for "the cause" in March anyway, IMHO :-)
of getting started with the implementation of AMJT, playing more
gamma-released games, publishing my Glossary, my Pokes page, &c.
I can't believe how fast April is running away from me in MM/JSW
terms either. :-(
I've come up with plenty of ideas - almost too many - but I can't be
satisfied until I've put in the hard yards.
> While designing rooms, on various occasions I had to push up theA VG will go below its specified bottom boundary if the distance
> lower boundary of a vertical guardian, by 2 or even 4 (e.g. from
> 208 to 206 or 204), because the guardian would collide with the
> floor. Sometimes not the first time it went down, but the second
> time, perhaps. This suggests to me that at this particular moment
> some pixels from the guardian's sprite went beyond where they
> normally should be and collided with the floor.
>
> An interesting thing is that in some cases the occurrence of the
> problem or lack thereof depended on the speed of the guardian. For
> example, I had a perfectly-functioning VG moving at the speed of
> 04. I increased the speed to 06 (or perhaps 08), and suddenly the
> collision appeared.
between its two boundaries (in pixels) is not exactly divisible by
its speed (in pixels per time-frame).
A VG that goes down initially will also go below its specified
bottom boundary if the distance between its start-position and
bottom boundary is not exactly divisible by its speed.
These rules are different for MM.
See Message 4044 for further details.
> If a horizontal guardian's right boundary is set to 31, when itThis is because the cells are laid out in memory from left to right,
> reaches its right boundary, it will appear momentarily at the left
> edge of the screen, then turn back and start its way back to the
> left from the right edge of the screen. The interesting thing is
> that at the left edge of the screen the guardian appears ONE CELL
> ROW BELOW its normal horizontal level.
and from top to bottom.
Thus moving right by one cell means adding 1 to its address, but if
the object to be moved is already in the rightmost cell-column, it
will move down one cell-row as well as wrap around to the leftmost
column (and move up one cell-row when wrapping from the leftmost
cell-column to the rightmost).
It's the same in MM when Willy walks off the sides of the screen
(the original MM is designed to make this impossible), since there's
no special code to intercept him as there is in JSW.
And it's the same with wraparound ramps and conveyors in JSW48/128
(unfortunately JSWED just truncates them, and ghost-conveyors - ones
which extend beyond the bottom-right cell - don't appear at all in
JSWED, whereas JSW CK takes advantage of being a Spectrum-hosted
editor to handle all these cases correctly with no special coding).
> Therefore you cannot have any cells in the row below theOnly if the guardian's pixels collide with the cells' pixels (cell's
> guardian's normal level at the left edge, or else there will be a
> collision.
pixels, in fact, since there is only one cell at that position).
Also, HGs become jerky (and have even been known to change sprites)
if they're allowed to cross over the edges of the screen and keep
going - see "Off to Sea" [59] in _JSW (again)_ for example.
These kind of HGs only appear one cell-row too low in Column 0 while
their left-columns are actually in Column 31; if they keep moving
right, the game-engine moves them back up again, since it simply
sets the cell-row to that which is specified in the guardian-
definition.
[Re: walking through an arrow in We Pretty's "S O W I NG T EARS T
O H A N G" [39]]
>Theoretically I disagree. You can see your own pixels, you can see
> The difference between "Whintstanley's crevice" issue and Kari's
> issue is that in "Wc" the player can observe the guardian movement
> safely, and then make his/her move when he/she knows exactly when
> to do it (as you said a true expert would).
>
> In "We Pretty" this is impossible, because you have no safe
> position when facing an incoming arrow. You have to experiment and
> if you fail, you try the manoeuvre again after reloading the
> snapshot.
the arrow's pixels, and you know that the arrow moves 8 pixels to
the left every time-frame.
What makes walking Kari through an arrow so difficult is that she
can't just stand still and let it pass through her - it has to be on
the transition from her standing on one leg to her "arms in, mouth
open" pose.
And in the case of "S O W I NG T EARS T O H A N G", she has to do
it on a conveyor, with arrows every 64 time-frames that she can't
stay in phase with.
> And if you are playing on a real Spectrum, or never saving/I managed to complete "S O W I NG T EARS T O H A N G" on a real
> reloading snapshots as a matter of principle?
Spectrum without undue stress - the trick is to pause it just before
you step onto the conveyor, and note the exact position of the arrow
so that, if unsuccessful, you can set off one time-frame later on
the next attempt.
> So the problem is that unlike in "Wc", in "We Pretty" you cannotI don't see a fundamental difference between "Whintstanley's
> test the ground first and then expose yourself to danger. You have
> to expose yourself to danger while experimenting in order to
> establish the proper position. That's why I would say you have
> random chance of success on the first attempt, because you try a
> position and you don't know whether it will be safe or not. You
> only know it later on, after you have experimented.
crevice" and "S O W I NG T EARS T O H A N G" in this regard - in
both cases you can either (a) make pixel-perfect calculations in
advance, (b) pause and note exact positions so that you can
compensate in the correct direction on the next attempt, or (c) make
random attempts until you get lucky.
YODA: So certain are you. Always with you it cannot be done. Hear
you nothing that I say?
LUKE: Master, moving stones around is one thing. This is totally
different.
YODA: No! No different! Only different in your mind. You must
unlearn what you have learned.
LUKE: All right, I'll give it a try.
YODA: No! Try not. Do. Or do not. There is no "try".
[Star Wars: Episode V - The Empire Strikes Back]
> > There's no such thing as luck in JSW. The game-engine is aLooking at it again just now, I find that if I load RT_A1.z80 and
> > discrete system which is 100% deterministic - there aren't even
> > any pseudorandom elements.
>
> In such case, the rope-teleport phenomenon (messages # 5387, 5390,
> 5391 and 5396) should be repeatable. I have a snapshot of the game
> before it happened, and another one right after it happened (see
> the file RT.zip in my folder in the Files section). If I did not
> do anything in the meantime (did not press any keys), the
> phenomenon should happen EVERY TIME after I load the first
> snapshot, shouldn't it? And if I did something in the meantime
> (pressed a key or two), the phenomenon should happen EVERY TIME
> after I load the first snapshot and repeat the original action
> exactly (also in the sense of timing), shouldn't it? And yet it
> doesn't seem to be the case, or at least that's the subjective
> feeling I have: sometimes it happens, and sometimes it doesn't.
> How about that?
walk left into "The Pool Table", I get teleported if I keep walking
left, but not if I stand still, even if I then leave the room, come
back in and keep walking left! This is the case every time I load
the snapshot.
One day I'll investigate this properly, but for now I suspect that
leaving the room in one direction has left some corrupted data in a
global area such as the rope-table, but these data get stored
correctly when leaving the room to the right.
So it /is/ repeatable - we just don't understand by what rules yet.
[Advanced MM/JSW Trainer - a couple of suggestions]
> Here's another small contribution to the AMJT, should Andrew thinkAnd, unfortunately, the Bad Pause-Bug Fix, so it crashes when you
> it's interesting enough. I have uploaded the file "Rope-Wall-
> demo.sna" to my folder in the Files section. It has two simple
> rooms.
pause it!
http://geocities.com/andrewbroad/spectrum/willy/bugs.html
> The first one demonstrates "walking through walls using a rope".No - they are two separate phenomena:
> This is really a development of "using a rope to enter an Earth-
> cell at leg-height". In "Room 01" Willy can walk out of his cage
> both to the right and to the left. While walking through the wall
> to the left perhaps "reduces" to "using a rope to enter an Earth-
> cell at leg-height" plus "walking left through an Earth-cell at
> head-height",
1. walking through an Earth-cell at head-height is due to JSW's
omission to check for an Earth-cell to the left of Willy's head - a
bug^H^H^Hfeature which also accounts for JSW's ability to jump
through overhead Earth-cells;
2. on a rope, you can pass through Earth-cells because they're not
checked for at all while you're actually on the rope; in standing-
mode, you can always walk /out of/ an Earth-cell (provided that your
path is not blocked by another Earth-cell).
"Using a rope to enter an Earth-cell at leg-height" is covered by 2.
> walking through the wall to the right is a new kind of trick,Again, it's covered by 2. above.
> I think.
> I haven't seen it in any game I have played so far, but I stillNot to my knowledge.
> have a few left to play, so I may not know it has been applied
> previously.
> "Room 02" demonstrates using a rope to pass through a huge wallI'm pretty sure I once managed to step off the rope in such a
> built of inkless Earth-cells having the same PAPER colour as the
> rope (to be exact, Air).
position that it wouldn't pick me up again, forcing me to reset the
game! Rooms like this should have either a cyanide pill or a time-
limit.
--
Dr. Andrew Broad
http://geocities.com/andrewbroad/
http://geocities.com/andrewbroad/spectrum/
http://geocities.com/andrewbroad/spectrum/willy/
