mihaip / infinite-mac

A classic Mac loaded with everything you'd want
https://infinitemac.org
Apache License 2.0
1.17k stars 70 forks source link

Investigate MAME #158

Open mihaip opened 1 year ago

mihaip commented 1 year ago

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

upintheairsheep commented 1 year ago

Also supports Apple I, II, III, and IIGS

LagLifeYT commented 6 months ago

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.

adespoton commented 6 months ago

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.