Thank you very much for all the hard work you do on DeSmuME!
]]>You should have nothing to fear from upgrading to Mojave. DeSmuME will continue to work in macOS Mojave. And then in the nightly builds, the Cocoa port does support a Metal-based frontend, and so the next DeSmuME release will support future macOS releases.
The only remaining concern at this point is the emulated 3D renderer. Of course, the Cocoa port supports SoftRasterizer, which works on any computer, including one running a future macOS release. However, OpenGL is the only hardware-based 3D renderer, and on strong GPUs, OpenGL can greatly improve performance for a lot of rendering scenarios. Since having a hardware-based 3D renderer is an extremely popular DeSmuME feature, it is far more likely that I would be writing a Metal-based 3D renderer specifically for the Cocoa port rather than using Vulkan.
My reasons for using Metal over Vulkan are the following:
1. I have existing experience writing Metal code. I have no experience with Vulkan.
2. Related to the experience issue, Metal is an API that is easier to use than Vulkan. Metal still does some hand-holding things it does for the programmer, which is something I do appreciate coming from OpenGL. Vulkan literally makes you do everything, and I don't feel comfortable dealing with all of that stuff.
3. Testing is much much much easier for Metal since it is limited only to Apple Mac computers. However, Vulkan would be expected to work on multiple platforms, and so the testing scenarios increase exponentially. Combined with the fact that Vulkan makes you do everything, this also means that the additional code complexity further increases testing needs. (The reason why we can get away with OpenGL being a cross-platform API is because OpenGL does a lot of hand-holding for you, and so we can write much more simplified code that is much easier to test, and then blame the third-party GPU drivers when things go wrong.)
4. I don't want users to have to deal with third-party extensions like MoltenVK. I want DeSmuME for Mac to work right out of the box, just like in Windows.
Of course, I'm not denying anyone who wants to contribute a Vulkan-based emulated 3D renderer -- this is an open-source project after all. In fact, it should be easier now than it ever has for people to write new 3D backends. However, if it does fall to me to get DeSmuME to support future macOS releases, then this is the reasoning going on in my mind for why I would do things the way I do.
]]>MoltenVK would let DeSmuME run on Macs just fine, maybe after the next stable release would be a good time to think about it.
Anyway, thank you very much, I will not update my Mac again.
]]>In seriousness, we should probably just make a vulkan renderer.
]]>What does this mean for the future of DeSmuME on Macs? Will development go on for older Macs or will it be dropped?
Thank you everyone.
]]>