DEAD OR ALIVE 2 Modding tutorials and discussion

dee4doa

Member
I'm back and I've had a great idea, I've made this thread to condense all my modding finding and tutorials here so that it's easier to have all the guides here instead of scattered around other places.

DEAD OR ALIVE 2 Modding Tutorials: (ver. based on 1999 DOA2)

Compatible Versions:

-SEGA NAOMI
-SEGA Dreamcast
-PlayStation 2*
* Can only use a cheat engine to modify offset values, files can't be altered,swapped or accessed!


With this you can choose your selected or favorite stages/cutscene instead of the boring defult stages that load up.

1st Open up your
1ST_READ.BIN file with a hex editor, then goto the offset 1d062d:
That is where the stage values are kept that load up the stage each value means a different stage.

In this case the number values are:
00 14 15 09 0c 0f 00 05 18 0a 00
As you can see the list below, normally the game loads the following stages - The white storm, The Spiral, The Dragon Hills etc.....
ORANGE = Dreamcast/NAOMI+PS2
BLUE = PS2 ONLY

00 - The White Storm

01 - The Aerial Garden (Night)
02 - The DangerZone 2 (Survival)
03 - The Ice Cavern
04 - Helena's Burning Cutscene
05 - The Death Vally
06 - Test Stage
07 - Test Stage 2
08 - The DangerZone 2 (Sparring+Tag Battle)
09 - The DangerZone
0a - The Great Opera
0b - The Great Opera (Lower Balcony)
0c - The Demon Church
0d - The Demon Church (Lower Level)
0e - Kasumi Cloning Cutscene
0f - The Aerial Garden (Daytime)
10 - The Aerial Garden (Lower - Day)
11 - Elevator Cutscene
12 - The Miyama

13 - The Koku-An (PS2 ONLY)
14 - The Spiral
15 - The Dragon Hills

16 - Kasumi moon water cutscene (PS2 NTSCJ HARD*CORE)
17 - Bass's Ally Stage
18 - The Bio-Lab
19 - Leon's Desert
1a - The Aerial Garden (Lower - Night)
1b - The Miyama (Snowing)
1c - Young Tina Cutscene Stage
1d - Bass's Living room

1e - The Dragon Hills (Lower Level)
1f - The Prairie (PS2 ONLY)

20 - Desert Truck Cutscene (PS2 ONLY)
21 - The Crimson lower (PS2 ONLY)
22 - The Aerial Gardens sunset (PS2 ONLY)
23 - lower garden (PS2 ONLY)
24 - The D Octogon (PS2 Only)
25 - The Pancratium (PS2 ONLY)
26 - The Iron Hell (PS2 ONLY)

27 - The Blanca (PS2 ONLY)
28 - L's Castle

29 - The Buida Zehn
2a - The Buida Zehn (Lower Level)
2b - Bamboo Cutscene

2c - The Iron Hell again? (PS2 ONLY)

2d - Ein Dojo cutscene (PS2 NTSCJ HARD*CORE)
ANYTHING PAST THIS CRASHES!
1st open the 1ST_READ.BIN and go to the offset 174056:
Each value for the stage is seperated by the value '00' there are 12 stages in total.

With the stage list showing me which values I should replace, I decided only to swap "The Dragon Hills" stage which the value for that stage was the 10th value '15' So I changed the value '15' to '1b' (which from the list below, that number means it will load up Zack's ending stage)

The game loaded up Zack's ending stage which replaced "The Dragon Hills" stage.


How to swap stages/cutscene stages in Story Mode (these values change the cutscene stage only!)
170664- Helena's Cutscene 1 stage (Dragon Hills)
1706ad - Ein vs Helena Cutscene stage (Spiral)

Once you have changed the cutscene stage, you need to change the value of the Story Mode stage values that load up playable ingame. The reason for this is that it stores the hex values for the stage of the cutscene in a different part of the 1ST_READ.BIN.
If you just swap either the cutscene stage or just the ingame stage, the game will load up the cutscene in a stage then when the fight begins the game will teleport to the stage you changed.
So make sure you change both values when you want to completly swap a stage in story mode or they will magically get transported to another location!


Character Story Mode Stages (Not Cutscenes) (offsets Still W.I.P, need the rest of the characters)
175244 - Jan-Lee
175249 - Ein
175252 - Hayabusa
175256 - Kasumi
175265 - Helana
17526e - Leon
17527a - Lei-Fang
175282 - Ayane


Once you goto the offset of your desired character's stages, you will see that there are a different amount of stage values for each character (one two valued hex number means one stage). The reason for this is that different characters have more cutscenes than others, but if you are still thinking-

"Why are there only 4 values for *Insert characters name* if in story mode there are 7 stages, shouldn't every character have 7 hex values for the stages that load up in story mode?"

No, this is because if that character only has three hex values then this is because those stage hex values are 'Destined' for that character in that specific stage.

Example
Helena has six stage values:
15 09 14 01 0a 12 -
each value means that the 'destined' stage will load up in that order in story mode. So from these values it should load up: The Dragon Hills, The DangerZone, The Spiral, The Arial Garden (Night) etc. But there is one value missing, this means there is one stage that is selected at random. This applies to all characters, if they only have a certain number then the other stages are selected randomly and cannot be changed.
Yes Iv finally done it! How to swap any costume you want without thinking of the problems with "Compatible costume slots" which now you can learn how to edit the costume slot compatability with this tutorial!

1st open the 1ST_READ.BIN with a hex editor, then search for the numbers "123456789" and it will link you to some hex values which look like these:
Each costume starts at value "fe" and ends with value "ff" here I have made a list of Kasumi's for an example:

Choose the costume slot value you want to swap with another costume (im swapping KAS07 with KAS04 now copy the hex values from one costume slot onto the one you want and then save it!

Also don't forget you need to swap the normal costume files aswell, so I had to replace the KAS07 files with the KAS04 files (APV,BIN,CHR,SUP,ACS) In addition if you are planning to swap a costume slot and you find that the hex values for that slot is shorter than the one you are replacing (e.g KAS04) then you need to replace the values to 00 and then insert the other hex values near the bottom.
Characters select values:
173f48 - Characters

Character values:
05 06 01 00 02 0D 18 04 07 09 08 0C 03

00 Zack
01 Tina
02 Jann Lee
03 Ein
04 Hayabusa
05 Kasumi
06 Gen Fu
07 Helena
08 Leon
09 Bass

0A Helena's mother*
0B (Placeholder)
0C Lei Fang
0D Ayane

0E Young Bass *
10 Roland *

11 Tengu **
12 (Placeholder)
13 (Placeholder)
14 (Placeholder)
15 (Placeholder)
16 Random Select

17 Rabbit*
18 Bayman

* not meant to be playable, will crash if you do anything (move around, attack, etc.)
** invisible models when playing time attack/story mode


DEAD OR ALIVE 2: ULTIMATE Modding Tutorials: (XBOX) (with help from usagiZ, thank you!)

Compatible Versions:
-XBOX
-XBOX 360 (Backwards compatibility)
-CXBX-R (XBOX emulator for PC)
-DEAD OR ALIVE ONLINE PC (All game files are the same, except 3D model files)


The stuff circled in red are the stage values, each are selected at random and then are played in the match. This means that the value '00' is first here, but this doesn't mean that the game loads the Snow Stage first!
tnyNab6.jpg


00 WHITE STORM (GL1)
01 AERIAL GARDEN night(AG1N) +
-02 DANGERZONE survival bonuses(DS2)
03 WHITE STORM cave (GL2)
(04 test? (low))
(05 _WA !!)[shine] --
-06 test level!
(07 _WAL !!) test wals
08 CRIMSON (KL1)
09 DANGERZONE (DS1) +
0A GREAT OPERA cave (OH1)(flickering floor glitch)
0B GREAT OPERA (OH)
0c (42..)DEMON'S CHURCH (SN) +
-0d DEMON'S CHURCH down (SN2) +
(0e _AM !!)[shine] --
0f AERIAL GARDEN +
-10 AERIAL GARDEN down +
(11 _EL !!)city elevator
12 MIYAMA (MI) +
13 KOKU AN [_NK Limit Dojo] +
(14 _MO !!)[shine] --
15 DRAGON HILL
-16 test level bright
(17 _BP !!) bass tina's poster
18 DOATEC Laboratory
(19 _GL1Z !!) leon's desert
-1a AERIAL GARDEN down night +
-1b test hill black(MISP)
(1C _GC !!) young tina stage
(1D _TF !!) tina's home movie
-1e DRAGON HILL down
1f PRAIRIE [_PR Prairie] +
(20 _TR !!) truck
-21 city(down)
-22 blackout(white point)(AG1S+AG2S) --
-23 blackout? (AG2S) --
(24 _AL !!)[shine] --
(25 _COL !!)[shine] --
(26 _OL !!)[shine] --
(27 _SA !!)[shine] --
(28 _KK !!)[dark] --
29 BURAIZENIN +
(2a _TE2 !!) --
(2b _HT !!) bamboo forest
(2c _OL2 !!) --
(2d _TF2 !!) --
(2e _DJ !!) dojo
(2f _KM !!) montane flower
30 YOZAKURA +
31 ISLAND +
32 SHRINE
33 RAY HOUSE (doa2ultimate) +
34 SAFARI (SV) (with uknown error) savana here!!!
35 GREAT WALL (chinese)
36 AQUARIUM
37 DOWNTOWN
38 CYCLOTRON
39 SUSPENSION BRIDGE
(3a _EFC !!)[normal] --
(3b _EF2 !!)[normal] --
(3c _EAR !!)earth
(3d _WL2 !!)test hill
(3e _WL3 !!)test hill
3f MIYAMA SPRING
40 MIYAMA AUTUMN
41 MIYAMA WINTER

The Result: The game loaded the WALL TEST '07' stage.
upload_2018-4-23_17-17-14-png.24893

OFFSET 687648 = 09 37 38 33 36 FF
TAG Battle selecst 5 stages at random, below is a full stage value list: (You can use single stages!)
upload_2018-4-26_16-33-44-png.24902

00 WHITE STORM (GL1)
01 AERIAL GARDEN night(AG1N) +
-02 DANGERZONE survival bonuses(DS2)
03 WHITE STORM cave (GL2)
(04 test? (low))
(05 _WA !!)[shine] --
-06 test level!
(07 _WAL !!) test wals
08 CRIMSON (KL1)
09 DANGERZONE (DS1) +
0A GREAT OPERA cave (OH1)(flickering floor glitch)
0B GREAT OPERA (OH)
0c (42..)DEMON'S CHURCH (SN) +
-0d DEMON'S CHURCH down (SN2) +
(0e _AM !!)[shine] --
0f AERIAL GARDEN +
-10 AERIAL GARDEN down +
(11 _EL !!)city elevator
12 MIYAMA (MI) +
13 KOKU AN [_NK Limit Dojo] +
(14 _MO !!)[shine] --
15 DRAGON HILL
-16 test level bright
(17 _BP !!) bass tina's poster
18 DOATEC Laboratory
(19 _GL1Z !!) leon's desert
-1a AERIAL GARDEN down night +
-1b test hill black(MISP)
(1C _GC !!) young tina stage
(1D _TF !!) tina's home movie
-1e DRAGON HILL down
1f PRAIRIE [_PR Prairie] +
(20 _TR !!) truck
-21 city(down)
-22 blackout(white point)(AG1S+AG2S) --
-23 blackout? (AG2S) --
(24 _AL !!)[shine] --
(25 _COL !!)[shine] --
(26 _OL !!)[shine] --
(27 _SA !!)[shine] --
(28 _KK !!)[dark] --
29 BURAIZENIN +
(2a _TE2 !!) --
(2b _HT !!) bamboo forest
(2c _OL2 !!) --
(2d _TF2 !!) --
(2e _DJ !!) dojo
(2f _KM !!) montane flower
30 YOZAKURA +
31 ISLAND +
32 SHRINE
33 RAY HOUSE (doa2ultimate) +
34 SAFARI (SV) (with uknown error) savana here!!!
35 GREAT WALL (chinese)
36 AQUARIUM
37 DOWNTOWN
38 CYCLOTRON
39 SUSPENSION BRIDGE
(3a _EFC !!)[normal] --
(3b _EF2 !!)[normal] --
(3c _EAR !!)earth
(3d _WL2 !!)test hill
(3e _WL3 !!)test hill
3f MIYAMA SPRING
40 MIYAMA AUTUMN
41 MIYAMA WINTER

7Jaj5vx.jpg

The highlighted section controls the random encounters you get during story mode. I was able to change some values to get cutscene characters to show up.

4 = Zack
8 = Tina
C = Jann Lee
10 = Ein
14 = Hayabusa
18 = Kasumi
1C = Genfu
20 = Helena?
24 = Leon
28 = Bass
2C = Maria - Helena's Mom (can replace files)
--
2E = Leifang
32 = Ayane
36 = Young Bass (can replace files)
--
38 = Loran/Lauren/ (can replace files)
3A = Tengu
3E = Young Tina
--
--
40 = Hitomi
--
44 = Prairie Dog
46 = Bayman
--
--
--

The Result:
uUeHxaM.jpg
Useful/Universal Information:
Information thanks to usagiZ

Universal: (DOA2 Dreamcast, DOA2U and DOA3)
80 = :4:
40 = :6:
10 = :2:
20 = :8:
80 + 10 = 90 = :1:
80 + 20 = A0 = :7:
40 + 10 = 50 = :3:
40 + 20 = 60 = :9:

Button checks: (not inputs!)
01 02 = :F:
02 02 = :P:
04 02 = :K:
03 06 = :F+P:
05 06 = :F+K:
06 06 = :P+K:
07 06 = :F+P+K:


DOA3 inputs:
8A 00 = P
8B 00 = dfP
8C 00 = dP
8D 00 = K
8E 00 = dfK
8F 00 = dK
90 00 = BT P
91 00 = BT dP
92 00 = BT d (HOLD) P
93 00 = BT K
94 00 = BT dK
95 00 = BT d (HOLD) K
96 00 = uf P
97 00 = uf K
98 00 = u P
99 00 = u K
9A 00 = ub P
9B 00 = ub K
9C 00 = uf (AIR) P
9D 00 = uf (AIR) K
9E 00 = u (AIR) P
9F 00 = u (AIR) K
A0 00 = uf (AIR LAND) P
A1 00 = uf (AIR LAND) K
A2 00 = u (AIRLAND) P
A3 00 = u (AIRLAND) K
A4 00 = ub (AIR LAND) P
A5 00 = ub (AIRLAND) K

85 00 =
86 00 =
87 00 =
88 00 =
89 00 =
8A 00 =
8B 00 = BT
8C 00 = BT
8D 00 = BT
8E 00 = BT
8F 00 = BT
90 00 = BT
91 00 =
92 00 =
93 00 =
94 00 =
95 00 =
96 00 =
97 00 =
98 00 =
99 00 =
9A 00 =
9B 00 =
9C 00 =
9D 00 =
9E 00 =
9F 00 =
A0 00 =
[SPOILER ="DOA2 INPUTS"]
DOA2 inputs: (DOA2, DOA2 Millennium, DREAMCAST/NAOMI)
84 00 = :P:
85 00 = :3::P:
86 00 = :2::P:
87 00 = :K:
88 00 = :3::K:
89 00 = :2::K:
8A 00 = BT :P:
8B 00 = BT :2::P:
8C 00 = BT :2_::P:
8D 00 = BT :K:
8E 00 = BT :2::K:
8F 00 = BT :2_::K:
90 00 = :9::P:
91 00 = :9::K:
92 00 = :8::P:
93 00 = :8::K:
94 00 = :7::P:
95 00 = :7::K:
96 00 = :9::5::P:
97 00 = :9::5::K:
98 00 = :8::5::P:
99 00 = :8::5::K:
9A 00 = :9::5::5::P:
9B 00 = :9::5::5::K:
9C 00 = :8::5::5::P:
9D 00 = :8::5::5::K:
9E 00 = :7::5::5::P:
9F 00 = :7::5::5::K:
[/SPOILER]
Conversion: (DOA2U -> DOA3 character.bin)
Directionals = Universal
85 00 -> 8A 00:P:
88 00 -> 8D 00:K:
_ _ 1F -> _ _ 22
_ _ 11 -> _ _ 13


Examples:
DOA3 - Ayane taunt:

F1 00 22 80 03 40 03 80 03 20 00 07 06
DOA2U - Ayane taunt:
F1 00 1F 80 03 40 03 80 03 20 00 07 06
DOA3 - Ayane :P::P::
08 01 22 8A 00 12 64 00 02 02 8A 00 13
DOA2/DOA2U - Ayane :P::P::
08 01 1F 85 00 10 64 00 02 02 85 00 11

RED- indicates which move-def slot this input activates
GREY- constant for all DOA3 inputs. for 2U this value is always 1F.

GREEN- input directions
PINK- frame input window
YELLOW- button inputs
BLUE- indicate which attack this string is connected to, or comes after.
PURPLE - Seems to be 12 in most cases for DOA3, and 10 in most cases for 2U and DOA2
BLACK- Ending string value


Changing the values to the new global input slots should work to fix combo strings, but we also need to rearrange the input tables a bit.

You can get to the input tables by following the second pointer at the start of the character.bin
WjLLriT.jpg

Here's Ayane from 2U
bgmKkap.jpg

And Here's Ayane from 3.1
r4Ag9zR.jpg

The highlighted section has a bunch of pointers
This chunk of data is 0xC0 bytes in 2U and 0xE0 bytes in 3 (-counting up from the first FF FF 00 00 in both images-) and each pointer leads to another table of pointers for a specific input type:

Known Input groupings:
(the way these are ordered doesn't correlate to the offsets in the image)
Non-String :P:
Non-String :K:
Non-String :P+K:
Non-String :F+K:
Non-String :F: (holds, usually)
Non-String :F+P:
Non-String :F+P+K:

String :P:
String :K:
String :P+K:
String :F+K:
String :F: (holds, usually)
String :F+P:
String :F+P+K:
String Directionals (Helena :P::P::4:)
Combo Throws (couldn't get these to work yet)
Combo Holds (these either)
Strings from stances/flips (mostly seen this used for near wall attacks like Hayabusa's 7PP / 7PK)

wE3VLwM.jpg

The blue marking is the start of the move-definitions (first pointer 88 00 00 00 leads here)

BIN HEADER: (all pointers)
OFFSET 1 0x0 = Move-Definitions
OFFSET 2 0x4 = Input-Definitions Offset Table
OFFSET 3 0x8 = Move Properties (normal,counter,guard,crouching,air, damage, frame data,open/closed stance)
OFFSET 4 0xC = Holds Definitions (which move-def slot to use for each hold)
OFFSET 5 0x10 = ?
OFFSET 6 0x14 = Throws?
OFFSET 7 0x18 = Throw Positioning / damage pointers
OFFSET 8 0x1C = Hold positioning / damage pointers
OFFSET 9 0x20 = Character-Specific Property Definitions
OFFSET 10 - 13 (usually all the same) 0x24 - 0x30 Unknown
OFFSET 14 0x34 = Unknown
OFFSET 15 0x38 = Unknown
OFFSET 16 0x3C = Unknown
OFFSET 17 0x40 = Unknown
OFFSET 19 0x44 = Unknown
OFFSET 20 0x48 = Unknown
OFFSET 21 0x4C = Unknown
OFFSET 22 0x50 = Unknown
OFFSET 23 0x54 = Anim-Def Pointer Table
OFFSET 24 0x58 = Blank (Usually)
OFFSET 25 0x5C = Unknown
OFFSET 26 0x60 = Unknown
OFFSET 27 0x64 = Unknown
OFFSET 28 0x68 = Unknown
OFFSET 29 0x6C = Unknown
OFFSET 30 0x70 = Unknown
OFFSET 31 0x74 = Unknown
OFFSET 32 0x78 = Unknown
OFFSET 33 0x7C = Unknown
OFFSET 34 0x80 = Unknown
OFFSET 35 0x84 = Unknown (this one only exists if the file starts with 88 00 00 00)

  • AFS Explorer (Opens up the .AFS files)
  • XPR importer for blender (DOA2U and DOA3 .xpr files)
  • XPR to EMP converter (Converts DOA2U .xpr -> DOAO .emp)
  • MOT blender importer (.MOT animation importer for blender but buggy)
[/spoiler]
 
Last edited:

CoYoTe

Active Member
Good Morning @dee4doa
@WAZAAAAA and mariokart64n found Some Tools for the modding Of DOA2U/DOA Online:

  1. First of all Your music files Must be in ".Ogg" and to do it so export your favourite songs as ogg files With Audacity.
  2. Drag the Ogg file In ogg2bgm.exe to convert it as a bgm file.
  3. Finally rename the bgm file to the name of the bgm file that you want to overwrite Drag it to this path:it to DOA Online/data/ingame/sound.
IMG_20200819_115842.png
You Can see and export The XPRs From DOA2U,DOA3 and DOAX With This Program,this is very useful If you want To See the texture Removed of the MDL thanks To XPR Texturer.
  1. Place The import plugin,the export plugin and the skeletons folder(from the skeletons.zip file) in the addons folder of blender.
  2. Export The Xpr and the cat files using the second doau decode method(under the first one)
    photo_2020-08-26_15-03-05.jpg
  1. Example:I want to remove this part of ein's jacket
    Gx_003d 24_08_2020 14_55_32 (3).png
  2. Open XPR Texturer an open the xpr of that model you want to remove the texture
  3. After you opened it there's this list of OBJs, you can see the 3d model of that OBJ thanks to Greed Xplorer
    XPR Texturer 2.0g 24_08_2020 14_55_52.png
    Gx_003d 24_08_2020 14_55_48 (2).png
  4. Select the "MAT:XX Texture X:XX" section of that texture and then click "Remove material(Lumen)" to remove that texture et Voilà!
    Gx_003d 24_08_2020 14_58_28 (2).png
  5. Back up the original XPR first if the texture removed wasn't the one that you wanted to remove
The rar File also Includes xprexpbuild and catexpbuild.
Screenshot_20200819_121458.jpg

  1. Use Ninja Toolbox
  2. Open datahdd2.afs/loadfile.afs
  3. select "export all" to export the original XPR files of the game and put the XPR files into a folder
  4. Rename The XPR and the CAT file names That you modded with the names of the original Names of the Xpr and the cat file that you want to replace.
  5. select "import"
    Archive Multi Object Import 28_08_2020 23_42_37.png
  6. in the section "Directory to import the files from" select the folder who conatins the original XPR Files that you extracted
  7. in the section "new Archive file" create a new afs file.
Drag your xpr file to xpr2empV2.exe to convert it as an emp file for doa online.

Last but not least here are the original AFS Files Of DOA2U :https://mega.nz/folder/qZ422KyR#qQKYCkveU5VJ5ThN33O4Vw
 

Attachments

  • XPRTexturer.rar
    91.4 KB · Views: 699
  • DOAO_BGM_tool.rar
    381 KB · Views: 406
  • Xpr Emp importer.rar
    11.8 KB · Views: 597
  • Blender_Xpr_Exporter_Plugin.zip
    465.5 KB · Views: 626
  • NinjaToolbox.rar
    73.1 KB · Views: 605
  • xpr2empV2.rar
    256.5 KB · Views: 490
  • GreedXplorer.rar
    710.7 KB · Views: 725
  • skeletons.zip
    13.9 KB · Views: 396
Last edited:

CoYoTe

Active Member
Good Evening Fellow members of FSD!
Here's another tutorial in which i'll show you how to replace the music in Doa2 Ultimate (And DOA3)
  • Download Pes Sound File Converter.rar
  • Extract the contents from it
  • open "PES Sound File Converter"
  • 99.jpg
  • Click to "add" and select the mp3 files that you want to convert then click to "next"
  • PES Sound File Converter 1.8 - Step 2 of 3 02_09_2020 21_25_52.png

  • Tick "Save ADX-File with complete loop from start to end" then you can change the channel and the sample of the adx file at your choice,after doing this click"next".
  • After converting the mp3 file into a adx file open Ninja Toolbox.
  • With Ninja toolbox Open bgm.afs
  • select "export all" to export the original ADX files of the game and put the ADX files into a folder
  • Download VGMGUI to play the adx files:https://github.com/BenNatNB/VGMGUI/releases/tag/1.3.0(Optional)
  • Rename The ADX file name That you Converted before with the name of the original Name of the ADX file that you want to replace.
  • select "import"

    Archive Multi Object Import 28_08_2020 23_42_37.png
  • in the section "Directory to import the files from" select the folder who conatins the original ADX Files that you extracted
  • in the section "new Archive file" create a new afs file.
 

Attachments

  • PES Sound File Converter.rar
    895 KB · Views: 454
Last edited:

ikskoks

New Member
Hello. I'm looking for tool "doa2hardcore_unpacker.zip" for PS2 version of "Dead or Alive 2 Hardcore" game.
Do someone have backup of it and can share with me?
 

CoYoTe

Active Member
Hello. I'm looking for tool "doa2hardcore_unpacker.zip" for PS2 version of "Dead or Alive 2 Hardcore" game.
Do someone have backup of it and can share with me?
Unfortunately i don't have that tool,beacuse b0ny(the guy who made it put in on a site that the file uploaded its deleted after 30 days)
 

ikskoks

New Member
Yeah, I saw that link. Sadly, it is not available anymore.
I think the only chance to get it may be if someone made a backup years ago and is willing to share it after seeing my post.
 

ikskoks

New Member
Ok, no problem. :)
I'm thinking about recreating this tool if needed. I know where are the filenames in game's ELF file,
but I don't know where to find offsets of these files. So meanwhile I may do some more research on this case.
 

CoYoTe

Active Member
Good morning Members of FSD
Today i'll show you b0ny's method to edit the cat files thanks to Bofuo
The text was copied and pasted from the russian forum of Doa
Sorry for being late of posting this.
Have fun!
20210125_134547.jpg

DOA CAT FILE
on the left of the address, the colored middle - data, and on the right - their ASCII representation

"Big endian" (byte order from least significant to high) - bytes in memory are reversed. the first red line in the image ("20 00 00 00") is actually the number 00000020.

So the header "cat" of the file is highlighted in red. it consists of five dword values (four bytes each). the first value is unknown for what, the other four are offsets (start addresses) of four blocks: 1 = first block, 2 = physics block, 3 = morph animation block, 4 = joint block (bending body parts). take for example the third value, which is the offset of the physics block: "90 01 00 00" => 0x190, look for the address 190 on the left (at the very bottom), I painted it orange, this is the beginning of the physics block.

to better understand what each block (except for the first) does, you can write zeros instead of its offset and load the model in the game to look at the consequences. (physics = hair, laces, clothes are motionless; morphing = palms, face, breasts are motionless; joints = joints disappear)

let's analyze the "first block". the heading of the first block is filled with green. it consists of a list of value pairs - value \ type. some types are followed by a simple value, others by a block offset (starting at address 0x14). so let's analyze the pairs in turn (green):

1 - the first pair is: 0x02 \ 0xffffffff (that is, "-1"). look for "-1" in the below description of the "cat" file and see that it describes the model type (1 = doa3 model, 2 = doau model)

2 - the second pair is: 0x148 \ 1. again look in the cheat sheet and find out that at offset 0x148 in the first block there is a description of the high-poly skeleton, namely which objects from the "xpr" \ "emp" file correspond to which body parts. let's find the beginning of this "subblock" to do this, add this offset (0x148) and the offset of the block itself (0x14): 0x148 + 0x14 = 0x15C. go to the address 0x15C and find the data painted in blue. as you can see, the values are filled with three bytes,
* the first byte is inherited from "doax" and indicates the type of the body part, if this byte = 1 means this is a body part, if = 0 means the end of the list.
* the second byte is the body part number. the description of which part of the body which number is found in the cheat sheet under the heading "bones".
* the third byte indicates which object is from "
the first pile colored in blue is "01 00 01". the first byte is a rudiment, we look at the value of the second in the cheat sheet and see that zero is a chest, using the "greed explorer" program we look at the object whose number indicates the third byte and make sure that this is a chest model.
change, for example, in the sequence "01 01 02" the value of the last byte for an object, say legs, then in the game this suit will have a leg instead of a head

3 - the third pair is 0x28 \ 3. 3 are additional colors of materials. not very interested in what it serves. the subblock is yellow.

4 - the fourth pair is 0x118 \ 6. 6 is a description of the sequence of animations in the morph block. shaded in pink.

5 is the fifth pair of zeros. which means the end of this list


below is a cheat sheet explaining the different meanings inside "cat" files

[i0]20(constant)
[i1]14(constant)(offset to i5)
[i2]hair and clothes phisics offset (- pdg012)
[i3]magic "apv". boobs and lips(hands?) morphing offset (- pdg2)
[i4]joints offset (all)
[i5..] array of pairs "offset"-"type"(need to add 0x14 to the "offsets"). types:
-1 = skeleton type. 1-doa3, 2-doau2, 77-hks(she's invisible)
1 = high poly bones[][3] (all) {points after marker}
3 = materialColor[][50] (- pdg, pdg2, hks)
5 = shadow shapes[][1] (- hks, lor, mam, pdg012, yti) {points on marker}
6 = ?? magic"apa" (- pdg2)
9 = low poly bones[][3] (- hks,lor,mam,pdg012,yti,hel09,tin11,wba) {after marker}
4 = animated textures(?near "apa" magic?)(some kind of frame counter and offset to bones frames?) (zac2, zac6)
7 = effects objects[][1] (petals and leaves) (kas, ryu)
8 = build a different skeleton(hks, lor, mam, pdg012)
A = ?(hex)00010100(constant)? (some girls only)
B = ?near "apa" magic? (a few models)
C = ?(int) 1 or 2 (mostly kas and a few others)
D = ?(int)two words? (costume glowing effect) (zac2, zac6, aya18)
10 = effects objects[][1] (huricane?) (tng)
11 = ?(int) some int (hel9,zac3)
12 = offset to bones but i think to a word (mostly kas and a few)
this "array of pairs" ends with 2 null dwords(this array lacks those types: 2,E,F)

bones=============
0 chest
1 head
2 ass*
3 lfoot*
4 lelbow*
5 lpalm*
6 lheap*
7 lknee*
8 lshoulder
9 rfoot*
a relbow*
b rpalm*
c rheap*
d rknee*
e rshoulder

80 lwrist
81 rwrist

11 leyebal
13 doa3lwrist
14 doa3rwrist
15 reyebal
(2)6 lupperleg
(2)7 rupperleg
(2)8 lkneeJoint
(2)9 rkneeJoint


doa3 bones hierarchy:
2-ass
|_6-lheap
| |_7-lknee
| |_3-lfoot
|
|_c-rheap
| |_d-rknee
| |_9-rfoot
|
|_0-chest
|_1-head
| |_11-leyebal
| |_15-reyebal
|
|_8-lshoulder
| |_4-lelbow
| |_5-lpalm
|
|_e-rshoulder
|_a-relbow
|_b-rpalm

joints=============
(int)(jointOffset + 0) = somePattern
(int)(jointOffset + 4) = vertexData
((byte)(jointOffset + 8) = OBJ)
((byte)(jointOffset + 9) and (byte)(jointOffset + a) = bones joining by this joint)
((byte)(jointOffset + b) = ?1?)
calculate the joint type by looking what bones does it join
 
Last edited:

Casual Trap

New Member
Would anyone happen to know how to use XPR Texturer to reassign the texture of a specific material within an object?

For example: Let's say I'm trying to change MAT 02 inside OBJ_06. I could try hitting the "Assign Object" button, but that changes the other ~10 or so materials to use the same texture, which defeats the point.

Is there a way to reassign specific materials that I'm missing?
 

CoYoTe

Active Member
Would anyone happen to know how to use XPR Texturer to reassign the texture of a specific material within an object?

For example: Let's say I'm trying to change MAT 02 inside OBJ_06. I could try hitting the "Assign Object" button, but that changes the other ~10 or so materials to use the same texture, which defeats the point.

Is there a way to reassign specific materials that I'm missing?
To reassign the texture you must:

  1. click xpr expand in xpr texturer
  2. Open object_006.obj with HxD Editor
  3. Convert the number of the texture that you want to reassign in HEX with the calculator(example:if the number is 22 In DEC,in HEX is 16)
  4. In HxD editor With object_006.obj opened search the number of the texture assigned for that obj in HEX And replace With the number that you converted In HEX (example:The number texture assigned for that obj is 40,Converted in hex is 2A So click Search and Type 2A and click Search all,replace Every 2A that you find with 16(the texture number that you want to reassigned converted in hex))then save the obj
  5. Drag Xprexprebuild in the same folder that you extracted the obj files
  6. Open cmd and type this:Xprexprebuild -b -doau "the name of the xpr"
 
Last edited:

shakeen123

New Member
hi guys, thanks for this guide, wanting to make changes to the xpr file is it possible to export in a simple way like when we import it?
sr for the bad english i used google trans :)
 

Outcastkid

New Member
Somehow, I ended up removing the chest piece of Hitomi's chest from the texture removal thing while I was trying to removing the bra or shirt underneath. At first, I was trying to see if I could just take off the preset mod of the blue gi hitomi mod & put it on the game, but I didn't know how to extract it just regularly.
 

CoYoTe

Active Member
Somehow, I ended up removing the chest piece of Hitomi's chest from the texture removal thing while I was trying to removing the bra or shirt underneath. At first, I was trying to see if I could just take off the preset mod of the blue gi hitomi mod & put it on the game, but I didn't know how to extract it just regularly.
If you highlight a MAT:XX TextureX:XX And in the specular Section There's 0,15 in blue and alpha Don't Remove it beacuse it's the part of the body
 
ALL DOA6 DOA5 DOA4 DOA3 DOA2U DOAD
Top