FileForums

FileForums (https://fileforums.com/index.php)
-   Conversion Tutorials (https://fileforums.com/forumdisplay.php?f=55)
-   -   Best Compression Methods for 'Specific' Games. Q&A (https://fileforums.com/showthread.php?t=99554)

bird2026 01-10-2026 06:22

The Witcher 3 - Wild Hunt - Game of the Year Edition
Wwise files (enpc.w3speech
soundpc.cache) for :
- wwise (vorbis) = 4962 (79.55%)
- wwise (opus) = 20330 (20.26%)
I need help regarding the compression method or a ready-made tool I can use; if everything goes well, I will need to restore the original files later.

KaktoR 01-10-2026 06:46

Use xtool to extract them.

bird2026 01-10-2026 07:33

Quote:

Originally Posted by KaktoR (Post 511180)
Use xtool to extract them.

CallBefore.bat / Can a similar process be set up for Control Resonant? Could I get some help with this? I’m not very skilled at these kinds of things.


CallBefore.bat
--------------------------------------------------------------------------------------

@ECHO off
TITLE DiskSpan GUI Compressor
SETLOCAL EnableDelayedExpansion EnableExtensions

:: ---------------------------------------------------------------------------------
:: ----------------------------- VARIABLES SETTINGS --------------------------------
:: ---------------------------------------------------------------------------------
CD /D "%~dp0"
SET "Counter=1"

:StoreLoop
IF !Counter! LEQ 9 IF "%~1" EQU "" ENDLOCAL && EXIT /B
SET "ARG!Counter!=%~1" && SHIFT && SET /A "Counter+=1"
IF !Counter! LEQ 20 GOTO StoreLoop

:MapVariables
SET "GameName=!ARG1!" && SET "DataFile=!ARG2!"
FOR %%a IN ("!ARG3!") DO SET "GameDir=%%~fa" && SET "BackupDir=%%~fa (Backup)"
FOR %%a IN ("!ARG4!") DO SET "OutputDir=%%~fa" && FOR %%a IN ("!ARG5!") DO SET "SetupDir=%%~fa"
FOR %%a IN ("!ARG6!") DO SET "MediaDir=%%~fa" && FOR %%a IN ("!ARG7!") DO SET "MainDir=%%~fa" && FOR %%a IN ("!ARG8!") DO SET "TempDir=%%~fa"
SET "GameIndex=1" && SET "DataIndex=1" && SET "MediaIndex=1" && FOR /F "tokens=1,2,3" %%a IN ("!ARG9!") DO ( SET /A "GameIndex=%%a" 2>nul && SET /A "DataIndex=%%b" 2>nul && SET /A "MediaIndex=%%c" 2>nul )
FOR /F "tokens=3" %%a IN ( 'REG QUERY "HKCU\Software\Microsoft\Windows\CurrentVersion\Ex plorer\Shell Folders" /v "Personal" 2^>nul' ) DO SET "UserDocs=%%a"
FOR %%a IN ("%~dp0.") DO SET "SourceDir=%%~fa" && IF "!SourceDir:~-1!" EQU "" SET "SourceDir=!SourceDir:~0,-1!"
SET "DatabaseDir=!MainDir!\Resources\DATABASE" && SET "BaseDir=!MainDir!\Resources\Win64"
:: ---------------------------------------------------------------------------------
:: !GameName! = name of the current game
:: !DataFile! = name of the current data file
:: !SourceDir! = directory of call after/before .bat/.cmd/.exe file
:: !BackupDir! = predefined backup directory
:: !GameDir! = current game directory
:: !OutputDir! = output directory
:: !SetupDir! = setup files folder directory
:: !MediaDir! = current media directory like: DISK_1
:: !MainDir! = application DiskSpan_GUI.exe {src} directory
:: !DatabaseDir! = database files directory
:: !BaseDir! = compressors base directory
:: !TempDir! = application DiskSpan_GUI.exe {tmp} directory
:: !UserDocs! = user documents directory
:: !GameIndex! = index of the current game
:: !DataIndex! = index of the current data file
:: !MediaIndex! = index of the current media directory
:: ---------------------------------------------------------------------------------
:: -------------------------------- USER SETTINGS ----------------------------------
:: ---------------------------------------------------------------------------------


:Start
CLS
ECHO.
ECHO.----------------------------------------------------------------------
ECHO. The following process uses WEM Packer by SYMM
ECHO. https://fileforums.com/showthread.ph...819#post509819
ECHO.
ECHO. This step could take a bit longer than usual, approximately up to 2 hours.
ECHO.
ECHO. Backup files will be made here:
ECHO. !BackupDir!\
ECHO.----------------------------------------------------------------------
ECHO. Do you want to process sound files? [Y/N]
ECHO.----------------------------------------------------------------------
ECHO.
CHOICE /C NY /N
IF errorlevel 1 SET "Wwise=Y"
IF errorlevel 2 SET "Wwise=N"


:Example
IF EXIST "!DatabaseDir!\Control Resonant\Lists\Rebuild_example_for_installers (Setup INI).txt" START "" "!DatabaseDir!\Control Resonant\Lists\Rebuild_example_for_installers (Setup INI).txt"


:Copy
IF NOT EXIST "!BackupDir!\data_pack2\pc" MKDIR "!BackupDir!\data_pack2\pc"
IF NOT EXIST "!GameDir!\XTool.exe" COPY /Y "!BaseDir!\PRE\XTool_2020\XTool.exe" "!GameDir!\XTool.exe" >nul
IF "%Wwise%"=="Y" (
IF NOT EXIST "!GameDir!\wem-unpacker.exe" COPY /Y "!BaseDir!\TOOLS\WEM\wem-unpacker.exe" "!GameDir!\wem-unpacker.exe" >nul


:Wwise
CLS
CD /D "!GameDir!"
SET /A "FileList.Count=17"
SET "FileList[1].Name=base-de-000.rmdblob
SET "FileList[2].Name=stream0-de-000.rmdblob
SET "FileList[3].Name=base-es-000.rmdblob
SET "FileList[4].Name=stream0-es-000.rmdblob
SET "FileList[5].Name=base-fr-000.rmdblob
SET "FileList[6].Name=stream0-fr-000.rmdblob
SET "FileList[7].Name=base-it-000.rmdblob
SET "FileList[8].Name=stream0-it-000.rmdblob
SET "FileList[9].Name=base-ja-000.rmdblob
SET "FileList[10].Name=stream0-ja-000.rmdblob
SET "FileList[11].Name=base-ptbr-000.rmdblob
SET "FileList[12].Name=stream0-ptbr-000.rmdblob
SET "FileList[13].Name=base-zhcn-000.rmdblob
SET "FileList[14].Name=stream0-zhcn-000.rmdblob
SET "FileList[15].Name=base-generic-000.rmdblob
SET "FileList[16].Name=stream0-generic-001.rmdblob
SET "FileList[17].Name=stream0-generic-002.rmdblob
FOR /L %%i IN (1, 1, !FileList.Count!) DO IF EXIST "!GameDir!\data_pack2\pc\!FileList[%%i].Name!" (
IF NOT EXIST "!GameDir!\data_pack2\pc\!FileList[%%i].Name!_extract" MKDIR "!GameDir!\data_pack2\pc\!FileList[%%i].Name!_extract"
IF NOT EXIST "!BackupDir!\data_pack2\pc\!FileList[%%i].Name!" ECHO Copying "..\data_pack2\pc\!FileList[%%i].Name!", please wait...
IF NOT EXIST "!BackupDir!\data_pack2\pc\!FileList[%%i].Name!" COPY /Z /Y "!GameDir!\data_pack2\pc\!FileList[%%i].Name!" "!BackupDir!\data_pack2\pc"
CALL "!BaseDir!\PRE\XTool_2020\XTool.exe" precomp -mwwise -x"!GameDir!\data_pack2\pc\!FileList[%%i].Name!_extract" "!GameDir!\data_pack2\pc\!FileList[%%i].Name!"
CALL "!DatabaseDir!\_COMMON\CALL\ANNO_CallBefore.ex e" /FUNC=SMALL /PATH="!GameDir!\data_pack2\pc\!FileList[%%i].Name!_extract" /INCL=*.raw /SIZE=102400
CALL "!DatabaseDir!\_COMMON\CALL\ANNO_CallBefore.ex e" /FUNC=REN /PATH="!GameDir!\data_pack2\pc\!FileList[%%i].Name!_extract" /OLD=*.raw /NEW=*.wem
CALL "!BaseDir!\PRE\XTool_2020\XTool.exe" erase "!GameDir!\data_pack2\pc\!FileList[%%i].Name!_extract\*" "!GameDir!\data_pack2\pc\!FileList[%%i].Name!" "!GameDir!\cr_wwise.xtl"
ECHO.------------------------------------------------------------------------------------------------------
)
)


:Bink
SET /A "FileList.Count=5"
SET "FileList[1].Name=base-generic-002.rmdblob
SET "FileList[2].Name=base-generic-004.rmdblob
SET "FileList[3].Name=stream0-generic-010.rmdblob
SET "FileList[4].Name=stream0-generic-012.rmdblob
SET "FileList[5].Name=stream0-generic-014.rmdblob
FOR /L %%i IN (1, 1, !FileList.Count!) DO IF EXIST "!GameDir!\data_pack2\pc\!FileList[%%i].Name!" (
IF NOT EXIST "!GameDir!\data_pack2\pc\!FileList[%%i].Name!_extract" MKDIR "!GameDir!\data_pack2\pc\!FileList[%%i].Name!_extract"
IF NOT EXIST "!BackupDir!\data_pack2\pc\!FileList[%%i].Name!" ECHO Copying "..\data_pack2\pc\!FileList[%%i].Name!", please wait...
IF NOT EXIST "!BackupDir!\data_pack2\pc\!FileList[%%i].Name!" COPY /Z /Y "!GameDir!\data_pack2\pc\!FileList[%%i].Name!" "!BackupDir!\data_pack2\pc"
CALL "!BaseDir!\PRE\XTool_2020\XTool.exe" precomp -mbink -x"!GameDir!\data_pack2\pc\!FileList[%%i].Name!_extract" "!GameDir!\data_pack2\pc\!FileList[%%i].Name!"
CALL "!BaseDir!\PRE\XTool_2020\XTool.exe" erase "!GameDir!\data_pack2\pc\!FileList[%%i].Name!_extract\*" "!GameDir!\data_pack2\pc\!FileList[%%i].Name!" "!GameDir!\cr_bink.xtl"
ECHO.------------------------------------------------------------------------------------------------------
)


IF "%Wwise%"=="Y" (
:WemTool
CLS
TITLE Processing audio files, please wait...
REM"!BaseDir!\TOOLS\WEM\wem-packer.exe" -s -czstd-20 "!GameDir!"
)


:End
ENDLOCAL
EXIT /B

KaktoR 08-10-2026 05:28

Atomfall

I'll leave this one here for you. I don't know if there are any public tools for adpcm, I did not do any search.

https://i.imgur.com/0NcKqIp.png

ScOOt3r 08-10-2026 06:34

For atomfall i just used zlib+srep+lolz and the compressed results turned out great

Spinneret94 09-10-2026 07:47

Cuphead [The Delicious Last Course Included] - Build 20241530
 
1 Attachment(s)
Dixen already posted just the precompression proccess a few years ago, however I would like to share my own experience with this game!

Based on the latest GOG version.

.dll files:
Code:

srep+rzrmt
.mp3 - Optional Soundtrack
Code:

mpzmt
Rest of the files:
This game uses 1.7.5 of lz4 uploaded on the attachment below, used the Unity Plugin!
Code:

Streams: 103482 / 103485
  - lz4hc:l10 = 103482 (81.06%)
Patched: 0 (0.00 MB)

Size: 4.86 GB >> 13.5 GB
=======================
unity_old+srep+lolz

Notes: You need to set -c2mb in xtool, otherwise it will throw general decompression error.
Don't use zlib,reflate alongside with the unity plugin otherwise the decompressed output will be just abt 9 gb.

Input: 5.44 GB / 6.01 GB
Output: 3.74 GB / 4.2 GB

KaktoR 12-10-2026 09:11

No Man's Sky
v7.06
Wwise audio processed.

Code:

16:54:18 - Selected ARC/DS method for Data1a-01.bin was: wwise+xtool:c128mb:mzstd,l14:zstd_155:dd3:l10,d128mb
 16:54:18 - Selected ARC/DS method for Data1b-01.bin was: xtool:dd3:l10,d128mb
-----------------------------------------------------------------------------------------------------------------------------------------
 17:53:14 - Overall game size: 31,18 GB
 17:53:14 - Overall input size: 31,18 GB
 17:53:14 - Overall output size: 21,05 GB (Processed ratio 67.52%) (Ratio 67.52%)
 17:53:14 - Overall conversion time: 00:58:53

Decompression time 15min.

st0rm 12-10-2026 13:04

Thief - Complete Edition [2014]
 
Code:

18:25:30 - Selected ARC/DS method for Data1a-01.bin was: uelr+srep_new:392+lzma:a1:mfbt4:fb273:mc1000000000:lc8:64mb
23:03:03 - » Installation folder size: 24,05 GB
23:03:03 - » Compressed game size: 10,79 GB (Ratio 44.88%)

Nothing ripped or downgraded. Multi-8 languages.

hwang4 12-10-2026 23:02

Dragon's Dogma II - Dark Arisen
 
Which Version of "libzstd.dll" should i use ? thx!:)

Spinneret94 13-10-2026 01:05

^
The game is massive, can you provide a small sample file from the game?
ps: 300-400 mb should be more than enough.

KaktoR 13-10-2026 01:31

1.4.4 or 1.4.5

There's xtool library checker you know

wareck 13-10-2026 12:11

Clive Barker's Hellraiser - Revival
 
for Clive Barker's Hellraiser - Revival
I used this:
Quote:

08:23:46 - Selected ARC method for Data1.bin was: xtool:mkraken:mmermaid:core_2.9.10:lib_2:dd3+lolz: d72:mtt1:mt16:mc1023
08:23:46 - Selected ARC method for Data2.bin was: xtool:lm:c1536mb:mbk2:df20p:dd3
08:23:46 - Selected ARC method for Data3.bin was: xtool:mzlib:mpreflate:mpng:d1:dd3+lolz:d72:mtt1:mt 16:mc1023
20:40:52 - » Installation folder size: 72,44 GB
20:40:52 - » Data1.bin file size: 47,37 GB
20:40:52 - » Data2.bin file size: 4,80 GB
20:40:52 - » Data3.wrk file size: 229,98 MB
20:40:52 - » Compressed game size: 52,40 GB (Ratio 72.32%)

KaktoR 14-10-2026 11:31

Quote:

Originally Posted by Razor12911
for gears of war 4 I believe
unreal plugin does not work because that game uses a format that's in between ue3 and ue4
so you gotta use the unreal bms script
Bundles-UWP-30.pak is a problematic file that be annoying to xtool as such, you have to first edit the first 65536 bytes to some random shit, remove the zeroes

or that Bundles-UWP-30.pak should be processed separately
that's the solution before anybody asks...
oh and the method is lz4hc:l9

I will leave this here

dixen 16-10-2026 02:25

Quote:

Bundles-UWP-30.pak
All Bundles-UWP-##.pak doesn't work with QBMS

hwang4 16-10-2026 04:39

Valor Mortis
 
best method ? thx!


All times are GMT -7. The time now is 00:33.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2026, vBulletin Solutions Inc.
FileForums @ https://fileforums.com