Unknown module gameheader

Resources

Videos


Emulation (BizHawk) Notes


Glitches / Techniques

Aborting Missions

By pressing Start during a mission to pause the game, then select, the player can abort a mission, ending it immediately. The game's storyline moves on whether the player succeeds or fails a mission, so by aborting a mission as soon as it starts, the player "finishes" the mission immediately, and advances the game's storyline. This is the defining trick of the any% category of the game, where almost all of the game is skipped by doing this. There are 33 missions in AC1 that can be skipped in this manner.

Out-of-Bounds

The glitch in action: https://i.imgur.com/0yvyZ5n.gif
The lightweight, bipedal legs part LN-501 and the XCA-00 core, when combined with either the AN-3001 or ANKS-1A46J arm parts causes an animation glitch when strafing and moving backward. The walking animation becomes "locked" in a strange manner and moves in the Z direction incorrectly, usually in the negative direction, causing the user to clip through the floor. This technique proves pivotal to the any% run, as it allows the player to subvert mission layouts entirely.
Actually performing the glitch comes down to just strafing left or right, and then pressing and holding down and the right time. The actual timing of the down press appears to vary depending on terrain conditions, but there is a pretty consistent technique to it. If the player is strafing to the right, when the AC's right leg is currently swinging forward and positioned straight down (so that it cover up the left leg), pressing down will cause the glitch to occur. The same works when moving left, switching which leg is being watched. If a script is being run to monitor the player's speed, an even more accurate technique is to start holding down exactly three frames before a speed burst occurs when the leading leg is point down. The LN-501 legs move in "bursts" of speed where it is not a consistent velocity, but punctuated by speed increases as each leg kicks forward.
There is not only one frame that will cause the animation glitch to occur. The timing detailed above will tend to yield the first frame that down can be held to get the glitch to occur, but many frames after that frame will also work, sometimes with a gap of frames that won't in between. Sometimes, changing the timing of the down press will also change the speed and distance at which the player moves while glitching. There appears to be two different animation speeds that can be achieved with this glitch: a fast speed, and a slow speed. The fast speed moves further both horizontally and vertically than the slow speed. Whether a slow or fast animation occurs seems to be entirely dependent on when the down button is pressed during the strafing animation. The animation can actually cause the player to move upwards instead of clipping through the ground. It is rare and difficult to set up, but if the player is walking uphill when the glitch is performed, there is a possibility to get the glitch to work in the reverse direction.

Coordinates Under/Overflow

Armored Core's map coordinates are stored as signed 16-bit integers, which means that maps have limits at -32,768 and 32,767 for each axis. The player and other entities are typically prevented from ever getting close to these limits by in-game mission-failure boundaries, or just obstacles like walls, but if entities cross these boundaries, their position is either over- or under-flowed and the entity will be "teleported" to the other side of the map. This property is used while clipping out-of-bounds by falling to the bottom of the map, causing the player to reappear at the top so that they can then land in some part of the map that is very high up. The most amusing and useful application of this property, however, is on the Destroy "Justice" mission, where the mission's target destructible can be destroyed from the opposite side of the map. See the mission notes for more information.

Laser Blade Damage Manipulation

Laser blades have something of a "critical hit" multiplier that is secretly applied to their damage. Testing has revealed that a laser blade hit can do anywhere from 1x the listed damage of the laser blade to 16x. Furthermore, laser blades can hit multiple times per swing if spaced correctly, leading to even more damage. Getting the laserblade to do higher multiples of damage can be manipulated by adjusting approach angle, and activation timing.
This is extremely useful for a TAS (particularly the Raven’s Test mission) since even the starter laserblade can do enormous amounts of damage very quickly, exceeding even very powerful weapons like the large rockets' damage per second. Interestingly, current testing has not shown the laserblade to be dependent on the RNG for damage. Freezing the RNG does not seem to change the results of laser blade hits, only adjusting approach and activation timing. This could mean that there are other more complicated random factors that affect the damage done, but in practice, this means that laser blade damage can be controlled and made deterministic.

RNG and Synchronization

Armored Core uses the Playstation's RNG function, which is a well-known LCG implementation (glibc), and writes this value to a well-known memory location (0x80009010).
Xn+1=(1103515245*‬Xn+12345) mod 231
The RNG updates constantly, especially when projectiles and destruction particles are present. Firing weapons tends to update the RNG, probably to calculate projectile spread. Extremely fortunately, the RNG resets at the start of missions. This hopefully means that resynchronization of the movie should be fairly straightforward, where input would just have to be lined up against mission start boundaries.

Missions

Specific Mission Notes

Ravens' Test

Destroy "Justice"

This mission can be completed very quickly using an exploit whereby three grenades (WC-GN230) are shot into space behind the player’s starting position. Note that the AC needs to be positioned between the edge of the level and the wall, and needs to be fairly close to the wall. The grenades do the most damage to the destructible at this distance and can end the mission with just three grenades.
The edges of maps in all axes actually wrap around to the other side due to integer over/underflow of the game’s 16-bit coordinates (-32768 to 32767). This phenomenon is generally unobservable due to mission boundaries preventing the player from going very far. In the Destroy Justice Mission, however, the entire length of one of the game’s axes is consumed for the level (it’s a long tube). On one side of the tube (the player’s starting position side), there is empty space without a wall. On the other side is the wall with the mission objective destructible on it.
What makes these properties exploitable is the fact that entities that cross the coordinate boundary will wrap around to the other side of the map, and "entities" includes ACs, MTs, or most importantly, projectiles. Just on the other side of the space graphic on the open side of the map is actually the wall with the mission object. Firing grenades into space causes the grenades to wrap to the other side of the map, just behind the wall. Grenades have a large enough blast radius that their hitbox clips through the wall and damages the mission objective destructible.
Testing has revealed that only the grenade launcher has the blast radius necessary to perform this exploit.

Mop Up Chrome Remnants 2

Entering the 4th basement floor triggers the radio transmission that tells the player to return to the surface. This radio transmission must be activated to spawn enemies into this map and to set up the trigger for spawning Boss Savage (Sledgehammer). This room can be clipped to fairly quickly in a variety of ways. Clipping from the hallway the player starts in is a very fast path.
The final mission trigger for this level is in the hallway the player starts near. In order to get from the 4th basement floor to the hallway, the player will not likely have enough energy to fly around the rooms while clipping since the second floor is directly underneath the hallway, and it's pretty far up there. Luckily however, there are support columns in the 2nd basement floor that do not have collision planes on their tops and bottoms. The player's AC can be positioned direction under one of these columns, fly up through it, and land directly in mission trigger that spawns Boss Savage.
Here is a drawing explaining how flying through the column could work: https://i.imgur.com/wRCooCj.png
Below are tables of coordinates defining polygons that enclose the mission triggers and other useful areas in the mission. These coordinates can be plugged into Zinfidel's Radar Script to generate maps of the zones on the radar. The 5th floor roof zone needs to be avoided when flying to the support column because it's easy to accidentally clip into this room.
4th Floor (Trigger)X Y Z Entrance Tunnel X Y Z
NW -21149143731149 NW -524 0 8432
NE -11351143731149 NE 524 0 8432
SE -1143114373-6013 SE 524 623 3574
SW -2114914373-6061 SW -524 623 3183
Support Column X Y Z 5th Floor (Roof)X Y Z
NW -475 6873 5424 NW -86491210013649
NE 475 6873 5424 NE -13151210013649
SE 475 6873 4545 SE -1315121003851
SW -475 6873 4545 SW -8649121003851

Destroy Floating Mines

Below are the coordinates of the hallway leading to the hallway that starts the second melee in the first part of Destroy Floating Mines. These coordinates can be used with the script mentioned above for Mop Up Chrome Remnants 2.
2nd Melee HallwayXYZ
NW-71682025112934
NE-52372025112987
SE-52732025112421
SW-78492025112448

Load Times

Each mission takes a variable amount of time from selection of the mission in the sortie list until the first possible input back at the main game hub menu. The amount of time a mission takes is broken up into 5 sections. IMPORTANT NOTE: Load times between the original Playstation (and BizHawk), Playstation 2, and the PSTV platform vary so much that RTAs of Armored Core can and will be faster than TASes. See the Version Differences section for more information on this.

Mission Selection

This is the cost of selecting the sortie from the list. The cost is measured from the first non-lag frame that appears once the mission selection menu is opened. It will always start with one lag frame, then alternate between normal and lag frames. There are two factors that affect this cost: the total number of sorties in the list, and the position of the sortie in the list. The first factor causes a set amount of frames that must be waited through before the first 'X' input:
he second factor is pressing the down or up button to select the mission. Each down button press must be separated by 3 frames from the previous (due to alternating lag frames, this equates to 1 normal frame between inputs), then an 'X' input can be made on the very next (2 frames) normal frame.
However! The sortie list accepts down/up inputs on the very first active frame, regardless of the number of missions in the sortie list. What this means is that in nearly all cases for all missions, the cost of pressing down/up to select a mission is completely encapsulated by the lag cost of the number of missions available, effectively reducing the cost to select a mission that isn’t at the top of the list to 0.

Slides

Calculated Timing
The slide show before each mission has a cost in frames that can be fairly accurately predicted. The factors that affect the cost of the slide show are the number of lines of text on each slide, the number of pictures that are displayed on each slide. To skip the slides as fast as possible, from the input that selects the slide until the input that brings up the mission accept dialog, X should be held for a number of frames to make the text display at a fast rate. The amount of frames this should be done for has been calculated.
Each image that is shown during a slide has a set cost of frames:
For example, a slide with 5 lines of text and one picture would require holding 'X' for 29 frames. There is a 3 frame gap between each slide (1 normal frame) that causes a new 'X' input to accept the current slide and continue on to the next.
To accept the mission and launch it, there is a fixed cost (28 frames) sequence:
Manual Timing
Slide timing has been calculated and does not need manual exploration at this point, but for posterity, these are the timings that were used to discover the calculated slide timings:

Load Time

This is the cost from the frame that the player accepts the mission, to the first frame of player input in the mission. This value is unfortunately highly variable, even for the same mission across different time slots and different playthroughs. All of the factors that affect this load time have not been discovered. The first pair of missions, Eliminate Squatters and Eliminate Strikers, for instance, can vary by as much as 200 frames in load time cost between selecting them for the first mission and the second mission. Some other missions exhibit this variance as well. Fortunately, it appears that there is a sort of "stable point" that the game reaches a few time slots into the game where missions generally take the same amount of time to load no matter when they are selected, but still vary by a little.
As such, exact load times for each mission can’t be recorded without knowing exactly what causes them to vary so much, however, the relationship between mission load times does tend to remain stable. For instance, Eliminat Squatters tends to be faster to load than Eliminate Strikers, even if their actual load times vary.
The first frame of possible input for a mission varies a bit, but will be very close to when the games HUD is initially shown, usually just a frame or two after the first frame when the whole HUD has been drawn. Some missions allow player input much before this marker however, so each mission needs to be examined individually.

Debriefing and Returning to Menu

The amount of time it takes from the frame the player aborts a mission, to the frame that needs an 'X' input to close the debriefing screen is nearly constant. It does vary, but it does not vary with respect to mission choice. It is around 570 frames. To time the 'X' input to close the debriefing window, count 5 frames back from the first frame that the grand total value displays.
The amount of time it takes from the frame the player inputs 'X' to close the debriefing screen to the first frame where the player regains control in the menu is the Returning to Menu cost. This value is nearly constant, and does not vary with respect to mission choice. It is coincidentally also around 570 frames.

Example Mission Frame Cost: Eliminate Strikers for Mission 1

See Zinfidel's any% TAS Document for a spatial- and color-formatted diagram of how all of the mission load time components fit together.

Version Differences

NTSC vs JP

Version 1.0 vs 1.1

The only known differences between the original edition of the game and the 2000 re-release are the following:

PSX vs PS2 vs PSTV

The Armored Core speedrunning community (and many others) permits and encourages runners to use PlayStation 2 consoles, and more recently the PlayStation TV (PSTV) platform, to do their speedruns. This is because those platforms have significantly better disk load times than original PSX hardware, which BizHawk's Octoshock core emulates faithfully. For late-model PS2s using the FDL (fast disk load) option, load times in Armored Core are reduced by 40%[1] . The PSTV platform is even faster, reducing load times by about 65%[2].
Since the category of this speedrun means that most of the speedrun is spent loading and unloading missions, even with significantly faster per-mission completion times, it is much slower than runs using the PS2 or PSTV.
[1] Measurements based on: https://www.nicovideo.jp/watch/sm19696898
[2] Measurements based on: https://www.youtube.com/watch?v=546uoe_3poU
Unknown module gamefooter

GameResources/PSX/ArmoredCore last edited by Zinfidel on 3/22/2020 11:55 PM
Page History Latest diff List referrers View Source