Jump to content

[RESEARCH][ORAS] Battle Institute Log


Eskuero

Recommended Posts

This part of ORAS savegame structure wasn't documented here: https://projectpokemon.org/wiki/Pok%C3%A9mon_ORAS_Save_File_Structure

So I've spent some time dumping my Alpha Saphire savegame to locate the log of the Battle Institute records. So I succesfully did and wanted to share the results here. I assume all the values are stored the same way on every sixth gen game, but the starting offsets for XY are probably different from the ones on ORAS.

Every type of battle have up to 5 slots to save your better records, adding a new record reorders the list of records showing the best on the top and the worse on the bottom. Getting a new record that matches the same amount of points than an older one puts the latest one over the older.

When the list is already filled with 5 records and you get a better one, it will automatically delete the record on the bottom of the list to make room for the new.

/// Individual battle records ///

Starting offset: 1C000

Finish offset: 1C063

Size of every record: 14

First Pokemon is stored on bytes 5-6, second on 8-9 and third on C-D.

They are referenced by their Pokedex entry number.

/// Double battle records ///

Starting offset: 1C064

Finish offset: 1C0C7

Size of every record: 14

First Pokemon is stored on 5-6, second on 8-9, third on C-D and fourth on 10-11

They are referenced by their Pokedex entry number.

The two first bytes of every record refers to the amount of points obtained for that record. This means the bigger number you can store is 65535, but the game simple glitches the quantity if is bigger than four digits, so you're restricted up to 9999 (which I don't think is still a legal value to obtain). The next two bytes are always 10 B1 in the case of individual battles and 10 A9 in the case of double battles, but I really can't figure what are they for. However leaving them untouched does no harm when modifying other values of the record.

Remember every value stored as hex on two different bytes is read starting from the last one

Per example, 85 02 is read as 02 85, which in decimal means 645, the pokedex number for Landorus.

Example of individual record:

00 09 10 B1 06 00 00 00 85 02 01 00 82 02 00 00 00 00 00 00

2304 points using Charizard, Landorus and Thundurus.

Example of double record:

37 12 10 A9 06 00 00 00 85 02 01 00 82 02 00 00 5E 00 00 01

4663 points using Charizard, Landorus, Thundurus and Gengar.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...