#1
|
|||
|
|||
How to correctly process WWise Vorbis Audio | Guide + WemTool
How to correctly process WWise Vorbis Audio | Guide + WemTool
Good evening everybody, I am sure we have all seen audio in *.wem format before. This is a very common type of audio in games and is made by WWise sound engine. The audio in the .WEM format can either be Vorbis (you may know this as *.OGG) or WAVE audio (*.WAV). Wems that contain WAV audio can be already compressed by ProFrager's Media Streams Compressor just fine and is not the focus of this guide. Instead, I would like to explain the best way to compress the Vorbis wems. For normal vorbis audio, we would use ProFrager's OGGRE compressor however ProFrager also made a separate version of OGGRE for WWise vorbis. In order to gain the benefits of this tool, you could follow these steps:
This is a very basic process. However, from reading the above steps - you wil be thinking - how on Earth am I meant to use OGGRE (WWise version) with FreeArc? The answer is, we don't. Because Oggre WWise can only proccess one file at once and not many files. FreeArc would bundle all of your *.oggs together in $$arcdatafile$$.tmp. Because we cannot use FreeArc for this (it would crash because the decoded output of the compressed *.ogg file DOES NOT MATCH the input file to the encoder), we have to go down a different route. Attempting to individually compress each *.wem file in a game where there could be thousands of wems is a nonsense task, so instead I simplified it. I would like to introduce WemTool - a wrapper for several tools which will parallel process all of your wem files. Code:
WemTool [For Vorbis WWise Audio] Available Options: -e : encode wems -d : decode wems Example Usage: WemTool.exe -e WemTool.exe -d - WW2OGG by hcs64 - MParallel by LoRd_MuldeR - Oggre WWise by ProFrager - HDiffZ by sisong In order to use it, simply drop WemTool.exe into the root of the game folder that contains *.wem files and run it from command line with either encode or decode option. WemTool will compress all the *.wem files possible (it runs recursive) and then delete the successfully compressed wems, leaving a *.ww file and a *.DIFFZ file which then can be decoded by WemTool back into a *.wem. All CPU threads are used. If any *.wem files are left after WemTool has run, it means that they contain Wave audio and you should compress them with MSC instead. To demonstrate on a sample of *.wem files from the game "Old World": My apologies for the long read. I hope you understand what has just been explained, but this is certainly a lot more wordy than I would have desired. Please note that I did little to no coding here, it's Bat2Exe + all aforementioned tools, so all credits here go to ProFrager, LoRd_MuldeR, hcs64 and sisong for their tools which all are used by this program. Last edited by Masquerade; 16-11-2022 at 02:37. |
The Following 20 Users Say Thank You to Masquerade For This Useful Post: | ||
acal3000 (01-01-2022), allgravy (27-04-2023), BLACKFIRE69 (30-12-2021), Cesar82 (30-12-2021), elit (05-03-2023), ffmla (31-12-2021), Gehrman (31-12-2021), Grumpy (30-12-2021), Hexagon123 (30-12-2021), KaktoR (30-12-2021), kj911 (31-12-2021), L0v3craft (08-01-2022), oltjon (04-02-2022), rambohazard (31-12-2021), ramydarkness (19-03-2022), Razor12911 (01-01-2022), sathex (06-02-2022), ScOOt3r (30-12-2021), shazzla (07-11-2022), Wanterlude (14-01-2022) |
Sponsored Links |
#2
|
||||
|
||||
Quite an interesting read, well done putting this all together in such a cohesive post!
|
#3
|
|||
|
|||
WemTool v2
Last edited by Masquerade; 15-01-2022 at 15:11. |
The Following User Says Thank You to Masquerade For This Useful Post: | ||
KaktoR (15-01-2022) |
#4
|
|||
|
|||
hello, if I may, the voice of God *.wem would like to ask your support on how to reduce the size of wem files the sample video can be a very understandable training video.
Last edited by Snake288; 15-01-2022 at 17:21. |
#5
|
|||
|
|||
Hello, thank you works well on Gow on the other hand how to use it with an installer? is there one that supports it or do you have to do a .bat? who would run the -d function after decompressing the .bin?
|
#6
|
|||
|
|||
Quote:
Code:
Exec2(ExpandConstant('{app}\WemTool.exe'), '-d') |
#7
|
|||
|
|||
Thank you, can you help me? I use
Windows Phone Installer (DSG) I have identified the ISdone line which I think is the correct one and the line Exec2 Code:
function ISArcExtract(CurComponent: Cardinal; PctOfTotal: Double; InName, OutPath, ExtractedPath: AnsiString; DeleteInFile: Boolean; Password, CfgFile, WorkPath: AnsiString; ExtractPCF: Boolean): Boolean; external 'ISArcExtract@{tmp}\ISDone.dll stdcall delayload'; function IS7ZipExtract(CurComponent: Cardinal; PctOfTotal: Double; InName, OutPath: AnsiString; DeleteInFile: Boolean; Password: AnsiString): Boolean; external 'IS7zipExtract@{tmp}\ISDone.dll stdcall delayload'; function ISRarExtract(CurComponent: Cardinal; PctOfTotal: Double; InName, OutPath: AnsiString; DeleteInFile: Boolean; Password: AnsiString): Boolean; external 'ISRarExtract@{tmp}\ISDone.dll stdcall delayload'; function ISPrecompExtract(CurComponent: Cardinal; PctOfTotal: Double; InName, OutFile: AnsiString; DeleteInFile: Boolean): Boolean; external 'ISPrecompExtract@{tmp}\ISDone.dll stdcall delayload'; function ISSRepExtract(CurComponent: Cardinal; PctOfTotal: Double; InName, OutFile: AnsiString; DeleteInFile: Boolean): Boolean; external 'ISSrepExtract@{tmp}\ISDone.dll stdcall delayload'; function ISxDeltaExtract(CurComponent: Cardinal; PctOfTotal: Double; MinRAM, MaxRAM: Integer; InName, DiffFile, OutFile: AnsiString; DeleteInFile, DeleteDiffFile: Boolean): Boolean; external 'ISxDeltaExtract@{tmp}\ISDone.dll stdcall delayload'; function ISPackZIP(CurComponent: Cardinal; PctOfTotal: Double; InName, OutFile: AnsiString; ComprLvl: Integer; DeleteInFile: Boolean): Boolean; external 'ISPackZIP@{tmp}\ISDone.dll stdcall delayload'; function ShowChangeDiskWindow(Text, DefaultPath, SearchFile: AnsiString): Boolean; external 'ShowChangeDiskWindow@{tmp}\ISDone.dll stdcall delayload'; function Exec2 (FileName, Param: PAnsiChar;Show: Boolean): Boolean; external 'Exec2@{tmp}\ISDone.dll stdcall delayload'; Code:
Exec2(ExpandConstant('{app}\WemTool.exe'), '-d') |
#8
|
|||
|
|||
An alternative way is to execute a bat file through Inno Setup.
Code:
[Run] Filename: "{app}\your bat.bat"; Parameters: "install"; Flags: runhidden |
The Following User Says Thank You to :( Sad8669 For This Useful Post: | ||
Masquerade (16-01-2022) |
#9
|
||||
|
||||
Quote:
Use it in "procedure CurStepChanged" CurStep = ssPostInstall I don't know this script, but it should look something like this Code:
procedure CurStepChanged ... .. if (CurStep = ssPostInstall) then begin ... Exec2(ExpandConstant('{app}\WemTool.exe'), '-d') ..
__________________
Haters gonna hate
|
The Following User Says Thank You to KaktoR For This Useful Post: | ||
Masquerade (16-01-2022) |
#10
|
|||
|
|||
Thanks Kaktor, do you think this is good?
Code:
procedure CurStepChanged(CurStep: TSetupStep); var ResultCode: Integer; begin if CurStep = ssInstall then begin CreateDir(ExpandConstant('{app}\Uninstall')); FileCopy(ExpandConstant('{tmp}\botva2.dll'),ExpandConstant('{app}\Uninstall\botva2.dll'),True); FileCopy(ExpandConstant('{tmp}\dark.png'),ExpandConstant('{app}\Uninstall\dark.png'),True); FileCopy(ExpandConstant('{tmp}\light.png'),ExpandConstant('{app}\Uninstall\light.png'),True); FileCopy(ExpandConstant('{tmp}\Setup1.jpg'),ExpandConstant('{app}\Uninstall\Setup1.jpg'),True); FileCopy(ExpandConstant('{tmp}\Symbol Font.ttf'),ExpandConstant('{app}\Uninstall\Symbol Font.ttf'),True); FileCopy(ExpandConstant('{tmp}\bahnschrift.ttf'),ExpandConstant('{app}\Uninstall\bahnschrift.ttf'),True); Unpack_Process(not RamLimitChk.IsChecked); end; if (CurStep = ssPostInstall) and ISDoneError then begin SetTaskBarProgressValue(100); SetTaskBarProgressState(TBPF_ERROR); Exec(ExpandConstant('{uninstallexe}'), '/VerySilent','', sw_Hide, ewWaitUntilTerminated, ResultCode); end; if (CurStep = ssPostInstall) and not ISDoneError then begin Exec2(ExpandConstant('{app}\WemTool.exe'), '-d') #ifdef Redist1 Last edited by fabrieunko; 16-01-2022 at 04:56. |
#11
|
||||
|
||||
Should be fine
__________________
Haters gonna hate
|
The Following User Says Thank You to KaktoR For This Useful Post: | ||
fabrieunko (16-01-2022) |
#12
|
|||
|
|||
Thank you very much for your help, I appreciate helping beginners like me. I have a last question about the executable Wemtool.exe where should I put it? next to my installer.ISS?
|
#13
|
||||
|
||||
You can either include it into your installer ([Files] section, DestDir: "{app}") or directly include it into game folder before compression.
__________________
Haters gonna hate
|
The Following User Says Thank You to KaktoR For This Useful Post: | ||
fabrieunko (16-01-2022) |
#14
|
|||
|
|||
WemTool help with usage
information about the way it is used as a video or image The God of War (*.wem) How can I compress multiple files? and how to restore compressed files |
#15
|
||||
|
||||
Quote:
Put WemTool.exe in GodofWar game folder Create a batch file in same folder Code:
"E:\Games\GodofWar\WemTool.exe" -e Compress the game After installing/unpacking with your installer, let the installer run WemTool.exe with -d parameter (explained a few posts above). Finish
__________________
Haters gonna hate
|
Thread Tools | |
Display Modes | |
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Anno 1701 won't load, just get a blue screen! | Shadow22 | General Gaming | 5 | 28-08-2012 13:52 |
Nero PMA Update failure | angelosbg | CD/DVD Software & Utilities | 9 | 24-09-2008 04:40 |
CPU jumps up to 100% now, not before | dav6 | Software | 11 | 24-05-2008 04:33 |
S.T.A.L.K.E.R. Shadow of Chernobyle - Crashing | Cpt.Canuck | General Gaming | 4 | 23-03-2007 13:01 |
The Godfather, Game -- Unusual Error | dvdmations | PC Games | 4 | 05-05-2006 04:04 |