I recently discovered that there is in fact a very nice ISO9660 library out there already called, oddly enough, libisofs. I’m not sure why I didn’t come across it earlier, but in any case I’ve ripped out my half-baked ISO support and added a dependency on libisofs instead. It looks to be available prebuilt for most systems, so hopefully no major dramas there.
The on-the-fly ISO-building support is in now as well (mainly thanks to the above), at least for executables. You can now load binaries from either the gdrom dialog (which packages it into a MIL-CD disc image), or the ‘load binary’ dialog (which does what it always did). The command-line is also changed slightly – “lxdream mygame.elf” loads the program as a disc, and “lxdream -e mygame.elf” executes it directly.
Additionally, loading “binary” files (i.e. as generated from “sh-elf-objcopy -O binary”) is now supported (seeing as it turns out that this wasn’t working previously). Since there’s no reliable way to identify them from content, they have to end in “.bin” to be recognized though.
So with that out of the way, I think I might go back to poking at the renderer the next time I have a few free moments. One thing at a time…