07th-mod / umineko-question

93 stars 9 forks source link

Missing Voice Files / Pack voice files in arcX.nsa to reduce the number of files on disk #115

Closed drojf closed 4 years ago

drojf commented 5 years ago

On Windows 10, copying lots of small files is pretty slow. Since the voice files are rarely changed (I don't think we've ever changed them since the start of the project), it may be worth packing them into a .nsa file, assuming that is supported.

ItaloKnox commented 5 years ago

I don't remember if there were tools for Linux (debian/ubuntu) available, but supposing there is some, I can use the server to help with this. You just have to make a few dry runs manually to make sure everything is working and then compile some instructions. After that, I can let the second server (the fast one) take care of that and push to our main server.

drojf commented 5 years ago

Thanks for the offer. Is there actually a tool to pack the arc.nsa files on linux though?

I would do it on my own computer but my internet is too slow (until next year, at least).

Did you say you used Microsft Azure before? I thought I might try it to get this particular task done (using the free trial, but even without the trial it's very cheap anyway).

I have updated the title of the issue to include missing voice files.

NOTE: Both Our Mod and PS3 voice also doesnt exist: [Umineko\voice\16/10600020.ogg]
NOTE: Both Our Mod and PS3 voice also doesnt exist: [Umineko\voice\10/20101265.ogg]
NOTE: Both Our Mod and PS3 voice also doesnt exist: [Umineko\voice\01/31500075.ogg]
NOTE: Both Our Mod and PS3 voice also doesnt exist: [Umineko\voice\01/31500079.ogg]
NOTE: Both Our Mod and PS3 voice also doesnt exist: [Umineko\voice\01/31500080.ogg]
NOTE: Both Our Mod and PS3 voice also doesnt exist: [Umineko\voice\01/31500093.ogg]
NOTE: Both Our Mod and PS3 voice also doesnt exist: [Umineko\voice\10/30100414.ogg]
NOTE: Both Our Mod and PS3 voice also doesnt exist: [Umineko\voice\10/30100657.ogg]
NOTE: Both Our Mod and PS3 voice also doesnt exist: [Umineko\voice\10/30101271.ogg]
NOTE: Both Our Mod and PS3 voice also doesnt exist: [Umineko\voice\10/30101469.ogg]
NOTE: Both Our Mod and PS3 voice also doesnt exist: [Umineko\voice\10/30101613.ogg]
NOTE: Both Our Mod and PS3 voice also doesnt exist: [Umineko\voice\11/32000001.ogg]
NOTE: Both Our Mod and PS3 voice also doesnt exist: [Umineko\voice\11/42000026.ogg]
NOTE: Both Our Mod and PS3 voice also doesnt exist: [Umineko\voice\11/42000045.ogg]
NOTE: Both Our Mod and PS3 voice also doesnt exist: [Umineko\voice\11/42000117.ogg]
NOTE: Both Our Mod and PS3 voice also doesnt exist: [Umineko\voice\11/42000277.ogg]
NOTE: Both Our Mod and PS3 voice also doesnt exist: [Umineko\voice\11/420009512.ogg]
NOTE: Both Our Mod and PS3 voice also doesnt exist: [Umineko\voice\11/42000972.ogg]
NOTE: Both Our Mod and PS3 voice also doesnt exist: [Umineko\voice\11/42001053.ogg]
NOTE: Both Our Mod and PS3 voice also doesnt exist: [Umineko\voice\13/40401069.ogg]
NOTE: Both Our Mod and PS3 voice also doesnt exist: [Umineko\voice\11/42001401.ogg]
NOTE: Both Our Mod and PS3 voice also doesnt exist: [Umineko\voice\11/42001463.ogg]
WARNING: Our mod line [27738] path not exist Umineko\voice\04/40200114_b.ogg, but PS3 exists ps3\voice\04/40200114_b.at3   //we use 40200114_b.at3.ogg, false positive
WARNING: Our mod line [28138] path not exist Umineko\voice\04/40200222_1.ogg, but PS3 exists ps3\voice\04/40200222_1.at3   //we use 40200222_1.at3.ogg, false positive
WARNING: Our mod line [29349] path not exist Umineko\voice\10/40100727.ogg, but PS3 exists ps3\voice\10/40100727.at3       //this one is legitimately missing
NOTE: Both Our Mod and PS3 voice also doesnt exist: [Umineko\voice\11/42001671.ogg]
NOTE: Both Our Mod and PS3 voice also doesnt exist: [Umineko\voice\11/42001693.ogg]
NOTE: Both Our Mod and PS3 voice also doesnt exist: [Umineko\voice\11/42001698.ogg]
NOTE: Both Our Mod and PS3 voice also doesnt exist: [Umineko\voice\11/42001746.ogg]
NOTE: Both Our Mod and PS3 voice also doesnt exist: [Umineko\voice\05/410001376.ogg]
NOTE: Both Our Mod and PS3 voice also doesnt exist: [Umineko\voice\10/90100412.ogg]
NOTE: Both Our Mod and PS3 voice also doesnt exist: [Umineko\voice\05/91000003.ogg]
NOTE: Both Our Mod and PS3 voice also doesnt exist: [Umineko\voice\11/92000029.ogg]
ItaloKnox commented 5 years ago

Yeah, looks like there are no Windows tools for this. My speeds are also slow as hell so I can't do it locally and upload. Azure should also be impossible for the time being, unfortunately. My school subscription expired so I have no access to the Azure machines I would like to use. Maybe Amazon EC2 might work in this case, but I'm not 100% sure yet.

drojf commented 5 years ago

If anyone wants to tackle this one, you have to do the following:

Cross-platform builds of programs for packing/unpacking NScr script files and extracting/converting/creating NSA, NS2 and SAR archives.

See the “tools” subdirectory of the ONScripter src release for source code; this Readme (also provided in each package) has more information on usage. Take a look at this rules.txt for an example of using file-matching rules with the *conv tools

onscrtools-win32-20100915.zip

tlm-2501 has kindly created and tested the .nsa files. I have compressed them and added them here:

https://07th-mod.com/Beato/Umineko-Voices-nsa.7z https://07th-mod.com/Bern/UminekoChiru-Voices-nsa.7z

of note is that the compressed files are slightly larger than just compressing the .ogg files versions - after I download them, i'll try re-compressingg it on my system (previously I compressed it on the server, and am not sure if the server's lack of ram or settings I used were incorrect)

drojf commented 5 years ago

This has been live for some time now for both games, however the wiki still needs to be updated.

There was an issue with mangagamer installs having a different number of .arc files compared to the steam version, but that has already been resolved through the installer.

Also the old voice files should be deleted from the server once we're sure there is no problem with the voice files.

drojf commented 5 years ago

I've just reverted the .nsa voice files due to some users reporting voices not play.

A DogLover314 that voices past a certain folder (past folder 46 or so) wouldn't play, on the Answer Arcs. I couldn't reproduce this issue.

A user reported on the Question Arcs that the stake's voices weren't playing. I tested the line:

langen:dwave_eng 0, rg7_4e23:^"Kyahaha!^@:dwave_eng 0, rg7_4e24:^ Ange-sama said break!"^@

and found that line didn't work on my machine either.

Both users were a fair way through the game.

Since these voice files tend to be towards the end of the archive (and you would have noticed missing voices from the start of the archive as those occur near the start of the game), I assume that we're hitting the limit of the number of files we can put in a .nsa archive. I would be happy to try again using split .nsa files, but only if we do some more testing next time (like making a game script which plays the start, middle and end voice file from every 5 NSA folders or something like that).

Edit: the answer arcs user had these errors when trying to extract the .nsa file When extracting the question arcs, DogLover314 had this issue Edit2: I can confirm that I get the same thing: image

FatesTimelines1337 commented 5 years ago

I did extract a fresh copy of the arc4.nsa for the Answer arcs and used nsadec to extract it. Wasn't any issues with folders past voice/46/

drojf commented 5 years ago

Some more information:

Extracting the arc4.nsa for the question arcs gives some .ogg files which are corrupted/won't play, even in FooBar, later on in the folder list (the last folders alphabetically).

Now that I think about it, running the game in debug mode would probably output some errors for those files - we can probably automatically test every file in the game automatically. But it might not pick up every possible problem. At the very least we should run the archives through nsadec.exe and then check the files are identical on the output

@tlm-2501 could you double check that you can reproduce these issues? In case I managed to corrupt the .nsa files between you sending them to me and me uploading them.

Edit: I did a diff and in the Question arcs, it's about halfway through folder 34 is where the bad voice files appear (33300310.ogg is the first broken file). It looks to be (double checked, it's extremely close to) the 2GB boundary (1 << 31 bytes).

Edit2: I did the same for the Answer Arcs arc4.nsa, and the files are identical between the old voice archive and the extracted arc4.nsa. Note that I could never reproduce any error with the answer arcs arc4.nsa

EDIT3: this issue has been fixed as of 15/06/2019 - we ended up splitting the huge arc4.nsa into two files, arc4.nsa and arc5.nsa so the game could handle them

drojf commented 4 years ago

We have been using the 'packed' voice files for a while now without any problems, so I'm going to close this issue now.