I spent the last weeks remodeling the Vircon32 emulator. After many changes in the code, the console logic itself is now isolated from the rest. In the repo you will see a new folder called ConsoleLogic:
The code in that folder is first compiled independently to create a library. And then the emulator uses it by calling its functions and responding to its requests (callbacks). The old emulator architecture mixed console logic with the rest (audio, video, events...). After the changes, architecture is now much more modular, which you can see in this diagram.
Thanks to the changes, the console logic itself now has no dependencies (it is pure C++) and it should be very easy to compile on any system. Also, since the rest of the parts are isolated, it will be much more straightforward to make a Vircon32 emulator with other libraries. For example, if someone were to make an XBox version they could change the audio and video modules to use DirectX instead of OpenGL + OpenAL.
And with this I can begin trying to create the Vircon32 core for libretro.