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.

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.

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.