Unknown module gameheader
Resources
Links
Videos
- TAS by JAX (JP) - Tool-Assisted Playaround by JAX for AC1. Uses PSXjin; unfortunately the run did not sync and the author had to cut the videos together.
- RTA by Hokuson (JP) - A speedrun with a very thorough explanation of the game's mechanics (especially speed mechanics).
- WR RTA by pmcTRILOGY - World Record any% run of AC1 as of March, 2020.
Emulation (BizHawk) Notes
- Turn on Calculate Lag from the GPU option in the PSX configuration menu. This game lags a lot and your inputs will need to aligned around lag frames all the time.
- Even with lag calculated from the gpu, there are some frames that just wont' accept input correctly unless the input is held down for multiple frames. When trying to find the very first possible input for the game, make sure to have the button held down for 3 frames or more when hunting because sometimes input can occur earlier as long as the input isn't a single frame long.
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 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
- Some missions give "points" to one of the two megacorps of the game. After mission 25, a cutscene is played depending on which corporation has more points, and a mission path unique to that corporation is then available. Failing a mission awards the points to the competitor corporation. Because the player can abort the same mission many timesn in a row, a huge amount of points for a given corporation can be accrued this way. See the mission schedule in the Resources section for a breakdown.
- There are 4 missions in the game that must be completed, or the player gets a game-over screen. Those missions are the Raven Test, the final corporation-specific mission (Destroy Justice (Chrome) or Mop Up Chrome Remnants (Murakumo)), Mop Up Chrome Remnants 2, and Destroy Floating Mines.
Specific Mission Notes
Ravens' Test
- The first Stork is situated at ground-level in front of the player, the second Stork starts on the ledge to the right of the first Stork.
- The Storks have much better mobility than the player does and keeping the Storks from running away is a top priority.
- Use the rifle’s knockback to stop the first Stork from taking off before the player can get to it. Shooting it right when it tries to fly away seems to bug the boosters out and keep it grounded.
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.
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 | -21149 | 14373 | 1149 | | NW | -524 | 0 | 8432 |
NE | -11351 | 14373 | 1149 | | NE | 524 | 0 | 8432 |
SE | -11431 | 14373 | -6013 | | SE | 524 | 623 | 3574 |
SW | -21149 | 14373 | -6061 | | SW | -524 | 623 | 3183 |
Support Column | X | Y | Z | | 5th Floor (Roof) | X | Y | Z |
---|
NW | -475 | 6873 | 5424 | | NW | -8649 | 12100 | 13649 |
NE | 475 | 6873 | 5424 | | NE | -1315 | 12100 | 13649 |
SE | 475 | 6873 | 4545 | | SE | -1315 | 12100 | 3851 |
SW | -475 | 6873 | 4545 | | SW | -8649 | 12100 | 3851 |
Destroy Floating Mines
- The door to the first melee must be opened in order to spawn enemies into the map. The second melee door will open if the first one is skipped by clipping, but no enemies will spawn and thus the mission can't be finished.
- Hustler One's CPU is located more or less directly above the starting point. Clipping out of bounds and falling to the bottom of the map to get wrapped to the top of the map will have the player fall directly into the hallway leading up to the mission destructible.
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 Hallway | X | Y | Z |
---|
NW | -7168 | 20251 | 12934 |
NE | -5237 | 20251 | 12987 |
SE | -5273 | 20251 | 12421 |
SW | -7849 | 20251 | 12448 |
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:
- 2 mission = 0 frames
- 3 mission = 2 frames
- 4 mission = 4 frames
- 5 mission = 6 frames
- ...
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.
- 1 line of text: 9 frames
- 2 lines of text: 11 frames
- 3 lines of text: 11-13 frames
- 4 lines of text: 15 frames
- 5 lines of text: 17 frames
Each image that is shown during a slide has a set cost of frames:
- Image shown in new slot: 12 frames
- Image shown in an existing slot: 3 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:
- 3 frames after last held ‘X’ input
- 5 frames to next single ‘X’ input to accept mission
- 17 frames to next single ‘x’ input launch mission
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:
- The timing to release the 'X' button on a slide is 8 frames before the first frame the orange "next" triangle appears on the slide.
- The timing to press the 'X' button to accept a dialog is 3 frames before the dialog is fully rendered.
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.
Version Differences
NTSC vs JP
- Significantly less lag in JP version for some reason. Mission select screen is almost lagless.
- Mission briefing slides can be skipped much, much faster because text doesn’t take forever to spell itself out.
- Dialog differs in length. In the Ravens' Test, the dialog at the conclusion of the test takes longer in the JP version than the NTSC version.
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:
- The Agetec logo is shown on startup rather than the FROMsoft logo.
- The sample emblems the player can select from for their emblem are no longer generic emblems but the emblems of all of the ranking Ravens in the game.
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.
Unknown module gamefooter