From b911a27318c5a641ebc72080b19e12b4e71d8cd5 Mon Sep 17 00:00:00 2001 From: Noxwell Date: Wed, 28 Jan 2026 13:27:53 -0600 Subject: [PATCH 1/4] Add PREFER_GLES check to desmume-lr --- .../ROCKNIX/packages/emulators/libretro/desmume-lr/package.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/projects/ROCKNIX/packages/emulators/libretro/desmume-lr/package.mk b/projects/ROCKNIX/packages/emulators/libretro/desmume-lr/package.mk index 2b42437331..36bbbf44f5 100644 --- a/projects/ROCKNIX/packages/emulators/libretro/desmume-lr/package.mk +++ b/projects/ROCKNIX/packages/emulators/libretro/desmume-lr/package.mk @@ -10,7 +10,7 @@ PKG_DEPENDS_TARGET="toolchain libpcap" PKG_LONGDESC="DeSmuME - Nintendo DS libretro" PKG_TOOLCHAIN="make" -if [ "${OPENGL_SUPPORT}" = "yes" ]; then +if [ "${OPENGL_SUPPORT}" = "yes" ] && [ ! "${PREFER_GLES}" = "yes" ]; then PKG_DEPENDS_TARGET+=" ${OPENGL} glu libglvnd" elif [ "${OPENGLES_SUPPORT}" = yes ]; then From 486cfce3ee49af606a8802badd2f227158936652 Mon Sep 17 00:00:00 2001 From: Noxwell Date: Wed, 28 Jan 2026 13:37:56 -0600 Subject: [PATCH 2/4] Set melondsds core as ndsiware default --- .../rocknix/sources/scripts/setsettings.sh | 36 +++++++++++++++++++ .../packages/virtual/emulators/package.mk | 4 +-- 2 files changed, 38 insertions(+), 2 deletions(-) diff --git a/projects/ROCKNIX/packages/rocknix/sources/scripts/setsettings.sh b/projects/ROCKNIX/packages/rocknix/sources/scripts/setsettings.sh index f8e771275e..3425b997e1 100755 --- a/projects/ROCKNIX/packages/rocknix/sources/scripts/setsettings.sh +++ b/projects/ROCKNIX/packages/rocknix/sources/scripts/setsettings.sh @@ -990,6 +990,41 @@ function set_dreamcastopts() { fi } +function set_melondsdsopts() { + log "Set up melonDS DS..." + if [ "${CORE}" = "melondsds" ] + then + local MELONDSDSDIR="${RETROARCH_PATH}/config/melonDS DS" + if [ ! -d "${MELONDSDSDIR}" ] + then + mkdir -p "${MELONDSDSDIR}" + fi + + if [ ! -f "${MELONDSDSDIR}/melonDS DS.opt" ] + then + cat <"${MELONDSDSDIR}/melonDS DS.opt" +melonds_boot_mode = "direct" +melonds_console_mode = "ds" +melonds_show_cursor = "timeout" +melonds_touch_mode = "auto" +EOF + fi + + if [ "${PLATFORM}" = "ndsiware" ] + then + sed -i '/melonds_console_mode = /c\melonds_console_mode = "dsi"' "${MELONDSDSDIR}/melonDS DS.opt" + else + sed -i '/melonds_console_mode = /c\melonds_console_mode = "ds"' "${MELONDSDSDIR}/melonDS DS.opt" + fi + + if [ "${DEVICE_HAS_TOUCHSCREEN}" = "true" ] + then + sed -i '/melonds_show_cursor = /c\melonds_show_cursor = "disabled"' "${MELONDSDSDIR}/melonDS DS.opt" + sed -i '/melonds_touch_mode = /c\melonds_touch_mode = "touch"' "${MELONDSDSDIR}/melonDS DS.opt" + fi + fi +} + function set_atari() { log "Set up Atari (FIXME)..." if [ "${CORE}" = "atari800" ] @@ -1252,6 +1287,7 @@ set_n64opts & set_saturnopts & set_snesopts & set_dreamcastopts & +set_melondsdsopts & ### Sed operations are expensive, so they are staged and executed as ### a single process when all forks complete. diff --git a/projects/ROCKNIX/packages/virtual/emulators/package.mk b/projects/ROCKNIX/packages/virtual/emulators/package.mk index f151a48ca5..5c689669ec 100644 --- a/projects/ROCKNIX/packages/virtual/emulators/package.mk +++ b/projects/ROCKNIX/packages/virtual/emulators/package.mk @@ -842,8 +842,8 @@ makeinstall_target() { add_emu_core ndsiware retroarch melondsds true ;; *) - add_emu_core ndsiware melonds melonds-sa true - add_emu_core ndsiware retroarch melondsds false + add_emu_core ndsiware retroarch melondsds true + add_emu_core ndsiware melonds melonds-sa false ;; esac add_es_system ndsiware From a191422e6dcdb043d849f033a898bd7ffa03d8ee Mon Sep 17 00:00:00 2001 From: Noxwell Date: Wed, 28 Jan 2026 13:38:28 -0600 Subject: [PATCH 3/4] Add melonds-sa options for console type and direct boot --- .../melonds-sa/scripts/start_melonds.sh | 24 +++++++++++++++++++ .../config/common/es_features.cfg | 8 +++++++ 2 files changed, 32 insertions(+) diff --git a/projects/ROCKNIX/packages/emulators/standalone/melonds-sa/scripts/start_melonds.sh b/projects/ROCKNIX/packages/emulators/standalone/melonds-sa/scripts/start_melonds.sh index f07925fda1..6f8307047e 100644 --- a/projects/ROCKNIX/packages/emulators/standalone/melonds-sa/scripts/start_melonds.sh +++ b/projects/ROCKNIX/packages/emulators/standalone/melonds-sa/scripts/start_melonds.sh @@ -37,6 +37,8 @@ fi #Emulation Station Features GAME=$(echo "${1}" | sed "s#^/.*/##") PLATFORM=$(echo "${2}"| sed "s#^/.*/##") +CONTYPE=$(get_setting console_type "${PLATFORM}" "${GAME}") +DBOOT=$(get_setting direct_boot "${PLATFORM}" "${GAME}") GRENDERER=$(get_setting graphics_backend "${PLATFORM}" "${GAME}") IRES=$(get_setting internal_resolution "${PLATFORM}" "${GAME}") SORIENTATION=$(get_setting screen_orientation "${PLATFORM}" "${GAME}") @@ -51,6 +53,28 @@ unset EMUPERF [ "${CORES}" = "little" ] && EMUPERF="${SLOW_CORES}" [ "${CORES}" = "big" ] && EMUPERF="${FAST_CORES}" +#Console Type +if [ "$PLATFORM" = "ndsiware" ] +then + sed -i '/^ConsoleType=/c\ConsoleType=1' /storage/.config/melonDS/melonDS.ini +else if [ "$CONTYPE" > "0" ] +then + sed -i '/^ConsoleType=/c\ConsoleType=1' /storage/.config/melonDS/melonDS.ini +else + sed -i '/^ConsoleType=/c\ConsoleType=0' /storage/.config/melonDS/melonDS.ini +fi + +#Direct Boot +if [ "$PLATFORM" = "ndsiware" ] +then + sed -i '/^ConsoleType=/c\DirectBoot=0' /storage/.config/melonDS/melonDS.ini +else if [ "$DBOOT" > "0" ] +then + sed -i '/^ConsoleType=/c\DirectBoot=1' /storage/.config/melonDS/melonDS.ini +else + sed -i '/^ConsoleType=/c\DirectBoot=0' /storage/.config/melonDS/melonDS.ini +fi + #Graphics Backend if [ "$GRENDERER" > "0" ]; then sed -i "/^ScreenUseGL=/c\ScreenUseGL=$GRENDERER" "${CONF_DIR}/${MELONDS_INI}" diff --git a/projects/ROCKNIX/packages/ui/emulationstation/config/common/es_features.cfg b/projects/ROCKNIX/packages/ui/emulationstation/config/common/es_features.cfg index ac81828060..e6c01c6579 100644 --- a/projects/ROCKNIX/packages/ui/emulationstation/config/common/es_features.cfg +++ b/projects/ROCKNIX/packages/ui/emulationstation/config/common/es_features.cfg @@ -1068,6 +1068,14 @@ + + + + + + + + From da3ac79399fceb3eccf3b5e3662fce33aca02ac6 Mon Sep 17 00:00:00 2001 From: Noxwell Date: Tue, 27 Jan 2026 21:55:13 -0600 Subject: [PATCH 4/4] Fix drastic backlogging its cpu instructions before sleep completes --- .../devices/Anbernic RG DS/sleep.d/post/99-drastic-cont | 6 ++++++ .../devices/Anbernic RG DS/sleep.d/pre/99-drastic-stop | 7 +++++++ 2 files changed, 13 insertions(+) create mode 100755 projects/ROCKNIX/packages/hardware/quirks/devices/Anbernic RG DS/sleep.d/post/99-drastic-cont create mode 100755 projects/ROCKNIX/packages/hardware/quirks/devices/Anbernic RG DS/sleep.d/pre/99-drastic-stop diff --git a/projects/ROCKNIX/packages/hardware/quirks/devices/Anbernic RG DS/sleep.d/post/99-drastic-cont b/projects/ROCKNIX/packages/hardware/quirks/devices/Anbernic RG DS/sleep.d/post/99-drastic-cont new file mode 100755 index 0000000000..1402b67572 --- /dev/null +++ b/projects/ROCKNIX/packages/hardware/quirks/devices/Anbernic RG DS/sleep.d/post/99-drastic-cont @@ -0,0 +1,6 @@ +#!/bin/sh + +# Resume DraStic if it's still there +if pgrep drastic; then + kill -CONT $(pidof drastic) +fi \ No newline at end of file diff --git a/projects/ROCKNIX/packages/hardware/quirks/devices/Anbernic RG DS/sleep.d/pre/99-drastic-stop b/projects/ROCKNIX/packages/hardware/quirks/devices/Anbernic RG DS/sleep.d/pre/99-drastic-stop new file mode 100755 index 0000000000..add3d0f9db --- /dev/null +++ b/projects/ROCKNIX/packages/hardware/quirks/devices/Anbernic RG DS/sleep.d/pre/99-drastic-stop @@ -0,0 +1,7 @@ +#!/bin/sh + +# DraStic specifically needs to be told to stop so it doesn't backlog dynarec +# instructions while the cpu is clocking down before sleep fully completes +if pgrep drastic; then + kill -STOP $(pidof drastic) +fi \ No newline at end of file