Dev Creates Almost Functional Apple Watch Game Boy Emulator
Anthony Cartwright / 6 years ago
iOS developer O’Flaherty-Chan has created an almost functional Apple Watch Game Boy emulator. It isn’t perfect, and it has some fatal issues which will be pointed out shortly, but if he could fix those issues, it might make the Apple Watch worth digging out from the back of that drawer you left it in.
Whilst he has proven that it is possible to get an emulator to run on the watch, he does admit that it’s slow and unresponsive;
One of the big challenges was to find the right balance between framerate and performance. As you can see, it’s a bit sluggish and unresponsive, but as a prototype, I think it answers the question of “is this possible”.
He originally thought using an existing emulator and modifying it would be the simplest route and wouldn’t require as much work as starting from scratch. However, he then realised that it was quite the opposite, starting from scratch and picking parts from other open source projects turned out to be easier.
Then in another twist, he found these emulators were all overly complicated and he discovered one that had everything he needed, the base on which a lot of other emulators are just layers upon an original. He therefore used an emulator called Gambette as his base.
His next issue is the matter of graphics, without openGL, the Apple Watch runs games worse than the original Game Boy, which is quite surprising considering how far technology has travelled. Then again, this is just a watch, but for the price you pay, you’d expect it to have a little something in there, surely?
One of the errors relating to the graphical side of things is;
Video memory often gets corrupt, in which case you will have to force emulation to be reset. While in-game, force touch the screen and select Reset. If the app closes after that, you will have to re-open, and repeat the process until it works.
Some games appear to format pixel data differently. The rendering work is done in GameCoreSnapshots.swift, you may have luck adjusting how the Core Graphics context is created.
He has listed the source code on Github should you wish to try and help fix the problems, as it stands, he is unsure if he will continue to work on the project.
Are you an iOS dev looking for a project? This might be for you!