TASVideos

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

Submission #6608: Fizztastic's PSX Animorphs: Shattered Reality in 28:56.65

Console: Sony PlayStation
Game name: Animorphs: Shattered Reality
Game version: USA
ROM filename: Animorphs - Shattered Reality (USA).cue
Branch:
Emulator: Bizhawk 2.2.1
Movie length: 28:56.65
FrameCount: 102971
Re-record count: 28184
Author's real name: Jean-Francois Boyer Bergeron
Author's nickname: Fizztastic
Submitter: Fizztastic
Submitted at: 2020-01-28 07:48:01
Text last edited at: 2020-02-24 17:56:00
Text last edited by: Spikestuff
Download: Download (43905 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:

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.

Temporary Encode (with subtitles)

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.


Similar submissions (by title and categories where applicable):