DOA6 moveset bin format (partial) + how to mod them

AlexXsWx

Active Member
This is same what I did with DOA5LR but for DOA6; although now includes few examples how to actually mod stuff.

For people who aren't afraid of hex values and, ideally, able to look at some code, as big part of the documentation is actually in the code and its comments.

Together with this mod you can use this to not just parse the data, but also to modify and make the game use the modded movesets, localized strings, combo challenges, main menu, scripts and more.
(Edit 24jul22: as of v2.06a this mod can now also display active move IDs so you don't have to query them with code as the documentation suggests)

Link (2023aug31): https://www.mediafire.com/folder/4dcwpc2c1pf6x/doa6_moveset_2.3.0
(mirror: code_and_documentation + extractedBins)
Changes: https://www.freestepdodge.com/threa...rmat-partial-how-to-mod-them.8918/post-424212

Link (2023jun30): https://www.mediafire.com/folder/g8vmyenvcjdeu/doa6_moveset_2.2.1
2.2.0 -> 2.2.1

# Features
* Moderately improve listing of script files by commenting string values from unknown13 when they are accessed by opcode 2F

# Documentation
* Add a FIXME in rebuilder example for main config, highlighting a potential issue when adding characters

# Extracted bins
* Update listing of the sample script bins

2.1.0 -> 2.2.0

# Features
* Add ability to parse and mod/rebuild main menu config (.rpack)
* Add ability to mod/rebuild localized strings
* Add ability to parse doa6's script files (without full understanding of what which opcodes do), as well as generate slightly readable listing
* Add ability to parse and mod/rebuild combo challenges (.ccs, .ccv and .ccx)
* Add ability to parse files like Dead or Alive 6/36/36.bin (although it's not capable of decrypting)

# Documentation
* Added doa6_file_extensions.md, doa6_main_config.md, doa6_modding_strings.md, doa6_script_bins.md and doa6_combo_challenges.md
* Add rebuilder example for modding a combo challenge
* Add rebuilder example for modding the main menu config (adding stage, hidden chars etc)

# Extracted bins
* Add extracted bins of combo challenges (props to Revan for extracting them), main menu config, full "en.strings", example of first read-and-decrypted file (that hitbox viewer mod's swapper is capable of detecting/swapping), some doa6's script file examples and the bin that contains info per story's episode (parsing not supported but it's not too complicated format for manual edits; meant to be used in conjunction with main menu config)

# Under the hood
* Changed format of the doa6.strings -> en.strings to be a full file so that it can be swapped by the hitbox viewer mod

And some more minor changes

v2.2.0 (2023jun29): https://www.mediafire.com/folder/1hzxp47604nnw/doa6_moveset_2.2.0
Changes: see above

v2.1.0 (04/2023): https://www.mediafire.com/folder/av5etan5j9uqs/doa6_moveset_2.1.0
* Added a "rebuilder", a tool to modify any part of a moveset bin via code with capabilities of deleting data and inserting new data. The API is documented via bunch of examples that together cover it in its entirety. The rebuilder is only available for doa6, via a button in the "parse bins (doa6) mode".
* Added timeline analyzer (genTools.tryAnalyzeTimeline or e.g. ... .analyzeMoveId("12 34").animationInfo.analyzeTimeline)
* Added an automatic moveset analyzer for convenience (e.g. parsedBins["rig"].autoAnalyzed)
* Added basic AI analyzer (genTools.createAiWeightedStuffHelper and genTools.tryAnalyzeAiCombo)
* Named and renamed many things (no complete list)
* Added moveset bin of "clone 4" - very similar to Phase 4, used in story mode IIRC
* Added a very limited way to modify g1a files
* And other changes

This release is probably of the worst quality of anything I ever released, but the choice was between releasing this or releasing nothing at all. I hope you don't encounter too many issues.

v2.0.1: https://www.mediafire.com/folder/lrd7jocv94ory/doa6_moveset_2.0.1

Props to WAZAA and Revan for testing and providing feedback.
Also props to Gultigargar and UsagiZ for awesome documentation of animation events timeline opcodes.

P.S. Here are extracted juggle momentum multipliers and char heights as of v1.22a #8:
Juggle momentum multiplier (higher value = higher juggle)
JavaScript:
[
    {
        "juggleMomentumMultiplier": "0.940000",
        "characters": [
            "bass",
            "bayman",
            "rachel",
            "raidou",
            "raidou_boss",
            "raidou_prototype"
        ]
    },
    {
        "juggleMomentumMultiplier": "1.000000",
        "characters": [
            "brad wong",
            "christie",
            "diego",
            "hayabusa",
            "hayate",
            "helena",
            "jann lee",
            "lisa",
            "nyotengu",
            "rig",
            "tina",
            "zack"
        ]
    },
    {
        "juggleMomentumMultiplier": "1.035000",
        "characters": [
            "ayane",
            "eliot",
            "hitomi",
            "honoka",
            "kasumi",
            "kokoro",
            "kula",
            "leifang",
            "mai",
            "marie rose",
            "mila",
            "momiji",
            "nico",
            "phase 4",
            "tamaki"
        ]
    }
]

Char height: (used as starting height for launchers)
JavaScript:
[
    {
        "charHeight": "0.962000",
        "characters": [
            "leifang"
        ]
    },
    {
        "charHeight": "0.988000",
        "characters": [
            "ayane",
            "helena",
            "honoka",
            "kasumi",
            "mai",
            "marie rose",
            "momiji",
            "phase 4",
            "tamaki"
        ]
    },
    {
        "charHeight": "1.000000",
        "characters": [
            "brad wong",
            "christie",
            "eliot",
            "hitomi",
            "kokoro",
            "lisa",
            "mila",
            "nyotengu"
        ]
    },
    {
        "charHeight": "1.002000",
        "characters": [
            "diego",
            "hayabusa",
            "hayate",
            "jann lee",
            "kula",
            "nico",
            "rig",
            "tina",
            "zack"
        ]
    },
    {
        "charHeight": "1.089000",
        "characters": [
            "bass",
            "bayman",
            "rachel",
            "raidou",
            "raidou_boss",
            "raidou_prototype"
        ]
    }
]

Edit 12aug2022: Video tutorial example (kind of outdated as of 04/2023 because of the new rebuilder that is much more capable than these manual edits, but is probably still helpfull in some ways):

Edit 2023jul15: There's now a patch tool that allows to parse XX/XX.bin files (aka .rpack2) AND decrypt their content
 
Last edited:

Whyte69

New Member
Its really hard for me to find out to do this. All i want is edit damage numbers of a few moves for offline play but i cant figure it out :c
 

AlexXsWx

Active Member
Note: Hitbox viewer mod was just updated to v2.06a featuring display of move IDs, which provides a handy alternative to obtain move IDs, so one doesn't have to dig through command list data or mess with look up by inputs, as the documentation of this project suggests.
 

AlexXsWx

Active Member
Its really hard for me to find out to do this. All i want is edit damage numbers of a few moves for offline play but i cant figure it out :c
You need to be more specific what exactly gives you trouble if you want to get help.
documentation/example_mods.md features step-by-step instructions, including how to mod damage of a strike - were you able to follow it?

For throws you use secondId of move info as index for pThrowDamages, e.g.
JavaScript:
parsedBins.hayabusa.header.v.pPtrs.d.v.pThrowDamages.d.v.pPtrs.d.v[
    genTools.getMoveInfoDoa6(
        parsedBins.hayabusa,
        "29 20" // move id of last part in 426T*268T*6248T
    ).moveInfo.v.secondId.v.dehexUint
].d.v
which would return array of damages (only 1 in this case) with terminator FF, and where they are located in the bin, so you can mod byte at that position in hex workshop.
 

Whyte69

New Member
Can you maybe do a shot video on how you speedrun changing 1 moves damage value and move it into the game ? Would be awesome but you dont have to
 

AlexXsWx

Active Member
Version 2.1.0 is out, featuring a "rebuilder" that allows for much more complicated mods - see the main post for more details. The 6++ was made using a WIP version of the rebuilder, so shout out to Revan for helping with its development! (and don't blame him if there are any issues, it was me who finalized and released it without any final QA)
 

AlexXsWx

Active Member
Version 2.2.0 is out, featuring ability of parsing and modding more types of the files, such as main menu config, localization strings, combo challenges, doa6's script files and more - see the main post for more complete change log. Note that you need hitbox viewer mod v2.07a or newer for it to reliably swap some of these files.
As usual, thanks to Revan for all the help :)
 
Last edited:

AlexXsWx

Active Member
Version 2.3.0:
Mediafire: https://www.mediafire.com/folder/4dcwpc2c1pf6x/doa6_moveset_2.3.0
Mirror: code_and_documentation + extractedBins

Changes 2.2.1 -> 2.3.0:

* Add tutorial.ccv and support analyzing and rebuilding it

* Add support for .devInfo files - drag-n-drop them before parsing/analyzing moveset bins to include their info in the analyzed data
* Add helpers getActionIdFromMoveId and getMoveIdFromActionId (when using .devInfo files)

* Add remaining unpacked localized strings files

* Clean up comments in InputParser, using the names of commands that doa6 devs used
* Add "allInputCommand.txt"
* Add parseDoa6DevInfoInput and createDoa6DevInfoInput
* Add rebuilder support for using input command format that doa6 devs used (see ayane's rebuilder example)

* Add ability to parse .rnk files (aka .name / .ndb)

* Add ability to parse and rebuild camera movement files, including few examples
* Added extracted camera movement files

And more
 
ALL DOA6 DOA5 DOA4 DOA3 DOA2U DOAD
Top