PDA

View Full Version : Universal Accelerator - cls-mtx.dll


BLACKFIRE69
10-07-2020, 02:54
Universal Accelerator - cls-mtx 2.0.0.7


A CLS library for speeding up some kind of tool.

https://i.imgur.com/n1D4HE6.png


Usage:
mtx:<Chunk_size>:<# of Threads>:<Compression_Method>

Example:

arc.exe a -ep1 -r -ed -s; -w.\temp -mmtx:c64m:t4:precomp Packed\Data0.bf "Pack0\*"

arc.exe a -ep1 -r -ed -s; -w.\temp -mmtx:c64m:t4:precomp+srep Packed\Data1.bf "Pack1\*"

arc.exe a -ep1 -r -ed -s; -w.\temp -mmtx:c64m:t4:bcm Packed\Data2.bf "Pack2\*"

arc.exe a -ep1 -r -ed -s; -w.\temp -mmtx:c64m:t4:bsc Packed\Data3.bf "Pack3\*"

arc.exe a -ep1 -r -ed -s; -w.\temp -mmtx:c64m:t4:mpz Packed\Data4.bf "Pack4\*"

arc.exe a -ep1 -r -ed -s; -w.\temp -mmtx:c64m:t4:rz Packed\Data5.bf "Pack5\*"

arc.exe a -ep1 -r -ed -s; -w.\temp -mmtx:c128m:t4:mcm Packed\Data6.bf "Pack6\*"

or Number of Threads as a percentage (v2.0.0.2)

arc.exe a -ep1 -r -ed -s; -w.\temp -mmtx:c64m:t75p:precomp Packed\Data0.bf "Pack0\*"

Arc.ini
[External compressor:rz64, mtxrz, mtx_rz]
header = 0
packcmd = "Res\Rz Compressor\rz64.exe" a -d 128m $$arcpackedfile$$.tmp $$arcdatafile$$.tmp
unpackcmd = "Res\Rz Compressor\rz64.exe" e -y $$arcpackedfile$$.tmp $$arcdatafile$$.tmp

[External compressor:bcm, mtx_bcm, mtxbcm]
header = 0
packcmd = "Res\Bcm Compressor\bcm.exe" -9 $$arcdatafile$$.tmp $$arcpackedfile$$.tmp
unpackcmd = "Res\Bcm Compressor\bcm.exe" -d $$arcpackedfile$$.tmp $$arcdatafile$$.tmp

[External compressor:bsc, mtxbsc, mtx_bsc]
header = 0
packcmd = Res\Bsc\bsc.exe e $$arcdatafile$$.tmp $$arcpackedfile$$.tmp -b64 -e2 -cf
unpackcmd = Res\Bsc\bsc.exe d $$arcpackedfile$$.tmp $$arcdatafile$$.tmp

[External compressor:precomp, mtxprecomp, mtx_precomp]
header = 0
packcmd = Res\Precomp\precomp.exe -cn -intense0 -o$$arcpackedfile$$.tmp $$arcdatafile$$.tmp
unpackcmd = Res\Precomp\precomp.exe -r -o$$arcdatafile$$.tmp $$arcpackedfile$$.tmp

[External compressor:mpz, mtxmpz, mtx_mpz]
header = 0
packcmd = Res\Mpz\mpz.exe c <stdin> <stdout>
unpackcmd = Res\Mpz\mpz.exe d <stdin> <stdout>

[External compressor:mcm, mtxmcm, mtx_mcm]
header = 0
packcmd = Res\Mcm\mcm.exe -x6 $$arcdatafile$$.tmp $$arcpackedfile$$.tmp
unpackcmd = Res\Mcm\mcm.exe d $$arcpackedfile$$.tmp $$arcdatafile$$.tmp

or
[External compressor:rz64, mtxrz, mtx_rz]
header = 0
packcmd = "Res\Rz Compressor\{compressor}" a -d 128m $$arcpackedfile$$.tmp $$arcdatafile$$.tmp
unpackcmd = "Res\Rz Compressor\{compressor}" e -y $$arcpackedfile$$.tmp $$arcdatafile$$.tmp

[External compressor:bcm, mtx_bcm, mtxbcm]
header = 0
packcmd = "Res\Bcm Compressor\{compressor}" -9 $$arcdatafile$$.tmp $$arcpackedfile$$.tmp
unpackcmd = "Res\Bcm Compressor\{compressor}" -d $$arcpackedfile$$.tmp $$arcdatafile$$.tmp

[External compressor:bsc, mtxbsc, mtx_bsc]
header = 0
packcmd = Res\Bsc\{compressor} e $$arcdatafile$$.tmp $$arcpackedfile$$.tmp -b64 -e2 -cf
unpackcmd = Res\Bsc\{compressor} d $$arcpackedfile$$.tmp $$arcdatafile$$.tmp

[External compressor:precomp, mtxprecomp, mtx_precomp]
header = 0
packcmd = Res\Precomp\{compressor} -cn -intense0 -o$$arcpackedfile$$.tmp $$arcdatafile$$.tmp
unpackcmd = Res\Precomp\{compressor} -r -o$$arcdatafile$$.tmp $$arcpackedfile$$.tmp

[External compressor:mpz, mtxmpz, mtx_mpz]
header = 0
packcmd = Res\Mpz\{compressor} c <stdin> <stdout>
unpackcmd = Res\Mpz\{compressor} d <stdin> <stdout>

[External compressor:mcm, mtxmcm, mtx_mcm]
header = 0
packcmd = Res\Mcm\{compressor} -x6 $$arcdatafile$$.tmp $$arcpackedfile$$.tmp
unpackcmd = Res\Mcm\{compressor} d $$arcpackedfile$$.tmp $$arcdatafile$$.tmp


* cls-mtx supports two methods.

1: The simple way

[External compressor:precomp, mtxprecomp, mtx_precomp]
header = 0
packcmd = "Res\Precomp\precomp.exe" -cn -intense0 -o$$arcpackedfile$$.tmp $$arcdatafile$$.tmp
unpackcmd = "Res\Precomp\precomp.exe" -r -o$$arcdatafile$$.tmp $$arcpackedfile$$.tmp


2: Alternative method

[External compressor:precomp, mtxprecomp, mtx_precomp]
header = 0
packcmd = "Res\Precomp\{compressor}" -cn -intense0 -o$$arcpackedfile$$.tmp $$arcdatafile$$.tmp
unpackcmd = "Res\Precomp\{compressor}" -r -o$$arcdatafile$$.tmp $$arcpackedfile$$.tmp


and the exe name must be "precomp.exe" (similar to the first one in section names.)



For Compression:
arc.ini
cls-mtx.dll

For Decompression:
cls.ini
arc.ini
cls-mtx.dll


More About cls-mtx.dll v.2.0.0.5 Update (https://fileforums.com/showpost.php?p=487948&postcount=49)
More About cls-mtx.dll v.2.0.0.6 Update (https://fileforums.com/showpost.php?p=487962&postcount=52)
More About cls-mtx.dll v.2.0.0.6 Update - New (https://fileforums.com/showpost.php?p=488064&postcount=57)
More About cls-mtx.dll v.2.0.0.7 Update (https://fileforums.com/showpost.php?p=488115&postcount=59)


Testing:

https://i.imgur.com/lR1WdaZ.png

Razor12911
10-07-2020, 16:25
:cool:

27385

darkwolves
10-07-2020, 22:58
another one? lol

BLACKFIRE69
11-07-2020, 07:51
Universal Accelerator - cls-mtx.dll 2 - New Update

cls-mtx.dll - update 2

what's new:

cls-mtx is re-coded.
Fixed some bugs for Razor Archive.
Optimized some performance.


ckeck the first post....

BLACKFIRE69
13-07-2020, 08:02
cls-mtx New Example Script

L0v3craft
15-07-2020, 08:22
Hi BLACKFIRE69. For razor only is more stable this tools or razorx? I want use the more stable tool (and bug free), thanks.

BLACKFIRE69
15-07-2020, 10:15
Hi BLACKFIRE69. For razor only is more stable this tools or razorx? I want use the more stable tool (and bug free), thanks.

@L0v3craft, both are stable. cls-mtx is the latest. you can use this instead of razorx. ;)

L0v3craft
16-07-2020, 01:58
@L0v3craft, both are stable. cls-mtx is the latest. you can use this instead of razorx. ;)

This one has the same limitation of razorx that we can't use for decompression a number of threads higher that the threads used for compression?

BLACKFIRE69
16-07-2020, 03:51
This one has the same limitation of razorx that we can't use for decompression a number of threads higher that the threads used for compression?

yes, the number of threads for decompression should be the same or less than that used in compression.

ex:
Compression: Threads = 8
Decompression: Threads = 8, 4 , 2 ….

BLACKFIRE69
16-07-2020, 20:36
it's possible that rename "mtx" to another file name.

ex:

cls-mtx.dll --> cls-rzx.dll
cls-mtx.dll --> cls-precompx.dll


file renaming must have both compression and decompression. and Pack.bat should be changed as follows.

ex:
arc.exe a -ep1 -r -ed -s; -w.\temp -m=mtx:c64m:t4:precomp+srep _Packed0\Data1.bf "Pack1\*"

change to

arc.exe a -ep1 -r -ed -s; -w.\temp -m=precompx:c64m:t4:precomp+srep _Packed0\Data1.bf "Pack1\*"


arc.exe a -ep1 -r -ed -s; -w.\temp -m=mtx:c64m:t4:rz _Packed0\Data1.bf "Pack1\*"

change to

arc.exe a -ep1 -r -ed -s; -w.\temp -m=rzx:c64m:t4:rz _Packed0\Data1.bf "Pack1\*"

dixen
16-07-2020, 22:10
Hmm..In my pack.bat

Compressing 2 files, 178,957,280 bytes
Compressing road_beach_tracks_45_3_3.dds
0%cls-mtx
Unknown compression method: rz
0%

Compressing road_concrete_stripes_new_3_2.dds
Compressed 2 files, 178,957,280 => 40 bytes. Ratio 0.00%
Compression time: cpu 0.20 sec/real 8.28 sec = 2%. Speed 21.62 mB/s
All OKrename cls not help
In .bat from topic - all work

Masquerade
16-07-2020, 23:13
Hmm..In my pack.bat

rename cls not help
In .bat from topic - all work
This happens for me too, the bat has to be executed from the same folder as arc.exe + cls-mtx.dll otherwise you get the unknown method error.

BLACKFIRE69
17-07-2020, 00:09
guys, arc.exe and cls-mtx.dll must be in the same folder. it's not from me, it's from the FreeArc. :rolleyes:

BLACKFIRE69
17-07-2020, 00:36
Hmm..In my pack.bat

rename cls not help
In .bat from topic - all work

@dixen, no you can rename it and, just rename only the cls-mtx.dll file. don't put it in another folder.

Masquerade
18-07-2020, 01:23
guys, arc.exe and cls-mtx.dll must be in the same folder. it's not from me, it's from the FreeArc. :rolleyes:

Yes, I already know this.

I have it this way, let me show an example:

Folder
---------> Binaries
| - - - - - - - - ->Arc.exe
| - - - - - - - - ->Arc.ini
| - - - - - - - - ->cls-mtx.dll
| - - - - - - - - ->rz.exe
| - - - - - - - - ->Pack.bat
|
----------> Alt
- - - - - - - - - ->Pack2.bat
Now, Pack2.bat is set to run arc.exe inside the binaries folder:

@echo off
..\Binaries\Arc a -wTemp -mmtx:c64m:t16:rz (as well as the input output files)
But if we run this, we get uknown method error from mtx.

If we run pack.bat inside the binaries folder, it runs normally. Arc.ini is written correctly. Other cls based compressors like bpk work just fine.

BLACKFIRE69
18-07-2020, 06:03
Yes, I already know this.

I have it this way, let me show an example:

Folder
---------> Binaries
| - - - - - - - - ->Arc.exe
| - - - - - - - - ->Arc.ini
| - - - - - - - - ->cls-mtx.dll
| - - - - - - - - ->rz.exe
| - - - - - - - - ->Pack.bat
|
----------> Alt
- - - - - - - - - ->Pack2.bat
Now, Pack2.bat is set to run arc.exe inside the binaries folder:

@echo off
..\Binaries\Arc a -wTemp -mmtx:c64m:t16:rz (as well as the input output files)
But if we run this, we get uknown method error from mtx.

If we run pack.bat inside the binaries folder, it runs normally. Arc.ini is written correctly. Other cls based compressors like bpk work just fine.


@Masquerade,
this may work as expected :rolleyes:

_pack.bat :-


@echo off

cd /d "Binaries"
arc.exe a -ep1 -r -ed -s; -w.\temp -m=mtx:c64m:t4:rz ..\Packed\Data5.bf "Pack5\*"

pause&exit

KaktoR
18-07-2020, 06:13
Ehm....

Binaries\arc.exe a -ep1 .....................

Masquerade
18-07-2020, 09:26
Ehm....

Binaries\arc.exe a -ep1 .....................
The text in my earlier message was just an example, so I didn't inentionally leave out any args - the full command:

"..\Binaries\arc.exe" a -ep1 -dses --dirs -s; -lc- -di -i2 -r -w.\Temp -m%comp% "%cd%\Out\MASQUERADE-Data_%num%.MSQ" "%cd%\In\%num%\*

If I run the bat file in the alternate folder, I still get the error:

https://anonfiles.com/pdr8I8G9od/Test_7z

Try this, open the bat file and type "00" to select the archive data, then type "mtx:c64m:t16:rz" and watch as you get the unknown method error

BLACKFIRE69
18-07-2020, 20:05
The text in my earlier message was just an example, so I didn't inentionally leave out any args - the full command:

"..\Binaries\arc.exe" a -ep1 -dses --dirs -s; -lc- -di -i2 -r -w.\Temp -m%comp% "%cd%\Out\MASQUERADE-Data_%num%.MSQ" "%cd%\In\%num%\*

If I run the bat file in the alternate folder, I still get the error:

https://anonfiles.com/pdr8I8G9od/Test_7z

Try this, open the bat file and type "00" to select the archive data, then type "mtx:c64m:t16:rz" and watch as you get the unknown method error





@echo off

set /p num=Enter output archive name:
set/p comp= Enter Compression Method:

set "InputDir=%~dp0In"
set "OutputDir=%~dp0Out"

cd /d "C:\Users\BLACKFIRE69\Downloads\Compressed\Test\Bin aries"

arc.exe a -ep1 -dses --dirs -s; -lc- -di -i2 -r -w.\Temp -m%comp% "%OutputDir%\MASQUERADE-Data_%num%.MSQ" "%InputDir%\%num%\*"

pause&exit

BLACKFIRE69
18-07-2020, 21:54
New Update v.2.0.0.1

what's new,


Added the ability to select a number of threads as a percentage.



Compression: Pack.bat


arc.exe a -ep1 -r -ed -s; -w.\temp -m=mtx:c64m:t8:precomp Packed\Data0.bf "Pack\*"

or

arc.exe a -ep1 -r -ed -s; -w.\temp -m=mtx:c64m:t100p:precomp Packed\Data0.bf "Pack\*"


Decompression: cls.ini

[mtx]
Threads=4

or

[mtx]
Threads=50p

Razor12911
19-07-2020, 15:38
@echo off

set /p num=Enter output archive name:
set/p comp= Enter Compression Method:

set "InputDir=%~dp0In"
set "OutputDir=%~dp0Out"

cd /d "C:\Users\BLACKFIRE69\Downloads\Compressed\Test\Bin aries"

arc.exe a -ep1 -dses --dirs -s; -lc- -di -i2 -r -w.\Temp -m%comp% "%OutputDir%\MASQUERADE-Data_%num%.MSQ" "%InputDir%\%num%\*"

pause&exit

I think you made cls without considering that Current directory can change, simple fix is the usage of SetCurrentDir function when your cls launches like this

SetCurrentDir(ExtractFilePath(GetModuleName));

where GetModuleName is
function GetModuleName: string;
var
szFileName: array [0 .. MAX_PATH] of char;
begin
FillChar(szFileName, sizeof(szFileName), #0);
GetModuleFileName(hInstance, szFileName, MAX_PATH);
Result := szFileName;
end;

A better fix is directly execute every single exe file with full paths and set the work directory too

BLACKFIRE69
20-07-2020, 01:15
New Update v.2.0.0.2

what's new,


Fixed for current directory.
Now temporary folder name corresponds to the DLL name. (cls-mpzx.dll --> cls-mpzx_tmp)


Thanks to @Razor12911 , @Masquerade.





I have it this way, let me show an example:

Folder
---------> Binaries
| - - - - - - - - ->Arc.exe
| - - - - - - - - ->Arc.ini
| - - - - - - - - ->cls-mtx.dll
| - - - - - - - - ->rz.exe
| - - - - - - - - ->Pack.bat
|
----------> Alt
- - - - - - - - - ->Pack2.bat
Now, Pack2.bat is set to run arc.exe inside the binaries folder:

@echo off
..\Binaries\Arc a -wTemp -mmtx:c64m:t16:rz (as well as the input output files)
But if we run this, we get uknown method error from mtx.

If we run pack.bat inside the binaries folder, it runs normally. Arc.ini is written correctly. Other cls based compressors like bpk work just fine.


Now it is fixed. :D

dixen
20-07-2020, 03:22
Well....Add fixed cls-mtx and..

FreeArc 0.67 (September 13 2014) creating archive: ..\Packed\Data0.bf
WARNING: no files, erasing empty archive
There were 1 warning(s)


delete cls-mtx.dll

ALL OK

BLACKFIRE69
20-07-2020, 06:00
Well....Add fixed cls-mtx and..


If there is no "Pack0" folder, this will happen.

Bin\arc.exe a -ep1 -r -ed -s; -w.\temp -m=mtx:c64m:t8:mpz ..\Packed\Data0.bf "Pack0\*"

FreeArc shows an error (warning: no files) if there is no existing folder. so try to change the input.

for my example (v.2.0.0.2), Create a folder named "Pack0" next to the "Bin" folder. Add your files there. and change your input in Pack.bat "Pack0\*" to "..\Pack0\*"

dixen
20-07-2020, 07:11
BLACKFIRE69
That's ok))
PackEXE\arc.exe a -s; -ep1 -di -i2 -r -ed -w.\Temp -msrep+mtx:c64m:t4:rz K:\DataRZ.dxn ..\PackedData\*.*
And all fine)
Thx)

BLACKFIRE69
21-07-2020, 22:11
New Update - cls-mtx.dll v.2.0.0.3


Changes:

✪ Improved the processing speed.
-- some implementations has been changed.

✪ Dll file can be renamed to a another name.
-- cls-mtx.dll --> cls-rzx.dll.

✪ The new update allows tools to be executed from a sub-folder.


before
...
packcmd = {compressor} -cn -intense0 -o$$arcpackedfile$$.tmp $$arcdatafile$$.tmp
...

now
...
packcmd = Resources\Precomp\{compressor} -cn -intense0 -o$$arcpackedfile$$.tmp $$arcdatafile$$.tmp
...




✪ Users can use a custom configuration file instead of "arc.ini"
-- If you use a custom configuration file (config0.ini) for compression / decompression commands instead of "arc.ini", the new update will allow you to define that file as the default config file.

-- to define a new config file, (check the example in .rar file)

step1:
Create an "ini" file and name it the same as the "dll" file name.
(cls-mtx.dll --> cls-mtx.ini), (cls-rzx.dll --> cls-rzx.ini).

step2:
Add the following section to it.

--------------------------------------------------------------------------
; if dll file is cls-mtx.dll then
[mtx]
cfgFile=config0.ini

--------------------------------------------------------------------------
; if dll file is cls-rzx.dll then
[rzx]
cfgFile=config0.ini
--------------------------------------------------------------------------



✪ The section name of "Cls.ini" should be the same as the file name "dll".

(check the example in .rar file)

--------------------------------------------------------------------------
; if dll file is cls-mtx.dll then section name in the cls.ini should be as the same.
[mtx]
Threads=50p

--------------------------------------------------------------------------
; if dll file is cls-rzx.dll then section name in the cls.ini should be as the same.
[rzx]
Threads=4
--------------------------------------------------------------------------

Masquerade
09-09-2020, 01:07
Hello BLACKFIRE69, a suggestion for your tool, the ability to change temp path?

e.g.

CLS.INI:

[mtx]
Threads=100p
Temppath=<insert>

That way in inno setup we can run a line:

SetIniString('mtx', 'TempPath', ExpandConstant('{app}\'), ExpandConstant('{tmp}\CLS.ini'));

This way the temp path can be set to the actual unpack folder, instead of the {tmp} folder like how it is currently. This is a helpful feature since people may not have much space on their primary system drive, or do not want their system drive to be used during an install.

BLACKFIRE69
09-09-2020, 07:35
Hello BLACKFIRE69, a suggestion for your tool, the ability to change temp path?

e.g.

CLS.INI:

[mtx]
Threads=100p
Temppath=<insert>

That way in inno setup we can run a line:

SetIniString('mtx', 'TempPath', ExpandConstant('{app}\'), ExpandConstant('{tmp}\CLS.ini'));

This way the temp path can be set to the actual unpack folder, instead of the {tmp} folder like how it is currently. This is a helpful feature since people may not have much space on their primary system drive, or do not want their system drive to be used during an install.

@Masquerade, i can do that ;)

BLACKFIRE69
09-09-2020, 07:45
New Update - cls-mtx.dll v.2.0.0.4


Changes:

✪ Dll file can be renamed to a another name.
-- cls-mtx.dll --> cls-rzx.dll.

✪ The mtx allows tools to be executed from a sub-folder.


before
...
packcmd = {compressor} -cn -intense0 -o$$arcpackedfile$$.tmp $$arcdatafile$$.tmp
...

now
...
packcmd = Resources\Precomp\{compressor} -cn -intense0 -o$$arcpackedfile$$.tmp $$arcdatafile$$.tmp
...




✪ Users can use a custom configuration file instead of "arc.ini"
-- If you use a custom configuration file (config0.ini) for compression / decompression commands instead of "arc.ini", the new update will allow you to define that file as the default config file.

-- to define a new config file, (check the example in .rar file)

step1:
Create an "ini" file and name it the same as the "dll" file name.
(cls-mtx.dll --> cls-mtx.ini), (cls-rzx.dll --> cls-rzx.ini).

step2:
Add the following section to it.

--------------------------------------------------------------------------
; if dll file is cls-mtx.dll then
[mtx]
cfgFile=config0.ini

--------------------------------------------------------------------------
; if dll file is cls-rzx.dll then
[rzx]
cfgFile=config0.ini
--------------------------------------------------------------------------



✪ The section name of "Cls.ini" should be the same as the file name "dll".

(check the example in .rar file)

--------------------------------------------------------------------------
; if dll file is cls-mtx.dll then section name in the cls.ini should be as the same.
[mtx]
Threads=50p

--------------------------------------------------------------------------
; if dll file is cls-rzx.dll then section name in the cls.ini should be as the same.
[rzx]
Threads=4
--------------------------------------------------------------------------


✪ Now it is possible to change TmpPath in decompression using cls.ini.


cls.ini

[mtx]
Threads=4
TmpPath=D:\Games\TmpTest

Masquerade
10-09-2020, 09:18
@BLACKFIRE69

Thanks for the addition of the tool, however there has not been a change as highlighted in the below image.

https://i.imgur.com/SQ3xieL.png

In the left panel we see my Temp Folder where the CLS-MTX unpack folder.

In CLS.ini we see that the temp path is in my install path, G:\Games\Minecraft Dungeons

There is no unpack folder in the G:\Games\Minecraft Dungeons Folder

BLACKFIRE69
10-09-2020, 11:26
@BLACKFIRE69

Thanks for the addition of the tool, however there has not been a change as highlighted in the below image.

https://i.imgur.com/SQ3xieL.png

In the left panel we see my Temp Folder where the CLS-MTX unpack folder.

In CLS.ini we see that the temp path is in my install path, G:\Games\Minecraft Dungeons

There is no unpack folder in the G:\Games\Minecraft Dungeons Folder


@Masquerade
the slash which is at the end of the line shouldn't be there.

means,
cls.ini

TmpPath=G:\Games\Minecraft Dungeons

Not
TmpPath=G:\Games\Minecraft Dungeons\

because MTX detects it as G:\Games\Minecraft Dungeons\\. so finally he decides , "the TmpPath does not exist..." :cool:

that was my mistake, i'll correct it with another update... ;)

and the other things is, the folder ( G:\Games\Minecraft Dungeons ) must be present when running MTX. because MTX doesn't create a folder other than "CLS-MTX".

just test it with already created folder....

Masquerade
10-09-2020, 11:37
Alright, I repaired the code line in my setup, but same problem, mtx folder is created in temp directory.

https://i.imgur.com/7FF4eKA.png

The folder always is created by the setup as decompression begins. Even still in the above example I used oggre in mask so the oggre decompressor works first - so the folder G:\Games\Factorio does definitely exist.

BLACKFIRE69
11-09-2020, 06:32
Alright, I repaired the code line in my setup, but same problem, mtx folder is created in temp directory.

https://i.imgur.com/7FF4eKA.png

The folder always is created by the setup as decompression begins. Even still in the above example I used oggre in mask so the oggre decompressor works first - so the folder G:\Games\Factorio does definitely exist.

ok, I'll take a look.....

the drive G , is it a portable drive?

Masquerade
11-09-2020, 08:10
Yes sir, it is a USB3.0 drive plugged into USB3.0 motherboard port.

BLACKFIRE69
12-09-2020, 09:07
Yes sir, it is a USB3.0 drive plugged into USB3.0 motherboard port.

Masquerade,
i did a few tests. but i never saw that issue.

could you do a little test to figure it out?
ok then follow the steps below... (i'll attach the test files.)



1. compress some files using my compressor and the compression method should be " bcm " only.

2. install "Data0.bf" with my test script. ( remember to never edit the test "Script.iss". )

3. select your USB drive as the installation directory. (F:\ or something).

let's see the results.

Masquerade
12-09-2020, 15:13
@BLACKFIRE69

Following your instruction, it works:

https://i.imgur.com/gsSjAVK.png

BLACKFIRE69
12-09-2020, 21:21
@BLACKFIRE69

Following your instruction, it works:

https://i.imgur.com/gsSjAVK.png

cls-mtx.dll that i gave is original (v2.0.0.4), i didn't change anything.

so i think you need to double check your "Script.iss". :D


or you forgot to replace the old "cls-mtx.dll" with the new version (v2.0.0.4). :cool:

BLACKFIRE69
13-09-2020, 11:55
cls-mtx.dll also supports "mcm".



arc.ini:
[External compressor:mcm]
header = 0
packcmd = Resources\Mcm\{compressor} -x6 $$arcdatafile$$.tmp $$arcpackedfile$$.tmp
unpackcmd = Resources\Mcm\{compressor} d $$arcpackedfile$$.tmp $$arcdatafile$$.tmp

Pack.bat
arc.exe a -ep1 -r -ed -s; -w.\temp -m=srep+mtx:c128m:t100p:mcm "..\Packed\Data0.bf" "..\Pack0\*"

BLACKFIRE69
13-09-2020, 11:57
any suggestions for the next update of "cls-mtx"? :D

Cesar82
13-09-2020, 12:35
any suggestions for the next update of "cls-mtx"? :D

If you are not going to increase the size of your library a lot, even if it does not serve to increase performance, it could include support for all the most used methods that would dispense with the use of other CLS.


Does your cls-mtx.dll library allow me to extract using executables in folders?
I want to include a mode with decompressors in folders in the CIU and I think that the other CLS don't work the way I need.

Creating folder structures as:
Compressors\PRECOMP\<precomp files>
Compressors\MPZAPI\<mpz files>
Compressors\RAZOR\<rz files>


In the Arc.ini file informing the folder containing the executables, like this:
[External compressor:precomp]
header = 0
unpackcmd = "PRECOMP\{compressor}" -r -o$$arcdatafile$$.tmp $$arcpackedfile$$.tmp

[External compressor:mpz]
header = 0
unpackcmd = "MPZAPI\{compressor}" d <stdin> <stdout>

[External compressor:rz]
header = 0
unpackcmd = "RAZOR\{compressor}" e -y $$arcpackedfile$$.tmp $$arcdatafile$$.tmp


Using in the Inno Setup script like this:
[Files]
Source: cls-mtx.dll; Flags: dontcopy;
Source: CLS.ini; Flags: dontcopy;
Source: Arc.ini; Flags: dontcopy;
Source: UnARC.dll; Flags: dontcopy;
Source: ISDone.dll; Flags: dontcopy;
Source: "Compressors\*"; Flags: dontcopy createallsubdirs recursesubdirs;

[code ]
function InitializeSetup(): Boolean;
begin
ExtractTemporaryFile('cls-mtx.dll');
ExtractTemporaryFile('CLS.ini');
ExtractTemporaryFile('Arc.ini');
ExtractTemporaryFile('UnARC.dll');
ExtractTemporaryFile('ISDone.dll');

ExtractTemporaryFiles('{tmp}\Compressors\*');
end;

BLACKFIRE69
13-09-2020, 20:37
If you are not going to increase the size of your library a lot, even if it does not serve to increase performance, it could include support for all the most used methods that would dispense with the use of other CLS.


Does your cls-mtx.dll library allow me to extract using executables in folders?
I want to include a mode with decompressors in folders in the CIU and I think that the other CLS don't work the way I need.

Creating folder structures as:
Compressors\PRECOMP\<precomp files>
Compressors\MPZAPI\<mpz files>
Compressors\RAZOR\<rz files>


In the Arc.ini file informing the folder containing the executables, like this:
[External compressor:precomp]
header = 0
unpackcmd = "PRECOMP\{compressor}" -r -o$$arcdatafile$$.tmp $$arcpackedfile$$.tmp

[External compressor:mpz]
header = 0
unpackcmd = "MPZAPI\{compressor}" d <stdin> <stdout>

[External compressor:rz]
header = 0
unpackcmd = "RAZOR\{compressor}" e -y $$arcpackedfile$$.tmp $$arcdatafile$$.tmp


Using in the Inno Setup script like this:
[Files]
Source: cls-mtx.dll; Flags: dontcopy;
Source: CLS.ini; Flags: dontcopy;
Source: Arc.ini; Flags: dontcopy;
Source: UnARC.dll; Flags: dontcopy;
Source: ISDone.dll; Flags: dontcopy;
Source: "Compressors\*"; Flags: dontcopy createallsubdirs recursesubdirs;

[code ]
function InitializeSetup(): Boolean;
begin
ExtractTemporaryFile('cls-mtx.dll');
ExtractTemporaryFile('CLS.ini');
ExtractTemporaryFile('Arc.ini');
ExtractTemporaryFile('UnARC.dll');
ExtractTemporaryFile('ISDone.dll');

ExtractTemporaryFiles('{tmp}\Compressors\*');
end;




Cesar,
"cls-mtx.dll" supports this feature, since v2.0.0.3.

and unpackcmd should be like, ( without inverted commas (") ) (i'll fix this issue in the next update.)
[External compressor:bcm]
header = 0
unpackcmd = Res\Bcm\{compressor} -d $$arcpackedfile$$.tmp $$arcdatafile$$.tmp

not

unpackcmd = "Res\Bcm\{compressor}" -d $$arcpackedfile$$.tmp $$arcdatafile$$.tmp


here is the full example, ;)

cls-mtx Example - Cesar.rar (https://drive.google.com/file/d/14inSZNkejQk5raKmXkwqc7GF8pHipPra/view?usp=sharing)

Cesar82
13-09-2020, 21:36
Cesar,
"cls-mtx.dll" supports this feature, since v2.0.0.3.

and unpackcmd should be like, ( without inverted commas (") ) (i'll fix this issue in the next update.)

not

unpackcmd = "Res\Bcm\{compressor}" -d $$arcpackedfile$$.tmp $$arcdatafile$$.tmp

Without double quotes (") in the path names, if the path has spaces then I think it will detect the path to the space and the rest will be interpreted as another parameter causing errors.
[External compressor:bcm]
header = 0
unpackcmd = Res\Bcm Compressor\{compressor} -d $$arcpackedfile$$.tmp $$arcdatafile$$.tmp

I will look forward to future updates.
Thank you.

BLACKFIRE69
13-09-2020, 22:51
Without double quotes (") in the path names, if the path has spaces then I think it will detect the path to the space and the rest will be interpreted as another parameter causing errors.
[External compressor:bcm]
header = 0
unpackcmd = Res\Bcm Compressor\{compressor} -d $$arcpackedfile$$.tmp $$arcdatafile$$.tmp

I will look forward to future updates.
Thank you.


that's not a problem. you can set the path without ("). (note that: for cls-mtx :cool:)


like this..

[External compressor:bcm]
header = 0
packcmd = Res\Bcm Compressor\{compressor} -9 $$arcdatafile$$.tmp $$arcpackedfile$$.tmp
unpackcmd = Res\Bcm Compressor\{compressor} -d $$arcpackedfile$$.tmp $$arcdatafile$$.tmp

works well....

Cesar82
13-09-2020, 23:19
that's not a problem. you can set the path without ("). (note that: for cls-mtx :cool:)


like this..

[External compressor:bcm]
header = 0
packcmd = Res\Bcm Compressor\{compressor} -9 $$arcdatafile$$.tmp $$arcpackedfile$$.tmp
unpackcmd = Res\Bcm Compressor\{compressor} -d $$arcpackedfile$$.tmp $$arcdatafile$$.tmp

works well....
Thank you!
But if the path was something like that, would it work too?
[External compressor:bcm]
header = 0
packcmd = Res\Bcm compressor\bcm -9 $$arcdatafile$$.tmp $$arcpackedfile$$.tmp
unpackcmd = Res\Bcm -decompressor\bcm -d $$arcpackedfile$$.tmp $$arcdatafile$$.tmp

BLACKFIRE69
14-09-2020, 01:48
Thank you!
But if the path was something like that, would it work too?
[External compressor:bcm]
header = 0
packcmd = Res\Bcm compressor\bcm -9 $$arcdatafile$$.tmp $$arcpackedfile$$.tmp
unpackcmd = Res\Bcm -decompressor\bcm -d $$arcpackedfile$$.tmp $$arcdatafile$$.tmp


yup, of course ;).
those characters must be valid characters.


but this is wrong.
packcmd = Res\Bcm compressor\bcm -9 $$arcdatafile$$.tmp $$arcpackedfile$$.tmp

for cls-mtx:

[External compressor:bcm]
header = 0
packcmd = Res\Bcm compressor\{compressor} -9 $$arcdatafile$$.tmp $$arcpackedfile$$.tmp

Cesar82
14-09-2020, 09:21
for cls-mtx:

[External compressor:bcm]
header = 0
packcmd = Res\Bcm compressor\{compressor} -9 $$arcdatafile$$.tmp $$arcpackedfile$$.tmp[/CODE]

I understand what you said, but it would be useful to be able to use it as used in arc.ini for other compressors that do not use CLS-MTX.dll.

Currently in CIU it uses this configuration mode that allows the user to inform the command in more than one way.
[External compressor:rz,RZ,razor,RAZOR]
header = 0
packcmd = "RAZOR\RZ_x64" a -y -d {option} $stdio$ <stdin> <stdout>
unpackcmd = "RAZOR\RZ_x64" e -y $stdio$ <stdin> <stdout>
For 32-bit version the executables are "RZ_x86.exe"

If possible, it would be very useful to be able to configure this way (in the next update of CLS-MTX.dll).
It also needed to allow the use of compressors without the CLS-MTX, such as using for mtx: [External compressor: mtxrz, mtxrazor, mtx_razor, mtx_rz]
and for RAZOR norml to use [External compressor:rz,RZ,razor,RAZOR]
This same name variation would be used for other executables like mpzapi and perhaps some others.

BLACKFIRE69
14-09-2020, 10:04
I understand what you said, but it would be useful to be able to use it as used in arc.ini for other compressors that do not use CLS-MTX.dll.

Currently in CIU it uses this configuration mode that allows the user to inform the command in more than one way.
[External compressor:rz,RZ,razor,RAZOR]
header = 0
packcmd = "RAZOR\RZ_x64" a -y -d {option} $stdio$ <stdin> <stdout>
unpackcmd = "RAZOR\RZ_x64" e -y $stdio$ <stdin> <stdout>
For 32-bit version the executables are "RZ_x86.exe"

If possible, it would be very useful to be able to configure this way (in the next update of CLS-MTX.dll).
It also needed to allow the use of compressors without the CLS-MTX, such as using for mtx: [External compressor: mtxrz, mtxrazor, mtx_razor, mtx_rz]
and for RAZOR norml to use [External compressor:rz,RZ,razor,RAZOR]
This same name variation would be used for other executables like mpzapi and perhaps some others.


all right then. i'm working on it. :D

(i've a few exams in the coming days. so it may not be quick. :o)

BLACKFIRE69
14-09-2020, 16:38
cls- mtx Update v2.0.0.5




New update for "cls-mtx".




What's New:


"{Compressor}" is no longer required.
Can use more than one name.
Known issues have been resolved.
Please use (") for directories with spaces.



New Arc.ini (or any config.ini):

[External compressor:mtx_rz, mtx_razor, mtxrz]
header = 0
packcmd = "Res\Rz Compressor\rz64.exe" a -d 128m $$arcpackedfile$$.tmp $$arcdatafile$$.tmp
unpackcmd = "Res\Rz Compressor\rz64.exe" e -y $$arcpackedfile$$.tmp $$arcdatafile$$.tmp


Inputs: (that supports)

1. $$arcdatafile$$.tmp
2. <stdin>


Outputs: (that supports)

1. $$arcpackedfile$$.tmp
2. <stdout>

Masquerade
15-09-2020, 10:34
@BLACKFIRE69

I have messaged you my setup, I copied the line from your SetIniString example but it does not work.

Maybe a second pair of eyes to look could really help.

It's on line 1950

BLACKFIRE69
15-09-2020, 13:03
@BLACKFIRE69

I have messaged you my setup, I copied the line from your SetIniString example but it does not work.

Maybe a second pair of eyes to look could really help.

It's on line 1950

ok, check the inbox. :p

BLACKFIRE69
16-09-2020, 06:43
cls-mtx New Update v2.0.0.6



What's New:

Some improvements.
Minor issues fixed.
Not case sensitive as before. :p




and i was able to reduce the final size from "191 kb" to "100 kb". :D


_

Masquerade
16-09-2020, 13:01
@BLACKFIRE69

Thank you for the update, however a huge bug has been introduced. Nothing has changed in my arc.ini since I added the new version to my compressor:

Compressed 119 files, 13,245,186,961 => 1,672 bytes. Ratio 0.00%
Compression time: cpu 14.33 sec/real 483.57 sec = 3%. Speed 27.39 mB/s
All OK

Using method: mtx:c64m:t16:rz

The folder being compressed is ~700MB and sometimes it says all 700MB becomes 1kb, other times like the above it only recognises some of the data.

BLACKFIRE69
16-09-2020, 14:20
@BLACKFIRE69

Thank you for the update, however a huge bug has been introduced. Nothing has changed in my arc.ini since I added the new version to my compressor:

Compressed 119 files, 13,245,186,961 => 1,672 bytes. Ratio 0.00%
Compression time: cpu 14.33 sec/real 483.57 sec = 3%. Speed 27.39 mB/s
All OK

Using method: mtx:c64m:t16:rz

The folder being compressed is ~700MB and sometimes it says all 700MB becomes 1kb, other times like the above it only recognises some of the data.


no. it works without problems.
more details plz. what about my example compressor?
or send me related files.

Masquerade
17-09-2020, 00:51
@BLACKFIRE69

Yes with your compressor it works, but I did not change a single config between last time I used MTX and this time.

Perhaps I should fully remake my compressor and tidy things up? I'll get back to you after I try sort it.

Sorry for wasting your time...

Edit: I have mailed you an example compressor, I tried rewriting 3 times but it keeps returning <1KB files :(

BLACKFIRE69
17-09-2020, 06:55
@BLACKFIRE69

Yes with your compressor it works, but I did not change a single config between last time I used MTX and this time.

Perhaps I should fully remake my compressor and tidy things up? I'll get back to you after I try sort it.

Sorry for wasting your time...

Edit: I have mailed you an example compressor, I tried rewriting 3 times but it keeps returning <1KB files :(


ok, check my answer i solved your problem. ;)

and guys, since v2.0.0.5, the keyword "{compressor}" is no longer supported on arc.ini. please see the example.

BLACKFIRE69
27-09-2020, 10:47
Update


What's new:

Bringing back "{compressor}".
- Added support for "{compressor}" as before.




* cls-mtx supports two methods.

1: The simple way

[External compressor:precomp, mtxprecomp, mtx_precomp]
header = 0
packcmd = "Res\Precomp\precomp.exe" -cn -intense0 -o$$arcpackedfile$$.tmp $$arcdatafile$$.tmp
unpackcmd = "Res\Precomp\precomp.exe" -r -o$$arcdatafile$$.tmp $$arcpackedfile$$.tmp


2: Alternative method

[External compressor:precomp, mtxprecomp, mtx_precomp]
header = 0
packcmd = "Res\Precomp\{compressor}" -cn -intense0 -o$$arcpackedfile$$.tmp $$arcdatafile$$.tmp
unpackcmd = "Res\Precomp\{compressor}" -r -o$$arcdatafile$$.tmp $$arcpackedfile$$.tmp


and the exe name must be "precomp.exe" (similar to the first one in section names.)

dixen
30-09-2020, 07:14
Test

Left 4 dead 2 2.2.0.1

*.WAV (srep+mtxrz)

Tested 47,599 files, 4,218,328,066 => 9,937,777,119 bytes. Ratio 42.45%
Testing time: cpu 8.50 sec/real 82.11 sec = 10%. Speed 121.03 mB/s
All OK

BLACKFIRE69
02-10-2020, 06:49
cls-mtx October Update v2.0.0.7




What's new:


Fixed a minor issue..
- Fixed an issue that related to the working directory.

kj911
12-07-2022, 09:57
Any members tested the accelerator, using DLZ compressor in multi-core PC's?? (x86 or x64 and more CPU cores 2/4 to 8-16)

Masquerade
12-07-2022, 10:02
Any members tested the accelerator, using DLZ compressor in multi-core PC's?? (x86 or x64 and more CPU cores 2/4 to 8-16)

Don't use DLZ. LOLZ is superior + has built in mulithreading.

kj911
12-07-2022, 14:44
I know lolz is better. For testing, you should do this to see if it can be better with MTX, the speed of (de)compression. Lolz, however, you can't pack on old X86 machines. (The unpacking only, we leave it now.) While with DLZ yes. DLZ is more faster compared (data dependent case) to FreeArc internal lzma codec. Up to 2x speed.* (Without cu2 or cu3 and cm40/43 switches.) The compression rate is often better (1-2% to few percentage), even for smooth data. (DDS files has in up to 5-15%) This cm10 or cm00 no effecting or minimally in decompression speed. For the most extreme settings, the unpacking is slow, true. Compared to OGGRE, even 2* is still more faster.

This range from DDS files compression:

1. LOLZ (its probably best, without MSC!)
2. DLZ (no MSC)
3. MSC + FA's lzma or use "FA's lzma" compression replacement use this lzma part from DLZ
4. FA's lzma or any lzma1/2 compressor

*Note: This DDS/DXT datafiles decompression speed comparable the FA's internal LZMA compression. (uses lzma's only switches.) Minimally slower. This "DATA"-typed compressed data (This DLZ printed type to out from CMD window) comparable or barely faster than FA's lzma algo. More tests req. from old PC from comparison. (Using and find ~0.5-1GB test data.)**

**More DDS samples, any games resources, text, sounds/videos, exe/dll binaries or any more.

Extra questions: Original DLZ Package has been release originally in UPX'ed files??