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

Sega Genesis
baseline
BizHawk 2.0.0 personal DevBuild
131251
59.922751013550524
9934
Unknown
ECCO - The Tides of Time (U) [!].bin
Submitted by upthorn on 12/1/2018 11:01:05 AM
Submission Comments

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.

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, Except hope he doesn’t randomly get drunk and break physics for no reason, of course.
(flowplayer module removed)
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

LevelOriginal End TimeDraft End TimeDraft Level SavingsDraft Overall SavingsFinal End TimeFinal Level SavingsFinal Overall SavingsTotal Level SavingsTotal Overall Savings
DiffSelect102710252210250022
Home Bay192118932628187221214749
3D Shells4415436522504313315253102
Crystal Springs4752469755546450525107
Fault Zone621060381171725882104156221328
Two Tides105881030511128310033116272227555
Trellia's Bay11735114084432711128828052607
Skyway124201207815342117663231247654
Sky Tides1523714896-13411458133152656
Tube of Medusa160221563546387152972333869725
Aqua Tubeway19881194306445119092033864789
Skylands215242103835486206782236057846
Fin To Feather226512202414162721649153751561002
3D Vines252702450613776424071604351971199
Eagle's Bay279362565015222286251724347815652764
Asterite's Cave31170285673172603279541356134523216
Time Travel 132083294800260328867061303216
The Lost Orcas45181418427363339410381918049274143
Maze of Stone50122461566273966452051479517744917
Four Islands5474050533241420749552309812715188
Sea of Darkness56938525431884395514639910802875475
Vents of Medusa58180536879844935260701080985573
Gateway587085421234496531266108695582
3D Jellyfish61586570246645625562031814043845966
Sea of Green634945887458462057434361440946060
Moray Abyss69657626992338695860529730217030689128
Sea of Birds72670656545870166282565928297179845
The Eye89308665541573822754636953028591576825613
Big Water9101168232252277964621752361177726390
Deep Ridge10639882977642234217780715595170220128591
The Hungry Ones10839684923522347379753051705228643
Secret Cave10883585337252349880167051702528668
3D Sharks1112508764510723605824750517010728775
Lunar Bay11450990522382239878528765523544729222
Vortex Future11839594263145241328644325857820273031952
Black Clouds121012966712092434188365486830669532647
Gravitorbox1224259796911524456896630830611532762
Globeholder1249971002113302478691754151845748133243
Time Travel 21259051014490244569314308306032762
Convergence127522102705312481794245384603433277
Dark Sea138080108923434029157100446178477435737634
New Machine1458981167271429171108250084771437648
Vortex Queen148544119378-529166110573328880532337971
CRD1550871259111029176117110-48801637977
Epilogue1557401265521229188117750188021337990
3D Mixed158286129220-122290661202881308932837998
Atlantis16235013293335129417123887114904646538463
Fish City16320013375825294421246842890745338516
City of Forever16990314009536629808129632138910463175540271
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

GateOriginal Trigger Level FrameDraft Trigger Level FrameDraft Gate SavingsDraft Overall SavingsFinal Trigger Level FrameFinal Gate SavingsFinal Overall SavingsTotal Gate SavingsTotal Overall Savings
15865592727403156156183183
2153114515380971324480377560
32536243917971959048017577
4286527617104228014818585
539613894-3767264676712487301315
645494430521193155271275791394
7507148401122313575-1012651021496
851874956023136865127051501
95645518622845939001612862441745
106300583564654507421328481793
1163685916-13452456721134981801

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 by upthorn in 47:38.72.
feos: Pubthorn!
Last Edited by adelikat on 10/28/2023 9:08 PM
Page History Latest diff List referrers