User:Kimbles/Medarot 1 Hacking Notes: Difference between revisions

From Medapedia
Jump to navigationJump to search
(Been meaning to add this for a while. :D)
 
m (Found the link.)
 
(2 intermediate revisions by the same user not shown)
Line 3: Line 3:
I'd love to make a translation patch for this, but it's definitely not happening any time soon!
I'd love to make a translation patch for this, but it's definitely not happening any time soon!


== Text locations ==
== Subpages ==


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...
* [[User:Kimbles/Medarot 1 Hacking Notes/Text|Text dumps / editing]]


{| class=wikitable
== Bank map ==
 
For those interested in where things are organized in the ROM.
 
{| class="wikitable collapsible collapsed" width=500
|-
|-
! Bank #
! colspan=3 | Bank map
! Rom address
|-
! Bank
! Addresss
! Contents
! Contents
|-
|-
| rowspan=2 | 0x02
|0x00
|0BF04
|0
|Attributes
|?????
|-
|-
|0BFC0
|0x01
|Skills
|4000
|?????
|-
|0x02
|8000
|????? <br/>
<font color=blue>0BF04: Attributes (w/ pointers?)<br>
0BFC0: Skills (w/ pointers?)</font>
|-
|0x03
|C000
|?????
|-
|-
|0x04
|0x04
|13860
|10000
|(Unused) Attack types
|????? <br/>
<font color=blue>13860: Unused attack types?</font>
|-
|0x05
|14000
|?????
|-
|0x06
|18000
|?????
|-
|0x07
|1C000
|?????
|-
|0x08
|20000
|<font color=purple>Compressed graphics: <br/>
Font tiles? <br/>
Medal icons? <br/>
Other stuff? <br/>
Intro graphics?</font>
|-
|0x09
|24000
|<font color=purple>Compressed scenery graphics?</font>
|-
|-
| rowspan=2 | 0x16
|0x0A
|59360
|28000
|Credits
|<font color=purple>Whole bank: Full-size medal graphics (uncompressed)</font>
|-
|-
|5A000
|0x0B
|Story/Dialogue 1
|2C000
|<font color=purple>2C000: People sprites (uncompressed)</font> <br/>
2F3E0: ?????
|-
|-
| rowspan=6 | 0x17
|0x0C
|5CF40
|30000
|(Unused) Part name placeholders
|<font color=purple>30000: Head part graphics (uncompressed)</font> <br/>
<font color=blue>33E00: Story/Dialogue snippet 1 (w/ pointers)</font>
|-
|-
|5DAF0
|0x0D
|Items
|34000
|<font color=purple>34000: Right arm part graphics (uncompressed)</font> <br/>
<font color=blue>37E00: Story/Dialogue snippet 2 (w/ pointers)</font>
|-
|-
|5DD50
|0x0E
|Medals
|38000
|<font color=purple>38000: Left arm part graphics (uncompressed)</font> <br/>
<font color=blue>3BE00: Story/Dialogue snippet 3 (w/ pointers)</font>
|-
|-
|5E4E6
|0x0F
|Medarotter names
|3C000
|<font color=purple>38000: Leg part graphics (uncompressed)</font> <br/>
<font color=blue>3FE00: Story/Dialogue snippet 4 (w/ pointers)</font>
|-
|-
|5EC36
|0x10
|Medarot names
|40000
|?????
|-
|-
|5F6D2
|0x11
|Attack names
|44000
|?????
|-
|0x12
|48000
|?????
|-
|0x13
|4C000
|????? <br/>
<font color=blue>4F800: Story/Dialogue snippet 5 (w/ pointers)</font>
|-
|0x14
|50000
|<font color=purple>Whole bank: Medarotter faces and pre-battle field graphics (uncompressed)</font>
|-
|0x15
|54000
|????? (<font color=purple>with one uncompressed smoke animation</font>)
|-
|0x16
|58000
|????? <br/>
<font color=blue>592EE: Credits (w/ pointers?) <br/>
5A000: Story/Dialogue text part 1</font> <br/>
5B000: ????? <br/>
5B800: ????? <br/>
|-
|0x17
|5C000
|5C000: Parts data (head, right, left, legs) <br/>
<font color=blue>5CF40: Unused part name placeholders?<br/>
5DAF0: Item names <br/>
5DD50: Medal names</font> <br/>
<font color=purple>5DE30: compressed scrolling field graphics?</font> <br/>
?????<br/>
<font color=blue>5E4E6: Medarotter names (w/ pointers?)</font> <br/>
?????<br/>
<font color=blue>5EC36: Medarot names</font> <br/>
?????<br/>
<font color=blue>5F6D2: Attack names (w/ pointers)</font> <br/>
|-
|-
|0x18
|0x18
|60000
|60000
|Story/Dialogue 2
|<font color=blue>Whole bank: Story/Dialogue text part 2 (w/ pointers)</font>
|-
|0x19
|64000
|<font color=purple>Whole bank: Attack animation graphics (uncompressed) </font>
|-
|-
|0x1A
|0x1A
|68000
|68000
|Story/Dialogue 3
|<font color=blue>Whole bank: Story/Dialogue text part 3 (w/ pointers)</font>
|-
|0x1B
|6C000
|?????
|-
|-
|0x1C
|0x1C
|725CC
|70000
|Parts names and model numbers
|????? <br/>
<font color=blue>725CC: Part names and model numbers</font>
|-  
|-  
|0x1D
|0x1D
|74000
|74000
|Battle/General text
|<font color=blue>74000: Battle/General text</font> <br/>
76000: ?????
|-
|-
|0x1E
|0x1E
|78000
|78000
|Menu and debug text, text boxes, map
|Whole bank: Menu boxes <font color=blue>and text</font>, map
|-
|-
|0x1F
|0x1F
|7F298
|7C000
|Parts descriptions
|????? <br/>
<font color=purple>7C9F0: Compressed title screen graphics...?</font> <br/>
????? <br/>
<font color=blue>7F298: Part descriptions (w/ pointers)</font>
|-
|-
|}
|}
'''Legend''':
* <font color=blue>Blue</font>: Text or text pointers
* <font color=purple>Purple</font>: Graphics


== Parts data ==
== Parts data ==
Line 121: Line 230:
* '''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.)
* '''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)
* '''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).  
* '''C''' - This decides the armor value. The maximum is 255 (FF).  
Line 158: Line 267:
* '''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.
* '''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!)
(Many thanks go out to [http://dl.dropbox.com/u/84089220/meda/index.html this Japanese page] for explaning what J, K, L, N, and O do, otherwise I never would have figured it out!)


=== Legs ===
=== Legs ===
Line 199: Line 308:


'''''That's it!'''''
'''''That's it!'''''
== Action list ==
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.
{| class="wikitable collapsible collapsed" style="text-align:center;" width=450
|-
! colspan=3 | Action list
|-
! Hex
! Action(s)
! Description shown
|-
| 00
| [[Sword]], [[Hammer]] <br>[[Rifle]], [[Ghost]]
| rowspan=2 | クセがなく つかいやすい
|-
| 01
| [[Gatling]]
|-
| 02
| [[Laser]] *
| rowspan=2 | とても いリょくが たかい
|-
| 03
| [[Beam]]
|-
| 04
| [[Missile]]
| rowspan=2 | ばくふうで ついかダメージをあたえる
|-
| 05
| [[Napalm]]
|-
| 06
| [[Break]]
| rowspan=2 | ぼうぎょしないと だいダメージ
|-
| 07
| [[Press]]
|-
| 08
| [[Fighting Trap]]
| 「なぐる」「がむしゃら」に ダメージ
|-
| 09
| [[Shooting Trap]]
| 「うつ」「ねらいうち」に ダメージ
|-
| 0A
| [[Bug]]
| rowspan=2 | こうどうの せいこうリつを さげる
|-
| 0B
| [[Virus]]
|-
| 0C
| [[Thunder]]
| rowspan=2 | あいてのうごきを ストップさせる
|-
| 0D
| [[Freeze]]
|-
| 0E
| [[Hold]]
| rowspan=2 | いどうスピードを おそくする
|-
| 0F
| [[Wave]]
|-
| 10
| [[Fire]]
| rowspan=2 | いどうちゅうも ダメージをあたえる
|-
| 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.

Latest revision as of 18:29, 1 January 2013

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.

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.

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.