User:Kimbles/Medarot 1 Hacking Notes

From Medapedia
Revision as of 18:23, 21 October 2012 by Kimbles (talk | contribs) (Been meaning to add this for a while. :D)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

Just some notes about the inner workings of Medarot 1.

I'd love to make a translation patch for this, but it's definitely not happening any time soon!

Text locations

This should be all of the text in the game. There's surprisingly not that much, but I think hacking it will be pretty annoying...

Bank # Rom address Contents
0x02 0BF04 Attributes
0BFC0 Skills
0x04 13860 (Unused) Attack types
0x16 59360 Credits
5A000 Story/Dialogue 1
0x17 5CF40 (Unused) Part name placeholders
5DAF0 Items
5DD50 Medals
5E4E6 Medarotter names
5EC36 Medarot names
5F6D2 Attack names
0x18 60000 Story/Dialogue 2
0x1A 68000 Story/Dialogue 3
0x1C 725CC Parts names and model numbers
0x1D 74000 Battle/General text
0x1E 78000 Menu and debug text, text boxes, map
0x1F 7F298 Parts descriptions

Parts data

(These are my notes from when I ripped the stats here.)

Sadly, this game isn't nearly as easy to work with as the others. ._. The stat screens give you much less info, and non-attacking actions aren't even named... It turns out this isn't just bad presentation, but the game basically doesn't define different actions as neatly as the later games.

The parts are listed in the same order as the Medarot list, with all 60 head parts followed by all 60 right arm parts, then left arms, then legs. The addresses are as follows:

Heads:    0x5C000
Rights:   0x5C3D0
Lefts:    0x5C7A0
Legs:     0x5CB70
End:      0x5CF30

The part names and model numbers are found elsewhere, but don't seem to have any other data stored with them... This should be everything, aside from whether the part is male or female (which I haven't been able to find).

Heads/Arms

Each head/arm part has 16 whole bytes, but a lot of the effects are invisible.

Format:
 /A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/

A = Attribute
B = Action
C = Armor
D = Skill
E = Success
F = Power
G = Pierce
H = Uses/Charge
I = Cooldown (for arms)
J = Flag (adds to Attack stat?)
K = Flag (adds to Defense stat?)
L = Flag (adds to Special stat?)
M = Battle animation
N = Preferred "effect flag" - when targeting
O = "Effect flag" - when being targeted
P = Attack name
  • A - Decides the attribute. There are 28 of these (00-1B), but some are for special medals and aren't used on parts. (By changing this, you could edit a part to be compatible with the cat and ? medals.)
  • B - Decides the action effect as well as the part's description. These range from 00-37 for heads and arms, and 3D-43 for legs. (Full list below)
  • C - This decides the armor value. The maximum is 255 (FF).
  • D - This decides the skill as well as the "mode" the part uses in battle. Pretty mysterious. The possible values are 01-0F:
  01: Strike  (attack)       02: Berserk (unused)
  03: Strike  (unused)       04: Berserk (attack)
  05: Shoot   (attack)       06: Snipe   (attack)
  07: Support (speed up)     08: Protect (defend)
  09: Protect (traps)        0A: Heal    (status)
  0B: Heal    (recovery)     0C: Support (scan)
  0D: Support (conceal)      0E: Other   (transform)
  0F: Other   (negate)

(They seem to affect which messages it displays and whether it displays an attack name or animation when used.)

  • E - This number decides the success value (ranges from 0-99, or 00-63 in hex).
  • F - Likewise, decides the power value.
  • G - This decides whether or not the part has the "pierce" effect. It's always either 00 (no) or 0B (yes).
  • H - For heads, this is the number of uses. For arms it's the charge value.
  • I - For heads, this is always 00. For arms it's the cooldown value.
  • J, K, L - Always either 00 or 01. (One is 01, the other two are 00.) I haven't confirmed this but it appears to be linked to whether the part falls under the Attack, Defense, or Special category. (Apparently, using sets of parts with matching categories affects the Medal's Attack/Defense/Special stats, which in turn decides how it behaves in battle in some obscure way.) Supposedly the category is supposed to be directly tied to the part's attribute though, so really I don't see why they needed a separate value for it, let alone three. o_O
  • M - For parts with animations, this decides which animation it uses (ranging from 00-16). Always 00 for parts without animations.
  • N - Apparently this searches the enemy parts for a specific effect which it will try harder to aim for (For example, Anti-Air attacks will usually aim for flying Medarots.)
  • O - Puts a marker for a specific effect on the part, so that parts with a matching value in N will aim for it more?
  • P - For attacking parts, this decides the attack name it shows in-battle (ranging from 00-12). Tends to be 00 for non-attacking parts.

(Many thanks go out to a Japanese Google Docs page (which I've misplaced the link for) for explaning what J, K, L, N, and O do, otherwise I never would have figured it out!)

Legs

These are a bit more straightforward, but still take 16 bytes.

Format:
 /A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/

A = Attribute
B = Leg type
C = Armor
D = Speed
E = Mobility
F = Fighting
G = Shooting
H = Scan
I = Conceal
J = Always 00
K = Always 00
L = Always 00
M = Always 00
N = ???
O = ???
P = Always 00
  • A - Same as above.
  • B - Decides the Leg type. There are 7 of them, ranging from 3D (Flying) to 43 (Water).
  • C, D, E, F, G, H - These are numeric stats ranging from 0 to 255 (FF in hex).
  • I - This is also a numeric stat (Conceal, which decides how much of a bonus you get from using Conceal parts), but it's not listed on the stats page like the others. (If you transfer the parts over into Medarot 2 where it shows the Conceal stat, you can see that they use the exact same numbers.) I have no idea why it's hidden in this game, maybe they just ran out of space on the stat page. :P
  • N, O - These only have non-00 values on Flying and Water leg parts, which implies it has something to do with the effects of Anti-Air and Anti-Sea.
  • J, K, L, M, P - These seem to have no use on leg parts and are always 00.

That's it!