Dead or Alive 3 Custom Skins/Costumes thread

usagiZ

Well-Known Member
Ok so I'm looking right now at porting over usagiZ's converted Phase-4 in DOA2U/DOAO to DOA3 but I'm running into some issues here. I don't know what the button input number/values are in the moveset.bin file to convert the DOA2U input values -> DOA3 input values.

Seems that UsagiZ's work is already done on the moveset, I've just got to change the attack/guard/throw button inputs (possibly other things?) so that you can attack, so far I can import both .bin and .mot and move around (looks like DOA2 and DOA3 share movement values) but the animations are all wrong when I do anything else.

I don't think I've got to change any values in the .mot since I tested using the phase4.mot and kasumi.bin, it was playable! just that I couldn't access any Phase-4 moves.

Things that work:
+Stance (works perfectly!)
+Movements :8::2::4::6:(Works perfectly)
+AI can use the moveset correctly
(but some moves freeze the game)
-DOA2U:P:,:K:,:F: inputs cause wrong animations / crash the game (values need to match DOA3's :P:,:K:,:F: button presses!)

This is v. cool :)
I was thinking of making a DOA3 version of my Kasumi Alpha moveset eventually, but maybe I don't have to now lol
I made a few changes since that build, but I haven't posted it anywhere yet.
(Side note, I tested DOA2U on the emulator and I got it to load into practice without freezing, but only once.)

DOA2U and DOA3 character.bin files aren't actually too different, the part that makes it the most buggy is probably that they have different starting points for certain move sections.

85 00 is :P: in 2U
8A 00 is :P: in DOA3 (I think, it's been a while)

The moveset freezing when the AI uses it is probably bc of one of these reasons:
1- It's trying to load sound effects that aren't there
2- It's trying to use move properties that aren't there
3- The AI section was edited heavily (and haphazardly tbh) and I'm not sure DOA3's AI section works the same way.

-edit-
I'll put some screenshots to explain what I mean about the input sections, as soon as I can
 
Last edited:

dee4doa

Member
This is v. cool :)
I was thinking of making a DOA3 version of my Kasumi Alpha moveset eventually, but maybe I don't have to now lol
(Side note, I tested DOA2U on the emulator and I got it to load into practice without freezing, but only once.)

DOA2U and DOA3 character.bin files aren't actually too different, the part that makes it the most buggy is probably that they have different starting points for certain move sections.

85 00 is :P: in 2U
8A 00 is :P: in DOA3 (I think, it's been a while)

The moveset freezing when the AI uses it is probably bc of one of these reasons:
1- It's trying to load sound effects that aren't there
2- It's trying to use move properties that aren't there
3- The AI section was edited heavily (and haphazardly tbh) and I'm not sure DOA3's AI section works the same way.
Awesome, thanks for that!

I had a guess that 85 00 was :P: in DOA2U, though what about the rest? I'd happily help convert the moveset into DOA3 for you!

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: (All versions)
8A 00 = :P:
8B 00 = :3::P:
8C 00 = :2::P:
8D 00 = :K:
8E 00 = :3::K:
8F 00 = :2::K:
90 00 = BT :P:
91 00 = BT :2::P:
92 00 = BT :2_::P:
93 00 = BT :K:
94 00 = BT:2::K:
95 00 = BT:2_::K:

DOA2U inputs: (All versions)
85 00 = :P:
86 00 = :3::P:
87 00 = :2::P:
88 00 = :K:
89 00 = :3::K:
8A 00 = :2::K:
8B 00 = BT :P:
8C 00 = BT :2::P:
8D 00 = BT :2_::P:
8E 00 = BT :K:
8F 00 = BT:2::K:
90 00 = BT:2_::K:


Conversion: (DOA2U -> DOA3)
Directionals = universal
85 00 -> 8A 00 :P:

88 00 -> 8D 00 :K: (Guessing it's 88 in DOA2U)
What about :F:?


Examples: (Is this right?)
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
DOA2U - Ayane :P::P::
08 01 1F 85 00 12 64 00 02 02 85 00 11


So if I change all these, from DOA2U's values in each move:
1F -> 22
:P:,:K:,:F: -> to DOA3 :P:,:K:,:F: inputs
11 -> 13

Will this work to convert the attacks? I'm guessing you have to convert the move properties too (But I'll do that later)
 
Last edited:

usagiZ

Well-Known Member
Awesome, thanks for that!

I had a guess that 85 00 was :P: in DOA2U, though what about the rest? I'd happily help convert the moveset into DOA3 for you!

-snip-

Examples: (Is this right?)
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
DOA2U - Ayane :P::P::
08 01 1F 85 00 12 64 00 02 02 85 00 11


So if I change all these, from DOA2U's values in each move:
1F -> 22
:P:,:K:,:F: -> to DOA3 :P:,:K:,:F: inputs
11 -> 13

Will this work to convert the attacks? I'm guessing you have to convert the move properties too (But I'll do that later)
Yes, that's right :D
But the one right after :2::K: is Backturned :P:

:P:
:3::P:
:2::P:
:K:
:3::K:
:2::K:
BT :P:
BT :2::P:
BT :2_::P:
BT :K:
BT:2::K:
BT:2_::K:

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:

(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)
You could probably rearrange the file to fit the new size of Input Table pointers, but honestly I recommend doing what I do and just copy-pasting the data to the end of the file and changing the pointer at the start of the file to the new position~
Then you can rearrange things / add things in without having to worry about fixing hundreds of pointers that now point to the wrong thing.

(Also, side note, I think this stuff could even warrant its own thread~)
 

dee4doa

Member
Yes, that's right :D
But the one right after :2::K: is Backturned :P:

:P:
:3::P:
:2::P:
:K:
:3::K:
:2::K:
BT :P:
BT :2::P:
BT :2_::P:
BT :K:
BT:2::K:
BT:2_::K:

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:

(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)
You could probably rearrange the file to fit the new size of Input Table pointers, but honestly I recommend doing what I do and just copy-pasting the data to the end of the file and changing the pointer at the start of the file to the new position~
Then you can rearrange things / add things in without having to worry about fixing hundreds of pointers that now point to the wrong thing.

(Also, side note, I think this stuff could even warrant its own thread~)

So say I want to convert a move in your Phase-4 DOA2U moveset to DOA3, can you list what needs to change so when I press the buttons, it loads correctly? (like can you summerise it for me? I'm a derp heh)

Can I give you an example?

I want to convert Phase-4's cool :P::P::P: :P::+::K: 3 hit punch then teleport stun move to start, what values do I need to change from 2U -> DOA3 values so Kasumi doesn't float off into space? lol (it is rather amusing though)

I tried just editing these for a simple punch:
1F -> 22,
:P:,:K:,:F: -> to DOA3 :P:,:K:,:F: inputs,
11 -> 13

but it didn't work, she still floats off. Is it more than just these?

(Also yes I should make a new thread)
 

usagiZ

Well-Known Member
So say I want to convert a move in your Phase-4 DOA2U moveset to DOA3, can you list what needs to change so when I press the buttons, it loads correctly? (like can you summerise it for me? I'm a derp heh)

Can I give you an example?

I want to convert Phase-4's cool :P::P::P: :P::+::K: 3 hit punch then teleport stun move to start, what values do I need to change from 2U -> DOA3 values so Kasumi doesn't float off into space? lol (it is rather amusing though)

I tried just editing these for a simple punch:
1F -> 22,
:P:,:K:,:F: -> to DOA3 :P:,:K:,:F: inputs,
11 -> 13

but it didn't work, she still floats off. Is it more than just these?

(Also yes I should make a new thread)
Hmm, well I've never really converted movesets between games before so the info I'm sharing is mostly hypothetical based on the things I learned about the moveset files. :/
(The kasumi alpha moveset for 2U and the one I made for doa4 are different and I started from scratch both times using the native game files)

There's so many reasons she could be floating away :/ (the floating away thing happens very often with moveset issues lol)

I'm thinking you'll have to add a few lines of data in to move 2U's 85 00 to DOA3's 8A 00 slot
But that'll move other things out of the way, too.

I'll update with more info when I get the chance. (maybe some screenshots too, if I can find out more with some testing)
 
Last edited:

Matt Ponton

Founder
Staff member
Administrator
Standard Donor
WHAT YOU NEED:
1) The emulator, a simple google search and you'll be able to find it.
2) Create a rip of your legit copy of DOA3 to your XBOX HDD then FTP the files to your PC HDD (Create a folder called 'Dead Or Alive 3' where your emulator is and copy the files to that)

3) Drag and drop your XPR and CAT files into the SAVE DATA folder, located in:
'%AppData%\Cxbx-Reloaded\EmuDisk\Partition1\'
4) In the 'Settings' tab, in the 'Config video' make sure to use Hardware mode (Not Software)
-Enable 'Run Xbox threads on all cores'
-Use XInput (So you can use XBONE or 360 USB controllers)
5) 'Emulation' then 'Start'

6) Enjoy!

I'll have to debug later I guess. After making it past the Opening movie (when the Press Start screen [IIS] is supposed to appear), cxbx crashes. Also don't know how to get it to run within the window instead of at full screen. :(
 

dee4doa

Member
I'll have to debug later I guess. After making it past the Opening movie (when the Press Start screen [IIS] is supposed to appear), cxbx crashes. Also don't know how to get it to run within the window instead of at full screen. :(
Make sure you're running the video setting in 'Hardware Mode' NOT SOFTWARE!

'Settings' -> 'Config Video' -> 'Direct3D Device' set to 'Hardware Accelerated'
Other tick boxes are optional:
'Use Hardware Video Mode' = Fullscreen? Y/N (Optional, I prefer a window)
'Force VSync' = Enable
'Enable Hardware YUV Overlays' = Enable


DOA3 sometimes freezes when bootig up (black or grey screen) just 'Stop' then 'Start' until you get past the into. I wait about 5 seconds after then press start.
When it goes further, It'll load the intro then press start again. Now this part is annoying, there's no UI ingame yet so you can't really tell what mode is what.

What I found:
Story mode (after pressing start on the title, press A)
Sparring mode (Press left 3 times then A, then A again)
Time Attack (Press right 1 time)
Survival (Press right 2 times)

DOA2U is a pain to boot, it'll load when it wants to (worse than DOA3) until you get the big warning text, you've got to wait till the text reaches the last part then mash the start button. Sometimes it loads, most of the time it doesn't want to and you have to reload the emulator, waiting for the big paragraph to load again (soooo annoying!)
Also on DOA2U, some stages crash the emulator (remember CXBX-R is very new so it's only got these games playable!) what's good though about DOA2U compared to DOA3 in CXBX-R is that it actually loads the UI (so you can actually see the modes you're selecting!)
 
Last edited:

usagiZ

Well-Known Member
I'll have to debug later I guess. After making it past the Opening movie (when the Press Start screen [IIS] is supposed to appear), cxbx crashes. Also don't know how to get it to run within the window instead of at full screen. :(
I had issues with hardware mode, switching back to software mode let me run it windowed.
(also I had issues with the newest build of cxbx, so I switched back to the April 20 build (4fcbb494)

DOA2U is a pain to boot, it'll load when it wants to (worse than DOA3) until you get the big warning text, you've got to wait till the text reaches the last part then mash the start button. Sometimes it loads, most of the time it doesn't want to and you have to reload the emulator, waiting for the big paragraph to load again (soooo annoying!)
go to 0x408D30 in the doa2.xbe and zero out the first C4 from the right
JHjBdxw.jpg

That should remove the warning screen~
If it doesn't, you can also try zero-ing out the rest of that line to the left of the C4, I think.
 

dee4doa

Member
I had issues with hardware mode, switching back to software mode let me run it windowed.
(also I had issues with the newest build of cxbx, so I switched back to the April 20 build (4fcbb494)


go to 0x408D30 in the doa2.xbe and zero out the first C4 from the right
JHjBdxw.jpg

That should remove the warning screen~
If it doesn't, you can also try zero-ing out the rest of that line to the left of the C4, I think.
Awesome! thanks, it was really bugging me here. So annoying always waiting for it to slowly move up lol.

Incomplete list of DOA3 stage values, but I 'think' these might be correct. I can't find any offsets in the default.xbe (because I don't know the real stage values) what I did was look into the loadfile.afs and see how the files are structured inside, here's a guess:
00 test stage
01 test stage 2
02 lore lei 9
03 doatec hk 6
04 vally 7
05 cave 1
06 beach (sunset)
07 azuchi hitomi intro
08 woods 2
09 oil tag stage 14
0a doatek hk2
0b dangerzone 10
0c panthenon 12
0d azuchi upper 4
0e vally 2
0f snow 5
10 test stage 3
11 chinese stage 8
12 beach (day) 3
13 aquarium 13
14 genra stage
15 genra cutscene stg 1
16 genra cutscene 2
17 genra cutscene 3
(Still W.I.P)

Back in 2011, a person called 'b0ny' made tools for DOAO/DOA2U and DOA3 to convert DOA3 xpr models to DOA2U/DOAO. I'm tring to find his converter tools so I can reupload them here on this forum (probably my recent tutorial thread)
 

Matt Ponton

Founder
Staff member
Administrator
Standard Donor
'Settings' -> 'Config Video' -> 'Direct3D Device' set to 'Hardware Accelerated'
Other tick boxes are optional:
'Use Hardware Video Mode' = Fullscreen? Y/N (Optional, I prefer a window)
'Force VSync' = Enable
'Enable Hardware YUV Overlays' = Enable

Yeah I didn't know Use Hardware Video Mode was Fullscreen option. Thought it was the 'Hardware Accelerated' option.

Anyways, got it working like your vid. I'm actually considering helping out with the emulator if i get the chance. Also, I'll see if I can make a MS program that would automatically make the hex edits you guys are doing based on selecting from a drop-down what you'd want to do. Basically making it easier to read changes and know what you're doing.
 

usagiZ

Well-Known Member
Also, I'll see if I can make a MS program that would automatically make the hex edits you guys are doing based on selecting from a drop-down what you'd want to do. Basically making it easier to read changes and know what you're doing.
That would be amazing. These edits are pretty inaccessible despite my attempts to explain anything.
2U and 3 being playable on cxbx has opened up tons of possibilities, so I hope to see them near fully playable eventually.

(I spot a pie in the sky, and it's netplaaaaaay)
 

Matt Ponton

Founder
Staff member
Administrator
Standard Donor
Yeah at the very least 2U and 3 being playable in cxbx makes it easier to check hex edits.
 

Matt Ponton

Founder
Staff member
Administrator
Standard Donor
It would be interesting if we can find the key for the character's max costume array. And also be interesting to find where it might be that it recognizes the modded costumes in random character select. That's not an easy task but just something i'd love to have for DOA3.
 

dee4doa

Member
It would be interesting if we can find the key for the character's max costume array. And also be interesting to find where it might be that it recognizes the modded costumes in random character select. That's not an easy task but just something i'd love to have for DOA3.
I tried to insert costume slots in DOA2 on Dreamcast but it ended up crashing the game. Would love to add more slots for costumes.
 

Matt Ponton

Founder
Staff member
Administrator
Standard Donor
in doa3 you can insert more than the limit, it just won't allow you to select them.
 

Matt Ponton

Founder
Staff member
Administrator
Standard Donor
Well It's up to 8 costumes in DOA3. You could have 99 costumes per character on the HDD but it will only allow you to choose from the 8 it decides. I never figured out how it determines which 8, and I've never found or messed with the character select hud to find out if the limit is just because of UI reasons as there is no Cos. 9 image to show in the list.
 

Forlorn Penguin

Well-Known Member
Premium Donor
No, there is a Cos. 9 slot in DOA3. You can have nine total costume slots available at once per character and the way it determines which ones show up is based on the order that you FTP them onto the Xbox. So say you have two Kasumi costume files called kas30.cat/.xpr and kas31.cat/.xpr and you FTP them to the Xbox in that order, they will appear in game in that order.

So using Kasumi as an example, she has five costume slots on-disc in 3.1/3.2, allowing for four more to be added, so the first four that you FTP to the Xbox will appear in game and in the order that you FTP'd them and any more that you add after that will not. If you were then to delete one of the four that do appear, all the ones after that one will move up one slot, so of the ones that didn't show up before, the one that was FTP'd to the Xbox first will now show up in slot nine.

This is how it all appeared to work when I had tested it out.
 

Matt Ponton

Founder
Staff member
Administrator
Standard Donor
It will help me out if you guys might know what the hex at the top of the character's bin file is.

From what I can recall (8ish years ago), the first set of numbers contain the hex location in the file for the range of attack types/move list/commands/frame data. I don't recall the order, but I believe every 8 bits was the beginning and end to each section. I doubt @grap3fruitman remembers either.

I'm referring to the DOA3 bin files here btw.
 

usagiZ

Well-Known Member
It will help me out if you guys might know what the hex at the top of the character's bin file is.

From what I can recall (8ish years ago), the first set of numbers contain the hex location in the file for the range of attack types/move list/commands/frame data. I don't recall the order, but I believe every 8 bits was the beginning and end to each section. I doubt @grap3fruitman remembers either.

I'm referring to the DOA3 bin files here btw.
This is 3.1 Ayane
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
AA AA BB CC DD EE EE FF
AA AA = anim-def to use (animation)
BB = end state (usually 00 or 49 for standing, 03 for crouch, 06 or 07 for downed)
CC = type (02 jumping attack, 03 standing attack, 04 holds follow-through, 05 holds initiate, 06 throws follow-through, 10 throw initiate) (info might need corrections)
DD = property number / property slot
EE EE = unknown
FF = push back on block / (on hit too, I think)
OFFSET 2 0x4 = Input-Definitions Offset Table
OFFSET 3 0x8 = Move Properties (normal,counter,guard,crouching,air, damage, frame data,open/closed stance)
each property slot is 0x24 bytes
[AA AA] [BB BB] [CC CC] [DD DD] [EE EE] [FF FF]
[GG GG] [HH HH] [I I I I] [JJ JJ] [KK KK] [LL LL]
[MM MM] [NN NN] [OO OO] [PP QQ RR] [SS] [TT] [UU]
AAAA BBBB = [normal hit/threshold] , [normal hit back-turned / back-turned threshold]
CCCC = [standing guard]
DDDD EEEE = [counter hit] , [counter hit bt]
FFFF GGGG = [normal hit crouch] , [normal hit crouch bt]
HHHH = [crouch guard]
IIII JJJJ = [counter hit crouch] , [counter hit crouch bt]
KKKK LLLL = [air hit] , [air hit bt]
MMMM = move detection (height + punch or kick) (00 00 high punch, 01 00 high kick, 02 00 mid punch, 03 00 mid kick, 04 00 low punch, 05 00 low kick, EB FF evade (high?), F5 FF evade (mid?) )
NNNN = stance flag (07 00 or 09 00 usually for stance-dependent moves / open vs closed)
OOOO = on hit string (usually for things like ryu's 4K, or jann lee's auto taunts after moves)
PP QQ RR = [unknown] [frame disadvantage on guard] [frame disadvantage on normal hit]
SS = launch height reducer (counter hit only, I think) usually 01 to reduce height
TT = unknown
UU = damage
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 / Hitbox data? (zeroed this and :P: hitbox connects far away)
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)
Some data isn't pointed to directly by the start of the file.
 
Last edited:
ALL DOA6 DOA5 DOA4 DOA3 DOA2U DOAD
Top