9 Home
Jesús A. Álvarez edited this page 2023-09-27 18:31:09 +02:00

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

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 structure Bundle compiled files

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.