Skip to content
Clément Gallet edited this page May 13, 2016 · 19 revisions

Route

The Route is described and compared with previous tases and speedruns.

Sketch Glitch

The sketch glitch is the major glitch used in this run. Missing a sketch with Relm within certain conditions induces big chunks of copy from ROM to RAM that can lead to some nice things. The technical details of the sketch glitch are described here, and the consequences are exposed here. To make easier setting up the numerous tests, a Test bench has been written. Here is also the route that is needed to get the right spell in the 28th position.

Triggering the sketch glitch can kill ennemies, making them untargetable, which disable all commands that target ennemis by default. Here is the results on the Triangle Island.

Escaping

A useful manipulation through the entire tas will getting preemptives, or as a general matter, being able to escape quickly. These factors are determined by the value of the frame counter at the beginning of the battle, so it can be manipulated easily by delaying the battle. Writing a script to predict this will save a lot of time.

Equip-anything glitch (JP)

Let's see if we can do something from JP Glitch attacks.

Triggering the ending

A fast way to trigger the ending is to modify the event pointer, a 24-bit address that stores where in the list of events ($CA0000-$CCE5FF) we are. This event pointer is stored at $E5-$E7. During a fight, the game makes a backup to $12E5-$12E7 and restores at the end of the fight, so the modification should be placed there. The list of events that triggers the ending starts at $CA1362. So this should trigger the ending if executed during a fight:

A9 62 13    LDA #$1362   Well, only if we are in 16-bit accumulator mode
8D E5 12    STA $12E5    Address $12E7 should commonly be #$CA, so no need to write it 

Sub-frame save corruption

It should be possible to corrupt a savefile by reseting at the right time, as it is done in the Chrono Trigger TAS. Relevent addresses for accessing new areas are:

$1F60: World Map XY position (2 bytes)
$1F64: Map zone (0x01FF) and flags (0xFE00) (2 bytes)
$1FC0: Character XY position (2 bytes)

Several exploits can be used, such as reseting between X and Y position to access to world map coordinates, reseting before character position to access new positions inside a town/dongeon, or reseting between the two bytes of the map zone to access new zones. Here is a list of location ids.

Reminder list

There are a lot of possible optimisations (small, mostly) that have to be kept in mind during the TAS.

SRAM

List of SRAM addresses with some adds by me.

Sources

Clone this wiki locally