The work that started as a basic app soon shifted gears and turned into a full blown effort to release a user-ready Android port. GPU emulation is now done on a separate core, significantly improving performance. That was why we ported over a feature - Async GPU emulation - from our sister project, yuzu. Mobile CPUs aren’t even remotely as powerful as desktop CPUs, so we needed to take full advantage of their multiple cores. Thanks to SachinVin’s work, performance received a huge boost. So we have to recompile the code on the fly, with our CPU JIT, to make them work on Android. ![]() While many Android devices also use the ARM architecture, there are complications that arise when you try to run unmodified instructions from a 3DS game. While this was going on, SachinVin was working on implementing an ARM64 backend for Dynarmic.ĭynarmic is Citra’s Just-in-Time (JIT) CPU compiler, which is used to emulate the ARM CPU in Citra. Jroweboy also started optimizing many areas of the code to bring in multiple small performance gains, which added up to a large performance improvement. Then we added the core components of Citra to the app, and games were booting and playable!īut it still had many bugs and issues: the settings weren’t saving, the button overlay was clipped, there were multiple layout issues, graphical issues, and much more.Īndroid being a diverse OS, each fix had to be extensively tested on a plethora of devices to make sure it didn’t break anything else. SachinVin added initial OpenGL ES support. He figured that since nobody in the core team had any experience with Android development, someone had to start things off somewhere.ĭevelopment started as a basic app with the frontend based off of Dolphin’s Android app. Developmentįor almost a year, bunnei has helmed this development effort and has pulled other developers into working on this. This separation of code logic for core emulation and UI elements paved the way for a smoother development process for Android.īut it wasn’t an easy journey. In this way, developers can ensure that UI elements are decoupled from the core, so that new frontends can be implemented.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |