TASVideos

Tool-assisted game movies
When human skills are just not enough

Submission #6171: Upthorn's Genesis Ecco: The Tides of Time in 36:30.34

Console: Sega Genesis
Game name: Ecco: The Tides of Time
Game version: USA
ROM filename: ECCO - The Tides of Time (U) [!].bin
Branch:
Emulator: Bizhawk 2.0.0 personal DevBuild
Movie length: 36:30.34
FrameCount: 131251
Re-record count: 9934
Author's real name: Jody Northup
Author's nickname: Upthorn
Submitter: upthorn
Submitted at: 2018-12-01 11:01:05
Text last edited at: 2018-12-06 20:45:40
Text last edited by: feos
Download: Download (70204 bytes)
Status: published
Click to view the actual publication
Submission instructions
Discuss this submission (also rating / voting)
List all submissions by this submitter
List pages on this site that refer to this submission
View submission text history
Back to the submission list
Author's comments and explanations:

Categories

  • Aims for fastest time
  • Abuses programming errors
  • Takes damage to save time
  • Colors a DNA
  • Staves off alien invasion using only the power of multi-layered time paradoxes
  • Jumps through a bunch of arbitrarily placed hoops
  • Does not drive author to verge of suicide this time
  • Drives main character to suicide
  • Gains advantage through the dark power of Dolphin sacrifice
  • Is possibly the Chosen Undead

About the Game

Ecco: The Tides of Time is the sequel to Ecco the Dolphin, and has been one of my favorite games for a long, long time. It is also highly resistant to speed-running. At top speed, Ecco swims just under 40% faster than Super Sonic can run, but has an eight-frame rule on steering (except orthogonal flips), and no way to slow down, except for orthogonal flips, which take too long, or crashing into walls, which slow Ecco too much. Otherwise it takes 30 frames without any form of acceleration before Ecco begins to lose speed, and even then does so at a maddeningly slow rate. Additionally, the way acceleration works is obscure, requiring a repeated pattern holding the button for 11 frames, than releasing for 1, the fastest way to get to top speed from a dead stop is to accelerate for 5 frames, charge, immediately cancel the charge, and then charge again eight-frames later when the cool-down wears off (maintaining the optimal acceleration input all the while). On top of all this, the game tracks position to the 65536th of each pixel, which combines with the eight-frame steering rule to snowball tiny variations in position and timing into gigantic differences in result. And, of course, the developers must have thought they were developing a PS2 game or something, because the game uses a wide variety of polygonal hit-boxes and detection boxes, and terrain collision is achieved by a bunch of invisible collision polygons that vaguely conform to where it looks like walls/floors/ceilings are supposed to be.

Also, there's an entire set of levels that involves navigating along mostly dry-land while the gravity changes almost at random, many levels are sprinkled liberally with obstacles or enemies that will kill you instantly upon contact, and there are five long 3D sequences that require literally jumping through hoops to complete.

Fortunately for a TASer, the game's engine is essentially composed of a multi-layered wad of gum and floss, which exposes a large variety of bizarre corner cases in game logic to exploit.

About the Movie

This movie completes the game on hard mode. Hard Mode differs from easy mode in that there are two additional autoscrollers, bosses have more HP, the collection quests are longer, and several levels have additional barriers that slow you down. Oh also there’s one added level that’s not an autoscroller.

This movie does not use the Japanese version of the game, because I did not learn that the Japanese version has less lag on 3D stages until I was nearly halfway through the run and would have had to spend an excessive amount of time retiming everything and probably rewriting portions of the special tools I used to help make this TAS easier.

Some videos

Vanilla Encode

This is just the TAS in the plain way you would normally see it in an unmodified emulator.

(Link to video)

Hud Encode

This is the TAS as it appeared to me while I was making it.

(Link to video)

Comparison Encode

This is the TAS compared with the original, and the first draft of this improvement.

(Link to video)

Techniques used

Faster Acceleration

About halfway through my first draft of this movie, I realized that there was a faster way to reach top speed that I had been unaware of on my prior TAS.

There are three ways to accelerate in this game:

  • Pressing the accelerate, which increases Ecco’s speed by a varying amount depending on his current speed and how long the button has been held down. This is most efficient in 12 frame cycles of 11 frames down 1 frame up.
  • Performing a short charge (charging with initial speed of at least 3 pixels per frame), which immediately increases Ecco’s speed by 4 pixels per frame, followed by overriding normal acceleration for 19 frames of charge acceleration (slower than standard swim acceleration at low initial speeds, faster at high initial speeds), then decreasing Ecco’s speed by .5 pixels per frame for 5 frames before ending and allowing a new charge. (Normal acceleration is possible during these final five frames of the charge).
  • Performing a long charge (charging with initial speed below 3 pixels per frame), which immediately increases Ecco’s speed by 4 pixels per frame for 1 frame, followed by 23 frames of base 0.15625 pixels per frame (during which 1 frame worth of standard acceleration can apply for speeds of up to 0.65376 pixels per frame), then 2 frames of 4 pixels per frame per frame acceleration, 3 frames of charge acceleration, and then getting the full cycle of a short charge without the initial speed boost.

Additionally, any charge can be cancelled at any point via the sonar button, unleashing a damaging sonar blast, and skipping immediately to the final 8 frames of the charge sequence.

On my prior TAS, I believed fastest acceleration was simply 5 cycles of holding accelerate for 11 frames than releasing it for 1, which achieves maximum speed in 60 frames. While a long charge achieves nearly top speed in 48 frames, it has the long period of near standstill, and then the unavoidable tail of deceleration, resulting in overall less distance covered in the 60 frames it would take to achieve top speed normally. Additionally, I tested performing a single short charge as soon as possible during standard acceleration, and found that it was even slower at the 60 frame mark than a long charge.

However, if you immediately cancel that short charge, and then follow it with another, non-cancelled short charge, this gets top speed faster than 60 frames, and results in a larger distance travelled at the 60 frame benchmark.

Angle Optimization

Ecco’s swimming angle can only be changed once every eight frames, and only by intervals of 45 degrees. However, Ecco does not immediately turn to his target angle, but rotates smoothly at 4.21875 degrees per frame until reaching his target angle. As a result, you can achieve average swimming angles in between those 45 degree set-points by alternating directional inputs every 8 frames. In many cases, this results in a shorter distance travelled to navigate around distant obstacles than the old technique of travelling at the nearest 45-degree angle until it’s possible to swim in a straight line past the obstacle.

Nudging

Because it takes more than 8 frames to turn 45 degrees, hitting a direction once for just eight frames before returning to Ecco’s original angle allows for relatively small position adjustments. Useful for adjusting position in narrow tubes without bumping into walls.

Cutting Corners

First, some dolphin anatomy: Ecco’s collision is a composite of two boxes mounted on a spine of five test-points.
  • Head box
  • Nosehole
  • Mid-front vertebra
  • Blowhole (absolute midpoint)
  • Mid-back vertebra
  • Butthole
  • Tail box

Each collision or detection polygon tests a specific point, box, or subset of these 7 possibilities. With proper information about the shapes and test point of these polygons, it’s possible to swim safely past certain enemies or obstacles in positions that would appear dangerous.

Super-breach

By charging on the exact frame Ecco leaves a body of water, he can exit with a velocity of 4 pixels per frame above maximum swim speed.

Jump control

When out of the water, if moving upward quickly enough, Ecco can initiate a spin-jump by pressing C. While spin jumping, every frame in which C is held increases Ecco’s height by two pixels versus if C had not been pressed. This allows for very precise control over the timing of re-entering water, so that Ecco can re-enter water at any desired time within the 8-frame steering cycle.

Breaching speed

When it is necessary to travel long distances horizontally, speed can be gained by traveling along the ocean surface and repeatedly super-breaching with a very low exit angle.

Camera Manipulation

Camera position is based on Ecco’s position, angle, and movement speed. Game objects are loaded and unloaded based on their position relative to the camera, and even when loaded, many objects are not fully processed while off-screen. This can used to reduce lag, propel objects through obstacles, and a whole host of other things too varied to list.

Kill Boosting

Destroying an enemy immediately ends a charge without going through the end-of-charge deceleration sequence. The most common way of doing this is by colliding with the enemy while charging, but that immediately sets your speed to 0, which is even worse than losing a tiny bit of speed to the charge ending. However, hitting an enemy with a charge-sonar blast also immediately ends the charge, and doesn’t set your speed to zero. In this way, whenever there’s an enemy in our path, we can gain ~4 pixels by hitting charge to get the single frame 4 pixel speed boost, and then hitting sonar to destroy it before we collide. Unfortunately, when an enemy is destroyed, it spawns a remnant star object which changes the meaning of the charge button from “perform a charge” to “prevent this enemy from respawning” when you are within its detection radius, so it’s not possible to get 8 pixel boosts from two enemies that are close together.

Charge Strafing

During a charge, Ecco will home onto enemies in a certain detection area. This allows movement perpendicular to the swim direction without a related reduction in swim speed. Helpful to adjust position slightly without having to go through the slow process of changing angles.

3D Level Lag Reduction

In 3D levels, enemies cause lag. In 3D levels, sonar blasts kill enemies. In 3D levels, sonar blasts cause lag.

Situational Tricks

Ring Manipulation

The teleport rings in 3D Levels appear in fixed positions. However, their movement type (stationary, slow moving, or fast moving) depends on the random number seed when they are spawned. And the random number seed updates every four frames. Teleport rings with the highest spawn location are fastest to pass through when they are slow moving, as their vertical position requires a low enough jump that it’s possible to return to water within a single charge cycle.

Barrier Clipping

In certain situations, there are barrier walls composed of a number of smaller objects that check head and tail box collisions. However, within a given frame, the game will stop checking for head collisions after finding a single one, and the game will stop checking for tail collisions after finding a single one. Therefore, depending on the loading order of these objects, it can be possible to swim through these barriers by overlapping the collision box with multiple objects at the same time.

Used in: Crystal Springs, Lunar Bay, and possibly in Four Islands (other stuff is going on and I’m not sure whether this technically happens or not).

Rocket Propelled Rocks

Falling rocks that shield Ecco from currents will assume Ecco’s full vertical speed when his nosehole collides with them closer to their top or bottom than their left or right sides. In most cases, though, colliding with one of these rocks will kill most or all of Ecco’s downward speed just before it gets transferred to the rock. However, it is possible to avoid this effect somehow through careful approaches that I was not able to determine full boundary conditions on, but seemed somehow related cases involving corners.

Also, turtles are technically rocks. Used in: Two Tides, Maze of Stone, Four Islands (Entertainment only), Sea of Green, Atlantis

Barrier Skipping

When a barrier glyph is placed to block a mid-air water tube, it is possible to skip around it by exiting the tube with a vertical super-breach, and using mid-air directional control to move left and right around the force-field trigger box, splashing back into the tube above the barrier.

Used in: Trellia’s Bay, Skyway

Hover-turns

The game doesn’t seem to test if Ecco has left water if Ecco is in the middle of a quick flip turn when he would leave it.

Used in: Sky Tides, Aqua Tubeway, Gravitorbox

Trigger Squeezing

Almost all end of level triggers test against Ecco’s blowhole. In auto scrollers, it’s possible to get this much closer to the leading edge of the screen by turning to be parallel to that edge, which allows for squeezing into the end-of-level trigger a few frames sooner.

Used in: Sky Tides, Dark Sea, New Machine.

Eight-way Swooping

When Ecco is a seagull, it is possible to perform a dive-swoop by pressing charge while down is pressed on the D-pad. But once the dive-swoop is initiated, the speed can be directed in any of the eight semi-cardinal directions without concern for gravity. This practically doubles the Seagull’s movement speed, and makes it possible to gain or lose height much, much faster than standard seagull flight, as the seagull cannot normally fly upward or downward at a greater than 45 degree angle. Embarrassingly, for the first TAS I wasn’t even aware that standard downward swooping was possible. Used in: Fin to Feather, Eagle’s Bay

Eagle Clipping

Eagles can fly through walls, and will capture and care you in their talons.

Used in: Eagle’s Bay

Suicide

When Ecco gets caught between the level boundaries (or the camera boundaries during autoscrollers) and a solid obstacle, or a wall and another solid obstacle, he will be crushed to death, which restarts the level. This is somehow useful.

Accidentally discovered by Dolfinh, of the real-time Ecco speedrunning community.

Used in: Level id 30

Forcefield Clipping

If Ecco is caught in a barrier glyph forcefield in the same frame that the game transitions to a dialogue screen, the forcefield will fling him at extremely high speeds (potentially through walls) as soon as normal gameplay resumes.

This was discovered by Aludra, of the real-time Ecco speedrunning community.

Used in: The Eye, Big Water

Zipping

When Ecco is caught clipping two or more solid walls at the same time, a chaotic system results that can have great impact on Ecco’s speed values.

Used in: Deep Ridge, Vortex Future

Swimming Through Walls

When Ecco would otherwise be crushed, but is near enough to the seam between two wall collision boxes, they simply both eject him to the seam and consider him not to be stuck. There is more to this that I don’t fully understand, which prevented it from being used in Black Clouds or City of Forever.

Used in: Dark Sea, New Machine

Transformation Skipping

Although the Metasphere in Fish City has a much larger bounding box than it appears, it still only tests against Ecco’s nosehole, making it possible to avoid being transformed into a very slow moving school of fish. This trick also works on the levels that don’t appear in this TAS because I avoided being carried off by Vortex Drones or swallowed by the Vortex Queen.

Used in: Fish City. Duh.

Level by Level notes:

Selection screen

The two frames saved here are entirely due to emulation timing differences during the loading sequences.

Home Bay

Fastest acceleration pattern plus angle optimization results in a slightly faster trip to the teleport ring.

3D Shells

Horizontal and Vertical camera motion slow the camera’s Z-ward movement slightly, which delays the spawning of teleport rings, so I save a few frames by moving the minimum amount necessary to make it through each ring without being slowed by the poison bubbles.

Crystal Springs

5 Frames saved by faster acceleration and better angle optimization

Fault Zone

So, during the first TAS I assumed that bumping into walls was always slower. But, when I have to wait on other things, and bumping into walls is the fastest way to brake, which gives much better control over position, it turns out bumping into walls is absolutely the way to go. Saved a bunch of time with better positioning to push the rock after breaking the first barrier.

Two Tides

Faster acceleration, better angle control, and faster/more productive turtle harassment. There are a few points where you’re forced to stop in this level, so the faster acceleration methods really shine. From now on, just assume that faster acceleration and better angle control save frames on every level except auto scrollers. They do. I won’t mention it every time.

Trellia’s Bay

Biggest time-save here comes from a better understanding of how psychic dolphins work, so I could boost faster away from the one that’s necessary to use.

Skyway

Angle optimization, mostly.

Sky Tides

First instance of trigger-squeezing to shave frames off the end of an autoscroller.

Tube of Medusa

So, The Medusa’s spawn triggers are at set locations, but The Medusa’s spawning position is camera dependent. The Medusa always spawns with Ecco’s horizontal position, and a vertical position a set distance offscreen. Whether it’s above the screen or below the screen depends on whether the spawn trigger is above or below the mid-point of the screen. Because I want to ride The Medusa upward, I want it to spawn at the highest possible point below me, which is a job for camera manipulation. Camera manipulation also allows me to prevent The Medusa from re-spawning at a second location later, reducing lag.

Aqua Tubeway

So, normally I would only be able to use trigger-squeezing to save a few frames, but because the next level spawns Ecco in midair, and because midair rotation speed is capped, but not reset, on level load, there’s some extra considerations to take at the end of the level. In my first TAS I had no idea what affected midair rotation speed, and just took the first ending I could get that let me splash down with a favorable angle in the next level. Turns out this can be accomplished at least a second faster.

Skylands

Lots of use of super-breaching for horizontal speed at the start of the level. Most of the time savings here come from better angle control when breaching.

Fin to Feather

Eight way swooping.

3D Vines

The Vines cause some lag, but there’s no way to destroy them or prevent them from spawning, so we fall back to minimizing horizontal and vertical movement to save frames.

Eagle’s Bay

So, you’re supposed to transform into a gull, fly left to get a key song from a glyph, turn back into a gull, fly right to get past a giant rock wall, and then sing to the barrier glyph to get it out of your way. Which is exactly what the old TAS did. It’s much faster just to fly right and find a friendly eagle to carry you out of bounds, where you can swim around the barrier glyph without singing it out of your way.

Asterite’s Cave

Some better strategies for pushing around the top-halves of the broken glyphs. Some better strategies for pushing around the rock eating worm. Also, when the top half of a broken glyph gets within the detection range of a bottom half, it instantly stops and then slowly magnets toward the bottom half, where it will heal into a key-glyph when it gets close enough. I saved some time by using camera manipulation to prevent this from happening until the top half was much closer to the target point. Also, on the first one, I use sonar to make the bottom half bounce around so that the target point would oscillate closer to the top half and save a few more frames. Swimming through the giant DNA is a huge, slow pain, but I couldn’t manage to get swimming around it to work.

The Lost Orcas

Whole bunch of time saved by letting myself bump into walls. Also, more optimal destruction of shell barriers, so I don’t have to stop for them multiple times. Also, better breaching angles. Also, better approach vectors to the lost orcas to make them follow me faster. Also, some lag reduction by being careful about which enemies I let respawn for future kill boosts. Nothing to be done about having to follow the slow orca to the end of the level. There’s a rock barrier in the way if I try to swim there without the orca’s guidance. And even if I could clip past or swim through that barrier, the end of level trigger doesn’t spawn unless the guiding orca got close enough.

Maze of Stone

Rocket propelled turtle. Rocket propelled rock. Oh, and some better positioning for pushing the initial, barrier-breaking rock. Oh, and better positioning for sonaring the rock-breaking star wreath around. Oh, and damage boosting through part of the swarm of falling shells.

Four Islands

Slightly faster strategy for getting through the shell barrier. Slightly faster strategy for singing the rock barriers apart at the end. Nothing to be done about the slow dolphin I have to follow to get the rock breaking song,

(Link to video)
  Except hope he doesn’t randomly get drunk and break physics for no reason, of course.
At least the level end spawns without having to find and follow the second slow dolphin guide.

Sea of Darkness

Some lag reduction by being careful about which enemies I kill and where, and which ones I prevent from respawning versus keeping around for kill boosts.

Vents of Medusa

Better understanding of the no-charge area around remnant stars allows me to take a better path through the swarm of jellyfish. Also, damage boosting through part of it.

Gateway

Nothing special.

3D Jellyfish

So, in 3D levels, constantly charging is the fastest way to move. But Ecco homes very strongly onto 3D Jellyfish, while charging which can make it difficult or impossible to navigate into the rings if jellyfish are in the other direction. So I spent a lot of time manipulating the spawn positions of jellyfish, and sonaring jellyfish to kill them so that I could constantly charge without missing hoops. Jellyfish are also the laggiest of the 3D level enemies.

Sea of Green

I think rocket propelled rocks, were the biggest improvement.

Moray Abyss

This level is essentially a long boss fight. There’s a giant conch shell which floats down an undersea ravine, occasionally trying to crush you against the walls, or summoning gigantic eels that kill you nearly instantly. Once the shell settles at the bottom of a ravine, a large eel comes out that you can kill, ending the level. So, it turns out that Ecco can push the giant conch shell around. In the first TAS, I never learned this, because you take damage every time you bump it, so I never thought to check actively swimming into it. Simply constantly swimming down into it from above saves about 39 seconds. But the speed you run into it also matters, so hitting charge against it whenever possible saves just over 12 seconds more. There are some other factors like needing to refill health from occasional schools of fish, and regularly spaced eels in the walls that will kill you in two hits and don’t grant invincibility frames, but these are minor details (that happen to add a huge amount of complication to TASing this boss.)

Sea of Birds

In Lordran, the flow of time itself is convoluted, the past, present, and future can intertwine with each other, and you can experience things from a timeline not your own.

The Eye

This level is long and annoying, so I skip it.

Big Water

This level is not long or annoying, but I skip the important part anyway. (Even though this skip is much, much harder and more frustrating to make work.)

Deep Ridge

Like all undead, Ecco will respawn from the nearest bonfire upon death, as though no time had past since resting there, and yet, some of his prior life's effects upon the world may remain…

The Hungry Ones

Although the shark has a higher top speed than the dolphin, the shark cannot cancel charges, and thus cannot super breach as often. Thus, it is faster to use the dolphin.

Secret Cave

That was short.

3D Sharks

While, in 2D levels, charging into an enemy brings you to a complete stop, in 3D levels, it has no effect on your speed whatsoever, but allows you to charge again immediately. In 3D levels, charging provides acceleration based on a continuous formula that depends only on how many frames are left in the charge. The more frames left, the more acceleration you get. Combined, this means that running into as many sharks as possible actually makes the level go faster. So long as you don’t get carried away and forget to hit each ring. Also, Sharks aren’t very laggy, so there’s no need to kill them with sonar.

Lunar Bay

That thing I did in Crystal Springs? Turns out it also works here. But only on the second barrier. Still have to ask a glyph to suck the first barrier into a black hole.

Vortex Future

Did you know that dolphins can fly?

Black Clouds

Because I enter the final tube from the side, there’s no need to sonar the first barrier-eating glyph which removes the top-most barrier. It was dumb of me to do it the first time.

Gravitorbox

Because of super-breaching, it’s faster to enter the middle tube along the bottom. Even if it does cut short the fun bizarre-gravity section.

Globe Holder

Gained about eight seconds by learning how the boss works.

Convergence

Sadly, there is nothing for Ecco to gain by killing himself here.

Dark Sea

A combination of camera manipulation and swimming through walls makes it possible to start the autoscroller section partway through, saving a bit over a minute. Also, some trigger squeezing action at the end.

New Machine

Just a trigger squeeze, nothing important.

Vortex Queen

It turns out that making the queen pop out at the start of the fight actually makes her take longer to become vulnerable. Also, it turns out that it’s barely possible to get one extra hit in on her first cycle. Also, after she vomits up her tongue, the fight won’t proceed until all the pieces fly off camera and despawn.

Home Bay Again

Nothing major, only 13 frames found.

3D Mixed

Unbeknownst to the other 3D levels, the dark lord forged one additional lag in secret. One lag to rule over the bearers of all other lag. That lag is in this level. I fought it off as best as possible, but still managed only to gain 8 piddling frames over the original.

Atlantis

Better angled-jumps for the surface portion. Better stone-handling makes up most of the rest of the difference. And one last instance of a rocket propelled rock.

Fish City

As a dolphin, this is a pretty short level, but I still found some time savings by more optimal maneuvering around the currents, and strategic use of the 4-pixel boost from starting a charge to get out of the strongest current segments faster.

City of Forever

More like City of Takes forever to TAS. This level is littered with stone gateways that only open for an enemy that can kill you instantly if it gets mad. It’s supposed to be a stealth mission where you follow the Vortex Larva as it wanders aimlessly through the mazelike ruins of Atlantis. But it turns out to be faster to just swim right in front of it in a few places to get it to swim directly at the gate, instead of through a convoluted series of waypoints. Also, when it’s angry, you can push it with your sonar, and how hard it gets pushed depends on how fast you were swimming when you loosed the sonar blast.

It’s an improvement so there has to be a

Timing Comparison Table

Level Original End Time Draft End Time Draft Level Savings Draft Overall Savings Final End Time Final Level Savings Final Overall Savings Total Level Savings Total Overall Savings
DiffSelect 1027 1025 2 2 1025 0 0 2 2
Home Bay 1921 1893 26 28 1872 21 21 47 49
3D Shells 4415 4365 22 50 4313 31 52 53 102
Crystal Springs 4752 4697 5 55 4645 0 52 5 107
Fault Zone 6210 6038 117 172 5882 104 156 221 328
Two Tides 10588 10305 111 283 10033 116 272 227 555
Trellia's Bay 11735 11408 44 327 11128 8 280 52 607
Skyway 12420 12078 15 342 11766 32 312 47 654
Sky Tides 15237 14896 -1 341 14581 3 315 2 656
Tube of Medusa 16022 15635 46 387 15297 23 338 69 725
Aqua Tubeway 19881 19430 64 451 19092 0 338 64 789
Skylands 21524 21038 35 486 20678 22 360 57 846
Fin To Feather 22651 22024 141 627 21649 15 375 156 1002
3D Vines 25270 24506 137 764 24071 60 435 197 1199
Eagle's Bay 27936 25650 1522 2286 25172 43 478 1565 2764
Asterite's Cave 31170 28567 317 2603 27954 135 613 452 3216
Time Travel 1 32083 29480 0 2603 28867 0 613 0 3216
The Lost Orcas 45181 41842 736 3339 41038 191 804 927 4143
Maze of Stone 50122 46156 627 3966 45205 147 951 774 4917
Four Islands 54740 50533 241 4207 49552 30 981 271 5188
Sea of Darkness 56938 52543 188 4395 51463 99 1080 287 5475
Vents of Medusa 58180 53687 98 4493 52607 0 1080 98 5573
Gateway 58708 54212 3 4496 53126 6 1086 9 5582
3D Jellyfish 61586 57024 66 4562 55620 318 1404 384 5966
Sea of Green 63494 58874 58 4620 57434 36 1440 94 6060
Moray Abyss 69657 62699 2338 6958 60529 730 2170 3068 9128
Sea of Birds 72670 65654 58 7016 62825 659 2829 717 9845
The Eye 89308 66554 15738 22754 63695 30 2859 15768 25613
Big Water 91011 68232 25 22779 64621 752 3611 777 26390
Deep Ridge 106398 82977 642 23421 77807 1559 5170 2201 28591
The Hungry Ones 108396 84923 52 23473 79753 0 5170 52 28643
Secret Cave 108835 85337 25 23498 80167 0 5170 25 28668
3D Sharks 111250 87645 107 23605 82475 0 5170 107 28775
Lunar Bay 114509 90522 382 23987 85287 65 5235 447 29222
Vortex Future 118395 94263 145 24132 86443 2585 7820 2730 31952
Black Clouds 121012 96671 209 24341 88365 486 8306 695 32647
Gravitorbox 122425 97969 115 24456 89663 0 8306 115 32762
Globeholder 124997 100211 330 24786 91754 151 8457 481 33243
Time Travel 2 125905 101449 0 24456 93143 0 8306 0 32762
Convergence 127522 102705 31 24817 94245 3 8460 34 33277
Dark Sea 138080 108923 4340 29157 100446 17 8477 4357 37634
New Machine 145898 116727 14 29171 108250 0 8477 14 37648
Vortex Queen 148544 119378 -5 29166 110573 328 8805 323 37971
CRD 155087 125911 10 29176 117110 -4 8801 6 37977
Epilogue 155740 126552 12 29188 117750 1 8802 13 37990
3D Mixed 158286 129220 -122 29066 120288 130 8932 8 37998
Atlantis 162350 132933 351 29417 123887 114 9046 465 38463
Fish City 163200 133758 25 29442 124684 28 9074 53 38516
City of Forever 169903 140095 366 29808 129632 1389 10463 1755 40271
Total final savings: 40271 frames = 11:11:11 in mm:ss:ff format. I swear I didn’t manipulate my savings to make this happen. I actually had no idea until I was dividing out the number to figure out how to render it as a human readable time. Kinda fun coincidence, though.

City of Forever is special and gets a comparison table all for itself

Gate Original Trigger Level Frame Draft Trigger Level Frame Draft Gate Savings Draft Overall Savings Final Trigger Level Frame Final Gate Savings Final Overall Savings Total Gate Savings Total Overall Savings
1 586 559 27 27 403 156 156 183 183
2 1531 1451 53 80 971 324 480 377 560
3 2536 2439 17 97 1959 0 480 17 577
4 2865 2761 7 104 2280 1 481 8 585
5 3961 3894 -37 67 2646 767 1248 730 1315
6 4549 4430 52 119 3155 27 1275 79 1394
7 5071 4840 112 231 3575 -10 1265 102 1496
8 5187 4956 0 231 3686 5 1270 5 1501
9 5645 5186 228 459 3900 16 1286 244 1745
10 6300 5835 6 465 4507 42 1328 48 1793
11 6368 5916 -13 452 4567 21 1349 8 1801

Possible Improvements

I did not do any of the complex math required to prove that my steering is optimal. In fact, I did not even bother to figure out how to pose those math problems. Therefore it is possible that my steering is suboptimal.

Multiple real time Ecco speedrunners have reported that, on occasion, for no apparent reason, after a Time Travel cut-scene, the level starts normally, instead of taking a few seconds to make Ecco spin in. I was not able to reproduce this, and, in reverse-engineering the game I was not able to find a code path that should cause this to happen. There was also speculation that it has to do with failing to power-cycle the console before starting a new run after entering the debug/level select code.

Multiple real time Ecco speedrunners have reported that, in Vortex Future, they were able to get an antigravity ball to push them through a wall. I could not reproduce this, but also see no reason why the same thing shouldn't work in Black Clouds. Or why Vortex Larva wouldn't be able to do it in City of Forever.

Multiple real time speedrunners have video evidence of Ecco "randomly" failing to collide with walls and/or floors in the vortex future levels. I could not reproduce this, but it would allow for significant skips in these levels if the mechanism were determined.

Both Black Clouds and Gravitorbox have the level geometry required to initiate zipping in the way I used in Vortex Future, but due to collision box loading order or other reasons, I was not able to initiate any useful zips in those locations. Again, these would produce significant time saves.

Screenshot Suggestions



Memory: Claiming for judging

Memory: Syncs on 2.3.0 release.

Optimization is superb, a gigantic improvement on the current publication.

The run was really fun to watch, with fast movement and various tricks and glitches. Of note was the zip sequences. Even with the additional autoscrollers of hard mode, the run never stopped being entertaining. The audience agrees with only positive comments and positive votes.

Accepting to Moons as an improvement to [1180] Genesis Ecco: The Tides of Time (USA) by Upthorn in 47:38.72.

feos: Pubthorn!


Similar submissions (by title and categories where applicable):