DOA3++ Balance/Gameplay Mod

Gultigargar

Well-Known Member
Update v1.38a

I've been working on adding new stuff like ground-bounces and bounds, but there are some technical/system limitations in place that I don't know how to get around right now, so they'll have to wait.

In this update, Christie's been tweaked a lot. Generally, she was getting too much juggle damage considering she is a 9F jab character that is also mid-weight. Her average juggle damage is now closer to characters like Kasumi and Helena.

-Christie K/PK now pushes back instead of juggling.
-Christie 2F+K/PP2K now causes low side knockdown instead of juggling.
-Christie PPP no longer causes stun on NH.
-Christie 6PPPP changed from -2 to -7 on block.
-Christie 1PK updated animation imported from DOAD. Changed from 14(3)24 to 18(3)24. Launch height lowered.
-Christie 3P+KK launch height lowered.
-Christie BT P+K juggle height lowered.
-Input windows lowered on PPP, PPPP, 6PP and 6PPP, meaning the strings can't be delayed for as long.

-Trip Stun (aka. Low Sweep Stun) unholdable frames changed from 20 to 24.
-Certain downward striking moves have had their active frames increased by 1 frame, to try and avoid scenarios where you are able to duck 'under' them. (Ayane 4K, Kasumi 4F+K, Bayman 4K)
-Fixed a small oversight with Kasumi's new taunt.
-Fixed a mistake I made that had disabled Hayabusa's Wall 4P+K hitbox.
-Hitomi's High Punch Parry now has her and her opponent closer together.
-Leifang's 3K changed from sitdown stun to stomach stun on standing CH. Crouching CH still gives sitdown stun.
-Leifang's BT 2_P juggle height *slightly* increased to make BT 2_PP2K connect more consistently after a 3KP launch.
 

grap3fruitman

Well-Known Member
Standard Donor
Made you a boxart:
WqFbMDP.png
 

Gultigargar

Well-Known Member
Small tweak update now that the DOA6 hitbox viewer has made DOA's hitboxes much easier to visualize.
v1.38b

-Removed the DOAD High Stumble Stun. It just didn't feel right with such a long stun, kinda slowed the pace of the game down.
-Characters who had their knockdowns changed to DOAD High Stumble Stun have been reverted, except for Gen Fu and Brad Wong, who now use the (previously unused) Long High Side Stun from DOA++ for the Arcade.
-Tina's 6PK damage changed from 24 to 22, changed from stomach stun to short mid pushback stun on normal hit.
-Hayate 66KK hitbox tweaked.
-Brad Wong 66P/BT 66P hitbox tweaked.
-Kasumi 6P+K/6PP/Etc. hitbox tweaked.
 
Last edited:

WiseGuy75

New Member
CXBX-Reloaded Sound Corruption Fix Solution (thanks to Matt Ponton for guiding me through this)

With AFS Explorer (version 3.7 is what I used), go into [loadfile.afs] in the DOA3 Folder:

When browsing [loadfile.afs], right-click [env_sea.wva] to export it.
Then browse [loadfile.afs] to find the following stages and import [env_sea.wva] into them:
[env_cav.wva]
[env_bea.wva]
[env_jcs.wva]
[env_oct.wva]
[env_snw.wva]

Finally, go into "/EmuDisk/Partition4" and delete the back up [loadfile.afs] from that folder.
This solution will mute the sounds to these stages , but it is currently the only way to avoid that static sound that plagues them. All common audio will remain except for background audio such as flames, snow storm, and Octagon audience/cage sound.
 
Last edited:
CXBX-Reloaded Sound Corruption Fix Solution (thanks to Matt Ponton for guiding me through this)

With AFS Explorer (version 3.7 is what I used), go into [loadfile.afs] in the DOA3 Folder:

When browsing [loadfile.afs], right-click [env_sea.wva] to export it.
Then browse [loadfile.afs] to find the following stages and import [env_sea.wva] into them:
[env_cav.wva]
[env_bea.wva]
[env_jcs.wva]
[env_oct.wva]
[env_snw.wva]

Finally, go into "/EmuDisk/Partition4" and delete the back up [loadfile.afs] from that folder.
This solution will mute the sounds to these stages , but it is currently the only way to avoid that static sound that plagues them. All common audio will remain except for background audio such as flames, snow storm, and Octagon audience/cage sound.
Really smart.
Here is a bit of trickery I came out with just now:
- in "/EmuDisk/Partition4" deleted the back up [loadfile.afs].
- HxD hex editor is needed cause it can easily work with huge files.
- opened 'env_oct.wva' in HxD, and copied the header(the numbers before a bunch of zeroes)
- opened 'loadfile.afs' in HxD, and searched for the copied header('Hex-values' tab). Found it at address 0x19920000
- launched doa3 in cxbx, and selected the Octagon in Sparring Mode. The sound was corrupt.
- next I used the Divide and Empire logic to find the corrupted block in the wva file
- erased half of the header offsets and saved 'loadfile.afs', got back to character select screen in doa3 and reentered the stage, still corrupt sound
- erased half of the remaining offsets and saved 'loadfile.afs', got back to character select screen in doa3 and reentered the stage, still corrupt sound
- and when did it once again the corrupt sound wasn't there, I restored all the offsets of the 'env_oct.wva' header in 'loadfile.afs', without the last removed offsets that fixed the sound. Checked and the sound still was fine. Then restored a half of the offsets that were missing, and again until I found just the one offset with corrupt sound - it's the offset at 0x19920010, just turn it's 4 bytes to 0 and the terrible farting is gone.

HxD proved to bee a wonderful tool to edit files without unpacking them, and without fully restarting the game to see the changes.

I guess this method should work for other stages, sacrificing only the corrupt sound and leaving all the flames and the cheering sounds intact. Cause instead of finding all the bad offsets I decided to write this post.
 
Last edited:

Gultigargar

Well-Known Member
Good idea. Using your method I've isolated the sounds with issues and 00'd them out. Currently done on Azuchi, Ice Cave, Snow and X Octagon. Don't know if there are more stages with this issue.

So yeah, if you are using CXBX you can download these files and overwrite the ones in loadfile.afs to get rid of the noise without sacrificing the rest of the stage sounds.
 

Attachments

  • StageSoundFix.rar
    421.6 KB · Views: 183

Matt Ponton

Founder
Staff member
Administrator
Standard Donor
the corruption can still be heard on story cutscenes mind you, as I believe they have their own wva audio packs.

Good idea. Using your method I've isolated the sounds with issues and 00'd them out. Currently done on Azuchi, Ice Cave, Snow and X Octagon. Don't know if there are more stages with this issue.

So yeah, if you are using CXBX you can download these files and overwrite the ones in loadfile.afs to get rid of the noise without sacrificing the rest of the stage sounds.

Probably would be a good idea to just host up the compiled loadfile.afs in the OP as a CXBX-R audio fix version, for those who don't have either the application or the skill to modify the AFS?

Also, beach has corruption as well (wind), though faint.
 

WAZAAAAA

Well-Known Member
Really smart.
Here is a bit of trickery I came out with just now:
- in "/EmuDisk/Partition4" deleted the back up [loadfile.afs].
- HxD hex editor is needed cause it can easily work with huge files.
- opened 'env_oct.wva' in HxD, and copied the header(the numbers before a bunch of zeroes)
- opened 'loadfile.afs' in HxD, and searched for the copied header('Hex-values' tab). Found it at address 0x19920000
- launched doa3 in cxbx, and selected the Octagon in Sparring Mode. The sound was corrupt.
- next I used the Divide and Empire logic to find the corrupted block in the wva file
- erased half of the header offsets and saved 'loadfile.afs', got back to character select screen in doa3 and reentered the stage, still corrupt sound
- erased half of the remaining offsets and saved 'loadfile.afs', got back to character select screen in doa3 and reentered the stage, still corrupt sound
- and when did it once again the corrupt sound wasn't there, I restored all the offsets of the 'env_oct.wva' header in 'loadfile.afs', without the last removed offsets that fixed the sound. Checked and the sound still was fine. Then restored a half of the offsets that were missing, and again until I found just the one offset with corrupt sound - it's the offset at 0x19920010, just turn it's 4 bytes to 0 and the terrible farting is gone.

HxD proved to bee a wonderful tool to edit files without unpacking them, and without fully restarting the game to see the changes.

I guess this method should work for other stages, sacrificing only the corrupt sound and leaving all the flames and the cheering sounds intact. Cause instead of finding all the bad offsets I decided to write this post.
hey maybe report this to the CXBX devs, maybe it'll help fixing it in the emu
 
More thoughts on the matter.
First dword in the wva header is a counter of how many audio files are contained in this audio pack, and it's followed by offsets to each audio file. Null offset means no audio file, and it needs to be skipped.

According to Gultigargars findings the positions for the bad offsets are - jcs 2, cav 3, snw 4, oct 4.(it's actually not right, all looped sounds are corrupted)
Python:
#-------------------------------------------------------------------------------
# Name:        doa3 wva parse
#-------------------------------------------------------------------------------
import os, struct
doa3_wva_path=r"E:\doa3\FULL_AFS_FILE_DUMP"

def main():
    for flname in os.listdir(doa3_wva_path):
        if flname[-4:] != '.wva':
            continue
        with open(os.path.join(doa3_wva_path,flname), 'rb') as f:
            offs_cnt = struct.unpack('<L', f.read(4))[0]
            offs_lst = [struct.unpack('<L', f.read(4))[0] for i in range(offs_cnt)]
            print()
            for i in range(len(offs_lst)):
                offs = offs_lst[i]
                if offs == 0:
                    print(flname, i, 0)
                    continue
                f.seek(offs)
                head = struct.unpack('<24L', f.read(0x60))

                print(flname, i, *["%04x"%x for x in head])

if __name__ == '__main__':
    main()

Here are the results for the fixed audio packs. The similarities for the corrupted sounds are colored in yellow, and the supposedly corrupted sounds for two more stages are colored in blue. These numbers mean that the audio effect(fire,wind,murmuring water) is repeated in a loop, causing a constant farting sound.
Rich (BB code):
env_jcs.wva 0 70a4 10069 5622 3073 40024 400002 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 21022777 b373a047 8acc229d 10208982 b018dfa3 2015011e
env_jcs.wva 1 504c 10069 5622 3073 40024 400002 0e00 8e40 0000 0000 1199 9900019 99919011 19110b01 91191190 20901991 1a920a0 fffe 3091099 930c079b 311a131b 1c9503bb 149a0110 30da339
env_jcs.wva 2 0ccc 10069 5622 3073 40024 400002 0000 0000 0000 1089ffff 29dbabe8 71144533 acdbfb14 10225308 3428bca0 accea032 1245309 390ab3 528a9a88 ca802244 9aa9cb 29bbaaa8 dab91234 247309be
env_jcs.wva 3 0c18 10069 5622 3073 40024 400002 0000 0000 0000 8abfffff 12212420 256219c9 cace8157 2235218a 9ba9990 bbde8333 3531acd 390025 9caa9113 81225440 99bbaaa8 eaa8a908 428a89bd 9accca90
env_jcs.wva 4 14d0 10069 5622 3073 40024 400002 0000 0000 0000 817777ff aa244108 9999aefb 43433180 8bb823 aced9352 41222118 f913247 3f0616 24318aac 82530bb9 333189cd 90310012 5409eda8 aaa9812
env_jcs.wva 5 0
env_jcs.wva 6 0e10 10069 5622 3073 40024 400002 0000 0000 0000 7ef77ff7 a049d71c 49f2308 1f22b00a ba4180b3 4898a851 892d83a8 a801a87 49f435 122a9209 5aa71b0 9a169d09 8a98028 4199d149 8a050a81
env_jcs.wva 7 2544 10069 5622 3073 40024 400002 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 67efff77 259f810 89c819aa ab178a43 3bcd8899 89108323
env_jcs.wva 8 36b4 10069 5622 3073 40024 400002 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0002 7777fff0 131aa043 10808428 27890cc8 325111a9 a9845202
env_jcs.wva 9 07e0 10069 5622 3073 40024 400002 0000 0000 0173 32afffff 2418aeb1 80338ac9 135518 813649bc fca029ba 120109b 129ee 2cff3a 8adfb133 99801463 20aaacc9 aa802434 5788220a bbcca902
env_jcs.wva 10 0750 10069 5622 3073 40024 400002 0000 0000 0000 639ad075 bea98025 14389028 519bfd99 d9011323 24099ad 19ccba98 7709133 2200f5 bbcb0218 5489a9ac b9992445 7318abbe cbca1223 9012428c
env_jcs.wva 11 0804 10069 5622 3073 40024 400002 0000 0000 0068 999cf71f 18925332 b370c9bb 2289ed9c 72118813 8aebc925 18be9142 28ac824 27fe63 15508822 471aaa81 9219ba01 3218accc 238cfc01 d0242000

env_cav.wva 0 c378 10069 7d00 4650 40024 400002 0000 0000 0000 9ffffff7 48a98809 b981881 88357362 a01aaca8 224318da 91288847 319abfc 3bf762 198a982 429ccdb8 308aba15 13546222 1118aafb 45889384
env_cav.wva 1 c2c4 10069 7d00 4650 40024 400002 0000 0000 0000 affffff7 3199908 551ab019 cb980265 40bba009 18817315 289bfc81 99a023 36f518 520ccca8 2218ac93 dc835451 222119a fa9b4598 1d5a0092
env_cav.wva 2 504c 10069 5622 3073 40024 400002 0e00 8e40 0000 0000 1199 9900019 99919011 19110b01 91191190 20901991 1a920a0 fffe 3091099 930c079b 311a131b 1c9503bb 149a0110 30da339
env_cav.wva 3 beb0 20069 3e80 4650 40048 400002 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 12773000 12773000 22472221 22472121 34435333 45342432

env_oct.wva 0 6348 10069 7d00 4650 40024 400002 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 5f690000 3b7f2c5e 4d5c5f2b b21c7aa 2b4c5b11 8094a9
env_oct.wva 1 9e10 10069 5622 3073 40024 400002 0000 0000 0000 1fb33199 940c3410 b9bfb844 80a3a173 98f84b89 9219163b 91221098 9989e48 e003e 9aab88d7 ea80035a 9030b849 5a852a22 a58a30a4 1a0d2181
env_oct.wva 2 42a8 10069 5622 3073 40024 400002 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 7b75ff77 b5922df3 b43b1d38 2da828b2 92a4aa23 23003fc8
env_oct.wva 3 89ac 10069 5622 3073 40024 400002 0f00 f4c0 0000 99aa0000 33331999 4530acb1 adc11202 5320aa89 189ff93 48824180 aeb9237 15ffde 99132009 9fbb020 219bb033 bdfb2621 91034630 420bbeba

env_snw.wva 0 6684 10069 5622 3073 40024 400002 0000 0000 0000 53907772 81569b8 1bc92363 8289ed03 a8118bbd 9982408a 22213738 9f930a9 1e0037 888abd92 3a901088 308da926 1224454 9989adb8 2564899b
env_snw.wva 1 33c0 10069 5622 3073 40024 400002 0340 5bc0 0000 31100909 b0163905 740b09a2 efb0aa98 815ab9a9 95133b83 a3005278 c1a9897 170064 f1b9bc3a 98538010 19e8b918 316b9212 191502c1 8919ace2
env_snw.wva 2 6f18 10069 5622 3073 40024 400002 14c0 c580 0000 11111100 20abbb99 92310033 900009d2 ad1039f bb273988 691090a1 1828071 80025 dc09a00b 504404aa abd9c822 3aa43911 63d1cbd3 12bc8890
env_snw.wva 3 df08 10069 5622 3073 40024 400002 1180 18c00 0000 101010 99900001 9ab9aa99 1000999 53332211 33333223 bb911123 dabbadb 40000 aaadbbcb 19999b9a 43324332 cbb90112 bbbbbcab 45345319




env_bea.wva 0 e6c4 10069 5622 3073 40024 400002 5e00 19a40 0000 0000 0000 0000 0000 0000 0000 1000000 9000009 ffff 0001 9c23000 9033ba11 9391322c b13419ce 173839aa
env_bea.wva 1 1422c 10069 5622 3073 40024 400002 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
env_bea.wva 2 11e50 10069 5622 3073 40024 400002 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
env_bea.wva 3 10bc 10069 5622 3073 40024 400002 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 d9ffffff 80b59b58 a888169f a8c82a10 b80b8864 29aa43

env_bos.wva 0 1d3b8 10069 5622 3073 40024 400002 4e40 33f00 0000 19100000 11900119 91000921 91110b0 10009111 110a91 21000099 319990 000a 900990bb 2191919 b2109911 1100990 91990 0000
env_bos.wva 1 0
env_bos.wva 2 70a4 10069 5622 3073 40024 400002 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 21022777 b373a047 8acc229d 10208982 b018dfa3 2015011e
env_bos.wva 3 180c 10069 5622 3073 40024 400002 0000 0000 0000 ff7f77ff 8a851d07 22803bc4 29b9149d 20e99438 2b22a088 15a118c9 b27a91d 4add24 a41b221 2aacc241 52a9d825 2b408bb2 1528e093 ba3288eb
env_bos.wva 4 1290 10069 5622 3073 40024 400002 0000 0000 0000 77331ba9 5187b801 f80d88a9 90d10d3a 18b09f20 28a8c010 a6287a19 1bb1700 24fe88 fc20 1cc81180 26983ba2 a0131181 8873071 1916200
env_bos.wva 5 2d6c 10069 5622 3073 40024 400002 0000 0000 ffde 7fffff77 1219bd05 9a0820c9 108b0719 39ca8114 ac9bb026 ab980156 89e9242 45f2a2 88100010 83619801 190228df 331aaa9 aca05153 9a020aea

env_cas.wva 0 1854 10069 5622 3073 40024 400002 0180 2b00 0000 1cd032af 809aef85 daaabceb 8abbcabd 111263 3573344 bbbcdcb9 b800262 2bf666 13309ac ceb03773 1881220a 12341080 fa9bdb81 b83360bd
env_cas.wva 1 4314 10069 7d00 4650 40024 400002 0000 0000 0000 90c39655 77771038 baff9907 18a9073a 32472b42 24189bfa a08aa18 9cda341 43f436 64aba098 7289c914 111aa902 53220980 cbaca84 29faa816
env_cas.wva 2 5e38 10069 5622 3073 40024 400002 0000 0000 0000 99ffffff 3520889a bc80a834 baba8572 73b91448 3102634 cfa01be0 89dd019 46c6d9 633538a9 8a800232 8aace819 121089cb 80751341 9aab0123
env_cas.wva 3 7080 10069 5622 3073 40024 400002 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 102fff77 78a08ac3 19b89815 91ba9a13 8a9c0373 9438dc03
env_cas.wva 4 177c 10069 5622 3073 40024 400002 0000 0000 0000 77ff77ff 54808d9 35218bf 4018aea9 f99b9013 9035220a 89cb8899 4530b98 47126e 9fcb02 fa223210 c943118a aa00320b 8915408 343bbd91
env_cas.wva 5 2a0c 10069 5622 3073 40024 400002 0000 0000 0000 90a88eff a9a1a80f 692b0890 7b899392 b420104 120979b7 128c20a4 e013999 180004 71a820b5 860c10a8 bb92089 89d2b033 9b059f5b a03b08b1

env_chn.wva 0 4314 10069 7d00 4650 40024 400002 0000 0000 0000 90c39655 77771038 baff9907 18a9073a 32472b42 24189bfa a08aa18 9cda341 43f436 64aba098 7289c914 111aa902 53220980 cbaca84 29faa816

env_dz2.wva 0 7b30 10069 5622 3073 40024 400002 0000 0000 0000 abb8acff 13899bbb 21213072 dbefb893 babcbbcb 52289aab 92133253 cbccccb 13fd30 3309aabb 32434437 90112223 9aa9caaa babbacba 13247341
env_dz2.wva 1 8f94 10069 4a38 29bf 40024 400002 0000 0000 0000 13026900 17b3a381 10085941 d41021a9 aa8f3119 bbd3baa9 abf90008 2d8b9db 9ff9d 8c0e8b91 b0c9cbb 1400bca0 1100cbea 2b018abd f9942242
env_dz2.wva 2 7914 10069 93a8 530e 40024 400002 0000 0000 0000 7777f0f9 4541aa87 9aaddb02 32011110 cdda1336 443288ab 8bcba012 b823531 38fe61 4208abbe aa012434 c812189b 3730abcd abcca02 b8233542
env_dz2.wva 3 36d8 10069 5622 3073 40024 400002 0000 0000 0000 fff77f77 29a2b14b 8a115103 80273802 642a93bf ad198311 cf919a81 28b19a1 3ee912 8c98917 ea0930c9 22428042 169b8802 289eb980 1995a149
env_dz2.wva 4 83a0 10069 5622 3073 40024 400002 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 53472350 cefb0233 aaacbccc 32463280 900133 34353572
env_dz2.wva 5 609c 10069 5622 3073 40024 400002 1880 ab80 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
env_dz2.wva 6 5a90 10069 3e80 2328 40024 400002 2100 a000 0000 0000 0000 1000000 11111111 11121121 12121211 0101 100101 0028 99999090 9a9b9b9b 90999999 a99aa9 99990001 90909999

env_hil.wva 0 4af4 10069 5622 3073 40024 400002 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 ffb47730 34409dff 20888013 419ccfe8 a8000122 629cebbb
env_hil.wva 1 74b8 10069 5622 3073 40024 400002 1580 cf80 0000 10000a99 bb89c911 21232121 b9a29cdb 10272a 34328063 110109fb 2907120 80038 730098f 120c0298 2c80aaa3 a473801 1221bc43 9fb339c0
env_hil.wva 2 7860 10069 5622 3073 40024 400002 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 d7f43f7f f41b5f21 80808d57 98000008 ba238918 b9240909
env_hil.wva 3 74b8 10069 5622 3073 40024 400002 1580 cf80 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 30090ac9 9c0dfb31 30232111 aa929dfc 8010272b 32528044
env_hil.wva 4 3864 10069 5622 3073 40024 400002 0000 0000 0000 908addbe ca008bca 3312119c 9925313 a889dfe1 bdbccaaa 738a021a cb02433 11febc 80109cdb 9a90218 a2540aca ac9109e bdfb0354 14442319
env_hil.wva 5 6b70 10069 4e20 2bf2 40024 400002 0000 0000 0000 0000 75109191 18577777 81810118 9a93ba31 21a0b8f0 adc0b99f a998a8f 32f1fa a2aa9eab 961918a0 7e230012 82181008 31090680 21a30420

env_hon.wva 0 65d0 10069 6d60 3d86 40024 400002 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 d1e7f7f7 50d7e87f 8c1950c9 13992a83 1105909b 1902198e
env_hon.wva 1 6abc 10069 6d60 3d86 40024 400002 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
env_hon.wva 2 f204 10069 6d60 3d86 40024 400002 0000 0000 0000 c178f000 498985c 5cdb4b89 ab6a08b5 9d21b212 91c29069 fb024928 b58a728 290046 21b18290 27ab3aa2 b070db88 803b95a1 f30009d3 85ac2839
env_hon.wva 3 8c10 10069 7d00 4650 40024 400002 0000 0000 0000 f977b77f f273aa31 171a110b bad8340a 11471bbd 800add82 fb898155 8013229 480189 8922228e 19af38b8 8c199487 9b482b10 9ab111b7 1c0306c0
env_hon.wva 4 35dc 10069 5622 3073 40024 400002 0000 0000 0000 49f66fff 1b52a80a 881c7ab 2e074fac 3b189290 b081b41b 3c291a85 4c19189 37ffb4 29809928 c5982c09 22d03a12 1b869849 a208c319 87b91c49
env_hon.wva 5 3138 10069 5622 3073 40024 400002 0000 0000 0000 3a067759 82009168 fc209b9a 180f9390 a90b9ca b0408fa1 bf02b933 2201b47 20000a a249942 4f02b5e0 1a82918b 2188a5d1 1218901f 4b1928f
env_hon.wva 6 36b4 10069 5622 3073 40024 400002 0000 0000 0000 a7ff779 ab1b73b0 ae1981a7 911f173f a2b28a2 4c081b4 893c281b a5c191 370160 19290098 11c6983b 2801e02a 180c8699 59a309a2 2a07a91b
env_hon.wva 7 31c8 10069 5622 3073 40024 400002 0000 0000 0000 7bf95c77 80080e3 81b32ab3 a5e03b6f 11a02908 f308896c f1218901 4b2a38 2f0089 28aa16b9 9a179a b0986f00 20f90033 c0282a98 b1a85a01

env_oil.wva 0 16b3c 10069 7d00 4650 40024 400002 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 21111000 22132123 32331021 4331310 9c000301 ab002999
env_oil.wva 1 3d08 10069 5622 3073 40024 400002 0000 0000 0000 2777777f 8885518 8a1322cc 593a1293 132b09e1 a10009fa 319cf30 8000ea1 380b6b ea158900 a0182109 1399108d 40bfb024 10cc1092 12431248
env_oil.wva 2 2fd0 10069 5622 3073 40024 400002 0000 0000 0000 10105737 338a053 ea9ebad9 8a9b089c ff2709c9 91987a84 18910201 ab00a09 1d003b 8cb820ca 2324bc84 9810470 1a11809c 361458c3 18170811
env_oil.wva 3 3114 10069 5622 3073 40024 400002 0000 0000 0011 1375837 83709c95 c10011 944aba77 53ba980c 180cdb83 58dd8183 a28fb81 2cfaf7 11080a07 988110 1b13cb88 b221dc13 1709227b abbb810

env_pan.wva 0 7548 10069 5622 3073 40024 400002 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 fff8 cbbcbaed cb9cbacb aaabbaba 1733900b 32434234 14224224
env_pan.wva 1 80ac 10069 5622 3073 40024 400002 0000 0000 0000 a9999900 aaab9aa9 99a99b9a a9999099 cbbbaa9a bbcbacab b9abba9e 11919aa ff46 42315123 23042423 9b999039 ad9afbbc cbbbcbbb baab9c9a
env_pan.wva 2 0
env_pan.wva 3 8c10 10069 7d00 4650 40024 400002 0000 0000 0000 f977b77f f273aa31 171a110b bad8340a 11471bbd 800add82 fb898155 8013229 480189 8922228e 19af38b8 8c199487 9b482b10 9ab111b7 1c0306c0
env_pan.wva 4 7ae8 10069 5dc0 34bc 40024 400002 0000 0000 0000 9d17ff77 80838d15 52f97ba8 2ac140b9 c862ad03 963bb138 39b8429b 5ad0191 3d08f8 69d030ba 8c031ab1 ba329c05 10d9221 920b0188 241ed34a
env_pan.wva 5 a41c 10069 5dc0 34bc 40024 400002 0000 0000 0000 af67cf77 72bc926 9b9160bb 419aa052 8a139c91 241ae924 d93319d9 bb8630a 3bfa72 a8108a13 50fa2319 b0438cc2 9ab0428b 1088b844 3a020aa2
env_pan.wva 6 2b98 10069 5622 3073 40024 400002 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 47747777 679f099f b009219c 58fa230 888019a e0178e80
env_pan.wva 7 2c70 10069 5622 3073 40024 400002 0000 0000 0000 f7ffff7f a5c95e51 8c038b48 869c2983 18c031b f9013c91 982d9311 c931c84 4fd755 840c9022 1b40c11a 4f03d3a0 9b2081a8 6a810995 c239b48b
env_pan.wva 8 2b2c 10069 1f40 1194 40024 400002 0000 0000 0000 99900100 33111199 a9aaa911 121199a9 b9212021 44311adb abec013 eb03353 bfff0 335309c 2219aad9 bbcba812 92335729 319abcdb bda01436
env_pan.wva 9 2f1c 10069 1f40 1194 40024 400002 0000 0000 0000 90900100 1009099 11211111 999a90 9999b990 32131210 9a999112 bbbac9a ffe5 1123531 33331190 beb90122 419aabcc 11233434 b0222100
env_sea.wva 0 9870 20069 3e80 4650 40048 400002 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 b3a29191 b3a29191 7777a5c3 777795c3 11011377 11101377 32222322 32122321

env_wod.wva 0 7b0c 10069 5622 3073 40024 400002 0000 0000 0000 e9275bff 134419a 630beeb9 419df923 10aba924 1561bf9 b1309baa 903629f 3c04b8 fa3320ab a912528c a14309aa 902348ae a2529aba a82431af
env_wod.wva 1 528c 10069 5622 3073 40024 400002 0000 0000 0000 273dfb47 c0311abb cc8260c 3099a843 8351be04 b03189cb 9c91460c aa98210 1cffcf 528acb14 3619a91 ca0419db 8cc13409 40bb9073 440bc83
env_wod.wva 2 5244 10069 5622 3073 40024 400002 0000 0000 0000 b053fd71 937afa39 37ab08b 9472baab a84509ba cb0368ab 8cc8351a 48cc034 2e0228 c9151bc8 419c8428 bb0419c0 9429b852 41db338c 8c9329c0
env_wod.wva 3 5f10 10069 5622 3073 40024 400002 0000 0000 0000 847cf173 9a9231af cf03318 a08a823 62bf936 aa051ab b152cb03 2a9058b 210070 69d039b8 a9139d94 229c841 241a8099 b22128eb eb23309f
env_wod.wva 4 3a80 10069 5622 3073 40024 400002 0000 0000 0000 eff3226b 119c0458 9821d209 bc8334af 178c822a 910912aa 830c130e 50ca10a 1f000c 18109d12 8987a8a0 e1183c94 930e8239 80320c88 c539948d
env_wod.wva 5 45c0 10069 5622 3073 40024 400002 0000 0000 0000 72b93990 23fb709a 3019ac81 182dd713 8d30c590 9a23ca22 b873d8 1a9c821 1affc6 50e9041 d152a90b 9a198129 208e0203 1a038f97 28b0699
 
Last edited:
How do I play wva files? Is there wva converter or something?
I'd like an easier way to play sounds than the game itself.

env_snw.wva has 4 audio files, three of them are looped sound effects for water, waterfall and wind. Surprisingly the wind sound is ok. I think that could be a key to how to fix the corrupted sound. One idea would be to use sounds from doa2u, but they could be incompatible like sfd files from doa2u won't play in doa3. Another idea would be reencoding the sounds to another bitrate/frequency. Still not sure why the wind is not corrupted.
 

Matt Ponton

Founder
Staff member
Administrator
Standard Donor
I've only found one way to convert the files over to wav format.

I believe requires three programs. One to extract the sound files from the .wva pack to a .bin file(s), another to create the headers as audio files
and the third to convert them to .wav files

The interesting thing is that the corruption occurs with the conversion, but the corruption isn' t 1-to-1 with what CXBX-R prints.
 

Attachments

  • env_wav.rar
    1.3 MB · Views: 205
Last edited:
I've only found one way to convert the files over to wav format.

I believe requires three programs. One to extract the sound files from the .wva pack to a .bin file(s), another to create the headers as audio files
and the third to convert them to .wav files

The interesting thing is that the corruption occurs with the conversion, but the corruption isn' t 1-to-1 with what CXBX-R prints.
Yes, I have seen this. "Frequency: 22050" - is wrong. Something else also could be wrong about this tutorial(I put my bet on "Criteria").
 
Here is a python script that will unpack wva audio files.
Python:
#-------------------------------------------------------------------------------
# Python script to unpack wva audio packs //you may need the codec to play these
#-------------------------------------------------------------------------------
wva_path=r"C:\doa3\FULL_AFS_FILE_DUMP"

import os, struct
for flname in os.listdir(wva_path):
    if '.wva' in flname:
        name = os.path.join(wva_path, flname)
        with open(name, 'rb') as f:
            count   =  struct.unpack('<L', f.read(4))[0]
            offsets = [struct.unpack('<L', f.read(4))[0] for i in range(count)]
            print(flname, *offsets)
            for offset in offsets:
                if offset:
                    f.seek(offset)
                    size = struct.unpack('<L', f.read(4))[0]
                    head = f.read(0x14)
                    loop = f.read(8)
                    data = f.read(size)
                    with open(name[:-4]+'_%d.wav'%offsets.index(offset), 'wb') as fs:
                        fs.write(b'RIFF' + struct.pack('<L',size+0x30))
                        fs.write(b'WAVEfmt \x14\x00\x00\x00' + head)
                        fs.write(b'data'+ struct.pack('<L',size) + data)

It's not a decoder, thus if the file is not playing, then you have to install a codec pack that includes the needed codec for xbox wav audio (k-lite works for me)

Code:
DWORD count
DWORD offsets[count]
for offset in offsets:
    if offset is not 0:
        goto offset
        DWORD audio_data_len
        WORD  format_type69            //usual wav header start
        WORD  audio_channels_count
        DWORD audio_sample_rate
        DWORD bitrate_nominal
        WORD  audio_chunk_size
        WORD  wconst4
        WORD  wconst2
        WORD  wconst40                //usual wav header end
        DWORD dwLoopStart
        DWORD dwLoopLength
        chr* audio_data[audio_data_len]


I'm sure, but I don't know what would be wrong.

These were my settings:
unknown.png

unknown.png
I'm not sure that it's possible using only these tools.
 
Last edited:
So, I think I kind of found the source of the sound corruption. The sound effects have such parameters as:
- audio_chunk_size - audio is made of small chunks, you start playing at the beginning of a chunk, you can't start in the middle of a audio chunk.
- loop_start - offset in audio where the audio starts to loop
- loop_end - offset in audio where the audio jumps at the beginning of the loop

loop_start doesn't point at a beginning of a chunk, and should not be used as a beginning of an audio stream to the direct sound. But seems like somehow exactly this happens in the case of doa3 plus cxbx-r, and that causes the sound corruption. Not sure if this information is enough for cxbx-r developers to fix the problem.

On my end, I think about a python script that would go through all wva in the 'loadfile.afs', and fix the loop_start value with the value of the closest audio chunk. That could cause annoyance, because of the imperfect audio loop, but whatever.
 

Matt Ponton

Founder
Staff member
Administrator
Standard Donor
On my end, I think about a python script that would go through all wva in the 'loadfile.afs', and fix the loop_start value with the value of the closest audio chunk. That could cause annoyance, because of the imperfect audio loop, but whatever.

would that then affect the loadfile.afs when played on an OG xbox or in XEMU?
 
ALL DOA6 DOA5 DOA4 DOA3 DOA2U DOAD
Top