Retroarch and Zipped Roms Problem

When playing games, retroarch extracts the files from their zip files and leaves them there. How come roms have to be extracted?

The extracted rom gets deleted after closing RetroArch. Are you on the latest nightly? Using ‘Open Archive As Folder’ doesn’t seem to extract the file so maybe use that.

Is that how it works with standalone emus? What if you have zero space left, whatll happen then? No, im on the latest public release? That option is only on nightly builds?

You also have the option to pass the zip archive directly to the core (and I’m assuming it stays like that in the playlist history).

If the core supports zip archives it depends on the implementation whether the rom gets extracted to the drive or gets loaded in the ram.

I’m guessing most cartridge based emulators will do the latter due to the low space requirements but again, it depends on the implementation.

Compressed ROMs have to be decompressed to disk before loading unless the archive is mounted as a filesystem by the OS (e.g., with something like fuse). Standalone emulators may be decompressing them to /tmp or whatever instead of the original directory but they’re almost certainly writing it to disk somewhere.

If you don’t have enough remaining space to decompress, it’ll fail to load.

Correct me if I’m wrong but what prevents the core/program from reading the compressed data into memory, allocate memory for the decompressed data and decompress the data in that allocated memory?

We support a lot of RAM-constrained platforms where that’s not feasible, particularly with large arcade ROMs, CD images, etc.

Well yes but I was talking about the implementations in the cores (not in RetroArch) for cartridge based emulators (that tend to have a single and relatively small (< 100MB) rom) which afaik do load compressed roms directly into memory in most cases.

Obviously its not that efficient to decompress the whole data into the ram for games that occupy more space (> 100MB) but that doesn’t mean that its generally not possible (except for hardware that only has very limited ram of course).

Decompression is frontend territory. What you describe is possible but I think all of the contributors are pretty satisfied with the current behavior.

If you’re interested in submitting a patch to decompress to RAM, you can stop by #retroarch on Freenode and make sure your plan is acceptable before going through the effort.