User:Kimbles/Medarot 1 Hacking Notes
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!
Subpages[edit]
Bank map[edit]
For those interested in where things are organized in the ROM.
Bank map | ||
---|---|---|
Bank | Addresss | Contents |
0x00 | 0 | ????? |
0x01 | 4000 | ????? |
0x02 | 8000 | ????? 0BF04: Attributes (w/ pointers?) |
0x03 | C000 | ????? |
0x04 | 10000 | ????? 13860: Unused attack types? |
0x05 | 14000 | ????? |
0x06 | 18000 | ????? |
0x07 | 1C000 | ????? |
0x08 | 20000 | Compressed graphics: Font tiles? |
0x09 | 24000 | Compressed scenery graphics? |
0x0A | 28000 | Whole bank: Full-size medal graphics (uncompressed) |
0x0B | 2C000 | 2C000: People sprites (uncompressed) 2F3E0: ????? |
0x0C | 30000 | 30000: Head part graphics (uncompressed) 33E00: Story/Dialogue snippet 1 (w/ pointers) |
0x0D | 34000 | 34000: Right arm part graphics (uncompressed) 37E00: Story/Dialogue snippet 2 (w/ pointers) |
0x0E | 38000 | 38000: Left arm part graphics (uncompressed) 3BE00: Story/Dialogue snippet 3 (w/ pointers) |
0x0F | 3C000 | 38000: Leg part graphics (uncompressed) 3FE00: Story/Dialogue snippet 4 (w/ pointers) |
0x10 | 40000 | ????? |
0x11 | 44000 | ????? |
0x12 | 48000 | ????? |
0x13 | 4C000 | ????? 4F800: Story/Dialogue snippet 5 (w/ pointers) |
0x14 | 50000 | Whole bank: Medarotter faces and pre-battle field graphics (uncompressed) |
0x15 | 54000 | ????? (with one uncompressed smoke animation) |
0x16 | 58000 | ????? 592EE: Credits (w/ pointers?) |
0x17 | 5C000 | 5C000: Parts data (head, right, left, legs) 5CF40: Unused part name placeholders? |
0x18 | 60000 | Whole bank: Story/Dialogue text part 2 (w/ pointers) |
0x19 | 64000 | Whole bank: Attack animation graphics (uncompressed) |
0x1A | 68000 | Whole bank: Story/Dialogue text part 3 (w/ pointers) |
0x1B | 6C000 | ????? |
0x1C | 70000 | ????? 725CC: Part names and model numbers |
0x1D | 74000 | 74000: Battle/General text 76000: ????? |
0x1E | 78000 | Whole bank: Menu boxes and text, map |
0x1F | 7C000 | ????? 7C9F0: Compressed title screen graphics...? |
Legend:
- Blue: Text or text pointers
- Purple: Graphics
Parts data[edit]
(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[edit]
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. (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 this Japanese page for explaning what J, K, L, N, and O do, otherwise I never would have figured it out!)
Legs[edit]
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!
Action list[edit]
This is a full list of actions and the descriptions associated with them. Although the game shows descriptions for every part, some descriptions are used for more than one attack, and actual attack names are only shown when the part is used in-battle.
The "Hex" column here refers to the value for "B" on head and arm parts above. The attack name (for attacking actions) is decided by the value for "P", regardless of which attack is actually being done. The names for non-attacking actions on this list are just the standard names used on this wiki, which mostly come from the later games.
Action list | ||
---|---|---|
Hex | Action(s) | Description shown |
00 | Sword, Hammer Rifle, Ghost |
クセがなく つかいやすい |
01 | Gatling | |
02 | Laser * | とても いリょくが たかい |
03 | Beam | |
04 | Missile | ばくふうで ついかダメージをあたえる |
05 | Napalm | |
06 | Break | ぼうぎょしないと だいダメージ |
07 | Press | |
08 | Fighting Trap | 「なぐる」「がむしゃら」に ダメージ |
09 | Shooting Trap | 「うつ」「ねらいうち」に ダメージ |
0A | Bug | こうどうの せいこうリつを さげる |
0B | Virus | |
0C | Thunder | あいてのうごきを ストップさせる |
0D | Freeze | |
0E | Hold | いどうスピードを おそくする |
0F | Wave | |
10 | Fire | いどうちゅうも ダメージをあたえる |
11 | Melt | |
12 | Trap Cancel | 「トラップ」をはかいする |
13 | Flux Cancel | 「バグ」「ウィルス」のかいじょ |
14 | Stop Cancel | 「サンダー」「アイス」のかいじょ |
15 | Bind Cancel | 「ホールド」「ウェーブ」のかいじょ |
16 | Burn cancel | 「メルト」「ファイヤー」のかいじょ |
17 | Status Cancel | すべてのしょうじょうをかいじょ |
18 | Negate Optical | 「レーザー」「ビーム」をブロック |
19 | Negate Gunpowder | 「ミサイル」「ナパーム」をブロック |
1A | Negate Gravity | 「ブレイク」「プレス」をブロック |
1B | (Not used) ** | とくしゅこうげきをブロック |
1C | Defend | なかまのメダロットを えんごする |
1D | Perfect Defense | かんぜんに こうげきをブロック |
1E | Lesser Defense | よわいこうげきを かんぜんにブロック |
20 | Repair | ダメージをうけたパーツを かいふく |
22 | Revive | きのうていしパーツを ふっかつさせる |
23 | Anti-Air | ひこうメダロットに つよくなる |
26 | Anti-Sea | せんすいメダロットに つよくなる |
28 | Scan | こうげきが あたリやすくなる |
29 | Conceal | こうげきを よけやすくなる |
2A | Scan Clear | ぜんぶのこうげきを あたリにくくする |
2D | Boost Charge | いどうスピードが はやくなる |
2E | Instant Charge | じゅんびじかんを ゼロにする |
37 | Transform | べつのパーツに ヘんしんする |
Actions 1F, 21, 24, 25, 27, 2B, 2C, and 2F-36 aren't used, and their associated descriptions are blank.
* Samurai's beam swords use action 02 (Laser), but the attack name is set to "Beam". This actually makes a slight difference, because Beam attacks can be completely blocked by Negate Optical, but Laser attacks can only have their damage reduced by 3/4. (Basically, it's slightly weaker than it claims to be.)
** Action 1B isn't used by any parts in the game, but it's associated with the only unused part description. Based on the description and its placement on the list, it was probably meant to be a "Negate All" action, and maybe removed because it made the other Negate actions obsolete.