Welcome to the minivmac4ios wiki!
I'll try to document things a bit here.
Mini vMac variants as loadable bundles
Unlike other ports of Mini vMac, this one supports having several variants compiled, and choosing between them.
![screenshot](http://i.imgur.com/OEWMrke.png)
This is achieved by compiling all the emulation code into a bundle, which is loaded at runtime. These bundles implement the Emulator
protocol on their main class, which is used to interface it with the UI.
For each variant, there is a framework target that compiles all the necessary C files from the core (not all of them are used for all machines: (e.g. ADBEMDEV.c
isn't used for the Mac 128K or Plus), and configuration header files (CNFUDALL.h
, CNFUDOSG.h
and CNFUDPIC.h
) with the appropriate values for emulating that machine, as generated by the Mini vMac build system.
![Bundle compiled files](http://i.imgur.com/jhD7O8u.png)
Each framework's Info.plist
is generated from PlugIn-Info.plist
and PlugIn-Capabilities.plist.xml
, and has its own icon that is shown in the settings screen. The frameworks are copied to the Frameworks
directory and renamed to <name>.mnvm
when building the app. The app looks for frameworks with a .mnvm
extension, and shows them in the settings screen.