I have released the next version of GBEmu, 0.0.2 on GitHub and Handmade Network. The major change in this release contains support for a configuration file, called config.txt. This includes support for non-English keyboards as well. This file currently supports custom keyboard and gamepad mappings, and controlling the size of the screen. The final config.txt syntax is very similar to the syntax I posted in my previous post. The main difference is now you can put more than one config value on one line. In addition the macOS and Windows executables now have icons.
Screenshot of a portion of config.txt with US Keyboard:
Screeshot of a portion of config.txt with Hebrew Keyboard:
Now for the unfortunate part: I disabled VSync on Mac. The reason for this is while working on this release, macOS Mojave was released, which contained deprecation of OpenGL. This broke GBEmu’s rendering interface, SDL, in many ways. GBEmu would show up with a black screen and so I decided to wait for fixes for SDL before releasing this update.
Even with SDL fixes coming in, there was still a persistent black screen in the ROM debugger. This was due to the fact I was rendering the debugger on a different thread since all GBEmu windows are VSynced and OpenGL on Mojave doesn’t seem to like that.
“Conveniently”, I learned that VSync on OpenGL in Mojave is completely broken anyway and, so, I decided to take the easy way out and disable VSync on Mac. I hope to re-enable VSync when either SDL gets their Metal backend working, or I manually render in Metal myself. VSync still works perfectly fine in Windows and Linux.
As always, comments and questions are welcomed and encouraged. Feel free to post below in the comments or on https://gbemu.handmade.network/forums.