StarsMmd

Pokemon Battle Revolution Hacking Info Dump

3 posts in this topic

Recommended Posts

At the request of @Nebaku I poked around the files for pokemon battle revolution a couple of weeks ago. I don't really have the time to do a proper write up atm but thought I'd at least post some basic information for now in case anybody wanted to play around with it.

If you haven't seen my thread on extracting files from .fsys archives in colosseum and xD then check it out in this thread -hacking-tutorial-part-1-File-decompression-recompression'>https://projectpokemon.org/forums/showthread.php?46250-Stars-Pokemon-colosseum-and-xD-hacking-tutorial-part-1-File-decompression-recompression

The useful part is part III of the tutorial as pokemon battle revolution also has .fsys files in the same format.

You can extract the .fsys files from the iso using dolphin but I haven't actually tried importing into gamecube ISOs so I don't know if there are any good programs for doing it automatically.

Unfortunately afaik all the files in the .fsys archives in PBR are named "(null)". It's super annoying but we can't do anything about that. The file names usually give hints as to what they may contain so without them there's a lot of guess work involved.

I spent some time looking through the files in common.fsys since that's where all the useful stuff is in colo/xd. If you use my BMS script from the thread linked above, and choose the option to automatically rename files with repeat file names, since all of the files are called "null" you get a bunch of files named (null)xxxxxxxx with a hexadecimal number in place of the xs. I will refer to the files by their file number since they don't have useful names.

The files from null - null0x20 are data tables, some of which I've figured out. null 0x21 is in the same format as the scripts from pokemon xD (-scripting'>https://projectpokemon.org/forums/showthread.php?47577-xD-scripting). I haven't tried disassembling it yet though. The rest of the files are textures. mes_common.fsys contains a string table which follows the same format as in colo/XD except with different escape characters.

Info on the data tables:

Header :-

number of entries at offset 0 (number of rows)

entry size at offset 4 (length of each row of data)

first entry at offset 0x10 (offset to start of the data/end of header)

file size (minus header size) at 0x14

file size (including header size)at 0x18

base stats in common.fsys in null_00000008.fdat :-

entry size 0x34 (52)

first entry at 0x3c0(index 0)

offset length data

c 2 string id in mes_common

12 1 base stats (1 byte each )

18 1 types (1 byte each)

common null1 list of countries.

common 4, type weakness table. 00 super effective, 01 neutral, 02, not very effective, 03 no effect, 04/05 unknown but only used for type indexes after the last one used. interestingly there are extra type indexes making a total of 32.

common null6 list of clothing for avatars.

null9 same number of entries as pokemon (0x1f5 501)

evolution table.

entry size 0x2a 42

offset length data

0 2 evolution type (e.g. 04 by level up)

2 2 level/condition

4 2 target species

common null0x13 item list?

common null0x18 list of avatar clothing.

common null0x1e moves list

offset length data

0x00 2 effect

0x08 2 nameid

0x0a 2 description id

0x0f 1 base power

0x10 1 type

0x11 1 accuracy

0x12 1 base pp

0x13 1 effect accuracy

0x14 1 priority

0x15 1 some kind of mask. probably flags which include category. last bit is phys/spec so an odd value here is physical while an even value here is special/status

Bear in mind that none of this is confirmed. These are just the notes I wrote a couple of weeks ago after a few hours of looking at the hex. I didn't test any of them but tbh it's all pretty obvious just by looking at the data since it's all really similar to colo/XD in terms of the format.

Sorry that the information isn't very well structured but I'll aim to write tools for Colosseum, XDGoD and Battle Revolution once I'm done with my end of year exams. :D

Edited by StarsMmd

Share this post


Link to post
Share on other sites

My lord and savior! Much thanks dude! In a few weeks when I'm free to work on stuff I'll try testing all of these out and report back with what works and what doesn't, to help continue the research for those(all 2 people on planet earth) interested in hacking PBR.

Share this post


Link to post
Share on other sites

No problem, I'm looking forward to seeing the results! I'll probably take a deeper look over the summer once I get past my exams! Interestingly, I've never actually played PBR myself and I've only ever seen a few battles on youtube. I'll probably play the game a bit, or at least find a playthrough and then I'll be able to see what else I can find in the game files.

My lord and savior! Much thanks dude! In a few weeks when I'm free to work on stuff I'll try testing all of these out and report back with what works and what doesn't, to help continue the research for those(all 2 people on planet earth) interested in hacking PBR.

Share this post


Link to post
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