This version of pcsx2 supports reading compressed ISO using gzip. This is still not at the git repository but hopefully will get there soon (so new git nightlies will not have this support for now).
(no, I want it too but 7z will probably never be supported, other compressions will maybe be supported, but not soon).
gzip is a very standard and well known format, and its compression ratio is similar to zip, and usually saves about twice space than NTFS compression (e.g. if NTFS compression compresses a file from 4G to 3.5G = saving 500M, gzip will probably save about twice which will result in about 3G). If you have a lot of ISO files, the space saving can quickly add up to many gigabytes.
Interestingly, while bzip2 should usually compress better than gzip, with the few ISOs which I tested, gzip compressed about the same as bzip2. 7z still usually beats most formats, but the 7z format is very hard/impossible to index efficiently (see next).
To compress an ISO with gzip, use 7z: right click the file -> 7z -> add to archive -> change "archive format" to gzip, and press enter (or use any other tool which can create gzip files). PCSX2 will also list *.gz files at the ISO browser dialog.
Compressed files are usually not "mounted" directly because accessing random points at the disk can be extremely slow due to the compression. To overcome this issue, PCSX2 will create an "index" which will allow it to access any part of the file quickly.
Creating this index can take a while (up to a minute for a 4.5G file), but PCSX2 will then save it to disk, such that the next time the gzipped iso is used, it will load the index and start playing instantly. The index size is about 0.7% of the UNcompressed file size (e.g. if the uncompressed ISO is 1G, the index will be about 7M). The console will show progress while indexing the file.
The index is saved at the same folder as the ISO, with extension .pcsx2.index.tmp. If the index is deleted then PCSX2 will create it again next time the game is booted from the gz iso.
[update] - the index file name was changed to [mygame.iso.gz].pindex.tmp - which is still the default. Since 2014-12-31 it also supports custom name and folder. See http://forums.pcsx2.net/Thread-New-ISO-c...#pid423709
rama and me tested it with few ISOs and bin (from cue/bin pair) compressed files, and it seems to be working well. It should also work with other supported ISO formats like nrg etc, but we didn't test it yet.
Please help testing, and especially report:
1. Are there bugs? i.e. things which work with normal ISOs but don't work with gz compression of the same iso?
2. Do you notice slowdowns at all? if yes, how much? does it make the game unplayable? is it too annoying?
Running a game from a compressed ISO does use more CPU when accessing the disk, but from our tests so far we couldn't notice meaningful slowdown. Please help us test it.
Note, this is only pcsx2.exe. Put it at the same directory as your current pcsx2.exe and run it. Also, it was build with VS2013, so you will need the same runtime as the svn nightly builds need (if you used a svn build recently, just drop it at the same folder and it should run without problems).
[update] - replaced the attachment (this one has .3 at the end, the previous one had .1). The previous version somehow expected w32pthreads.v4-dev.dll instead of w32pthreads.v4.dll. Other than that, they're identical.
Thanks.
[update] added new version (.5) which adds caching (50 chunks of 4M at most). Should solve almost all slowdowns, except for games which constantly access different places on the disk (notable example is Shadow of the colossus while traveling - which constantly stream stuff from all over the disk).
[update 2014-05] gzipped iso support is now stable and is part of PCSX2 (disabled obsolete attachments).
[update 2015-02] 7-zip doesn't use multiple threads to compress gzip, but pigz does and can compress much quicker. Thanks to karasuhebi for testing.
[update 2015-02] new prefetch system should speed up cases of fragmented HDD. See http://forums.pcsx2.net/Thread-New-ISO-c...#pid436433
[update 2015-08-20] hidden the old attachments again, I think the recent forum upgrade unhidden them accidentally.
(no, I want it too but 7z will probably never be supported, other compressions will maybe be supported, but not soon).
gzip is a very standard and well known format, and its compression ratio is similar to zip, and usually saves about twice space than NTFS compression (e.g. if NTFS compression compresses a file from 4G to 3.5G = saving 500M, gzip will probably save about twice which will result in about 3G). If you have a lot of ISO files, the space saving can quickly add up to many gigabytes.
Interestingly, while bzip2 should usually compress better than gzip, with the few ISOs which I tested, gzip compressed about the same as bzip2. 7z still usually beats most formats, but the 7z format is very hard/impossible to index efficiently (see next).
To compress an ISO with gzip, use 7z: right click the file -> 7z -> add to archive -> change "archive format" to gzip, and press enter (or use any other tool which can create gzip files). PCSX2 will also list *.gz files at the ISO browser dialog.
Compressed files are usually not "mounted" directly because accessing random points at the disk can be extremely slow due to the compression. To overcome this issue, PCSX2 will create an "index" which will allow it to access any part of the file quickly.
Creating this index can take a while (up to a minute for a 4.5G file), but PCSX2 will then save it to disk, such that the next time the gzipped iso is used, it will load the index and start playing instantly. The index size is about 0.7% of the UNcompressed file size (e.g. if the uncompressed ISO is 1G, the index will be about 7M). The console will show progress while indexing the file.
The index is saved at the same folder as the ISO, with extension .pcsx2.index.tmp. If the index is deleted then PCSX2 will create it again next time the game is booted from the gz iso.
[update] - the index file name was changed to [mygame.iso.gz].pindex.tmp - which is still the default. Since 2014-12-31 it also supports custom name and folder. See http://forums.pcsx2.net/Thread-New-ISO-c...#pid423709
rama and me tested it with few ISOs and bin (from cue/bin pair) compressed files, and it seems to be working well. It should also work with other supported ISO formats like nrg etc, but we didn't test it yet.
Please help testing, and especially report:
1. Are there bugs? i.e. things which work with normal ISOs but don't work with gz compression of the same iso?
2. Do you notice slowdowns at all? if yes, how much? does it make the game unplayable? is it too annoying?
Running a game from a compressed ISO does use more CPU when accessing the disk, but from our tests so far we couldn't notice meaningful slowdown. Please help us test it.
Note, this is only pcsx2.exe. Put it at the same directory as your current pcsx2.exe and run it. Also, it was build with VS2013, so you will need the same runtime as the svn nightly builds need (if you used a svn build recently, just drop it at the same folder and it should run without problems).
[update] - replaced the attachment (this one has .3 at the end, the previous one had .1). The previous version somehow expected w32pthreads.v4-dev.dll instead of w32pthreads.v4.dll. Other than that, they're identical.
Thanks.
[update] added new version (.5) which adds caching (50 chunks of 4M at most). Should solve almost all slowdowns, except for games which constantly access different places on the disk (notable example is Shadow of the colossus while traveling - which constantly stream stuff from all over the disk).
[update 2014-05] gzipped iso support is now stable and is part of PCSX2 (disabled obsolete attachments).
[update 2015-02] 7-zip doesn't use multiple threads to compress gzip, but pigz does and can compress much quicker. Thanks to karasuhebi for testing.
[update 2015-02] new prefetch system should speed up cases of fragmented HDD. See http://forums.pcsx2.net/Thread-New-ISO-c...#pid436433
[update 2015-08-20] hidden the old attachments again, I think the recent forum upgrade unhidden them accidentally.