github SapphireRhodonite/melonDS-android 0.0.2

latest releases: 0.5.0, 0.4.1, 0.4.0...
7 months ago

Overview

This release introduces experimental support for external display rendering in melonDS-android, allowing users to offload either the top or bottom screen of the emulated Nintendo DS system to a secondary screen connected via HDMI, USB-C, or other display interfaces.

The changes in this release are:

Shared OpenGL Texture Pipeline

Instead of relying on static framebuffer copies (e.g., via screenshotBuffer), the external screen now reuses the existing OpenGL texture pipeline used by the internal display. This ensures consistency in resolution scaling, performance, and frame delivery.

Dynamic Resolution Handling

The external screen rendering adapts to the configured resolution scaling (e.g., 1x, 2x, 4x) by directly accessing the internal GL textures. This eliminates previous issues such as visible artifacts, tearing, or resolution mismatches.

Codebase Isolation

The native library (melonDS-android-lib) remains unchanged in this branch. All modifications are scoped to the Android front-end, ensuring modularity and compatibility with upstream core changes.

Known Limitations

  • Rendering on external displays assumes a 1:1 frame delivery cycle with the internal rendering thread. Future improvements may introduce frame decoupling or asynchronous redraw.

  • Multi-layout switching at runtime may require further testing across various device vendors.

Don't miss a new melonDS-android release

NewReleases is sending notifications on new releases.