Maximize melonDS performance on RK3326

Config:
- ShowOSD=0: Disable on-screen display (saves rendering cycles)
- MouseHide=1: Hide cursor immediately

Launch script:
- Force JIT, software 3D, ScreenUseGL=0 at every launch (prevent
  user/ES settings from accidentally enabling heavy GPU features)
- Set CPU governor to performance before launch
- QT_QPA_NO_SIGNAL_SPY=1: Disable Qt signal debugging
- QSG_RENDER_LOOP=basic: Simpler Qt render loop (less overhead)
- QT_ENABLE_HIGHDPI_SCALING=0: Skip HiDPI calculations
- AudioInterp=0, AudioBitrate=0: No audio interpolation overhead

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Douglas Teles
2026-04-18 13:20:10 -03:00
parent b0c5eb982e
commit 25abe265b8
2 changed files with 22 additions and 4 deletions
@@ -81,7 +81,7 @@ GL_ScaleFactor=1
GL_BetterPolygons=0
LimitFPS=1
AudioSync=0
ShowOSD=1
ShowOSD=0
ConsoleType=0
DirectBoot=1
JIT_Enable=1
@@ -144,8 +144,8 @@ SaveFilePath=/storage/roms/nds
SavestatePath=/storage/roms/savestates/nds
CheatFilePath=
EnableCheats=0
MouseHide=0
MouseHideSeconds=5
MouseHide=1
MouseHideSeconds=1
PauseLostFocus=0
DSBatteryLevelOkay=1
DSiBatteryLevel=15
@@ -174,6 +174,11 @@ fi
# Qt requires UTF-8 locale
export LC_ALL=en_US.UTF-8 2>/dev/null || export LC_ALL=C.UTF-8
# Performance: disable Qt animations, reduce rendering overhead
export QT_QPA_NO_SIGNAL_SPY=1
export QSG_RENDER_LOOP=basic
export QT_ENABLE_HIGHDPI_SCALING=0
@PANFROST@
@HOTKEY@
@LIBMALI@
@@ -181,10 +186,23 @@ export LC_ALL=en_US.UTF-8 2>/dev/null || export LC_ALL=C.UTF-8
#Generate a new MelonDS.toml each run (temporary hack)
rm -rf "${CONF_DIR}/melonDS.toml"
# Force JIT and software renderer for max performance on weak SoCs
sed -i '/^JIT_Enable=/c\JIT_Enable=1' "${CONF_DIR}/${MELONDS_INI}"
sed -i '/^3DRenderer=/c\3DRenderer=0' "${CONF_DIR}/${MELONDS_INI}"
sed -i '/^Threaded3D=/c\Threaded3D=1' "${CONF_DIR}/${MELONDS_INI}"
sed -i '/^ScreenUseGL=/c\ScreenUseGL=0' "${CONF_DIR}/${MELONDS_INI}"
sed -i '/^ShowOSD=/c\ShowOSD=0' "${CONF_DIR}/${MELONDS_INI}"
sed -i '/^AudioInterp=/c\AudioInterp=0' "${CONF_DIR}/${MELONDS_INI}"
sed -i '/^AudioBitrate=/c\AudioBitrate=0' "${CONF_DIR}/${MELONDS_INI}"
#Retroachievements
/usr/bin/cheevos_melonds.sh
#Run MelonDS emulator
#Run MelonDS emulator - set CPU to performance for max speed
if [ -w "/sys/devices/system/cpu/cpufreq/policy0/scaling_governor" ]; then
echo performance > /sys/devices/system/cpu/cpufreq/policy0/scaling_governor 2>/dev/null
fi
$GPTOKEYB "melonDS" -c "${CONF_DIR}/melonDS.gptk" &
${EMUPERF} /usr/bin/melonDS -f "${ROM}"
kill -9 "$(pidof gptokeyb)"