LVGL Game Boy Advance Emulator

lv_gba_emu

Possibly the cleanest GBA emulator port:

FASTSHIFT/lv_gba_emu: LVGL Game Boy Advance Emulator (github.com)

Feature

  • The emulator kernel is based on vba-next and does not depend on any third-party libraries.
  • Decoupled from the OS, only relying on lvgl’s memory allocation and file access interface.
  • Support to use GBA framebuffer directly as lv_canvas buffer, zero copy overhead.

To be completed

  • Audio output support.
  • Frame rate control support.
  • Optimize key mapping and decouple from linux event device.
  • Virtual key support.
  • Memory usage optimization.
4 Likes

Very nice! Is there a video maybe? :slight_smile:

Yes, you can download it here:
lv_gba_emu/images at main · FASTSHIFT/lv_gba_emu (github.com)

Thanks!

LVGL is only providing a canvas, right? Or is there anything else you do with LVGL?

LVGL provides the canvas, virtual keys, file access interface, and dynamic memory allocation.
Audio output needs to rely on other interfaces, such as SDL2.

1 Like

Thanks for the link! It looks very neatly done. I especially like that the core is based on vba-next and doesn’t rely on third-party libraries—this really simplifies porting to different platforms.

Support for using the GBA framebuffer directly as an lv_canvas buffer with zero copy is a huge performance boost. I’m looking forward to the addition of audio and keybinding optimizations—that would be really cool.

This seems to be one of the cleanest and most minimalistic GBA emulators out there.