General
- Emulator used: JPC-RR r10 (syncs on r10.1 - r10.5)
- No special settings
- Complete all 30 levels (no warps, no passwords)
- Abuses programming errors in game
- Takes damage to save time
- Does not use death
- Aims for fastest time
About game:
Skyroads is game where one controls racer on tracks containing lots of
bottomless pits and obstacles, both are to be avoided (falling into pit kills
you, same for ramming into obstacle at high speed).
BIOS/OS/game versions used:
The BIOS/OS versions are same as in #2649: sgrunt's DOS Commander Keen: Episode 5 - The Armageddon Machine "glitched" in 02:42.43. The game is downloadable
from http://www.bluemoon.ee/history/skyroads/skyroads.zip
imageinfo report about game image used:
Type : HDD Tracks : 16 Sides : 16 Sectors : 63 Calculated Disk ID : 80824CE94622A6C5E19B6E0CB082448F Comments section:
Entry: N/A N/A 29 / Entry: 19900101000000 28664bdffbfae0c7a1ff40570a5327ff 44808 /ANIM.LZS Entry: 19900101000000 1eaa43e89d11e37c3e800a362635f73c 8167 /CARS.LZS Entry: 19900101000000 c3cc104af58d1b9ad2c6f507fbafa928 10860 /DASHBRD.LZS Entry: 19900101000000 86f74c07f370f79ed6ae0efb8ab7bae7 6398 /DEMO.REC Entry: 19900101000000 7b43fe96a98481e2d5d694a5d30eb528 407 /FUL_DISP.DAT Entry: 19900101000000 9e4455e78e36e9f92bc485d912d5f190 26695 /GOMENU.LZS Entry: 19900101000000 4ca283916522bf70e04982614aaa1e86 60606 /HELPMENU.LZS Entry: 19900101000000 2a484f6baca7bb20e7f58dffdb4b09b6 20874 /INTRO.LZS Entry: 19900101000000 b0e0eb6c45c0269dfe05edf5fbf02213 32100 /INTRO.SND Entry: 19900101000000 2dc7798dffb2d73cebd7070d4f9d2075 1140 /MAINMENU.LZS Entry: 19900101000000 39c82a6594b71507af96fcac83259c57 16821 /MUZAX.LZS Entry: 19900101000000 1a4ad8227cbce196bb2f1975d3d45e7b 395 /OXY_DISP.DAT Entry: 19900101000000 80b0a02ae5a785c869cdd64edf0ae412 17102 /ROADS.LZS Entry: 19900101000000 4cc0f839bb497d63de2ca8490d286eed 24666 /SETMENU.LZS Entry: 19900101000000 22fee57a5aa2bea2fcea6825f7617bf5 25807 /SFX.SND Entry: 19900101000000 fc59ede3b3015ddabbc5b7be52271df7 30472 /SKYROADS.EXE Entry: 19900101000000 591e7a22dc25044b4cf7b170ff160e60 3903 /SPEED.DAT Entry: 19900101000000 a003196ae39c17dd339f8a5ded2e6be0 98148 /TREKDAT.LZS Entry: 19900101000000 12fc0010f32cfb3389bcec6e3a2f289b 26645 /WORLD0.LZS Entry: 19900101000000 660885a1aae50a01ea36c6f76c64c295 15696 /WORLD1.LZS Entry: 19900101000000 dac9802774eb98ac7b7ce327b97b4534 27755 /WORLD2.LZS Entry: 19900101000000 179a760941741a27dd73b2e7875cb65c 24082 /WORLD3.LZS Entry: 19900101000000 83d1d3623a40a150d01b7dc7e5021e43 31341 /WORLD4.LZS Entry: 19900101000000 fe3d2195af01fadd5f4766cb1218bf7a 20047 /WORLD5.LZS Entry: 19900101000000 6dd96d7c7a99017ffd767bd42c6aa76d 18642 /WORLD6.LZS Entry: 19900101000000 72a16c456291f8782a60e5c290c47749 29960 /WORLD7.LZS Entry: 19900101000000 520076e4a113ffbf3e92848e3ebca73d 14989 /WORLD8.LZS Entry: 19900101000000 7257c2fb813fba24156d47e13026381e 21312 /WORLD9.LZS Entry: 19900101000000 dc1034d32e560960018bf1104e8be6b8 683 /readme.txt
Irrelevant lines omitted (like storage methods and sector counts).
Tricks:
Pull of platforms:
If jump "locks" to some target in track direction result is usually
undesirable slowdown. But in some conditions when accelerating, the lock
will cause ship to speed up. Doing this can gain about 1-3 in-game frames
(about 0.02-0.08s).
When one can jump:
After one has landed from jump, the game considers ship to be on ground, even
if one goes over ledge. Unfortunately, there is second condition: There must
be some kind of support below ship for it to jump. Fortunately, if ship is
really in the air, game won't check the precise nature of this floor and won't
apply floor effects to ship (such as not blowing it up if one happens to be
on top of burning block.
Taking "damage":
If ship hits obstacle only partially, it is not destroyed but slowed down
a bit and thrown a bit horizontally to clear the obstacle. One thing to note
with this is that there is zone of where ship is destroyed between zones
where it just takes "damage".
This only happens horizontally, vertically ship must either clear the obstacle
or it gets destroyed.
The ship can take unlimited number of hits like that. Each hit either
destroys the ship or it does not.
Riding "kill floors" (burning):
The pink floors that kill the ship (called "burning") can be jumped on if
ship center is not on that floor. Thanks to algorithm game uses when one can
jump, this may be abused. But one must be careful as ship is still "slipping"
if burning floor is above the adjacent floor. This gets abused to save
lots of time in Druidia Road 1.
Improvements to previous run
The previous run here is unsubmitted Skyroads TAS by me. Times are in game
frames, ~36 frames per second:
Level | Old time | New time | Comparison value |
---|---|---|---|
Red Heat Road 1 | 382 | 379 | -35613 |
Red Heat Road 2 | 753 | 738 | -43654 |
Red Heat Road 3 | 416 | 408 | -36450 |
Into the Sun Road 1 | 616 | 616 | 0 |
Into the Sun Road 2 | 813 | 808 | 0 |
Into the Sun Road 3 | 340 | 338 | -16200 |
Blue Planet Road 1 | 411 | 402 | -107316 |
Blue Planet Road 2 | 690 | 688 | -27000 |
Blue Planet Road 3 | 474 | 466 | -63450 |
Satellite Road 1 | 542 | 531 | -75226 |
Satellite Road 2 | 1272 | 1236 | -104791 |
Satellite Road 3 | 1036 | 1034 | -16200 |
Misty Road 1 | 735 | 726 | 23886 |
Misty Road 2 | 1474 | 1474 | 0 |
Misty Road 3 | 1261 | 1257 | -9504 |
Asteroid Belt Road 1 | 874 | 872 | -18900 |
Asteroid Belt Road 2 | 974 | 969 | -4728 |
Asteroid Belt Road 3 | 1079 | 1024 | -69441 |
Crab Nebula Road 1 | 1031 | 933 | -12316 |
Crab Nebula Road 2 | 1276 | 1222 | 586031 |
Crab Nebula Road 3 | 832 | 832 | 843 |
Over the Base Road 1 | 1016 | 1009 | -36729 |
Over the Base Road 2 | 1401 | 1395 | -12546 |
Over the Base Road 3 | 562 | 547 | -25724 |
The Earth Road 1 | 952 | 943 | -99 633 |
The Earth Road 2 | 1198 | 1198 | 0 |
The Earth Road 3 | 1151 | 1049 | 7796 |
Druidia Road 1 | 1712 | 1472 | 178830 |
Druidia Road 2 | 1136 | 883 | 165426 |
Druidia Road 3 | 1376 | 1248 | -38025 |
Comparison value = 10922 * framecount - distthisframe - 593207. The faster
the run, the smaller the comparison value. The constant in formula is to
normalize result to zero if one just hits accelerator as soon as possible and
then doesn't get slowed down/sped up (except for the acceleration to top
speed).
Improvement to last run (at final control loss): 30.85s
Improvement to last run (at input cutoff): 30.95s
Level comments
Red Heat Road 1
At beginning perform two accelerations for 35 613 distance. Turns out
I can't avoid being hit first time (or if I could, the resulting distance
was less than what I got from doing it this way).
The top of pipe looks bit like burning (destroy ship) floor. Thus I thought
to try to jump over it. Turns out it is normal floor. Oh well...
Red Heat Road 2
At beginning, do the acceleration from floor twice for 43 654 distance.
At one point, I jump so I bounce on top of burning block (yes, that's a real
burning block, I think it is the first in the game) and then proceed to jump
from it (the game interprets it as floor and that I'm not jumping because I
already landed, but floor effect (blow up the ship) doesn't apply because
I'm not really touching it.)
The stage is so long that timer to frame phase begins to drift so much that
distance values are no longer stable.
Red Heat Road 3
At start of road, do the acceleration for 36 450 distance. I also tried
to do it on top of blocks, but that failed because jump would still be short
and ship would blow up. Also jumping on top of big blocks without losing time
failed. Oh well.
I did similar "jump from burning block" as in 1-2. I also switched sides using
burning block as support (that worked because game interprets ship being on
ground (can jump) and not being on ground (not applying floor effect) at
once).
In the end, I do jump to pipe.
Into The Sun Road 1
No, its not possible to use platform pull on this level. The first
beginning blocks are slippery and jumping to them would send ship either into
block or into chasm.
Also, dropping from raised blocks to magenta block is not possible. The
distance is just too great for the drop (the ship will hit and blow if
one attempts this).
At the end, do tunnel jump. The jump immediately after tunnel centers the
ship nicely for exit.
Into the Sun Road 2
Getting pulled by platforms is not possible as there's nothing to lock to
during acceleration.
There's higher cliff, one can drive off it and so is done. But it doesn't
appear possible to jump on top of tall blocks without losing time.
At end of level, jump and bounce to exit pipe...
Into the Sun Road 3
It turns it is possible to get pulled by platform at start for 16200 distance.
Otherwise uneventful stage...
Blue Planet Road 1
At beginning, one can get pulled three times. The rest is fairly
uneventful, apart from jumping to tunnel with no lead-in..
Blue Planet Road 2
Use the structure in beginning for faster acceleration. Otherwise
uneventful stage...
Blue Planet Road 3
Three platforms can be used for extra speed. I couldn't avoid having to
correct horizontal position a bit at end...
Satellite Road 1
It is not possible to use the edges at beginning for speedup because the
leading edges are not reachable (the ship just can't go that far right
before the edges). But it is possible to do on three platforms on the
way (fourth is too far, the acceleration is already complete).
Otherwise the level is fairly uneventful apart from switching sides,
including one jump from burning floor.
Satellite Road 2
Its not possible to get those blocks at start to pull (the ship will hit
them if you try), but the block after the large gap can (for over 100k of
distance).
Satellite Road 3
Turns out it is possible to use edge at start to pull the ship (I thought
this level couldn't be improved).
Misty Road 1
It is just barely possible to lock into first incoming ledge, and that only
gives 9504 distance.
No, it is not possible to avoid locks to tailing edges from taking the
distance accumulated and more up to about 24k distance. The jumps are just
not long enough from sides, one can't drop and this jump chain began at
earliest possible moment (and it still was too long). Oh well.
Misty Road 2
No, its not possible to get lock into first incoming edges. The pattern is
just not suitable for such high speeds (it would be usable at low speeds but
this is far too fast).
This level is quite boring. Not much going on apart of couple jumps from
burning floor. The reason the final block is not jumped over is that there's
fuel pad in tunnel and I run out of fuel unless I take it.
Misty Road 3
No, it is not possible to lock on the first edges, only to second set, giving
quite modest 9504 distance.
Nope, it is not possible to jump between the two long pipes. If you try,
the ship will fall off. Also changing sides on that bar is difficult.
Asteroid Belt Road 1
If one jumps just to beginning of raised section, one can lock nicely to
platform to the right, giving 18 900 distance.
There is slowdown surface ahead in side track. That's why I do the almost
impossible jump to platforms on the left. I get to keep the 18 900 distance,
yay.
Asteroid Belt Road 2
The edge after holes can be locked on and fist hole isn't far enough for
acceleration to complete. This gives 4 728 distance. Which is quite little.
Asteroid Belt Road 3
At beginning one can lock to first ledge for 16 200 distance. The gap can
be locked on for further distance (to 62 325) and the second gap can too
(to 77 449).
Where the roads cross, raw jump over works nicely... The timing requirements
are tight, but so what, this is TAS.
The hole with fuel pad gets improved big time since one can jump down
without having to jump back up. It turns out one doesn't even have to slow
down apart from banging the ship twice. And one has to jump into that hole or
one runs out of fuel (maybe one could make it do without extra fuel, but it
would need too much slowing down).
Crab Nebula Road 1:
The burning floor is far too long to jump over (by 1 or 2 tiles). Fortunately,
its possible to drop into gap at fairly high speed. The margin is so tight
that even stopping braking one frame before will cause ship to hit
wall and explode! This saves loads of time.
Crab Nebula Road 2:
No, you can't jump at all in this level. And yes, in the first part, one
must slow down A LOT to avoid blowing the ship up or falling into chasm.
And nope, the glancing blow in maze section can't be avoided without
slowing down, and slowdown would take much more time than just taking the
blow. The narrow gaps in maze section also offer some really close calls.
Crab Nebula Road 3:
That first horizontal bar is slippery, so jumping into it is very bad idea.
The same holds for second bar.
Getting past the slowdown floor making only one brief contact is quite hard
and involves getting the game confused on whether ship is on ground or on
air.
Over the Base Road 1:
For some reason jumps don't lock to first two edges. Fortunately, there are
more edges to lock to plus some boost blocks reachable while still
accelerating. This gives 36 755 distance. This can be kept to the end.
In the long pipe in center of pipe field there's something that destroys
the ship... And the ship movement "phase" just isn't suitable for trying
to jump out of first pipe there...
Over the Base Road 2
Its very difficult to find a gap where ship locks into some edge
in direction of track as the first blocks tend to draw locks (but ship
doesn't lock into those in any useful manner. But there is gap that can
be used for 12546 distance.
The reason for doing screw jump out of pipe is that straight jump would hit
the pipe ahead.
Over the Base Road 3
Its possible to lock to horizontal bars after pipes, gaining 51 300 distance.
Also its possible to lock to sections where platforms widen fir some extra
distance (73649 total).
The end section is tricky. Screw jumping doesn't seem to work because it
either hits the block (leading to immediate destruction or not having enough
speed to clear the gap adjacent to it) or lands in wrong place (1 tile is
nowhere enough to settle post-jump bounce or lands too far left leading to
ship hitting the exit pipe).
The best strategy appears to be to jump on top of first block and slowing
down jump to second block (starting from air) and bounce from it into pipe,
halting deceleration and then accelerating at suitable instant. Riding on
slowdown blocks and jumping on top of block is slower.
The Earth Road 1
In start, one can get pulled by multiple platforms for 99 633 distance. The
blocks are too far and trying to lock on incoming edge of block is bad idea
(the height is not taken into account leading to ship blowing up). This
distance can be kept to the end.
The fuel runs quite tight, at the end the ship only has about 3.5% fuel left.
The Earth Road 2
There are no ledges to lock into within range, so no going below "ideal".
The fuel runs tight on this level too, but not quite as tight as in last
level.
The Earth Road 3
No, its not possible to lock onto any incoming edges (first set is too far
and ship would run out of O2 anyway). The jump from side to side section gets
quite badly broken...
The momentary "pauses" on center are to make the ship hit the fuel pad on
first ground contact without needing to wait for bounce. I also screw jump
to avoid hitting the center block.
Druidia Road 1
This level has very nasty issue that there is not enough fuel to go full
speed all the time. So I go at 10800 speed at first.
Its not possible to avoid locked jumps in platform jumping section. The repeat
is 3 which is just too tight, even at 10800 speed. Also it does not seem to
be possible to avoid locking in section with raised blocks.
I decelerate a bit at the end to make the fuel do. At that point, one would
almost break a frame. This can be abused, since breaking frame would mean fuel
for that frame is not used. This allows extra distance and frame can be
broken. As matter of style I time the throttle back so that I have only 1
unit fuel in the end (0.003% fuel) although this is very unlikely to save
any time.
Druidia Road 2
No, the first ledges (when road splits) can't be locked onto, but the
ledge when road merges back can. This gives 28 875 distance. The edge
after the small gap can too, giving 36 459 total distance.
Since this level has 600 gravity, its not possible to do jump directly on
tall blocks. Fortunately bounce from jump can give just enough height to make
it.
In the jump between two blocks separated by chasm, for some reason jump locks
and there doesn't seem to be a way to avoid that. Oh well.
The section with range must start slowing down at some point. One must also
hit the fuel pad or one will run out of fuel. The pad is just one unit long
and one must bounce and jump to 2 height block.
The end of range section is hellishly difficult to optimize. One must consider
route, when to start decelerating, what terminal speed to use, etc in presence
of multiple constraints. For speed, it is best to leave decelerating as late
as possible, but all kinds of constraints do come into play. Such as late
deceleration pushing final jump too far.
The rest of the level is easy. No, one can't lock on those blocks (in
general, locking to blocks is bad idea anyway).
Druidia Road 3
In section with lots of 3-spaced blocks, the best way is to jump as early
as possible and then hold the space accepting the locked jumps that slow
you down. Actually, jumps have real nasty tendency to lock here. Nearly every
jump slows you down even if it wouldn't be required (and in some cases it
leads to ship getting destroyed even when it wouldn't without the locking).
Apparently the reason is that locking does not take target height into account
and miscalculates as consequence.
I jump to left side track to save some time (by avoiding locking some jumps).
The right sidetrack appears to be a trap.
Turns out one jumping section has 2-spacing, which enables bouncing/jumping
over one of the gaps, which allows accessing the final block at full speed,
enabling jump to top of tall block without decelerating.
At end section screw jump and bounce allows doing it without banging the ship
or slowing down.
Making this TAS:
This tas took about 7 days to actually make. The most difficult sections
where those where one has to slow down, but most of those got resolved.
Unlike last time, I had memory watch available. I thought that last run
was improvable by some 7 seconds, but ended up making over 30 seconds
of improvements.
Thanks to:
- Dacicus for helping find memory addresses for memory watch.
adelikat: Positive viewer response, accepting for publication.