It works. Later models still have a MIPS core to run PS1/IOP code, only the rest is emulated, kinda, it's weird, but works.Can someone explain me if this works on any PS2? It says here that this uses the "PS1 CPU" to run .ZSO files, however, I've heard that some models like the 90000 series doesn't have this CPU, and the retro compatibility with PS1 games are made Cia software.
I wonder if this method will work just fine on my 90001 PS2, or if it will be just a waste of time trying to do so.
read_size = total_bytes - read_pos
It is actually correct. Compression level only takes affect when using LZ4 High Compression mode, but ZSO is based on the standard LZ4 compression for speed and lower code size.Hi,
While reverse engineering the ziso.py code to implement it in OPLM, i believe i fund a bug in the ziso.py script.
If I'm wrong, i apologize, it's my first time really trying to understand python code.
Compression level of 1 or 9 gives the exact same result.
Taking a look at the code at https://github.com/ps2homebrew/Open-PS2-Loader/blob/master/pc/ziso.py#L49
although the function takes in a level, the level is never passed to the lz4.block.compress function.
While at it... not sure if it's a bug, but while i was reverse engineering it, this line gave me problems:
https://github.com/ps2homebrew/Open-PS2-Loader/blob/master/pc/ziso.py#L164
The total_bytes here as far as i understand it's the total uncompressed bytes, this can end up giving a huge and wrong read_size value. Maybe python read call handles this fine, but i had to change this to be the total bytes of the zso instead.Code:read_size = total_bytes - read_pos
E.g: a 4gb file compressed to 1gb. At this point it would try to read about 4-1=3gb of data, out of a 1gb file (exception in c# at least).
Hey,It is actually correct. Compression level only takes affect when using LZ4 High Compression mode, but ZSO is based on the standard LZ4 compression for speed and lower code size.
The only reason we kept the parameter is because it's used to determine if you want to decompress or compress.
As for the total size thing, yeah it seems to be an error.
The only reason we kept the parameter is because it's used to determine if you want to decompress or compress.
Because I didn't want to bother much with the script hoping other devs would make better tools with GUI, blackjack and hookers.Why then not just "-c" and "-d"?
I don't think ZSO will work with BIN/CUE files, it's not meant for it. Convert them to ISO and from there to ZSO. Use Mode 1 to fix most freezes.@Berion Yes, I tried it for a normally running game. I am using Opl Manager for BIN to ISO.
I wanted to try BIN to ZSO as I saw it directly in the script, so it's actually a problem with the converter.
Test:
Gran Turismo 4: System freezes before boot video starts. (ZSO)
Shox: Rally Reinvented: System freezes before boot video starts. (ZSO)
Note: Converted to ZSO format with the script shared here.
Flash disk: exFAT format, with regular ISO and exFAT everything is fine.
My recommendation here is to play with the Device Cache size until you find the minimum that works well for you.
Set cache to 0 to disable it. Other than that it's a good idea.Is there a chance to create a sub-menu for Devices' cache in Settings?
I mean something like for Select Block Devices:
![]()
Additionally to also disable Devices' cache?