OBD:BINA/OBJC/MELE: Difference between revisions

From OniGalore
< OBD:BINA‎ | OBJC
Jump to navigation Jump to search
No edit summary
mNo edit summary
Line 1: Line 1:
[[Main Page]] >> [[OBD:Oni Binary Data|Oni Binary Data]] >> [[OBD:File types|File types]] >> [[OBD:BINA|BINA]] >> Melee_Profile.BINA
{{OBD OBJC Header|align=right|type=MELE|prev=FURN|next=NEUT|name=Melee profile|onistuff=b_me}}


 
;Melee profiles
<CENTER>[[OBD:BINA/Combat|<==]] <FONT SIZE=5>Melee_Profile.BINA</FONT> [[OBD:BINA/Texture_Materials|==>]]</CENTER>
:They are stored globally, as a collection.
 
:There are 45 of them.
 
;Structure
This file contains 45 packages. Every package is subdivided in 3 parts. The first image shows the full first part, the second image the first block of the second part and the third image the last block of the third part. All images belong to the first package.
: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}}
http://www6.fh-eberswalde.de/user/dkriesch/onistuff/images/bin_r_m2.gif
|align=center|
 
{|{{OBDtable}}
http://www6.fh-eberswalde.de/user/dkriesch/onistuff/images/bin_r_m3.gif
 
 
{| BORDER=1 WIDTH=100% CELLPADDING=2 CELLSPACING=0
|- ALIGN=CENTER BGCOLOR="#FFDDBB"
|- ALIGN=CENTER BGCOLOR="#FFDDBB"
| WIDTH=15% | <B>Hex</B>
! WIDTH=15% |Raw hex
| WIDTH=15% | <B>Translation</B>
! WIDTH=15% |Value
| WIDTH=70% | <B>Meaning</B>
! Meaning
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#FFEEDD"
|-
| BGCOLOR="#FF0000" | 43 4A 42 4F
| OBJC
| ALIGN=LEFT | object
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#FFEEDD"
| BGCOLOR="#FFFF00" | 84 75 02 00
| 161156
| ALIGN=LEFT | 161156 bytes is the length of the following melee profile part from this position
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#FFEEDD"
| BGCOLOR="#00FF00" | 27 00 00 00
| 39
| ALIGN=LEFT | identification number for the weapon classes; in every level the same; do not change it
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#FFEEDD"
| BGCOLOR="#00FFFF" | 28 15 00 00
| 5416
| ALIGN=LEFT | 5416 bytes (338.5 lines) is the length of the following package (area edged in black)
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#000000"
| COLSPAN=3 | <FONT SIZE=2 COLOR="#FFFFFF">Below follows the first package.</FONT>
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#808080"
| COLSPAN=3 | <FONT SIZE=2 COLOR="#FFFFFF">Below follows the first part.</FONT>
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#FFEEDD"
| BGCOLOR="#FFC8C8" | 45 4C 45 4D
| BGCOLOR="#FFC8C8" | 45 4C 45 4D
| MELE
| MELE
| ALIGN=LEFT | melee
| ALIGN=LEFT | melee
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#FFEEDD"
|-
| BGCOLOR="#FFFFC8" | 76 02 00 00
| BGCOLOR="#FFFFC8" | 76 02 00 00
| 630
| 630
| ALIGN=LEFT | unknown
| ALIGN=LEFT | unknown
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#FFEEDD"
|-
| BGCOLOR="#C8FFC8" | 00 00 00 00
| BGCOLOR="#C8FFC8" | 00 00 00 00
| 0
| 0
| ALIGN=LEFT | unknown
| ALIGN=LEFT | unknown
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#FFEEDD"
|-
| 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 ???
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#FFEEDD"
|-
| 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 ???
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#FFEEDD"
|-
| 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 ???
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#FFEEDD"
|-
| 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
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#FFEEDD"
|-
| 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
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#FFEEDD"
|-
| 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
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#FFEEDD"
|-
| BGCOLOR="#FFC800" | 09 00 00 00
| BGCOLOR="#FFC800" | 09 00 00 00
| 9
| 9
| ALIGN=LEFT | melee ID
| ALIGN=LEFT | melee ID
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#FFEEDD"
|-
| 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
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#FFEEDD"
|-
| 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)
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#FFEEDD"
|-
| BGCOLOR="#B0C3D4" | 64 00 00 00
| BGCOLOR="#B0C3D4" | 64 00 00 00
| 100
| 100
| ALIGN=LEFT | unknown
| ALIGN=LEFT | unknown ("notice %"?)
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#FFEEDD"
|-
| BGCOLOR="#B0C3D4" | 64 00 00 00
| BGCOLOR="#B0C3D4" | 64 00 00 00
| 100
| 100
| ALIGN=LEFT | unknown
| ALIGN=LEFT | unknown ("dodge base %"?)
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#FFEEDD"
|-
| BGCOLOR="#B0C3D4" | 1E 00 00 00
| BGCOLOR="#B0C3D4" | 1E 00 00 00
| 30
| 30
| ALIGN=LEFT | unknown
| ALIGN=LEFT | unknown ("dodge damage amount"?)
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#FFEEDD"
|-
| BGCOLOR="#B0C3D4" | 05 00 00 00
| BGCOLOR="#B0C3D4" | 05 00 00 00
| 5
| 5
| ALIGN=LEFT | unknown
| ALIGN=LEFT | unknown ("dodge extra %"?)
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#FFEEDD"
|-
| 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 %"?)
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#FFEEDD"
|-
| BGCOLOR="#B0C3D4" | 14 00 00 00
| BGCOLOR="#B0C3D4" | 14 00 00 00
| 20
| 20
| ALIGN=LEFT | unknown
| ALIGN=LEFT | unknown ("group blocking skill %"?)
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#FFEEDD"
|-
| 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"?)
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#FFEEDD"
|-
| 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"?)
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#FFEEDD"
|-
| 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"?)
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#FFEEDD"
|-
| 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"?)
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#FFEEDD"
|-
| 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"?)
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#FFEEDD"
|-
| 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"?)
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#FFEEDD"
|-
| 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"?)
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#FFEEDD"
|-
| BGCOLOR="#FFDDDD" | 3C 00
| BGCOLOR="#FFDDDD" | 3C 00
| 60
| 60
| ALIGN=LEFT | unknown
| ALIGN=LEFT | unknown
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#FFEEDD"
|-
| BGCOLOR="#FFDDDD" | 5A 00
| BGCOLOR="#FFDDDD" | 5A 00
| 90
| 90
| ALIGN=LEFT | unknown
| ALIGN=LEFT | unknown
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#FFEEDD"
|-
| BGCOLOR="#64AAAA" | 1A 00 00 00
| BGCOLOR="#64AAAA" | 1A 00 00 00
| 26
| 26
| ALIGN=LEFT | unknown1
| ALIGN=LEFT | number of attack techniques
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#FFEEDD"
|-
| BGCOLOR="#64AAAA" | 06 00 00 00
| BGCOLOR="#64AAAA" | 06 00 00 00
| 6
| 6
| ALIGN=LEFT | unknown2
| ALIGN=LEFT | number of evade/dodge techniques
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#FFEEDD"
|-
| BGCOLOR="#64AAAA" | 07 00 00 00
| BGCOLOR="#64AAAA" | 07 00 00 00
| 7
| 7
| ALIGN=LEFT | unknown3; unknown1 + unknown2 + unknown3 = amount of blocks of part 2
| ALIGN=LEFT | number of maneuver/position techniques
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#FFEEDD"
|-
| BGCOLOR="#64AAAA" | 6D 00 00 00
| BGCOLOR="#64AAAA" | 6D 00 00 00
| 109
| 109
| ALIGN=LEFT | amount of blocks of part 3
| ALIGN=LEFT | number of moves
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#808080"
|}
| COLSPAN=3 | <FONT SIZE=2 COLOR="#FFFFFF">Below follows the first block of the second part.</FONT>
|}
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#FFEEDD"
;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 | space for notes
| ALIGN=LEFT | technique's name
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#FFEEDD"
|-
|0x40
| BGCOLOR="#8C8CCC" | 00 00 00 00
| BGCOLOR="#8C8CCC" | 00 00 00 00
| 0
| 0
| ALIGN=LEFT | unknown
| ALIGN=LEFT | unknown
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#FFEEDD"
|-
|0x44
| BGCOLOR="#FF00C8" | 50 00 00 00
| BGCOLOR="#FF00C8" | 50 00 00 00
| 80
| 80
| ALIGN=LEFT | unknown
| ALIGN=LEFT | unknown
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#FFEEDD"
|-
|0x48
| BGCOLOR="#F0F096" | 0A 00 00 00
| BGCOLOR="#F0F096" | 0A 00 00 00
| 10
| 10
| ALIGN=LEFT | unknown
| ALIGN=LEFT | unknown
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#FFEEDD"
|-
|0x4C
| BGCOLOR="#00C864" | 58 02 00 00
| BGCOLOR="#00C864" | 58 02 00 00
| 600
| 600
| ALIGN=LEFT | unknown
| ALIGN=LEFT | unknown (technique repeat delay?)
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#FFEEDD"
|-
|0x50
| BGCOLOR="#00C8FF" | 02 00 00 00
| BGCOLOR="#00C8FF" | 02 00 00 00
| 2
| 2
| ALIGN=LEFT | unknown; maybe the amount of blocks of the third part, which belongs to this block
| ALIGN=LEFT | number of moves used by this technique
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#FFEEDD"
|-
|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 VALIGN=TOP BGCOLOR="#808080"
|}
| COLSPAN=3 | <FONT SIZE=2 COLOR="#FFFFFF">Below follows the last block of the third part.</FONT>
|}
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#FFEEDD"
;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 | unknown
| ALIGN=LEFT | Move ID (looked up in the table of moves of type specified at 0x03 : in this case, "Pause")
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#FFEEDD"
|-
|0x02
| BGCOLOR="#C8C864" | 00
| BGCOLOR="#C8C864" | 00
| 0
| 0
| ALIGN=LEFT | unknown; always zero
| ALIGN=LEFT | unknown; always zero
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#FFEEDD"
|-
|0x03
| BGCOLOR="#0096C8" | 20
| BGCOLOR="#0096C8" | 20
| 32
| 32
| ALIGN=LEFT | unknown
| ALIGN=LEFT | 0 : Attack; 16 : Position; 32 : Maneuver; 48 : Evade; 64 : Throw (see below)
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#FFEEDD"
|-
|0x04
| BGCOLOR="#FF80C0" | CD CC 4C 3F
| BGCOLOR="#FF80C0" | CD CC 4C 3F
| 0.800000
| 0.800000
| ALIGN=LEFT | unknown
| ALIGN=LEFT |move parameter 1 (in this case, "min" : something like the minimum duration of the "Pause")
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#FFEEDD"
|-
|0x08
| BGCOLOR="#D0C0AF" | 00 00 00 00
| BGCOLOR="#D0C0AF" | 00 00 00 00
| 0
| 0
| ALIGN=LEFT | unknown
| ALIGN=LEFT |move parameter 3 (in this case, none : "Pause" only takes one parameter)
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#FFEEDD"
|-
|0x0C
| BGCOLOR="#EEDDFF" | 00 00 00 00
| BGCOLOR="#EEDDFF" | 00 00 00 00
| 0
| 0
| ALIGN=LEFT | unknown
| ALIGN=LEFT |move parameter 3 (in this case, none : "Pause" only takes one parameter)
|}
|}
<HR>
<CENTER>Here you can download the complete overview of all melee profiles as a text file.<BR>Copy it to a spreadsheet calculation program like Excel.<BR>
{| BORDER=0
| <UL><LI>[http://www6.fh-eberswalde.de/user/dkriesch/onistuff/subfold/text/oni_bina_melee_part_1_dc.txt part 1] with commas as decimal hyphens (9 kb)</LI><LI>[http://www6.fh-eberswalde.de/user/dkriesch/onistuff/subfold/text/oni_bina_melee_part_1_dp.txt part 1] with points as decimal hyphens (9 kb)</LI><LI>[http://www6.fh-eberswalde.de/user/dkriesch/onistuff/subfold/text/oni_bina_melee_part_2.txt part 2] (56 kb)</LI><LI>[http://www6.fh-eberswalde.de/user/dkriesch/onistuff/subfold/text/oni_bina_melee_part_3_dc.txt part 3] with commas as decimal hyphens (93 kb)</LI><LI>[http://www6.fh-eberswalde.de/user/dkriesch/onistuff/subfold/text/oni_bina_melee_part_3_dp.txt part 3] with points as decimal hyphens (93 kb)</LI></UL>
|}
|}
</CENTER>
;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




<HR>
----
<CENTER>[[OBD:BINA/Combat|<==]] <B>Melee_Profile.BINA</B> [[OBD:BINA/Texture_Materials|==>]]</CENTER>
----
<HR>
==Blue Box Beta WMDD==
http://www6.fh-eberswalde.de/user/dkriesch/oni/bina_melee.gif




[[Main Page]] >> [[OBD:Oni Binary Data|Oni Binary Data]] >> [[OBD:File types|File types]] >> [[OBD:BINA|BINA]] >> Melee_Profile.BINA
----
----
;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

ONI BINARY DATA
AKVA << Other file types >> CBPI
BINA : Binary data
TMBD << Other BINA >> ONIE
OBJC : Objects
FURN << Other OBJC >> NEUT
MELE : Melee profile
XML tutorial
Overview @ Oni Stuff
OBD.png
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

Template:OBD TXT dec

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.

bin_r_m1.gif

Raw hex Value Meaning
45 4C 45 4D MELE melee
76 02 00 00 630 unknown
00 00 00 00 0 unknown
B3 F3 2A 43 170.951950 x-position of ???
C7 0D 71 C1 -15.065864 y-position (height) of ???
CF 29 38 42 46.040829 z-position of ???
00 00 00 00 0.000000 rotation on the x-axis in degrees
00 00 00 00 0.000000 rotation on the y-axis in degrees
00 00 00 00 0.000000 rotation on the z-axis in degrees
09 00 00 00 9 melee ID
NINJA_Easy space for notes
ninja_easy_1 link by name to an ONCC model (actually looked up by the melee profile)
64 00 00 00 100 unknown ("notice %"?)
64 00 00 00 100 unknown ("dodge base %"?)
1E 00 00 00 30 unknown ("dodge damage amount"?)
05 00 00 00 5 unknown ("dodge extra %"?)
0F 00 00 00 15 unknown ("one-on-one blocking skill %"?)
14 00 00 00 20 unknown ("group blocking skill %"?)
00 00 00 40 2.000000 unknown; always the same ("not blocked"?)
33 33 33 3F 0.700000 unknown ("must change stance"?)
00 00 C0 3F 1.500000 unknown ("blocked but unblockable"?)
9A 99 99 3F 1.200000 unknown; always the same ("blocked but has stagger"?)
33 33 33 3F 0.700000 unknown; always the same ("blocked but has blockstun"?)
00 00 00 3F 0.500000 unknown; always the same ("blocked"?)
00 00 00 40 2.000000 unknown; always the same ("throw danger"?)
3C 00 60 unknown
5A 00 90 unknown
1A 00 00 00 26 number of attack techniques
06 00 00 00 6 number of evade/dodge techniques
07 00 00 00 7 number of maneuver/position techniques
6D 00 00 00 109 number of moves
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

Template:OBD TXT

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

bin_r_m2.gif

Offset Raw hex Value Meaning
0x00 Spinning Suplex technique's name
0x40 00 00 00 00 0 unknown
0x44 50 00 00 00 80 unknown
0x48 0A 00 00 00 10 unknown
0x4C 58 02 00 00 600 unknown (technique repeat delay?)
0x50 02 00 00 00 2 number of moves used by this technique
0x54 57 00 00 00 87 position of the first move for this technique in the profile's list of moves
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

Template:OBD TXT dec

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)

bin_r_m3.gif

Offset Raw hex Value Meaning
0x00 04 00 00 00 4 Move ID (looked up in the table of moves of type specified at 0x03 : in this case, "Pause")
0x02 00 0 unknown; always zero
0x03 20 32 0 : Attack; 16 : Position; 32 : Maneuver; 48 : Evade; 64 : Throw (see below)
0x04 CD CC 4C 3F 0.800000 move parameter 1 (in this case, "min" : something like the minimum duration of the "Pause")
0x08 00 00 00 00 0 move parameter 3 (in this case, none : "Pause" only takes one parameter)
0x0C 00 00 00 00 0 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

bina_melee.gif




PART 1 - PROFILE

Template:OBD TXT dec

PART 2 - TECHNIQUE

Template:OBD TXT

PART 3 - MOVE

Template:OBD TXT dec



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]]