Since RA prefers to save states and other files in a zipped format, and to support ingesting states from RA instances run without the “disable rzip” flag set, it would be useful to use the rzip stream api from libretro-common. These symbols should already be available in retroarch (but I don’t think RA exposes ccall or cwrap so it’s hard or impossible to get to them), or we can separately compile a wasm build of just the libretro-common library. I think the latter sounds better to avoid depending on any upstream changes in libretro.
The workaround for now is to only use as entry states those save states made from RA instances run with the rzip flag disabled (“savestate_file_compression = false”) , which we should be doing from the electron and web frontends anyhow.
Prerequisite to this is probably to modify libretro-common/streams/rzipstream.c to accept not just a file path, but any intf_stream object. I'm in talks with the retroarch people about that
Since RA prefers to save states and other files in a zipped format, and to support ingesting states from RA instances run without the “disable rzip” flag set, it would be useful to use the rzip stream api from libretro-common. These symbols should already be available in retroarch (but I don’t think RA exposes ccall or cwrap so it’s hard or impossible to get to them), or we can separately compile a wasm build of just the libretro-common library. I think the latter sounds better to avoid depending on any upstream changes in libretro.
The workaround for now is to only use as entry states those save states made from RA instances run with the rzip flag disabled (“savestate_file_compression = false”) , which we should be doing from the electron and web frontends anyhow.