0% found this document useful (0 votes)
2K views63 pages

Inazuma Eleven 2 - Blizzard - Firestorm (EN) Romhacking Summary

The document provides an introduction and overview for a guide about romhacking the game Inazuma Eleven 2: Blizzard/Firestorm. It outlines some of the key areas that will be covered in the guide, including editing unit data like player names, stats, and moves; team editing; match editing; and more. Requirements for getting started with romhacking are also listed. The guide is intended to document the author's knowledge and experiences romhacking the game over several years to help preserve that information.

Uploaded by

Sergio García
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2K views63 pages

Inazuma Eleven 2 - Blizzard - Firestorm (EN) Romhacking Summary

The document provides an introduction and overview for a guide about romhacking the game Inazuma Eleven 2: Blizzard/Firestorm. It outlines some of the key areas that will be covered in the guide, including editing unit data like player names, stats, and moves; team editing; match editing; and more. Requirements for getting started with romhacking are also listed. The guide is intended to document the author's knowledge and experiences romhacking the game over several years to help preserve that information.

Uploaded by

Sergio García
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 63

Inazuma Eleven 2: Blizzard/Firestorm

⚡(EN) Romhacking Summary⚡


-Introduction
Over the last years I’ve been busy playing around with the game in hex editing. I’m planning
to write down all the knowledge I have (and will obtain) about editing this game over time.
Many projects and their methods have been buried in forums and deleted websites over
time. With this guide I hope to finally write down everything in this new age where I can stick
this document around permanently. I’ve added a lot to this guide over the years, starting
back in 2020, coming on and off the project to document and research these files.
Communicating with members of the modding community and answering people’s questions
along the way. In the end the best way to make progress is to keep information public and
talk to each other.
Names are generally written in their ENG form, as that is how they’re portrayed in the code.
This guide does not represent all that is possible, yet.
Most of the information here also applies to Inazuma Eleven 1. Same goes for Inazuma
Eleven 3, with a bit more variance.
For examples of mods check out this website!
If you have questions unanswered in the guide, try joining this Modding Discord!
Now that’s out of the way, let me start with one of the easier topics.

Requirements
You’ll be needing some resources to start working on the files, here’s the ones I use:
1. Preferably unedited English version of the game (preferably dumped from your DS)
2. .nds file extractor/replacer (Heavily suggest Tinke 0.9.2, has plug-ins made for IE.)
3. Hex Editor (I use HxD)
4. Preferably an Emulator for testing (I use Desmume, have been issues with no$gba)
With these you should be able to start.

For Newcomers
If you are a newcomer to modding, or are just looking to start somewhere easy. The
unitbase.dat section below here is probably your best starting point. It’ll get you used to file
structures and editing while still allowing for some fun messing around. Of course, if you
have a certain goal in mind for what you want to achieve, try looking into that! The best
motivator is doing something actively towards achieving your goal.

- Elroy⚡

-Index
Unit data editing
| unitbase.dat
| unitstat.dat
| unitchange.dat
Team editing
| team.pkb
Match editing
| games.dat
General Images
Items and Shops
| item.dat
| i_detail.dat
| treasurebox.dat
| shop.dat
Special Moves Editing
| command.dat
Adding to Compressed Packs
|.pkb
|.pkh
Overworld/Match Sprites
Map Info Editing
Sound and Video
Models
Tools

-Unit data editing


Intro
Ever felt disappointed how bad some of your favorite players turned out to be, or they just
had different special moves than you were hoping? Well luckily this part is very easy and
you’ll be able to change almost any statistics, characteristics and special moves of a player
in no time through the power of hex editing. A lot of this is already possible with the
ie2_player_edit.exe (made by Roxas75), but it doesn’t have the ability to customize
everything mentioned in here and some moves and skills are implemented poorly and will
either be wrong or corrupt your file. This segment will contain all the different possibilities I’ve
so far discovered within both unitbase.dat and unitstat.dat as they are the most influential.

unitbase.dat
In progress
This is the easier of the two to understand in what is what, as all players are noted by their
name and therefore are easy to find. In these examples I will be comparing Mark Evans
(Endou) and Gus Martin (Gojou), however these strategies are applicable to almost all
characters, even certain non-playable NPCs! NOTE: Players must be freshly obtained to
work
First, extract the unitbase.dat file from your .nds, it can be found in the directory in
/data_iz/logic/en or you can find it with the search option if your extractor has one.

Extract this file with your


extractor and put it
somewhere you don’t
have a copy of it yet. Try
to keep the files the same
name, if you’re having
trouble keeping them apart
rename the folders you
extract them into.

Now you’ve got yourself


an isolated unitbase.dat you can open it with your hex editor (mine is HxD) and the data
should look something like this when you open it.

(Excuse me for the small size but bare with me ok :s)


Name editing
Now let’s zoom in on Mark Evans (Endou) in particular.

00000060 to 000000B0 is dedicated to Mark Evans in unitbase.dat, from line 000000C0 the
next player starts (Nathan Swift / Kazemaru). Every unit follows this trend of having 6 lines
dedicated to them in this file, starting from the name. As you can see, the lines 00000060
and 00000080 to the player’s name, which you can freely change by typing in the right, as it
will change the hexadecimals for you! 00000070 and 00000090 in all units seem to have no
other point than to space out data, I suggest not changing anything in those lines. In the
upcoming example I will change his name to Endou Mamoru and his nickname to Mamoru.
NOTE: This will not change his name in any story text.
Now for a more interesting part.

Character info editing


Luckily, name changing isn’t the only thing you can do in this file. You can change Element,
Position, Size, Gender and profile, too! For this, we will look at the following segment of Mark
Evans’ data.

The 0E located at offset 03 stands for 2nd year of school, which you can edit I guess (it only
shows up in the Player Binder), but there other five options are more interesting.

Gender
At offset 02 (the first 01) Gender is located. Gender is defined by either 01 which is Male, or
02 which is Female. Certain Special Moves are locked behind Gender. In the upcoming
example I will change his Gender to Female.

Body Type
At offset 04 (which is 00 in Mark’s case) Body Type is located. Body Type, from what I’ve
seen so far, is defined by either 00 which is Normal, 01 which is Large, or 02 which is
Small. Other than making very out of character proportions, some Special Moves are locked
behind certain Body Types. In the upcoming example I will change his Body Type to Small.
Position
At offset 05 (which is 20 in Mark’s case) Position is located. Position is defined by either: 20
which is GK, 40 which is DF, 60 which is MF, or 80 which is FW. Other than looks, position
doesn’t do much. However some Skills can only be taught to certain positions. In the
upcoming example I will change his Position to FW.

Element
At offset 0A (which is 04 in Mark’s case) Element is located. Element is defined by either: 01
which is Air, 02 which is Wood, 03 which is Fire, or 04 which is Earth. With this you can
finally change players to the element you desire. In the upcoming example I will change his
Element to Air.

Profile
At offset 0E and 0F (which is 01 00) Profile is located. A player’s profile is defined by their
player profile ID, which you can see them use in the player profile offset. This goes from
Mark Evans (01 00) to IE1 Axel Blaze (0F 08). If you cannot count in hexadecimals I suggest
practicing or using a converter (0F 08 = 2063, as the 08 defines how many 256s have gone
prior.) You can replace a player’s profile with another one’s by just copying the profile ID
over. If you want to create a custom profile, you can extract unitbase.STR and change the
corresponding profile in there. NOTE: I haven’t tested this that much, so try to keep the
same amount of characters in the text. For now, I will change his Profile to Gus Martin’s in
the upcoming example.

Example
As stated in the previous tabs, I will be changing Mark Evans’ to the following:
-Name, Endou Mamoru - Mamoru
-Gender, Female
-Body Type, Small
-Position, FW
-Element, Air
-Profile, Gus Martin

All changes I’ve made are colored red. I save this file as a copy somewhere and go to Tinke
to replace the normal unitbase.dat with this one. I’m saving the .nds as a different name so
as to not overwrite any of the other roms. NOTE: Players must be freshly obtained to work.
I start a new game as this renamed .nds doesn’t have a save allocated to it.
As you can see, all aspects mentioned have changed. This is applicable to pretty much any
player! That concludes all options so far discovered in that section of data, I will now be
explaining character appearance.

Character appearance
Ever wanted to just... swap a character’s appearance with another? Probably not, but for the
special cases that you do want to only swap certain aspects, I will explain and show what I
know so far. The unitbase.dat file holds a surprising amount of separate appearance data,
but unfortunately, some are still linked to each other in this file. I will now go over the known
options.

I’m going to be focusing on the red box first, this will contain:
-Head in menu bar, Special Moves and stats
-2D portrait sprite, head model and model face
-Body sprite specifications
-Overworld RPG head
-Overworld RPG palette
-Neck length and other body model specifications
-Skin tone
These are all the ones known for me so far, now let’s begin.
Group 1
At offset 02 and 03 (the first 01 00) Head in the menu bar, Special Moves and Stats are
located. While Special Moves and Stats are individually editable in unitstat.dat they are still
bound to the head you see in the menu bar. This is a nice edit if you don’t want to put effort
into ih.pkb, but editing these files individually is better. You can find the Special Moves and
Stats a player has individually in unitstat.dat and the head in the menu bar is located in
ih.pkb.

Group 2
At offset 04 and 05 the 2D portrait sprite, head model and face model are located. While
it’s nice to know this is here, generally you’re better off editing this manually in their files. You
can find the 2D portrait sprite in /data_iz/face2d/fac.pkb, the head model in
/data_iz/model/char/pbh.pkb and psh.pkb, and the face model in
/data_iz/model/char/pbf.pkb and psf.pkb. For a general guide for changing these images,
check out the General Images section of the guide.
PUTTING THIS ONE ON HOLD FOR NOW, INDIVIDUALLY CHANGING FILES IS MORE
SPECIFIC THAN USING UNITBASE.DAT

3D Skin Color
At offset 0F 3D Model Skin Color is located. Here you can use the bytes 00 to 0B to change
the skin color a character uses for their 3D model. This byte does not change the color of the
face, as that is a texture separate from the body. I do not know how many of these are in the
other games, but here’s all the ones for Inazuma Eleven 2.
The palettes for 3D Skin be found and individually edited in /data_iz/logic/palskin3d.dat
Here are the skin colors portrayed on Jack Wallside in order:
Byte 00 - Byte 01 -
Used by many different characters Used by Nathan Swift, for example
Byte 02 - Byte 03 -
Used by Nelly Raimon, for example Used by Gus Martin, for example
Byte 04 - Byte 05 -
Used by Styx, for example Used by Peter Drent, for example
Byte 06 - Byte 07 -
Used by David Samford, for example Used by Hurley Kane, for example

Byte 08 - Byte 09 -
Used by Coral, for example Used by Giggs, for example

Byte 0A - Byte 0B -
Used by Zell, for example Used by Pandora, for example
Byte XX -
This happens when you use a byte not earlier specified. When a texture cannot be found,
the game defaults to pitch black. However it is (probably) possible to add up to 4 extra Skin
palettes in palskin3d.dat. These will then count up sequentially from 0C to 0F

unitstat.dat
In progress
This is the harder one of the two to understand in what is what, as aren’t noted by name and
are harder to locate. In these examples I will be comparing Mark Evans (Endou) and Gus
Martin (Gojou), however these strategies are applicable to almost all characters, even
certain non-playable NPCs! NOTE: Players must be freshly obtained to work
First, extract the unitstat.dat file from your .nds, it can be found in the directory in
/data_iz/logic/en or you can find
it with the search option if your
extractor has one.

Extract this file with your extractor


and put it somewhere you don’t
have a copy of it yet. Try to keep
the files the same name, if you’re
having trouble keeping them apart
rename the folders you extract
them into.
Now you’ve got yourself an isolated unitbase.stat you can open it with your hex editor (mine
is HxD) and the data should look something like this when you open it.

(Excuse me for the small size but bare with me ok :s)

Locating a Player
Unfortunately in this file players aren’t labeled by name, this will be the trickiest part for any
human without a tool. There already exists a tool for changing everything you can do in this
file, while also automatically binding the name to the stats. Roxas’ app was the previous go-
to, but it has major inconsistencies and lacks critical information. It doesn’t include any skills
at all and will read them as Clone Faker, and some of the IDs are just wrong.
However in this one I will be talking about how to do it more manually. Order is also based
on the order they appear unitbase.dat.
This can be done two ways, for Inazuma 1 and 2 I suggest this method:
To obtain the vertical Offset of the player we’re planning on editing, we first have to take one
extra step. Luckily unitstat.dat order is bound by their placing unitbase.dat, so we can pull off
a little calculation to get them. You’re going to need unitbase.dat and a Calculator with
Programmer/Hexadecimal options for this.
Every player takes up 6 rows in unitbase.dat and 5 rows in unitstat.dat, knowing this, we
cannot count the unitstat.dat’s vertical Offset 1 to 1 with unitbase.dat’s vertical Offset on the
left side of your Hex Editor. What we can do instead is take unitbase.dat’s vertical Offset,
and divide it by 6, and then multiply it by 5. This way we will create that 6 to 5 ratio and get
the accurate location.
Let’s take Caleb Stonewall for example.
-His vertical Offset is 000241E0.
-We take out the 241E0.
-Put it in a hexadecimal calculator and divide by 6, then multiply by 5.
-The answer is 1E190.
Caleb Stonewall’s vertical Offset in unitstat.dat is 0001E190.

Now for Inazuma Eleven 3:


The option I used to use if it wasn't someone obvious like the first player being Mark Evans,
is recognizing Special Move IDs. As far as I know, there are no players out there with an
identical list of special moves, so searching these in hexadecimals should be a reliable way
of finding out who’s who. For this you need a list with all the IDs that are used to define the
Special Moves. I’ve made a (currently WIP) list of all Special Move IDs here:
https://docs.google.com/document/d/12y0QnnOd-
kNAOXOFexbEcq9Vk_oRoeKdFqtYyUtaBgg/edit?usp=sharing

or you can find them here: http://watashiwa7.altervista.org/ie/2/waza_ie2.htm

Unitstat.dat also contains at which level they learn these moves, so you’ll have to put that
information in the search bar, too. I use either Roxas’ app to find out, or the new app created
by SwareJonge which can be found at (SAFETY NOT GUARANTEED):
https://github.com/SwareJonge/Inazuma-Eleven-Stats-Extractor

This is the format all players use in unitstat.dat (example Mark Evans):
Now let’s focus on the Special Moves first. Slot 1 is God Hand at Lv. 1 which is written in:
A2 00 01
The A2 00 is the ID for God Hand and the 01 is the level at which he learns it. Let’s say I
wanted to find Gus Martin, I look up what moves he has and at what levels he learns them
in one of the two apps:

Using the Special Move list that holds all the IDs I mentioned earlier, I will now write a line for
my Hex Editor to search (Ctrl+F): 7A 00 01 00 65 00 01 00 86 00 1F 00 71 00 31
I will now input this into the search bar.

Gus Martin located.


Special Notes
There are certain Moves and Stats which you should either not change or not learn to that
specific player. Here are the restrictions:

-Giving a player a move unbefitting of its body type will result in it not appearing in their
move list. A full list of special move body type restrictions can be found either on:
http://watashiwa7.altervista.org/ie/2/waza_ie2.htm
or
https://docs.google.com/document/d/12y0QnnOd-
kNAOXOFexbEcq9Vk_oRoeKdFqtYyUtaBgg/edit?usp=sharing (whenever I finish this one)
Alternatively you could change the Move’s data in command.dat, explanation can be found
[Here].

-Removing event moves will result in a softlock in most cases, as you will be unable to select
it when asked to.

-In some special cases the game asks you to do a certain special move, Mark using God
Hand in the first Gemini Storm match with a guaranteed save after which he passes the ball
to Jude. This isn’t mandatory, but removing it might make the match harder to clear.

-The Min stat total cannot be higher than the Max stat total + Increasing, this will note the
player as “Max Ability” and if you had the stats higher, he will lose points in his stats, starting
at Kick.

Example
In this example I’m going to change some of Nathan Swift’s stats and moves. He’s a Normal
Body and Male, so I can’t choose moves that conflict with that. I’m going to make him learn:

Lv 1 Speed Plus (Hex ID: 0034)


Lv 1 Dash Storm (Hex ID: 00D4)
Lv 1 Hurricane Arrows (Hex ID: 0084)
Lv 1 Fire Blizzard (Air) (Hex ID: 0138)

As for his Lv 1 stats:


FP: 100
TP: 300
Kick: 2
Body: 3
Guard: 60
Control: 102
Speed: 255
Guts: 20
Stamina: 1
This is what my editing ended up looking like^

And this is the result!


unitchange.dat
Completed

I’ve decided not to download their file, but you can alternatively find a player’s ID at Inazuma
Eleven 2 - How to recruit every character of the game (watashiwa7.altervista.org) by
reversing the last two digits of the code with the second to last two digits of the code, and
using those four digits.

Example:
-Mark’s recruit cheat code is 020DB8D8 00000001
-Take last four digits (0001)
-Reverse the last two with the first two (01 00)
-That’s your code

Thanks to Prince_ for writing this down for me.


-Team editing
Intro

team.pkb

In progress

team.pkb NOTE: My new discord username is _elroy

-Match editing
In progress

Intro
This might be a less interesting one, but it’s crucial for wanting to create fleshed out custom
exhibition routes and story mode edits. IE1, 2 and 3 all seem to use the same games.dat
format. There are some things I’m still uncertain about, but for now this information is still
useful. Here you’ll be able to find things like Team Level, Stadium / Field, Match Type and
OST. I’ve also made a Spreadsheet for an oversight on the variables that could be used in
this file here.
games.dat
Before we can get started let’s go and find the file necessary for this. It’s located at
/data_iz/logic/ like the image below.

Once you’ve extracted and opened the file in your Hex Editor, you can use the basic View
Window of 16. This means every Match is divided into three rows. The coordinates of the
example below are at 00000990, this is the match against Royal Academy used in Mr.
Veteran’s Exhibition route.

NOTE: My new discord username is _elroy

Team ID
The first two bytes of the segment, located at Offset 00 and 01, are for the Team ID referring
which determines the team you play against. This ID can be directly taken from team.pkb’s
Team Emblem and Name ID.
There’s a LOT of different teams, so I can’t really write them all down here. You can find a
Spreadsheet I made for them here.

Team Level
The next byte I know in the segment, located at Offset 03, is for the Team Level. This’ll serve
as the base level for the opposing players in the match. Some players will have a higher
level due to their Comparative Level in team.pkb. Basically try to make this anywhere
between 00 and 63 (0 and 99) depending on the comparative level and you’ll be fine.

Stadium / Field
The next byte, located at Offset 04, is for the Stadium / Field ID. Here you can decide which
Stadium and Field is used in the match. There’s a LOT of different stadiums, so I can’t really
write them all down here. I’m working on a Spreadsheet list for it, you can find it here.

Player Kit
The next one used is a pair of bytes located at Offset 05 and 06, which lets you force the
player to wear a certain kit for the match. This is used sometimes to make Raimon wear their
standard kit or tracksuit. You can make this any clothing ID, it works by the same numbers
as team.pkb. Just the clothing actually has a 3D model otherwise you’ll just get a white body
or no body at all.
I’m working on a Spreadsheet for this, you can find it here.

Match Type
The next used byte you can find at Offset 0A, this lets you change the type of the match
played. You can make this anything from Matches to Battles. I’ll write down all the bytes I
know are used, I don’t know the function of some of them, yet, however. Contact me if you
do.
-01 Normal Match
-02 Extra Time No Penalties
-03 Extra Time and Penalties On?
-04 Extra Time and Penalties On?
-05 ???
-06 ???
-07 ???
-08 Extra Time and Penalties On?
-09 One Half
-15 Battle: Score a Goal 15 mins (You have no goal)
-17 Battle: Gain possession of the ball 15 mins
-18 Battle: Don't lose possession of the ball 7:30 minutes
-1A Battle: One goal 15 mins
-1D Battle: Three goal lead 25 mins

Drops and EXP ID


The byte right after this, located at Offset 0B, is the ID for the Drops and the EXP at the end
of the match. I don’t know where these are specifically decided, but the ID from certain
matches you can copy over here. For all the Match Drop IDs check out this Spreadsheet.

Half Start
The byte after that one, located at Offset 0C, decides which Half the game starts at.
-01 First Half
-02 Second Half
This one isn’t that interesting, but important for Story purposes.

Duplicate Remover
The byte after, located at Offset 0D, toggles the Duplicate Remover, which removes all
players from the opposing team that you already own. This is used for most battles and of
course recruiting battles, but generally isn’t that interesting.
-00 Off
-01 On

Match Screens
Starting in the second row, located at Offset 00, (finishing this later)

OST
The next used byte, located at Offset 02, is used for the OST ID, this decides which Match
OST is used. There’s not that many OST unfortunately, here’s the list:
-01 Formal Match (From IE1)
-04 Royal Academy Rumble
-05 Divine Crusade
-06 Training Facility
-0A The Power of Raimon
-0B Lightning Strikers
-0C Thunder Pitch - Dark Emperors
-10 Miraculous Moves - Royal Academy Redux
-11 Black Ball - Gemini Storm
-12 Raging Inferno - Epsilon
-13 The “G” Team - Genesis
This list is also available in the Spreadsheet I made here.
-General Images
In progress
This might possibly not even be the optimal way to do this, but I haven’t seen this stuff
written down anywhere, so better than nothing.
This method is used because in Tinke during the packing process from palette/tile/map
to .pac_ it corrupts and breaks the file. This way you will manually enter the new data into
the .pac_
This one’s gonna be quick for now since I don’t feel like creating a good one yet, so this is
just going to be text only step-by-step.
1. Open Tinke.
2. Unpack the image you want to the point you can separately see the palette, tile and
mapping.
3. Click view on them in that order, be sure to change width/height if the mapping
makes the image look weird.
4. Click on export and save it as a .bmp by selecting it in the dropdown. (Might work
with other formats too, I haven’t tested everything yet.)
5. Edit the image in whatever program you want to use.
6. Import the image into Tinke. This will translate the tiling to the required format.
7. Export the .pac_ file that is one above the palette/tiling/mapping, and export the tiling
(.nbfc) (and palette (.nbfp) too depending on if you’ve used any new colors. There’s a
max of 16 different colors you can use in an image.)
8. Open your hex editor.
9. Find the part that corresponds to tiling in the .pac_ file, copy over your data from your
tiling file (.nbfc) and paste it over it. (Repeat for palette (.nbfp) if you’ve changed
colors used.)
10. Replace the old .pac_ file in Tinke with your new .pac_ file.
11. This next part depends on how many times you need to pack it up again.
12. Open debug messages, click pack on the encrypted/packed version above it with the
same name, and swap with the generated file in the latest Temp folder of your Tinke
folder. It’ll say the name and location in debug messages.
13. Repeat this until there’s only a normal folder higher than it.
14. You can now save the ROM and if you have done everything correctly the image will
now be edited in-game.

EXTRA NOTES:
-The mapping is what’s wrong with Tinke, which means you can only change the look of
things in between the lines of the original image, I think. I still have to figure stuff out. Tinke
seems very inconsistent with the mapping technique used by the game.
-I have yet to test out using alternative palettes, so the palette part is all speculation. I expect
it to work though.
-It is CRUCIAL that you repack everything and swap the files correctly, otherwise the
change won’t appear at all.
-Items and Shops
Intro
This was discovered a while ago already but not written down by me well ever. Here I’ll write
the meaning of the information within item.dat and shop.dat

Items
In progress
item.dat can be found in /data_iz/logic/en. This is the file you’ll be using to edit item data.
There’s also item.STR, which is used for item descriptions, it’s not that important though.
The game has to be restarted for item.dat changes to have an effect.
Here’s the example we’ll be using:

NOTE: My new discord username is _elroy

Item Type
The byte located at Offset 01 is indicative of what type of item it is. Here’s a list of all the
possible options:
01 - FP Consumable
02 - TP Consumable
03 - FP & TP Consumable
0B - Key Items (Football Magazine, Yosemite’s/Gladstone’s/Builder’s Notes, Stag Beetle)
0C - All other Key Items
0E - Match Formation
0F - Special Move (Including Skills)
11 - Battle Formation
15 - Kit
16 - Boots
17 - Gloves
18 - Bracelet
19 - Pendant
The information is most likely used to inform what function the item performs.
Special Move ID & Consumable Strength
The bytes located at Offset 02 and 03 are used for different things depending on the Item
Type. I do not know yet what they do for Equipment.

Special Move ID
In the case of Special Moves, it tells the game what Special Move or Skill it’ll be teaching
when the item is used.

For this you need a list with all the IDs that are used to define the Special Moves. I’ve made
a (currently WIP) list of all Special Move IDs here:
https://docs.google.com/document/d/12y0QnnOd-
kNAOXOFexbEcq9Vk_oRoeKdFqtYyUtaBgg/edit?usp=sharing

or you can find them here: http://watashiwa7.altervista.org/ie/2/waza_ie2.htm

In the example, Dark Tornado’s ID is D9 00 (00 D9) which is reflected in the list.

Consumable Strength
In the case of Consumables, it tells the game the strength of the Consumable in question.
For example, Mineral Water’s byte is 19, which translates to 25 in decimals. Mineral Water
restores 25 FP.
Hyper Bar, Super Water and Fine Veggies all restore for E7 03 (3E7) which is 999 in
decimals (count the second before the first). You can change these numbers to anything, so
balance them as you like.

Equipment Stat ID
In the case of Equipment, the first byte tells the game which stats to apply to the Equipment.
You can use item.dat in this to swap around some existing ones, but alternatively you can
edit the stats directly in i_detail.dat. The second byte is always 40 for all equipment with
stats, I don’t know the function of this byte.

Buy Price
The bytes located at Offset 04 and 05 indicate the Buy Price, also determining the Sell Price
as Sell Price is always 50% of the Buy Price. Dark Tornado’s bytes are 14 05 (514) which is
1300 in decimals, thus the Buy Price is 1300 and Sell Price 650.
Some Items do not have any information in this slot, meaning they cannot be sold and will
not appear in Shops. If you want to be able to buy items like that in a Shop, give it a Buy
Price higher than 0 first.

Item Pictogram
The bytes located at Offset 06 and 07 determine which Item Pictogram is used for the item.
This is of course not too important, but nice if you want to make your custom items look
good. The pictograms themselves can be found in /data_iz/pic3d/en/io.pkb. Here’s a list of
possible Item Pictograms already in the game:
Consumables
65 00 - Mineral Water
66 00 - Sports Drink
67 00 - Super Water
6A 00 - Stamina Bar
6B 00 - Cookie Bar
6E 00 - Milk
CE 00 - Rice Ball
2F 01 - Hyper Bar
31 01 - Fine Veggies

Key Items
4D 04 - Football magazine
4E 04 - Yosemite’s/Gladstone’s/Builder’s/Sonny’s Note
4F 04 - Hacking records
50 04 - Sonny’s documents
51 04 - Big boots
52 04 - Sunglasses
56 04 - Deer crackers
57 04 - Stag beetle
58 04 - Cloister strip
59 04 - Memory boots
5A 04 - Secret Scrapbook
5B 04 - Mystery pendant
5C 04 - Prestige Points
5D 04 - Friendship Points
5E 04 - Secret warehouse key
5F 04 - Lighthouse room key
60 04 - Level 1/2/3/4 card key
61 04 - Old pin badge
62 04 - Shadow lizard
B1 04 - Mysterious key
B2 04 - Athletics club key
B3 04 - Dojo key / Gym key
B4 04 - Tennis club key
B5 04 - Cycling club key
B6 04 - Baseball club key
B7 04 - Swimming club key
B8 04 - Computer room key
B9 04 - Gym storeroom key
BA 04 - Tower hut key
BB 04 - Club notebook
BC 04 - Racy comic
BD 04 - Strange device
BF 04 - Scrap of manual
C1 04 - Ambrosia

Kits and Equipment


35 08 - Kit
99 08 - Speed Boots
9A 08 - Kick Boots
9B 08 - Guts Boots
9C 08 - Control Boots
FD 08 - Gloves
60 09 - Control Bracelets
61 09 - Guts Bracelets
62 09 - Bronze FP/Power Pendant
63 09 - Silver FP/Power Pendant
64 09 - Gold FP/Power Pendant
65 09 - Bronze TP/Shield Pendant
66 09 - Silver TP/Shield Pendant
67 09 - Gold TP/Shield Pendant
6D 09 - Body Bracelets
6E 09 - Guard Bracelets
6F 09 - Stamina Bracelets
70 09 - Strongest Bracelet
71 09 - Encounter Bracelets
C5 09 - Promise Bracelet

Move Manuals
29 0A - Shoot Manual
2C 0A - Dribble Manual
2F 0A - Block Manual
32 0A - Catch Manual
35 0A - Skill Manual

Formations
B9 0B - Match Formation
BA 0B - Battle Formation

Unused
6C 00 -

C9 00 -
CA 00 -
CB 00 -
CF 00 -
D0 00 -
D1 00 -
2E 01 -

30 01 -

BE 04 -

C0 04 -

14 05 -
15 05 -
16 05 -
17 05 -
19 05 -
1A 05 -
1B 05 -
1C 05 -
1D 05 -
1E 05 -
1F 05 -
20 05 -
21 05 -
22 05 -
23 05 -
24 05 -
25 05 -
26 05 -

2A 0A -
2B 0A -

2D 0A -
2E 0A -

30 0A -
31 0A -

33 0A -
34 0A -

36 0A -
EF 0A -

Lock Byte
The byte located at Offset 09 determines whether the specific item is unobtainable from
Shops or not. Editing these is extremely important if you’re planning on obtaining these
specific items, or if for whatever reason you want to Lock the items behind these premade
conditions. These items, commonly “unlocked” from Wi-Fi download or Events can not show
up in Shops until those conditions are cleared. To get access to Items regardless of whether
we’ve cleared these conditions, all we have to do is replace the byte with 00.
Here’s all the items with Lock Bytes:

01 - Inazuma Boots
02 - Inazuma Gloves
03 - Inazuma-1 Drop
04 - Tri-Pegasus
05 - Neo Galaxy
06 - Triple God Hand
07 - Secret warehouse key
08 - Lighthouse room key

65 - Wyvern blizzard
66 - God Knows
67 - Future Kit
68 - Cosmos Bracelet

As a reminder, all you have to do to unlock these items in shops is replace the number with
00, save, and restart.

Kit ID & Formation ID


The bytes located at Offset 02 and 03 are used for different things depending on the Item
Type. I do not know yet what they do for Equipment.

Kit ID
In the case of Kits, these two bytes tell the game what the Kit’s texture is. This is important to
know if you’re planning on making a Custom Kit, and want it to be a separate item on its
own. You can find a list of Kit IDs in Inazuma Eleven 2 here in games.dat’s “Forcewear”
table.

Formation ID
In the case of Formations, these two bytes tell the game what Formation is bound to the
item. This is not very important, and you should let these be generally. For a list of Formation
IDs go to the team.pkb section of the guide.
Equipment
I don’t know yet what this byte does for equipment, they seem to count up for Boots and
Gloves, but I can’t seem to find what it changes. If you know, contact me on Discord at
_elroy.

Item Description
The bytes at Offset 0E and 0F tells the game what description the item uses. The Item
descriptions can be found in /data_iz/logic/en/item.STR. If you’re planning on editing the
descriptions, I suggest editing that file instead. Try to keep the description length the same,
so you don’t have to mess with the bytes in this file.

Equipment Stats
Completed
Almost every Equipment is assigned an Equipment Stat ID in item.dat, these IDs point to the
rows in this file. Here you can edit the exact strength of each item, although effects may
differ depending on what type of item it is applied to. You can find the file i_detail.dat at
/data_iz/logic/en/.
Equipment Stat Locating
If attempting to locate specific items, item.dat is highly recommended.
First lets make some structure out of this file: if your View Window is set to 16 (Default),
every row is an item. This way you can take the Equipment Stat ID found at the horizontal
Offset 02 and see it is equal to the vertical Offset of every Equipment’s row. For example,
Farm boots’ Equipment ID is 08, and the vertical Offset in the i_detail.dat file for it will be
00000080.

As you can see later in the file, the stats start appearing again at vertical Offset 000002A0,
this is for Royal gloves, as their Equipment ID in item.dat is, as expected, 29.
That’s how to easily locate Equipment, now to edit them is even easier.

Equipment Stat Editing


Editing Equipment is very easy once you’ve located them, see the image below to check
which Offset does what. Have fun!

Treasure Boxes
In progress
Treasure Boxes might not be too important, but it is nice to be able to edit them to grant the
players items or resources to make them feel a bit more special. Unfortunately, I do not
know how to move or place Treasure Boxes. Instead, this section goes over how to find
which data is associated with which Treasure Box, and how to edit them to your liking. You
can find treasurebox.dat at /data_iz/script.
Treasure Box Locating
I’LL DO THIS LATER

Treasure Box Editing


Alright let’s get to editing. This section shown here has the chests located within the locked
room in the Lighthouse.

As you can see, it follows a clear structure which you can hold to when editing the file, no
need to edit outside of the boxes. All items stacked underneath each other are located in
separate chests, while items stacked next to each other will give a different reward in the
same chest based on which version of the game you play (in the case of Inazuma Eleven 2,
that is Firestorm or Blizzard).
While there may be a lot of 01, don’t worry, only the ones behind an actual item matter.
Higher Amounts are really only used in cases such as Prestige Points (ID: 00 02) and
Friendship Points (ID: 01 02), these are pretty common chest rewards. The Item IDs shown
and the ones you can use to edit have to either be found yourself by using item.dat, by
recognizing every item is 3 rows, and counting every item to know their ID, or you can use
this Google Spreadsheet in the case of Inazuma Eleven 2 (and most likely also 1), to find the
specific ID you need for the item you want.
As an example we will be editing these Lighthouse Treasures.
I’LL DO THIS LATER

Shops
In progress
Ever wanted to edit shops? Using shop.dat and ShopName.dat we can edit the contents of
these shops, to give players access to new items, or remove them. This section will show
you how to recognize which shop is which, where they are located, and how to edit them.
Recognizing is an important part of this. I can tell you which shop is where in Inazuma
Eleven 2, but the shops in Inazuma Eleven 1 for example will be different.
The game does not need to be restarted for changes to shop.dat to have an effect.
Let’s start with recognizing them.
Shop Locating
First we have to extract two files from the game, these can be found at /data_iz/logic/en just
like item.dat:
Now let’s look inside the shop.dat file, we can already clearly see clusters of bytes. These
are the individual shops.

Of course we could check which shops are which by manually editing one and checking the
results in game, but there’s a faster way. Let’s take a look at the ShopName.dat file we
extracted.
Here we can see all the shop’s names, first the type of shop it is, then followed by the
location. For example: Kool Kit (Type) - Inazuma (Location). This is also where we can edit
the names of the shop if wanted, just remember to keep the bytes 0D 0A between every
shop name. We can use this file for another purpose as well, the order of these names is the
same as the order of the ‘shop byte clusters’, so through this we can determine which shop
is which. As an example:
This method should also be applicable to both Inazuma Eleven 1 and Inazuma Eleven 3,
and is of course based on the language you play in.

Now for Inazuma Eleven 2 you can check out the image guide down here to find which shop
is which.
Vertical Offset 00000040 to 00000070 Vertical Offset 00000080 to 000000B0
Kool Kit - Inazuma (1) Kool Kit - Inazuma (2) (Firestorm)
Vertical Offset 000000C0 to 000000F0 Vertical Offset 00000100 to 00000130
G-Mart - Inazuma G-Mart - Station

Vertical Offset 00000140 to 00000170 Vertical Offset 00000180 to 000001B0


Magic Moves - Nara G-Mart - Nara
Vertical Offset 000001C0 to 000001F0 Vertical Offset 00000200 to 00000230
Kool Kit - Nara Magic Moves - Hokkaido
Vertical Offset 00000240 to 00000270 Vertical Offset 00000280 to 000002B0
G-Mart - Hokkaido Kool Kit - Hokkaido
Vertical Offset 000002C0 to 000002F0 Vertical Offset 00000300 to 00000330
Magic Moves - Kyoto G-Mart - Kyoto

Vertical Offset 00000340 to 00000370 Vertical Offset 00000380 to 000003B0


Kool Kit - Kyoto Magic Moves - Ehime
Vertical Offset 000003C0 to 000003F0 Vertical Offset 00000400 to 00000430
G-Mart - Ehime Kool Kit - Ehime
Vertical Offset 00000440 to 00000470 Vertical Offset 00000480 to 000004B0
Magic Moves - Osaka (Firestorm) G-Mart - Osaka

Vertical Offset 000004C0 to 000004F0 Vertical Offset 00000500 to 00000530


Kool Kit - Osaka Magic Moves - Fukuoka
Vertical Offset 00000540 to 00000570 Vertical Offset 00000580 to 000005B0
G-Mart - Fukuoka Kool Kit - Fukuoka
Vertical Offset 000005C0 to 000005F0 Vertical Offset 00000600 to 00000630
Magic Moves - Okinawa G-Mart - Okinawa

Vertical Offset 00000640 to 00000670 Vertical Offset 00000680 to 000006B0


Kool Kit - Okinawa Magic Moves - Fuji

Vertical Offset 000006C0 to 000006F0 Vertical Offset 00000700 to 00000730


G-Mart - Fuji Kool Kit - Fuji

Vertical Offset 00000740 to 00000770 Vertical Offset 00000780 to 000007B0


Super Shop Kool Kit - Inazuma (2) (Blizzard)

Vertical Offset 000007C0 to 000007F0 Vertical Offset 00000800 to 00000830


Magic Moves - Osaka (Blizzard) G-Mart - Shopping Area

Vertical Offset 00000840 to 00000870 Vertical Offset 00000880 to 000008B0


Magic Moves - Station (Firestorm) Magic Moves - Station (Blizzard)

Vertical Offset 000008C0 to 000008F0


Magic Moves - Station
Shop Editing
Now let’s get to the fun part. Items in this file are represented by two hexadecimals, also
known as a byte, which tell the shop that it’s in them. This is really the only information you
can edit with this file, but is a really important one. There are some limitations of course, let’s
start on that.
You might’ve noticed I sectioned every shop off into 4 rows in the Shop Locating guide, this
is as far as I know the maximum size a shop can be. I assume that adding bytes beyond this
will mess up the file. This gives us a total of 32 items per shop.
Be aware that for some items, you’ll need to either add a Buy Price in item.dat if they don’t
have one, or remove the Lock Byte on them, otherwise they will not appear in the shop.

For the example shop we will be using G-Mart - Inazuma, a small shop in the Shopping
Area with TP and FP related items.
Let’s take a look at its code in the shop.dat file.

Here we can see 6 items total, in order:


- Milk - 09
- Mineral Water - 01
- Sports Drink - 02
- Rice Ball - 10
- Cookie Bar - 0B
- Stamina Bar - 0C
NOTE: While it may seem that items are ordered as they are ordered in the file, that is not
entirely true. There is an inherent sorting system in the game that will put items in that order
despite the order of shop.dat. Replacing the Rice Ball with Fine Veggies in the middle for
example will still put Fine Veggies at the bottom of the shop.

Now to obtain the Item ID you’re going to use in your shop you’re going to have to take one
extra step. Luckily the Item ID is bound by the placing of the item within item.dat, so we can
pull off a little calculation to get them. You’re going to need item.dat and a Calculator with
Hexadecimal options for this.
Every item takes up 3 rows in item.dat, knowing this, we cannot count the ID 1 to 1 with the
vertical Offset on the left side of your Hex Editor. What we can do instead is take that vertical
Offset, and divide it by 3, this way we will create that 1 to 3 ratio and get the accurate Item
ID.
Let’s take Dash Accelerator for example.
-Its vertical Offset is 00003780.
-We take out the 378.
-Put it in a hexadecimal calculator and divide by 3.
-The answer is 128.
-Put in ID order, 28 01.
Dash Accelerator’s Item ID is 28 01.

For seeing what the Inazuma Eleven 2 Shop ID is of every item, check out this Google
Spreadsheet, Inazuma Eleven 1’s should be similar.

-Special Moves Editing


Completed

Intro
Special Moves, in the end, I would assume is one of the most requested ones to edit. As for
now I am unaware of how to change animation and the like, and the changing of models is
already well documented by others, I will focus my time here on editing its data
(command.dat) instead for now. This includes things like Type, Element, TP Cost, Power,
and other specifications for use. If these interest you, be sure to check out below.
IE1 / IE2 command.dat
This is the file where you’ll be finding pretty much all the interesting data for Special Moves,
in this guide I’ll be going over what every section does and how you can change it to your
liking. First, extract the file. It can be found at /data_iz/logic/en just like unitbase.dat:

Getting command.STR for extra help isn’t a bad idea either, this file can be found right under
command.dat:

If you’ve opened command.dat, I want you to set the View Window to 28, this will display
all Special Moves in individual rows, this setting can be found here in HxD Hex Editor:
Now, the Special Move example we’re going to use is Stone Wall in this case, as it has
information in every slot it can. But we’ll need to find it first, I’m planning on building another
little library to tell at which coordinate every Special Move is, for now that’ll have to wait
though. Instead you can use the data information I’ll teach you to find them on your own.
Stone Wall I will tell however, its coordinate is 00002AA8.

Now, to explain what these all mean below.

NOTE: Any editing in command.dat will need you to reload the game, but that’s all.

Move Type
In the first byte of the Special Move located at offset 00 we can find Move Type, this defines
if it’s a Dribble, Shot, Block, etc. In the case of Stone Wall the byte is 06, resembling a Block
move.
The other numbers are:
-05 for Dribble
-06 for Block
-07 for Shot
-08 for Catch
-09 for Skill
Note that the coding for Skills are not located here, how to edit their effects is not known to
me.

In the upcoming example, I will be changing Stone Wall into 05 (Dribble).

Foul Rate
In the byte right after located at offset 01 we can find Foul Rate, this defines how high the
chance is for a Move to commit a foul. It is seemingly translated to decimal numbers to take
its percentage from that (0A = 10 = 10%). You can make this any number you’d want, but
I’m pretty sure 64 (100) means it’s guaranteed anyway. As for Stone Wall, its hexadecimal is
01. Others used in the game include:
-01 For lowest chance.
-05 For slightly higher.
-0A For a bit higher. (Moves like Harvest or Fake Bomber)
-2D For highest chance used by the game itself. (Moves like Killer Slide or Breakthrough.)

In the upcoming example, I will be changing Stone Wall’s Foul Rate into 64 (100).
TP Cost
In the two bytes located at offset 04 and 05 we can find TP cost. (I have not actually tested if
05 is actually able to increase it, but it could.) For now just focus on 04. Why would you need
it to cost more anyway.
This defines the amount of TP a move will cost to perform. If you choose to make this
hexadecimal 64 (100) or higher, it’ll fail to show correctly. However it’ll still take away that
amount of TP when used.
Stone Wall’s hexadecimal is 2D, which is 45 if translated to decimals.

In the upcoming example, I will be changing Stone Wall’s cost to 05 (5).

Move Power
At the offset 06 we can find Move Power. This I assume in some way calculates extra form
gained if the Move is used. However, we don’t need to know how that stuff is calculated
exactly, all you need to know is that a higher number means more power.
Currently unclear what the max number is.
Move Power most of the time goes pretty much hand in hand with TP Cost. Anomalies for
this include moves like Breakthrough or Killer Slide (because of their high Foul Rate), and
Alien moves which basically have double the power of a move with similar TP Cost.
Stone Wall’s Move Power is 60, other ends of the Power used in the game include:
-00 for the lowest amount of Power used in the game. (Moves like Killer Slide or Flurry Dash)
-78 for the higher amount of Power used in the game. (Moves like The Earth or Cross Fire)

In the upcoming example, I will be changing Stone Wall’s to 78 to beat almost everything.

Player Requirement
At the byte right next to it located at offset 07 we can find Player Requirements. This number
defines if there’s a specific requirement a player needs to meet to be able to learn the move.
This means stuff like Body Type or Element. If the player isn’t valid to learn the move, even
cheating it on with unitstat.dat will not function.
The Player Requirement hexadecimal for Stone Wall is 03 which means it’s for Large
Players only. All other requirement numbers are:
-02 Large and Small Players not allowed (Aikido)
-03 Large Players only (Moves like Super Armadillo, The Wall, Earthquake)
-04 Small Players only (Baby Dragon Shot)
-05 Large Players not allowed (Moves like Flurry Dash, Inazuma Drop, Hawk Shot)
-06 Small Players not allowed (Utter Gutsiness Club)
-1E Girl Players only. I don’t know if this is Gender or Body. (Moves like Bed of Roses)
-1F Fire Element Players only.
-20 Air Element Players only.
-32 Currently unclear, assumed IE1 leftover. (Used by 62TP Inazuma Drop)
-33 Currently unclear, assumed IE1 leftover. (Used by 62TP Inazuma Break)

In the upcoming example, I will be changing Stone Wall’s Player Requirement to Fire (1F) as
I assume messing with Body Size might break animation.
Move Element
At the byte right next to that at offset 08 we can find Move Element. This number defines
which Element the move is. You can see the change by the icon of the move changing, but it
also influences duel form. Stone Wall’s number here is 02 which is Wood. All other Elements
are:
-01 Air
-02 Wood
-03 Fire
-04 Earth
-05 Unknown (Currently unclear what its effects on form are. Doesn’t seem to exist for
players. Icon provided below)

In the upcoming example I will be changing Stone Wall’s Element to 04 (Earth).

Co-op Data
The four bytes located at offset 0A 0B 0C 0D are for Co-op Data. This includes the amount
of players necessary and the requirements for those players.
Stone Wall’s bytes here are 01 0E A2 00. I will be splitting this one up into different sections
because of the way the requirements work. First the number of players.

Co-op Player Amount


At offset 0A you can find the byte that defines how many players are present in the move.
If there’s a desync between the amount of players here and the amount of players in the Act
(animation) you’ll get some issues, they won’t break the game though. Try to keep the
amount of players here the same as in the Act. Here are the numbers used by the game:
-01 for 1 extra player (2 total).
-02 for 2 extra players (3 total).
I also haven’t tried what would happen if you tried to change the number into 03.

Co-op Requirement Category


At offset 0B you can find the Requirement Category. This defines what Category the
Requirement for the Partner players is. This works differently from the regular player
requirement, as this has way more specific options to play around with (like choosing any
Special Move requirement you want). The Category options include:
-17 for standard no requirement, a lot of Co-op moves just use this
-0A for Body Type
-0E for Special Moves
-0F for Player Element
-51 for specific players (don’t know how this one is edited)
Co-op Player Requirement
At the offsets 0C and 0D the Co-Op Player Requirement is located. This defines what the
specific requirement is depending on the previous Requirement Category given. I will list all
the options here in their separate categories:

Standard (17)
This doesn’t have multiple options, but 01 still needs to be written behind it.

Body Type (0A)


-00 00 for Normal Players (Aikido, Body Shield, Inazuma-1-Drop)
-01 00 for Large Players (Inazuma Drop, Whale Guard)
-02 00 for Small Players (No example, but I tested this)

Special Move (0E)


This can be any Special Move you want, just put its ID here and you’ll make it the
requirement.
IDs used by the game itself include:
-8F 00 Fire Tornado (Dragon Tornado, Twin Boost F)
-C9 00 Back Tornado (Double Tornado)
-05 01 Eternal Blizzard (Wyvern Blizzard)
-6F 00 Super Armadillo (Armadillo Circus)
-A2 00 God Hand (Stone Wall)

Element (0F)
-01 00 Air (Cross Fire (Fire), Fire Blizzard (Fire))
-02 00 Wood (No example, but I tested this)
-03 00 Fire (Fire Rooster, Cross Fire (Air), Fire Blizzard (Air))
-04 00 Earth (No example, but I tested this)

Specific Players (51)


I don’t know if it’s possible to create your own custom combinations here, for now just
assume it’s coded somewhere else.
-14 00 Mark and Axel (Inazuma Break)
-1B 00 Mark, Axel, Shawn or Xene (The Earth)

In the example, I will change Stone Wall’s Partner to require Earthquake (0E 7C 00)

Move Attribute
The byte located at offset 0F is for Move Attribute, this will determine if the move is a Long
Shot, Block, or Shot Block. For some reason you’re also able to give these attributes to
moves like Dribble and Catch moves. I have not tested what this does, also not including a
Block data segment at the end of the document might mess with it.
Here’s the full list of options:
-01 Long Shot
-02 Block
-04 Shot Block
Seemingly, 03 doesn’t exist. In IE3 Chain Shot is also referred to as 08.

In the upcoming example, unfortunately my change didn’t function.

Leveling
The byte located at offset 10 is for Leveling. This number will both determine what kind of
leveling the move has, and how long it takes to level. Stone Wall’s byte here is 67 the
highest for normal moves. A full list of all options include:
-65 Normal move, shortest time.
-66 Normal move, middle time.
-67 Normal move, longest time.
-01 Mega move, shortest time.
-02 Mega move, middle time.
-03 Mega move, longest time.

In the upcoming example, we’ll be changing Stone Wall into a Mega move (01)

Move Name
The two bytes located at offsets 14 and 15 are for the location of the Special Move Name in
command.STR. This only changes the instances in which it’s written down in the normal font,
not the graphics. I haven’t messed around with this too much.
Stone Wall’s numbers are 73 04.

In the upcoming example, we’ll be changing Stone Wall into The Earth (DB 02)

Move Description
The two bytes located at offsets 16 and 17 are for the location of the Special Move
description in command.STR. I haven’t messed around with this too much.
Stone Wall’s numbers are 74 04.

In the upcoming example, we’ll be changing Stone Wall’s description into Supernova’s (45
03)
Animation ID
The three bytes near the end at the offsets 18, 19 and 1A is the ID for the act.pkb that’s
used as the animation for the move. I haven’t messed around with this too much, but make
sure that when switching with co-op moves that you fix the Co-op Data. I’ve also noticed that
it gets REALLY buggy if you have a Move type differing from the act.
Stone Wall’s numbers are C4 8F 01

In the upcoming example, we’ll be changing Stone Wall’s to Rolling Hell (04 8C 01)

Example
All the changes are mentioned in their respect articles, the line will look like this:

And this is the result:


https://youtu.be/3Qi1N98BB5c
As you can see, there’s still some issues, with Drent not showing up in the move. It’s
currently unclear to me as to why that is. I’ll assume that the Long Shot tag didn’t work
because of the fact that it’s a dribble.
The first rendition of this had power set to FF, but I changed it to 78 as it didn’t seem to work
for whatever reason despite me remembering it did.

IE3 command.dat
Lacking info
This version has a few extra features, I won’t be going over them for now. There are a lot of
similarities between this one and the old one. I suggest View Window 36.
-Adding to Compressed Packs
Intro
While replacing files isn’t too complicated, adding extra things to preexisting
compressed .pkbs isn’t as easy. If you’re newer to romhacking, try sticking to replacing files
instead.
Here I will go over how you can add more files to a .pkb. The .pkb itself is easy to handle,
you can just paste the new thing behind it, but you have to edit the .pkh accordingly. In this
example I will be editing fac.pkb and fac.pkh which can be found at /data_iz/face2d/, this
file is used for the 2D Sprite Portraits found in your menu and in text situations.

.pkb
First, let’s take a look at what we’re trying to add. We will be attempting to add this face
sprite:

Now before we start editing fac.pkb and fac.pkh, we must turn this into a (LZ10)
compressed image. You can do this by following the steps here up until Step 12.
Export that pac_, and make sure to check it in Tinke to see if the image shows correctly.
Now open it in a Hex editor, it should look something like this:

Copy the entire contents and paste it at the end of fac.pkb in your hex editor. It might give
you a warning that you’re increasing file size, this is fine.
Your fac.pkb should now be finished.

.pkh
Now to the complicated, we will be editing some bytes based on amounts, file sizes and
offsets. We start with the compressed image’s data inside of fac.pkh. For this section, we
will be setting the View Window to 12, this way it’ll become 1 row per file. It should look
something like this at the end of the file:

The last regular row here is Tom Skipper’s sprite. Here’s the values sectioned off:

Let’s first add an extra row where we will put our added file’s data. It might give you a
warning that you’re increasing file size, this is fine.:

Sprite ID
At Offset 00, 01, 02 it tells the game the Sprite ID used in unitbase.dat that should be
associated with the specific file. It’s important to follow the pattern here. In the case of
fac.pkh almost every file has a 64 hexadecimal difference between them, except for when
the same character has multiple face sprites, or there’s a huge gap. Tom Skipper’s
information here is 24 78 04, if we mirror that it’s 47824. Divided by 64, that’s B71, mirrored
that’s 71 0B. This is exactly Tom Skipper’s Sprite ID as shown in unitbase.dat.
Adding multiple files for one ID is something I do not yet understand, but we don’t have to do
that for our characters for our characters, so all we have to do is do + 64 in hexadecimals to
the first byte.
The number itself is in the opposite order, so while it says 24 78 04, it’s actually 47824. We
will be doing 47824 + 64 = 47888. So we will note this down in the file as 88 78 04:

47888 divided by 64 is B72 aka 72 0B for the ID.

Offset in .pkb
At Offset 04, 05 and 06 we need to write down the Offset of the first byte of the file we’re
adding in fac.pkb. You can find this here:

Now typically we’d have to mirror it like how Tom Skipper’s 20D270 Offset is written as 70
D2 20 in the file. But in this case 20D820 is the same mirrored so we can just write down 20
D8 20:

NOTE: It could also be that the .pkh you’re editing doesn’t have a section for Offset in .pkb,
in this case, set View Window to 8 and ignore what is written here. An example of this is
io.pkh.

File Length
For the last part of this section, there’s File Length. This is as simple as looking at your
compressed image in Tinke, take that number, put it in hexadecimals, and mirror it.
Let’s take a look at our file’s size. Simply just replace a file with yours real quick and take a
look at the “Length” property on the right side of Tinke.

Our new file is 1360 bytes long, if translated to hexadecimals that is 550. Now let’s mirror
that into 50 05 and put it in fac.pkh.

Our file data is complete! But we’re not done yet with fac.pkh.

fac.pkh Length
I suggest putting your View Window back to 16 for this part, to show the information is nice
singular rows. Located at Offset 00 and 01 in the second row you’ll find bytes we have to edit
because we changed the size of our fac.pkh.

Normally, the file length of fac.pkh is 22096, which translated into hexadecimals is 5650
(mirrored 50 56). But with the added data for our new file, we’ve increased its size by 12
(0C). You can view the changes in size by replacing the file inside of Tinke temporarily:

The new size, 22108, translated into hexadecimals is 565C, now mirror it and we get 5C 56,
enter this into the file.

Now one last step.


File Amount
These two bytes reflect the amount of files that are in fac.pkb. The previous total was 1837
(first file is file 0), translated into hexadecimals is 72D. Now let’s increase this by 1, because
we added one extra file to the .pkb. We end up with 72E, which should be mirrored and
entered into fac.pkh as 2E 07. As shown below:

And that’s it!


All we have to do now is replace the fac.pkb and fac.pkh in Tinke with the edited ones,
save your ROM and it should be available. If everything went well you can unpack your
newly replaced fac.pkb in Tinke and see that it now has a fac.pkb_1837.pac_ added to it.

In this case, the sprite is fully available in unitbase.dat under the ID of 72 0B.

-Overworld/Match Sprites
Lacking info
These are unsupported by Tinke, I’m currently in the process of creating a library for all the
files with data on which one belongs to who. For now, use unitbase.dat to copy those of
other players.
-Map Info Editing
Not started

-Sound and Video


In progress
Tinke accepts .wav for import and export.
Edit .SAD audio files in professor layton pandora's box | GBAtemp.net - The Independent
Video Game Community
The same rule applies here, audio cracks/corrupts unless you inject in Curious Village,
extract that and swap files with IE2 one. Needs to be mono-track. If it’s not, use a sound
editing program like Audacity to merge tracks or remove one.

Video seems to be untouchable at this moment in time, this will be updated when more
information becomes available.

-Models
In progress
NOT MINE:
Inserting 3D Models (Spanish)
Editing and Inserting 3D Models (Spanish)

-Tools
In progress
(Spanish) ID, Sprite, and Model finder. (HAVE NOT VERIFIED SAFETY, BE AWARE)
[Video Here]

HxD Hex Editor is the Hex Editor I use.

Tinke 0.9.2 is my version of Tinke, but I use older versions of Tinke sometimes for its feature
of translating hexadecimals to Japanese which is excluded from the most recent version.
[Download Here]

I use paint.net for image editing.

You might also like