Game objectives
- Emulator used: Bizhawk 2.2.1
- BIOS (U) SCPH-7001 Version 4.1 (SHA1: 14DF4F6C1E367CE097C11DEAE21566B4FE5647A9)
- Aims for fastest time
- Taking damage to save time
- Abuses death
- Abuses programming errors
- Genre: Platformer
A note about playing back this movie
- This game crashes on Bizhawk 2.3, 2.3.1 and 2.3.2 so I advise playing it with either 2.2.1 or 2.2.2
- The movie also contains subtitles throughout.
Comparison with the currently published TAS
As was pointed in the thread for the currently published movie, I've included the internal timer value for the stages. Also note that the internal timer runs at 30FPS instead of 60. It also seems to be somewhat inaccurate since it shows +15 in 3-2 despite the stage being 8 frames faster then the previous movie.
Published Movie | Global | Stage | This Movie | Global | Stage | Delta Frame | Delta Stage | |
---|---|---|---|---|---|---|---|---|
Intro | 3107 | 1 | 1 | 3099 | 1 | 1 | -8 | |
New Game | 3314 | 4 | 4 | 3305 | 4 | 4 | -1 | |
Memory Card | 3498 | 8 | 8 | 3489 | 8 | 8 | 0 | |
The Entrance | 3670 | 10 | 10 | 3661 | 10 | 10 | 0 | |
Marco | 3807 | 11 | 11 | 3798 | 11 | 11 | 0 | |
Player Spawn | 4359 | 11 | 11 | 4338 | 11 | 11 | -12 | |
1-1 | 9538 | 2586 | 2574 | 9267 | 2238 | 2226 | -250 | -348 |
Player Spawn | 10088 | 2586 | 2574 | 9805 | 2238 | 2226 | -12 | |
1-2 | 15161 | 4828 | 2241 | 14874 | 4474 | 2235 | -4 | -6 |
Player Spawn | 15730 | 4828 | 2241 | 15434 | 4474 | 2235 | -9 | |
1-3 | 20676 | 7198 | 2369 | 20375 | 6539 | 2064 | -5 | -305 |
Player Spawn | 21246 | 7198 | 2369 | 20930 | 6539 | 2064 | -15 | |
1-4 | 28817 | 10173 | 2974 | 28436 | 9110 | 2569 | -65 | -405 |
The Sea | 29151 | 10175 | 2976 | 28770 | 9112 | 2572 | 0 | |
Jake | 29273 | 10176 | 2977 | 28893 | 9113 | 2573 | 1 | |
Player Spawn | 29664 | 10176 | 2977 | 29284 | 9113 | 2573 | 0 | |
2 | 36041 | 13343 | 3166 | 35648 | 12271 | 3157 | -13 | -9 |
The Forest | 36375 | 13345 | 3168 | 35982 | 12273 | 3159 | 0 | |
Marco | 36497 | 13346 | 3169 | 36104 | 12274 | 3160 | 0 | |
Player Spawn | 37057 | 13346 | 3169 | 36588 | 12274 | 3160 | -76 | |
3-1 | 40717 | 14992 | 1645 | 40189 | 13905 | 1360 | -59 | -285 |
Player Spawn | 41205 | 14992 | 1645 | 40674 | 13905 | 1360 | -3 | |
3-2 | 44836 | 16645 | 1652 | 44297 | 15573 | 1667 | -8 | 15 |
Player Spawn | 45285 | 16645 | 1652 | 44743 | 15573 | 1667 | -3 | |
3-3 | 51314 | 19624 | 2978 | 47200 | 16075 | 501 | -3572 | -2477 |
The Swamp | 51645 | 19626 | 2980 | 47532 | 16077 | 503 | 1 | |
Cassie | 51767 | 19627 | 2921 | 47654 | 16078 | 504 | 0 | |
Player Spawn | 52233 | 19627 | 2921 | 48120 | 16078 | 504 | 0 | |
4 | 60379 | 23676 | 4048 | 56233 | 20115 | 4036 | -33 | -12 |
The Gardens | 60711 | 23678 | 4050 | 56566 | 20017 | 4038 | 1 | |
Marco | 60833 | 23679 | 4051 | 56688 | 20018 | 4039 | 0 | |
Player Spawn | 61415 | 23679 | 4051 | 57259 | 20018 | 4039 | -11 | |
5-1 | 65552 | 25333 | 1653 | 61325 | 21758 | 1639 | -71 | -14 |
Player Spawn | 66108 | 25333 | 1653 | 61873 | 21758 | 1639 | -8 | |
5-2 | 69904 | 26996 | 1662 | 65612 | 23175 | 1416 | -57 | -246 |
Player Spawn | 70409 | 26996 | 1662 | 66105 | 23175 | 1416 | -12 | |
5-3 | 72189 | 27882 | 885 | 67845 | 24042 | 866 | -40 | -19 |
Player Spawn | 72763 | 27882 | 885 | 68410 | 24042 | 866 | -9 | |
5-4 | 74211 | 28599 | 716 | 69856 | 24760 | 716 | -2 | 0 |
The Dark | 74543 | 28601 | 718 | 70189 | 24762 | 718 | 1 | |
Jake | 74665 | 28602 | 719 | 70311 | 24763 | 719 | 0 | |
Player Spawn | 75046 | 28602 | 719 | 70692 | 24763 | 719 | 0 | |
6 | 82806 | 32469 | 3866 | 78437 | 28619 | 3855 | -15 | -11 |
The City | 83142 | 32471 | 3868 | 78774 | 28621 | 3857 | 1 | |
Rachel | 83264 | 32472 | 3869 | 78896 | 28622 | 3858 | 0 | |
Player Spawn | 83828 | 32472 | 3869 | 79460 | 28622 | 3858 | 0 | |
7-1 | 87679 | 34316 | 1843 | 81333 | 29277 | 654 | -1978 | -1189 |
Player Spawn | 88235 | 34316 | 1843 | 81896 | 29277 | 654 | 7 | |
7-2 | 92884 | 36250 | 1933 | 86469 | 31174 | 1896 | -76 | -37 |
Player Spawn | 93460 | 36250 | 1933 | 87046 | 31174 | 1896 | 1 | |
7-3 | 99289 | 38894 | 2643 | 92822 | 33620 | 2445 | -53 | -198 |
Player Spawn | 99896 | 38894 | 2643 | 93429 | 33620 | 2445 | 0 | |
7-4 | 105597 | 41244 | 2349 | 98960 | 35916 | 2295 | -170 | -54 |
The Finale | 105932 | 41246 | 2351 | 99296 | 35918 | 2297 | 1 | |
Rachel | 106054 | 41247 | 2352 | 99418 | 35919 | 2298 | 0 | |
Player Spawn | 106513 | 41247 | 2352 | 99877 | 35919 | 2298 | 0 | |
8 | 109620 | 42690 | 1442 | 102971 | 37354 | 1434 | -13 | -8 |
Loading Screen Optimization (Character Choice)
Marco was picked instead of Rachel for every stage because it saves time on every load. The usual time gain is around 12 frames per load with the exception of the initial loading of The Forest where it saves 76 frames compared to Rachel. Character selection doesn't matter in the “auto-scroller” stages (The Sea, The Swamp and The Dark) as all the characters have the same loading time. Rachel was picked for The City because she's the only character that can do a target lock damage boost to skip the third fight in 7-2 and the first fight in 7-4. In addition to that, she's the only character that can trigger the lever early in the last fight of 7-4. Finally, Rachel loads around 30 frames faster than all the other characters for the Finale stage.
The Pause Glitch
The pause glitch allows all the characters to keep the momentum of a moving platforms while the game is paused. This only works on platforms that move in either the X or Z axis. To perform the glitch, simply press Jump and then Start to pause the game within 10 frames of the jump input. While the pause is active, all the triggers (such as instant-death and fights) and enemies are disabled but the character and objects/walls retain collision.
The Existing Technology
- Lag Management
- The game will occasionally lag when scrolling most likely due to the loading of a new section or assets. Usually, those lag frames can be mitigated or sometimes completely avoided by simply changing the position of the character in any axis. Some actions are also more likely than others to cause lag when executed like jumping on the edge of a platform, jumping on a tilted platform, taking damage and moving near a static object.
- Jumping vs. Walking
- When jumping, your speed is locked to the value it had in the previous frame for the whole duration of the jump. When walking, his speed will oscillate slightly resulting in an overall slower movement option by about 12% versus jumping on the first possible frame after landing.
- Momentum Boost
- When riding a moving platform, jumping from it will carry their speed in every axis for the duration of the jump.
- Ledge Clipping
- When jumping with an apex near the edge of a platform, the game will sometime clip you on top of it if your hit box is close enough to the edge.
- Boost Meter Management
- When you power on the console, the boost meter will be full the first time entering an auto-scroller. It will otherwise remember how much boost you had when you finished your last auto-scroller even if you replay one of those levels. Furthermore, once depleted or under 25%, the boost meter will start filling back up to 25% where you'll be able to use your boost again. This 25% threshold is also very important because at the start of each subsequent "auto-scroller", you are unable to start moving until you can boost. So ideally, you want to finish the first two "auto-scrollers" with 25% boost to be able to move immediately on the next "auto-scroller". Resetting the console will put the meter back at 100% for the next auto-scroller.
- Damage Recoil & Target Locking
- During combat, it's possible to lock the orientation of the character with R1 so that you're always facing a specific enemy. There is also no distance limit that would break that lock as long as you hold down R1. Since you will always move backward when taking damage, it's possible to boost yourself on each enemy that you collide with or that hit you if you lock yourself onto an enemy and start moving away from it while locked. This is used to reach a checkpoint outside a fight in 7-2 and 7-4.
- Animation Substitution
- Instead of waiting for the recovery animation of enemies, I discovered that you could purposefully hit them during their recovery to force them into a block animation. This has the benefit of shortening the wait time between every hit. The only exception to this are the enemies without recovery animation (the Skirt and Na) and the Iskoort because their recovery animation is shorter than their block.
- Invulnerability Frames
- Some enemies will be invulnerable for a set number of frames after getting hit. The number of frames varies with the type of enemy but is also implemented inconsistently as there are two Hork-Bajir with a fast animation while the rest of them have a slower animation. Additionally, if you're standing too close to them while their invulnerability timer runs out, they'll instantly do a counter-attack move that makes them invulnerable for its duration. Doing Animation Substitution (see above) pretty much negates those invulnerability frames.
- Glitchy Jumps
- When jumping on the very edge of a ledge or seemingly at random, you can sometime gain extra height on that jumps.
- Checkpoint Abuse
- There are 3 checkpoints in the game that can be abused to skip part of a combat as they will respawn you outside of the combat zone. It saves quite a few seconds in 7-2. It also saves a few seconds in the first fight of 7-4. It's not used in the first fight of 3-1 because keeping full health to damage boost across the water saves more time then skipping the fight.
Useful Memory Addresses
Address | Size | Display Type | Name |
---|---|---|---|
1EE934 | 4 byte | Signed | Character X |
1EE930 | 4 byte | Signed | Character Y |
1EE92C | 4 byte | Signed | Character Z |
1E3B84 | 4 byte | Signed | Pause Glitch Speed |
1DD088 | 2 byte | Unsigned | Turbo |
181CCC | 4 byte | Unsigned | Game Timer |
181D98 | 4 byte | Unsigned | Stage Timer |
Suggested Screenshot: 45342
ThunderAxe31: Judging.
ThunderAxe31: Accepting as improvement over the current publication.
Spikestuff: Publishing.