I started by splitting main.cpp into separate files. Basically, the frontend code became a mess, and everything was more or less just dumped in the global namespace - there are some modules which live in their own namespaces, but it's all not very modular, and doesn't lend itself to running multiple instances of melonDS. Obviously, over time we added various features to the emulator, rebuilt the frontend around different UI toolkits, piled on more features, and so on. We had a simple window, a dedicated thread to run the actual emulation, and that was it. Originally, the frontend was just quickly built around the program entry point in main.cpp, as it just needed to provide a means to use the emulator. The frontend is proving to be tricky, because it was largely built without many regards for code quality.
The goal is still the same: to adapt melonDS for supporting multiple instances within one process. If you're running into trouble: Howto/FAQĪs I have received and set up my new laptop, I've been able to work on melonDS some. (WIP) Wifi: local multiplayer, online connectivity.Various display position/sizing/rotation modes.
Nearly complete core (CPU, video, audio.While it is still a work in progress, it has a pretty solid set of features: MelonDS aims at providing fast and accurate Nintendo DS emulation.