User:Kimbles/Medarot Navi Hacking Notes

From Medapedia
Jump to navigationJump to search

Just somewhere to post the stuff I've figured out. :D

Text locations[edit]

Addresses Text
86650-8D48F Team and Medarotter names (and data, probably)
8D490-8FFC3 Pre- and post-battle text
90700-90C0B Skills (not used on stat screens), natures
90C0C-9282B MF names/descriptions
929AC-92B6B Medal names (and data)
92BEC-930AB Medarot names
930AC-930EB Attributes, MC types
930EC-9576B Action names/descriptions
9576C-95AB3 Leg type names/descriptions
95AB4-95B43 Target types
95B40-98AC3 Part names (and data)
9BF04-9BF4B Attributes repeated? (not used on stat screens)
E068C-E098F Testing messages, default names, stuff
4BF440 "Press start to battle", parts kanji
4C6AE7-4C75C7 Menus, status effects, rotation options
4C8990-4CA16F In-battle messages
4CC850-4CC9E7 Battle result messages
4CCCE4-4CCE0F Menus, link stuff
5D5B4C-5D614B Some menu messages?
5D634C-5D6853 Block names (and data, probably)
5D6ADC-629726 All dialogue (5FC198 = Intro)
62CC2D "Nothing inside", Yes/No
644EFC Test screens? Maybe?
7F3014-7F31F7 Name input and field types?
7F545C-7F6899 Dialogue that happens on the map screen

About dialogue[edit]

Dialogue is stored between 0x5D6ADC and 0x629726, as a series of ~130 smaller parts with a pointer table after each part. Each part seems to correspond to a specific area/event, but they appear to be arranged pretty randomly in regards to where they're used in the game. Within each part the dialogue generally flows in the same order as the actual scene, but it's sometimes split up into smaller pieces which are arranged in random order. The events are pretty self-contained though, so it's not that hard to figure out.

The part containing the the first bit of the intro (from when you start the game to when you exit the classroom) seems to be #50, starting at 0x5FC198.

Tools and stuff[edit]

Complete text table (including kanji):

Use this to read/dump the text in a hex editor.

Table notes[edit]

  • E0?? (where ?? = 01-FF) and E1?? (where ?? = 00-10) are used to represent kanji. There are 255+17 usable kanji characters in the game.
  • F6?? (where ?? = 00-A5) is used to set the dialogue portrait. There are 166 usable portraits, which seem to be grouped together by character (Kasumi's are 00-04, Hiyori's are 05-09, and so on).
  • F8 inserts the player's name.
  • F9 inserts the name of the Medarot you have in slot 1.
  • F1 is the new line character.
  • F2 waits for you to press A and starts a new text box.
  • 00 is the end character for dialogue strings and lists.

Parts data[edit]

Parts data is stored in 3 main sections. One contains the part names, model numbers, and some basic information (male or female, whether it's used for medachange, etc). The second contains the rest of the information including in-battle effects and all of the numeric stats. The third includes the same information as the the second, but for when the part is Medachanged (left blank for non-Medachanging Medarots).

It lists one part at a time for each Medarot in the same order as the Medarot list (all head parts, then all right parts, etc.) for each section. Addresses are as follows:

Section 1 (names, etc.)
Head:  0x95B44
Right: 0x96724
Left:  0x97304
Legs:  0x97EE4

Section 2 (stats, etc.)
Head:  0x98AC4
Right: 0x991E4
Left:  0x99904
Legs:  0x9A024

Section 3 (medachange stats)
Head:  0x9A4E4
Right: 0x9AC04
Left:  0x9B324
Legs:  0x9BA44

Interestingly enough, the game lists both Tinpets (male and female) as Medarots internally, but most of their stats are blank so they're not actually usable. They have model numbers though! (BAS-01BH and BAS-05BH, probably from "Base", with the BH signifying they're pre-Navi Medarots designed by Horuma Rin.)

Section 1[edit]

Here, each part has 8 bytes for its model number, 8 bytes for its name, and 3 bytes of data.

Format:
  /M/M/M/M/M/M/M/M/N/N/N/N/N/N/N/N/
  /A/B/C/D/

M: Model number (as text)
N: Name
A: Attribute, gender, and Medachange type
B: Medachange ID?
C: Unknown.
D: End byte (always 00)
  • The first data byte (A) decides several things:

The first digit (or "nibble") decides whether the part is for a male or female tinpet, as well as what type of Medachange it uses (shift or power).

0 = male, shift (or no Medachange)
1 = female, shift (or no Medachange)
2 = male, power
3 = female, power

The second nibble decides the part's attribute, which decides which Medals it goes best with.

Attributes:
0 = Speed     1 = Power
2 = Status    3 = Defense
4 = Set-up    5 = Recovery
6 = Cancel    7 = Transform
8 = Disrupt

Higher values just give glitchy stuff.

So for example, Blazer-Multi's head part has 13, which makes it female with a shift-type Medachange and the defense attribute.

  • The second data byte (B) is 00 for all non-medachanging Medarots. For Medachanging Medarots, it seems to match for all parts on the Medarot, so this might be what it uses to check if the parts are a matching set. Setting it to a matching non-00 value on all of Windclap's parts actually allows it to Medachange, although into a glitchy mess because it has no sprite and its Medachange stats are blank. (I need to mess around more with this.)
  • Lastly, the third byte (C) has a fairly wide range of values, but I have no idea what it does. :/

Section 2[edit]

Here, each head/arm part has 10 bytes of data, and leg parts only have 7.

Heads/Arms[edit]

Format:
  /A/B/C/D/E/F/G/H/I/J/K/L/ 

A: Action
B: Skill/pierce
C: Armor value
D: Success value
E: Power value
F: Uses (heads), AP cost (arms)
G: Target(s)
H: Range minimum
I: Range maximim
J: Unknown
K: Blank (always 00)
L: End byte (always 00)
  • There are 77 (4C) possible actions, so I'm not going to list them all...
  • The first nibble of the skill byte decides whether the part "pierces" (carries damage/healing over onto other parts). No is 0, yes is 1. The second nibble decides the skill:
Skills:
 0 = Strike    1 = Shoot
 2 = Berserk   3 = Snipe
 4 = Protect   5 = Set-up
 6 = Heal      7 = Special
 8 = Support   9 = Disrupt
  • Armor can go up to 255 (FF), but other numbers only display up to 99 (63). I'm not sure they work properly when they're that high, though.
  • There are 8 possible target types...
Targets:
 00 = Equip     01 = Field
 02 = 1 Ally    03 = All Allies
 04 = 1 Enemy   05 = All Enemies
 06 = 1 Any     07 = All Medarots
  • Like above, there's one byte that's different between Medarots that I haven't figured out the effect of.

Legs[edit]

Format:
  /A/B/C/D/E/F/G/H/

A: Leg type
B: Armor
C: Speed
D: Mobility
E: Defense
F: Physical
G: Ranged
H: End byte (always 00)
  • There are 7 possible leg types.
Legs types:
 00 = Flying     01 = Hover
 02 = Multi-leg  03 = 2-Leg
 04 = Wheeled    05 = Tank
 06 = Water     
  • The rest are numeric stats which behave like in heads/arms.

Section 3[edit]

This section has the stats for Medachanged parts, and appears to use the exact same format as section 2. Medarots that don't Medachange (which is most of them) have all of their stats set to 00 here.

That's it!