infinite-mac
infinite-mac copied to clipboard
Investigate MAME
https://wiki.mamedev.org/index.php/Driver:Mac_68K
May be easier to integrate than Mini vMac (as far as not everything being a compile-time option) and higher-fidelity than Basilisk II (if it doesn't rely on ROM patches as much). Per the emulation matrix it can run System 6-7.6.1
Also supports Apple I, II, III, and IIGS
Can't MAME already be compiled to WebAssembly or JS? Once it's possible to transfer files between host and emulator without using special emulator features (which really should be a goal, would help with introducing new emulators such as DingusPPC (#219)) it should be possible to dump both Basilisk II and Mini vMac in favor of this. MAME doesn't use hacky ROM patching and actually emulates the chosen hardware so it's definitely a better choice if it performs well and is legitimately more accurate.
Since that's not ready yet, I could see this being implemented as a checkbox in the advanced machine settings as "More accurate/ higher fidelity emulation" or something like that which when selected would use MAME rather than Basilisk II / Mini vMac for machines both emulators support.
MAME now supports raw disk images as well as CHD, which makes things more accessible. https://github.com/ksherlock/ample may be a good starting place; while it's a macOS front end instead of WebAssembly, the main MAME project already has a WebAssembly project, and Ample has some nice patches that could at least be inspiration. https://docs.mamedev.org/initialsetup/compilingmame.html#id10 of course has instructions for compiling to WebAssembly/JS, with options, depending on how you want to do it.