github SapphireRhodonite/Cemu 0.0.2
Cemu Android 0.0.2

20 hours ago

Cemu for Android External Screen Support

⚠️ Disclaimer

External screen support is currently experimental and intended as a proof of concept.
There are known bugs and limitations, and stability is not guaranteed.

This feature will be gradually improved in future versions, with the goal of delivering a more polished dual-screen experience on Android.


Tested and verified on the Ayaneo Pocket DS for external display functionality.


Changes in this version

Add support for rendering GamePad to external display

  • Allows toggling the GamePad screen to an external display.
  • Introduces a PadPresentation using DisplayManager and DisplayListener.
  • Lifecycle-aware handling of connected/disconnected displays.
  • Side menu updated with a checkbox to toggle external display mode.
  • Updates to NativeEmulation.cpp to manage pad surface lifecycle and native window state.

Add DisplayUtils and setPadRotatedLeft JNI

  • Introduces DisplayUtils.kt to centralize screen-related logic.
  • Adds setPadRotatedLeft() JNI to handle GamePad screen rotation explicitly.

Refactor screen rotation and add screen swapping feature

  • Adds a new swap_screens boolean to flip the main and GamePad displays.
  • Updates UI, touch input, and renderer logic accordingly.
  • Adds screen swap checkbox to side menu.

Add WindowManager flags to prevent focus and touch modal in EmulationActivity

  • Ensures external display windows do not steal focus or input from the main display.

Fix screen swap touch controls

  • Corrects touch logic for both main and external GamePad views when screens are swapped.
  • Canvas touch listeners now respect the swapped state for accurate interaction.

Tested on

  • Ayaneo Pocket DS
  • Pocket ACE + Retroid Dual Screen Add-on.

🙏 Special Thanks

Huge thanks to @retrogamecorps for his testing efforts in making this version possible.

Don't miss a new Cemu release

NewReleases is sending notifications on new releases.