Thread: Research: Emerald's Battle Frontier
View Single Post
Old October 13th, 2012 (5:37 AM). Edited April 6th, 2015 by Agastya.
Agastya's Avatar
Agastya Agastya is offline
Grinding failed. Item Grind level dropped by 3.
Join Date: Feb 2010
Nature: Quiet
Posts: 72
I've previously posted things involving Em's Frontier in the Quick Research thread, but it's been ages ago and they're buried under a bunch of posts. For quick reference the posts are here: (Not my work, but a great reference) (another great reference)

Anyway, since I've made these posts, I've cleaned up my notes into a simpler format. Since most everything related to the Pokemon it uses is known now, I figured it'd be best to get all of my notes in one publicly viewable place that actually has traffic in the hopes somebody else will be able to make use of them.

Battle Frontier, Slateport, Verdanturf, Fallarbor modules
Battle Frontier: 0x5D97BC
Verdanturf Tent: 0x5DEC28
Slateport Tent: 0x5DE02C
Fallarbor Tent: 0x5DF69C

These follow a twelve byte data structure.

Species: 2 bytes
Movepool: 8 bytes (two per move)
Hold item: 1 byte (Determined by a master list located at 0x05CECB0)
EV spread: 1 byte
Nature: 1 byte
Padding/alignment: 1 byte

EV spreads are assigned by a bitfield to save space. Each stat with
EVs assigned to it will have the 510 EVs divided evenly among them.

HP: 0x1
ATK: 0x2
DEF: 0x4
SPD: 0x8
SATK: 0x10
SDEF: 0x20

Battle Pyramid wilds
Lv. 50: 0x6126B0
Open Level: 0x612E80

The Battle Pyramid wilds follow a 12 byte data structure.

Species: 2 bytes
Levels: 1 byte
Unknown: 1 byte
Movepool: 8 bytes

In Level 50, the level byte is the Pokemon's base level when spawning.
In Open Level, the level byte appears to be how many levels below the
player they spawn at base. In both cases, the wilds have a few levels
in variance.

Frontier Brains
Offset: 0x61156C

Frontier Brain Pokemon are stored in a 20 byte data structure.

Species: 2 bytes
Item: 2 bytes
IVs: 1 byte
Nature: 1 byte
HP EVs: 1 byte
Atk EVs: 1 byte
Def EVs: 1 byte
Spd EVs: 1 byte
Sp.Atk EVs: 1 byte
Sp.Def EVs: 1 byte
Moveset: 8 bytes

The item can be anything the hacker desires, following normal item
indexing instead of Frontier indexing.

All IVs are set to whatever the IV value is. Stick with a max of 31, I
haven't personally tried going higher.

EVs can go above 510 total. You can give something 255 EVs in every
stat and they all will be applied, but the game will lag a little bit
calculating the stats.

Each Brain's team is 120 bytes long. The first three entries are used
in their Silver symbol challenge, and the second three are for Gold.
Factory Head Noland's team data is two copis of Steven's team data at
the Mossdeep event since his team is randomly generated from the
master list as rental Pokemon.

Battle Pike wilds
Spawn Table: 0x553934
Lv50 wild movesets: 0x6121D4
Open Level wild movesets: 0x612274

The Battle Pike wilds follow a 12 byte data structure.

Species: 2 bytes
"Level variance": 1 byte
Unknown (Padding?): 1 byte
Movepool: 8 bytes

The species byte itself does nothing but help categorize. Wilds have
to be edited in the wild encounter table itself. Each slot in the
moveset data is set to read a certain moveset, and the spawns are
shared between Level 50 and Open Level challenges.

The "level variance" field appears to be how many levels they spawn
below the player at base.

Lastly, here's sonic1's post on how to edit the Frontier's ban list, in case you wish to allow your players to rampage with Rayquaza or something.
Originally Posted by sonic1 View Post
In emerald, at the offset 0x611C9A, there's a table with 10 entries of 2 bytes (shorts), followed by an FFFF at the end of the table, which marks the pokemon restricted for entry in Battle Tower. To add or remove entries, add the pokemon number reversed in hex, and end the table with FFFF. If you want to remove all the limitations, just write FFFF to the beginning of the table (offset 611C9A).

This is the main meat of the Frontier, anyway. There are other things that are worth looking into if you're planning on hacking the Frontier, and for the most part they're already indexed on the Bulbapedia page for Frontier structures.

After a while though, I got sick of doing everything in a hex editor. I came across the Nightmare Table Editor and realized that since Frontier stuff is all in tables, it could be used to make this easier so I made a few Nightmare modules to assist in doing so.

Nightmare is located here: (apparently dead)
Nightmare 2 is located here: (no idea how well this will work)
And the modules are here:

Hopefully, somebody with better knowledge will be able to use these to make an actual proper tool for Frontier editing. I think it was planned to be a part of PGE, but for now it's not implemented so these have to do for the time being.
Reply With Quote