Submission #2651: Ilari's DOS Skyroads in 15:55.92

DOS
(Submitted: Skyroads)
baseline
JPC-rr 11
57355
60
1560
Unknown
80824ce94622a6c5e19b6e0cb082448f
Submitted by Ilari on 5/1/2010 7:12:36 PM
Submission Comments

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:

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:
LevelOld timeNew timeComparison value
Red Heat Road 1382379-35613
Red Heat Road 2753738-43654
Red Heat Road 3416408-36450
Into the Sun Road 16166160
Into the Sun Road 28138080
Into the Sun Road 3340338-16200
Blue Planet Road 1411402-107316
Blue Planet Road 2690688-27000
Blue Planet Road 3474466-63450
Satellite Road 1542531-75226
Satellite Road 212721236-104791
Satellite Road 310361034-16200
Misty Road 173572623886
Misty Road 2147414740
Misty Road 312611257-9504
Asteroid Belt Road 1874872-18900
Asteroid Belt Road 2974969-4728
Asteroid Belt Road 310791024-69441
Crab Nebula Road 11031933-12316
Crab Nebula Road 212761222586031
Crab Nebula Road 3832832843
Over the Base Road 110161009-36729
Over the Base Road 214011395-12546
Over the Base Road 3562547-25724
The Earth Road 1952943-99 633
The Earth Road 2119811980
The Earth Road 3115110497796
Druidia Road 117121472178830
Druidia Road 21136883165426
Druidia Road 313761248-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.
Last Edited by adelikat on 5/4/2010 3:58 AM
Page History Latest diff List referrers