jarreboum wrote:I'm just a user of this patch, via daum, and I hope the idea isn't abandoned.
It's very useful to have in a multi user environment, without having to worry of one user corrupting or deleting the saves and configurations from another. I simply keep the games read-only in /usr/local/share/games/dosbox and the modifications in ~/.dosbox/saves, mount them together and everybody is happy.
I've done this separately from dosbox sources. Just run this script (after installing what it wants - you can see it on the command line or just read the first few lines):
https://gist.github.com/i30817/12a91a7e ... 839bfc0e6d
However, this is orthogonal to compression, it's only writing modifications to another 'directory'. You can use it with (another) compressed read only mount and it's almost equivalent to this patch, like i do, which on linux the best option is a squashfs mount since it has kernel support and a pretty good compression in lz4, or from a cd/dvd, or just a normal read-write or read-only directory.
Also this is made for 'a single root' that is a huge compressed file with all the games, not really one compressed file per game. Sorry about this, but i was mainly interested in compression ratio and speed (i'm mounting a 300 gb squash file, of which 90 gb are DOS games using this to play and the rest console ROMs), and lz4 is well suited for large archives and it simplified the script a lot to assume a single root for the modifications.
Therefore trying to use this with multiple mounts without deleting the write cache is a recipe for undefined behavior (it still prevents multiple users messing each other of course). If you're going to do that, you should delete the modifications which goes against the point of persistence, so don't try it.
It's a bit disconnected from a frontend because i took the opportunity to make a 'mini-launcher' of conf files but really, you can launch another frontend after the mounting process is done and before choosing a conf file and pointing their game files to the mount. Or you can actually use unionfs manually, it's not hard.
edit: a version of this script is now distributed as a package on my dosbox ppa here: https://code.launchpad.net/~i30817/+arc ... ox-patched