Submission #2868: Ilari's DOS Skyroads in 15:53.27

Console DOS Emulator
Game Version unknown Frame Count 57196
ROM Filename 80824CE94622A6C5E19B6E0CB082448F Frame Rate 60
Branch Rerecord Count 2012
Unknown Authors Ilari
Game SkyRoads
Submitted by Ilari on 10/10/2010 1:11:52 AM

Submission Comments
(flowplayer module removed)

General

  • Emulator used: JPC-RR r10.15 (should sync on r10 - r10.16, r11 - r11.2)
  • 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 some kind of platformer/racing game hydrid 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).

Why I did this:

This game has published movie and I figured out speed improvements for in many stages, so I decided to do new version.

BIOS/OS/game versions used:

The BIOS/OS versions as well as game version is identical to 2651S.
imageinfo report about game image used:

General data:

FieldValue
Nameskyroads
File name/home/Ilari/repositories/jpcrr/projects/skyroads-tasv3-Ilari/../../disklibrary/skyroads
TypeHDD
Tracks16
Sides16
Sectors63
Total sectors16128
Primary extent size2420
Storage Method3
Sectors present1388
Claimed Disk ID80824CE94622A6C5E19B6E0CB082448F

File table:

TimestampMD5SizeName
N/AN/A29/
1990010100000028664bdffbfae0c7a1ff40570a5327ff44808/ANIM.LZS
199001010000001eaa43e89d11e37c3e800a362635f73c8167/CARS.LZS
19900101000000c3cc104af58d1b9ad2c6f507fbafa92810860/DASHBRD.LZS
1990010100000086f74c07f370f79ed6ae0efb8ab7bae76398/DEMO.REC
199001010000007b43fe96a98481e2d5d694a5d30eb528407/FUL_DISP.DAT
199001010000009e4455e78e36e9f92bc485d912d5f19026695/GOMENU.LZS
199001010000004ca283916522bf70e04982614aaa1e8660606/HELPMENU.LZS
199001010000002a484f6baca7bb20e7f58dffdb4b09b620874/INTRO.LZS
19900101000000b0e0eb6c45c0269dfe05edf5fbf0221332100/INTRO.SND
199001010000002dc7798dffb2d73cebd7070d4f9d20751140/MAINMENU.LZS
1990010100000039c82a6594b71507af96fcac83259c5716821/MUZAX.LZS
199001010000001a4ad8227cbce196bb2f1975d3d45e7b395/OXY_DISP.DAT
1990010100000080b0a02ae5a785c869cdd64edf0ae41217102/ROADS.LZS
199001010000004cc0f839bb497d63de2ca8490d286eed24666/SETMENU.LZS
1990010100000022fee57a5aa2bea2fcea6825f7617bf525807/SFX.SND
19900101000000fc59ede3b3015ddabbc5b7be52271df730472/SKYROADS.EXE
19900101000000591e7a22dc25044b4cf7b170ff160e603903/SPEED.DAT
19900101000000a003196ae39c17dd339f8a5ded2e6be098148/TREKDAT.LZS
1990010100000012fc0010f32cfb3389bcec6e3a2f289b26645/WORLD0.LZS
19900101000000660885a1aae50a01ea36c6f76c64c29515696/WORLD1.LZS
19900101000000dac9802774eb98ac7b7ce327b97b453427755/WORLD2.LZS
19900101000000179a760941741a27dd73b2e7875cb65c24082/WORLD3.LZS
1990010100000083d1d3623a40a150d01b7dc7e5021e4331341/WORLD4.LZS
19900101000000fe3d2195af01fadd5f4766cb1218bf7a20047/WORLD5.LZS
199001010000006dd96d7c7a99017ffd767bd42c6aa76d18642/WORLD6.LZS
1990010100000072a16c456291f8782a60e5c290c4774929960/WORLD7.LZS
19900101000000520076e4a113ffbf3e92848e3ebca73d14989/WORLD8.LZS
199001010000007257c2fb813fba24156d47e13026381e21312/WORLD9.LZS
19900101000000dc1034d32e560960018bf1104e8be6b8683/readme.txt

Tricks:

Improvements to previous run

The previous run here is 1513M. Times are in game frames, ~36 frames per second:
"World"Road #OldNewImprovement
Red Heat1379(00:06.32)378(00:06.30)1(00:00.02)
2739(00:12.32)738(00:12.30)1(00:00.02)
3408(00:06.80)408(00:06.80)0(00:00.00)
Into The Sun1616(00:10.27)616(00:10.27)0(00:00.00)
2808(00:13.47)808(00:13.47)0(00:00.00)
3338(00:05.63)338(00:05.63)0(00:00.00)
Blue Planet1402(00:06.70)401(00:06.68)1(00:00.02)
2685(00:11.42)684(00:11.40)1(00:00.02)
3466(00:07.77)465(00:07.75)1(00:00.02)
Satellite1531(00:08.85)531(00:08.85)0(00:00.00)
21236(00:20.60)1236(00:20.60)0(00:00.00)
31034(00:17.23)1034(00:17.23)0(00:00.00)
Misty1726(00:12.10)719(00:11.98)7(00:00.12)
21474(00:24.57)1473(00:24.55)1(00:00.02)
31257(00:20.95)1256(00:20.93)1(00:00.02)
Asteroid Belt1872(00:14.53)869(00:14.48)3(00:00.05)
2969(00:16.15)969(00:16.15)0(00:00.00)
31024(00:17.07)1023(00:17.05)1(00:00.02)
Crab Nebula1933(00:15.55)928(00:15.47)5(00:00.08)
21222(00:20.37)1221(00:20.35)1(00:00.02)
3832(00:13.87)826(00:13.77)6(00:00.10)
Over The Base11009(00:16.82)1005(00:16.75)4(00:00.07)
21395(00:23.25)1394(00:23.23)1(00:00.02)
3547(00:09.12)539(00:08.98)8(00:00.13)
The Earth1943(00:15.72)943(00:15.72)0(00:00.00)
21198(00:19.97)1198(00:19.97)0(00:00.00)
31049(00:17.48)1048(00:17.47)1(00:00.02)
Druidia11472(00:24.53)1459(00:24.32)13(00:00.22)
2883(00:14.72)860(00:14.33)23(00:00.38)
31248(00:20.80)1232(00:20.53)16(00:00.27)
Total 26694(07:24.90)26598(07:23.30)96(00:01.60)

Level comments

Red Heat Road 1

Altering the route a bit allowed doing the scond lock earlier and gained 1 frame. Unfortunately, this frame was lost in next level transition.

Red Heat Road 2

Better use of plaform pulls got more distance when accelerating. This improved level by one ingame frame.
Locking might ignore height differences which would mean jumping from bounce for second locked jump would gain even more distance. Unfortunately this does not work since distance between jumps is too small (the bounce doesn't start before ship reaches locking range).

Into the Sun Road 3

There is insufficent space in start to bounce and lockjump from bounce. Well, one can do it but it doesn't gain as much distance as non-bounce lockjump.

Blue Planet Road 1

Better locking sequence (the locks do interact) gained 113 526 distance as opposed to 107 316 last time, resulting gained frame.

Blue Planet Road 2:

It turns out is possible to lock into edges one block further for 35 775 distance as opposed to 27 000 distance gained from first lockable edges. Unfortunately, this is not enough to break a frame.
I got the idea that jumping from post-jump bounce could work as the game seems to ignore jump target height. Unfortunately it didn't because game apparently takes jump source height into account when computing where to lock. And thus all attempts to jump from bounce wound up locking nowhere or to something that does not help.
Fortunately, the beginning of those ledges with tunnels is just barely within acceleration range and thus locking to them does speed ship up. This allows gaining 42 374 distance, which is enough to break a frame.

Blue Planet Road 3

Improving the locking sequence in beginning gets 75 226 distance as opposed to 63 450 last time, which is enough to break a frame.

Satellite Road 1

Starting lockjumps from bounce gets some extra distance (79 358 vs. 75 226), but unfortunately this is not enough to break a frame.

Satellite Road 2

The lockjump interacts with jump to top of pipe. I got better jump than last time, gaining 106 425 distance as opposed to 104 791. Unfortunately, this does not break a frame.
It is possible to confuse locking algorithm and jump on top of two blocks during acceleration. Unfortunately this does not save time due to less distance gained.

Satellite Road 3

For reasons similar to Into the Sun Road 3, lockjumping from bounce will not save time.

Misty Road 1

The side tracks start far enough for locking into them. But not far enough to be able to usefully lock into them from bounce. Where the tracks merge can be used for additional pull. This gives 51 333 distance.
In section with lots of platforms, one can bounce across one gap in order to avoid slowing down lock.

Misty Road 2

This is the longest road in the whole game, both distance- and time-wise. It is possible to lock onto second pair of edges, gaining only about 9504 distance, enough to break a frame. But this frame is lost to lag in next level transition.

Misty Road 3

It is possible to lock on first edges and then still lock to second ones. This gives 18 299 distance, enough to break a frame.

Asteroid Belt Road 1

It turns possible to lock from lower level if one bounces before jump. The margins are incredebly tight. This gains 48 600 distance.

Asteroid Belt Road 2

Using lock from bounce, it is possible to gain 10 921 distance, but unfortunately this does not break a frame.

Asteroid Belt Road 3

Better lock sequence (including lock from bounce) got 87 750 distance, which should be enough for 1 frame improvemnt. Unfortunately, 2 frame improvement was quite close, but I couldn't manage to improve the locks any further.
Also, the section with hole can't seem to avoid banging the ship twice, losing fair amount of distance. Thus although near, I couldn't break second frame.

Crab Nebula Road 1

Route change brought big savings. Turns out it is possible to enter the gap from side, allowing making it without losing speed. Also locking from bounce improves the pull somewhat, but not enough to break a frame (66 120 distance).
It is possible to confuse locking algorithm and lockjump on top of blocks. Unfortunately it does not appear to be possible then to enter the hole from side (if that isn't possible, then speed loss will be excessive).

Crab Nebula Road 2

Doing the section where one has to slow down better loses less distance, allowing breaking one frame.

Crab Nebula Road 3

It turns out to be possible to lock onto second horizontal bar. That lock has to be done from bounce due to slippery floors. The bar is slippery as well, but fortunately ship plows into ground where one can control the ship before falling off track.

Over the Base 1

Better locking sequence gets 72 316 distance, which is enough to break 4 frames.

Over the Base Road 2

Using lock from bounce it is possible to sightly improve the first pull. Also, locking algorithm avoids burning blocks, which makes it possible to lock on section of road after burning floor. This gains total of 24 617 distance, which is enough to break a frame.

Over the Base Road 3

It is possible to improve locks by jumping on the center block using race-against-the-lock. This gets over 121k distance.
In the end, it turns out one doesn't have to slow more than one contact with sticky floor by using bounces in suitable manner.

The Earth Road 3

Nope, I still couldn't figure how to get lock, but by jumping over some sticky floors one can avoid few thoursand distance units worth of slowdown. This comes at cost of banging the ship a lot, but this is still faster than hitting those sticky blocks, so I manage to break a frame.

Druidia Road 1

It truns out to be possible to get some pull in beginning and manage fuel better. This results 13 frame improvement.
The fuel management was solved using integer linear programming, and as apporiate, the level is finished with 1 unit fuel (0.003% of full load)

Druidia Road 2

Improved locking sequence gains 90 898 distance. The "phase" relative to blocks is suitable, one doesn't have to slow down at all if one uses the pipe route (suicide in realtime).

Druidia Road 3

One can take less slowdown in one of the jumps, but it leads to more slowdown later. Also, I managed to lose less time in jumps. Also, racing with locks works here and saves 8 frames.
Going to bounce around the "HI THERE.." text avoids one slowing locked jump, saving about 6 or 7 frames. The remaining frame or two is from wasting less time with jumps.

Screenshot suggestions:

  • Transferring from right to left in beginning of Asteroid Belt Road 1
  • Entering gap from side in Crab Nebula Road 1
  • Entering the pipe in middle of two pipes in Over The Base Road 3
  • The block jumpover at end of Over The Base Road 3
  • Somewhere from side to side section in The Earth Road 3 (full speed)
  • Jumping over the walls in maze section of Druidia Road 1
  • Jumping from pipe in Druidia Road 2
  • Ship being on 'Hi There..' text on Druidia Road 3

Final stats:

Final input cutoff: 953.263s (old was 955.916s, improved by 2.653s) Final rerecord count: 1974 (old was 1560) Final control lost: 953.431s (old was 956.048s, improved by 2.616s)

Making this TAS:

This TAS was slower to make than last time (about 11 days to do the first version, mainly because of doing less work on this run). Later I noticed improvements... Fortunately, experiments with Lua-level recording and playback (even through they proved to be less than sync-stable) saved lots of time.

adelikat: Accepting for publication as an improvement to the published movie.

Last Edited by ThunderAxe31 on 1/8/2022 9:56 AM
Page History Latest diff