| This application has been obsoleted by one or more applications that serve the same purpose, but are more stable or maintained. |
VBA-next switch is a port of the Game Boy Advance emulator VBA-M for Switch. It's based off the libretro version of VBA-M (VBA-next) but is completely detached from libretro. The GUI is based of 3DSGBA, which was heavily refactored.
Because it's based of VBA-M the compability is very high and almost all games run at fullspeed.
Note: This project is no longer maintained. Use mGBA (standalone or libretro) or the vba-next libretro core instead, it is regularly updated and features more options.
Speed Hack
Note: Some of the information presented below may be outdated or inaccurate.
The emulator experienced frequent slowdowns before the implementation of the "speed hack." Although the following discoveries were made independently, they may be common knowledge among emulator developers. The two factors that were found to contribute to the emulator's sluggish performance were: the thread/core it was running on, and the use of VSync.
To address the first issue, the entire emulator was shifted to a second thread with high priority and pinned to a core not currently in use by the system.
Eliminating the wait for vertical synchronization caused visual artifacts, so the emulator was restricted to the second thread and locked at 60 Hz using sleep thread. Meanwhile, the main thread was locked by the VSync, receiving the framebuffer and sending input while leaving the audio in the emulator thread.
However, this led to the issue of both threads, despite being locked at 60 Hz, occasionally running out of sync. Consequently, the input or the graphics of a frame may be skipped or sometimes out of sync.