OBD:BINA/OBJC/MELE: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
mNo edit summary |
||
Line 1: | Line 1: | ||
{{OBD OBJC Header|align=right|type=MELE|prev=FURN|next=NEUT|name=Melee profile|onistuff=b_me}} | |||
;Melee profiles | |||
:They are stored globally, as a collection. | |||
:There are 45 of them. | |||
;Structure | |||
:Melee profile header | |||
:List of techniques (split in 3 groups : attack, evade, maneuver) | |||
:List of moves (grouped in sequences corresponding to techniques) | |||
;Messiness | |||
:The move sequences are not listed in the same order as the techniques | |||
:For a structure that's only 16 bytes in size, the moves have ''really'' complicated parsing. | |||
:A lot of EXE hacking is necessary in order to understand and master a move's effect | |||
---- | |||
---- | |||
==Profile header== | |||
{{OBD TXT dec|align=right|onistuff=bina_melee_part_1|size=9}} | |||
;Size is 0xF0 = 240 bytes. Then there's a list of techniques, and a list of moves. | |||
;Amount of techniques and moves used by the profile are declared. | |||
;Amount of moves used by every technique is declared by the technique. | |||
http://www6.fh-eberswalde.de/user/dkriesch/onistuff/images/bin_r_m1.gif | http://www6.fh-eberswalde.de/user/dkriesch/onistuff/images/bin_r_m1.gif | ||
{|{{OBDtable}} | |||
|align=center| | |||
{|{{OBDtable}} | |||
{| | |||
|- ALIGN=CENTER BGCOLOR="#FFDDBB" | |- ALIGN=CENTER BGCOLOR="#FFDDBB" | ||
! WIDTH=15% |Raw hex | |||
! WIDTH=15% |Value | |||
! Meaning | |||
|- | |||
|- | |||
| BGCOLOR="#FFC8C8" | 45 4C 45 4D | | BGCOLOR="#FFC8C8" | 45 4C 45 4D | ||
| MELE | | MELE | ||
| ALIGN=LEFT | melee | | ALIGN=LEFT | melee | ||
|- | |- | ||
| BGCOLOR="#FFFFC8" | 76 02 00 00 | | BGCOLOR="#FFFFC8" | 76 02 00 00 | ||
| 630 | | 630 | ||
| ALIGN=LEFT | unknown | | ALIGN=LEFT | unknown | ||
|- | |- | ||
| BGCOLOR="#C8FFC8" | 00 00 00 00 | | BGCOLOR="#C8FFC8" | 00 00 00 00 | ||
| 0 | | 0 | ||
| ALIGN=LEFT | unknown | | ALIGN=LEFT | unknown | ||
|- | |- | ||
| BGCOLOR="#C8FFFF" | B3 F3 2A 43 | | BGCOLOR="#C8FFFF" | B3 F3 2A 43 | ||
| 170.951950 | | 170.951950 | ||
| ALIGN=LEFT | x-position of ??? | | ALIGN=LEFT | x-position of ??? | ||
|- | |- | ||
| BGCOLOR="#C8FFFF" | C7 0D 71 C1 | | BGCOLOR="#C8FFFF" | C7 0D 71 C1 | ||
| -15.065864 | | -15.065864 | ||
| ALIGN=LEFT | y-position (height) of ??? | | ALIGN=LEFT | y-position (height) of ??? | ||
|- | |- | ||
| BGCOLOR="#C8FFFF" | CF 29 38 42 | | BGCOLOR="#C8FFFF" | CF 29 38 42 | ||
| 46.040829 | | 46.040829 | ||
| ALIGN=LEFT | z-position of ??? | | ALIGN=LEFT | z-position of ??? | ||
|- | |- | ||
| BGCOLOR="#FFC8FF" | 00 00 00 00 | | BGCOLOR="#FFC8FF" | 00 00 00 00 | ||
| 0.000000 | | 0.000000 | ||
| ALIGN=LEFT | rotation on the x-axis in degrees | | ALIGN=LEFT | rotation on the x-axis in degrees | ||
|- | |- | ||
| BGCOLOR="#FFC8FF" | 00 00 00 00 | | BGCOLOR="#FFC8FF" | 00 00 00 00 | ||
| 0.000000 | | 0.000000 | ||
| ALIGN=LEFT | rotation on the y-axis in degrees | | ALIGN=LEFT | rotation on the y-axis in degrees | ||
|- | |- | ||
| BGCOLOR="#FFC8FF" | 00 00 00 00 | | BGCOLOR="#FFC8FF" | 00 00 00 00 | ||
| 0.000000 | | 0.000000 | ||
| ALIGN=LEFT | rotation on the z-axis in degrees | | ALIGN=LEFT | rotation on the z-axis in degrees | ||
|- | |- | ||
| BGCOLOR="#FFC800" | 09 00 00 00 | | BGCOLOR="#FFC800" | 09 00 00 00 | ||
| 9 | | 9 | ||
| ALIGN=LEFT | melee ID | | ALIGN=LEFT | melee ID | ||
|- | |- | ||
| BGCOLOR="#C800C8" COLSPAN=2 | <TT>NINJA_Easy</TT> | | BGCOLOR="#C800C8" COLSPAN=2 | <TT>NINJA_Easy</TT> | ||
| ALIGN=LEFT | space for notes | | ALIGN=LEFT | space for notes | ||
|- | |- | ||
| BGCOLOR="#C87C64" COLSPAN=2 | <TT>ninja_easy_1</TT> | | BGCOLOR="#C87C64" COLSPAN=2 | <TT>ninja_easy_1</TT> | ||
| ALIGN=LEFT | [[OBD:ONCC|ONCC]] model | | ALIGN=LEFT | link by name to an [[OBD:ONCC|ONCC]] model (actually looked up by the melee profile) | ||
|- | |- | ||
| BGCOLOR="#B0C3D4" | 64 00 00 00 | | BGCOLOR="#B0C3D4" | 64 00 00 00 | ||
| 100 | | 100 | ||
| ALIGN=LEFT | unknown | | ALIGN=LEFT | unknown ("notice %"?) | ||
|- | |- | ||
| BGCOLOR="#B0C3D4" | 64 00 00 00 | | BGCOLOR="#B0C3D4" | 64 00 00 00 | ||
| 100 | | 100 | ||
| ALIGN=LEFT | unknown | | ALIGN=LEFT | unknown ("dodge base %"?) | ||
|- | |- | ||
| BGCOLOR="#B0C3D4" | 1E 00 00 00 | | BGCOLOR="#B0C3D4" | 1E 00 00 00 | ||
| 30 | | 30 | ||
| ALIGN=LEFT | unknown | | ALIGN=LEFT | unknown ("dodge damage amount"?) | ||
|- | |- | ||
| BGCOLOR="#B0C3D4" | 05 00 00 00 | | BGCOLOR="#B0C3D4" | 05 00 00 00 | ||
| 5 | | 5 | ||
| ALIGN=LEFT | unknown | | ALIGN=LEFT | unknown ("dodge extra %"?) | ||
|- | |- | ||
| BGCOLOR="#B0C3D4" | 0F 00 00 00 | | BGCOLOR="#B0C3D4" | 0F 00 00 00 | ||
| 15 | | 15 | ||
| ALIGN=LEFT | unknown | | ALIGN=LEFT | unknown ("one-on-one blocking skill %"?) | ||
|- | |- | ||
| BGCOLOR="#B0C3D4" | 14 00 00 00 | | BGCOLOR="#B0C3D4" | 14 00 00 00 | ||
| 20 | | 20 | ||
| ALIGN=LEFT | unknown | | ALIGN=LEFT | unknown ("group blocking skill %"?) | ||
|- | |- | ||
| BGCOLOR="#E7CEA5" | 00 00 00 40 | | BGCOLOR="#E7CEA5" | 00 00 00 40 | ||
| 2.000000 | | 2.000000 | ||
| ALIGN=LEFT | unknown; always the same | | ALIGN=LEFT | unknown; always the same ("not blocked"?) | ||
|- | |- | ||
| BGCOLOR="#E7CEA5" | 33 33 33 3F | | BGCOLOR="#E7CEA5" | 33 33 33 3F | ||
| 0.700000 | | 0.700000 | ||
| ALIGN=LEFT | unknown | | ALIGN=LEFT | unknown ("must change stance"?) | ||
|- | |- | ||
| BGCOLOR="#E7CEA5" | 00 00 C0 3F | | BGCOLOR="#E7CEA5" | 00 00 C0 3F | ||
| 1.500000 | | 1.500000 | ||
| ALIGN=LEFT | unknown | | ALIGN=LEFT | unknown ("blocked but unblockable"?) | ||
|- | |- | ||
| BGCOLOR="#E7CEA5" | 9A 99 99 3F | | BGCOLOR="#E7CEA5" | 9A 99 99 3F | ||
| 1.200000 | | 1.200000 | ||
| ALIGN=LEFT | unknown; always the same | | ALIGN=LEFT | unknown; always the same ("blocked but has stagger"?) | ||
|- | |- | ||
| BGCOLOR="#E7CEA5" | 33 33 33 3F | | BGCOLOR="#E7CEA5" | 33 33 33 3F | ||
| 0.700000 | | 0.700000 | ||
| ALIGN=LEFT | unknown; always the same | | ALIGN=LEFT | unknown; always the same ("blocked but has blockstun"?) | ||
|- | |- | ||
| BGCOLOR="#E7CEA5" | 00 00 00 3F | | BGCOLOR="#E7CEA5" | 00 00 00 3F | ||
| 0.500000 | | 0.500000 | ||
| ALIGN=LEFT | unknown; always the same | | ALIGN=LEFT | unknown; always the same ("blocked"?) | ||
|- | |- | ||
| BGCOLOR="#E7CEA5" | 00 00 00 40 | | BGCOLOR="#E7CEA5" | 00 00 00 40 | ||
| 2.000000 | | 2.000000 | ||
| ALIGN=LEFT | unknown; always the same | | ALIGN=LEFT | unknown; always the same ("throw danger"?) | ||
|- | |- | ||
| BGCOLOR="#FFDDDD" | 3C 00 | | BGCOLOR="#FFDDDD" | 3C 00 | ||
| 60 | | 60 | ||
| ALIGN=LEFT | unknown | | ALIGN=LEFT | unknown | ||
|- | |- | ||
| BGCOLOR="#FFDDDD" | 5A 00 | | BGCOLOR="#FFDDDD" | 5A 00 | ||
| 90 | | 90 | ||
| ALIGN=LEFT | unknown | | ALIGN=LEFT | unknown | ||
|- | |- | ||
| BGCOLOR="#64AAAA" | 1A 00 00 00 | | BGCOLOR="#64AAAA" | 1A 00 00 00 | ||
| 26 | | 26 | ||
| ALIGN=LEFT | | | ALIGN=LEFT | number of attack techniques | ||
|- | |- | ||
| BGCOLOR="#64AAAA" | 06 00 00 00 | | BGCOLOR="#64AAAA" | 06 00 00 00 | ||
| 6 | | 6 | ||
| ALIGN=LEFT | | | ALIGN=LEFT | number of evade/dodge techniques | ||
|- | |- | ||
| BGCOLOR="#64AAAA" | 07 00 00 00 | | BGCOLOR="#64AAAA" | 07 00 00 00 | ||
| 7 | | 7 | ||
| ALIGN=LEFT | | | ALIGN=LEFT | number of maneuver/position techniques | ||
|- | |- | ||
| BGCOLOR="#64AAAA" | 6D 00 00 00 | | BGCOLOR="#64AAAA" | 6D 00 00 00 | ||
| 109 | | 109 | ||
| ALIGN=LEFT | | | ALIGN=LEFT | number of moves | ||
|- | |} | ||
| | |} | ||
|- ALIGN=CENTER | ;Techniques | ||
:They are listed right after the profile's header. Their number is specified in the header, and their size is 88 bytes each. | |||
;Moves | |||
:They are listed right after the techniques. Their number is specified in the header, and their size is 16 bytes each. | |||
---- | |||
---- | |||
==Technique== | |||
{{OBD TXT|align=right|onistuff=bina_melee_part_2|size=56}} | |||
;The amount of techniques (attack, evade, maneuver) is declared in the header. | |||
;The list starts directly after the header. Every technique takes up 0x58 = 88 bytes. | |||
;The example below is the first (attack) technique of the NINJA_easy profile | |||
http://www6.fh-eberswalde.de/user/dkriesch/onistuff/images/bin_r_m2.gif | |||
{|{{OBDtable}} | |||
|align=center| | |||
{|{{OBDtable}} | |||
|- ALIGN=CENTER BGCOLOR="#FFDDBB" | |||
! WIDTH=12% | Offset | |||
! WIDTH=12% | Raw hex | |||
! WIDTH=12% | Value | |||
!Meaning | |||
|- | |||
|0x00 | |||
| BGCOLOR="#EBEBEB" COLSPAN=2 | <TT>Spinning Suplex</TT> | | BGCOLOR="#EBEBEB" COLSPAN=2 | <TT>Spinning Suplex</TT> | ||
| ALIGN=LEFT | | | ALIGN=LEFT | technique's name | ||
|- | |- | ||
|0x40 | |||
| BGCOLOR="#8C8CCC" | 00 00 00 00 | | BGCOLOR="#8C8CCC" | 00 00 00 00 | ||
| 0 | | 0 | ||
| ALIGN=LEFT | unknown | | ALIGN=LEFT | unknown | ||
|- | |- | ||
|0x44 | |||
| BGCOLOR="#FF00C8" | 50 00 00 00 | | BGCOLOR="#FF00C8" | 50 00 00 00 | ||
| 80 | | 80 | ||
| ALIGN=LEFT | unknown | | ALIGN=LEFT | unknown | ||
|- | |- | ||
|0x48 | |||
| BGCOLOR="#F0F096" | 0A 00 00 00 | | BGCOLOR="#F0F096" | 0A 00 00 00 | ||
| 10 | | 10 | ||
| ALIGN=LEFT | unknown | | ALIGN=LEFT | unknown | ||
|- | |- | ||
|0x4C | |||
| BGCOLOR="#00C864" | 58 02 00 00 | | BGCOLOR="#00C864" | 58 02 00 00 | ||
| 600 | | 600 | ||
| ALIGN=LEFT | unknown | | ALIGN=LEFT | unknown (technique repeat delay?) | ||
|- | |- | ||
|0x50 | |||
| BGCOLOR="#00C8FF" | 02 00 00 00 | | BGCOLOR="#00C8FF" | 02 00 00 00 | ||
| 2 | | 2 | ||
| ALIGN=LEFT | | | ALIGN=LEFT | number of moves used by this technique | ||
|- | |- | ||
|0x54 | |||
| BGCOLOR="#C80040" | 57 00 00 00 | | BGCOLOR="#C80040" | 57 00 00 00 | ||
| 87 | | 87 | ||
| ALIGN=LEFT | unknown | | ALIGN=LEFT | position of the first move for this technique in the profile's list of moves | ||
|} | |||
| | |} | ||
|- ALIGN=CENTER | ;Guesses | ||
:The unknown parameters can be : | |||
:*the technique's "weight" | |||
:*the technique's "repeat delay" (probably the one at 0x4C) | |||
:*things (flags?) called "Interruptible", "Generous Dir" and "Fearless" | |||
---- | |||
---- | |||
==Move== | |||
{{OBD TXT dec|align=right|onistuff=bina_melee_part_3|size=93}} | |||
;The amount of moves is declared in the header. | |||
;The list starts directly after the list of techniques. | |||
;Every move takes up 0x10 = 16 bytes. | |||
;The example below is the last move of the NINJA_easy profile | |||
;(actually the one and only move of the Pause technique) | |||
http://www6.fh-eberswalde.de/user/dkriesch/onistuff/images/bin_r_m3.gif | |||
{|{{OBDtable}} | |||
|align=center| | |||
{|{{OBDtable}} | |||
|- ALIGN=CENTER BGCOLOR="#FFDDBB" | |||
! WIDTH=12% | Offset | |||
! WIDTH=12% | Raw hex | |||
! WIDTH=12% | Value | |||
!Meaning | |||
|- | |||
|0x00 | |||
| BGCOLOR="#FFCD96" | 04 00 00 00 | | BGCOLOR="#FFCD96" | 04 00 00 00 | ||
| 4 | | 4 | ||
| ALIGN=LEFT | | | ALIGN=LEFT | Move ID (looked up in the table of moves of type specified at 0x03 : in this case, "Pause") | ||
|- | |- | ||
|0x02 | |||
| BGCOLOR="#C8C864" | 00 | | BGCOLOR="#C8C864" | 00 | ||
| 0 | | 0 | ||
| ALIGN=LEFT | unknown; always zero | | ALIGN=LEFT | unknown; always zero | ||
|- | |- | ||
|0x03 | |||
| BGCOLOR="#0096C8" | 20 | | BGCOLOR="#0096C8" | 20 | ||
| 32 | | 32 | ||
| ALIGN=LEFT | | | ALIGN=LEFT | 0 : Attack; 16 : Position; 32 : Maneuver; 48 : Evade; 64 : Throw (see below) | ||
|- | |- | ||
|0x04 | |||
| BGCOLOR="#FF80C0" | CD CC 4C 3F | | BGCOLOR="#FF80C0" | CD CC 4C 3F | ||
| 0.800000 | | 0.800000 | ||
| ALIGN=LEFT | | | ALIGN=LEFT |move parameter 1 (in this case, "min" : something like the minimum duration of the "Pause") | ||
|- | |- | ||
|0x08 | |||
| BGCOLOR="#D0C0AF" | 00 00 00 00 | | BGCOLOR="#D0C0AF" | 00 00 00 00 | ||
| 0 | | 0 | ||
| ALIGN=LEFT | | | ALIGN=LEFT |move parameter 3 (in this case, none : "Pause" only takes one parameter) | ||
|- | |- | ||
|0x0C | |||
| BGCOLOR="#EEDDFF" | 00 00 00 00 | | BGCOLOR="#EEDDFF" | 00 00 00 00 | ||
| 0 | | 0 | ||
| ALIGN=LEFT | | | ALIGN=LEFT |move parameter 3 (in this case, none : "Pause" only takes one parameter) | ||
|} | |} | ||
|} | |} | ||
;Move types | |||
:0 : Attack, struct array starts at 0x140A88 in the English EXE | |||
:16 : Position, struct array starts at 0x1435B0 in the English EXE | |||
:32 : Maneuver, struct array starts at 0x143AB0 in the English EXE | |||
:48 : Evade, struct array starts at 0x143E30 in the English EXE | |||
:64 : Throw, struct array starts at 0x144370 in the English EXE | |||
---- | |||
---- | |||
==Blue Box Beta WMDD== | |||
http://www6.fh-eberswalde.de/user/dkriesch/oni/bina_melee.gif | |||
---- | |||
---- | |||
;PART 1 - PROFILE | |||
{{OBD TXT dec|onistuff=bina_melee_part_1|size=9}} | |||
;PART 2 - TECHNIQUE | |||
{{OBD TXT|onistuff=bina_melee_part_2|size=56}} | |||
;PART 3 - MOVE | |||
{{OBD TXT dec|onistuff=bina_melee_part_3|size=93}} | |||
---- | |||
---- | |||
{{OBD OBJC Footer|align=right|type=MELE|prev=FURN|next=NEUT|name=Melee profile|onistuff=b_me}} |
Revision as of 01:29, 30 July 2006
|
- Melee profiles
- They are stored globally, as a collection.
- There are 45 of them.
- Structure
- Melee profile header
- List of techniques (split in 3 groups : attack, evade, maneuver)
- List of moves (grouped in sequences corresponding to techniques)
- Messiness
- The move sequences are not listed in the same order as the techniques
- For a structure that's only 16 bytes in size, the moves have really complicated parsing.
- A lot of EXE hacking is necessary in order to understand and master a move's effect
Profile header
- Size is 0xF0 = 240 bytes. Then there's a list of techniques, and a list of moves.
- Amount of techniques and moves used by the profile are declared.
- Amount of moves used by every technique is declared by the technique.
|
- Techniques
- They are listed right after the profile's header. Their number is specified in the header, and their size is 88 bytes each.
- Moves
- They are listed right after the techniques. Their number is specified in the header, and their size is 16 bytes each.
Technique
- The amount of techniques (attack, evade, maneuver) is declared in the header.
- The list starts directly after the header. Every technique takes up 0x58 = 88 bytes.
- The example below is the first (attack) technique of the NINJA_easy profile
|
- Guesses
- The unknown parameters can be :
- the technique's "weight"
- the technique's "repeat delay" (probably the one at 0x4C)
- things (flags?) called "Interruptible", "Generous Dir" and "Fearless"
Move
- The amount of moves is declared in the header.
- The list starts directly after the list of techniques.
- Every move takes up 0x10 = 16 bytes.
- The example below is the last move of the NINJA_easy profile
- (actually the one and only move of the Pause technique)
|
- Move types
- 0 : Attack, struct array starts at 0x140A88 in the English EXE
- 16 : Position, struct array starts at 0x1435B0 in the English EXE
- 32 : Maneuver, struct array starts at 0x143AB0 in the English EXE
- 48 : Evade, struct array starts at 0x143E30 in the English EXE
- 64 : Throw, struct array starts at 0x144370 in the English EXE
Blue Box Beta WMDD
- PART 1 - PROFILE
- PART 2 - TECHNIQUE
- PART 3 - MOVE
ONI BINARY DATA |
---|
AKVA << Other file types >> CBPI |
BINA : Binary data |
TMBD << Other BINA >> ONIE |
OBJC : Objects |
FURN << Other OBJC >> NEUT |
MELE : Melee profile |
[[OBD:File types/{{{family}}}|{{{family}}} file]] |