OBD talk:BINA/OBJC/MELE: Difference between revisions

From OniGalore
Jump to navigation Jump to search
m (+cat)
 
(4 intermediate revisions by 2 users not shown)
Line 1: Line 1:
In construction, sorry...
==Mini-tutorial==
:We are about to replace the "Running Knee" technique of BLACKOPS_Swat with the "Super Kick" technique of TCTF_Swat.
:Open "BINACJBOMelee Profile" in the ".raw-Editor" of OUP, go to offset 0x00A444 and highlight 88=0x58 bytes from there on:
  Offset    0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F
0000A440  21 00 00 00 '''53 75 70 65 72 20 4B 69 63 6B 00 00'''  !...'''Super Kick..'''
0000A450  '''00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................'''
0000A460  '''00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................'''
0000A470  '''00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................'''
0000A480  '''00 00 00 00 00 00 00 00 01 00 00 00 0A 00 00 00  ................'''
0000A490  '''F0 00 00 00 03 00 00 00 ''24 00 00 00''''' 4A 75 6D 70  '''ð.......''$...'''''Jump
:This (the 88 bytes in bold) is the "Super Kick" technique of the TCTF_Swat melee profile.
:The 4 bytes in italics are an offset into TCTF_Swat's list of moves (after the techniques).
:As it happens, "Super Kick" uses 3 consecutive moves: moves 36=0x24, 37 and 38 in that list.


[[Main Page]] >> [[OBD:Oni Binary Data|Oni Binary Data]] >> [[OBD:File types|File types]] >> [[OBD:BINA|BINA]] >> Melee_Profile.BINA
:Now let's go to offset 0x008DD0 and highlight 88=0x58 bytes from ''there'' on:
  Offset    0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F
00008DD0  '''52 75 6E 6E 69 6E 67 20 4B 6E 65 65 00 00 00 00  Running Knee....'''
00008DE0  '''00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................'''
00008DF0  '''00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................'''
00008E00  '''00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................'''
00008E10  '''00 00 00 00 32 00 00 00 0A 00 00 00 78 00 00 00  ....2.......x...'''
00008E20  '''03 00 00 00 ''0C 00 00 00''''' 44 69 73 61 72 6D 20 46  '''....''....'''''Disarm F
:This (the 88 bytes in bold) is the "Running Knee" technique of the BLACKOPS_Swat melee profile.
:The 4 bytes in italics are an offset into BLACKOPS_Swat's list of moves (after the techniques).
:As it happens, "Running Knee" uses 3 consecutive moves: moves 12=0xC, 13 and 14 in that list.


;Main structure
:If we want to really replace the second technique with the first one, we'll have to take care of the move list.
:Profile header
:Since both techniques use 3 consecutive moves, we'll paste the "Super Kick" moves over the "Running Knee" moves.
:List of techniques
:That means that the field in italics in the target technique will stay the same, pointing to the same 3 moves.
:Lists of moves for each techniques
:So we can paste the 84 first bytes of the "Super Kick" technique over those of the "Running Knee" technique.
:If we stop now, BLACKOPS_Swat will have a technique "Super Kick" that will effectively be a "running knee".
::(since we didn't alter the moves or the pointer to them, the technique triggers the same 3 moves as before)


The profile header defines global constants, and specifies a list of techniques.
:Let's actually replace the "Running Knee" moves with the "Super Kick" moves from TCTF_Swat.
There are 3 kinds of techniques : attack, dodge, and relocate.
:First, let's find the moves of the target: the 3 moves of "Running Knee" in BLACKOPS_Swat.
 
:We need to go past the last technique, and pick moves 12, 13 and 14 (count starts at 0).
A technique defines technique-specific constants, and specifies a list of moves.
  Offset    0  1 2 3  4  5  6  7  8  9  A  B  C  D  E  F
 
==Technique==
00009920  01 00 00 00 43 00 00 00 52 65 74 72 65 61 74 00  ....C...Retreat.
A few more examples, later (still investigating)
00009930  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
{|border=1 cellspacing=0
00009940  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
!Offset
00009950  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
!Raw hex
00009960  00 00 00 00 00 00 00 00 00 00 00 00 05 00 00 00 ................
!Value
00009970  0A 00 00 00 00 00 00 00 01 00 00 00 44 00 00 00 ............D...
!Meaning
00009980  '''0C 00 00 10 00 00 00 00 00 00 20 41 00 00 A0 40  .......... A.. @'''
|-
00009990  '''00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................'''
|0x00
000099A0  '''01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................'''
|colspan=2|Spinning Suplex
000099B0  '''02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................'''
|Technique name
000099C0  '''04 00 00 20 00 00 80 3E 00 00 00 00 00 00 00 00 ... ..€>........'''
|-
000099D0  '''0C 00 00 10 00 00 00 00 00 00 20 41 00 00 A0 40  .......... A.. @'''
|0x40
000099E0  '''13 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................'''
|00 00 00 00
000099F0  '''14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................'''
|0
00009A00  '''15 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................'''
|unknown
00009A10  '''13 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00 ...0............'''
|-
00009A20  '''12 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00 ...0............'''
|0x44
00009A30  '''11 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00 ...0............'''
|50 00 00 00
00009A40  '''''00 00 00 10 00 00 20 41 00 00 A0 41 00 00 A0 40  ...... A.. A.. @'''''
|80
00009A50  '''''40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 @...............'''''
|unknown
00009A60  '''''04 00 00 20 CD CC 4C 3D 00 00 00 00 00 00 00 00 ... ÍÌL=........'''''
|-
:(the first 15 moves are in bold, and moves 12, 13 and 14 are in italics)
|0x48
|0A 00 00 00
|10
|unknown
|-
|0x4C
|58 02 00 00
|600
|unknown
|-
|0x50
|02 00 00 00
|2
|Size of move list (1 move = 16 bytes)
|-
|0x54
|57 00 00 00
|87
|Offset of move list (1 move = 16 bytes)
|}
3 of the 4 unknown fields "have to be" :
*Technique delay, in frames
*Technique weight
*Interruptible/GenerousDir/Fearless (flags?)
==Move==
Updating this one with something more relevant, later...
{|border=1 cellspacing=0
!Offset
!Raw hex
!Value
!Meaning
|-
|0x00
|04 00  
|...
|Move type (adding a list later)
|-
|0x02
|00 20
|...
|(probably a bunch of flags à la variant)
|-
|0x00
|04 00 00 20
|...
|Move type (probably a big bunch of flags ^^)
|-
|0x04
|CD CC 4C 3F
|0.8
|Mystery float 1
|-
|0x08
|00 00 00 00
|0
|Mystery float 2
|-
|0x0C
|00 00 00 00
|0
|Mystery float 3
|}
 
<CENTER>[[OBD:BINA/Combat|<==]] <FONT SIZE=5>Melee_Profile.BINA</FONT> [[OBD:BINA/Texture_Materials|==>]]</CENTER>
 
 
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.
 
 
http://www6.fh-eberswalde.de/user/dkriesch/onistuff/images/bin_r_m1.gif
 
http://www6.fh-eberswalde.de/user/dkriesch/onistuff/images/bin_r_m2.gif
 
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"
| WIDTH=15% | <B>Hex</B>
| WIDTH=15% | <B>Translation</B>
| WIDTH=70% | <B>Meaning</B>
|- 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
| MELE
| ALIGN=LEFT | melee
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#FFEEDD"
| BGCOLOR="#FFFFC8" | 76 02 00 00
| 630
| ALIGN=LEFT | unknown
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#FFEEDD"
| BGCOLOR="#C8FFC8" | 00 00 00 00
| 0
| ALIGN=LEFT | unknown
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#FFEEDD"
| BGCOLOR="#C8FFFF" | B3 F3 2A 43
| 170.951950
| ALIGN=LEFT | x-position of ???
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#FFEEDD"
| BGCOLOR="#C8FFFF" | C7 0D 71 C1
| -15.065864
| ALIGN=LEFT | y-position (height) of ???
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#FFEEDD"
| BGCOLOR="#C8FFFF" | CF 29 38 42
| 46.040829
| ALIGN=LEFT | z-position of ???
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#FFEEDD"
| BGCOLOR="#FFC8FF" | 00 00 00 00
| 0.000000
| ALIGN=LEFT | rotation on the x-axis in degrees
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#FFEEDD"
| BGCOLOR="#FFC8FF" | 00 00 00 00
| 0.000000
| ALIGN=LEFT | rotation on the y-axis in degrees
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#FFEEDD"
| BGCOLOR="#FFC8FF" | 00 00 00 00
| 0.000000
| ALIGN=LEFT | rotation on the z-axis in degrees
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#FFEEDD"
| BGCOLOR="#FFC800" | 09 00 00 00
| 9
| ALIGN=LEFT | melee ID
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#FFEEDD"
| BGCOLOR="#C800C8" COLSPAN=2 | <TT>NINJA_Easy</TT>
| ALIGN=LEFT | space for notes
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#FFEEDD"
| BGCOLOR="#C87C64" COLSPAN=2 | <TT>ninja_easy_1</TT>
| ALIGN=LEFT | [[OBD:ONCC|ONCC]] model
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#FFEEDD"
| BGCOLOR="#B0C3D4" | 64 00 00 00
| 100
| ALIGN=LEFT | unknown
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#FFEEDD"
| BGCOLOR="#B0C3D4" | 64 00 00 00
| 100
| ALIGN=LEFT | unknown
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#FFEEDD"
| BGCOLOR="#B0C3D4" | 1E 00 00 00
| 30
| ALIGN=LEFT | unknown
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#FFEEDD"
| BGCOLOR="#B0C3D4" | 05 00 00 00
| 5
| ALIGN=LEFT | unknown
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#FFEEDD"
| BGCOLOR="#B0C3D4" | 0F 00 00 00
| 15
| ALIGN=LEFT | unknown
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#FFEEDD"
| BGCOLOR="#B0C3D4" | 14 00 00 00
| 20
| ALIGN=LEFT | unknown
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#FFEEDD"
| BGCOLOR="#E7CEA5" | 00 00 00 40
| 2.000000
| ALIGN=LEFT | unknown; always the same
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#FFEEDD"
| BGCOLOR="#E7CEA5" | 33 33 33 3F
| 0.700000
| ALIGN=LEFT | unknown
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#FFEEDD"
| BGCOLOR="#E7CEA5" | 00 00 C0 3F
| 1.500000
| ALIGN=LEFT | unknown
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#FFEEDD"
| BGCOLOR="#E7CEA5" | 9A 99 99 3F
| 1.200000
| ALIGN=LEFT | unknown; always the same
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#FFEEDD"
| BGCOLOR="#E7CEA5" | 33 33 33 3F
| 0.700000
| ALIGN=LEFT | unknown; always the same
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#FFEEDD"
| BGCOLOR="#E7CEA5" | 00 00 00 3F
| 0.500000
| ALIGN=LEFT | unknown; always the same
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#FFEEDD"
| BGCOLOR="#E7CEA5" | 00 00 00 40
| 2.000000
| ALIGN=LEFT | unknown; always the same
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#FFEEDD"
| BGCOLOR="#FFDDDD" | 3C 00
| 60
| ALIGN=LEFT | unknown
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#FFEEDD"
| BGCOLOR="#FFDDDD" | 5A 00
| 90
| ALIGN=LEFT | unknown
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#FFEEDD"
| BGCOLOR="#64AAAA" | 1A 00 00 00
| 26
| ALIGN=LEFT | unknown1
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#FFEEDD"
| BGCOLOR="#64AAAA" | 06 00 00 00
| 6
| ALIGN=LEFT | unknown2
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#FFEEDD"
| BGCOLOR="#64AAAA" | 07 00 00 00
| 7
| ALIGN=LEFT | unknown3; unknown1 + unknown2 + unknown3 = amount of blocks of part 2
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#FFEEDD"
| BGCOLOR="#64AAAA" | 6D 00 00 00
| 109
| ALIGN=LEFT | amount of blocks of part 3
|- 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"
| BGCOLOR="#EBEBEB" COLSPAN=2 | <TT>Spinning Suplex</TT>
| ALIGN=LEFT | space for notes
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#FFEEDD"
| BGCOLOR="#8C8CCC" | 00 00 00 00
| 0
| ALIGN=LEFT | unknown
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#FFEEDD"
| BGCOLOR="#FF00C8" | 50 00 00 00
| 80
| ALIGN=LEFT | unknown
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#FFEEDD"
| BGCOLOR="#F0F096" | 0A 00 00 00
| 10
| ALIGN=LEFT | unknown
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#FFEEDD"
| BGCOLOR="#00C864" | 58 02 00 00
| 600
| ALIGN=LEFT | unknown
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#FFEEDD"
| BGCOLOR="#00C8FF" | 02 00 00 00
| 2
| ALIGN=LEFT | unknown; maybe the amount of blocks of the third part, which belongs to this block
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#FFEEDD"
| BGCOLOR="#C80040" | 57 00 00 00
| 87
| ALIGN=LEFT | unknown
|- 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"
| BGCOLOR="#FFCD96" | 04 00 00 00
| 4
| ALIGN=LEFT | unknown
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#FFEEDD"
| BGCOLOR="#C8C864" | 00
| 0
| ALIGN=LEFT | unknown; always zero
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#FFEEDD"
| BGCOLOR="#0096C8" | 20
| 32
| ALIGN=LEFT | unknown
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#FFEEDD"
| BGCOLOR="#FF80C0" | CD CC 4C 3F
| 0.800000
| ALIGN=LEFT | unknown
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#FFEEDD"
| BGCOLOR="#D0C0AF" | 00 00 00 00
| 0
| ALIGN=LEFT | unknown
|- ALIGN=CENTER VALIGN=TOP BGCOLOR="#FFEEDD"
| BGCOLOR="#EEDDFF" | 00 00 00 00
| 0
| ALIGN=LEFT | unknown
|}


:Now, let's find the moves of the source: the 3 moves of "Super Kick" in TCTF_Swat.
:We need to go past the last technique, and pick moves 36, 37 and 38 (count starts at 0).
:Here they are (here I will not be listing the last technique and the first 36 moves):
  Offset    0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F
0000A9F0  00 00 00 00 '''0C 00 00 10 00 00 80 40 00 00 40 41'''  ....'''......€@..@A'''
0000AA00  '''00 00 80 40 17 00 00 00 00 00 00 00 00 00 00 00  ..€@............'''
0000AA10  '''00 00 00 00 04 00 00 20 00 00 80 3E 00 00 00 00  ....... ..€>....'''
0000AA20  '''00 00 00 00''' 05 00 00 10 00 00 00 00 00 00 00 00  '''....'''............
:Now all you have to do is to take these 48 bytes and paste them over the other 48.
:Now the technique that used to be "Running Knee" will truly use "Super Kick" moves.


<HR>
<HR>
Line 321: Line 79:
<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>
<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
{| 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>
| <UL><LI>[http://ssg.oni2.net/subfold/text/oni_bina_melee_part_1_dc.txt part 1] with commas as decimal hyphens (9 kb)</LI><LI>[http://ssg.oni2.net/subfold/text/oni_bina_melee_part_1_dp.txt part 1] with points as decimal hyphens (9 kb)</LI><LI>[http://ssg.oni2.net/subfold/text/oni_bina_melee_part_2.txt part 2] (56 kb)</LI><LI>[http://ssg.oni2.net/subfold/text/oni_bina_melee_part_3_dc.txt part 3] with commas as decimal hyphens (93 kb)</LI><LI>[http://ssg.oni2.net/subfold/text/oni_bina_melee_part_3_dp.txt part 3] with points as decimal hyphens (93 kb)</LI></UL>
|}
|}
</CENTER>
</CENTER>


 
{{OBD}}
<HR>
<CENTER>[[OBD:BINA/Combat|<==]] <B>Melee_Profile.BINA</B> [[OBD:BINA/Texture_Materials|==>]]</CENTER>
<HR>
 
 
[[Main Page]] >> [[OBD:Oni Binary Data|Oni Binary Data]] >> [[OBD:File types|File types]] >> [[OBD:BINA|BINA]] >> Melee_Profile.BINA

Latest revision as of 16:07, 4 May 2022

Mini-tutorial

We are about to replace the "Running Knee" technique of BLACKOPS_Swat with the "Super Kick" technique of TCTF_Swat.
Open "BINACJBOMelee Profile" in the ".raw-Editor" of OUP, go to offset 0x00A444 and highlight 88=0x58 bytes from there on:
 Offset    0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F

0000A440  21 00 00 00 53 75 70 65 72 20 4B 69 63 6B 00 00  !...Super Kick..
0000A450  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
0000A460  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
0000A470  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
0000A480  00 00 00 00 00 00 00 00 01 00 00 00 0A 00 00 00  ................
0000A490  F0 00 00 00 03 00 00 00 24 00 00 00 4A 75 6D 70  ð.......$...Jump
This (the 88 bytes in bold) is the "Super Kick" technique of the TCTF_Swat melee profile.
The 4 bytes in italics are an offset into TCTF_Swat's list of moves (after the techniques).
As it happens, "Super Kick" uses 3 consecutive moves: moves 36=0x24, 37 and 38 in that list.
Now let's go to offset 0x008DD0 and highlight 88=0x58 bytes from there on:
 Offset    0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F

00008DD0  52 75 6E 6E 69 6E 67 20 4B 6E 65 65 00 00 00 00  Running Knee....
00008DE0  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
00008DF0  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
00008E00  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
00008E10  00 00 00 00 32 00 00 00 0A 00 00 00 78 00 00 00  ....2.......x...
00008E20  03 00 00 00 0C 00 00 00 44 69 73 61 72 6D 20 46  ........Disarm F
This (the 88 bytes in bold) is the "Running Knee" technique of the BLACKOPS_Swat melee profile.
The 4 bytes in italics are an offset into BLACKOPS_Swat's list of moves (after the techniques).
As it happens, "Running Knee" uses 3 consecutive moves: moves 12=0xC, 13 and 14 in that list.
If we want to really replace the second technique with the first one, we'll have to take care of the move list.
Since both techniques use 3 consecutive moves, we'll paste the "Super Kick" moves over the "Running Knee" moves.
That means that the field in italics in the target technique will stay the same, pointing to the same 3 moves.
So we can paste the 84 first bytes of the "Super Kick" technique over those of the "Running Knee" technique.
If we stop now, BLACKOPS_Swat will have a technique "Super Kick" that will effectively be a "running knee".
(since we didn't alter the moves or the pointer to them, the technique triggers the same 3 moves as before)
Let's actually replace the "Running Knee" moves with the "Super Kick" moves from TCTF_Swat.
First, let's find the moves of the target: the 3 moves of "Running Knee" in BLACKOPS_Swat.
We need to go past the last technique, and pick moves 12, 13 and 14 (count starts at 0).
 Offset    0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F

00009920  01 00 00 00 43 00 00 00 52 65 74 72 65 61 74 00  ....C...Retreat.
00009930  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
00009940  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
00009950  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
00009960  00 00 00 00 00 00 00 00 00 00 00 00 05 00 00 00  ................
00009970  0A 00 00 00 00 00 00 00 01 00 00 00 44 00 00 00  ............D...
00009980  0C 00 00 10 00 00 00 00 00 00 20 41 00 00 A0 40  .......... A.. @
00009990  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
000099A0  01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
000099B0  02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
000099C0  04 00 00 20 00 00 80 3E 00 00 00 00 00 00 00 00  ... ..€>........
000099D0  0C 00 00 10 00 00 00 00 00 00 20 41 00 00 A0 40  .......... A.. @
000099E0  13 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
000099F0  14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
00009A00  15 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
00009A10  13 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00  ...0............
00009A20  12 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00  ...0............
00009A30  11 00 00 30 00 00 00 00 00 00 00 00 00 00 00 00  ...0............
00009A40  00 00 00 10 00 00 20 41 00 00 A0 41 00 00 A0 40  ...... A.. A.. @
00009A50  40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  @...............
00009A60  04 00 00 20 CD CC 4C 3D 00 00 00 00 00 00 00 00  ... ÍÌL=........
(the first 15 moves are in bold, and moves 12, 13 and 14 are in italics)
Now, let's find the moves of the source: the 3 moves of "Super Kick" in TCTF_Swat.
We need to go past the last technique, and pick moves 36, 37 and 38 (count starts at 0).
Here they are (here I will not be listing the last technique and the first 36 moves):
 Offset    0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F

0000A9F0  00 00 00 00 0C 00 00 10 00 00 80 40 00 00 40 41  ..........€@..@A
0000AA00  00 00 80 40 17 00 00 00 00 00 00 00 00 00 00 00  ..€@............
0000AA10  00 00 00 00 04 00 00 20 00 00 80 3E 00 00 00 00  ....... ..€>....
0000AA20  00 00 00 00 05 00 00 10 00 00 00 00 00 00 00 00  ................
Now all you have to do is to take these 48 bytes and paste them over the other 48.
Now the technique that used to be "Running Knee" will truly use "Super Kick" moves.


Here you can download the complete overview of all melee profiles as a text file.
Copy it to a spreadsheet calculation program like Excel.
  • part 1 with commas as decimal hyphens (9 kb)
  • part 1 with points as decimal hyphens (9 kb)
  • part 2 (56 kb)
  • part 3 with commas as decimal hyphens (93 kb)
  • part 3 with points as decimal hyphens (93 kb)