PS2 [Testers Needed] Open PS2 Loader with ZSO support (compressed ISO)

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.
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.
 
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
Code:
 read_size = total_bytes - read_pos
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.
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).
 
  • Like
Reactions: TnA
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
Code:
 read_size = total_bytes - read_pos
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.
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).
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.
 
  • Like
Reactions: TnA
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.
Hey,
Thanks for the quick reply.
I understand the reason you left it, but it might confuse people expecting different results with different levels.. maybe make it more clear by updating the help command?

I actually watched a youtube video today about ZSO, and they were recomending to use level 2 that gives good results, but could test with higher levels to see if it have an improvement
 
Last edited:
  • Like
Reactions: TnA
CD Format Games - BIN file
BIN to ZSO convert: doesn't work, stays on white screen, doesn't read data.
Edit: BIN to ISO - ISO to ZSO convert: gets stuck at splash screen. (PadEmu disable: Game running)

BIN files always have the potential to cause problems, even when converting them to a regular ISO.
 
Last edited:
@Serdar You must convert mode2 disc image (2352 per block) to mode1 disc image (2048 per block). There is no around for it as OPL or any other game loader, don't support mode2 images. You can do this i.e by using IsoBuster, most of virtual optical drives and plenty of scene apps and toolkits.

Are You sure You did proper conversion? Image cannot be rebuild as some games using LBA order as security layer (i.e PowerISO rebuilding).
 
@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 Edit:
Gran Turismo 4: System freezes before boot video starts. (ZSO) (Didn't work with any options)
Shox: Rally Reinvented: System freezes before boot video starts. (ZSO) (PadEmu disable: Game running)

Note: Converted to ZSO format with the script shared here.
Flash disk: exFAT format, with regular ISO and exFAT everything is fine.
 
Last edited:
@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.
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.
 
Yes, the converter here does not directly convert BIN to ISO correctly. exFAT support is more than enough for me, I just wanted to help with ZSO testing.

Edit:
I can add the games I've tried to the list, right?
I had problems with the first 2 games I tried mishaps, in other games it works pretty well.
 
Last edited:
  • Like
Reactions: TnA
My recommendation here is to play with the Device Cache size until you find the minimum that works well for you.

Is there a chance to create a sub-menu for Devices' cache in Settings?
I mean something like for Select Block Devices:
bdm-jpg.34573


Additionally to also disable Devices' cache?
 
@Acid_Snake

The last beta I tested (v1.2.0-Beta-1880-a361ba9) takes a while to show the games list.
Also it tells me the games are fragmented when they aren't.

Is FAT32 support being removed? I sure hope not.
 

Similar threads

Back
Top