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

Sony PlayStation
baseline
BizHawk 2.2.1
102971
59.94005994005994
28184
Unknown
Animorphs - Shattered Reality (USA).cue
Submitted by Fizztastic on 1/28/2020 7:48:01 AM
Submission Comments

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 MovieGlobalStageThis MovieGlobalStageDelta FrameDelta Stage
Intro310711309911-8
New Game331444330544-1
Memory Card3498883489880
The Entrance36701010366110100
Marco38071111379811110
Player Spawn4359111143381111-12
1-1953825862574926722382226-250-348
Player Spawn1008825862574980522382226-12
1-215161482822411487444742235-4-6
Player Spawn15730482822411543444742235-9
1-320676719823692037565392064-5-305
Player Spawn21246719823692093065392064-15
1-4288171017329742843691102569-65-405
The Sea2915110175297628770911225720
Jake2927310176297728893911325731
Player Spawn2966410176297729284911325730
23604113343316635648122713157-13-9
The Forest36375133453168359821227331590
Marco36497133463169361041227431600
Player Spawn3705713346316936588122743160-76
3-14071714992164540189139051360-59-285
Player Spawn4120514992164540674139051360-3
3-24483616645165244297155731667-815
Player Spawn4528516645165244743155731667-3
3-3513141962429784720016075501-3572-2477
The Swamp5164519626298047532160775031
Cassie5176719627292147654160785040
Player Spawn5223319627292148120160785040
46037923676404856233201154036-33-12
The Gardens60711236784050565662001740381
Marco60833236794051566882001840390
Player Spawn6141523679405157259200184039-11
5-16555225333165361325217581639-71-14
Player Spawn6610825333165361873217581639-8
5-26990426996166265612231751416-57-246
Player Spawn7040926996166266105231751416-12
5-372189278828856784524042866-40-19
Player Spawn72763278828856841024042866-9
5-474211285997166985624760716-20
The Dark745432860171870189247627181
Jake746652860271970311247637190
Player Spawn750462860271970692247637190
68280632469386678437286193855-15-11
The City83142324713868787742862138571
Rachel83264324723869788962862238580
Player Spawn83828324723869794602862238580
7-1876793431618438133329277654-1978-1189
Player Spawn8823534316184381896292776547
7-29288436250193386469311741896-76-37
Player Spawn93460362501933870463117418961
7-39928938894264392822336202445-53-198
Player Spawn99896388942643934293362024450
7-410559741244234998960359162295-170-54
The Finale105932412462351992963591822971
Rachel106054412472352994183591922980
Player Spawn106513412472352998773591922980
8109620426901442102971373541434-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

AddressSizeDisplay TypeName
1EE9344 byteSignedCharacter X
1EE9304 byteSignedCharacter Y
1EE92C4 byteSignedCharacter Z
1E3B844 byteSignedPause Glitch Speed
1DD0882 byteUnsignedTurbo
181CCC4 byteUnsignedGame Timer
181D984 byteUnsignedStage Timer
Suggested Screenshot: 45342

ThunderAxe31: Judging.
ThunderAxe31: Accepting as improvement over the current publication.
Spikestuff: Publishing.
Last Edited by adelikat on 11/2/2023 2:23 PM
Page History Latest diff List referrers