Go Back   FileForums > Game Backup > PC Games > PC Games - CD/DVD Conversions > Conversion Tutorials
Register FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools Search this Thread Display Modes
  #151  
Old 13-04-2026, 12:02
Masquerade Masquerade is offline
Registered User
 
Join Date: Jan 2020
Location: Monte d'Or
Posts: 1,217
Thanks: 294
Thanked 1,404 Times in 637 Posts
Masquerade is on a distinguished road
Very nice tool wrathma and pleased someone has nulled the need for my bat2exe nightmare creation.
Reply With Quote
The Following User Says Thank You to Masquerade For This Useful Post:
wrathma (13-04-2026)
Sponsored Links
  #152  
Old 16-04-2026, 06:11
kj911 kj911 is offline
Registered User
 
Join Date: Apr 2010
Location: world
Posts: 231
Thanks: 158
Thanked 88 Times in 62 Posts
kj911 is on a distinguished road
wrathma: Many questions!

wem-packer: Why are both "oggre_enc/oggre_dec" binaries needed? Also, how are they 9KB larger than the original files?
In the original "ww2ogg" package, there is another "packed_codebooks.bin" file. Could the lack of this cause problems in some cases?
There is a 64-bit version of this program on GitHub, I won't link it directly, find it and take a look, you'll get the hang of it!

There is also a "revorb" project, isn't that better than "ww2ogg"? Instead of the HDiff package, would xdelta3 be a worse solution? (it runs natively on XP too.) HDiffPatch XP issues from GitHub. (Two x86_64/i686 XP binaries found the posts.)

Is there a way to configure the program, especially "hdiffz", to use very little memory when creating a diff file? (It should comfortably fit within the 512MB upto 1-2GB memory limit.) It is true that when applying a diff file as a patch, in principle a lot of memory is required.

You're obviously asking, why XP?? If everything is true, around 2005 (or earlier?) games that have *.wem files were released and regarding these files, it would be possible to make the repacks publishable/archivable back to XP.

There's a bug in the 32bit version! The "hdiffz" binary file in it is 64bit!

Yesterday, I managed to make all the binaries run on XP. Although, a full native XP-compatible HDiff/patchz binaries would be better case/idea.

In the case of v4.8.0, the "hpathcz.exe", with the simple NT6.0 -> NT5.1 trick, runs smoothly, while the larger "hdiffz.exe" file, I had to tinker a bit more with CFF Explorer + 3 extra DLL files required, to run it.

In the case of v4.11+ versions, the latter situation is present for both files.

The only task that remains to be solved is to create an EXE file that can be run natively under XP by the GO-compiler. (Why does this require the "bcryptprimitives.dll" file?)

Last edited by kj911; 16-04-2026 at 06:46.
Reply With Quote
The Following User Says Thank You to kj911 For This Useful Post:
wrathma (18-04-2026)
  #153  
Old 16-04-2026, 09:09
KaktoR's Avatar
KaktoR KaktoR is offline
Lame User
 
Join Date: Jan 2012
Location: From outer space
Posts: 4,684
Thanks: 1,106
Thanked 7,331 Times in 2,834 Posts
KaktoR is on a distinguished road
Added new oodle library
Some new libraries added. I don't know from where I have them since the last update. I am just collecting from games. I don't remember because I have not made notes about it.
__________________
Haters gonna hate
Reply With Quote
The Following User Says Thank You to KaktoR For This Useful Post:
Dunnowho69 (16-04-2026)
  #154  
Old 19-04-2026, 02:34
artag artag is offline
Registered User
 
Join Date: Nov 2016
Location: somewhere
Posts: 22
Thanks: 10
Thanked 4 Times in 4 Posts
artag is on a distinguished road
i don't know if this is the right place to ask, sorry if my english is bad:

wich is the safest and stable cls for precomp right now? (with stdio support) and which
precomp version should i use?

which is the safest cls for srep? (or maybe should i use srep without it). what version is the most stable until today ? 2.2, 3.93, 4.90?


can i remake my old repacks with xtool and forget about pzlib (for zlib streams of course) or pzlib should be used for old games or something like that?

i used lolz 21a7, is there a new updated version?

inno setup 6xxx is stable with isdone dll?

many thanks!
Reply With Quote
  #155  
Old 19-04-2026, 02:48
Masquerade Masquerade is offline
Registered User
 
Join Date: Jan 2020
Location: Monte d'Or
Posts: 1,217
Thanks: 294
Thanked 1,404 Times in 637 Posts
Masquerade is on a distinguished road
^^
For stdio precomp, you can use this version: https://fileforums.com/showthread.php?t=105410

CLS-SREP by ProFrager is still the best cls-srep for decompression. Use srep.exe for compression. 3.93b is alright for most data.

pzlib is obsolete, use xtool.

lolz v22c4b is the latest lolz version.

Inno Setup 6 does work with isdone, yes.
Reply With Quote
The Following User Says Thank You to Masquerade For This Useful Post:
artag (19-04-2026)
  #156  
Old 19-04-2026, 11:23
kj911 kj911 is offline
Registered User
 
Join Date: Apr 2010
Location: world
Posts: 231
Thanks: 158
Thanked 88 Times in 62 Posts
kj911 is on a distinguished road
wrathma: There are problems with this GOLang miracle! Does it need an AVX/AVX2-compatible processor? Or do the compiled binaries only work flawlessly on the given machine? What if I remove the GO compiler from the machine, will the binaries compiled until then break?

The GO compiler* used. (I also compiled THIS with it, on XP it prints out the Help nicely, that's all, when compiling (go.exe build source.go) it also prints out similar errors as what can be read below)

*Used last v1.26.2-1 i386 packages and separately compiled from sources. (This v1.24.4 from XP) from make EXEcutables.

The x32 binary you posted, writes these (under Win7 SP1 x64):
Code:
C:\wemtest>wem-packer.exe
Exception 0xc0000005 0x8 0x0 0x0
PC=0x0

internal/runtime/syscall/windows.asmstdcall(0x20)
        internal/runtime/syscall/windows/asm_windows_386.s:37 +0x2a fp=0x3afa08
sp=0x3afa04 pc=0xd1029a
eax     0x8
ebx     0x117c630
ecx     0x0
edx     0x3afa38
edi     0x3afa0c
esi     0x3afa70
ebp     0x3afa0c
esp     0x3afa00
eip     0x0
eflags  0x10202
cs      0x23
fs      0x53
gs      0x2b
The x64 version also produces similar and longer errors. (Checked on two different Win7 x64 PCs.)
If you chain the compiled program to the given machine/Windows files, it is very bad and makes the given program and the compiler unreliable.
If the source code were rewritten to c/c++, how much better would it be? (With AI, I had a CPP produced, but the program is faulty, it could only serve as some guidance for porting to CPP.)

In its current state, the CPP file only produces "apparently" working programs after compilation!

So far, I have produced 3 different packages from it, but under XP it throws errors similar to the above, the program prints the prompt in the console window regardless. Under Win7 there are no more strange errors, but as it turned out, if you have to wait for IO errors, HDD or the CPU is too busy, then it will make errors, there is a possibility of making errors. On a laptop with a 2-core CPU, not foolproof, on an 8C/16T Xeon PC, it seems to be better. That is, it doesn't unpack the files, it doesn't run the "hpatchz.exe" file at first, or some other anomaly.

First version maked from Win7 via GO v1.26.2-1: Link
Second version maked from Win7 via GO v1.24.4, hopefully targeted WinXP: Link

Masquerade: Do you still have the BAT2EXE program that you used to create the "WemTool.exe" file? Would you create it again? I'm attaching the patched/replaced/updated files. That way it will be 100% compatible with XP!
Attached Files
File Type: 7z WemTool_XP_compat_files.7z (1.17 MB, 3 views)
File Type: zip wempack2_cpp.zip (3.9 KB, 6 views)

Last edited by kj911; 19-04-2026 at 11:46. Reason: Added attachment
Reply With Quote
The Following User Says Thank You to kj911 For This Useful Post:
wrathma (20-04-2026)
  #157  
Old 19-04-2026, 14:46
panker1992's Avatar
panker1992 panker1992 is offline
Registered User
 
Join Date: Oct 2015
Location: Always Somewhere
Posts: 564
Thanks: 116
Thanked 881 Times in 319 Posts
panker1992 is on a distinguished road
i decided to pop some stuff after a long time, not only i updated my archiver to be a beast!

But i run a showcase to demonstrate the vast capabilities it can do!

i decided to run resident evil requiem precompression only
Attached Images
File Type: png image.png (37.1 KB, 186 views)
File Type: png image2.png (68.3 KB, 188 views)
File Type: png image3.png (61.1 KB, 188 views)
Attached Files
File Type: 7z re9_precompression_capabilities.7z (7.28 MB, 19 views)
__________________
My projects : Masked Compression, lzma2(xz) on Freearc, Zstd compressor for windows
My optimizations : packjpg.exe, zstd, lzham, precomp-dev-0.45.

Last edited by panker1992; 19-04-2026 at 14:59.
Reply With Quote
The Following 2 Users Say Thank You to panker1992 For This Useful Post:
Dunnowho69 (20-04-2026), Gehrman (05-05-2026)
  #158  
Old 19-04-2026, 23:16
artag artag is offline
Registered User
 
Join Date: Nov 2016
Location: somewhere
Posts: 22
Thanks: 10
Thanked 4 Times in 4 Posts
artag is on a distinguished road
Quote:
Originally Posted by Masquerade View Post
^^
For stdio precomp, you can use this version: https://fileforums.com/showthread.php?t=105410

CLS-SREP by ProFrager is still the best cls-srep for decompression. Use srep.exe for compression. 3.93b is alright for most data.

pzlib is obsolete, use xtool.

lolz v22c4b is the latest lolz version.

Inno Setup 6 does work with isdone, yes.
sorry, for the srep cls, are you talking about this one?:

https://krinkels.org/resources/cls-srep.261/

or are you talking about srep inside?

i cant donwload from krinkels, can you or anybody provide the md5 of the cls
so i can find it on my folders? (I surely have it, but I must be sure that it is the right one.)

i have lolz v22c4b, is everybody using it? is it stable?

thanks again

Last edited by artag; 19-04-2026 at 23:18.
Reply With Quote
  #159  
Old 20-04-2026, 05:27
wrathma wrathma is offline
Registered User
 
Join Date: Apr 2024
Location: Dhaka
Posts: 60
Thanks: 46
Thanked 40 Times in 23 Posts
wrathma is on a distinguished road
Quote:
Originally Posted by KaktoR View Post
Some small bug
Code:
Found 247 .wem files to pack (recursive)
Using 12 threads

[███████████████████████████████████████░] 246/247 (99.6%) ETA: 0s
All files packed successfully!
Also it would be good to give some information on how long the process took.

Suggestions:
Add -c option for hdiffz compression
Change skip -s option to skip files even if they are same size as input -> equal or greater then
thanks for your detailed review KaktoR. the progress bar was shamelessly copied from stackoverflow and unfortunately it
doesnt work great with multithreaded operations. so i removed it and added a simple progress bar. should be fixed by now. also
added -c option for hdiffz. everything you pass after this will be passed directly to hdiffz -c-{here}. example -
Code:
wem-packer.exe -czstd-22 wemfolder -> hdiffz -c-zstd-22 ...
Quote:
Originally Posted by kj911 View Post
wem-packer: Why are both "oggre_enc/oggre_dec" binaries needed? Also, how are they 9KB larger than the original files?

There is also a "revorb" project, isn't that better than "ww2ogg"? Instead of the HDiff package, would xdelta3 be a worse solution? (it runs natively on XP too.) HDiffPatch XP issues from GitHub. (Two x86_64/i686 XP binaries found the posts.)

Is there a way to configure the program, especially "hdiffz", to use very little memory when creating a diff file? (It should comfortably fit within the 512MB upto 1-2GB memory limit.) It is true that when applying a diff file as a patch, in principle a lot of memory is required.

The only task that remains to be solved is to create an EXE file that can be run natively under XP by the GO-compiler. (Why does this require the "bcryptprimitives.dll" file?)
both oggre encoder and decoder is required because sometimes doing oggre_enc and oggre_dec on a file gives different
files (crc error). but doing oggre_enc on the output of oggre_dec will always give same files. try this out yourself
on diffrent ogg files you will get it.
i have never used revord, i guess ww2ogg works so ill use it for now (rule of engineering, if it works dont touch it).

xdelta3 and hdiffz could be interchanged as they are basically doing the same thing. i have added a xdelta build for
you. keep in mind that xdelta produces a little bigger diff files compared to hdiffz. tho the difference is minor.
during my tests, the entire tool running on 20 threads didnt cross the 500 mb ram usage mark. stayed mostly on
380-400 mb of ram usage (wempak+hdiffz+oggre+ww2ogg). applying patch is easy while making patch is harder and takes
lot of ram. but when the files are small ram usage also goes down.

golang turned down support for windows xp long ago i forgot to mention that so this tool shouldnt really work on
windows xp. i dont even ship wemunpak on my repacks and neither should you. the binary is bloated with golang
bloat code. this is why i added a feature to make a batch file to run the entire decompression chain.
check the -n option. you can then ship the batch file with the tools (hpatchz+oggre) and a
parallel processor (prl or mparallel)

Quote:
Originally Posted by kj911 View Post
wrathma: There are problems with this GOLang miracle! Does it need an AVX/AVX2-compatible processor? Or do the compiled binaries only work flawlessly on the given machine? What if I remove the GO compiler from the machine, will the binaries compiled until then break?

The x64 version also produces similar and longer errors. (Checked on two different Win7 x64 PCs.)
If you chain the compiled program to the given machine/Windows files, it is very bad and makes the given program and the compiler unreliable.
If the source code were rewritten to c/c++, how much better would it be? (With AI, I had a CPP produced, but the program is faulty, it could only serve as some guidance for porting to CPP.)

In its current state, the CPP file only produces "apparently" working programs after compilation!
it doesnt need a avx/avx2 compatible processor to run. atleast the logic should
work on all processors. golang programs are compiled and they are standalone.
unlike python/nodejs you dont need a interpreter to be installed on the user end to run this.

honestly i dont see any reason to rewrite this tool into cpp/c. performance
difference would be minor or nonexistent, but this type of tool is not meant
to be coded in these low level languages. i have seen your cpp code, you mostly
copied my structure a to z but the encoding/decoding logic is not there. if you
complete this on c the binary sizes might be cut to half or even more. and it
would probably work on older systems. if you follow what i do, i pack the files
in a modern device and then ship the tools required with a batch file. well if
you want feel free to rewrite this tool in c/cpp.
Attached Files
File Type: 7z wempak_xdelta.7z (1.29 MB, 4 views)
Reply With Quote
The Following User Says Thank You to wrathma For This Useful Post:
KaktoR (20-04-2026)
  #160  
Old 20-04-2026, 06:36
KaktoR's Avatar
KaktoR KaktoR is offline
Lame User
 
Join Date: Jan 2012
Location: From outer space
Posts: 4,684
Thanks: 1,106
Thanked 7,331 Times in 2,834 Posts
KaktoR is on a distinguished road
Thanks for the update.

Code:
Found 1 .wem files to pack (recursive)
Using 12 threads

[0%] 0/1 Files processed, ETA: 0s
All files packed successfully in 0s!
It's just a visual bug, so nothing to deal with on tryhard level.
__________________
Haters gonna hate
Reply With Quote
  #161  
Old 20-04-2026, 15:42
kj911 kj911 is offline
Registered User
 
Join Date: Apr 2010
Location: world
Posts: 231
Thanks: 158
Thanked 88 Times in 62 Posts
kj911 is on a distinguished road
wrathma: Thanks for the detailed description!

Speaking of switches:

wem-packer: Here, using "-s" or "-s -b" does not cause any particular confusion, during compress, unlike the unpacker.

wem-unpacker: Do not use the "-b" switch here, otherwise it may happen that the first time it is run it will fail (referring to "hdiff/xdelta"), while the second time it will run without errors. It is better to use it without switches, except for the "-tN" switch.

This is related to the fact that the "original" *.wem file is also in the folder, which conflicts with one of the members of the hdiffz+oggre chain and should appear at the end of the process, as the new *.wem file. That is, wem-unpacker deletes the original *.wem file and exits here, without continuing to run the hdiffz+oggre chain to then finish the unpacking properly, as it should.

Code:
C:\>wem-packer.exe -s -b music_frontend
Found 4 .wem files to pack (recursive)
Using 2 threads with size check (keeping backups)


268707965.wem: output is bigger than input, skipped

681733649.wem: output is bigger than input, skipped

775589494.wem: output is bigger than input, skipped

All files packed successfully in 7s!
C:\>wem-unpacker.exe music_frontend
Found 1 .ww files to unpack (recursive)
Using 2 threads

[0%] 0/1 Files processed, ETA: 0s
Errors encountered:
  108187332.ww: xdelta failed
Completed with errors in %s
0s
C:\>wem-unpacker.exe music_frontend
Found 1 .ww files to unpack (recursive)
Using 2 threads

[0%] 0/1 Files processed, ETA: 0s
All files unpacked successfully 4s!
wempack-xdelta package: This doesn't run under Win7 x64 either. (Has anyone tested it under Win7, are you using the uploaded files or only Win10/11?)

Running the GO compiler with these switches, I managed to produce somewhat smaller EXEs. It should be 100% compatible with Win7 (also with 32-bit editions, theoretically going back to Vista, up to the early 32-bit version of Win10.) although, all "embedded binaries" are XP-compatible.
Code:
go build -a -gcflags=all="-l -B" -ldflags="-w -s" -o myapp main.go
The uploaded CPP file would require a more experienced programmer than me, this was also transpiled with AI, from GO to C++.

UPD: Embedding binary files via alternative methods: https://github.com/samuelngs/binary-go workable from these "wem-(un)packer's" project?
Attached Files
File Type: 7z wempack_x86_hdiff.7z (1.58 MB, 6 views)
File Type: 7z wempack_x86_xdelta.7z (1.08 MB, 5 views)

Last edited by kj911; 21-04-2026 at 15:23.
Reply With Quote
The Following User Says Thank You to kj911 For This Useful Post:
wrathma (22-04-2026)
  #162  
Old 22-04-2026, 11:12
wrathma wrathma is offline
Registered User
 
Join Date: Apr 2024
Location: Dhaka
Posts: 60
Thanks: 46
Thanked 40 Times in 23 Posts
wrathma is on a distinguished road
Quote:
Originally Posted by kj911 View Post
wempack-xdelta package: This doesn't run under Win7 x64 either. (Has anyone tested it under Win7, are you using the uploaded files or only Win10/11?)
that was my mistake. i compiled it with latest golang (v1.26.2) that doesnt
support windows 7. i tried to build it today with golang v1.20 on win10 and
the compiled exe works fine on windows 7. also one thing i noticed, that
xdelta or wemtool also doesnt work on windows xp (i might be missing out
something, check screenshots). i tried to compress the wem files in win 7 x64
vm it worked. then i generated a batch script and sent that to my win xp vm,
and then it gave me some errors that say xdelta wont work. unfortunately
thats something i cant fix.

Quote:
Originally Posted by kj911 View Post
Running the GO compiler with these switches, I managed to produce somewhat smaller EXEs. It should be 100% compatible with Win7 (also with 32-bit editions, theoretically going back to Vista, up to the early 32-bit version of Win10.) although, all "embedded binaries" are XP-compatible.
Code:
go build -a -gcflags=all="-l -B" -ldflags="-w -s" -o myapp main.go
UPD: Embedding binary files via alternative methods: https://github.com/samuelngs/binary-go workable from these "wem-(un)packer's" project?
i also used a similar build flag -
Code:
go build -ldflags="-s -w" -tags windows -trimpath -gcflags=all="-l -B" ...
i did not use -a because all it does is rebuild external packages (wempack doesnt
use any external packages). and for the alternative binary embedding method, i
dont see any reason touse it. i also used to use this binary-go library long ago but
recent golang updates made this one obsolete. now the functionality is built into
golang. this is what i use (you can see the first few lines of my code) -

Code:
//go:embed tools/ww2ogg.exe
var ww2ogg []byte

//go:embed tools/oggre_enc.exe
var oggre_enc []byte
it simply copies the raw data as a a binary stream while compiling the exe. and
when running the tool it simply copies the binary data from the exe to a temp
folder. see extractTools() from line 50-72 of wem-packer.go.




Last edited by wrathma; 22-04-2026 at 11:15. Reason: forgot to add screenshots
Reply With Quote
  #163  
Old 23-04-2026, 04:19
kj911 kj911 is offline
Registered User
 
Join Date: Apr 2010
Location: world
Posts: 231
Thanks: 158
Thanked 88 Times in 62 Posts
kj911 is on a distinguished road
Use the binary files I uploaded! I've sorted them and patched them so they can run under XP! (For use the 32bit wem-(un)packer releases.)

List: WemTool_XP_compat_files.7z (Although this pack was uploaded directly for Masquerade.) You can download the XP compatible "xdelta.exe" from the original site (marked "i686"). Or you can use the files below. (After running, copy them from the TEMP directory.) The my uploaded "mp.exe" XP-compatible.

wempack_x86_hdiff.7z
wempack_x86_xdelta.7z

If all *.exe files, fixed for XP, run without errors, then the batch script should run without errors when compressing and decompressing *.wem files. (I haven't even experimented with this yet.)

Win7 compatible GOLang (I already linked it earlier.): https://github.com/thongtech/go-legacy-win7
Reply With Quote
The Following User Says Thank You to kj911 For This Useful Post:
wrathma (25-04-2026)
  #164  
Old 25-04-2026, 01:16
wrathma wrathma is offline
Registered User
 
Join Date: Apr 2024
Location: Dhaka
Posts: 60
Thanks: 46
Thanked 40 Times in 23 Posts
wrathma is on a distinguished road
Quote:
Originally Posted by kj911 View Post
If all *.exe files, fixed for XP, run without errors, then the batch script should run without errors when compressing and decompressing *.wem files. (I haven't even experimented with this yet.)
your patched exes works under xp environment. i think you can use
the batch script function of wem-unpacker with your fixed winxp
executables to decompress wem files under winxp environment.

currently im working on editing my prl tool (a mparallel alternative)
to move to win32 system api calls instead of relying on crt libraries.
that way it can run natively on any post winxp system without needing
to install any msvcrt libraries. plus the file size will also shrink (it is still small).
Reply With Quote
  #165  
Old 27-04-2026, 08:49
wrathma wrathma is offline
Registered User
 
Join Date: Apr 2024
Location: Dhaka
Posts: 60
Thanks: 46
Thanked 40 Times in 23 Posts
wrathma is on a distinguished road
Experimental ZSTD decompressor

based on latest github/zstd-1.5.7 sources. needs thorough testing. use 1.5.7 to compress. examples -
Code:
> zstd_decompress.exe

 Experimental ZSTD Decompressor by SYMM

 usage: zstd_decompressor input output
 replace input and/or output with - to use stdin/stdout
Code:
> zstd_decompress.exe input.zst output.exe
output.exe : 126607283 bytes
Code:
zstd_decompress.exe - - < input.zst > output.exe
<stdin>: 126607283 bytes written
on benchmarks its almost 2x slower than the official zstd binary release (1.5mb). still it is fast with almost 350MBps decompression speed for 4GB uncompressed data on my test system (4c8t i3) on nvme.
Attached Files
File Type: 7z zstd_decompressor_a1.7z (62.0 KB, 7 views)
Reply With Quote
The Following 4 Users Say Thank You to wrathma For This Useful Post:
Dunnowho69 (23-05-2026), Gehrman (05-05-2026), KaktoR (27-04-2026), ScOOt3r (27-04-2026)
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Support and Help on Game Compression Tools and Methods Snake288 Conversion Tutorials 4 18-04-2020 06:30
Help choosing an mp3 player ikermalli Media Players 8 22-08-2010 23:15
[REQ] Pac-Man World 2 Starforce 3 Crack (RLD Tools inside) newone111 PC Games 48 21-03-2010 00:22
Frequently Asked Questions Joe Forster/STA PC Games - Frequently Asked Questions 0 29-11-2005 09:48
Daemon Tools Question Overthere PC Games 11 16-06-2003 17:02



All times are GMT -7. The time now is 14:02.


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