diff --git a/Makefile b/Makefile
index 418d4e0cd..beddd6ecd 100644
--- a/Makefile
+++ b/Makefile
@@ -101,6 +101,9 @@ docker-%: GLOBAL_SETTINGS := $(shell if [ -f "${HOME}/.ROCKNIX/options" ]; then
# LOCAL_SSH_KEYS_FILE is a variable that contains the location of the authorized keys file for development build use. It will be mounted into the container if it exists.
docker-%: LOCAL_SSH_KEYS_FILE := $(shell if [ -n "${LOCAL_SSH_KEYS_FILE}" ]; then echo "-v \"${LOCAL_SSH_KEYS_FILE}:${LOCAL_SSH_KEYS_FILE}\""; else echo ""; fi)
+# EMULATIONSTATION_SRC is a variable that contains the location of local emulationstation source code. It will be mounted into the container if it exists.
+docker-%: EMULATIONSTATION_SRC := $(shell if [ -n "${EMULATIONSTATION_SRC}" ]; then echo "-v \"${EMULATIONSTATION_SRC}:${EMULATIONSTATION_SRC}\""; else echo ""; fi)
+
# UID is the user ID of current user - ensures docker sets file permissions properly
docker-%: UID := $(shell id -u)
@@ -141,5 +144,4 @@ docker-image-pull:
# Wire up docker to call equivalent make files using % to match and $* to pass the value matched by %
docker-%:
- BUILD_DIR=$(DOCKER_WORK_DIR) $(DOCKER_CMD) run $(PODMAN_ARGS) $(INTERACTIVE) --init --env-file .env --rm --user $(UID):$(GID) $(GLOBAL_SETTINGS) $(LOCAL_SSH_KEYS_FILE) -v $(PWD):$(DOCKER_WORK_DIR) -w $(DOCKER_WORK_DIR) $(DOCKER_EXTRA_OPTS) $(DOCKER_IMAGE) $(COMMAND)
-
+ BUILD_DIR=$(DOCKER_WORK_DIR) $(DOCKER_CMD) run $(PODMAN_ARGS) $(INTERACTIVE) --init --env-file .env --rm --user $(UID):$(GID) $(GLOBAL_SETTINGS) $(LOCAL_SSH_KEYS_FILE) $(EMULATIONSTATION_SRC) -v $(PWD):$(DOCKER_WORK_DIR) -w $(DOCKER_WORK_DIR) $(DOCKER_EXTRA_OPTS) $(DOCKER_IMAGE) $(COMMAND)
\ No newline at end of file
diff --git a/config/arch.aarch64 b/config/arch.aarch64
index fd61f33c7..1a1ae6932 100644
--- a/config/arch.aarch64
+++ b/config/arch.aarch64
@@ -10,20 +10,27 @@
# determine architecture's family
case $TARGET_CPU in
- generic|cortex-a35|cortex-a53|cortex-a57|cortex-a72|exynos-m1|qdf24xx|thunderx|xgene1|cortex-a57.cortex-a53|cortex-a72.cortex-a53|cortex-a55|cortex-a76.cortex-a55|cortex-a73.cortex-a53)
+ generic|cortex-a35|cortex-a53|cortex-a57|cortex-a72|exynos-m1|qdf24xx|thunderx|xgene1|cortex-a57.cortex-a53|cortex-a72.cortex-a53|cortex-a73.cortex-a53)
TARGET_SUBARCH=aarch64
TARGET_VARIANT=armv8-a
TARGET_ABI=eabi
TARGET_FEATURES+=" neon"
+ # This only makes sense for 8.0-a, later revisions have LSE
+ TARGET_CFLAGS=" -mno-outline-atomics"
;;
+ cortex-a55|cortex-a76.cortex-a55)
+ TARGET_SUBARCH=aarch64
+ TARGET_VARIANT=armv8.2-a
+ TARGET_ABI=eabi
+ TARGET_FEATURES+=" neon"
+ ;;
+
esac
TARGET_GCC_ARCH=${TARGET_SUBARCH/-}
TARGET_KERNEL_ARCH=arm64
# setup ARCH specific *FLAGS
- TARGET_CFLAGS="-march=${TARGET_VARIANT}${TARGET_CPU_FLAGS} -mabi=lp64 -Wno-psabi -mtune=$TARGET_CPU"
-# Disable runtime checking support of ARMv8.0's optional LSE feature. Breaks gdb and mesa compile.
- TARGET_CFLAGS="${TARGET_CFLAGS} -mno-outline-atomics"
+ TARGET_CFLAGS="${TARGET_CFLAGS} -march=${TARGET_VARIANT}${TARGET_CPU_FLAGS} -mabi=lp64 -Wno-psabi -mtune=$TARGET_CPU"
TARGET_LDFLAGS="-march=${TARGET_VARIANT}${TARGET_CPU_FLAGS} -mtune=$TARGET_CPU"
GCC_OPTS="--with-abi=lp64 --with-arch=$TARGET_VARIANT"
diff --git a/config/arch.arm b/config/arch.arm
index 08f1cef46..de5ce2016 100644
--- a/config/arch.arm
+++ b/config/arch.arm
@@ -47,6 +47,13 @@
TARGET_FPU_FLAGS="-mfloat-abi=$TARGET_FLOAT -mfpu=$TARGET_FPU"
TARGET_FEATURES+=" neon"
;;
+ cortex-a55|cortex-a76.cortex-a55)
+ TARGET_SUBARCH=armv8.2-a
+ TARGET_ABI=eabi
+ TARGET_FPU_FLAGS="-mfloat-abi=$TARGET_FLOAT -mfpu=$TARGET_FPU"
+ TARGET_FEATURES+=" neon"
+ ;;
+
esac
# if [ "${TARGET_FLOAT}" = "hard" ]; then
diff --git a/config/optimize b/config/optimize
index 1421a5d4e..252b91546 100644
--- a/config/optimize
+++ b/config/optimize
@@ -34,13 +34,13 @@ LDFLAGS_OPTIM_LINKER_GOLD="-fuse-ld=gold"
LDFLAGS_OPTIM_LINKER_MOLD="-fuse-ld=mold"
# default compiler optimization
-CFLAGS_OPTIM_DEFAULT="-O3 -fomit-frame-pointer -DNDEBUG"
+CFLAGS_OPTIM_DEFAULT="-O3 -DNDEBUG"
CXXFLAGS_OPTIM_DEFAULT="${CFLAGS_OPTIM_DEFAULT}"
# speed flag
-CFLAGS_OPTIM_SPEED="-Ofast -fomit-frame-pointer -DNDEBUG"
+CFLAGS_OPTIM_SPEED="-Ofast -DNDEBUG"
CXXFLAGS_OPTIM_SPEED="${CFLAGS_OPTIM_SPEED}"
# size flag
-CFLAGS_OPTIM_SIZE="-Os -fomit-frame-pointer -DNDEBUG"
+CFLAGS_OPTIM_SIZE="-Os -DNDEBUG"
CXXFLAGS_OPTIM_SIZE="${CFLAGS_OPTIM_SIZE}"
# debug settings
CFLAGS_OPTIM_DEBUG="-ggdb -Og"
diff --git a/distributions/ROCKNIX/options b/distributions/ROCKNIX/options
index e22cc1c49..dab8ad33e 100644
--- a/distributions/ROCKNIX/options
+++ b/distributions/ROCKNIX/options
@@ -42,15 +42,16 @@
# Define package sets to clean based on the type of build being executed.
# This should be updated to be more dynamic in the future.
- CLEAN_OS_BASE="emulators system-utils modules quirks autostart rocknix"
+ CLEAN_OS_BASE="emulators system-utils modules quirks autostart rocknix kernel-firmware"
CLEAN_NETWORK=""
CLEAN_EMU_32BIT="lib32 box86 pcsx_rearmed-lr arm"
# Sway depends on it, weston will use it if it's built but we don't want that.
CLEAN_WESTON="libdisplay-info sway"
-# Packages to clean for S922X platform - all vary based on VULKAN_SUPPORT
- CLEAN_S922X="beetle-psx-lr dolphin-sa duckstation-sa fileman emulationstation flycast-lr flycast-sa"
- CLEAN_S922X+=" gmu gzdoom-sa libplacebo lime3ds-sa linux mali-bifrost mesa moonlight parallel-n64-lr"
- CLEAN_S922X+=" pipewire portmaster ppsspp-sa qt5 retroarch SDL2"
+# Packages to clean for S922X platform - all vary based on VULKAN_SUPPORT or USE_MALI
+ CLEAN_S922X="beetle-psx-lr dolphin-sa drastic-sa duckstation-sa fileman emulationstation"
+ CLEAN_S922X+=" flycast-lr flycast-sa gmu gzdoom-sa libplacebo lime3ds-sa linux mali-bifrost"
+ CLEAN_S922X+=" mesa moonlight parallel-n64-lr pipewire portmaster ppsspp-sa qt5 retroarch"
+ CLEAN_S922X+=" wayland SDL2"
# build and install rocknix joypad driver (yes / no)
ROCKNIX_JOYPAD="no"
diff --git a/documentation/PER_DEVICE_DOCUMENTATION/AMD64/SUPPORTED_EMULATORS_AND_CORES.md b/documentation/PER_DEVICE_DOCUMENTATION/AMD64/SUPPORTED_EMULATORS_AND_CORES.md
index c88251e06..6cb10ace2 100644
--- a/documentation/PER_DEVICE_DOCUMENTATION/AMD64/SUPPORTED_EMULATORS_AND_CORES.md
+++ b/documentation/PER_DEVICE_DOCUMENTATION/AMD64/SUPPORTED_EMULATORS_AND_CORES.md
@@ -73,6 +73,7 @@ This document describes all available systems emulators and cores available for
|Nintendo|Game Boy Color (Hacks) (gbch)|1998|`gbch`|.gb .gbc .zip .7z|**retroarch:** gambatte (default)
**retroarch:** sameboy
**retroarch:** gearboy
**retroarch:** tgbdual
**retroarch:** mgba
**retroarch:** vbam
**mednafen:** gb
|
|Nintendo|GameCube (gamecube)|2001|`gamecube`|.gcm .iso .gcz .ciso .wbfs .rvz .dol|**dolphin:** dolphin-sa-gc (default)
**retroarch:** dolphin
|
|Nintendo|NES (Hacks) (nesh)|1985|`nesh`|.nes .unif .unf .zip .7z|**retroarch:** nestopia (default)
**retroarch:** fceumm
**retroarch:** quicknes
**retroarch:** mesen
**mednafen:** nesh
|
+|Nintendo|Nintendo 3DS (3ds)|2010|`3ds`|.3ds .3dsx .elf .axf .cci .cxi .app|**lime3ds:** lime3ds-sa (default)
|
|Nintendo|Nintendo 64 (n64)|1996|`n64`|.z64 .n64 .v64 .zip .7z|**retroarch:** mupen64plus_next (default)
**retroarch:** mupen64plus
**retroarch:** parallel_n64
**mupen64plus:** mupen64plus-sa
|
|Nintendo|Nintendo DS (nds)|2005|`nds`|.nds .zip .7z|**retroarch:** melonds (default)
**retroarch:** desmume
**melonds:** melonds-sa
|
|Nintendo|Nintendo Entertainment System (nes)|1985|`nes`|.nes .unif .unf .zip .7z|**retroarch:** nestopia (default)
**retroarch:** fceumm
**retroarch:** quicknes
**retroarch:** mesen
**mednafen:** nes
|
@@ -100,11 +101,11 @@ This document describes all available systems emulators and cores available for
|Sega|Mega Drive (megadrive)|1990|`megadrive`|.bin .gen .md .sg .smd .zip .7z|**retroarch:** genesis_plus_gx (default)
**retroarch:** genesis_plus_gx_wide
**retroarch:** picodrive
**mednafen:** md
|
|Sega|Mega Drive (megadrive-japan)|1988|`megadrive-japan`|.bin .gen .md .sg .smd .zip .7z|**retroarch:** genesis_plus_gx (default)
**retroarch:** genesis_plus_gx_wide
**retroarch:** picodrive
**mednafen:** md
|
|Sega|Naomi (naomi)|1998|`naomi`|.lst .bin .dat .zip .7z|**retroarch:** flycast2021
**retroarch:** flycast (default)
**flycast:** flycast-sa
|
-|Sega|Saturn (saturn)|1994|`saturn`|.cue .chd .iso .zip|**kronos:** kronos-sa
**retroarch:** yabasanshiro (default)
**retroarch:** kronos
**retroarch:** beetle_saturn
**mednafen:** ss
**kronos:** kronos-sa (default)
|
+|Sega|Saturn (saturn)|1994|`saturn`|.cue .chd .iso .zip|**retroarch:** yabasanshiro (default)
**retroarch:** beetle_saturn
**mednafen:** ss
|
|Sega|Sega 32X (sega32x)|1994|`sega32x`|.32x .smd .bin .md .zip .7z|**retroarch:** picodrive (default)
|
|Sega|Sega CD (segacd)|1991|`segacd`|.chd .cue .iso .m3u|**retroarch:** genesis_plus_gx (default)
**retroarch:** picodrive
|
|Sega|SG-1000 (sg-1000)|1983|`sg-1000`|.bin .sg .zip .7z|**retroarch:** gearsystem (default)
**retroarch:** genesis_plus_gx
**retroarch:** picodrive
|
-|Sega|ST-V (st-v)|1995|`st-v`|.zip .ZIP|**retroarch:** kronos
**mednafen:** ss
|
+|Sega|ST-V (st-v)|1995|`st-v`|.zip .ZIP|**mednafen:** ss (default)
|
|Sharp|X1 (x1)|1982|`x1`|.dx1 .2d .2hd .tfd .d88 .88d .hdm .xdf .dup .tap .cmd .zip .7z|**retroarch:** x1 (default)
|
|Sharp|x68000 (x68000)|1987|`x68000`|.dim .img .d88 .hdm .dup .2hd .xdf .hdf .cmd .m3u .zip .7z|**retroarch:** px68k (default)
|
|Sinclair|ZX Spectrum (zxspectrum)|1982|`zxspectrum`|.tzx .tap .z80 .rzx .scl .trd .dsk .zip .7z|**retroarch:** fuse
|
@@ -117,7 +118,7 @@ This document describes all available systems emulators and cores available for
|Sony|PlayStation (psx)|1994|`psx`|.bin .cue .img .mdf .pbp .toc .cbn .m3u .ccd .chd .iso|**retroarch:** beetle_psx (default)
**mednafen:** psx
**duckstation:** duckstation-sa
**retroarch:** duckstation
**retroarch:** swanstation
|
|Sony|PlayStation 2 (ps2)|2000|`ps2`|.iso .mdf .nrg .bin .img .dump .gz .cso .chd|**pcsx2:** pcsx2-sa (default)
**retroarch:** pcsx2
|
|Sony|PlayStation 3 (ps3)|2006|`ps3`|.ps3 .psn|**rpcs3:** rpcs3-sa (default)
|
-|Sony|PlayStation Portable (psp)|2004|`psp`|.iso .cso .pbp .chd|**ppsspp:** ppsspp-sa (default)
**retroarch:** ppsspp
|
+|Sony|PlayStation Portable (psp)|2004|`psp`|.iso .cso .pbp .chd|**ppsspp:** ppsspp-sa (default)
|
|Sony|PlayStation Vita (psvita)|2011|`launcher`|.sh .psvita|**vita3k:** vita3k-sa (default)
|
|Sony|PSP Minis (pspminis)|2004|`pspminis`|.iso .cso .pbp|**ppsspp:** ppsspp-sa (default)
**retroarch:** ppsspp
|
|Sun Microsystems|J2ME (j2me)|2002|`j2me`|.jar|**retroarch:** freej2me (default)
|
diff --git a/documentation/PER_DEVICE_DOCUMENTATION/H700/SUPPORTED_EMULATORS_AND_CORES.md b/documentation/PER_DEVICE_DOCUMENTATION/H700/SUPPORTED_EMULATORS_AND_CORES.md
new file mode 100644
index 000000000..b4dbc8f92
--- /dev/null
+++ b/documentation/PER_DEVICE_DOCUMENTATION/H700/SUPPORTED_EMULATORS_AND_CORES.md
@@ -0,0 +1,124 @@
+ [![Latest Version](https://img.shields.io/github/release/ROCKNIX/distribution.svg?color=5998FF&label=latest%20version&style=flat-square)](https://github.com/ROCKNIX/distribution/releases/latest) [![Activity](https://img.shields.io/github/commit-activity/m/ROCKNIX/distribution?color=5998FF&style=flat-square)](https://github.com/ROCKNIX/distribution/commits) [![Pull Requests](https://img.shields.io/github/issues-pr-closed/ROCKNIX/distribution?color=5998FF&style=flat-square)](https://github.com/ROCKNIX/distribution/pulls) [![Discord Server](https://img.shields.io/discord/948029830325235753?color=5998FF&label=chat&style=flat-square)](https://discord.gg/seTxckZjJy)
+#
+
+# Supported Systems Emulators and Cores
+This document describes all available systems emulators and cores available for the device.
+
+|Manufacturer|System|Release Date|Games Path|Supported Extensions|Emulator / Core|
+|----|----|----|----|----|----|
+| System|Media Player (mplayer)|System|`mplayer`|.mp4 .mkv .avi .mov .wmv .m3u .mpg .ytb .twi .sh .mp3 .aac .mka .dts .flac .ogg .m4a .ac3 .opus .wav .wv .eac33 .thd|**mplayer:** mplayer (default)
|
+| System|Moonlight Game Streaming (moonlight)|System|`moonlight`|.sh||
+| System|Music Player (music)|System|`playlists`|.m3u .sh|**gmu:** gmu (default)
|
+| System|Ports (ports)|System|`ports`|.sh|**portmaster:** portmaster (default)
|
+| System|Screenshots (imageviewer)|System|`screenshots`|.jpg .jpeg .png .bmp .psd .tga .gif .hdr .pic .ppm .pgm .mkv .pdf .mp4 .avi||
+| System|Tools (tools)|System|`modules`|.sh||
+|Amstrad|Amstrad CPC (amstradcpc)|1984|`amstradcpc`|.dsk .cpr .sna .tap .cdt .kcr .voc .m3u .zip .7z|**retroarch:** crocods (default)
**retroarch:** cap32
|
+|Apple|Macintosh (macintosh)|1984|`mac`|.dsk .img .hfv .cmd .zip|**retroarch:** minivmac (default)
|
+|Arcade|Arcade (arcade)|0000|`arcade`|.zip .7z|**retroarch:** mame2003_plus (default)
**retroarch:** mame2010
**retroarch:** mame2015
**retroarch:** fbneo
**retroarch:** fbalpha2012
**retroarch:** fbalpha2019
**retroarch:** mame
|
+|Arcade|Daphne (daphne)|1996|`daphne`|.daphne .singe|**hypseus-singe:** hypseus-singe (default)
**retroarch:** daphne
|
+|Arcade|Final Burn Neo (fbn)|2002|`fbneo`|.7z .zip|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** mame2015
**retroarch:** mame
**retroarch:** fbalpha2012
**retroarch:** fbalpha2019
|
+|Arcade|MAME (mame)|1997|`mame`|.7z .zip|**retroarch:** mame2003_plus (default)
**retroarch:** mame2010
**retroarch:** mame2015
**retroarch:** mame
**retroarch:** fbneo
**retroarch:** fbalpha2012
**retroarch:** fbalpha2019
|
+|Arduboy|Arduboy (arduboy)|2014|`arduboy`|.hex|**retroarch:** arduous (default)
|
+|Atari|Atari 2600 (atari2600)|1977|`atari2600`|.a26 .bin .zip .7z|**retroarch:** stella (default)
|
+|Atari|Atari 5200 (atari5200)|1982|`atari5200`|.rom .xfd .atr .atx .cdm .cas .car .bin .a52 .xex .zip .7z|**retroarch:** a5200 (default)
**retroarch:** atari800
|
+|Atari|Atari 7800 (atari7800)|1986|`atari7800`|.a78 .bin .zip .7z|**retroarch:** prosystem (default)
|
+|Atari|Atari 800 (atari800)|1979|`atari800`|.rom .xfd .atr .atx .cdm .cas .car .bin .a52 .xex .zip .7z|**retroarch:** atari800 (default)
|
+|Atari|Atari Jaguar (atarijaguar)|1993|`atarijaguar`|.j64 .jag .rom .abs .cof .bin .prg|**retroarch:** virtualjaguar (default)
|
+|Atari|Atari Lynx (atarilynx)|1989|`atarilynx`|.lnx .lyx .o .zip .7z|**retroarch:** handy (default)
**retroarch:** beetle_lynx
**mednafen:** lynx
|
+|Atari|Atari ST (atarist)|1985|`atarist`|.st .msa .stx .dim .ipf .m3u .zip .7z|**retroarch:** hatari (default)
**hatarisa:** hatarisa
|
+|Bandai|SuFami Turbo (sufami)|1996|`sufami`|.st .zip .7z|**retroarch:** snes9x (default)
|
+|Bandai|Wonderswan (wonderswan)|1999|`wonderswan`|.ws .wsc .zip .7z|**retroarch:** beetle_wswan (default)
**mednafen:** wswan
|
+|Bandai|Wonderswan Color (wonderswancolor)|2000|`wonderswancolor`|.ws .wsc .zip .7z|**retroarch:** beetle_wswan (default)
**mednafen:** wswan
|
+|belogic|Uzebox (uzebox)|2008|`uzebox`|.uze|**retroarch:** uzem (default)
|
+|Capcom|CPS-I (cps1)|1988|`cps1`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**AdvanceMame:** AdvanceMame
|
+|Capcom|CPS-II (cps2)|1993|`cps2`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**AdvanceMame:** AdvanceMame
|
+|Capcom|CPS-III (cps3)|1996|`cps3`|.zip .7z|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** mame2010
**retroarch:** fbalpha2012
**AdvanceMame:** AdvanceMame
|
+|Coleco|ColecoVision (colecovision)|1982|`coleco`|.bin .col .rom .zip .7z|**retroarch:** gearcoleco (default)
**retroarch:** bluemsx
**retroarch:** smsplus
|
+|Commodore|Amiga (amiga)|1985|`amiga`|.zip .adf .uae .ipf .dms .adz .lha .m3u .hdf .hdz|**retroarch:** puae2021 (default)
**retroarch:** puae
**amiberry:** amiberry
**retroarch:** uae4arm
|
+|Commodore|Amiga CD32 (amigacd32)|1994|`amigacd32`|.iso .cue .lha .chd|**retroarch:** puae2021 (default)
**retroarch:** puae
**retroarch:** uae4arm
|
+|Commodore|Commodore 128 (c128)|1985|`c128`|.d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_x128 (default)
**vicesa:** x128
|
+|Commodore|Commodore 16 (c16)|1984|`c16`|.d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_xplus4 (default)
**vicesa:** xplus4
|
+|Commodore|Commodore 64 (c64)|1982|`c64`|.d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_x64 (default)
**vicesa:** x64sc
|
+|Commodore|Commodore PET (pet)|1977|`pet`|.20 .a0 .b0 .d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .gz .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_xpet (default)
|
+|Commodore|VIC-20 (vic20)|1980|`vic20`|.20 .a0 .b0 .d64 .d71 .d80 .d81 .d82 .g64 .g41 .x64 .t64 .tap .prg .p00 .crt .bin .gz .d6z .d7z .d8z .g6z .g4z .x6z .cmd .m3u .vsf .nib .nbz .zip|**retroarch:** vice_xvic (default)
**vicesa:** xvic
|
+|EPOCH/YENO|Super Cassette Vision (scv)|1984|`scv`|.cart .bin .rom .0 .zip|**retroarch:** emuscv (default)
|
+|Fairchild|Fairchild Channel F (channelf)|1976|`channelf`|.bin .chf .zip .7z|**retroarch:** freechaf (default)
|
+|id Software|Doom (doom)|1993|`doom`|.doom|**gzdoom:** gzdoom-sa (default)
|
+|id Software|iDtech (idtech)|1991|`idtech`|.sh|**retroarch:** idtech
|
+|Infocom|Z-machine (zmachine)|1979|`zmachine`|.dat .z1 .z2 .z3 .z4 .z5 .z6 .zip|**retroarch:** mojozork (default)
|
+|Lexaloffle|PICO-8 (pico-8)|2015|`pico-8`|.p8 .png|**pico-8:** pico8 (default)
**retroarch:** fake08
|
+|Magnavox|Odyssey 2 (odyssey2)|1979|`odyssey`|.bin .zip .7z|**retroarch:** o2em (default)
|
+|Mattel|Intellivision (intellivision)|1979|`intellivision`|.int .bin .rom .zip .7z|**retroarch:** freeintv (default)
|
+|Microsoft|DOS (pc)|1981|`pc`|.com .bat .exe .dosz|**retroarch:** dosbox_pure
**retroarch:** dosbox_svn
|
+|Microsoft|MSX (msx)|1983|`msx`|.dsk .mx1 .mx2 .rom .zip .7z .m3u|**retroarch:** bluemsx (default)
**retroarch:** fmsx
|
+|Microsoft|MSX 2 (msx2)|1988|`msx2`|.dsk .mx1 .mx2 .rom .zip .7z .m3u|**retroarch:** bluemsx (default)
**retroarch:** fmsx
|
+|NEC|PC Engine (pcengine)|1987|`pcengine`|.pce .bin .zip .7z|**retroarch:** beetle_pce_fast (default)
**retroarch:** beetle_pce
**retroarch:** beetle_supergrafx
**mednafen:** pce
**mednafen:** pce_fast
|
+|NEC|PC Engine CD (pcenginecd)|1988|`pcenginecd`|.cue .ccd .chd .toc .m3u|**retroarch:** beetle_pce_fast (default)
**retroarch:** beetle_pce
**retroarch:** beetle_supergrafx
**mednafen:** pce
**mednafen:** pce_fast
|
+|NEC|PC-8800 (pc-8800)|1981|`pc88`|.d88 .u88 .m3u|**retroarch:** quasi88 (default)
|
+|NEC|PC-9800 (pc-9800)|1983|`pc98`|.d98 .zip .fdi .fdd .2hd .tfd .d88 .hdm .xdf .dup .hdi .thd .nhd .hdd .hdn|**retroarch:** np2kai (default)
|
+|NEC|PC-FX (pcfx)|1994|`pcfx`|.chd .cue .ccd .toc|**retroarch:** beetle_pcfx (default)
**mednafen:** pcfx
|
+|NEC|SuperGrafx (supergrafx)|1989|`sgfx`|.pce .sgx .cue .ccd .chd .zip .7z|**retroarch:** beetle_supergrafx
**retroarch:** beetle_pce
**mednafen:** pce
**mednafen:** pce_fast
|
+|NEC|TurboGrafx-16 (tg16)|1989|`tg16`|.pce .bin .zip .7z|**retroarch:** beetle_pce_fast (default)
**retroarch:** beetle_pce
**retroarch:** beetle_supergrafx
**mednafen:** pce
**mednafen:** pce_fast
|
+|NEC|TurboGrafx-CD (tg16cd)|1989|`tg16cd`|.cue .ccd .chd .toc .m3u|**retroarch:** beetle_pce_fast (default)
**retroarch:** beetle_pce
**retroarch:** beetle_supergrafx
**mednafen:** pce
**mednafen:** pce_fast
|
+|Nesbox|TIC-80 (tic-80)|2017|`tic-80`|.tic|**retroarch:** tic80 (default)
|
+|Nintendo|Famicom (famicom)|1983|`famicom`|.nes .unif .unf .zip .7z|**retroarch:** nestopia (default)
**retroarch:** fceumm
**retroarch:** quicknes
**retroarch:** mesen
**mednafen:** nes
|
+|Nintendo|Famicom Disk System (fds)|1986|`fds`|.fds .zip .7z|**retroarch:** nestopia (default)
**retroarch:** fceumm
**retroarch:** quicknes
**retroarch:** mesen
**mednafen:** nes
|
+|Nintendo|Game & Watch (gameandwatch)|1980|`gameandwatch`|.mgw .zip .7z|**retroarch:** gw
**retroarch:** mame
|
+|Nintendo|Game Boy (gb)|1989|`gb`|.gb .gbc .zip .7z|**retroarch:** gambatte (default)
**retroarch:** sameboy
**retroarch:** gearboy
**retroarch:** tgbdual
**retroarch:** mgba
**retroarch:** vbam
**mednafen:** gb
|
+|Nintendo|Game Boy (Hacks) (gbh)|1989|`gbh`|.gb .zip .7z|**retroarch:** gambatte (default)
**retroarch:** sameboy
**retroarch:** gearboy
**retroarch:** tgbdual
**retroarch:** mgba
**retroarch:** vbam
**mednafen:** gb
|
+|Nintendo|Game Boy Advance (gba)|2001|`gba`|.gba .zip .7z|**retroarch:** mgba (default)
**retroarch:** gbsp
**retroarch:** vbam
**retroarch:** vba_next
**retroarch:** beetle_gba
**retroarch:** gpsp
**mednafen:** gba
|
+|Nintendo|Game Boy Advance (Hacks) (gbah)|2001|`gbah`|.gba .zip .7z|**retroarch:** mgba (default)
**retroarch:** gbsp
**retroarch:** vbam
**retroarch:** vba_next
**retroarch:** beetle_gba
**mednafen:** gba
|
+|Nintendo|Game Boy Color (gbc)|1998|`gbc`|.gb .gbc .zip .7z|**retroarch:** gambatte (default)
**retroarch:** sameboy
**retroarch:** gearboy
**retroarch:** tgbdual
**retroarch:** mgba
**retroarch:** vbam
**mednafen:** gb
|
+|Nintendo|Game Boy Color (Hacks) (gbch)|1998|`gbch`|.gb .gbc .zip .7z|**retroarch:** gambatte (default)
**retroarch:** sameboy
**retroarch:** gearboy
**retroarch:** tgbdual
**retroarch:** mgba
**retroarch:** vbam
**mednafen:** gb
|
+|Nintendo|NES (Hacks) (nesh)|1985|`nesh`|.nes .unif .unf .zip .7z|**retroarch:** nestopia (default)
**retroarch:** fceumm
**retroarch:** quicknes
**retroarch:** mesen
**mednafen:** nesh
|
+|Nintendo|Nintendo 64 (n64)|1996|`n64`|.z64 .n64 .v64 .zip .7z|**retroarch:** mupen64plus_next (default)
**retroarch:** mupen64plus
**retroarch:** parallel_n64
**mupen64plus:** mupen64plus-sa
|
+|Nintendo|Nintendo DS (nds)|2005|`nds`|.nds .zip .7z|**drastic:** drastic-sa (default)
**retroarch:** melonds
**retroarch:** desmume
|
+|Nintendo|Nintendo Entertainment System (nes)|1985|`nes`|.nes .unif .unf .zip .7z|**retroarch:** nestopia (default)
**retroarch:** fceumm
**retroarch:** quicknes
**retroarch:** mesen
**mednafen:** nes
|
+|Nintendo|Pokémon Mini (pokemini)|2001|`pokemini`|.min .zip .7z|**retroarch:** pokemini (default)
|
+|Nintendo|Satellaview (satellaview)|1995|`satellaview`|.smc .fig .bs .sfc .bsx .swc .zip .7z|**retroarch:** snes9x (default)
**retroarch:** snes9x2010
**retroarch:** snes9x2002
**retroarch:** snes9x2005_plus
|
+|Nintendo|Super Famicom (sfc)|1990|`sfc`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)
**retroarch:** snes9x2010
**retroarch:** snes9x2002
**retroarch:** snes9x2005_plus
**retroarch:** beetle_supafaust
**retroarch:** bsnes_mercury_performance
|
+|Nintendo|Super NES MSU-1 (snesmsu1)|2012|`snesmsu1`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)
**retroarch:** beetle_supafaust
**mednafen:** snes_faust
|
+|Nintendo|Super Nintendo (Hacks) (snesh)|1991|`snesh`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)
**retroarch:** snes9x2010
**retroarch:** snes9x2002
**retroarch:** snes9x2005_plus
**retroarch:** beetle_supafaust
**retroarch:** bsnes_mercury_performance
|
+|Nintendo|Super Nintendo (snes)|1991|`snes`|.smc .fig .sfc .swc .zip .7z|**retroarch:** snes9x (default)
**retroarch:** snes9x2010
**retroarch:** snes9x2002
**retroarch:** snes9x2005_plus
**retroarch:** beetle_supafaust
**retroarch:** bsnes_mercury_performance
|
+|Nintendo|Virtual Boy (virtualboy)|1995|`virtualboy`|.vb .zip .7z|**retroarch:** beetle_vb (default)
**mednafen:** vb
|
+|Palm, Inc.|Palm OS (palm)|1996|`palm`|.prc .pqa .img .pdb .zip|**retroarch:** mu (default)
|
+|Panasonic|3DO (3do)|1993|`3do`|.iso .bin .chd .cue|**retroarch:** opera (default)
|
+|Philips|CD-i (cdi)|1991|`cdi`|.chd .cue .iso|**retroarch:** same_cdi (default)
|
+|Philips|VideoPac (videopac)|1978|`videopac`|.bin .zip .7z|**retroarch:** o2em (default)
|
+|Sammy|Atomiswave (atomiswave)|2003|`atomiswave`|.lst .bin .dat .zip .7z|**retroarch:** flycast (default)
**flycast:** flycast-sa
|
+|Sega|Dreamcast (dreamcast)|1998|`dreamcast`|.cdi .gdi .chd .m3u .cue|**retroarch:** flycast2021
**retroarch:** flycast (default)
**flycast:** flycast-sa
|
+|Sega|Game Gear (gamegear)|1990|`gamegear`|.bin .gg .zip .7z|**retroarch:** gearsystem (default)
**retroarch:** genesis_plus_gx
**retroarch:** picodrive
**retroarch:** smsplus
**mednafen:** gg
|
+|Sega|Game Gear (Hacks) (ggh)|1990|`gamegearh`|.bin .gg .zip .7z|**retroarch:** gearsystem (default)
**retroarch:** genesis_plus_gx
**retroarch:** picodrive
**retroarch:** smsplus
**mednafen:** gg
|
+|Sega|Genesis (genesis)|1989|`genesis`|.bin .gen .md .sg .smd .zip .7z|**retroarch:** genesis_plus_gx (default)
**retroarch:** genesis_plus_gx_wide
**retroarch:** picodrive
**mednafen:** md
|
+|Sega|Genesis (Hacks) (genh)|1989|`genh`|.bin .gen .md .sg .smd .zip .7z|**retroarch:** genesis_plus_gx (default)
**retroarch:** genesis_plus_gx_wide
**retroarch:** picodrive
**mednafen:** md
|
+|Sega|Master System (mastersystem)|1985|`mastersystem`|.bin .sms .zip .7z|**retroarch:** gearsystem (default)
**retroarch:** genesis_plus_gx
**retroarch:** picodrive
**retroarch:** smsplus
**mednafen:** sms
|
+|Sega|Mega CD (megacd)|1991|`megacd`|.chd .cue .iso .m3u|**retroarch:** genesis_plus_gx (default)
**retroarch:** picodrive
|
+|Sega|Mega Drive (megadrive)|1990|`megadrive`|.bin .gen .md .sg .smd .zip .7z|**retroarch:** genesis_plus_gx (default)
**retroarch:** genesis_plus_gx_wide
**retroarch:** picodrive
**mednafen:** md
|
+|Sega|Mega Drive (megadrive-japan)|1988|`megadrive-japan`|.bin .gen .md .sg .smd .zip .7z|**retroarch:** genesis_plus_gx (default)
**retroarch:** genesis_plus_gx_wide
**retroarch:** picodrive
**mednafen:** md
|
+|Sega|Naomi (naomi)|1998|`naomi`|.lst .bin .dat .zip .7z|**retroarch:** flycast2021
**retroarch:** flycast (default)
**flycast:** flycast-sa
|
+|Sega|Saturn (saturn)|1994|`saturn`|.cue .chd .iso .zip|**yabasanshiro:** yabasanshiro-sa (default)
**retroarch:** yabasanshiro
|
+|Sega|Sega 32X (sega32x)|1994|`sega32x`|.32x .smd .bin .md .zip .7z|**retroarch:** picodrive (default)
|
+|Sega|Sega CD (segacd)|1991|`segacd`|.chd .cue .iso .m3u|**retroarch:** genesis_plus_gx (default)
**retroarch:** picodrive
|
+|Sega|SG-1000 (sg-1000)|1983|`sg-1000`|.bin .sg .zip .7z|**retroarch:** gearsystem (default)
**retroarch:** genesis_plus_gx
**retroarch:** picodrive
|
+|Sega|ST-V (st-v)|1995|`st-v`|.zip .ZIP||
+|Sharp|X1 (x1)|1982|`x1`|.dx1 .2d .2hd .tfd .d88 .88d .hdm .xdf .dup .tap .cmd .zip .7z|**retroarch:** x1 (default)
|
+|Sharp|x68000 (x68000)|1987|`x68000`|.dim .img .d88 .hdm .dup .2hd .xdf .hdf .cmd .m3u .zip .7z|**retroarch:** px68k (default)
|
+|Sinclair|ZX Spectrum (zxspectrum)|1982|`zxspectrum`|.tzx .tap .z80 .rzx .scl .trd .dsk .zip .7z|**retroarch:** fuse
|
+|Sinclair|ZX81 (zx81)|1981|`zx81`|.tzx .p .t81 .zip .7z|**retroarch:** 81 (default)
|
+|Smith Engineering|Vectrex (vectrex)|1982|`vectrex`|.bin .gam .vec .zip .7z|**retroarch:** vecx (default)
|
+|SNK|Neo Geo (neogeo)|1990|`neogeo`|.7z .zip .neo|**retroarch:** fbneo (default)
**retroarch:** mame2003_plus
**retroarch:** fbalpha2012
**retroarch:** fbalpha2019
**retroarch:** mame2010
**retroarch:** mame2015
**retroarch:** mame
**retroarch:** geolith
|
+|SNK|Neo Geo CD (neocd)|1994|`neocd`|.cue .iso .chd|**retroarch:** neocd (default)
**retroarch:** fbneo
|
+|SNK|Neo Geo Pocket (ngp)|1998|`ngp`|.ngp .ngc .zip .7z|**retroarch:** beetle_ngp (default)
**retroarch:** race
**mednafen:** ngp
|
+|SNK|Neo Geo Pocket Color (ngpc)|1999|`ngpc`|.ngp .ngc .zip .7z|**retroarch:** beetle_ngp (default)
**retroarch:** race
**mednafen:** ngp
|
+|Sony|PlayStation (psx)|1994|`psx`|.bin .cue .img .mdf .pbp .toc .cbn .m3u .ccd .chd .iso|**retroarch:** pcsx_rearmed32 (default)
**retroarch:** pcsx_rearmed
**duckstation:** duckstation-sa
**retroarch:** duckstation
**retroarch:** swanstation
|
+|Sony|PlayStation Portable (psp)|2004|`psp`|.iso .cso .pbp .chd|**ppsspp:** ppsspp-sa (default)
|
+|Sony|PSP Minis (pspminis)|2004|`pspminis`|.iso .cso .pbp|**ppsspp:** ppsspp-sa (default)
**retroarch:** ppsspp
|
+|Sun Microsystems|J2ME (j2me)|2002|`j2me`|.jar|**retroarch:** freej2me (default)
|
+|Thomson|MO/TO family (TO7, TO7/70, TO8, TO8D, TO9, TO9+, MO5 and MO6) (moto)|1982|`moto`|.fd .sap .k7 .m7 .m5 .rom|**retroarch:** theodore (default)
|
+|Various|CHIP-8 / S-CHIP / XO-CHIP (chip-8)|1978|`chip-8`|.ch8 .sc8 .xo8|**retroarch:** jaxe (default)
|
+|Various|EasyRPG (easyrpg)|2003|`easyrpg`|.zip .easyrpg .ldb|**retroarch:** easyrpg (default)
|
+|Various|OpenBOR (openbor)|2003|`openbor`|.pak|**OpenBOR:** OpenBOR (default)
|
+|Various|ScummVM (scummvm)|2001|`games`|.sh .svm .scummvm|**scummvmsa:** scummvm (default)
**retroarch:** scummvm
|
+|Various|Vircon32 (vircon32)|2021|`vircon32`|.v32|**retroarch:** vircon32 (default)
|
+|Watara|Supervision (supervision)|1992|`supervision`|.sv .zip .7z|**retroarch:** potator (default)
|
+|Welback Holdings|Mega Duck (megaduck)|1993|`megaduck`|.bin .zip .7z|**retroarch:** sameduck (default)
|
diff --git a/packages/apps/gamecontrollerdb/config/gamecontrollerdb.txt b/packages/apps/gamecontrollerdb/config/gamecontrollerdb.txt
index 8e9abe7f3..ccf3b29ca 100644
--- a/packages/apps/gamecontrollerdb/config/gamecontrollerdb.txt
+++ b/packages/apps/gamecontrollerdb/config/gamecontrollerdb.txt
@@ -14,3 +14,4 @@
03001354474f2d556c74726120476100,GO-Ultra Gamepad,platform:Linux,a:b1,b:b0,dpdown:b15,dpleft:b16,guide:b11,+lefty:+a1,-leftx:-a0,+leftx:+a0,-lefty:-a1,leftshoulder:b5,leftstick:b12,lefttrigger:b7,dpright:b17,+righty:+a3,-rightx:-a2,+rightx:+a2,-righty:-a3,rightshoulder:b6,rightstick:b13,righttrigger:b8,back:b9,start:b10,dpup:b14,x:b3,y:b4,
1900d632010000000100000000010000,rg_arc_joypad,platform:Linux,x:b4,a:b0,b:b1,y:b3,back:b10,start:b11,dpleft:b14,dpdown:b13,dpright:b15,dpup:b12,leftshoulder:b6,lefttrigger:b8,rightshoulder:b7,righttrigger:b9,rightstick:b2,leftstick:b5,platform:Linux,
0300879bfeca00000550000011010000,CM5 Gamepad,platform:Linux,a:b1,b:b0,x:b3,y:b2,back:b5,guide:b14,start:b4,leftstick:b12,rightstick:b13,leftshoulder:b11,rightshoulder:b10,dpup:h0.1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:b6,righttrigger:b7,
+19007b94010000000100000000010000,gpio-keys-gamepad,platform:Linux,x:b2,a:b0,b:b1,y:b3,back:b8,guide:b10,start:b9,dpleft:b13,dpdown:b12,dpright:b14,dpup:b11,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,
diff --git a/packages/apps/gamecontrollerdb/package.mk b/packages/apps/gamecontrollerdb/package.mk
index 9464cbe22..1ca56f15e 100644
--- a/packages/apps/gamecontrollerdb/package.mk
+++ b/packages/apps/gamecontrollerdb/package.mk
@@ -20,6 +20,5 @@ makeinstall_target() {
then
cat ${PKG_DIR}/config/gamecontrollerdb.txt >${INSTALL}/usr/config/SDL-GameControllerDB/gamecontrollerdb.txt
fi
- sed -i '/RetroGame Joypad/d' ${PKG_BUILD}/gamecontrollerdb.txt
cat ${PKG_BUILD}/gamecontrollerdb.txt >>${INSTALL}/usr/config/SDL-GameControllerDB/gamecontrollerdb.txt
}
diff --git a/packages/apps/portmaster/sources/control.txt b/packages/apps/portmaster/sources/control.txt
index 204cb4b91..d2f8807be 100644
--- a/packages/apps/portmaster/sources/control.txt
+++ b/packages/apps/portmaster/sources/control.txt
@@ -60,6 +60,16 @@ case "${QUIRK_DEVICE}" in
lres="N"
sticks="2"
;;
+ "Anbernic RG35XX H")
+ profile="anbernic"
+ lres="N"
+ sticks="2"
+ ;;
+ "Anbernic RG35XX Plus")
+ profile="anbernic"
+ lres="N"
+ sticks="0"
+ ;;
*)
profile="rg552"
lres="N"
diff --git a/packages/audio/libao/package.mk b/packages/audio/libao/package.mk
index d1e8dae9c..fb603851b 100644
--- a/packages/audio/libao/package.mk
+++ b/packages/audio/libao/package.mk
@@ -11,3 +11,6 @@ PKG_LONGDESC="Libao is a cross-platform audio library that allows programs to ou
audio using a simple API on a wide variety of platforms."
PKG_BUILD_FLAGS="+pic"
+pre_configure_target() {
+export CFLAGS="${CFLAGS} -Wno-implicit-function-declaration"
+}
diff --git a/packages/audio/pipewire/package.mk b/packages/audio/pipewire/package.mk
index 63e69068d..75649cf52 100644
--- a/packages/audio/pipewire/package.mk
+++ b/packages/audio/pipewire/package.mk
@@ -2,7 +2,7 @@
# Copyright (C) 2021-present Team LibreELEC (https://libreelec.tv)
PKG_NAME="pipewire"
-PKG_VERSION="1.1.81"
+PKG_VERSION="1.1.83"
PKG_LICENSE="LGPL"
PKG_SITE="https://pipewire.org"
PKG_URL="https://github.com/PipeWire/pipewire/archive/${PKG_VERSION}.tar.gz"
@@ -80,6 +80,7 @@ PKG_MESON_OPTS_TARGET="-Ddocs=disabled \
-Dlegacy-rtkit=false"
pre_configure_target() {
+ export TARGET_CFLAGS="${TARGET_CFLAGS} -Wno-error=float-conversion"
export TARGET_LDFLAGS="${TARGET_LDFLAGS} -lncursesw -ltinfow"
}
diff --git a/packages/compat/box64/package.mk b/packages/compat/box64/package.mk
index f4ee4cc88..6f164c150 100644
--- a/packages/compat/box64/package.mk
+++ b/packages/compat/box64/package.mk
@@ -2,7 +2,7 @@
# Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS)
PKG_NAME="box64"
-PKG_VERSION="5b5723c5a50a607331787a14081c47ba8e7d9400"
+PKG_VERSION="b26ae5886ddc7d0d84595fb5b94878f50d488d42"
PKG_ARCH="aarch64"
PKG_LICENSE="MIT"
PKG_SITE="https://github.com/ptitSeb/box64"
diff --git a/packages/compat/box86/package.mk b/packages/compat/box86/package.mk
index 63373fa07..d186bf1fb 100644
--- a/packages/compat/box86/package.mk
+++ b/packages/compat/box86/package.mk
@@ -2,7 +2,7 @@
# Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS)
PKG_NAME="box86"
-PKG_VERSION="f5f1e1413d167eb0c4e2aa9a65ab251ce1e142c4"
+PKG_VERSION="c5bccdf300ff5017b7225e49a934c395c51f297b"
PKG_LICENSE="MIT"
PKG_SITE="https://github.com/ptitSeb/box86"
PKG_URL="${PKG_SITE}.git"
diff --git a/packages/compat/wine/package.mk b/packages/compat/wine/package.mk
index 9a5bdf669..8ab1b3757 100644
--- a/packages/compat/wine/package.mk
+++ b/packages/compat/wine/package.mk
@@ -2,7 +2,7 @@
# Copyright (C) 2024-present JELOS (https://github.com/JustEnoughLinuxOS)
PKG_NAME="wine"
-PKG_VERSION="9.11"
+PKG_VERSION="9.13"
PKG_LICENSE="MIT"
PKG_SITE="https://github.com/Kron4ek/Wine-Builds"
PKG_URL="${PKG_SITE}/releases/download/${PKG_VERSION}/wine-${PKG_VERSION}-x86.tar.xz"
diff --git a/packages/compress/unzip/package.mk b/packages/compress/unzip/package.mk
index 1fb825895..ab8342714 100644
--- a/packages/compress/unzip/package.mk
+++ b/packages/compress/unzip/package.mk
@@ -3,10 +3,10 @@
PKG_NAME="unzip"
PKG_VERSION="60"
-PKG_SHA256="036d96991646d0449ed0aa952e4fbe21b476ce994abc276e49d30e686708bd37"
+PKG_SHA256="002da7dccff8314cc6077794343990353935efbd3623a3c457ed0d8a0c1fbea1"
PKG_LICENSE="OSS"
PKG_SITE="http://www.info-zip.org/pub/infozip/"
-PKG_URL="https://sourceforge.net/projects/infozip/files/UnZip%206.x%20(latest)/UnZip%206.0/unzip60.tar.gz"
+PKG_URL="https://github.com/madler/unzip/archive/0b82c20ac7375b522215b567174f370be89a4b12.tar.gz"
PKG_DEPENDS_TARGET="toolchain"
PKG_LONGDESC="UnZip is an extraction utility for archives compressed in .zip format."
PKG_TOOLCHAIN="manual"
diff --git a/packages/compress/unzip/patches/fix-compile-with-gcc14.patch b/packages/compress/unzip/patches/fix-compile-with-gcc14.patch
new file mode 100644
index 000000000..6ee7a5180
--- /dev/null
+++ b/packages/compress/unzip/patches/fix-compile-with-gcc14.patch
@@ -0,0 +1,45 @@
+--- a/timezone.c 2004-11-13 08:35:12.000000000 +0000
++++ b/timezone.c 2024-05-01 09:22:13.780112533 +0000
+@@ -39,6 +39,7 @@
+
+ #include "zip.h"
+ #include "timezone.h"
++#include
+ #include
+ #include
+
+--- a/unix/configure 2008-06-20 03:32:20.000000000 +0000
++++ b/unix/configure 2024-05-01 09:27:12.149292690 +0000
+@@ -544,7 +595,7 @@
+ echo Check for errno declaration
+ cat > conftest.c << _EOF_
+ #include
+-main()
++int main()
+ {
+ errno = 0;
+ return 0;
+@@ -556,6 +607,7 @@
+
+ echo Check for directory libraries
+ cat > conftest.c << _EOF_
++#include
+ int main() { return closedir(opendir(".")); }
+ _EOF_
+
+@@ -621,11 +673,13 @@
+
+ echo Check for valloc
+ cat > conftest.c << _EOF_
+-main()
++#include
++int main()
+ {
+ #ifdef MMAP
+ valloc();
+ #endif
++ return 0;
+ }
+ _EOF_
+ $CC ${CFLAGS} -c conftest.c > /dev/null 2>/dev/null
+
diff --git a/packages/compress/zip/patches/fix-compile-with-gcc14.patch b/packages/compress/zip/patches/fix-compile-with-gcc14.patch
new file mode 100644
index 000000000..a4e970f74
--- /dev/null
+++ b/packages/compress/zip/patches/fix-compile-with-gcc14.patch
@@ -0,0 +1,122 @@
+--- a/timezone.c 2004-11-13 08:35:12.000000000 +0000
++++ b/timezone.c 2024-05-01 09:22:13.780112533 +0000
+@@ -39,6 +39,7 @@
+
+ #include "zip.h"
+ #include "timezone.h"
++#include
+ #include
+ #include
+
+--- a/unix/configure 2008-06-20 03:32:20.000000000 +0000
++++ b/unix/configure 2024-05-01 09:27:12.149292690 +0000
+@@ -509,17 +509,68 @@
+ # Check for missing functions
+ # add NO_'function_name' to flags if missing
+
+-for func in rmdir strchr strrchr rename mktemp mktime mkstemp
+-do
+- echo Check for $func
+- echo "int main(){ $func(); return 0; }" > conftest.c
+- $CC $BFLAG -o conftest conftest.c >/dev/null 2>/dev/null
+- [ $? -ne 0 ] && CFLAGS="${CFLAGS} -DNO_`echo $func | tr '[a-z]' '[A-Z]'`"
+-done
++echo Check for rmdir
++cat > conftest.c << _EOF_
++#include
++int main() { rmdir(""); return 0; }
++_EOF_
++$CC -o conftest conftest.c >/dev/null 2>/dev/null
++[ $? -ne 0 ] && CFLAGS="${CFLAGS} -DNO_RMDIR"
++
++echo Check for strchr
++cat > conftest.c << _EOF_
++#include
++int main() { strchr("", 0); return 0; }
++_EOF_
++$CC -o conftest conftest.c >/dev/null 2>/dev/null
++[ $? -ne 0 ] && CFLAGS="${CFLAGS} -DNO_STRCHR"
++
++echo Check for strrchr
++cat > conftest.c << _EOF_
++#include
++int main() { strrchr("",0); return 0; }
++_EOF_
++$CC -o conftest conftest.c >/dev/null 2>/dev/null
++[ $? -ne 0 ] && CFLAGS="${CFLAGS} -DNO_STRRCHR"
++
++echo Check for rename
++cat > conftest.c << _EOF_
++#include
++int main() { rename("",""); return 0; }
++_EOF_
++$CC -o conftest conftest.c >/dev/null 2>/dev/null
++[ $? -ne 0 ] && CFLAGS="${CFLAGS} -DNO_RENAME"
++
++echo Check for mktemp
++cat > conftest.c << _EOF_
++#include
++int main() { mktemp(""); return 0; }
++_EOF_
++$CC -o conftest conftest.c >/dev/null 2>/dev/null
++[ $? -ne 0 ] && CFLAGS="${CFLAGS} -DNO_MKTEMP"
++
++echo Check for mktime
++cat > conftest.c << _EOF_
++#include
++int main() { struct tm *t; mktime(t); return 0; }
++_EOF_
++$CC -o conftest conftest.c >/dev/null 2>/dev/null
++[ $? -ne 0 ] && CFLAGS="${CFLAGS} -DNO_MKTIME"
++
++echo Check for mkstemp
++cat > conftest.c << _EOF_
++#include
++int main() { mkstemp(""); return 0; }
++_EOF_
++$CC -o conftest conftest.c >/dev/null 2>/dev/null
++[ $? -ne 0 ] && CFLAGS="${CFLAGS} -DNO_MKSTEMP"
+
+
+ echo Check for memset
+-echo "int main(){ char k; memset(&k,0,0); return 0; }" > conftest.c
++cat > conftest.c << _EOF_
++#include
++int main() { char k; memset(&k,0,0); return 0; }
++_EOF_
+ $CC -o conftest conftest.c >/dev/null 2>/dev/null
+ [ $? -ne 0 ] && CFLAGS="${CFLAGS} -DZMEM"
+
+@@ -544,7 +595,7 @@
+ echo Check for errno declaration
+ cat > conftest.c << _EOF_
+ #include
+-main()
++int main()
+ {
+ errno = 0;
+ return 0;
+@@ -556,6 +607,7 @@
+
+ echo Check for directory libraries
+ cat > conftest.c << _EOF_
++#include
+ int main() { return closedir(opendir(".")); }
+ _EOF_
+
+@@ -621,11 +673,13 @@
+
+ echo Check for valloc
+ cat > conftest.c << _EOF_
+-main()
++#include
++int main()
+ {
+ #ifdef MMAP
+ valloc();
+ #endif
++ return 0;
+ }
+ _EOF_
+ $CC ${CFLAGS} -c conftest.c > /dev/null 2>/dev/null
+
diff --git a/packages/debug/libunwind/package.mk b/packages/debug/libunwind/package.mk
index 8d1a15e9f..60712210f 100644
--- a/packages/debug/libunwind/package.mk
+++ b/packages/debug/libunwind/package.mk
@@ -2,11 +2,11 @@
# Copyright (C) 2018-present Team LibreELEC (https://libreelec.tv)
PKG_NAME="libunwind"
-PKG_VERSION="1.6.2"
-PKG_SHA256="4a6aec666991fb45d0889c44aede8ad6eb108071c3554fcdff671f9c94794976"
+PKG_VERSION="1.8.1"
+PKG_SHA256="ddf0e32dd5fafe5283198d37e4bf9decf7ba1770b6e7e006c33e6df79e6a6157"
PKG_LICENSE="GPL"
-PKG_SITE="http://www.nongnu.org/libunwind/"
-PKG_URL="http://download.savannah.nongnu.org/releases/libunwind/libunwind-${PKG_VERSION}.tar.gz"
+PKG_SITE="https://github.com/libunwind/libunwind"
+PKG_URL="${PKG_SITE}/releases/download/v${PKG_VERSION}/libunwind-${PKG_VERSION}.tar.gz"
PKG_DEPENDS_TARGET="toolchain zlib"
PKG_LONGDESC="library to determine the call-chain of a program"
PKG_BUILD_FLAGS="+pic"
diff --git a/packages/debug/strace/package.mk b/packages/debug/strace/package.mk
index baa0d0ec8..85803e368 100644
--- a/packages/debug/strace/package.mk
+++ b/packages/debug/strace/package.mk
@@ -2,7 +2,7 @@
# Copyright (C) 2016-present Team LibreELEC (https://libreelec.tv)
PKG_NAME="strace"
-PKG_VERSION="6.6"
+PKG_VERSION="6.9"
PKG_LICENSE="BSD"
PKG_SITE="https://strace.io/"
PKG_URL="https://strace.io/files/${PKG_VERSION}/strace-${PKG_VERSION}.tar.xz"
diff --git a/packages/devel/cmake/package.mk b/packages/devel/cmake/package.mk
index b60f0a638..9f84db6d9 100644
--- a/packages/devel/cmake/package.mk
+++ b/packages/devel/cmake/package.mk
@@ -4,7 +4,7 @@
# Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS)
PKG_NAME="cmake"
-PKG_VERSION="3.27.3"
+PKG_VERSION="3.29.6"
PKG_LICENSE="BSD"
PKG_SITE="https://cmake.org/"
PKG_URL="https://cmake.org/files/v$(get_pkg_version_maj_min)/cmake-${PKG_VERSION}.tar.gz"
diff --git a/packages/devel/fakeroot/package.mk b/packages/devel/fakeroot/package.mk
index b514c55aa..bd741824b 100644
--- a/packages/devel/fakeroot/package.mk
+++ b/packages/devel/fakeroot/package.mk
@@ -3,7 +3,7 @@
# Copyright (C) 2019-present Team LibreELEC (https://libreelec.tv)
PKG_NAME="fakeroot"
-PKG_VERSION="1.35"
+PKG_VERSION="1.35.1"
PKG_LICENSE="GPL3"
PKG_SITE="https://salsa.debian.org/clint/fakeroot"
PKG_URL="http://deb.debian.org/debian/pool/main/f/fakeroot/fakeroot_${PKG_VERSION}.orig.tar.gz"
diff --git a/packages/devel/libffi/package.mk b/packages/devel/libffi/package.mk
index 961011d0f..513e2c024 100644
--- a/packages/devel/libffi/package.mk
+++ b/packages/devel/libffi/package.mk
@@ -3,8 +3,8 @@
# Copyright (C) 2019-present Team LibreELEC (https://libreelec.tv)
PKG_NAME="libffi"
-PKG_VERSION="3.4.4"
-PKG_SHA256="d66c56ad259a82cf2a9dfc408b32bf5da52371500b84745f7fb8b645712df676"
+PKG_VERSION="3.4.6"
+PKG_SHA256="b0dea9df23c863a7a50e825440f3ebffabd65df1497108e5d437747843895a4e"
PKG_LICENSE="GPL"
PKG_SITE="http://sourceware.org/${PKG_NAME}/"
PKG_URL="https://github.com/libffi/libffi/releases/download/v${PKG_VERSION}/${PKG_NAME}-${PKG_VERSION}.tar.gz"
diff --git a/packages/devel/rapidjson/package.mk b/packages/devel/rapidjson/package.mk
index bfaf3a9b7..d8f18c79a 100644
--- a/packages/devel/rapidjson/package.mk
+++ b/packages/devel/rapidjson/package.mk
@@ -2,11 +2,11 @@
# Copyright (C) 2017-present Team LibreELEC (https://libreelec.tv)
PKG_NAME="rapidjson"
-PKG_VERSION="1.1.0"
-PKG_SHA256="bf7ced29704a1e696fbccf2a2b4ea068e7774fa37f6d7dd4039d0787f8bed98e"
+PKG_VERSION="ab1842a2dae061284c0a62dca1cc6d5e7e37e346"
+PKG_SHA256="208f551cd08586a0a642cbd8d2c59783419c8a7e4f7552e13a19bc4e806403a9"
PKG_LICENSE="MIT"
PKG_SITE="https://github.com/miloyip/rapidjson"
-PKG_URL="https://github.com/miloyip/rapidjson/archive/v${PKG_VERSION}.tar.gz"
+PKG_URL="https://github.com/Tencent/rapidjson/archive/${PKG_VERSION}.zip"
PKG_DEPENDS_TARGET="toolchain"
PKG_LONGDESC="A fast JSON parser/generator for C++ with both SAX/DOM style API"
diff --git a/packages/devel/rapidjson/patches/rapidjson-0001-remove_custom_cxx_flags.patch b/packages/devel/rapidjson/patches/rapidjson-0001-remove_custom_cxx_flags.patch
deleted file mode 100644
index 51434ff52..000000000
--- a/packages/devel/rapidjson/patches/rapidjson-0001-remove_custom_cxx_flags.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index ceda71b..efb259e 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -50,7 +50,6 @@ if(CCACHE_FOUND)
- endif(CCACHE_FOUND)
-
- if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
-- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=native -Wall -Wextra -Werror")
- if (RAPIDJSON_BUILD_CXX11)
- if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS "4.7.0")
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x")
-@@ -73,7 +72,6 @@ if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
- endif()
- endif()
- elseif (CMAKE_CXX_COMPILER_ID MATCHES "Clang")
-- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=native -Wall -Wextra -Werror -Wno-missing-field-initializers")
- if (RAPIDJSON_BUILD_CXX11)
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
- endif()
-@@ -88,7 +86,6 @@ elseif (CMAKE_CXX_COMPILER_ID MATCHES "Clang")
- endif()
- endif()
- elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
-- add_definitions(-D_CRT_SECURE_NO_WARNINGS=1)
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /EHsc")
- endif()
-
-
diff --git a/packages/emulators/libretro/81-lr/package.mk b/packages/emulators/libretro/81-lr/package.mk
index 8d06a6721..da0f83e96 100644
--- a/packages/emulators/libretro/81-lr/package.mk
+++ b/packages/emulators/libretro/81-lr/package.mk
@@ -19,7 +19,7 @@
################################################################################
PKG_NAME="81-lr"
-PKG_VERSION="525d5c18f1ff3fc54c37e083a475225d9179d59d"
+PKG_VERSION="c0d56c5bc5cd48715b4e83cbb3d241a6bed94c2a"
PKG_LICENSE="GPLv3"
PKG_SITE="https://github.com/libretro/81-libretro"
PKG_URL="https://github.com/libretro/81-libretro/archive/${PKG_VERSION}.tar.gz"
diff --git a/packages/emulators/libretro/atari800-lr/package.mk b/packages/emulators/libretro/atari800-lr/package.mk
index 363687501..a1c8221ca 100644
--- a/packages/emulators/libretro/atari800-lr/package.mk
+++ b/packages/emulators/libretro/atari800-lr/package.mk
@@ -20,7 +20,7 @@
################################################################################
PKG_NAME="atari800-lr"
-PKG_VERSION="8bfa3b80f6a2db365dfd1e8a6c06b7b0844327cf"
+PKG_VERSION="50141a6bf1a069abd86dd8c53aa4031f3f7cfbd1"
PKG_LICENSE="GPL"
PKG_SITE="https://github.com/libretro/libretro-atari800"
PKG_URL="${PKG_SITE}.git"
diff --git a/packages/emulators/libretro/beetle-lynx-lr/package.mk b/packages/emulators/libretro/beetle-lynx-lr/package.mk
index dd82fa7b6..2fe73e986 100644
--- a/packages/emulators/libretro/beetle-lynx-lr/package.mk
+++ b/packages/emulators/libretro/beetle-lynx-lr/package.mk
@@ -20,7 +20,7 @@
################################################################################
PKG_NAME="beetle-lynx-lr"
-PKG_VERSION="48909ddd1aba4de034d9c1da70c460b1724daa3b"
+PKG_VERSION="d982616da671c3dd9c9271dd9d95c5c7d1393191"
PKG_LICENSE="GPLv2"
PKG_SITE="https://github.com/libretro/beetle-lynx-libretro"
PKG_URL="${PKG_SITE}/archive/${PKG_VERSION}.tar.gz"
diff --git a/packages/emulators/libretro/beetle-ngp-lr/package.mk b/packages/emulators/libretro/beetle-ngp-lr/package.mk
index dc5ed4150..dc2855e6c 100644
--- a/packages/emulators/libretro/beetle-ngp-lr/package.mk
+++ b/packages/emulators/libretro/beetle-ngp-lr/package.mk
@@ -20,7 +20,7 @@
################################################################################
PKG_NAME="beetle-ngp-lr"
-PKG_VERSION="673c3d924ff33d71c6a342b170eff5359244df1f"
+PKG_VERSION="09869bb6032610714e22d09b95a81ea291937a8f"
PKG_LICENSE="GPLv2"
PKG_SITE="https://github.com/libretro/beetle-ngp-libretro"
PKG_URL="${PKG_SITE}/archive/${PKG_VERSION}.tar.gz"
diff --git a/packages/emulators/libretro/beetle-pce-fast-lr/package.mk b/packages/emulators/libretro/beetle-pce-fast-lr/package.mk
index 87055e845..6b562c005 100644
--- a/packages/emulators/libretro/beetle-pce-fast-lr/package.mk
+++ b/packages/emulators/libretro/beetle-pce-fast-lr/package.mk
@@ -20,7 +20,7 @@
################################################################################
PKG_NAME="beetle-pce-fast-lr"
-PKG_VERSION="414149d335ce2a3284db6cdffbb8ed2ce42dbe5f"
+PKG_VERSION="3f1c0a14b16802998f4f32ea27b0c8ad81d3b9e7"
PKG_LICENSE="GPLv2"
PKG_SITE="https://github.com/libretro/beetle-pce-fast-libretro"
PKG_URL="${PKG_SITE}/archive/${PKG_VERSION}.tar.gz"
diff --git a/packages/emulators/libretro/beetle-pce-lr/package.mk b/packages/emulators/libretro/beetle-pce-lr/package.mk
index ee8de3ed5..80686de00 100644
--- a/packages/emulators/libretro/beetle-pce-lr/package.mk
+++ b/packages/emulators/libretro/beetle-pce-lr/package.mk
@@ -20,7 +20,7 @@
################################################################################
PKG_NAME="beetle-pce-lr"
-PKG_VERSION="0eb4b423452da40dbf4393e09d4126c3090a1210"
+PKG_VERSION="d921176765d58da24d555bc02b73411a89b73976"
PKG_LICENSE="GPLv2"
PKG_SITE="https://github.com/libretro/beetle-pce-libretro"
PKG_URL="${PKG_SITE}/archive/${PKG_VERSION}.tar.gz"
diff --git a/packages/emulators/libretro/beetle-pcfx-lr/package.mk b/packages/emulators/libretro/beetle-pcfx-lr/package.mk
index 2149ccf9d..d77e21324 100644
--- a/packages/emulators/libretro/beetle-pcfx-lr/package.mk
+++ b/packages/emulators/libretro/beetle-pcfx-lr/package.mk
@@ -20,7 +20,7 @@
################################################################################
PKG_NAME="beetle-pcfx-lr"
-PKG_VERSION="47c355b6a515aef6dc57f57df1535570108a0e21"
+PKG_VERSION="3a4e8d3665816a2938ea5029f05bc1537f0cbe40"
PKG_LICENSE="GPLv2"
PKG_SITE="https://github.com/libretro/beetle-pcfx-libretro"
PKG_URL="${PKG_SITE}/archive/${PKG_VERSION}.tar.gz"
diff --git a/packages/emulators/libretro/beetle-supergrafx-lr/package.mk b/packages/emulators/libretro/beetle-supergrafx-lr/package.mk
index e0ed17722..0744ab895 100644
--- a/packages/emulators/libretro/beetle-supergrafx-lr/package.mk
+++ b/packages/emulators/libretro/beetle-supergrafx-lr/package.mk
@@ -20,7 +20,7 @@
################################################################################
PKG_NAME="beetle-supergrafx-lr"
-PKG_VERSION="e3f68c1311d4684a5a59d3d1662d5c4f32662c02"
+PKG_VERSION="dfff1f9c032b9556a070ae6848d1e28df3023e4d"
PKG_LICENSE="GPLv2"
PKG_SITE="https://github.com/libretro/beetle-supergrafx-libretro"
PKG_URL="${PKG_SITE}/archive/${PKG_VERSION}.tar.gz"
diff --git a/packages/emulators/libretro/beetle-vb-lr/package.mk b/packages/emulators/libretro/beetle-vb-lr/package.mk
index 339f184b1..a3949cf8e 100644
--- a/packages/emulators/libretro/beetle-vb-lr/package.mk
+++ b/packages/emulators/libretro/beetle-vb-lr/package.mk
@@ -20,7 +20,7 @@
################################################################################
PKG_NAME="beetle-vb-lr"
-PKG_VERSION="9d1bd03f21dac7897f65269e1095496331efce8b"
+PKG_VERSION="4395c809d407c8b5a80b0d0ee87783aad5fedf8f"
PKG_LICENSE="GPLv2"
PKG_SITE="https://github.com/libretro/beetle-vb-libretro"
PKG_URL="${PKG_SITE}/archive/${PKG_VERSION}.tar.gz"
diff --git a/packages/emulators/libretro/beetle-wswan-lr/package.mk b/packages/emulators/libretro/beetle-wswan-lr/package.mk
index 2c7c50025..d3aac6f36 100644
--- a/packages/emulators/libretro/beetle-wswan-lr/package.mk
+++ b/packages/emulators/libretro/beetle-wswan-lr/package.mk
@@ -20,7 +20,7 @@
################################################################################
PKG_NAME="beetle-wswan-lr"
-PKG_VERSION="32bf70a3032a138baa969c22445f4b7821632c30"
+PKG_VERSION="440e9228592a3f603d7d09e8bee707b0163f545f"
PKG_LICENSE="GPLv2"
PKG_SITE="https://github.com/libretro/beetle-wswan-libretro"
PKG_URL="${PKG_SITE}/archive/${PKG_VERSION}.tar.gz"
diff --git a/packages/emulators/libretro/bluemsx-lr/package.mk b/packages/emulators/libretro/bluemsx-lr/package.mk
index 1d5530527..704541bf7 100644
--- a/packages/emulators/libretro/bluemsx-lr/package.mk
+++ b/packages/emulators/libretro/bluemsx-lr/package.mk
@@ -20,7 +20,7 @@
################################################################################
PKG_NAME="bluemsx-lr"
-PKG_VERSION="df29d437204af0a5158b6ecb2d6b68296f8d979a"
+PKG_VERSION="824690b5ac997ec9694e8db1595186459bb3b652"
PKG_LICENSE="GPLv2"
PKG_SITE="https://github.com/libretro/blueMSX-libretro"
PKG_URL="${PKG_SITE}/archive/${PKG_VERSION}.tar.gz"
diff --git a/packages/emulators/libretro/boom3-lr/package.mk b/packages/emulators/libretro/boom3-lr/package.mk
index aa8a5b570..d235d9351 100644
--- a/packages/emulators/libretro/boom3-lr/package.mk
+++ b/packages/emulators/libretro/boom3-lr/package.mk
@@ -25,8 +25,4 @@ makeinstall_target() {
mkdir -p ${INSTALL}/usr/lib/libretro
cp -v ${PKG_BUILD}/neo/boom3_libretro.so ${INSTALL}/usr/lib/libretro/
cp -v ${PKG_BUILD}/neo/boom3_xp_libretro.so ${INSTALL}/usr/lib/libretro/
-
- mkdir -p ${INSTALL}/usr/config/idtech
- cp -rf ${PKG_DIR}/scripts/* ${INSTALL}/usr/config/idtech/
- chmod 0755 ${INSTALL}/usr/config/idtech/*
}
diff --git a/packages/emulators/libretro/boom3-lr/scripts/Doom 3 - Resurrection of Evil.sh b/packages/emulators/libretro/boom3-lr/scripts/Doom 3 - Resurrection of Evil.sh
deleted file mode 100644
index 89472908b..000000000
--- a/packages/emulators/libretro/boom3-lr/scripts/Doom 3 - Resurrection of Evil.sh
+++ /dev/null
@@ -1,4 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0-or-later
-# Copyright (C) 2022-present JELOS (https://github.com/JustEnoughLinuxOS)
-
-/usr/bin/retroarch -L /usr/lib/libretro/boom3_xp_libretro.so /storage/roms/idtech/doom3/d3xp/pak000.pk4
diff --git a/packages/emulators/libretro/boom3-lr/scripts/Doom 3.sh b/packages/emulators/libretro/boom3-lr/scripts/Doom 3.sh
deleted file mode 100644
index 203c04d6a..000000000
--- a/packages/emulators/libretro/boom3-lr/scripts/Doom 3.sh
+++ /dev/null
@@ -1,4 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0-or-later
-# Copyright (C) 2022-present JELOS (https://github.com/JustEnoughLinuxOS)
-
-/usr/bin/retroarch -L /usr/lib/libretro/boom3_libretro.so /storage/roms/idtech/doom3/base/pak000.pk4
diff --git a/packages/emulators/libretro/cap32-lr/package.mk b/packages/emulators/libretro/cap32-lr/package.mk
index 722edf660..d25197f8d 100644
--- a/packages/emulators/libretro/cap32-lr/package.mk
+++ b/packages/emulators/libretro/cap32-lr/package.mk
@@ -20,7 +20,7 @@
################################################################################
PKG_NAME="cap32-lr"
-PKG_VERSION="0d1c8667a409cf284aea98c1ac6786bbc826fdf1"
+PKG_VERSION="bae879df46f7f22951efda256c19b1692b77ef3e"
PKG_LICENSE="GPLv2"
PKG_SITE="https://github.com/libretro/libretro-cap32"
PKG_URL="${PKG_SITE}/archive/${PKG_VERSION}.tar.gz"
diff --git a/packages/emulators/libretro/core-info/package.mk b/packages/emulators/libretro/core-info/package.mk
index c1cc4cbb9..55f1e3df8 100644
--- a/packages/emulators/libretro/core-info/package.mk
+++ b/packages/emulators/libretro/core-info/package.mk
@@ -20,7 +20,7 @@
################################################################################
PKG_NAME="core-info"
-PKG_VERSION="60d03476d002c92fe3d5dfffb548e5247a5a78a8"
+PKG_VERSION="50aa833e885e2132bad1e919ba2ebe687cf64b91"
PKG_LICENSE="GPL"
PKG_SITE="https://github.com/libretro/libretro-core-info"
PKG_URL="https://github.com/libretro/libretro-core-info/archive/${PKG_VERSION}.tar.gz"
diff --git a/packages/emulators/libretro/crocods-lr/package.mk b/packages/emulators/libretro/crocods-lr/package.mk
index d0ce63138..e0971549e 100644
--- a/packages/emulators/libretro/crocods-lr/package.mk
+++ b/packages/emulators/libretro/crocods-lr/package.mk
@@ -20,7 +20,7 @@
################################################################################
PKG_NAME="crocods-lr"
-PKG_VERSION="f1b4b91291ba1e8e7c0be02269cd0d75c7fa71b9"
+PKG_VERSION="e80f49c21c6788617e57ab86e9442a162d24f38a"
PKG_LICENSE="MIT"
PKG_SITE="https://github.com/libretro/libretro-crocods"
PKG_URL="${PKG_SITE}/archive/${PKG_VERSION}.tar.gz"
diff --git a/packages/emulators/libretro/daphne-lr/package.mk b/packages/emulators/libretro/daphne-lr/package.mk
index c27fc188f..7af8d89a2 100644
--- a/packages/emulators/libretro/daphne-lr/package.mk
+++ b/packages/emulators/libretro/daphne-lr/package.mk
@@ -10,6 +10,10 @@ PKG_DEPENDS_TARGET="toolchain"
PKG_LONGDESC="This is a Daphne core"
PKG_TOOLCHAIN="make"
+pre_configure_target() {
+ export CFLAGS="${CFLAGS} -Wno-use-after-free -Wno-unused-function -Wno-maybe-uninitialized -Wno-unused-variable -Wno-implicit-function-declaration -Wno-builtin-declaration-mismatch -Wno-unknown-pragmas -Wno-pointer-to-int-cast -Wno-pedantic -Wno-error=incompatible-pointer-types"
+}
+
makeinstall_target() {
mkdir -p ${INSTALL}/usr/lib/libretro
cp daphne_libretro.so ${INSTALL}/usr/lib/libretro/
diff --git a/packages/emulators/libretro/dolphin-lr/package.mk b/packages/emulators/libretro/dolphin-lr/package.mk
index 4dc95f6f6..21f67262c 100644
--- a/packages/emulators/libretro/dolphin-lr/package.mk
+++ b/packages/emulators/libretro/dolphin-lr/package.mk
@@ -35,7 +35,15 @@ then
PKG_CONFIGURE_OPTS_TARGET+=" -DENABLE_VULKAN=ON"
fi
-pre_configure_target() {
+pre_configure_target()
+
+ if [ "${ARCH}" = "aarch64" ]; then
+ # This is only needed for armv8.2-a targets where we don't use this flag
+ # as it prohibits the use of LSE-instructions, this is a package bug most likely
+ export CFLAGS="${CFLAGS} -mno-outline-atomics"
+ export CXXFLAGS="${CXXFLAGS} -mno-outline-atomics"
+ fi
+{
PKG_CMAKE_OPTS_TARGET+=" -DENABLE_EGL=ON \
-DUSE_SHARED_ENET=OFF \
-DUSE_UPNP=ON \
diff --git a/packages/emulators/libretro/dolphin-lr/patches/fix-gcc14.patch b/packages/emulators/libretro/dolphin-lr/patches/fix-gcc14.patch
new file mode 100644
index 000000000..8d01e20b1
--- /dev/null
+++ b/packages/emulators/libretro/dolphin-lr/patches/fix-gcc14.patch
@@ -0,0 +1,27 @@
+From b6c97e3158554f29c1467011e8d50ad2b2350bc1 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Piotr=20Pawe=C5=82=20Stefaniak?=
+ <3462925+pstef@users.noreply.github.com>
+Date: Sat, 11 May 2024 19:12:53 +0200
+Subject: [PATCH] Fix build on some systems
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+The complaint was: error: ‘reverse’ is not a member of ‘std’
+---
+ Source/Core/Core/Debugger/PPCDebugInterface.cpp | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/Source/Core/Core/Debugger/PPCDebugInterface.cpp b/Source/Core/Core/Debugger/PPCDebugInterface.cpp
+index f44c20d7f28c..1ebd0f8d5b48 100644
+--- a/Source/Core/Core/Debugger/PPCDebugInterface.cpp
++++ b/Source/Core/Core/Debugger/PPCDebugInterface.cpp
+@@ -4,6 +4,7 @@
+
+ #include "Core/Debugger/PPCDebugInterface.h"
+
++#include
+ #include
+ #include
+ #include
+
diff --git a/packages/emulators/libretro/dosbox-pure-lr/package.mk b/packages/emulators/libretro/dosbox-pure-lr/package.mk
index c22e08b14..42d4e04df 100644
--- a/packages/emulators/libretro/dosbox-pure-lr/package.mk
+++ b/packages/emulators/libretro/dosbox-pure-lr/package.mk
@@ -19,7 +19,7 @@
################################################################################
PKG_NAME="dosbox-pure-lr"
-PKG_VERSION="1e3cb35355769467ca7be192e740eb9728ecc88c"
+PKG_VERSION="16a5f9cb92653426e1586cd4b0e52663b394dbac"
PKG_LICENSE="GPLv2"
PKG_SITE="https://github.com/schellingb/dosbox-pure"
PKG_URL="${PKG_SITE}.git"
diff --git a/packages/emulators/libretro/ecwolf-lr/package.mk b/packages/emulators/libretro/ecwolf-lr/package.mk
index d05ac0d50..d778c786c 100644
--- a/packages/emulators/libretro/ecwolf-lr/package.mk
+++ b/packages/emulators/libretro/ecwolf-lr/package.mk
@@ -2,7 +2,7 @@
# Copyright (C) 2022-present JELOS (https://github.com/JustEnoughLinuxOS)
PKG_NAME="ecwolf-lr"
-PKG_VERSION="18eca17c2d634b154824e0782c6cbbe0a2c9ea76"
+PKG_VERSION="71ec64cf98ba0a2a94e2fede560f1b435761b36d"
PKG_LICENSE="GPLv2"
PKG_SITE="https://github.com/libretro/ecwolf"
PKG_URL="${PKG_SITE}.git"
@@ -18,6 +18,10 @@ fi
PKG_MAKE_OPTS_TARGET="-C src/libretro"
+pre_configure_target() {
+ CXXFLAGS="${CXXFLAGS} -Wno-error=int-conversion"
+}
+
pre_make_target() {
cd ${PKG_BUILD}
}
diff --git a/packages/emulators/libretro/ecwolf-lr/patches/01-fix-gcc14.patch b/packages/emulators/libretro/ecwolf-lr/patches/01-fix-gcc14.patch
new file mode 100644
index 000000000..c1a5cac14
--- /dev/null
+++ b/packages/emulators/libretro/ecwolf-lr/patches/01-fix-gcc14.patch
@@ -0,0 +1,13 @@
+diff --git a/src/tmemory.h b/src/tmemory.h
+index 75bee43..dc544b2 100644
+--- a/src/tmemory.h
++++ b/src/tmemory.h
+@@ -460,7 +460,7 @@ public:
+ Reference();
+ }
+
+- void Swap(const Self &other)
++ void Swap(Self &other)
+ {
+ T *oldptr = p;
+ TSharedPtrRef *oldref = r;
diff --git a/packages/emulators/libretro/fbalpha2012-lr/package.mk b/packages/emulators/libretro/fbalpha2012-lr/package.mk
index 781e8e7fa..4672569eb 100644
--- a/packages/emulators/libretro/fbalpha2012-lr/package.mk
+++ b/packages/emulators/libretro/fbalpha2012-lr/package.mk
@@ -28,6 +28,10 @@ PKG_DEPENDS_TARGET="toolchain"
PKG_LONGDESC="Port of Final Burn Alpha 2012 to Libretro"
PKG_TOOLCHAIN="make"
+pre_configure_target() {
+export CFLAGS="${CFLAGS} -Wno-maybe-uninitialized -Wno-unused-function -Wno-error=incompatible-pointer-types"
+}
+
make_target() {
cd svn-current/trunk
make -f makefile.libretro
diff --git a/packages/emulators/libretro/fbneo-lr/package.mk b/packages/emulators/libretro/fbneo-lr/package.mk
index 9bceb14e6..7673036f7 100644
--- a/packages/emulators/libretro/fbneo-lr/package.mk
+++ b/packages/emulators/libretro/fbneo-lr/package.mk
@@ -4,7 +4,7 @@
# Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS)
PKG_NAME="fbneo-lr"
-PKG_VERSION="634d207adade213bbe83684be2a183d158f56e52"
+PKG_VERSION="981bd35179e0b4dc4471bdd4c8f093b206ed578b"
PKG_LICENSE="Non-commercial"
PKG_SITE="https://github.com/libretro/FBNeo"
PKG_URL="${PKG_SITE}/archive/${PKG_VERSION}.tar.gz"
diff --git a/packages/emulators/libretro/fceumm-lr/package.mk b/packages/emulators/libretro/fceumm-lr/package.mk
index 8c2eb1f9b..09b994131 100644
--- a/packages/emulators/libretro/fceumm-lr/package.mk
+++ b/packages/emulators/libretro/fceumm-lr/package.mk
@@ -20,7 +20,7 @@
################################################################################
PKG_NAME="fceumm-lr"
-PKG_VERSION="ac7ab8a99fc7bca578b3e39faa3a5159fb5d39ea"
+PKG_VERSION="744f5d9c8b976a431dcb5417a520c0c709b17fbe"
PKG_LICENSE="GPLv2"
PKG_SITE="https://github.com/libretro/libretro-fceumm"
PKG_URL="${PKG_SITE}/archive/${PKG_VERSION}.tar.gz"
diff --git a/packages/emulators/libretro/flycast2021-lr/package.mk b/packages/emulators/libretro/flycast2021-lr/package.mk
index 0dce885a0..e9c299639 100644
--- a/packages/emulators/libretro/flycast2021-lr/package.mk
+++ b/packages/emulators/libretro/flycast2021-lr/package.mk
@@ -40,6 +40,7 @@ if [ "${OPENGLES_SUPPORT}" = yes ]; then
fi
pre_configure_target() {
+ export CXXFLAGS="${CXXFLAGS} -Wno-implicit-function-declaration"
sed -i 's/define CORE_OPTION_NAME "reicast"/define CORE_OPTION_NAME "flycast2021"/g' core/libretro/libretro_core_option_defines.h
sed -i 's/\-O[23]/-Ofast/' ${PKG_BUILD}/Makefile
PKG_MAKE_OPTS_TARGET="${PKG_MAKE_OPTS_TARGET} ARCH=${TARGET_ARCH} HAVE_OPENMP=1 GIT_VERSION=${PKG_VERSION:0:7} HAVE_LTCG=0"
@@ -51,6 +52,9 @@ pre_make_target() {
RK3*|S922X)
PKG_MAKE_OPTS_TARGET+=" platform=${DEVICE}"
;;
+ H700)
+ PKG_MAKE_OPTS_TARGET+=" platform=RK3326"
+ ;;
esac
}
diff --git a/packages/emulators/libretro/flycast2021-lr/patches/01-fix-gcc14.patch b/packages/emulators/libretro/flycast2021-lr/patches/01-fix-gcc14.patch
new file mode 100644
index 000000000..6b5bf785a
--- /dev/null
+++ b/packages/emulators/libretro/flycast2021-lr/patches/01-fix-gcc14.patch
@@ -0,0 +1,28 @@
+diff --git a/core/deps/libzip/mkstemp.c b/core/deps/libzip/mkstemp.c
+index 353f3f7..3776f91 100644
+--- a/core/deps/libzip/mkstemp.c
++++ b/core/deps/libzip/mkstemp.c
+@@ -43,9 +43,7 @@
+ #include
+ #include
+
+-#ifdef __APPLE__
+ #include
+-#endif
+
+ #ifndef O_BINARY
+ #define O_BINARY 0
+diff --git a/core/deps/libzip/zip_close.c b/core/deps/libzip/zip_close.c
+index 88265a0..89bb26d 100644
+--- a/core/deps/libzip/zip_close.c
++++ b/core/deps/libzip/zip_close.c
+@@ -42,9 +42,7 @@
+
+ #include "zipint.h"
+
+-#ifdef __APPLE__
+ #include
+-#endif
+
+ static int add_data(struct zip *, struct zip_source *, struct zip_dirent *,
+ FILE *);
diff --git a/packages/emulators/libretro/flycast2021-lr/patches/AMD64/000-build-fix.patch b/packages/emulators/libretro/flycast2021-lr/patches/AMD64/000-build-fix.patch
new file mode 100644
index 000000000..5318defc3
--- /dev/null
+++ b/packages/emulators/libretro/flycast2021-lr/patches/AMD64/000-build-fix.patch
@@ -0,0 +1,30 @@
+diff -rupN flycast2021-lr.orig/core/libretro-common/glsm/glsm.c flycast2021-lr/core/libretro-common/glsm/glsm.c
+--- flycast2021-lr.orig/core/libretro-common/glsm/glsm.c 2024-07-08 19:56:17.217751724 +0000
++++ flycast2021-lr/core/libretro-common/glsm/glsm.c 2024-07-08 20:00:09.491339516 +0000
+@@ -2747,7 +2747,7 @@ static void glsm_state_setup(void)
+ #endif
+
+ #ifdef CORE
+- glGenVertexArrays(1, &gl_state.vao);
++ rglGenVertexArrays(1, &gl_state.vao);
+ #endif
+ }
+
+@@ -2755,7 +2755,7 @@ static void glsm_state_bind(void)
+ {
+ unsigned i;
+ #ifdef CORE
+- glBindVertexArray(gl_state.vao);
++ rglBindVertexArray(gl_state.vao);
+ #endif
+ glBindBuffer(GL_ARRAY_BUFFER, gl_state.array_buffer);
+
+@@ -2871,7 +2871,7 @@ static void glsm_state_unbind(void)
+ {
+ unsigned i;
+ #ifdef CORE
+- glBindVertexArray(0);
++ rglBindVertexArray(0);
+ #endif
+ for (i = 0; i < SGL_CAP_MAX; i ++)
+ {
diff --git a/packages/emulators/libretro/flycast2021-lr/patches/H700/000-platform.patch b/packages/emulators/libretro/flycast2021-lr/patches/H700/000-platform.patch
new file mode 100644
index 000000000..2dad924ad
--- /dev/null
+++ b/packages/emulators/libretro/flycast2021-lr/patches/H700/000-platform.patch
@@ -0,0 +1,43 @@
+diff -rupN flycast.orig/Makefile flycast/Makefile
+--- flycast.orig/Makefile 2022-06-18 13:29:52.675787687 -0400
++++ flycast/Makefile 2022-06-18 13:53:23.564624927 -0400
+@@ -403,26 +403,30 @@ else ifeq ($(platform), arm64_cortex_a53
+
+ #######################################
+
+-# ARM64 SM1 Odroid C4
+-else ifeq ($(platform), odroidc4)
++# ARM64 RK3326
++else ifeq ($(platform), RK3326)
+ EXT ?= so
+ TARGET := $(TARGET_NAME)_libretro.$(EXT)
+ SHARED += -shared -Wl,--version-script=link.T
+- LDFLAGS += -Wl,--no-undefined
+ fpic = -fPIC
+ LIBS += -lrt
+ ARM_FLOAT_ABI_HARD = 0
+ FORCE_GLES = 1
+ SINGLE_PREC_FLAGS = 1
+- CPUFLAGS += -DHOST_CPU=0x20000006 -DTARGET_LINUX_ARMv8 -frename-registers
+- CFLAGS += -mcpu=cortex-a55 -mtune=cortex-a55 $(CPUFLAGS)
+- CXXFLAGS += -mcpu=cortex-a55 -mtune=cortex-a55 $(CPUFLAGS)
+- ASFLAGS += $(CFLAGS) -c -frename-registers -fno-strict-aliasing -ffast-math -ftree-vectorize
++ HAVE_LTCG = 0
++ HAVE_OPENMP = 0
++ CFLAGS += -Ofast \
++ -fuse-linker-plugin \
++ -fno-stack-protector -fno-ident -fomit-frame-pointer \
++ -fmerge-all-constants -ffast-math -funroll-all-loops \
++ -mcpu=cortex-a35 -mtune=cortex-a35 -mno-outline-atomics
++ CXXFLAGS += $(CFLAGS)
++ LDFLAGS += -mcpu=cortex-a35 -mtune=cortex-a35 -Ofast -flto -fuse-linker-plugin
+ PLATFORM_EXT := unix
++ CORE_DEFINES += -DLOW_END -DLOW_RES
+ WITH_DYNAREC=arm64
++ PLATFORM_EXT := unix
+ HAVE_GENERIC_JIT = 0
+- HAVE_VULKAN = 0
+- HAVE_LTCG = 0
+
+ #######################################
+
diff --git a/packages/emulators/libretro/fmsx-lr/package.mk b/packages/emulators/libretro/fmsx-lr/package.mk
index c65e2136d..a7eb980e4 100644
--- a/packages/emulators/libretro/fmsx-lr/package.mk
+++ b/packages/emulators/libretro/fmsx-lr/package.mk
@@ -20,7 +20,7 @@
################################################################################
PKG_NAME="fmsx-lr"
-PKG_VERSION="9b5cf868825a629cc4c7086768338165d3bbf706"
+PKG_VERSION="cf97a3c6da07d5f8e98c90c907ad987ffea432e0"
PKG_LICENSE="GPLv2"
PKG_SITE="https://github.com/libretro/fmsx-libretro"
PKG_URL="${PKG_SITE}/archive/${PKG_VERSION}.tar.gz"
diff --git a/packages/emulators/libretro/freechaf-lr/package.mk b/packages/emulators/libretro/freechaf-lr/package.mk
index 7c6aa9a4d..6e06639fb 100644
--- a/packages/emulators/libretro/freechaf-lr/package.mk
+++ b/packages/emulators/libretro/freechaf-lr/package.mk
@@ -1,5 +1,5 @@
PKG_NAME="freechaf-lr"
-PKG_VERSION="830b73b5eb8ba6d538e1cca363684c3ad617013d"
+PKG_VERSION="cdb8ad6fcecb276761b193650f5ce9ae8b878067"
PKG_LICENSE="GPLv2"
PKG_SITE="https://github.com/libretro/FreeChaF"
PKG_URL="${PKG_SITE}.git"
diff --git a/packages/emulators/libretro/freeintv-lr/package.mk b/packages/emulators/libretro/freeintv-lr/package.mk
index 08e240927..1d88b7b09 100644
--- a/packages/emulators/libretro/freeintv-lr/package.mk
+++ b/packages/emulators/libretro/freeintv-lr/package.mk
@@ -20,7 +20,7 @@
################################################################################
PKG_NAME="freeintv-lr"
-PKG_VERSION="85bf25a39a34bbc39fe36677175d87c2b597dbe7"
+PKG_VERSION="6bd91d0d83d896e66b9fd7e5e239f93f00e4ad87"
PKG_LICENSE="GPLv3"
PKG_SITE="https://github.com/libretro/FreeIntv"
PKG_URL="${PKG_SITE}/archive/${PKG_VERSION}.tar.gz"
diff --git a/packages/emulators/libretro/fuse-lr/package.mk b/packages/emulators/libretro/fuse-lr/package.mk
index 580fe1002..a688effc5 100644
--- a/packages/emulators/libretro/fuse-lr/package.mk
+++ b/packages/emulators/libretro/fuse-lr/package.mk
@@ -20,7 +20,7 @@
################################################################################
PKG_NAME="fuse-lr"
-PKG_VERSION="847dbbd6f787823ac9a5dfacdd68ab181063374e"
+PKG_VERSION="4d511d7fc3faa7714fa5de2e824793d35d5f4da8"
PKG_LICENSE="GPLv3"
PKG_SITE="https://github.com/libretro/fuse-libretro"
PKG_URL="${PKG_SITE}/archive/${PKG_VERSION}.tar.gz"
diff --git a/packages/emulators/libretro/gambatte-lr/package.mk b/packages/emulators/libretro/gambatte-lr/package.mk
index bbf155217..b720a15e6 100644
--- a/packages/emulators/libretro/gambatte-lr/package.mk
+++ b/packages/emulators/libretro/gambatte-lr/package.mk
@@ -20,7 +20,7 @@
################################################################################
PKG_NAME="gambatte-lr"
-PKG_VERSION="e2031a4010463adcd00ce3f34acbbb6db2ad1266"
+PKG_VERSION="f122ffc63e3969e29b232de8700e57095c305a53"
PKG_LICENSE="GPLv2"
PKG_SITE="https://github.com/libretro/gambatte-libretro"
PKG_URL="${PKG_SITE}/archive/${PKG_VERSION}.tar.gz"
diff --git a/packages/emulators/libretro/gearboy-lr/package.mk b/packages/emulators/libretro/gearboy-lr/package.mk
index beceb669b..5070fede3 100644
--- a/packages/emulators/libretro/gearboy-lr/package.mk
+++ b/packages/emulators/libretro/gearboy-lr/package.mk
@@ -15,7 +15,7 @@
################################################################################
PKG_NAME="gearboy-lr"
-PKG_VERSION="699a021a909a658aa5ec16a9ff51ca529bb7d4d5"
+PKG_VERSION="d729e3b53b4a1a09e5972fc53b94175d5c8ddc7e"
PKG_LICENSE="GPL"
PKG_SITE="https://github.com/drhelius/Gearboy"
PKG_URL="${PKG_SITE}/archive/${PKG_VERSION}.tar.gz"
diff --git a/packages/emulators/libretro/gearcoleco-lr/package.mk b/packages/emulators/libretro/gearcoleco-lr/package.mk
index 224c20038..bf33326ac 100644
--- a/packages/emulators/libretro/gearcoleco-lr/package.mk
+++ b/packages/emulators/libretro/gearcoleco-lr/package.mk
@@ -15,7 +15,7 @@
################################################################################
PKG_NAME="gearcoleco-lr"
-PKG_VERSION="3e44ca22ea36643a6ab50c0dd7980dbd2ded3b11"
+PKG_VERSION="8c7d6436a9e0aea87233d0a16a6c6910767a841e"
PKG_LICENSE="GPL"
PKG_SITE="https://github.com/drhelius/Gearcoleco"
PKG_URL="${PKG_SITE}/archive/${PKG_VERSION}.tar.gz"
diff --git a/packages/emulators/libretro/gearsystem-lr/package.mk b/packages/emulators/libretro/gearsystem-lr/package.mk
index 8e1de0f4f..0e91ef8ab 100644
--- a/packages/emulators/libretro/gearsystem-lr/package.mk
+++ b/packages/emulators/libretro/gearsystem-lr/package.mk
@@ -20,7 +20,7 @@
################################################################################
PKG_NAME="gearsystem-lr"
-PKG_VERSION="b72d4a6d1e88a37245f7fa3cdefee2a2c02e04da"
+PKG_VERSION="59087fb1f8b77c3c151df4aeb03cc44821db6112"
PKG_LICENSE="GPLv3"
PKG_SITE="https://github.com/drhelius/Gearsystem"
PKG_URL="${PKG_SITE}.git"
diff --git a/packages/emulators/libretro/genesis-plus-gx-lr/package.mk b/packages/emulators/libretro/genesis-plus-gx-lr/package.mk
index 92ca90934..c0f47b40c 100644
--- a/packages/emulators/libretro/genesis-plus-gx-lr/package.mk
+++ b/packages/emulators/libretro/genesis-plus-gx-lr/package.mk
@@ -21,7 +21,7 @@
################################################################################
PKG_NAME="genesis-plus-gx-lr"
-PKG_VERSION="60955a01f601ef73c02b07581dd7d5aa3b6a4788"
+PKG_VERSION="53a4af8fa4061fe7b60b9a1de5080dfa40617e57"
PKG_LICENSE="Non-commercial"
PKG_SITE="https://github.com/libretro/Genesis-Plus-GX"
PKG_URL="${PKG_SITE}/archive/${PKG_VERSION}.tar.gz"
diff --git a/packages/emulators/libretro/genesis-plus-gx-wide-lr/package.mk b/packages/emulators/libretro/genesis-plus-gx-wide-lr/package.mk
index 2403b43d5..b9159885a 100644
--- a/packages/emulators/libretro/genesis-plus-gx-wide-lr/package.mk
+++ b/packages/emulators/libretro/genesis-plus-gx-wide-lr/package.mk
@@ -20,7 +20,7 @@
################################################################################
PKG_NAME="genesis-plus-gx-wide-lr"
-PKG_VERSION="3c4dccdc2a60db50bb8c37090e3d3d2134a51295"
+PKG_VERSION="a0717a3cc7757c27ded83625331f2ced4bc25065"
PKG_LICENSE="Non-commercial"
PKG_SITE="https://github.com/libretro/Genesis-Plus-GX-Wide"
PKG_URL="${PKG_SITE}/archive/${PKG_VERSION}.tar.gz"
diff --git a/packages/emulators/libretro/gw-lr/package.mk b/packages/emulators/libretro/gw-lr/package.mk
index 754771335..21111be90 100644
--- a/packages/emulators/libretro/gw-lr/package.mk
+++ b/packages/emulators/libretro/gw-lr/package.mk
@@ -20,7 +20,7 @@
################################################################################
PKG_NAME="gw-lr"
-PKG_VERSION="0ecff52b11c327af52b22ea94b268c90472b6732"
+PKG_VERSION="feab76c102166784230dc44c45cad4cb49a1c9a7"
PKG_LICENSE="GPLv3"
PKG_SITE="https://github.com/libretro/gw-libretro"
PKG_URL="${PKG_SITE}/archive/${PKG_VERSION}.tar.gz"
diff --git a/packages/emulators/libretro/handy-lr/package.mk b/packages/emulators/libretro/handy-lr/package.mk
index d981a7312..c24e91488 100644
--- a/packages/emulators/libretro/handy-lr/package.mk
+++ b/packages/emulators/libretro/handy-lr/package.mk
@@ -19,7 +19,7 @@
################################################################################
PKG_NAME="handy-lr"
-PKG_VERSION="65d6b865544cd441ef2bd18cde7bd834c23d0e48"
+PKG_VERSION="15d3c87e0eba52464ed759d3702d7cb7fdd0d7e0"
PKG_LICENSE="Zlib"
PKG_SITE="https://github.com/libretro/libretro-handy"
PKG_URL="${PKG_SITE}/archive/${PKG_VERSION}.tar.gz"
diff --git a/packages/emulators/libretro/hatari-lr/package.mk b/packages/emulators/libretro/hatari-lr/package.mk
index 35d21a3fc..fea9d2054 100644
--- a/packages/emulators/libretro/hatari-lr/package.mk
+++ b/packages/emulators/libretro/hatari-lr/package.mk
@@ -20,7 +20,7 @@
################################################################################
PKG_NAME="hatari-lr"
-PKG_VERSION="a4c9eb0bb79e47a2870c12b04566c1f8d25e4bf3"
+PKG_VERSION="c10a21dbe99277b06ccf7de10eceb74f5d57e921"
PKG_LICENSE="GPLv2"
PKG_SITE="https://github.com/libretro/hatari"
PKG_URL="${PKG_SITE}/archive/${PKG_VERSION}.tar.gz"
diff --git a/packages/emulators/libretro/idtech-lr/scripts/generate-idtech.sh b/packages/emulators/libretro/idtech-lr/scripts/generate-idtech.sh
index 583a9757b..b45d89798 100644
--- a/packages/emulators/libretro/idtech-lr/scripts/generate-idtech.sh
+++ b/packages/emulators/libretro/idtech-lr/scripts/generate-idtech.sh
@@ -105,6 +105,15 @@ ${RA_BIN} -L ${RA_DIR}/boom3_libretro.so ${GAME_DIR}/doom3/base/*
EOF
fi
+### Doom 3 - Resurrection of Evil
+if [[ ${HW_ARCH} = "x86_64" ]] && [[ -f "${GAME_DIR}/doom3/d3xp/pak000.pk4" ]] && [[ ! -f ${SCRIPT_DIR}/Doom\ 3\ -\ Resurrection\ of\ Evil.sh ]]; then
+cat <${SCRIPT_DIR}/Doom\ 3\ -\ Resurrection\ of\ Evil.sh
+#!/bin/bash
+
+${RA_BIN} -L ${RA_DIR}/boom3_xp_libretro.so ${GAME_DIR}/doom3/d3xp/*
+EOF
+fi
+
### Quake
if [[ -f "${GAME_DIR}/quake/id1/pak0.pak" ]] && [[ ! -f ${SCRIPT_DIR}/Quake.sh ]]; then
cat <${SCRIPT_DIR}/Quake.sh
diff --git a/packages/emulators/libretro/libretro-database/package.mk b/packages/emulators/libretro/libretro-database/package.mk
index 6ca3383de..6cb3accda 100644
--- a/packages/emulators/libretro/libretro-database/package.mk
+++ b/packages/emulators/libretro/libretro-database/package.mk
@@ -20,7 +20,7 @@
################################################################################
PKG_NAME="libretro-database"
-PKG_VERSION="fa96e11200e4bba3a2e53c50000ee53d7cf9564e"
+PKG_VERSION="6ddbb571bf1bcd78867a0f4bc20caa0004bba689"
PKG_LICENSE="GPL"
PKG_SITE="https://github.com/libretro/libretro-database"
PKG_URL="${PKG_SITE}/archive/${PKG_VERSION}.tar.gz"
diff --git a/packages/emulators/libretro/mame2003-plus-lr/package.mk b/packages/emulators/libretro/mame2003-plus-lr/package.mk
index 25373432c..d7262928e 100644
--- a/packages/emulators/libretro/mame2003-plus-lr/package.mk
+++ b/packages/emulators/libretro/mame2003-plus-lr/package.mk
@@ -21,7 +21,7 @@
################################################################################
PKG_NAME="mame2003-plus-lr"
-PKG_VERSION="3206819c48567e759f993134ac27491b11b3dd80"
+PKG_VERSION="444bc10c2ab1553b3ed59b7d6afb54da39b891de"
PKG_LICENSE="MAME"
PKG_SITE="https://github.com/libretro/mame2003-plus-libretro"
PKG_URL="${PKG_SITE}/archive/${PKG_VERSION}.tar.gz"
diff --git a/packages/emulators/libretro/minivmac-lr/package.mk b/packages/emulators/libretro/minivmac-lr/package.mk
index 36b28e618..76c353bd3 100644
--- a/packages/emulators/libretro/minivmac-lr/package.mk
+++ b/packages/emulators/libretro/minivmac-lr/package.mk
@@ -2,7 +2,7 @@
# Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS)
PKG_NAME="minivmac-lr"
-PKG_VERSION="e7fcfefe5963aaefb039c8ece5b9072f8d3f9cb9"
+PKG_VERSION="7de54a87e2527eb15b9ec2ac589e041c3d051d49"
PKG_LICENSE="GPLv2"
PKG_SITE="https://github.com/libretro/libretro-minivmac"
PKG_URL="${PKG_SITE}.git"
diff --git a/packages/emulators/libretro/mupen64plus-lr/package.mk b/packages/emulators/libretro/mupen64plus-lr/package.mk
index 269591ebe..419af8941 100644
--- a/packages/emulators/libretro/mupen64plus-lr/package.mk
+++ b/packages/emulators/libretro/mupen64plus-lr/package.mk
@@ -43,12 +43,19 @@ pre_make_target() {
}
pre_configure_target() {
+export CFLAGS="${CFLAGS} -Wno-error=incompatible-pointer-types"
+
case ${DEVICE} in
RK3*)
PKG_MAKE_OPTS_TARGET=" platform=${DEVICE}"
CFLAGS="${CFLAGS} -DLINUX -DEGL_API_FB"
CPPFLAGS="${CPPFLAGS} -DLINUX -DEGL_API_FB"
;;
+ H700)
+ PKG_MAKE_OPTS_TARGET=" platform=RKH700"
+ CFLAGS="${CFLAGS} -DLINUX -DEGL_API_FB"
+ CPPFLAGS="${CPPFLAGS} -DLINUX -DEGL_API_FB"
+ ;;
*)
PKG_MAKE_OPTS_TARGET="GLES=0 GLES3=0"
;;
diff --git a/packages/emulators/libretro/mupen64plus-nx-lr/package.mk b/packages/emulators/libretro/mupen64plus-nx-lr/package.mk
index fdf5ce224..f57915768 100755
--- a/packages/emulators/libretro/mupen64plus-nx-lr/package.mk
+++ b/packages/emulators/libretro/mupen64plus-nx-lr/package.mk
@@ -2,7 +2,7 @@
# Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS)
PKG_NAME="mupen64plus-nx-lr"
-PKG_VERSION="5d2ac21adb784ad72d6101290117702eef0411dd"
+PKG_VERSION="c7cd8edcd015ddcbd4a2e984573c9c1d1ddd0b6e"
PKG_LICENSE="GPLv2"
PKG_SITE="https://github.com/libretro/mupen64plus-libretro-nx"
PKG_URL="${PKG_SITE}/archive/${PKG_VERSION}.tar.gz"
@@ -22,6 +22,12 @@ if [ "${OPENGLES_SUPPORT}" = yes ]; then
fi
pre_configure_target() {
+ export CFLAGS="${CFLAGS} -DHAVE_UNISTD_H -Wno-error=incompatible-pointer-types"
+ if [ "${ARCH}" = "aarch64" ]; then
+ # This is only needed for armv8.2-a targets where we don't use this flag
+ # as it prohibits the use of LSE-instructions, this is a package bug most likely
+ export CXXFLAGS="${CXXFLAGS} -mno-outline-atomics"
+ fi
for SOURCE in ${PKG_BUILD}/mupen64plus-rsp-paraLLEl/rsp_disasm.cpp ${PKG_BUILD}/mupen64plus-rsp-paraLLEl/rsp_disasm.hpp
do
sed -i '/include /a #include ' ${SOURCE}
@@ -32,6 +38,9 @@ pre_configure_target() {
RK3*|S922X)
PKG_MAKE_OPTS_TARGET=" platform=${DEVICE}"
;;
+ H700)
+ PKG_MAKE_OPTS_TARGET=" platform=RK3326"
+ ;;
esac
}
diff --git a/packages/emulators/libretro/neocd_lr/package.mk b/packages/emulators/libretro/neocd_lr/package.mk
index 096b03e47..6f692532c 100644
--- a/packages/emulators/libretro/neocd_lr/package.mk
+++ b/packages/emulators/libretro/neocd_lr/package.mk
@@ -2,7 +2,7 @@
# Copyright (C) 2019-present Team CoreELEC (https://coreelec.org)
PKG_NAME="neocd_lr"
-PKG_VERSION="f297cab3e79573e33e6fbc39c1cd1a7a6eb6e500"
+PKG_VERSION="f87ed9eb4a7bf1243f031044c4e2ae1a7bf7100b"
PKG_LICENSE="LGPLv3.0"
PKG_SITE="https://github.com/libretro/neocd_libretro"
PKG_URL="${PKG_SITE}.git"
diff --git a/packages/emulators/libretro/nestopia-lr/package.mk b/packages/emulators/libretro/nestopia-lr/package.mk
index d4a093c7e..39e951835 100644
--- a/packages/emulators/libretro/nestopia-lr/package.mk
+++ b/packages/emulators/libretro/nestopia-lr/package.mk
@@ -19,7 +19,7 @@
################################################################################
PKG_NAME="nestopia-lr"
-PKG_VERSION="b99ede358b2219602443e7f414eabf81e17da244"
+PKG_VERSION="be1139ec4d89151fc65b81a3494d2b9c0fd0b7dc"
PKG_LICENSE="GPLv2"
PKG_SITE="https://github.com/libretro/nestopia"
PKG_URL="${PKG_SITE}/archive/${PKG_VERSION}.tar.gz"
diff --git a/packages/emulators/libretro/np2kai-lr/package.mk b/packages/emulators/libretro/np2kai-lr/package.mk
index a7365e0ed..8074ff0f1 100644
--- a/packages/emulators/libretro/np2kai-lr/package.mk
+++ b/packages/emulators/libretro/np2kai-lr/package.mk
@@ -27,6 +27,10 @@ PKG_DEPENDS_TARGET="toolchain"
PKG_LONGDESC="Neko Project II kai"
PKG_TOOLCHAIN="make"
+pre_configure_target() {
+export CFLAGS="${CFLAGS} -Wno-error=incompatible-pointer-types -Wno-int-conversion"
+}
+
make_target() {
VERSION="${PKG_VERSION:0:7}"
cd ${PKG_BUILD}/sdl
diff --git a/packages/emulators/libretro/o2em-lr/package.mk b/packages/emulators/libretro/o2em-lr/package.mk
index e23b5f2b5..a8e86145a 100644
--- a/packages/emulators/libretro/o2em-lr/package.mk
+++ b/packages/emulators/libretro/o2em-lr/package.mk
@@ -19,7 +19,7 @@
################################################################################
PKG_NAME="o2em-lr"
-PKG_VERSION="44fe5f306033242f7d74144105e19a7d4939477e"
+PKG_VERSION="c8f458d035392963823fbb50db0cec0033d9315f"
PKG_LICENSE="Artistic License"
PKG_SITE="https://github.com/libretro/libretro-o2em"
PKG_URL="${PKG_SITE}/archive/${PKG_VERSION}.tar.gz"
diff --git a/packages/emulators/libretro/parallel-n64-lr/package.mk b/packages/emulators/libretro/parallel-n64-lr/package.mk
index 4bae0d8fb..0b2ba49da 100644
--- a/packages/emulators/libretro/parallel-n64-lr/package.mk
+++ b/packages/emulators/libretro/parallel-n64-lr/package.mk
@@ -2,7 +2,7 @@
# Copyright (C) 2022-present JELOS (https://github.com/JustEnoughLinuxOS)
PKG_NAME="parallel-n64-lr"
-PKG_VERSION="330fa5efd306ad116c44faf6833a8108ed4144b0"
+PKG_VERSION="334998e6129debe50f7ef9c5cd1e995460ae2da8"
PKG_LICENSE="GPLv2"
PKG_SITE="https://github.com/libretro/parallel-n64"
PKG_URL="${PKG_SITE}.git"
@@ -24,13 +24,22 @@ if [ "${VULKAN_SUPPORT}" = "yes" ]; then
fi
case ${DEVICE} in
- RK3*|S922X)
+ RK3*|S922X|H700)
PKG_MAKE_OPTS_TARGET+=" platform=${DEVICE}"
;;
AMD64)
PKG_MAKE_OPTS_TARGET+=" HAVE_PARALLEL_RSP=1"
esac
+pre_configure_target() {
+ if [ "${ARCH}" = "aarch64" ]; then
+ # This is only needed for armv8.2-a targets where we don't use this flag
+ # as it prohibits the use of LSE-instructions, this is a package bug most likely
+ export CFLAGS="${CFLAGS} -mno-outline-atomics"
+ export CXXFLAGS="${CXXFLAGS} -mno-outline-atomics"
+ fi
+}
+
makeinstall_target() {
mkdir -p ${INSTALL}/usr/lib/libretro
cp parallel_n64_libretro.so ${INSTALL}/usr/lib/libretro/
diff --git a/packages/emulators/libretro/pcsx_rearmed-lr/package.mk b/packages/emulators/libretro/pcsx_rearmed-lr/package.mk
index c8b92b53d..aa99e56db 100644
--- a/packages/emulators/libretro/pcsx_rearmed-lr/package.mk
+++ b/packages/emulators/libretro/pcsx_rearmed-lr/package.mk
@@ -3,7 +3,7 @@
# Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS)
PKG_NAME="pcsx_rearmed-lr"
-PKG_VERSION="3e80e5c25edcf850f603cf0948e1cc16dc38e98d"
+PKG_VERSION="19f1a7d2de3a136810a84341db77d4f5eb8f3361"
PKG_ARCH="arm aarch64"
PKG_LICENSE="GPLv2"
PKG_SITE="https://github.com/libretro/pcsx_rearmed"
diff --git a/packages/emulators/libretro/picodrive-lr/package.mk b/packages/emulators/libretro/picodrive-lr/package.mk
index 5999bd010..7486e1d86 100644
--- a/packages/emulators/libretro/picodrive-lr/package.mk
+++ b/packages/emulators/libretro/picodrive-lr/package.mk
@@ -1,5 +1,5 @@
PKG_NAME="picodrive-lr"
-PKG_VERSION="ad93670449a28825d4b2cebf2eeff72cf03377a9"
+PKG_VERSION="479f120b928153815a4543b7c4104c0aa355a660"
PKG_LICENSE="MAME"
PKG_SITE="https://github.com/libretro/picodrive"
PKG_URL="${PKG_SITE}.git"
@@ -9,9 +9,12 @@ GET_HANDLER_SUPPORT="git"
PKG_BUILD_FLAGS="-gold"
PKG_TOOLCHAIN="make"
-
PKG_PATCH_DIRS="${PROJECT}"
+pre_configure_target() {
+export CFLAGS="${CFLAGS} -Wno-error=incompatible-pointer-types"
+}
+
configure_target() {
:
}
diff --git a/packages/emulators/libretro/pokemini-lr/package.mk b/packages/emulators/libretro/pokemini-lr/package.mk
index df7f38926..2bf088b5c 100644
--- a/packages/emulators/libretro/pokemini-lr/package.mk
+++ b/packages/emulators/libretro/pokemini-lr/package.mk
@@ -19,7 +19,7 @@
################################################################################
PKG_NAME="pokemini-lr"
-PKG_VERSION="9bf450887026d9b92d4f9432b5d2a5ed749a35e2"
+PKG_VERSION="a62d157d2fc10a1400ffa435b4beb08f7a7d8e09"
PKG_LICENSE="GPLv3"
PKG_SITE="https://github.com/libretro/pokemini"
PKG_URL="${PKG_SITE}/archive/${PKG_VERSION}.tar.gz"
diff --git a/packages/emulators/libretro/prboom-lr/package.mk b/packages/emulators/libretro/prboom-lr/package.mk
index 176353097..ae22be85c 100644
--- a/packages/emulators/libretro/prboom-lr/package.mk
+++ b/packages/emulators/libretro/prboom-lr/package.mk
@@ -19,7 +19,7 @@
################################################################################
PKG_NAME="prboom-lr"
-PKG_VERSION="6ec854969fd9dec33bb2cab350f05675d1158969"
+PKG_VERSION="9d412db570d3291829b308e6d1ac17f04acdda17"
PKG_LICENSE="GPLv2"
PKG_SITE="https://github.com/libretro/libretro-prboom"
PKG_URL="${PKG_SITE}/archive/${PKG_VERSION}.tar.gz"
diff --git a/packages/emulators/libretro/prosystem-lr/package.mk b/packages/emulators/libretro/prosystem-lr/package.mk
index 6236969a6..9ccaffcdd 100644
--- a/packages/emulators/libretro/prosystem-lr/package.mk
+++ b/packages/emulators/libretro/prosystem-lr/package.mk
@@ -19,7 +19,7 @@
################################################################################
PKG_NAME="prosystem-lr"
-PKG_VERSION="4202ac5bdb2ce1a21f84efc0e26d75bb5aa7e248"
+PKG_VERSION="a639359434cde73e6cdc651763afc587c1afb678"
PKG_LICENSE="GPLv2"
PKG_SITE="https://github.com/libretro/prosystem-libretro"
PKG_URL="${PKG_SITE}/archive/${PKG_VERSION}.tar.gz"
diff --git a/packages/emulators/libretro/px68k-lr/package.mk b/packages/emulators/libretro/px68k-lr/package.mk
index 17b155e09..3867012de 100644
--- a/packages/emulators/libretro/px68k-lr/package.mk
+++ b/packages/emulators/libretro/px68k-lr/package.mk
@@ -19,7 +19,7 @@
################################################################################
PKG_NAME="px68k-lr"
-PKG_VERSION="8bdae0a389fb471f02154dce74afaed726d5ae79"
+PKG_VERSION="6bd8d244cc3fd058a4e1b3b44fc5b6b43cd2cb90"
PKG_LICENSE="Unknown"
PKG_SITE="https://github.com/libretro/px68k-libretro"
PKG_URL="${PKG_SITE}/archive/${PKG_VERSION}.tar.gz"
diff --git a/packages/emulators/libretro/quasi88-lr/package.mk b/packages/emulators/libretro/quasi88-lr/package.mk
index 57a27a1cf..b481a7ac9 100644
--- a/packages/emulators/libretro/quasi88-lr/package.mk
+++ b/packages/emulators/libretro/quasi88-lr/package.mk
@@ -2,7 +2,7 @@
# Copyright (C) 2019-present asakous (https://github.com/asakous)
PKG_NAME="quasi88-lr"
-PKG_VERSION="31ccb0c2b634e73355a00086901c0d464846b90a"
+PKG_VERSION="ff94d9d2884d71580c163fcd71b6850c0f393f44"
PKG_LICENSE="BSD3"
PKG_SITE="https://github.com/libretro/quasi88-libretro"
PKG_URL="${PKG_SITE}.git"
diff --git a/packages/emulators/libretro/quicknes-lr/package.mk b/packages/emulators/libretro/quicknes-lr/package.mk
index 66c6644c0..6589cbd3c 100644
--- a/packages/emulators/libretro/quicknes-lr/package.mk
+++ b/packages/emulators/libretro/quicknes-lr/package.mk
@@ -19,7 +19,7 @@
################################################################################
PKG_NAME="quicknes-lr"
-PKG_VERSION="cd73f021be7dd5b1a21b71155a320364c02de4ac"
+PKG_VERSION="89d649a544e7d37a5cdbc77c811e88753fa23131"
PKG_LICENSE="LGPLv2.1+"
PKG_SITE="https://github.com/libretro/QuickNES_Core"
PKG_URL="${PKG_SITE}/archive/${PKG_VERSION}.tar.gz"
diff --git a/packages/emulators/libretro/retroarch/package.mk b/packages/emulators/libretro/retroarch/package.mk
index f43c7341e..63f9622e8 100644
--- a/packages/emulators/libretro/retroarch/package.mk
+++ b/packages/emulators/libretro/retroarch/package.mk
@@ -3,7 +3,7 @@
# Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS)
PKG_NAME="retroarch"
-PKG_VERSION="00b8a5f15c7d671cdf107c3d01e71a729581d1cd" # v1.19.0
+PKG_VERSION="0792144fe3a7b59908b0afdb2c01722e79040360" # v1.19.1
PKG_SITE="https://github.com/libretro/RetroArch"
PKG_URL="${PKG_SITE}.git"
PKG_LICENSE="GPLv3"
@@ -74,7 +74,7 @@ if [ "${OPENGLES_SUPPORT}" = "yes" ]; then
PKG_DEPENDS_TARGET+=" ${OPENGLES}"
PKG_CONFIGURE_OPTS_TARGET+=" --enable-opengles --enable-opengles3"
case ${DEVICE} in
- RK33*|RK35*)
+ RK33*|RK35*|H700)
PKG_CONFIGURE_OPTS_TARGET+=" --enable-opengles3_1"
;;
S922X)
diff --git a/packages/emulators/libretro/retroarch/retroarch-assets/package.mk b/packages/emulators/libretro/retroarch/retroarch-assets/package.mk
index 1d6fccb24..54e99c5c2 100644
--- a/packages/emulators/libretro/retroarch/retroarch-assets/package.mk
+++ b/packages/emulators/libretro/retroarch/retroarch-assets/package.mk
@@ -19,7 +19,7 @@
################################################################################
PKG_NAME="retroarch-assets"
-PKG_VERSION="771e60b1eacd4edc57c19b61ab2c713200af0a3f"
+PKG_VERSION="8a74442fabfc6f72c623dbf1f7a59bfeba771b9f"
PKG_LICENSE="GPL"
PKG_SITE="https://github.com/libretro/retroarch-assets"
PKG_URL="https://github.com/libretro/retroarch-assets/archive/${PKG_VERSION}.tar.gz"
diff --git a/packages/emulators/libretro/retroarch/retroarch-joypads/gamepads/gpio-keys-gamepad.cfg b/packages/emulators/libretro/retroarch/retroarch-joypads/gamepads/gpio-keys-gamepad.cfg
new file mode 100644
index 000000000..f430e66c5
--- /dev/null
+++ b/packages/emulators/libretro/retroarch/retroarch-joypads/gamepads/gpio-keys-gamepad.cfg
@@ -0,0 +1,34 @@
+input_driver = "udev"
+input_device = "gpio-keys-gamepad"
+input_device_display_name = "Anbernic RG35XX Plus Joypad"
+
+input_b_btn = "0"
+input_a_btn = "1"
+input_x_btn = "3"
+input_y_btn = "2"
+
+input_select_btn = "8"
+input_start_btn = "9"
+
+input_l_btn = "4"
+input_r_btn = "5"
+input_l2_btn = "6"
+input_r2_btn = "7"
+
+input_up_btn = "11"
+input_down_btn = "12"
+input_left_btn = "13"
+input_right_btn = "14"
+
+# Hotkeys
+input_enable_hotkey_btn = "10"
+input_exit_emulator_btn = "9"
+
+input_menu_toggle_btn = "3"
+input_fps_toggle_btn = "2"
+
+input_load_state_btn = "4"
+input_save_state_btn = "5"
+
+input_rewind_btn = "6"
+input_toggle_fast_forward_btn = "7"
diff --git a/packages/emulators/libretro/retroarch/retroarch-joypads/package.mk b/packages/emulators/libretro/retroarch/retroarch-joypads/package.mk
index 42ba5af2d..6d37cf599 100644
--- a/packages/emulators/libretro/retroarch/retroarch-joypads/package.mk
+++ b/packages/emulators/libretro/retroarch/retroarch-joypads/package.mk
@@ -2,7 +2,7 @@
# Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS)
PKG_NAME="retroarch-joypads"
-PKG_VERSION="ae224d2ea4aa74b797c575a33be82882d455d638"
+PKG_VERSION="945c145f65fe30b25337e7b008bfcee1a6df8d99"
PKG_LICENSE="GPL"
PKG_SITE="https://github.com/libretro/retroarch-joypad-autoconfig"
PKG_URL="${PKG_SITE}.git"
diff --git a/packages/emulators/libretro/retroarch/retroarch-overlays/package.mk b/packages/emulators/libretro/retroarch/retroarch-overlays/package.mk
index cb7c09dac..793e8a76f 100644
--- a/packages/emulators/libretro/retroarch/retroarch-overlays/package.mk
+++ b/packages/emulators/libretro/retroarch/retroarch-overlays/package.mk
@@ -19,7 +19,7 @@
################################################################################
PKG_NAME="retroarch-overlays"
-PKG_VERSION="4b5ca35c5d5451046c286f0650a6885740056335"
+PKG_VERSION="7c9ed3968eff50b742fb8e9b478919c0ee0ed859"
PKG_LICENSE="GPL"
PKG_SITE="https://github.com/libretro/common-overlays"
PKG_URL="https://github.com/libretro/common-overlays/archive/${PKG_VERSION}.tar.gz"
diff --git a/packages/emulators/libretro/retroarch/sources/H700/TATE-MAME 2003-Plus.rmp b/packages/emulators/libretro/retroarch/sources/H700/TATE-MAME 2003-Plus.rmp
new file mode 100755
index 000000000..366e47afa
--- /dev/null
+++ b/packages/emulators/libretro/retroarch/sources/H700/TATE-MAME 2003-Plus.rmp
@@ -0,0 +1,27 @@
+input_libretro_device_p1 = "1"
+input_libretro_device_p2 = "1"
+input_libretro_device_p3 = "1"
+input_libretro_device_p4 = "1"
+input_libretro_device_p5 = "1"
+input_player1_analog_dpad_mode = "1"
+input_player1_btn_down = "6"
+input_player1_btn_left = "4"
+input_player1_btn_right = "5"
+input_player1_btn_up = "7"
+input_player1_stk_l_x+ = "5"
+input_player1_stk_l_x- = "4"
+input_player1_stk_l_y+ = "6"
+input_player1_stk_l_y- = "7"
+input_player1_stk_r_x+ = "5"
+input_player1_stk_r_x- = "4"
+input_player1_stk_r_y+ = "6"
+input_player1_stk_r_y- = "7"
+input_player2_analog_dpad_mode = "0"
+input_player3_analog_dpad_mode = "0"
+input_player4_analog_dpad_mode = "0"
+input_player5_analog_dpad_mode = "0"
+input_remap_port_p1 = "0"
+input_remap_port_p2 = "1"
+input_remap_port_p3 = "2"
+input_remap_port_p4 = "3"
+input_remap_port_p5 = "4"
diff --git a/packages/emulators/libretro/retroarch/sources/H700/retroarch-core-options.cfg b/packages/emulators/libretro/retroarch/sources/H700/retroarch-core-options.cfg
new file mode 100755
index 000000000..f0f312272
--- /dev/null
+++ b/packages/emulators/libretro/retroarch/sources/H700/retroarch-core-options.cfg
@@ -0,0 +1,153 @@
+mupen64plus-alt-map = "False"
+mupen64plus-aspect = "4:3"
+mupen64plus-astick-deadzone = "15"
+mupen64plus-astick-sensitivity = "100"
+mupen64plus-BackgroundMode = "Stripped"
+mupen64plus-BilinearMode = "standard"
+mupen64plus-CorrectTexrectCoords = "Auto"
+mupen64plus-CountPerOp = "0"
+mupen64plus-CountPerOpDenomPot = "0"
+mupen64plus-cpucore = "dynamic_recompiler"
+mupen64plus-d-cbutton = "C3"
+mupen64plus-DitheringPattern = "True"
+mupen64plus-DitheringQuantization = "True"
+mupen64plus-EnableCopyAuxToRDRAM = "True"
+mupen64plus-EnableCopyColorToRDRAM = "Async"
+mupen64plus-EnableCopyDepthToRDRAM = "Software"
+mupen64plus-EnableEnhancedHighResStorage = "False"
+mupen64plus-EnableEnhancedTextureStorage = "False"
+mupen64plus-EnableFBEmulation = "True"
+mupen64plus-EnableFragmentDepthWrite = "False"
+mupen64plus-EnableHiResAltCRC = "False"
+mupen64plus-EnableHWLighting = "True"
+mupen64plus-EnableInaccurateTextureCoordinates = "False"
+mupen64plus-EnableLegacyBlending = "False"
+mupen64plus-EnableLODEmulation = "True"
+mupen64plus-EnableNativeResFactor = "1"
+mupen64plus-EnableNativeResTexrects = "Optimized"
+mupen64plus-EnableOverscan = "Enabled"
+mupen64plus-EnableTexCoordBounds = "False"
+mupen64plus-EnableTextureCache = "True"
+mupen64plus-ForceDisableExtraMem = "False"
+mupen64plus-FrameDuping = "True"
+mupen64plus-Framerate = "Original"
+mupen64plus-FXAA = "0"
+mupen64plus-GLideN64IniBehaviour = "late"
+mupen64plus-HybridFilter = "True"
+mupen64plus-IgnoreTLBExceptions = "False"
+mupen64plus-l-cbutton = "C2"
+mupen64plus-MaxHiResTxVramLimit = "0"
+mupen64plus-MaxTxCacheSize = "8000"
+mupen64plus-MultiSampling = "0"
+mupen64plus-OverscanBottom = "0"
+mupen64plus-OverscanLeft = "0"
+mupen64plus-OverscanRight = "0"
+mupen64plus-OverscanTop = "0"
+mupen64plus-pak1 = "memory"
+mupen64plus-pak2 = "none"
+mupen64plus-pak3 = "none"
+mupen64plus-pak4 = "none"
+mupen64plus-r-cbutton = "C1"
+mupen64plus-rdp-plugin = "gliden64"
+mupen64plus-RDRAMImageDitheringMode = "BlueNoise"
+mupen64plus-rsp-plugin = "hle"
+mupen64plus-ThreadedRenderer = "True"
+mupen64plus-txCacheCompression = "True"
+mupen64plus-txEnhancementMode = "None"
+mupen64plus-txFilterIgnoreBG = "True"
+mupen64plus-txFilterMode = "None"
+mupen64plus-txHiresEnable = "False"
+mupen64plus-txHiresFullAlphaChannel = "False"
+mupen64plus-u-cbutton = "C4"
+mupen64plus-virefresh = "Auto"
+pcsx_rearmed_analog_axis_modifier = "circle"
+pcsx_rearmed_async_cd = "sync"
+pcsx_rearmed_bios = "auto"
+pcsx_rearmed_display_internal_fps = "disabled"
+pcsx_rearmed_dithering = "enabled"
+pcsx_rearmed_drc = "enabled"
+pcsx_rearmed_duping_enable = "enabled"
+pcsx_rearmed_frameskip_type = "disabled"
+pcsx_rearmed_gteregsunneeded = "disabled"
+pcsx_rearmed_gunconadjustratiox = "1"
+pcsx_rearmed_gunconadjustratioy = "1"
+pcsx_rearmed_gunconadjustx = "0"
+pcsx_rearmed_gunconadjusty = "0"
+pcsx_rearmed_idiablofix = "disabled"
+pcsx_rearmed_input_sensitivity = "1.00"
+pcsx_rearmed_inuyasha_fix = "disabled"
+pcsx_rearmed_memcard2 = "disabled"
+pcsx_rearmed_multitap1 = "auto"
+pcsx_rearmed_multitap2 = "auto"
+pcsx_rearmed_negcon_deadzone = "0"
+pcsx_rearmed_negcon_response = "linear"
+pcsx_rearmed_neon_enhancement_enable = "disabled"
+pcsx_rearmed_neon_enhancement_no_main = "disabled"
+pcsx_rearmed_neon_interlace_enable = "disabled"
+pcsx_rearmed_nocdaudio = "enabled"
+pcsx_rearmed_nogteflags = "disabled"
+pcsx_rearmed_nosmccheck = "disabled"
+pcsx_rearmed_noxadecoding = "enabled"
+pcsx_rearmed_pad1type = "standard"
+pcsx_rearmed_pad2type = "standard"
+pcsx_rearmed_pad3type = "none"
+pcsx_rearmed_pad4type = "none"
+pcsx_rearmed_pad5type = "none"
+pcsx_rearmed_pad6type = "none"
+pcsx_rearmed_pad7type = "none"
+pcsx_rearmed_pad8type = "none"
+pcsx_rearmed_pe2_fix = "disabled"
+pcsx_rearmed_psxclock = "57"
+pcsx_rearmed_region = "auto"
+pcsx_rearmed_show_bios_bootlogo = "disabled"
+pcsx_rearmed_show_other_input_settings = "disabled"
+pcsx_rearmed_spu_interpolation = "simple"
+pcsx_rearmed_spu_reverb = "enabled"
+pcsx_rearmed_spuirq = "disabled"
+pcsx_rearmed_vibration = "enabled"
+gambatte_gb_colorization = "disabled"
+gambatte_gb_internal_palette = ""
+mame2003-plus_analog = "digital"
+mame2003-plus_art_resolution = "1"
+mame2003-plus_brightness = "1.0"
+mame2003-plus_cheat_input_ports = "disabled"
+mame2003-plus_core_save_subfolder = "enabled"
+mame2003-plus_core_sys_subfolder = "enabled"
+mame2003-plus_dcs_speedhack = "enabled"
+mame2003-plus_deadzone = "20"
+mame2003-plus_digital_joy_centering = "enabled"
+mame2003-plus_display_artwork = "enabled"
+mame2003-plus_display_setup = "disabled"
+mame2003-plus_four_way_emulation = "disabled"
+mame2003-plus_frameskip = "0"
+mame2003-plus_gamma = "1.0"
+mame2003-plus_input_interface = "retropad"
+mame2003-plus_machine_timing = "enabled"
+mame2003-plus_mame_remapping = "enabled"
+mame2003-plus_mouse_device = "mouse"
+mame2003-plus_sample_rate = "48000"
+mame2003-plus_skip_disclaimer = "disabled"
+mame2003-plus_skip_warnings = "disabled"
+flycast_internal_resolution = "640x480"
+flycast_alpha_sorting = "per-strip (fast, least accurate)"
+flycast_enable_dsp = "disabled"
+flycast_threaded_rendering = "enabled"
+flycast_anisotropic_filtering = "off"
+flycast_synchronous_rendering = "enabled"
+flycast_enable_rtt = "disabled"
+flycast_enable_rttb = "disabled"
+flycast_delay_frame_swapping = "disabled"
+flycast_div_matching = "auto"
+flycast_texupscale = "off"
+flycast_auto_skip_frame = "normal"
+opera_swi_hle = "enabled"
+opera_dsp_threaded = "enabled"
+opera_madam_matrix_engine = "software"
+puae_deadzone = "25"
+melonds_screen_layout = "Left/Right"
+melonds_swapscreen_mode = "Toggle"
+melonds_threaded_renderer = "enabled"
+melonds_touch_mode = "Joystick"
+duckstation_GPU.Renderer = "Software"
+virtualjaguar_bios = "enabled"
+virtualjaguar_usefastblitter = "enabled"
diff --git a/packages/emulators/libretro/retroarch/sources/H700/retroarch.cfg b/packages/emulators/libretro/retroarch/sources/H700/retroarch.cfg
new file mode 100755
index 000000000..be01a15cf
--- /dev/null
+++ b/packages/emulators/libretro/retroarch/sources/H700/retroarch.cfg
@@ -0,0 +1,818 @@
+accessibility_enable = "false"
+accessibility_narrator_speech_speed = "5"
+ai_service_enable = "true"
+ai_service_mode = "1"
+ai_service_pause = "false"
+ai_service_source_lang = "0"
+ai_service_target_lang = "0"
+ai_service_url = "http://localhost:4404/"
+all_users_control_menu = "true"
+apply_cheats_after_load = "false"
+apply_cheats_after_toggle = "false"
+aspect_ratio_index = "22"
+assets_directory = "/tmp/assets"
+audio_block_frames = "0"
+audio_device = ""
+audio_driver = "alsathread"
+audio_dsp_plugin = ""
+audio_enable_menu_bgm = "false"
+audio_enable_menu_cancel = "false"
+audio_enable_menu = "false"
+audio_enable_menu_notice = "false"
+audio_enable_menu_ok = "false"
+audio_enable = "true"
+audio_fastforward_mute = "false"
+audio_filter_dir = "~/.config/retroarch/filters/audio"
+audio_latency = "32"
+audio_max_timing_skew = "0.049999"
+audio_mixer_mute_enable = "false"
+audio_mixer_volume = "0.000000"
+audio_mute_enable = "false"
+audio_out_rate = "48000"
+audio_rate_control_delta = "0.004999"
+audio_rate_control = "true"
+audio_resampler_quality = "2"
+audio_resampler = "sinc"
+audio_sync = "true"
+audio_volume = "0.000000"
+auto_overrides_enable = "true"
+auto_remaps_enable = "true"
+autosave_interval = "10"
+auto_screenshot_filename = "true"
+auto_shaders_enable = "true"
+block_sram_overwrite = "false"
+bluetooth_driver = "null"
+builtin_imageviewer_enable = "false"
+builtin_mediaplayer_enable = "true"
+bundle_assets_dst_path = ""
+bundle_assets_dst_path_subdir = ""
+bundle_assets_extract_enable = "false"
+bundle_assets_extract_last_version = "0"
+bundle_assets_extract_version_current = "0"
+bundle_assets_src_path = ""
+cache_directory = "/tmp/cache"
+camera_allow = "false"
+camera_device = ""
+camera_driver = "null"
+cheat_database_path = "/tmp/database/cht"
+check_firmware_before_loading = "false"
+cheevos_auto_screenshot = "false"
+cheevos_badges_enable = "false"
+cheevos_challenge_indicators = "true"
+cheevos_enable = "false"
+cheevos_hardcore_mode_enable = "false"
+cheevos_leaderboards_enable = ""
+cheevos_password = ""
+cheevos_richpresence_enable = "true"
+cheevos_start_active = "false"
+cheevos_test_unofficial = "false"
+cheevos_token = ""
+cheevos_unlock_sound_enable = "false"
+cheevos_username = ""
+cheevos_verbose_enable = "false"
+config_save_on_exit = "false"
+content_database_path = "/tmp/database/rdb"
+content_favorites_directory = "default"
+content_favorites_path = "~/.config/retroarch/content_favorites.lpl"
+content_favorites_size = "200"
+content_history_dir = ""
+content_history_directory = "default"
+content_history_path = "~/.config/retroarch/content_history.lpl"
+content_history_size = "200"
+content_image_history_directory = "default"
+content_image_history_path = "~/.config/retroarch/content_image_history.lpl"
+content_music_history_directory = "default"
+content_music_history_path = "~/.config/retroarch/content_music_history.lpl"
+content_runtime_log_aggregate = "false"
+content_runtime_log = "true"
+content_show_add_entry = "2"
+content_show_add = "true"
+content_show_explore = "true"
+content_show_favorites = "true"
+content_show_history = "true"
+content_show_images = "false"
+content_show_music = "false"
+content_show_netplay = "true"
+content_show_playlists = "true"
+content_show_settings_password = ""
+content_show_settings = "true"
+content_show_video = "false"
+content_video_directory = "default"
+content_video_history_path = "~/.config/retroarch/content_video_history.lpl"
+core_assets_directory = "~/roms/downloads"
+core_info_cache_enable = "true"
+core_option_category_enable = "true"
+core_options_path = ""
+core_set_supports_no_game_enable = "true"
+core_updater_auto_backup = "false"
+core_updater_auto_backup_history_size = "1"
+core_updater_auto_extract_archive = "true"
+core_updater_buildbot_assets_url = "http://buildbot.libretro.com/assets/"
+core_updater_buildbot_cores_url = ""
+core_updater_buildbot_url = "http://buildbot.libretro.com/nightly/linux/armhf/latest/"
+core_updater_show_experimental_cores = "false"
+cpu_main_gov = "performance"
+cpu_max_freq = "-1"
+cpu_menu_gov = "ondemand"
+cpu_min_freq = "1"
+cpu_scaling_mode = "0"
+crt_switch_center_adjust = "0"
+crt_switch_hires_menu = "false"
+crt_switch_porch_adjust = "0"
+crt_switch_resolution = "0"
+crt_switch_resolution_super = "2560"
+crt_switch_resolution_use_custom_refresh_rate = "false"
+crt_switch_timings = ""
+crt_video_refresh_rate = "60.000000"
+current_resolution_id = "0"
+cursor_directory = "~/.config/retroarch/database/cursors"
+desktop_menu_enable = "true"
+discord_allow = "false"
+discord_app_id = "475456035851599874"
+driver_switch_enable = "true"
+dynamic_wallpapers_directory = "default"
+emuelec_exit_to_kodi = "false"
+enable_device_vibration = "true"
+facebook_stream_key = ""
+fastforward_ratio = "0.000000"
+filter_by_current_core = "false"
+flicker_filter_enable = "false"
+flicker_filter_index = "0"
+fps_show = "false"
+fps_update_interval = "256"
+framecount_show = "false"
+frame_time_counter_reset_after_fastforwarding = "false"
+frame_time_counter_reset_after_load_state = "false"
+frame_time_counter_reset_after_save_state = "false"
+frontend_log_level = "1"
+game_specific_options = "true"
+gamma_correction = "0"
+global_core_options = "false"
+history_list_enable = "true"
+input_ai_service_axis = "nul"
+input_ai_service_btn = "nul"
+input_ai_service_mbtn = "nul"
+input_ai_service = "nul"
+input_analog_deadzone = "0.000000"
+input_analog_sensitivity = "1.500000"
+input_audio_mute_axis = "nul"
+input_audio_mute_btn = "nul"
+input_audio_mute = "f9"
+input_audio_mute_mbtn = "nul"
+input_autodetect_enable = "true"
+input_auto_game_focus = "0"
+input_auto_mouse_grab = "false"
+input_axis_threshold = "0.500000"
+input_bind_hold = "2"
+input_bind_timeout = "5"
+input_cheat_index_minus_axis = "nul"
+input_cheat_index_minus_btn = "nul"
+input_cheat_index_minus_mbtn = "nul"
+input_cheat_index_minus = "t"
+input_cheat_index_plus_axis = "nul"
+input_cheat_index_plus_btn = "nul"
+input_cheat_index_plus_mbtn = "nul"
+input_cheat_index_plus = "y"
+input_cheat_toggle_axis = "nul"
+input_cheat_toggle_btn = "nul"
+input_cheat_toggle_mbtn = "nul"
+input_cheat_toggle = "u"
+input_close_content_axis = "nul"
+input_close_content_btn = "nul"
+input_close_content_mbtn = "nul"
+input_close_content = "nul"
+input_descriptor_hide_unbound = "false"
+input_descriptor_label_show = "true"
+input_desktop_menu_toggle_axis = "nul"
+input_desktop_menu_toggle_btn = "nul"
+input_desktop_menu_toggle = "f5"
+input_desktop_menu_toggle_mbtn = "nul"
+input_device_p1 = "0"
+input_device_p10 = "0"
+input_device_p11 = "0"
+input_device_p12 = "0"
+input_device_p13 = "0"
+input_device_p14 = "0"
+input_device_p15 = "0"
+input_device_p16 = "0"
+input_device_p2 = "0"
+input_device_p3 = "0"
+input_device_p4 = "0"
+input_device_p5 = "0"
+input_device_p6 = "0"
+input_device_p7 = "0"
+input_device_p8 = "0"
+input_device_p9 = "0"
+input_disk_eject_toggle_axis = "nul"
+input_disk_eject_toggle_btn = "nul"
+input_disk_eject_toggle_mbtn = "nul"
+input_disk_eject_toggle = "nul"
+input_disk_next_axis = "nul"
+input_disk_next_btn = "nul"
+input_disk_next_mbtn = "nul"
+input_disk_next = "nul"
+input_disk_prev_axis = "nul"
+input_disk_prev_btn = "nul"
+input_disk_prev_mbtn = "nul"
+input_disk_prev = "nul"
+input_driver = "udev"
+input_duty_cycle = "3"
+input_enable_hotkey_axis = "nul"
+input_enable_hotkey_mbtn = "nul"
+input_enable_hotkey = "nul"
+input_exit_emulator_axis = "nul"
+input_exit_emulator_btn = "9"
+input_exit_emulator = "escape"
+input_exit_emulator_mbtn = "nul"
+input_fps_toggle_axis = "nul"
+input_fps_toggle = "f3"
+input_fps_toggle_mbtn = "nul"
+input_frame_advance_axis = "nul"
+input_frame_advance_btn = "nul"
+input_frame_advance = "k"
+input_frame_advance_mbtn = "nul"
+input_game_focus_toggle_axis = "nul"
+input_game_focus_toggle_btn = "nul"
+input_game_focus_toggle_mbtn = "nul"
+input_game_focus_toggle = "scroll_lock"
+input_grab_mouse_toggle_axis = "nul"
+input_grab_mouse_toggle_btn = "nul"
+input_grab_mouse_toggle = "f11"
+input_grab_mouse_toggle_mbtn = "nul"
+input_hold_fast_forward_axis = "nul"
+input_hold_fast_forward_btn = "nul"
+input_hold_fast_forward = "l"
+input_hold_fast_forward_mbtn = "nul"
+input_hold_slowmotion_axis = "nul"
+input_hold_slowmotion_btn = "nul"
+input_hold_slowmotion = "e"
+input_hold_slowmotion_mbtn = "nul"
+input_hotkey_block_delay = "5"
+input_joypad_driver = "udev"
+input_keyboard_layout = ""
+input_libretro_device_p10 = "1"
+input_libretro_device_p1 = "1"
+input_libretro_device_p11 = "1"
+input_libretro_device_p12 = "1"
+input_libretro_device_p13 = "1"
+input_libretro_device_p14 = "1"
+input_libretro_device_p15 = "1"
+input_libretro_device_p16 = "1"
+input_libretro_device_p2 = "1"
+input_libretro_device_p3 = "1"
+input_libretro_device_p4 = "1"
+input_libretro_device_p5 = "1"
+input_libretro_device_p6 = "1"
+input_libretro_device_p7 = "1"
+input_libretro_device_p8 = "1"
+input_libretro_device_p9 = "1"
+input_load_state_axis = "nul"
+input_load_state_btn = "4"
+input_load_state = "f4"
+input_load_state_mbtn = "nul"
+input_max_users = "5"
+input_menu_toggle_axis = "nul"
+input_menu_toggle = "f1"
+input_menu_toggle_gamepad_combo = "2"
+input_menu_toggle_mbtn = "nul"
+input_movie_record_toggle_axis = "nul"
+input_movie_record_toggle_btn = "nul"
+input_movie_record_toggle_mbtn = "nul"
+input_movie_record_toggle = "o"
+input_netplay_game_watch_axis = "nul"
+input_netplay_game_watch_btn = "nul"
+input_netplay_game_watch = "i"
+input_netplay_game_watch_mbtn = "nul"
+input_netplay_host_toggle_axis = "nul"
+input_netplay_host_toggle_btn = "nul"
+input_netplay_host_toggle_mbtn = "nul"
+input_netplay_host_toggle = "nul"
+input_nowinkey_enable = "false"
+input_osk_toggle_axis = "nul"
+input_osk_toggle_btn = "nul"
+input_osk_toggle = "f12"
+input_osk_toggle_mbtn = "nul"
+input_overlay = ""
+input_overlay_aspect_adjust_landscape = "0.000000"
+input_overlay_aspect_adjust_portrait = "0.000000"
+input_overlay_auto_rotate = "false"
+input_overlay_auto_scale = "false"
+input_overlay_enable_autopreferred = "true"
+input_overlay_enable = "false"
+input_overlay_hide_in_menu = "true"
+input_overlay_hide_when_gamepad_connected = "false"
+input_overlay_next_axis = "nul"
+input_overlay_next_btn = "nul"
+input_overlay_next_mbtn = "nul"
+input_overlay_next = "nul"
+input_overlay_opacity = "0.700000"
+input_overlay_scale_landscape = "1.000000"
+input_overlay_scale_portrait = "1.000000"
+input_overlay_show_inputs = "2"
+input_overlay_show_inputs_port = "0"
+input_overlay_show_mouse_cursor = "true"
+input_overlay_x_offset_landscape = "0.000000"
+input_overlay_x_offset_portrait = "0.000000"
+input_overlay_x_separation_landscape = "0.000000"
+input_overlay_x_separation_portrait = "0.000000"
+input_overlay_y_offset_landscape = "0.000000"
+input_overlay_y_offset_portrait = "0.000000"
+input_overlay_y_separation_landscape = "0.000000"
+input_overlay_y_separation_portrait = "0.000000"
+input_pause_toggle_axis = "nul"
+input_pause_toggle_btn = "nul"
+input_pause_toggle_mbtn = "nul"
+input_pause_toggle = "p"
+input_poll_type_behavior = "2"
+input_quit_gamepad_combo = "0"
+input_recording_toggle_axis = "nul"
+input_recording_toggle_btn = "nul"
+input_recording_toggle_mbtn = "nul"
+input_recording_toggle = "nul"
+input_remap_binds_enable = "true"
+input_remapping_directory = "~/remappings"
+input_reset_axis = "nul"
+input_reset_btn = "nul"
+input_reset = "h"
+input_reset_mbtn = "nul"
+input_rewind_axis = "nul"
+input_rewind_btn = "6"
+input_rewind_mbtn = "nul"
+input_rewind = "r"
+input_rumble_gain = "100"
+input_runahead_toggle_axis = "nul"
+input_runahead_toggle_btn = "nul"
+input_runahead_toggle_mbtn = "nul"
+input_runahead_toggle = "nul"
+input_save_state_axis = "nul"
+input_save_state_btn = "5"
+input_save_state = "f2"
+input_save_state_mbtn = "nul"
+input_screenshot_axis = "nul"
+input_screenshot_btn = "nul"
+input_screenshot = "f8"
+input_screenshot_mbtn = "nul"
+input_send_debug_info_axis = "nul"
+input_send_debug_info_btn = "nul"
+input_send_debug_info = "f10"
+input_send_debug_info_mbtn = "nul"
+input_sensors_enable = "true"
+input_shader_next_axis = "nul"
+input_shader_next_btn = "nul"
+input_shader_next = "m"
+input_shader_next_mbtn = "nul"
+input_shader_prev_axis = "nul"
+input_shader_prev_btn = "nul"
+input_shader_prev_mbtn = "nul"
+input_shader_prev = "n"
+input_state_slot_decrease_axis = "nul"
+input_state_slot_decrease_btn = "nul"
+input_state_slot_decrease = "f6"
+input_state_slot_decrease_mbtn = "nul"
+input_state_slot_increase_axis = "nul"
+input_state_slot_increase_btn = "nul"
+input_state_slot_increase = "f7"
+input_state_slot_increase_mbtn = "nul"
+input_streaming_toggle_axis = "nul"
+input_streaming_toggle_btn = "nul"
+input_streaming_toggle_mbtn = "nul"
+input_streaming_toggle = "nul"
+input_toggle_fast_forward_axis = "nul"
+input_toggle_fast_forward_btn = "7"
+input_toggle_fast_forward_mbtn = "nul"
+input_toggle_fast_forward = "space"
+input_toggle_fullscreen_axis = "nul"
+input_toggle_fullscreen_btn = "nul"
+input_toggle_fullscreen = "f"
+input_toggle_fullscreen_mbtn = "nul"
+input_toggle_slowmotion_axis = "nul"
+input_toggle_slowmotion_btn = "nul"
+input_toggle_slowmotion_mbtn = "nul"
+input_toggle_slowmotion = "nul"
+input_touch_scale = "1"
+input_turbo_default_button = "0"
+input_turbo_mode = "0"
+input_turbo_period = "6"
+input_volume_down_axis = "nul"
+input_volume_down_btn = "nul"
+input_volume_down_mbtn = "nul"
+input_volume_down = "subtract"
+input_volume_up = "add"
+input_volume_up_axis = "nul"
+input_volume_up_btn = "nul"
+input_volume_up_mbtn = "nul"
+joypad_autoconfig_dir = "/tmp/joypads"
+keyboard_gamepad_enable = "true"
+keyboard_gamepad_mapping_type = "1"
+kiosk_mode_enable = "false"
+kiosk_mode_password = ""
+led_driver = "null"
+libretro_directory = "/tmp/cores"
+libretro_info_path = "/tmp/cores"
+libretro_log_level = "1"
+load_dummy_on_core_shutdown = "true"
+location_allow = "false"
+location_driver = "null"
+log_dir = "~/.config/retroarch/logs"
+log_to_file = "false"
+log_to_file_timestamp = "false"
+log_verbosity = "true"
+materialui_auto_rotate_nav_bar = "true"
+materialui_dual_thumbnail_list_view_enable = "true"
+materialui_icons_enable = "true"
+materialui_landscape_layout_optimization = "1"
+materialui_menu_color_theme = "9"
+materialui_menu_transition_animation = "0"
+materialui_playlist_icons_enable = "true"
+materialui_show_nav_bar = "true"
+materialui_thumbnail_background_enable = "true"
+materialui_thumbnail_view_landscape = "2"
+materialui_thumbnail_view_portrait = "1"
+memory_show = "false"
+memory_update_interval = "256"
+menu_battery_level_enable = "true"
+menu_core_enable = "true"
+menu_dynamic_wallpaper_enable = "false"
+menu_enable_widgets = "true"
+menu_font_color_blue = "255"
+menu_font_color_green = "255"
+menu_font_color_red = "255"
+menu_footer_opacity = "1.000000"
+menu_framebuffer_opacity = "0.899999"
+menu_header_opacity = "1.000000"
+menu_horizontal_animation = "true"
+menu_insert_disk_resume = "true"
+menu_left_thumbnails = "0"
+menu_linear_filter = "false"
+menu_mouse_enable = "false"
+menu_navigation_browser_filter_supported_extensions_enable = "true"
+menu_navigation_wraparound_enable = "true"
+menu_pause_libretro = "true"
+menu_pointer_enable = "false"
+menu_rgui_full_width_layout = "true"
+menu_rgui_shadows = "false"
+menu_rgui_transparency = "true"
+menu_savestate_resume = "true"
+menu_scale_factor = "0.300000"
+menu_screensaver_animation = "0"
+menu_screensaver_animation_speed = "1.000000"
+menu_screensaver_timeout = "0"
+menu_scroll_delay = "256"
+menu_scroll_fast = "false"
+menu_shader_pipeline = "2"
+menu_show_advanced_settings = "true"
+menu_show_configurations = "true"
+menu_show_core_updater = "false"
+menu_show_dump_disc = "true"
+menu_show_help = "true"
+menu_show_information = "true"
+menu_show_latency = "true"
+menu_show_legacy_thumbnail_updater = "false"
+menu_show_load_content_animation = "false"
+menu_show_load_content = "true"
+menu_show_load_core = "true"
+menu_show_load_disc = "true"
+menu_show_online_updater = "true"
+menu_show_overlays = "true"
+menu_show_quit_retroarch = "true"
+menu_show_reboot = "false"
+menu_show_restart_retroarch = "true"
+menu_show_rewind = "true"
+menu_show_shutdown = "false"
+menu_show_sublabels = "true"
+menu_show_video_layout = "true"
+menu_swap_ok_cancel_buttons = "false"
+menu_throttle_framerate = "true"
+menu_thumbnails = "3"
+menu_thumbnail_upscale_threshold = "0"
+menu_ticker_smooth = "true"
+menu_ticker_speed = "2.000000"
+menu_ticker_type = "1"
+menu_timedate_date_separator = "0"
+menu_timedate_enable = "true"
+menu_timedate_style = "11"
+menu_unified_controls = "false"
+menu_use_preferred_system_color_theme = "false"
+menu_wallpaper = ""
+menu_wallpaper_opacity = "1.000000"
+menu_widget_scale_auto = "false"
+menu_widget_scale_factor = "0.350000"
+menu_widget_scale_factor_windowed = "1.000000"
+menu_xmb_animation_horizontal_highlight = "0"
+menu_xmb_animation_move_up_down = "0"
+menu_xmb_animation_opening_main_menu = "0"
+menu_xmb_thumbnail_scale_factor = "100"
+midi_driver = "alsa"
+midi_input = "Off"
+midi_output = "Off"
+midi_volume = "100"
+netplay_allow_slaves = "true"
+netplay_check_frames = "600"
+netplay_input_latency_frames_min = "0"
+netplay_input_latency_frames_range = "0"
+netplay_ip_address = ""
+netplay_ip_port = "55435"
+netplay_max_connections = "3"
+netplay_mitm_server = "nyc"
+netplay_nat_traversal = "true"
+netplay_nickname = ""
+netplay_password = ""
+netplay_public_announce = "true"
+netplay_request_device_p10 = "false"
+netplay_request_device_p11 = "false"
+netplay_request_device_p12 = "false"
+netplay_request_device_p13 = "false"
+netplay_request_device_p14 = "false"
+netplay_request_device_p15 = "false"
+netplay_request_device_p16 = "false"
+netplay_request_device_p1 = "false"
+netplay_request_device_p2 = "false"
+netplay_request_device_p3 = "false"
+netplay_request_device_p4 = "false"
+netplay_request_device_p5 = "false"
+netplay_request_device_p6 = "false"
+netplay_request_device_p7 = "false"
+netplay_request_device_p8 = "false"
+netplay_request_device_p9 = "false"
+netplay_require_slaves = "false"
+netplay_share_analog = "1"
+netplay_share_digital = "1"
+netplay_spectate_password = ""
+netplay_start_as_spectator = "false"
+netplay_stateless_mode = "false"
+netplay_use_mitm_server = "false"
+network_cmd_enable = "false"
+network_cmd_port = "55355"
+network_on_demand_thumbnails = "false"
+network_remote_base_port = "55400"
+network_remote_enable = "false"
+network_remote_enable_user_p10 = "false"
+network_remote_enable_user_p11 = "false"
+network_remote_enable_user_p12 = "false"
+network_remote_enable_user_p13 = "false"
+network_remote_enable_user_p14 = "false"
+network_remote_enable_user_p15 = "false"
+network_remote_enable_user_p16 = "false"
+network_remote_enable_user_p1 = "false"
+network_remote_enable_user_p2 = "false"
+network_remote_enable_user_p3 = "false"
+network_remote_enable_user_p4 = "false"
+network_remote_enable_user_p5 = "false"
+network_remote_enable_user_p6 = "false"
+network_remote_enable_user_p7 = "false"
+network_remote_enable_user_p8 = "false"
+network_remote_enable_user_p9 = "false"
+notification_show_autoconfig = "false"
+notification_show_cheats_applied = "true"
+notification_show_config_override_load = "false"
+notification_show_fast_forward = "true"
+notification_show_netplay_extra = "false"
+notification_show_patch_applied = "true"
+notification_show_refresh_rate = "true"
+notification_show_remap_load = "false"
+notification_show_screenshot_duration = "2"
+notification_show_screenshot = "false"
+notification_show_screenshot_flash = "1"
+notification_show_set_initial_disk = "true"
+overlay_directory = "/tmp/overlays"
+ozone_collapse_sidebar = "false"
+ozone_menu_color_theme = "1"
+ozone_scroll_content_metadata = "false"
+ozone_sort_after_truncate_playlist_name = "true"
+ozone_truncate_playlist_name = "true"
+pause_nonactive = "true"
+perfcnt_enable = "false"
+playlist_compression = "false"
+playlist_cores = ""
+playlist_directory = "~/playlists"
+playlist_entry_remove_enable = "1"
+playlist_entry_remove = "false"
+playlist_entry_rename = "false"
+playlist_fuzzy_archive_match = "false"
+playlist_names = ""
+playlist_portable_paths = "false"
+playlist_show_entry_idx = "true"
+playlist_show_inline_core_name = "0"
+playlist_show_sublabels = "true"
+playlist_sort_alphabetical = "true"
+playlist_sublabel_last_played_style = "0"
+playlist_sublabel_runtime_type = "0"
+playlist_use_old_format = "false"
+quick_menu_show_add_to_favorites = "true"
+quick_menu_show_cheats = "true"
+quick_menu_show_close_content = "true"
+quick_menu_show_controls = "true"
+quick_menu_show_core_options_flush = "false"
+quick_menu_show_download_thumbnails = "true"
+quick_menu_show_information = "true"
+quick_menu_show_options = "true"
+quick_menu_show_recording = "true"
+quick_menu_show_reset_core_association = "true"
+quick_menu_show_restart_content = "true"
+quick_menu_show_resume_content = "true"
+quick_menu_show_save_content_dir_overrides = "true"
+quick_menu_show_save_core_overrides = "false"
+quick_menu_show_save_game_overrides = "false"
+quick_menu_show_save_load_state = "true"
+quick_menu_show_set_core_association = "true"
+quick_menu_show_shaders = "true"
+quick_menu_show_start_recording = "true"
+quick_menu_show_start_streaming = "true"
+quick_menu_show_streaming = "true"
+quick_menu_show_take_screenshot = "true"
+quick_menu_show_undo_save_load_state = "false"
+quit_on_close_content = "0"
+quit_press_twice = "true"
+record_driver = "null"
+recording_config_directory = ""
+recording_output_directory = "~/roms/screenshots"
+resampler_directory = ""
+rewind_buffer_size = "20971520"
+rewind_buffer_size_step = "10"
+rewind_enable = "false"
+rewind_granularity = "1"
+rgui_aspect_ratio = "0"
+rgui_aspect_ratio_lock = "0"
+rgui_background_filler_thickness_enable = "true"
+rgui_border_filler_enable = "true"
+rgui_border_filler_thickness_enable = "true"
+rgui_browser_directory = "~/roms"
+rgui_config_directory = "~/.config/retroarch/config"
+rgui_extended_ascii = "false"
+rgui_inline_thumbnails = "false"
+rgui_internal_upscale_level = "0"
+rgui_menu_color_theme = "4"
+rgui_menu_theme_preset = ""
+rgui_particle_effect = "0"
+rgui_particle_effect_screensaver = "true"
+rgui_particle_effect_speed = "1.000000"
+rgui_show_start_screen = "false"
+rgui_swap_thumbnails = "false"
+rgui_switch_icons = "true"
+rgui_thumbnail_delay = "0"
+rgui_thumbnail_downscaler = "0"
+run_ahead_enabled = "false"
+run_ahead_frames = "1"
+run_ahead_hide_warnings = "false"
+run_ahead_secondary_instance = "true"
+runtime_log_directory = "default"
+save_file_compression = "false"
+savefile_directory = "~/.config/retroarch/saves"
+savefiles_in_content_dir = "true"
+savestate_auto_index = "false"
+savestate_auto_load = "false"
+savestate_auto_save = "false"
+savestate_directory = "~/.config/retroarch/states"
+savestate_file_compression = "true"
+savestate_max_keep = "0"
+savestates_in_content_dir = "false"
+savestate_thumbnail_enable = "true"
+scan_without_core_match = "false"
+screen_brightness = "100"
+screen_orientation = "0"
+screenshot_directory = "~/roms/screenshots"
+screenshots_in_content_dir = "false"
+settings_show_accessibility = "true"
+settings_show_achievements = "true"
+settings_show_ai_service = "true"
+settings_show_audio = "true"
+settings_show_configuration = "true"
+settings_show_core = "true"
+settings_show_directory = "true"
+settings_show_drivers = "true"
+settings_show_file_browser = "true"
+settings_show_frame_throttle = "true"
+settings_show_input = "true"
+settings_show_latency = "true"
+settings_show_logging = "true"
+settings_show_network = "true"
+settings_show_onscreen_display = "true"
+settings_show_playlists = "true"
+settings_show_power_management = "true"
+settings_show_recording = "true"
+settings_show_saving = "true"
+settings_show_user_interface = "true"
+settings_show_user = "true"
+settings_show_video = "true"
+show_hidden_files = "false"
+slowmotion_ratio = "3.000000"
+soft_filter_enable = "false"
+soft_filter_index = "0"
+sort_savefiles_by_content_enable = "false"
+sort_savefiles_enable = "false"
+sort_savestates_by_content_enable = "false"
+sort_savestates_enable = "false"
+sort_screenshots_by_content_enable = "false"
+state_slot = "0"
+statistics_show = "false"
+stdin_cmd_enable = "false"
+streaming_mode = "0"
+suspend_screensaver_enable = "true"
+sustained_performance_mode = "false"
+system_directory = "~/roms/bios"
+systemfiles_in_content_dir = "false"
+threaded_data_runloop_enable = "true"
+thumbnails_directory = "~/thumbnails"
+twitch_stream_key = ""
+ui_companion_enable = "false"
+ui_companion_start_on_boot = "true"
+ui_companion_toggle = "false"
+ui_menubar_enable = "true"
+use_last_start_directory = "false"
+user_language = "0"
+vibrate_on_keypress = "true"
+video_adaptive_vsync = "false"
+video_allow_rotate = "true"
+video_aspect_ratio = "-1.000000"
+video_aspect_ratio_auto = "true"
+video_black_frame_insertion = "0"
+video_context_driver = ""
+video_crop_overscan = "true"
+video_ctx_scaling = "false"
+video_disable_composition = "false"
+video_driver = "glcore"
+video_filter = ""
+video_filter_dir = "~/.config/retroarch/filters/video"
+video_font_enable = "true"
+video_font_path = "/usr/share/retroarch-assets/xmb/monochrome/font.ttf"
+video_font_size = "32.000000"
+video_force_aspect = "true"
+video_force_srgb_disable = "false"
+video_frame_delay = "0"
+video_frame_delay_auto = "false"
+video_fullscreen = "true"
+video_fullscreen_x = "640"
+video_fullscreen_y = "480"
+video_gpu_record = "false"
+video_gpu_screenshot = "false"
+video_hard_sync = "false"
+video_hard_sync_frames = "0"
+video_hdr_display_contrast = "5.000000"
+video_hdr_enable = "false"
+video_hdr_expand_gamut = "true"
+video_hdr_max_nits = "1000.000000"
+video_hdr_paper_white_nits = "200.000000"
+video_layout_directory = "~/.config/retroarch/layouts"
+video_layout_enable = "true"
+video_layout_path = ""
+video_layout_selected_view = "0"
+video_max_swapchain_images = "3"
+video_message_color = "ffff00"
+video_message_pos_x = "0.049999"
+video_message_pos_y = "0.049999"
+video_monitor_index = "0"
+video_msg_bgcolor_blue = "0"
+video_msg_bgcolor_enable = "false"
+video_msg_bgcolor_green = "0"
+video_msg_bgcolor_opacity = "1.000000"
+video_msg_bgcolor_red = "0"
+video_notch_write_over_enable = "false"
+video_oga_vertical_enable = "false"
+video_post_filter_record = "false"
+video_record_config = ""
+video_record_quality = "4"
+video_record_scale_factor = "1"
+video_record_threads = "2"
+video_refresh_rate = "60.000000"
+video_rotation = "0"
+video_scale = "3.000000"
+video_scale_integer = "false"
+video_scale_integer_overscale = "false"
+video_shader_delay = "0"
+video_shader_dir = "/tmp/shaders"
+video_shader_enable = "false"
+video_shader_preset_save_reference_enable = "true"
+video_shader_remember_last_dir = "false"
+video_shader_watch_files = "false"
+video_shared_context = "false"
+video_smooth = "false"
+video_stream_config = ""
+video_stream_port = "56400"
+video_stream_quality = "10"
+video_stream_scale_factor = "1"
+video_stream_url = ""
+video_swap_interval = "1"
+video_threaded = "true"
+video_vsync = "true"
+video_window_auto_height_max = "480"
+video_window_auto_width_max = "640"
+video_window_custom_size_enable = "false"
+video_windowed_fullscreen = "false"
+video_windowed_position_height = "720"
+video_windowed_position_width = "1280"
+video_windowed_position_x = "0"
+video_windowed_position_y = "0"
+video_window_opacity = "100"
+video_window_save_positions = "false"
+video_window_show_decorations = "true"
+vrr_runloop_enable = "false"
+wifi_driver = "null"
+wifi_enabled = "true"
+xmb_alpha_factor = "75"
+xmb_font = "/usr/share/retroarch-assets/xmb/monochrome/font.ttf"
+xmb_layout = "2"
+xmb_menu_color_theme = "4"
+xmb_shadows_enable = "true"
+xmb_theme = "0"
+xmb_vertical_thumbnails = "false"
+youtube_stream_key = ""
diff --git a/packages/emulators/libretro/retroarch/sources/H700/retroarch32bit-append.cfg b/packages/emulators/libretro/retroarch/sources/H700/retroarch32bit-append.cfg
new file mode 100755
index 000000000..9e743a38f
--- /dev/null
+++ b/packages/emulators/libretro/retroarch/sources/H700/retroarch32bit-append.cfg
@@ -0,0 +1,2 @@
+audio_filter_dir = "/usr/share/retroarch/filters/32bit/audio"
+video_filter_dir = "/usr/share/retroarch/filters/32bit/video"
diff --git a/packages/emulators/libretro/retroarch/sources/H700/retroarch64bit-append.cfg b/packages/emulators/libretro/retroarch/sources/H700/retroarch64bit-append.cfg
new file mode 100755
index 000000000..b6cbf6831
--- /dev/null
+++ b/packages/emulators/libretro/retroarch/sources/H700/retroarch64bit-append.cfg
@@ -0,0 +1,2 @@
+audio_filter_dir = "/usr/share/retroarch/filters/64bit/audio"
+video_filter_dir = "/usr/share/retroarch/filters/64bit/video"
diff --git a/packages/emulators/libretro/retroarch/sources/RK3566/retroarch.cfg b/packages/emulators/libretro/retroarch/sources/RK3566/retroarch.cfg
index 8f7db2581..f95b39101 100644
--- a/packages/emulators/libretro/retroarch/sources/RK3566/retroarch.cfg
+++ b/packages/emulators/libretro/retroarch/sources/RK3566/retroarch.cfg
@@ -276,7 +276,7 @@ input_max_users = "5"
input_menu_toggle_axis = "nul"
input_menu_toggle_btn = "2"
input_menu_toggle = "f1"
-input_menu_toggle_gamepad_combo = "2"
+input_menu_toggle_gamepad_combo = "9"
input_menu_toggle_mbtn = "nul"
input_movie_record_toggle_axis = "nul"
input_movie_record_toggle_btn = "nul"
diff --git a/packages/emulators/libretro/retroarch/sources/RK3588/retroarch.cfg b/packages/emulators/libretro/retroarch/sources/RK3588/retroarch.cfg
index 4cf09f7de..46991fdc9 100755
--- a/packages/emulators/libretro/retroarch/sources/RK3588/retroarch.cfg
+++ b/packages/emulators/libretro/retroarch/sources/RK3588/retroarch.cfg
@@ -734,7 +734,7 @@ video_context_driver = ""
video_crop_overscan = "true"
video_ctx_scaling = "false"
video_disable_composition = "false"
-video_driver = "glcore"
+video_driver = "gl"
video_filter = ""
video_filter_dir = "~/.config/retroarch/filters/video"
video_font_enable = "true"
diff --git a/packages/emulators/libretro/scummvm-lr/package.mk b/packages/emulators/libretro/scummvm-lr/package.mk
index 2db478790..2be9e0650 100644
--- a/packages/emulators/libretro/scummvm-lr/package.mk
+++ b/packages/emulators/libretro/scummvm-lr/package.mk
@@ -20,7 +20,7 @@
################################################################################
PKG_NAME="scummvm-lr"
-PKG_VERSION="8ce898dcc55e56b75b12ba2a5023bb062e918198"
+PKG_VERSION="4f5f776b8d25cfc4636ff02e01b8fa7fe4259950"
PKG_LICENSE="GPLv2"
PKG_SITE="https://github.com/libretro/scummvm"
PKG_URL="${PKG_SITE}.git"
diff --git a/packages/emulators/libretro/slang-shaders/package.mk b/packages/emulators/libretro/slang-shaders/package.mk
index 64bc4a7b0..cfbceb83b 100644
--- a/packages/emulators/libretro/slang-shaders/package.mk
+++ b/packages/emulators/libretro/slang-shaders/package.mk
@@ -20,7 +20,7 @@
################################################################################
PKG_NAME="slang-shaders"
-PKG_VERSION="573b339c98400ff9c2687bf4d653edaf7dfd3fdb"
+PKG_VERSION="b3d795acb9e682bb05aa940ce3c296446f227ab9"
PKG_LICENSE="GPL"
PKG_SITE="https://github.com/libretro/slang-shaders"
PKG_URL="${PKG_SITE}.git"
diff --git a/packages/emulators/libretro/smsplus-gx-lr/package.mk b/packages/emulators/libretro/smsplus-gx-lr/package.mk
index b2e537104..e4cb6834f 100644
--- a/packages/emulators/libretro/smsplus-gx-lr/package.mk
+++ b/packages/emulators/libretro/smsplus-gx-lr/package.mk
@@ -20,7 +20,7 @@
################################################################################
PKG_NAME="smsplus-gx-lr"
-PKG_VERSION="96fa9bc65aa27a5ab2779f9f2ff0439fec7cf513"
+PKG_VERSION="978d977119eff1bd7214c0095eb91b15b859bb61"
PKG_LICENSE="Non-commercial"
PKG_SITE="https://github.com/libretro/smsplus-gx"
PKG_URL="${PKG_SITE}/archive/${PKG_VERSION}.tar.gz"
diff --git a/packages/emulators/libretro/snes9x2002-lr/package.mk b/packages/emulators/libretro/snes9x2002-lr/package.mk
index f14dfb230..608e1a57f 100644
--- a/packages/emulators/libretro/snes9x2002-lr/package.mk
+++ b/packages/emulators/libretro/snes9x2002-lr/package.mk
@@ -19,7 +19,7 @@
################################################################################
PKG_NAME="snes9x2002-lr"
-PKG_VERSION="540baad622d9833bba7e0696193cb06f5f02f564"
+PKG_VERSION="2790d03b2266c58444429b4f7d76ba298e0bde87"
PKG_LICENSE="Non-commercial"
PKG_SITE="https://github.com/libretro/snes9x2002"
PKG_URL="${PKG_SITE}/archive/${PKG_VERSION}.tar.gz"
diff --git a/packages/emulators/libretro/snes9x2005_plus-lr/package.mk b/packages/emulators/libretro/snes9x2005_plus-lr/package.mk
index cbb04650c..2709740b5 100644
--- a/packages/emulators/libretro/snes9x2005_plus-lr/package.mk
+++ b/packages/emulators/libretro/snes9x2005_plus-lr/package.mk
@@ -19,7 +19,7 @@
################################################################################
PKG_NAME="snes9x2005_plus-lr"
-PKG_VERSION="fd45b0e055bce6cff3acde77414558784e93e7d0"
+PKG_VERSION="285220ed696ec661ce5c42856e033a1586fda967"
PKG_LICENSE="Non-commercial"
PKG_SITE="https://github.com/libretro/snes9x2005"
PKG_URL="${PKG_SITE}/archive/${PKG_VERSION}.tar.gz"
diff --git a/packages/emulators/libretro/snes9x2010-lr/package.mk b/packages/emulators/libretro/snes9x2010-lr/package.mk
index 11f5e5316..edd02afa2 100644
--- a/packages/emulators/libretro/snes9x2010-lr/package.mk
+++ b/packages/emulators/libretro/snes9x2010-lr/package.mk
@@ -19,7 +19,7 @@
################################################################################
PKG_NAME="snes9x2010-lr"
-PKG_VERSION="d8b10c4cd7606ed58f9c562864c986bc960faaaf"
+PKG_VERSION="84b963a2f627bbc41198e357430619f34bbebc8a"
PKG_LICENSE="Non-commercial"
PKG_SITE="https://github.com/libretro/snes9x2010"
PKG_URL="${PKG_SITE}/archive/${PKG_VERSION}.tar.gz"
diff --git a/packages/emulators/libretro/stella-lr/package.mk b/packages/emulators/libretro/stella-lr/package.mk
index cd1ca531a..1d78e3e5f 100644
--- a/packages/emulators/libretro/stella-lr/package.mk
+++ b/packages/emulators/libretro/stella-lr/package.mk
@@ -20,7 +20,7 @@
################################################################################
PKG_NAME="stella-lr"
-PKG_VERSION="cd24689b20f2ff4a5b1f588415b77b4f1747e431"
+PKG_VERSION="90da70a572de8474ced4f18ddbe98cad4e6d52df"
PKG_LICENSE="GPL2"
PKG_SITE="https://github.com/stella-emu/stella"
PKG_URL="${PKG_SITE}/archive/${PKG_VERSION}.tar.gz"
diff --git a/packages/emulators/libretro/swanstation-lr/package.mk b/packages/emulators/libretro/swanstation-lr/package.mk
index 3fadaf831..7c2bf3cb8 100644
--- a/packages/emulators/libretro/swanstation-lr/package.mk
+++ b/packages/emulators/libretro/swanstation-lr/package.mk
@@ -3,7 +3,7 @@
# Maintenance 2020 351ELEC team (https://github.com/fewtarius/351ELEC)
PKG_NAME="swanstation-lr"
-PKG_VERSION="7a27436548128c00e70b08dde63c52118e2a6228"
+PKG_VERSION="37cd87e14ca09ac1b558e5b2c7db4ad256865bbb"
PKG_LICENSE="GPLv3"
PKG_SITE="https://github.com/libretro/swanstation"
PKG_URL="${PKG_SITE}/archive/${PKG_VERSION}.tar.gz"
diff --git a/packages/emulators/libretro/tgbdual-lr/package.mk b/packages/emulators/libretro/tgbdual-lr/package.mk
index 648875c7f..d60d1e9bc 100644
--- a/packages/emulators/libretro/tgbdual-lr/package.mk
+++ b/packages/emulators/libretro/tgbdual-lr/package.mk
@@ -20,7 +20,7 @@
################################################################################
PKG_NAME="tgbdual-lr"
-PKG_VERSION="a6f3018e6a23030afc1873845ee54d4b2d8ec9d3"
+PKG_VERSION="fba7d50b136abef0692b434091a9d735f7ad28b2"
PKG_LICENSE="GPLv2"
PKG_SITE="https://github.com/libretro/tgbdual-libretro"
PKG_URL="${PKG_SITE}/archive/${PKG_VERSION}.tar.gz"
diff --git a/packages/emulators/libretro/theodore-lr/package.mk b/packages/emulators/libretro/theodore-lr/package.mk
index 417b934fa..cfe1783a1 100644
--- a/packages/emulators/libretro/theodore-lr/package.mk
+++ b/packages/emulators/libretro/theodore-lr/package.mk
@@ -2,7 +2,7 @@
# Copyright (C) 2024 JELOS (https://github.com/JustEnoughLinuxOS)
PKG_NAME="theodore-lr"
-PKG_VERSION="7889613edede5ba89de1dfe7c05cf8397cf178ba"
+PKG_VERSION="503b2bb4fa747442fb91b89644238e5267637bcd"
PKG_LICENSE="GPLv3"
PKG_SITE="https://github.com/Zlika/theodore"
PKG_URL="${PKG_SITE}.git"
diff --git a/packages/emulators/libretro/vba-next-lr/package.mk b/packages/emulators/libretro/vba-next-lr/package.mk
index 8e0806458..716778c32 100644
--- a/packages/emulators/libretro/vba-next-lr/package.mk
+++ b/packages/emulators/libretro/vba-next-lr/package.mk
@@ -20,7 +20,7 @@
################################################################################
PKG_NAME="vba-next-lr"
-PKG_VERSION="ee92625d2f1666496be4f5662508a2430e846b00"
+PKG_VERSION="2c726f25da75a5600ef5791ce904befe06c4dddd"
PKG_LICENSE="GPL"
PKG_SITE="https://github.com/libretro/vba-next"
PKG_URL="${PKG_SITE}/archive/${PKG_VERSION}.tar.gz"
diff --git a/packages/emulators/libretro/vbam-lr/package.mk b/packages/emulators/libretro/vbam-lr/package.mk
index aab1fea92..68117d944 100644
--- a/packages/emulators/libretro/vbam-lr/package.mk
+++ b/packages/emulators/libretro/vbam-lr/package.mk
@@ -20,7 +20,7 @@
################################################################################
PKG_NAME="vbam-lr"
-PKG_VERSION="a2378f05f600a5a9cf450c60a87976b80d6a895a"
+PKG_VERSION="b5a4788747fa46afe681080db758f4a827ff7274"
PKG_LICENSE="GPLv2"
PKG_SITE="https://github.com/libretro/vbam-libretro"
PKG_URL="${PKG_SITE}/archive/${PKG_VERSION}.tar.gz"
diff --git a/packages/emulators/libretro/vecx-lr/package.mk b/packages/emulators/libretro/vecx-lr/package.mk
index 88bc31a40..2a862d130 100644
--- a/packages/emulators/libretro/vecx-lr/package.mk
+++ b/packages/emulators/libretro/vecx-lr/package.mk
@@ -19,7 +19,7 @@
################################################################################
PKG_NAME="vecx-lr"
-PKG_VERSION="3a5655ff67e161ef33f66b0f6c26aaf2e59ceda8"
+PKG_VERSION="0e48a8903bd9cc359da3f7db783f83e22722c0cf"
PKG_LICENSE="GPLv2|LGPLv2.1"
PKG_SITE="https://github.com/libretro/libretro-vecx"
PKG_URL="${PKG_SITE}/archive/${PKG_VERSION}.tar.gz"
diff --git a/packages/emulators/libretro/vircon32-lr/package.mk b/packages/emulators/libretro/vircon32-lr/package.mk
index 48d2540f5..2cbee5c79 100644
--- a/packages/emulators/libretro/vircon32-lr/package.mk
+++ b/packages/emulators/libretro/vircon32-lr/package.mk
@@ -2,7 +2,7 @@
# Copyright (C) 2024-present AmberELEC (https://github.com/AmberELEC)
PKG_NAME="vircon32-lr"
-PKG_VERSION="293d0b2b0e3b996b991b7a667ec31a64d8865450"
+PKG_VERSION="bb87ba3471f5002d1246ae5bfbedeea441efef00"
PKG_LICENSE="GPLv2"
PKG_SITE="https://github.com/vircon32/vircon32-libretro"
PKG_URL="${PKG_SITE}.git"
diff --git a/packages/emulators/libretro/vitaquake2-lr/package.mk b/packages/emulators/libretro/vitaquake2-lr/package.mk
index c0536ce5c..6e13073b4 100644
--- a/packages/emulators/libretro/vitaquake2-lr/package.mk
+++ b/packages/emulators/libretro/vitaquake2-lr/package.mk
@@ -2,7 +2,7 @@
# Copyright (C) 2024-present ROCKNIX (https://github.com/ROCKNIX)
PKG_NAME="vitaquake2-lr"
-PKG_VERSION="6bb3ee592169694b055e7efd5fa2a4e57875bddd"
+PKG_VERSION="69e56a470638ca8ed15b53212923220360a69f97"
PKG_LICENSE="GPLv2"
PKG_SITE="https://github.com/libretro/vitaquake2"
PKG_URL="$PKG_SITE/archive/$PKG_VERSION.tar.gz"
@@ -18,7 +18,7 @@ fi
pre_make_target() {
export BUILD_SYSROOT=${SYSROOT_PREFIX}
- PKG_MAKE_OPTS_TARGET+=" platform=${DEVICE}"
+ PKG_MAKE_OPTS_TARGET+=" platform=${DEVICE}_rocknix"
}
makeinstall_target() {
diff --git a/packages/emulators/libretro/vitaquake2-lr/patches/aarch64/001-set-platform.patch b/packages/emulators/libretro/vitaquake2-lr/patches/aarch64/001-set-platform.patch
index f14c8858b..19116a3a4 100644
--- a/packages/emulators/libretro/vitaquake2-lr/patches/aarch64/001-set-platform.patch
+++ b/packages/emulators/libretro/vitaquake2-lr/patches/aarch64/001-set-platform.patch
@@ -5,12 +5,12 @@ diff -rupN vitaquake2.orig/Makefile vitaquake2/Makefile
SHARED := -shared -Wl,--version-script=$(CORE_DIR)/link.T
LIBM :=
-+else ifeq ($(platform), @DEVICE@)
++else ifeq ($(platform), @DEVICE@_rocknix)
+ TARGET := $(TARGET_NAME)_libretro.so
-+ fpic := -fPIC
++ fpic := -fPIC
+ SHARED := -shared -Wl,--version-script=$(CORE_DIR)/link.T -Wl,--no-undefined
-+ CFLAGS += -mcpu=@TARGET_CPU@ -mtune=@TARGET_CPU@ -ffast-math -DARM
-+ CFLAGS += -D_POSIX_C_SOURCE=199309L
++ CFLAGS += -mcpu=@TARGET_CPU@ -mtune=@TARGET_CPU@ -ffast-math -DARM
++ CFLAGS += -D_POSIX_C_SOURCE=200809L -D_DEFAULT_SOURCE
+ GLES := 1
+ GLES31 := 1
+
diff --git a/packages/emulators/libretro/vitaquake2-lr/vitaquake2-rogue-lr/package.mk b/packages/emulators/libretro/vitaquake2-lr/vitaquake2-rogue-lr/package.mk
index 5f1b499d1..29f58bf9b 100644
--- a/packages/emulators/libretro/vitaquake2-lr/vitaquake2-rogue-lr/package.mk
+++ b/packages/emulators/libretro/vitaquake2-lr/vitaquake2-rogue-lr/package.mk
@@ -2,7 +2,7 @@
# Copyright (C) 2024-present ROCKNIX (https://github.com/ROCKNIX)
PKG_NAME="vitaquake2-rogue-lr"
-PKG_VERSION="6bb3ee592169694b055e7efd5fa2a4e57875bddd"
+PKG_VERSION="69e56a470638ca8ed15b53212923220360a69f97"
PKG_LICENSE="GPLv2"
PKG_SITE="https://github.com/libretro/vitaquake2"
PKG_URL="$PKG_SITE/archive/$PKG_VERSION.tar.gz"
@@ -18,7 +18,7 @@ fi
pre_make_target() {
export BUILD_SYSROOT=${SYSROOT_PREFIX}
- PKG_MAKE_OPTS_TARGET+=" basegame=rogue platform=${DEVICE}"
+ PKG_MAKE_OPTS_TARGET+=" basegame=rogue platform=${DEVICE}_rocknix"
}
makeinstall_target() {
diff --git a/packages/emulators/libretro/vitaquake2-lr/vitaquake2-rogue-lr/patches/aarch64/001-set-platform.patch b/packages/emulators/libretro/vitaquake2-lr/vitaquake2-rogue-lr/patches/aarch64/001-set-platform.patch
deleted file mode 100644
index f14c8858b..000000000
--- a/packages/emulators/libretro/vitaquake2-lr/vitaquake2-rogue-lr/patches/aarch64/001-set-platform.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-diff -rupN vitaquake2.orig/Makefile vitaquake2/Makefile
---- vitaquake2.orig/Makefile 2023-09-15 16:57:45.991890996 +0000
-+++ vitaquake2/Makefile 2023-09-15 20:08:45.856895708 +0000
-@@ -76,6 +76,15 @@ else ifeq ($(platform), linux-portable)
- SHARED := -shared -Wl,--version-script=$(CORE_DIR)/link.T
- LIBM :=
-
-+else ifeq ($(platform), @DEVICE@)
-+ TARGET := $(TARGET_NAME)_libretro.so
-+ fpic := -fPIC
-+ SHARED := -shared -Wl,--version-script=$(CORE_DIR)/link.T -Wl,--no-undefined
-+ CFLAGS += -mcpu=@TARGET_CPU@ -mtune=@TARGET_CPU@ -ffast-math -DARM
-+ CFLAGS += -D_POSIX_C_SOURCE=199309L
-+ GLES := 1
-+ GLES31 := 1
-+
- else ifneq (,$(findstring rockchip,$(platform)))
- EXT ?= so
- TARGET := $(TARGET_NAME)_libretro.$(EXT)
diff --git a/packages/emulators/libretro/vitaquake2-lr/vitaquake2-rogue-lr/patches/aarch64/001-set-platform.patch b/packages/emulators/libretro/vitaquake2-lr/vitaquake2-rogue-lr/patches/aarch64/001-set-platform.patch
new file mode 120000
index 000000000..77bcdfd10
--- /dev/null
+++ b/packages/emulators/libretro/vitaquake2-lr/vitaquake2-rogue-lr/patches/aarch64/001-set-platform.patch
@@ -0,0 +1 @@
+../../../patches/aarch64/001-set-platform.patch
\ No newline at end of file
diff --git a/packages/emulators/libretro/vitaquake2-lr/vitaquake2-xatrix-lr/package.mk b/packages/emulators/libretro/vitaquake2-lr/vitaquake2-xatrix-lr/package.mk
index 1534b815c..3e48e20cd 100644
--- a/packages/emulators/libretro/vitaquake2-lr/vitaquake2-xatrix-lr/package.mk
+++ b/packages/emulators/libretro/vitaquake2-lr/vitaquake2-xatrix-lr/package.mk
@@ -2,7 +2,7 @@
# Copyright (C) 2024-present ROCKNIX (https://github.com/ROCKNIX)
PKG_NAME="vitaquake2-xatrix-lr"
-PKG_VERSION="6bb3ee592169694b055e7efd5fa2a4e57875bddd"
+PKG_VERSION="69e56a470638ca8ed15b53212923220360a69f97"
PKG_LICENSE="GPLv2"
PKG_SITE="https://github.com/libretro/vitaquake2"
PKG_URL="$PKG_SITE/archive/$PKG_VERSION.tar.gz"
@@ -18,7 +18,7 @@ fi
pre_make_target() {
export BUILD_SYSROOT=${SYSROOT_PREFIX}
- PKG_MAKE_OPTS_TARGET+=" basegame=xatrix platform=${DEVICE}"
+ PKG_MAKE_OPTS_TARGET+=" basegame=xatrix platform=${DEVICE}_rocknix"
}
makeinstall_target() {
diff --git a/packages/emulators/libretro/vitaquake2-lr/vitaquake2-xatrix-lr/patches/aarch64/001-set-platform.patch b/packages/emulators/libretro/vitaquake2-lr/vitaquake2-xatrix-lr/patches/aarch64/001-set-platform.patch
deleted file mode 100644
index f14c8858b..000000000
--- a/packages/emulators/libretro/vitaquake2-lr/vitaquake2-xatrix-lr/patches/aarch64/001-set-platform.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-diff -rupN vitaquake2.orig/Makefile vitaquake2/Makefile
---- vitaquake2.orig/Makefile 2023-09-15 16:57:45.991890996 +0000
-+++ vitaquake2/Makefile 2023-09-15 20:08:45.856895708 +0000
-@@ -76,6 +76,15 @@ else ifeq ($(platform), linux-portable)
- SHARED := -shared -Wl,--version-script=$(CORE_DIR)/link.T
- LIBM :=
-
-+else ifeq ($(platform), @DEVICE@)
-+ TARGET := $(TARGET_NAME)_libretro.so
-+ fpic := -fPIC
-+ SHARED := -shared -Wl,--version-script=$(CORE_DIR)/link.T -Wl,--no-undefined
-+ CFLAGS += -mcpu=@TARGET_CPU@ -mtune=@TARGET_CPU@ -ffast-math -DARM
-+ CFLAGS += -D_POSIX_C_SOURCE=199309L
-+ GLES := 1
-+ GLES31 := 1
-+
- else ifneq (,$(findstring rockchip,$(platform)))
- EXT ?= so
- TARGET := $(TARGET_NAME)_libretro.$(EXT)
diff --git a/packages/emulators/libretro/vitaquake2-lr/vitaquake2-xatrix-lr/patches/aarch64/001-set-platform.patch b/packages/emulators/libretro/vitaquake2-lr/vitaquake2-xatrix-lr/patches/aarch64/001-set-platform.patch
new file mode 120000
index 000000000..77bcdfd10
--- /dev/null
+++ b/packages/emulators/libretro/vitaquake2-lr/vitaquake2-xatrix-lr/patches/aarch64/001-set-platform.patch
@@ -0,0 +1 @@
+../../../patches/aarch64/001-set-platform.patch
\ No newline at end of file
diff --git a/packages/emulators/libretro/vitaquake2-lr/vitaquake2-zaero-lr/package.mk b/packages/emulators/libretro/vitaquake2-lr/vitaquake2-zaero-lr/package.mk
index 7df1d82e9..f71292035 100644
--- a/packages/emulators/libretro/vitaquake2-lr/vitaquake2-zaero-lr/package.mk
+++ b/packages/emulators/libretro/vitaquake2-lr/vitaquake2-zaero-lr/package.mk
@@ -2,7 +2,7 @@
# Copyright (C) 2024-present ROCKNIX (https://github.com/ROCKNIX)
PKG_NAME="vitaquake2-zaero-lr"
-PKG_VERSION="6bb3ee592169694b055e7efd5fa2a4e57875bddd"
+PKG_VERSION="69e56a470638ca8ed15b53212923220360a69f97"
PKG_LICENSE="GPLv2"
PKG_SITE="https://github.com/libretro/vitaquake2"
PKG_URL="$PKG_SITE/archive/$PKG_VERSION.tar.gz"
@@ -18,7 +18,7 @@ fi
pre_make_target() {
export BUILD_SYSROOT=${SYSROOT_PREFIX}
- PKG_MAKE_OPTS_TARGET+=" basegame=zaero platform=${DEVICE}"
+ PKG_MAKE_OPTS_TARGET+=" basegame=zaero platform=${DEVICE}_rocknix"
}
makeinstall_target() {
diff --git a/packages/emulators/libretro/vitaquake2-lr/vitaquake2-zaero-lr/patches/aarch64/001-set-platform.patch b/packages/emulators/libretro/vitaquake2-lr/vitaquake2-zaero-lr/patches/aarch64/001-set-platform.patch
deleted file mode 100644
index f14c8858b..000000000
--- a/packages/emulators/libretro/vitaquake2-lr/vitaquake2-zaero-lr/patches/aarch64/001-set-platform.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-diff -rupN vitaquake2.orig/Makefile vitaquake2/Makefile
---- vitaquake2.orig/Makefile 2023-09-15 16:57:45.991890996 +0000
-+++ vitaquake2/Makefile 2023-09-15 20:08:45.856895708 +0000
-@@ -76,6 +76,15 @@ else ifeq ($(platform), linux-portable)
- SHARED := -shared -Wl,--version-script=$(CORE_DIR)/link.T
- LIBM :=
-
-+else ifeq ($(platform), @DEVICE@)
-+ TARGET := $(TARGET_NAME)_libretro.so
-+ fpic := -fPIC
-+ SHARED := -shared -Wl,--version-script=$(CORE_DIR)/link.T -Wl,--no-undefined
-+ CFLAGS += -mcpu=@TARGET_CPU@ -mtune=@TARGET_CPU@ -ffast-math -DARM
-+ CFLAGS += -D_POSIX_C_SOURCE=199309L
-+ GLES := 1
-+ GLES31 := 1
-+
- else ifneq (,$(findstring rockchip,$(platform)))
- EXT ?= so
- TARGET := $(TARGET_NAME)_libretro.$(EXT)
diff --git a/packages/emulators/libretro/vitaquake2-lr/vitaquake2-zaero-lr/patches/aarch64/001-set-platform.patch b/packages/emulators/libretro/vitaquake2-lr/vitaquake2-zaero-lr/patches/aarch64/001-set-platform.patch
new file mode 120000
index 000000000..77bcdfd10
--- /dev/null
+++ b/packages/emulators/libretro/vitaquake2-lr/vitaquake2-zaero-lr/patches/aarch64/001-set-platform.patch
@@ -0,0 +1 @@
+../../../patches/aarch64/001-set-platform.patch
\ No newline at end of file
diff --git a/packages/emulators/libretro/vitaquake3-lr/package.mk b/packages/emulators/libretro/vitaquake3-lr/package.mk
index 05e8be26a..829423e05 100644
--- a/packages/emulators/libretro/vitaquake3-lr/package.mk
+++ b/packages/emulators/libretro/vitaquake3-lr/package.mk
@@ -16,6 +16,10 @@ elif [ "${OPENGLES_SUPPORT}" = "yes" ]; then
PKG_DEPENDS_TARGET+=" ${OPENGLES}"
fi
+pre_configure_target() {
+ export CFLAGS="${CFLAGS} -Wno-implicit-function-declaration -Wno-incompatible-pointer-types -Wno-implicit-int"
+}
+
makeinstall_target() {
mkdir -p ${INSTALL}/usr/lib/libretro
cp vitaquake3_libretro.so $INSTALL/usr/lib/libretro/
diff --git a/packages/emulators/libretro/xmil-lr/package.mk b/packages/emulators/libretro/xmil-lr/package.mk
index f94c06f7a..f53621895 100644
--- a/packages/emulators/libretro/xmil-lr/package.mk
+++ b/packages/emulators/libretro/xmil-lr/package.mk
@@ -2,9 +2,9 @@
# Copyright (C) 2019-present asakous (https://github.com/asakous)
PKG_NAME="xmil-lr"
-PKG_VERSION="b07506c0cae31d260db28cb079148857d6ca2e93"
+PKG_VERSION="927e2eb8c097e88f623efdf15c4372b973a6c5e5"
PKG_LICENSE="Unknown"
-PKG_SITE="https://github.com/r-type/xmil-libretro"
+PKG_SITE="https://github.com/libretro/xmil-libretro"
PKG_URL="${PKG_SITE}.git"
PKG_DEPENDS_TARGET="toolchain"
PKG_LONGDESC="Libretro port of X Millennium Sharp X1 emulator"
diff --git a/packages/emulators/libretro/yabasanshiro-lr/package.mk b/packages/emulators/libretro/yabasanshiro-lr/package.mk
index b06094e89..50f65a757 100644
--- a/packages/emulators/libretro/yabasanshiro-lr/package.mk
+++ b/packages/emulators/libretro/yabasanshiro-lr/package.mk
@@ -40,11 +40,21 @@ if [ "${OPENGLES_SUPPORT}" = yes ]; then
fi
pre_configure_target() {
+ export CFLAGS="${CFLAGS} -Wno-implicit-function-declaration"
+ if [ "${ARCH}" = "aarch64" ]; then
+ # This is only needed for armv8.2-a targets where we don't use this flag
+ # as it prohibits the use of LSE-instructions, this is a package bug most likely
+ export CFLAGS="${CFLAGS} -mno-outline-atomics"
+ export CXXFLAGS="${CXXFLAGS} -mno-outline-atomics"
+ fi
sed -i 's/\-O[23]/-Ofast -ffast-math/' ${PKG_BUILD}/yabause/src/libretro/Makefile
case ${DEVICE} in
RK3*|S922X)
PKG_MAKE_OPTS_TARGET+=" -C yabause/src/libretro platform=rockpro64 HAVE_NEON=0 FORCE_GLES=1"
;;
+ H700)
+ PKG_MAKE_OPTS_TARGET+=" -C yabause/src/libretro platform=arm64_cortex_a53_gles3 HAVE_NEON=0 FORCE_GLES=1"
+ ;;
AMD64)
PKG_MAKE_OPTS_TARGET+=" -C yabause/src/libretro FORCE_GLES=0 USE_X86_DRC=1 FASTMATH=1"
;;
diff --git a/packages/emulators/standalone/dolphin-sa/config/S922X/GamecubeControllerProfiles/GCPadNew.ini.south b/packages/emulators/standalone/dolphin-sa/config/S922X/GamecubeControllerProfiles/GCPadNew.ini.south
index d34241032..6f3ae8606 100644
--- a/packages/emulators/standalone/dolphin-sa/config/S922X/GamecubeControllerProfiles/GCPadNew.ini.south
+++ b/packages/emulators/standalone/dolphin-sa/config/S922X/GamecubeControllerProfiles/GCPadNew.ini.south
@@ -5,7 +5,7 @@ Buttons/B = Button 3
Buttons/Start = Button 7
Buttons/X = Button 1
Buttons/Y = Button 2
-Buttons/Z = Button 5
+Buttons/Z = Axis 5+
Buttons/Hotkey = Button 6
C-Stick/Dead Zone = 25.000000000000000
C-Stick/Down = Axis 4+
@@ -25,5 +25,5 @@ Main Stick/Modifier = Shift_L
Main Stick/Modifier/Range = 50.000000000000000
Main Stick/Right = Axis 0+
Main Stick/Up = Axis 1-
-Triggers/L = Axis 2+
-Triggers/R = Axis 5+
+Triggers/L = Button 4
+Triggers/R = Button 5
diff --git a/packages/emulators/standalone/dolphin-sa/config/S922X/GamecubeControllerProfiles/GCPadNew.ini.west b/packages/emulators/standalone/dolphin-sa/config/S922X/GamecubeControllerProfiles/GCPadNew.ini.west
index d9d0185cb..7c37ae856 100644
--- a/packages/emulators/standalone/dolphin-sa/config/S922X/GamecubeControllerProfiles/GCPadNew.ini.west
+++ b/packages/emulators/standalone/dolphin-sa/config/S922X/GamecubeControllerProfiles/GCPadNew.ini.west
@@ -5,7 +5,7 @@ Buttons/B = Button 0
Buttons/Start = Button 7
Buttons/X = Button 2
Buttons/Y = Button 3
-Buttons/Z = Button 5
+Buttons/Z = Axis 5+
Buttons/Hotkey = Button 6
C-Stick/Dead Zone = 25.000000000000000
C-Stick/Down = Axis 4+
@@ -25,5 +25,5 @@ Main Stick/Modifier = Shift_L
Main Stick/Modifier/Range = 50.000000000000000
Main Stick/Right = Axis 0+
Main Stick/Up = Axis 1-
-Triggers/L = Axis 2+
-Triggers/R = Axis 5+
+Triggers/L = Button 4
+Triggers/R = Button 5
diff --git a/packages/emulators/standalone/dolphin-sa/package.mk b/packages/emulators/standalone/dolphin-sa/package.mk
index e9ae494e1..255c82034 100644
--- a/packages/emulators/standalone/dolphin-sa/package.mk
+++ b/packages/emulators/standalone/dolphin-sa/package.mk
@@ -3,7 +3,7 @@
PKG_NAME="dolphin-sa"
PKG_LICENSE="GPLv2"
-PKG_DEPENDS_TARGET="toolchain libevdev libdrm ffmpeg zlib libpng lzo libusb zstd ecm openal-soft pulseaudio alsa-lib"
+PKG_DEPENDS_TARGET="toolchain libevdev libdrm ffmpeg zlib libpng lzo libusb zstd ecm openal-soft pulseaudio alsa-lib libfmt"
PKG_LONGDESC="Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements. "
PKG_TOOLCHAIN="cmake"
diff --git a/packages/emulators/standalone/drastic-sa/config/H700/drastic.cfg b/packages/emulators/standalone/drastic-sa/config/H700/drastic.cfg
new file mode 100644
index 000000000..b27c7d5b9
--- /dev/null
+++ b/packages/emulators/standalone/drastic-sa/config/H700/drastic.cfg
@@ -0,0 +1,111 @@
+frameskip_type = 2
+frameskip_value = 3
+safe_frameskip = 0
+show_frame_counter = 0
+screen_orientation = 1
+screen_swap = 0
+savestate_number = 0
+fast_forward = 0
+enable_sound = 1
+clock_speed = 0
+threaded_3d = 1
+mirror_touch = 0
+compress_savestates = 1
+savestate_snapshot = 1
+unzip_roms = 0
+preload_roms = 0
+backup_in_savestates = 1
+ignore_gamecard_limit = 0
+frame_interval = 0
+trim_roms = 0
+fix_main_2d_screen = 0
+disable_edge_marking = 0
+interframe_blend = 0
+hires_3d = 1
+use_rtc_custom_time = 0
+rtc_custom_time = 0
+rtc_system_time = 0
+slot2_device_type = 0
+rumble_frames = 3
+firmware.username = JELOS
+firmware.language = 1
+firmware.favorite_color = 0
+firmware.birthday_month = 1
+firmware.birthday_day = 1
+enable_cheats = 1
+controls_a[CONTROL_INDEX_UP] = 1217
+controls_a[CONTROL_INDEX_DOWN] = 1153
+controls_a[CONTROL_INDEX_LEFT] = 1216
+controls_a[CONTROL_INDEX_RIGHT] = 1152
+controls_a[CONTROL_INDEX_A] = 65535
+controls_a[CONTROL_INDEX_B] = 65535
+controls_a[CONTROL_INDEX_X] = 65535
+controls_a[CONTROL_INDEX_Y] = 65535
+controls_a[CONTROL_INDEX_L] = 65535
+controls_a[CONTROL_INDEX_R] = 65535
+controls_a[CONTROL_INDEX_START] = 65535
+controls_a[CONTROL_INDEX_SELECT] = 65535
+controls_a[CONTROL_INDEX_HINGE] = 65535
+controls_a[CONTROL_INDEX_TOUCH_CURSOR_UP] = 65535
+controls_a[CONTROL_INDEX_TOUCH_CURSOR_DOWN] = 65535
+controls_a[CONTROL_INDEX_TOUCH_CURSOR_LEFT] = 65535
+controls_a[CONTROL_INDEX_TOUCH_CURSOR_RIGHT] = 65535
+controls_a[CONTROL_INDEX_TOUCH_CURSOR_PRESS] = 65535
+controls_a[CONTROL_INDEX_MENU] = 65535
+controls_a[CONTROL_INDEX_SAVE_STATE] = 65535
+controls_a[CONTROL_INDEX_LOAD_STATE] = 65535
+controls_a[CONTROL_INDEX_FAST_FORWARD] = 65535
+controls_a[CONTROL_INDEX_SWAP_SCREENS] = 65535
+controls_a[CONTROL_INDEX_SWAP_ORIENTATION_A] = 65535
+controls_a[CONTROL_INDEX_SWAP_ORIENTATION_B] = 65535
+controls_a[CONTROL_INDEX_LOAD_GAME] = 65535
+controls_a[CONTROL_INDEX_QUIT] = 65535
+controls_a[CONTROL_INDEX_FAKE_MICROPHONE] = 65535
+controls_a[CONTROL_INDEX_UI_UP] = 1217
+controls_a[CONTROL_INDEX_UI_DOWN] = 1153
+controls_a[CONTROL_INDEX_UI_LEFT] = 1216
+controls_a[CONTROL_INDEX_UI_RIGHT] = 1152
+controls_a[CONTROL_INDEX_UI_SELECT] = 65535
+controls_a[CONTROL_INDEX_UI_BACK] = 65535
+controls_a[CONTROL_INDEX_UI_EXIT] = 65535
+controls_a[CONTROL_INDEX_UI_PAGE_UP] = 65535
+controls_a[CONTROL_INDEX_UI_PAGE_DOWN] = 65535
+controls_a[CONTROL_INDEX_UI_SWITCH] = 65535
+controls_b[CONTROL_INDEX_UP] = 1037
+controls_b[CONTROL_INDEX_DOWN] = 1038
+controls_b[CONTROL_INDEX_LEFT] = 1039
+controls_b[CONTROL_INDEX_RIGHT] = 1040
+controls_b[CONTROL_INDEX_A] = 1025
+controls_b[CONTROL_INDEX_B] = 1024
+controls_b[CONTROL_INDEX_X] = 1026
+controls_b[CONTROL_INDEX_Y] = 1027
+controls_b[CONTROL_INDEX_L] = 1028
+controls_b[CONTROL_INDEX_R] = 1029
+controls_b[CONTROL_INDEX_START] = 1033
+controls_b[CONTROL_INDEX_SELECT] = 1032
+controls_b[CONTROL_INDEX_HINGE] = 65535
+controls_b[CONTROL_INDEX_TOUCH_CURSOR_UP] = 1219
+controls_b[CONTROL_INDEX_TOUCH_CURSOR_DOWN] = 1155
+controls_b[CONTROL_INDEX_TOUCH_CURSOR_LEFT] = 1218
+controls_b[CONTROL_INDEX_TOUCH_CURSOR_RIGHT] = 1154
+controls_b[CONTROL_INDEX_TOUCH_CURSOR_PRESS] = 1036
+controls_b[CONTROL_INDEX_MENU] = 1035
+controls_b[CONTROL_INDEX_SAVE_STATE] = 65535
+controls_b[CONTROL_INDEX_LOAD_STATE] = 65535
+controls_b[CONTROL_INDEX_FAST_FORWARD] = 65535
+controls_b[CONTROL_INDEX_SWAP_SCREENS] = 65535
+controls_b[CONTROL_INDEX_SWAP_ORIENTATION_A] = 1030
+controls_b[CONTROL_INDEX_SWAP_ORIENTATION_B] = 1031
+controls_b[CONTROL_INDEX_LOAD_GAME] = 65535
+controls_b[CONTROL_INDEX_QUIT] = 65535
+controls_b[CONTROL_INDEX_FAKE_MICROPHONE] = 65535
+controls_b[CONTROL_INDEX_UI_UP] = 1037
+controls_b[CONTROL_INDEX_UI_DOWN] = 1038
+controls_b[CONTROL_INDEX_UI_LEFT] = 1039
+controls_b[CONTROL_INDEX_UI_RIGHT] = 1040
+controls_b[CONTROL_INDEX_UI_SELECT] = 1025
+controls_b[CONTROL_INDEX_UI_BACK] = 65535
+controls_b[CONTROL_INDEX_UI_EXIT] = 1024
+controls_b[CONTROL_INDEX_UI_PAGE_UP] = 65535
+controls_b[CONTROL_INDEX_UI_PAGE_DOWN] = 65535
+controls_b[CONTROL_INDEX_UI_SWITCH] = 65535
diff --git a/packages/emulators/standalone/drastic-sa/scripts/drastic_sense.sh b/packages/emulators/standalone/drastic-sa/scripts/drastic_sense.sh
index d5fd41e83..9674e80d1 100644
--- a/packages/emulators/standalone/drastic-sa/scripts/drastic_sense.sh
+++ b/packages/emulators/standalone/drastic-sa/scripts/drastic_sense.sh
@@ -91,10 +91,10 @@ get_devices
get_devices
;;
(${L2_RELEASED_EVENT})
- swaymsg fullscreen disable
+ swaymsg floating enable
;;
(${R2_RELEASED_EVENT})
- swaymsg fullscreen disable
+ swaymsg floating enable
;;
esac
done
diff --git a/packages/emulators/standalone/duckstation-sa/config/H700/settings.ini b/packages/emulators/standalone/duckstation-sa/config/H700/settings.ini
new file mode 100644
index 000000000..dca2bf7ea
--- /dev/null
+++ b/packages/emulators/standalone/duckstation-sa/config/H700/settings.ini
@@ -0,0 +1,262 @@
+[Main]
+SettingsVersion = 3
+StartFullscreen = true
+EmulationSpeed = 1.000000
+FastForwardSpeed = 0.000000
+TurboSpeed = 0.000000
+SyncToHostRefreshRate = false
+IncreaseTimerResolution = true
+InhibitScreensaver = true
+StartPaused = false
+PauseOnFocusLoss = false
+PauseOnMenu = true
+SaveStateOnExit = true
+ConfirmPowerOff = true
+LoadDevicesFromSaveStates = false
+ApplyGameSettings = true
+AutoLoadCheats = true
+DisableAllEnhancements = false
+RewindEnable = false
+RewindFrequency = 10.000000
+RewindSaveSlots = 10
+RunaheadFrameCount = 0
+
+
+[BIOS]
+SearchDirectory = /storage/roms/bios
+PathNTSCU =
+PathNTSCJ =
+PathPAL =
+PatchTTYEnable = false
+PatchFastBoot = true
+
+
+[GPU]
+Renderer = Software
+Adapter =
+ResolutionScale = 1
+Multisamples = 1
+UseDebugDevice = false
+PerSampleShading = false
+UseThread = true
+ThreadedPresentation = true
+UseSoftwareRendererForReadbacks = false
+TrueColor = false
+ScaledDithering = false
+TextureFilter = Nearest
+DownsampleMode = Disabled
+DisableInterlacing = false
+ForceNTSCTimings = false
+WidescreenHack = false
+ChromaSmoothing24Bit = false
+PGXPEnable = false
+PGXPCulling = true
+PGXPTextureCorrection = true
+PGXPVertexCache = false
+PGXPCPU = false
+PGXPPreserveProjFP = false
+PGXPTolerance = -1.000000
+PGXPDepthBuffer = false
+PGXPDepthClearThreshold = 300.000000
+
+
+[Display]
+CropMode = Overscan
+ActiveStartOffset = 0
+ActiveEndOffset = 0
+LineStartOffset = 0
+LineEndOffset = 0
+Force4_3For24Bit = false
+AspectRatio = 4:3
+CustomAspectRatioNumerator = 4
+LinearFiltering = true
+IntegerScaling = false
+Stretch = false
+PostProcessing = false
+ShowOSDMessages = true
+ShowFPS = false
+ShowVPS = false
+ShowSpeed = false
+ShowResolution = false
+ShowStatusIndicators = true
+ShowEnhancements = false
+DisplayAllFrames = true
+VSync = false
+MaxFPS = 0.000000
+
+
+[Hotkeys]
+OpenPauseMenu = SDL-0/Back & SDL-0/X
+FastForward = SDL-0/Back & SDL-0/+RightTrigger
+Screenshot = SDL-0/Back & SDL-0/A
+LoadSelectedSaveState = SDL-0/Back & SDL-0/LeftShoulder
+SaveSelectedSaveState = SDL-0/Back & SDL-0/RightShoulder
+PowerOff = SDL-0/Back & SDL-0/Start
+
+
+[Logging]
+LogLevel = Error
+LogFilter =
+LogToConsole = false
+LogToDebug = false
+LogToWindow = false
+LogToFile = false
+
+
+[Controller1]
+Type = AnalogController
+ButtonUp = Controller0/Button11
+ButtonDown = Controller0/Button12
+ButtonLeft = Controller0/Button13
+ButtonRight = Controller0/Button14
+ButtonSelect = Controller0/Button4
+ButtonStart = Controller0/Button6
+ButtonTriangle = Controller0/Button2
+ButtonCross = Controller0/Button1
+ButtonSquare = Controller0/Button3
+ButtonCircle = Controller0/Button0
+ButtonL1 = Controller0/Button9
+ButtonL2 = Controller0/+Axis4
+ButtonR1 = Controller0/Button10
+ButtonR2 = Controller0/+Axis5
+AxisLeftX = Controller0/Axis0
+AxisLeftY = Controller0/Axis1
+ButtonL3 = Controller0/Button7
+ButtonR3 = Controller0/Button8
+AxisRightX = Controller0/Axis2
+AxisRightY = Controller0/Axis3
+AnalogDPadInDigitalMode = false
+
+
+[GameList]
+RecursivePaths = /storage/roms/psx
+
+
+[MemoryCards]
+UsePlaylistTitle = true
+Directory = /storage/roms/psx
+Card1Type = PerGameTitle
+Card2Type = None
+
+
+[Console]
+Region = Auto
+Enable8MBRAM = false
+
+
+[CPU]
+ExecutionMode = Recompiler
+OverclockEnable = false
+OverclockNumerator = 1
+OverclockDenominator = 1
+RecompilerMemoryExceptions = false
+RecompilerBlockLinking = true
+RecompilerICache = false
+FastmemMode = MMap
+
+
+[CDROM]
+ReadaheadSectors = 8
+RegionCheck = false
+LoadImageToRAM = false
+MuteCDAudio = false
+ReadSpeedup = 1
+SeekSpeedup = 1
+
+
+[Audio]
+Backend = SDL
+OutputVolume = 100
+FastForwardVolume = 100
+BufferSize = 2048
+Resampling = true
+OutputMuted = false
+Sync = true
+DumpOnBoot = false
+
+
+[Hacks]
+DMAMaxSliceTicks = 1000
+DMAHaltTicks = 100
+GPUFIFOSize = 16
+GPUMaxRunAhead = 128
+
+
+[Controller2]
+Type = None
+
+
+[Controller3]
+Type = None
+
+
+[Controller4]
+Type = None
+
+
+[Controller5]
+Type = None
+
+
+[Controller6]
+Type = None
+
+
+[Controller7]
+Type = None
+
+
+[Controller8]
+Type = None
+
+
+[ControllerPorts]
+MultitapMode = Disabled
+
+
+[Debug]
+ShowVRAM = false
+DumpCPUToVRAMCopies = false
+DumpVRAMToCPUCopies = false
+ShowGPUState = false
+ShowCDROMState = false
+ShowSPUState = false
+ShowTimersState = false
+ShowMDECState = false
+ShowDMAState = false
+
+
+[TextureReplacements]
+EnableVRAMWriteReplacements = false
+PreloadTextures = false
+DumpVRAMWrites = false
+DumpVRAMWriteForceAlphaChannel = true
+DumpVRAMWriteWidthThreshold = 128
+DumpVRAMWriteHeightThreshold = 128
+
+
+[Pad1]
+Up = SDL-0/DPadUp
+Right = SDL-0/DPadRight
+Down = SDL-0/DPadDown
+Left = SDL-0/DPadLeft
+Triangle = SDL-0/X
+Circle = SDL-0/A
+Cross = SDL-0/B
+Square = SDL-0/Y
+Select = SDL-0/Back
+Start = SDL-0/Start
+L1 = SDL-0/LeftShoulder
+R1 = SDL-0/RightShoulder
+L2 = SDL-0/+LeftTrigger
+R2 = SDL-0/+RightTrigger
+L3 = SDL-0/LeftStick
+R3 = SDL-0/RightStick
+LLeft = SDL-0/-LeftX
+LRight = SDL-0/+LeftX
+LDown = SDL-0/+LeftY
+LUp = SDL-0/-LeftY
+RLeft = SDL-0/+RightX
+RRight = SDL-0/-RightX
+RDown = SDL-0/+RightY
+RUp = SDL-0/-RightY
diff --git a/packages/emulators/standalone/duckstation-sa/package.mk b/packages/emulators/standalone/duckstation-sa/package.mk
index cd2818af1..76b1b7fef 100644
--- a/packages/emulators/standalone/duckstation-sa/package.mk
+++ b/packages/emulators/standalone/duckstation-sa/package.mk
@@ -31,6 +31,7 @@ fi
if [ "${DISPLAYSERVER}" = "wl" ]; then
PKG_DEPENDS_TARGET+=" wayland ${WINDOWMANAGER} xwayland xrandr libXi"
PKG_CMAKE_OPTS_TARGET+=" -DUSE_WAYLAND=ON"
+else PKG_CMAKE_OPTS_TARGET+=" -DUSE_WAYLAND=OFF -DUSE_DRMKMS=ON"
fi
if [ "${VULKAN_SUPPORT}" = "yes" ]; then
diff --git a/packages/emulators/standalone/flycast-sa/config/H700/emu.cfg b/packages/emulators/standalone/flycast-sa/config/H700/emu.cfg
new file mode 100644
index 000000000..ce42e9795
--- /dev/null
+++ b/packages/emulators/standalone/flycast-sa/config/H700/emu.cfg
@@ -0,0 +1,13 @@
+[audio]
+backend = pulse
+
+[input]
+maple_sdl_joystick_0 = 0
+maple_sdl_joystick_1 = 1
+
+device1 = 0
+device1.1 = 1
+device1.2 = 1
+device2 = 0
+device2.1 = 1
+device2.2 = 1
diff --git a/packages/emulators/standalone/flycast-sa/config/H700/mappings/SDL_retrogame_joypad.cfg b/packages/emulators/standalone/flycast-sa/config/H700/mappings/SDL_retrogame_joypad.cfg
new file mode 100644
index 000000000..3e61e80e1
--- /dev/null
+++ b/packages/emulators/standalone/flycast-sa/config/H700/mappings/SDL_retrogame_joypad.cfg
@@ -0,0 +1,34 @@
+[analog]
+bind0 = 0-:btn_analog_left
+bind1 = 0+:btn_analog_right
+bind2 = 1-:btn_analog_up
+bind3 = 1+:btn_analog_down
+bind4 = 2-:axis2_left
+bind5 = 2+:axis2_right
+bind6 = 3-:axis2_up
+bind7 = 3+:axis2_down
+
+[digital]
+bind0 = 0:btn_a
+bind1 = 1:btn_b
+bind10 = 13:btn_dpad1_up
+bind11 = 14:btn_dpad1_down
+bind12 = 15:btn_dpad1_left
+bind13 = 16:btn_dpad1_right
+bind2 = 2:btn_y
+bind3 = 3:btn_x
+bind4 = 4:btn_trigger_left
+bind5 = 5:btn_trigger_right
+bind6 = 6:btn_trigger2_left
+bind7 = 7:btn_trigger2_right
+bind8 = 8:btn_menu
+bind9 = 9:btn_start
+
+[emulator]
+dead_zone = 10
+mapping_name = RetroGame Joypad
+rumble_power = 100
+saturation = 100
+version = 3
+
+
diff --git a/packages/emulators/standalone/hatarisa/package.mk b/packages/emulators/standalone/hatarisa/package.mk
index 8fdbe742f..54d1e7e77 100644
--- a/packages/emulators/standalone/hatarisa/package.mk
+++ b/packages/emulators/standalone/hatarisa/package.mk
@@ -2,7 +2,7 @@
# Copyright (C) 2018-present 5schatten (https://github.com/5schatten)
PKG_NAME="hatarisa"
-PKG_VERSION="cce4819401e8bb5767788a1c12ddb8b4101e2fad"
+PKG_VERSION="bc9504ded632048d7bf24cefc0e38f28457ab18b"
PKG_LICENSE="GPL"
PKG_SITE="https://github.com/hatari/hatari"
PKG_URL="https://github.com/hatari/hatari/archive/${PKG_VERSION}.tar.gz"
diff --git a/packages/emulators/standalone/hypseus-singe/package.mk b/packages/emulators/standalone/hypseus-singe/package.mk
index 5a2b016c0..9fa27e99c 100644
--- a/packages/emulators/standalone/hypseus-singe/package.mk
+++ b/packages/emulators/standalone/hypseus-singe/package.mk
@@ -3,7 +3,7 @@
# Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS)
PKG_NAME="hypseus-singe"
-PKG_VERSION="060535e3f1174e6d4d4286eddb5b40068b056dac"
+PKG_VERSION="9afc6345407e656d5b34fa795a25fb978f16e598"
PKG_LICENSE="GPL3"
PKG_SITE="https://github.com/DirtBagXon/hypseus-singe"
PKG_URL="${PKG_SITE}.git"
diff --git a/packages/emulators/standalone/kronos-sa/package.mk b/packages/emulators/standalone/kronos-sa/package.mk
index f76105774..8eae8224d 100644
--- a/packages/emulators/standalone/kronos-sa/package.mk
+++ b/packages/emulators/standalone/kronos-sa/package.mk
@@ -6,7 +6,7 @@ PKG_LICENSE="GPLv2"
PKG_SITE="https://github.com/FCare/Kronos"
PKG_ARCH="x86_64"
PKG_URL="${PKG_SITE}.git"
-PKG_VERSION="8e0eade"
+PKG_VERSION="400670e78da403ec37a86f23ac6e6c64e641e78e"
PKG_GIT_CLONE_BRANCH="extui-align"
PKG_DEPENDS_TARGET="toolchain SDL2 boost openal-soft zlib qt5"
PKG_LONGDESC="Kronos is a Sega Saturn emulator forked from yabause."
diff --git a/packages/emulators/standalone/lime3ds-sa/config/AMD64/sdl2-config.ini b/packages/emulators/standalone/lime3ds-sa/config/AMD64/sdl2-config.ini
index f1d7e9d20..99a85bef2 100644
--- a/packages/emulators/standalone/lime3ds-sa/config/AMD64/sdl2-config.ini
+++ b/packages/emulators/standalone/lime3ds-sa/config/AMD64/sdl2-config.ini
@@ -18,22 +18,22 @@
# - "direction"(only used for axis): "+" means the button is triggered when the axis value
# is greater than the threshold; "-" means the button is triggered when the axis value
# is smaller than the threshold
-button_a=button:1,engine:sdl,guid:030003f05e0400008e02000010010000,port:0
-button_b=button:0,engine:sdl,guid:030003f05e0400008e02000010010000,port:0
-button_x=button:3,engine:sdl,guid:030003f05e0400008e02000010010000,port:0
-button_y=button:2,engine:sdl,guid:030003f05e0400008e02000010010000,port:0
-button_up=direction:up,engine:sdl,guid:030003f05e0400008e02000010010000,hat:0,port:0
-button_down=direction:down,engine:sdl,guid:030003f05e0400008e02000010010000,hat:0,port:0
-button_left=direction:left,engine:sdl,guid:030003f05e0400008e02000010010000,hat:0,port:0
-button_right=direction:right,engine:sdl,guid:030003f05e0400008e02000010010000,hat:0,port:0
-button_l=button:4,engine:sdl,guid:030003f05e0400008e02000010010000,port:0
-button_r=button:5,engine:sdl,guid:030003f05e0400008e02000010010000,port:0
-button_start=button:7,engine:sdl,guid:030003f05e0400008e02000010010000,port:0
-button_select=button:6,engine:sdl,guid:030003f05e0400008e02000010010000,port:0
+button_a=button:1,engine:sdl,guid:030081b85e0400008e02000010010000,port:0
+button_b=button:0,engine:sdl,guid:030081b85e0400008e02000010010000,port:0
+button_x=button:3,engine:sdl,guid:030081b85e0400008e02000010010000,port:0
+button_y=button:2,engine:sdl,guid:030081b85e0400008e02000010010000,port:0
+button_up=direction:up,engine:sdl,guid:030081b85e0400008e02000010010000,hat:0,port:0
+button_down=direction:down,engine:sdl,guid:030081b85e0400008e02000010010000,hat:0,port:0
+button_left=direction:left,engine:sdl,guid:030081b85e0400008e02000010010000,hat:0,port:0
+button_right=direction:right,engine:sdl,guid:030081b85e0400008e02000010010000,hat:0,port:0
+button_l=button:4,engine:sdl,guid:030081b85e0400008e02000010010000,port:0
+button_r=button:5,engine:sdl,guid:030081b85e0400008e02000010010000,port:0
+button_start=button:7,engine:sdl,guid:030081b85e0400008e02000010010000,port:0
+button_select=button:6,engine:sdl,guid:030081b85e0400008e02000010010000,port:0
button_debug=
button_gpio14=
-button_zl=axis:2,direction:+,engine:sdl,guid:030003f05e0400008e02000010010000,port:0,threshold:0.5
-button_zr=axis:5,direction:+,engine:sdl,guid:030003f05e0400008e02000010010000,port:0,threshold:0.5
+button_zl=axis:2,direction:+,engine:sdl,guid:030081b85e0400008e02000010010000,port:0,threshold:0.5
+button_zr=axis:5,direction:+,engine:sdl,guid:030081b85e0400008e02000010010000,port:0,threshold:0.5
button_home=
# for analog input, the following devices are available:
@@ -48,8 +48,8 @@ button_home=
# - "axis_x": the index of the axis to bind as x-axis (default to 0)
# - "axis_y": the index of the axis to bind as y-axis (default to 1)
-circle_Pad=axis_x:0,axis_y:1,deadzone:0.100000,engine:sdl,guid:030003f05e0400008e02000010010000,port:0
-c_stick=axis_x:3,axis_y:4,deadzone:0.100000,engine:sdl,guid:030003f05e0400008e02000010010000,port:0
+circle_Pad=axis_x:0,axis_y:1,deadzone:0.100000,engine:sdl,guid:030081b85e0400008e02000010010000,port:0
+c_stick=axis_x:3,axis_y:4,deadzone:0.100000,engine:sdl,guid:030081b85e0400008e02000010010000,port:0
# for motion input, the following devices are available:
# - "motion_emu" (default) for emulating motion input from mouse input. Required parameters:
diff --git a/packages/emulators/standalone/mupen64plus-sa/mupen64plus-sa-input-sdl/config/H700/default.ini b/packages/emulators/standalone/mupen64plus-sa/mupen64plus-sa-input-sdl/config/H700/default.ini
new file mode 100644
index 000000000..ddb609d69
--- /dev/null
+++ b/packages/emulators/standalone/mupen64plus-sa/mupen64plus-sa-input-sdl/config/H700/default.ini
@@ -0,0 +1,25 @@
+; RG552 Gamepad - default.ini
+[retrogame_joypad]
+plugged = True
+mouse = False
+AnalogDeadzone = 0,0
+AnalogPeak = 32768,32768
+DPad R = button(16)
+DPad L = button(15)
+DPad D = button(14)
+DPad U = button(13)
+Start = button(9)
+Z Trig = button(6)
+B Button = button(3)
+A Button = button(0)
+C Button R = axis(2+)
+C Button L = axis(2-)
+C Button D = axis(3+)
+C Button U = axis(3-)
+R Trig = button(5)
+L Trig = button(4)
+Mempak switch =
+Rumblepak switch =
+# Analog axis configuration mappings
+X Axis = axis(0-,0+)
+Y Axis = axis(1-,1+)
diff --git a/packages/emulators/standalone/mupen64plus-sa/mupen64plus-sa-input-sdl/config/H700/zlswap.ini b/packages/emulators/standalone/mupen64plus-sa/mupen64plus-sa-input-sdl/config/H700/zlswap.ini
new file mode 100644
index 000000000..3e596ab60
--- /dev/null
+++ b/packages/emulators/standalone/mupen64plus-sa/mupen64plus-sa-input-sdl/config/H700/zlswap.ini
@@ -0,0 +1,25 @@
+; RG552 Gamepad - zlswap.ini
+[retrogame_joypad]
+plugged = True
+mouse = False
+AnalogDeadzone = 0,0
+AnalogPeak = 32768,32768
+DPad R = button(16)
+DPad L = button(15)
+DPad D = button(14)
+DPad U = button(13)
+Start = button(9)
+Z Trig = button(4)
+B Button = button(3)
+A Button = button(0)
+C Button R = axis(2+)
+C Button L = axis(2-)
+C Button D = axis(3+)
+C Button U = axis(3-)
+R Trig = button(5)
+L Trig = button(6)
+Mempak switch =
+Rumblepak switch =
+# Analog axis configuration mappings
+X Axis = axis(0-,0+)
+Y Axis = axis(1-,1+)
\ No newline at end of file
diff --git a/packages/emulators/standalone/mupen64plus-sa/mupen64plus-sa-simplecore/package.mk b/packages/emulators/standalone/mupen64plus-sa/mupen64plus-sa-simplecore/package.mk
index 4eb4e44da..940b6a979 100644
--- a/packages/emulators/standalone/mupen64plus-sa/mupen64plus-sa-simplecore/package.mk
+++ b/packages/emulators/standalone/mupen64plus-sa/mupen64plus-sa-simplecore/package.mk
@@ -26,6 +26,8 @@ case ${DEVICE} in
esac
make_target() {
+# export TARGET_CLFAGS="${TARGET_CFLAGS} -Wno-implicit-function-declaration -Wno-error=incompatible-pointer-types"
+# export TARGET_CXXLFAGS="${TARGET_CXXFLAGS} -Wno-implicit-function-declaration -Wno-error=incompatible-pointer-types"
case ${ARCH} in
arm|aarch64)
export HOST_CPU=aarch64
@@ -37,6 +39,9 @@ make_target() {
;;
esac
+ # Always diable Vulkan
+ export VULKAN=0
+
export BINUTILS="$(get_build_dir binutils)/.${TARGET_NAME}"
export NEW_DYNAREC=1
export SDL_CFLAGS="-I${SYSROOT_PREFIX}/usr/include/SDL2 -pthread -D_REENTRANT"
diff --git a/packages/emulators/standalone/mupen64plus-sa/mupen64plus-sa-ui-console/package.mk b/packages/emulators/standalone/mupen64plus-sa/mupen64plus-sa-ui-console/package.mk
index 53b10fd6d..21f522724 100644
--- a/packages/emulators/standalone/mupen64plus-sa/mupen64plus-sa-ui-console/package.mk
+++ b/packages/emulators/standalone/mupen64plus-sa/mupen64plus-sa-ui-console/package.mk
@@ -31,6 +31,7 @@ case ${DEVICE} in
esac
make_target() {
+ export CFLAGS="${CFLAGS} -Wno-error=incompatible-pointer-types"
export V=1 \
VC=0
diff --git a/packages/emulators/standalone/ppsspp-sa/sources/H700/controls.ini b/packages/emulators/standalone/ppsspp-sa/sources/H700/controls.ini
new file mode 100755
index 000000000..213f7119a
--- /dev/null
+++ b/packages/emulators/standalone/ppsspp-sa/sources/H700/controls.ini
@@ -0,0 +1,25 @@
+[ControlMapping]
+Up = 10-19
+Down = 10-20
+Left = 10-21
+Right = 10-22
+Circle = 10-189
+Cross = 10-190
+Square = 10-188
+Triangle = 10-191
+Start = 10-197
+Select = 10-196
+L = 10-193
+R = 10-192
+An.Up = 10-4002
+An.Down = 10-4003
+An.Left = 10-4000
+An.Right = 10-4001
+Fast-forward = 1-61
+Pause = 10-106
+Save State = 10-4010
+Load State = 10-4008
+RightAn.Up = 10-4007
+RightAn.Down = 10-4006
+RightAn.Left = 10-4005
+RightAn.Right = 10-4004
diff --git a/packages/emulators/standalone/ppsspp-sa/sources/H700/ppsspp.ini b/packages/emulators/standalone/ppsspp-sa/sources/H700/ppsspp.ini
new file mode 100755
index 000000000..7825573a2
--- /dev/null
+++ b/packages/emulators/standalone/ppsspp-sa/sources/H700/ppsspp.ini
@@ -0,0 +1,462 @@
+[General]
+FirstRun = False
+RunCount = 3
+Enable Logging = True
+AutoRun = True
+Browse = False
+IgnoreBadMemAccess = True
+CurrentDirectory = /storage
+ShowDebuggerOnLoad = False
+CheckForNewVersion = True
+Language = en_US
+ForceLagSync2 = False
+DiscordPresence = True
+UISound = False
+AutoLoadSaveState = 0
+EnableCheats = False
+CwCheatRefreshRate = 77
+CwCheatScrollPosition = 0.000000
+GameListScrollPosition = 0.000000
+ScreenshotsAsPNG = False
+UseFFV1 = False
+DumpFrames = False
+DumpVideoOutput = False
+DumpAudio = False
+SaveLoadResetsAVdumping = False
+StateSlot = 0
+EnableStateUndo = True
+StateLoadUndoGame = NA
+StateUndoLastSaveGame = NA
+StateUndoLastSaveSlot = -5
+RewindSnapshotInterval = 0
+ShowOnScreenMessage = True
+ShowRegionOnGameIcon = False
+ShowIDOnGameIcon = False
+GameGridScale = 1.000000
+GridView1 = True
+GridView2 = True
+GridView3 = False
+RightAnalogUp = 0
+RightAnalogDown = 0
+RightAnalogLeft = 0
+RightAnalogRight = 0
+RightAnalogPress = 0
+RightAnalogCustom = False
+RightAnalogDisableDiagonal = False
+SwipeUp = 0
+SwipeDown = 0
+SwipeLeft = 0
+SwipeRight = 0
+SwipeSensitivity = 1.000000
+SwipeSmoothing = 0.300000
+DoubleTapGesture = 0
+GestureControlEnabled = False
+ReportingHost = default
+AutoSaveSymbolMap = False
+CacheFullIsoInRam = False
+RemoteISOPort = 0
+LastRemoteISOServer =
+LastRemoteISOPort = 0
+RemoteISOManualConfig = False
+RemoteShareOnStartup = False
+RemoteISOSubdir = /
+RemoteDebuggerOnStartup = False
+InternalScreenRotation = 1
+BackgroundAnimation = 1
+TransparentBackground = True
+UITint = 0.000000
+UISaturation = 1.000000
+PauseWhenMinimized = False
+DumpDecryptedEboots = False
+ShowMenuBar = True
+MemStickInserted = True
+EnablePlugins = True
+IgnoreCompatSettings =
+[CPU]
+CPUCore = 1
+SeparateSASThread = True
+IOTimingMethod = 0
+FastMemoryAccess = True
+FunctionReplacements = True
+HideSlowWarnings = False
+HideStateWarnings = False
+PreloadFunctions = False
+JitDisableFlags = 0x00000000
+CPUSpeed = 0
+[Graphics]
+EnableCardboardVR = False
+CardboardScreenSize = 50
+CardboardXShift = 0
+CardboardYShift = 0
+iShowStatusFlags = 0
+GraphicsBackend = 0 (OPENGL)
+FailedGraphicsBackends =
+DisabledGraphicsBackends =
+VulkanDevice =
+CameraDevice =
+UseGeometryShader = False
+SkipBufferEffects = False
+SoftwareRenderer = False
+SoftwareRendererJit = True
+HardwareTransform = True
+SoftwareSkinning = True
+TextureFiltering = 1
+BufferFiltering = 1
+InternalResolution = 1
+HighQualityDepth = 1
+FrameSkip = 0
+FrameSkipType = 0
+AutoFrameSkip = False
+StereoRendering = False
+StereoToMonoShader = RedBlue
+FrameRate = 0
+FrameRate2 = -1
+AnalogFrameRate = 240
+AnalogFrameRateMode = 0
+UnthrottlingMode = CONTINUOUS
+AnisotropyLevel = 4
+MultiSampleLevel = 0
+VertexDecCache = False
+TextureBackoffCache = False
+FullScreen = True
+FullScreenMulti = False
+DisplayOffsetX = 0.500000
+DisplayOffsetY = 0.500000
+DisplayScale = 1.000000
+DisplayAspectRatio = 1.000000
+DisplayStretch = False
+ImmersiveMode = True
+SustainedPerformanceMode = False
+IgnoreScreenInsets = True
+ReplaceTextures = True
+SaveNewTextures = False
+IgnoreTextureFilenames = False
+ReplaceTexturesAllowLate = True
+TexScalingLevel = 1
+TexScalingType = 0
+TexDeposterize = False
+TexHardwareScaling = False
+VSyncInterval = False
+BloomHack = 0
+SplineBezierQuality = 2
+HardwareTessellation = False
+TextureShader = Off
+ShaderChainRequires60FPS = False
+SkipGPUReadbacks = False
+LogFrameDrops = False
+InflightFrames = 3
+RenderDuplicateFrames = False
+GpuLogProfiler = False
+[Sound]
+Enable = True
+AudioBackend = 0
+ExtraAudioBuffering = False
+GlobalVolume = 10
+ReverbVolume = 10
+AltSpeedVolume = -1
+AudioDevice =
+AutoAudioDevice = True
+[Control]
+HapticFeedback = False
+ShowTouchCross = True
+ShowTouchCircle = True
+ShowTouchSquare = True
+ShowTouchTriangle = True
+Custom0Mapping = 0x0000000000000000
+Custom0Image = 0
+Custom0Shape = 0
+Custom0Toggle = False
+Custom0Repeat = False
+Custom1Mapping = 0x0000000000000000
+Custom1Image = 1
+Custom1Shape = 0
+Custom1Toggle = False
+Custom1Repeat = False
+Custom2Mapping = 0x0000000000000000
+Custom2Image = 2
+Custom2Shape = 0
+Custom2Toggle = False
+Custom2Repeat = False
+Custom3Mapping = 0x0000000000000000
+Custom3Image = 3
+Custom3Shape = 0
+Custom3Toggle = False
+Custom3Repeat = False
+Custom4Mapping = 0x0000000000000000
+Custom4Image = 4
+Custom4Shape = 0
+Custom4Toggle = False
+Custom4Repeat = False
+Custom5Mapping = 0x0000000000000000
+Custom5Image = 0
+Custom5Shape = 1
+Custom5Toggle = False
+Custom5Repeat = False
+Custom6Mapping = 0x0000000000000000
+Custom6Image = 1
+Custom6Shape = 1
+Custom6Toggle = False
+Custom6Repeat = False
+Custom7Mapping = 0x0000000000000000
+Custom7Image = 2
+Custom7Shape = 1
+Custom7Toggle = False
+Custom7Repeat = False
+Custom8Mapping = 0x0000000000000000
+Custom8Image = 3
+Custom8Shape = 1
+Custom8Toggle = False
+Custom8Repeat = False
+Custom9Mapping = 0x0000000000000000
+Custom9Image = 4
+Custom9Shape = 1
+Custom9Toggle = False
+Custom9Repeat = False
+ShowTouchPause = False
+ShowTouchControls = False
+DisableDpadDiagonals = False
+GamepadOnlyFocused = False
+TouchButtonStyle = 1
+TouchButtonOpacity = 65
+TouchButtonHideSeconds = 20
+AutoCenterTouchAnalog = False
+AnalogAutoRotSpeed = 8.000000
+TouchSnapToGrid = False
+TouchSnapGridSize = 64
+ActionButtonSpacing2 = 1.000000
+ActionButtonCenterX = 0.859485
+ActionButtonCenterY = 0.750000
+ActionButtonScale = 1.150000
+DPadX = 0.167447
+DPadY = 0.400000
+DPadScale = 1.150000
+ShowTouchDpad = True
+DPadSpacing = 1.000000
+StartKeyX = 0.634660
+StartKeyY = 0.856250
+StartKeyScale = 1.150000
+ShowTouchStart = True
+SelectKeyX = 0.500000
+SelectKeyY = 0.856250
+SelectKeyScale = 1.150000
+ShowTouchSelect = True
+UnthrottleKeyX = 0.365340
+UnthrottleKeyY = 0.856250
+UnthrottleKeyScale = 1.150000
+ShowTouchUnthrottle = True
+LKeyX = 0.080796
+LKeyY = 0.089583
+LKeyScale = 1.150000
+ShowTouchLTrigger = True
+RKeyX = 0.919204
+RKeyY = 0.089583
+RKeyScale = 1.150000
+ShowTouchRTrigger = True
+AnalogStickX = 0.167447
+AnalogStickY = 0.808333
+AnalogStickScale = 1.150000
+ShowAnalogStick = True
+RightAnalogStickX = 0.859485
+RightAnalogStickY = 0.808333
+RightAnalogStickScale = 1.150000
+ShowRightAnalogStick = False
+fcombo0X = 0.661592
+fcombo0Y = 0.500000
+comboKeyScale0 = 1.150000
+ShowComboKey0 = False
+fcombo1X = 0.796253
+fcombo1Y = 0.500000
+comboKeyScale1 = 1.150000
+ShowComboKey1 = False
+fcombo2X = 0.930913
+fcombo2Y = 0.500000
+comboKeyScale2 = 1.150000
+ShowComboKey2 = False
+fcombo3X = 0.661592
+fcombo3Y = 0.333333
+comboKeyScale3 = 1.150000
+ShowComboKey3 = False
+fcombo4X = 0.796253
+fcombo4Y = 0.333333
+comboKeyScale4 = 1.150000
+ShowComboKey4 = False
+fcombo5X = 0.338407
+fcombo5Y = 0.500000
+comboKeyScale5 = 1.150000
+ShowComboKey5 = False
+fcombo6X = 0.203747
+fcombo6Y = 0.500000
+comboKeyScale6 = 1.150000
+ShowComboKey6 = False
+fcombo7X = 0.069087
+fcombo7Y = 0.500000
+comboKeyScale7 = 1.150000
+ShowComboKey7 = False
+fcombo8X = 0.338407
+fcombo8Y = 0.333333
+comboKeyScale8 = 1.150000
+ShowComboKey8 = False
+fcombo9X = 0.203747
+fcombo9Y = 0.333333
+comboKeyScale9 = 1.150000
+ShowComboKey9 = False
+AnalogDeadzone = 0.150000
+AnalogInverseDeadzone = 0.000000
+AnalogSensitivity = 1.100000
+AnalogIsCircular = False
+AnalogLimiterDeadzone = 0.600000
+LeftStickHeadScale = 1.000000
+RightStickHeadScale = 1.000000
+HideStickBackground = False
+UseMouse = False
+MapMouse = False
+ConfineMap = False
+MouseSensitivity = 0.100000
+MouseSmoothing = 0.900000
+SystemControls = True
+[Network]
+EnableWlan = False
+EnableAdhocServer = False
+proAdhocServer = socom.cc
+PortOffset = 10000
+MinTimeout = 0
+ForcedFirstConnect = False
+EnableUPnP = False
+UPnPUseOriginalPort = False
+EnableNetworkChat = False
+ChatButtonPosition = 0
+ChatScreenPosition = 0
+EnableQuickChat = True
+QuickChat1 = Quick Chat 1
+QuickChat2 = Quick Chat 2
+QuickChat3 = Quick Chat 3
+QuickChat4 = Quick Chat 4
+QuickChat5 = Quick Chat 5
+[SystemParam]
+PSPModel = 1
+PSPFirmwareVersion = 660
+NickName = PPSSPP
+MacAddress = dc:39:74:d2:dd:86
+Language = 1
+ParamTimeFormat = 0
+ParamDateFormat = 0
+TimeZone = 0
+DayLightSavings = False
+ButtonPreference = 1
+LockParentalLevel = 0
+WlanAdhocChannel = 0
+WlanPowerSave = False
+EncryptSave = True
+SavedataUpgradeVersion = True
+MemStickSize = 16
+[Debugger]
+DisasmWindowX = -1
+DisasmWindowY = -1
+DisasmWindowW = -1
+DisasmWindowH = -1
+GEWindowX = -1
+GEWindowY = -1
+GEWindowW = -1
+GEWindowH = -1
+GEWindowTabsBL = 0x00000000
+GEWindowTabsBR = 0x00000000
+GEWindowTabsTR = 0x00000000
+ConsoleWindowX = -1
+ConsoleWindowY = -1
+FontWidth = 8
+FontHeight = 12
+DisplayStatusBar = True
+ShowBottomTabTitles = True
+ShowDeveloperMenu = False
+SkipDeadbeefFilling = False
+FuncHashMap = False
+MemInfoDetailed = False
+DrawFrameGraph = False
+[Upgrade]
+UpgradeMessage =
+UpgradeVersion =
+DismissedVersion =
+[Theme]
+ThemeName = Default
+[VR]
+VREnable = True
+VREnable6DoF = True
+VREnableStereo = False
+VREnableMotions = True
+VRForce72Hz = True
+VRManualForceVR = False
+VRCameraDistance = 0.000000
+VRCameraHeight = 0.000000
+VRCameraSide = 0.000000
+VRCanvasDistance = 12.000000
+VRFieldOfView = 100.000000
+VRHeadUpDisplayScale = 0.300000
+VRMotionLength = 0.500000
+VRHeadRotationScale = 5.000000
+VRHeadRotationSmoothing = False
+VRHeadRotation = 0
+[Recent]
+MaxRecent = 60
+FileName0 = /storage/roms/psp/Final Fantasy III.iso
+FileName1 = /storage/roms/psp/Final Fantasy II.iso
+[Log]
+SYSTEMEnabled = True
+SYSTEMLevel = 2
+BOOTEnabled = True
+BOOTLevel = 2
+COMMONEnabled = True
+COMMONLevel = 2
+CPUEnabled = True
+CPULevel = 2
+FILESYSEnabled = True
+FILESYSLevel = 2
+G3DEnabled = True
+G3DLevel = 2
+HLEEnabled = True
+HLELevel = 2
+JITEnabled = True
+JITLevel = 2
+LOADEREnabled = True
+LOADERLevel = 2
+MEEnabled = True
+MELevel = 2
+MEMMAPEnabled = True
+MEMMAPLevel = 2
+SASMIXEnabled = True
+SASMIXLevel = 2
+SAVESTATEEnabled = True
+SAVESTATELevel = 2
+FRAMEBUFEnabled = True
+FRAMEBUFLevel = 2
+AUDIOEnabled = True
+AUDIOLevel = 2
+IOEnabled = True
+IOLevel = 2
+SCEAUDIOEnabled = True
+SCEAUDIOLevel = 2
+SCECTRLEnabled = True
+SCECTRLLevel = 2
+SCEDISPEnabled = True
+SCEDISPLevel = 2
+SCEFONTEnabled = True
+SCEFONTLevel = 2
+SCEGEEnabled = True
+SCEGELevel = 2
+SCEINTCEnabled = True
+SCEINTCLevel = 2
+SCEIOEnabled = True
+SCEIOLevel = 2
+SCEKERNELEnabled = True
+SCEKERNELLevel = 2
+SCEMODULEEnabled = True
+SCEMODULELevel = 2
+SCENETEnabled = True
+SCENETLevel = 2
+SCERTCEnabled = True
+SCERTCLevel = 2
+SCESASEnabled = True
+SCESASLevel = 2
+SCEUTILEnabled = True
+SCEUTILLevel = 2
+SCEMISCEnabled = True
+SCEMISCLevel = 2
diff --git a/packages/emulators/standalone/supermodel-sa/package.mk b/packages/emulators/standalone/supermodel-sa/package.mk
index 56e595ed7..44bba2fe8 100644
--- a/packages/emulators/standalone/supermodel-sa/package.mk
+++ b/packages/emulators/standalone/supermodel-sa/package.mk
@@ -12,7 +12,7 @@ GET_HANDLER_SUPPORT="git"
case ${TARGET_ARCH} in
aarch64|arm)
- PKG_VERSION="f94232e45e17f74ea510c7b754eec73529f06f58"
+ PKG_VERSION="cec451f3c3639622a372e0140ce3589ca616c84f"
PKG_GIT_CLONE_BRANCH="arm"
;;
*)
diff --git a/packages/emulators/standalone/supermodel-sa/patches/01-glew.patch b/packages/emulators/standalone/supermodel-sa/patches/01-glew.patch
deleted file mode 100644
index b52ff784f..000000000
--- a/packages/emulators/standalone/supermodel-sa/patches/01-glew.patch
+++ /dev/null
@@ -1,15 +0,0 @@
---- a/Src/OSD/SDL/Main.cpp 2024-04-04 17:30:55.333806373 -0400
-+++ b/Src/OSD/SDL/Main.cpp 2024-04-04 17:30:24.325773043 -0400
-@@ -237,11 +237,11 @@
- // Set the context as the current window context
- SDL_GL_MakeCurrent(s_window, context);
-
- // Initialize GLEW, allowing us to use features beyond OpenGL 1.2
- err = glewInit();
-- if (GLEW_OK != err)
-+ if (GLEW_OK != err && GLEW_ERROR_NO_GLX_DISPLAY != err)
- {
- ErrorLog("OpenGL initialization failed: %s\n", glewGetErrorString(err));
- return FAIL;
- }
-
diff --git a/packages/emulators/standalone/supermodel-sa/patches/03-fix-gcc14.patch b/packages/emulators/standalone/supermodel-sa/patches/03-fix-gcc14.patch
new file mode 100644
index 000000000..2955921b3
--- /dev/null
+++ b/packages/emulators/standalone/supermodel-sa/patches/03-fix-gcc14.patch
@@ -0,0 +1,12 @@
+diff --git a/Src/Graphics/New3D/R3DFloat.cpp b/Src/Graphics/New3D/R3DFloat.cpp
+index 4256e18..2d347ff 100644
+--- a/Src/Graphics/New3D/R3DFloat.cpp
++++ b/Src/Graphics/New3D/R3DFloat.cpp
+@@ -1,6 +1,7 @@
+ #include "Types.h"
+ #include "R3DFloat.h"
+ #include "Util/BitCast.h"
++#include
+
+ float R3DFloat::GetFloat16(UINT16 f)
+ {
diff --git a/packages/emulators/standalone/supermodel-sa/patches/04-fix-gcc14.patch b/packages/emulators/standalone/supermodel-sa/patches/04-fix-gcc14.patch
new file mode 100644
index 000000000..096d4c39c
--- /dev/null
+++ b/packages/emulators/standalone/supermodel-sa/patches/04-fix-gcc14.patch
@@ -0,0 +1,13 @@
+diff --git a/Makefiles/Rules.inc b/Makefiles/Rules.inc
+index 01b8958..5e5c394 100644
+--- a/Makefiles/Rules.inc
++++ b/Makefiles/Rules.inc
+@@ -79,7 +79,7 @@ CXXSTD = -std=c++17
+ # Construct the compiler (C and C++) and linker flags
+ #
+ COMMON_CFLAGS = -c $(ARCH) $(OPT) $(WARN) $(addprefix -I,$(sort $(INCLUDE_DIRS))) -DGLEW_STATIC $(SUPERMODEL_BUILD_FLAGS)
+-CFLAGS = $(COMMON_CFLAGS) $(CSTD)
++CFLAGS = $(COMMON_CFLAGS) $(CSTD) -Wno-implicit-function-declaration
+ CXXFLAGS = $(PLATFORM_CXXFLAGS) $(COMMON_CFLAGS) $(CXXSTD)
+ LDFLAGS = -o $(BIN_DIR)/$(OUTFILE) $(PLATFORM_LDFLAGS) -s
+
diff --git a/packages/emulators/standalone/vita3k-sa/package.mk b/packages/emulators/standalone/vita3k-sa/package.mk
index ecac6015a..a1f85aa2d 100644
--- a/packages/emulators/standalone/vita3k-sa/package.mk
+++ b/packages/emulators/standalone/vita3k-sa/package.mk
@@ -2,7 +2,8 @@
# Copyright (C) 2022-present JELOS (https://github.com/JustEnoughLinuxOS)
PKG_NAME="vita3k-sa"
-PKG_VERSION="79bc40003e764c30f0552468617072d1e94e55aa"
+PKG_VERSION="087285ab6531bf34945512be3ac0b6c81977ed47"
+#PKG_VERSION="92c464648945a699f7e2c667c791f939b686550b"
PKG_LICENSE="GPLv2"
PKG_SITE="https://github.com/Vita3K/Vita3K"
PKG_URL="${PKG_SITE}.git"
diff --git a/packages/emulators/standalone/xemu-sa/package.mk b/packages/emulators/standalone/xemu-sa/package.mk
index 7cdea8032..bf200ce56 100644
--- a/packages/emulators/standalone/xemu-sa/package.mk
+++ b/packages/emulators/standalone/xemu-sa/package.mk
@@ -2,7 +2,7 @@
# Copyright (C) 2022-present JELOS (https://github.com/JustEnoughLinuxOS)
PKG_NAME="xemu-sa"
-PKG_VERSION="v0.7.119"
+PKG_VERSION="v0.7.127"
PKG_ARCH="x86_64"
PKG_LICENSE="GPLv3"
PKG_SITE="https://github.com/xemu-project/xemu"
diff --git a/packages/emulators/standalone/yabasanshiro-sa/package.mk b/packages/emulators/standalone/yabasanshiro-sa/package.mk
index e2fc81822..f91e9c89a 100644
--- a/packages/emulators/standalone/yabasanshiro-sa/package.mk
+++ b/packages/emulators/standalone/yabasanshiro-sa/package.mk
@@ -26,8 +26,6 @@ case ${TARGET_ARCH} in
;;
esac
-PKG_CMAKE_OPTS_TARGET="${PKG_BUILD}/yabause "
-
if [ ! "${OPENGL}" = "no" ]; then
PKG_DEPENDS_TARGET+=" ${OPENGL} glu libglvnd"
fi
@@ -54,7 +52,6 @@ pre_make_target() {
}
pre_configure_target() {
-
PKG_CMAKE_OPTS_TARGET="${PKG_BUILD}/yabause "
if [ ! "${OPENGL}" = "no" ]; then
@@ -75,7 +72,7 @@ pre_configure_target() {
case ${ARCH} in
aarch64)
PKG_CMAKE_OPTS_TARGET+=" -DYAB_WANT_ARM7=ON \
- -DYAB_WANT_DYNAREC_DEVMIYAX=ON
+ -DYAB_WANT_DYNAREC_DEVMIYAX=ON \
-DCMAKE_TOOLCHAIN_FILE=${PKG_BUILD}/yabause/src/retro_arena/n2.cmake \
-DYAB_PORTS=retro_arena"
;;
@@ -88,7 +85,8 @@ pre_configure_target() {
-DOPENGL_glx_LIBRARY=${SYSROOT_PREFIX}/usr/lib \
-DLIBPNG_LIB_DIR=${SYSROOT_PREFIX}/usr/lib \
-Dpng_STATIC_LIBRARIES=${SYSROOT_PREFIX}/usr/lib/libpng16.so \
- -DCMAKE_BUILD_TYPE=Release"
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON"
}
makeinstall_target() {
diff --git a/packages/emulators/standalone/yabasanshiro-sa/patches/06-large-files.patch b/packages/emulators/standalone/yabasanshiro-sa/patches/06-large-files.patch
new file mode 100644
index 000000000..8ef4578f4
--- /dev/null
+++ b/packages/emulators/standalone/yabasanshiro-sa/patches/06-large-files.patch
@@ -0,0 +1,13 @@
+diff --git a/yabause/src/CMakeLists.txt b/yabause/src/CMakeLists.txt
+index 0b0e624..7e4037e 100644
+--- a/yabause/src/CMakeLists.txt
++++ b/yabause/src/CMakeLists.txt
+@@ -194,7 +194,8 @@ if (YAB_USE_SSF)
+ find_package(ZLIB)
+
+ if (ZLIB_FOUND)
+ add_definitions(-DYAB_WANT_SSF=1)
++ set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-error=incompatible-pointer-types -Wno-int-conversion -Wno-implicit-function-declaration -D_LARGEFILE_SOURCE" )
+ include_directories(${ZLIB_INCLUDE_DIRS})
+ set(YABAUSE_LIBRARIES ${YABAUSE_LIBRARIES} ${ZLIB_LIBRARIES})
+
diff --git a/packages/graphics/SDL2/package.mk b/packages/graphics/SDL2/package.mk
index 8a38fc530..cd1826840 100644
--- a/packages/graphics/SDL2/package.mk
+++ b/packages/graphics/SDL2/package.mk
@@ -3,7 +3,7 @@
# Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS)
PKG_NAME="SDL2"
-PKG_VERSION="2.30.4"
+PKG_VERSION="2.30.5"
PKG_LICENSE="GPL"
PKG_SITE="https://www.libsdl.org/"
PKG_URL="https://www.libsdl.org/release/SDL2-${PKG_VERSION}.tar.gz"
diff --git a/packages/graphics/libdrm/package.mk b/packages/graphics/libdrm/package.mk
index aa054c7c8..e9e8938c9 100644
--- a/packages/graphics/libdrm/package.mk
+++ b/packages/graphics/libdrm/package.mk
@@ -4,7 +4,7 @@
# Copyright (C) 2018-present Team LibreELEC (https://libreelec.tv)
PKG_NAME="libdrm"
-PKG_VERSION="2.4.120"
+PKG_VERSION="2.4.122"
PKG_LICENSE="GPL"
PKG_SITE="http://dri.freedesktop.org"
PKG_URL="http://dri.freedesktop.org/libdrm/libdrm-${PKG_VERSION}.tar.xz"
diff --git a/packages/graphics/libmali/sources/bin/gpudriver b/packages/graphics/libmali/sources/bin/gpudriver
index 0783ed299..1a43075af 100755
--- a/packages/graphics/libmali/sources/bin/gpudriver
+++ b/packages/graphics/libmali/sources/bin/gpudriver
@@ -29,6 +29,8 @@ load_driver() {
if [ -d /usr/lib/glesonly ]; then
grep -q /usr/lib/libSDL2-2.0.so /proc/mounts || find /usr/{lib,lib32}/glesonly -type f -exec bash -c 'lib={}; mount --bind $lib ${lib/\/glesonly\//\/}' ';'
fi
+ mount --bind /dev/null /usr/lib/libGL.so
+ mount --bind /dev/null /usr/lib32/libGL.so
;;
"panfrost")
modprobe -r mali_kbase
diff --git a/packages/graphics/mesa/package.mk b/packages/graphics/mesa/package.mk
index a14e33520..06aea19bd 100644
--- a/packages/graphics/mesa/package.mk
+++ b/packages/graphics/mesa/package.mk
@@ -29,7 +29,7 @@ case ${DEVICE} in
fi
;;
*)
- PKG_VERSION="24.0.7"
+ PKG_VERSION="24.1.3"
PKG_SITE="http://www.mesa3d.org/"
PKG_URL="https://gitlab.freedesktop.org/mesa/mesa/-/archive/mesa-${PKG_VERSION}/mesa-mesa-${PKG_VERSION}.tar.gz"
;;
@@ -41,7 +41,6 @@ PKG_MESON_OPTS_TARGET=" ${MESA_LIBS_PATH_OPTS} \
-Dgallium-drivers=${GALLIUM_DRIVERS// /,} \
-Dgallium-extra-hud=false \
-Dgallium-omx=disabled \
- -Dgallium-nine=true \
-Dgallium-opencl=disabled \
-Dgallium-xa=disabled \
-Dshader-cache=enabled \
@@ -60,12 +59,14 @@ if [ "${DISPLAYSERVER}" = "x11" ]; then
export X11_INCLUDES=
PKG_MESON_OPTS_TARGET+=" -Dplatforms=x11 \
-Ddri3=enabled \
+ -Dgallium-nine=true \
-Dglx=dri \
-Dglvnd=true"
elif [ "${DISPLAYSERVER}" = "wl" ]; then
PKG_DEPENDS_TARGET+=" wayland wayland-protocols libglvnd glfw"
PKG_MESON_OPTS_TARGET+=" -Dplatforms=wayland,x11 \
-Ddri3=enabled \
+ -Dgallium-nine=true \
-Dglx=dri \
-Dglvnd=true"
PKG_DEPENDS_TARGET+=" xorgproto libXext libXdamage libXfixes libXxf86vm libxcb libX11 libxshmfence libXrandr libglvnd"
@@ -73,6 +74,7 @@ elif [ "${DISPLAYSERVER}" = "wl" ]; then
else
PKG_MESON_OPTS_TARGET+=" -Dplatforms="" \
-Ddri3=disabled \
+ -Dgallium-nine=false \
-Dglx=disabled \
-Dglvnd=false"
fi
diff --git a/packages/graphics/vulkan/glslang/package.mk b/packages/graphics/vulkan/glslang/package.mk
index e3945df8c..44e41617c 100755
--- a/packages/graphics/vulkan/glslang/package.mk
+++ b/packages/graphics/vulkan/glslang/package.mk
@@ -6,7 +6,7 @@ PKG_NAME="glslang"
# The SPIRV-Tools & SPIRV-Headers pkg_version/s need to match the compatible (known_good) glslang pkg_version.
# https://raw.githubusercontent.com/KhronosGroup/glslang/${PKG_VERSION}/known_good.json
# When updating glslang pkg_version please update to the known_good spirv-tools & spirv-headers pkg_version/s.
-PKG_VERSION="14.2.0"
+PKG_VERSION="14.3.0"
PKG_LICENSE="Apache-2.0"
PKG_SITE="https://github.com/KhronosGroup/glslang"
PKG_URL="https://github.com/KhronosGroup/glslang/archive/${PKG_VERSION}.tar.gz"
@@ -22,15 +22,19 @@ PKG_CMAKE_OPTS_COMMON="-DBUILD_EXTERNAL=ON \
-DENABLE_EXCEPTIONS=OFF \
-DENABLE_OPT=ON \
-DENABLE_PCH=ON \
- -DENABLE_CTEST=OFF \
- -DUSE_CCACHE=ON \
+ -DGLSLANG_TESTS=OFF \
-Wno-dev"
post_unpack() {
# Enables SPIR-V optimzer capability needed for ENABLE_OPT CMake build option
+ mkdir -p ${PKG_BUILD}/External/spirv-tools
+ tar --strip-components=1 \
+ -xf "${SOURCES}/spirv-tools/spirv-tools-$(get_pkg_version spirv-tools).tar.gz" \
+ -C "${PKG_BUILD}/External/spirv-tools"
mkdir -p ${PKG_BUILD}/External/spirv-tools/external/spirv-headers
- cp -R $(get_build_dir spirv-tools)/* ${PKG_BUILD}/External/spirv-tools
- cp -R $(get_build_dir spirv-headers)/* ${PKG_BUILD}/External/spirv-tools/external/spirv-headers
+ tar --strip-components=1 \
+ -xf "${SOURCES}/spirv-headers/spirv-headers-$(get_pkg_version spirv-headers).tar.gz" \
+ -C "${PKG_BUILD}/External/spirv-tools/external/spirv-headers"
}
pre_configure_host() {
diff --git a/packages/graphics/vulkan/glslang/patches/glslang-100.01-build-static-spirv-tools.patch b/packages/graphics/vulkan/glslang/patches/glslang-100.01-build-static-spirv-tools.patch
index ab3ac57c9..67607c818 100644
--- a/packages/graphics/vulkan/glslang/patches/glslang-100.01-build-static-spirv-tools.patch
+++ b/packages/graphics/vulkan/glslang/patches/glslang-100.01-build-static-spirv-tools.patch
@@ -1,12 +1,17 @@
---- a/External/CMakeLists.txt
-+++ b/External/CMakeLists.txt
-@@ -71,7 +71,8 @@ endif()
- if(ENABLE_OPT AND NOT TARGET SPIRV-Tools-opt)
- if(IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/spirv-tools)
- set(SPIRV_SKIP_TESTS ON CACHE BOOL "Skip building SPIRV-Tools tests")
-- add_subdirectory(spirv-tools)
-+ set(BUILD_SHARED_LIBS OFF CACHE BOOL "Disable build shared libs" FORCE)
-+ add_subdirectory(spirv-tools EXCLUDE_FROM_ALL)
- endif()
- endif()
+diff --git a/glslang/CMakeLists.txt b/glslang/CMakeLists.txt
+index 37eecaadd4..0e9037bf7a 100644
+--- a/glslang/CMakeLists.txt
++++ b/glslang/CMakeLists.txt
+@@ -254,11 +254,8 @@ if(PROJECT_IS_TOP_LEVEL)
+ set(PUBLIC_HEADERS
+ Public/ResourceLimits.h
+- Public/ShaderLang.h
+ Public/resource_limits_c.h
+- Include/glslang_c_interface.h
+- Include/glslang_c_shader_types.h
+- Include/ResourceLimits.h
++ ${GLSLANG_HEADERS}
+ MachineIndependent/Versions.h)
+
+ foreach(file ${PUBLIC_HEADERS})
diff --git a/packages/graphics/vulkan/spirv-headers/package.mk b/packages/graphics/vulkan/spirv-headers/package.mk
index 4a5588dd4..13ca5b2b2 100644
--- a/packages/graphics/vulkan/spirv-headers/package.mk
+++ b/packages/graphics/vulkan/spirv-headers/package.mk
@@ -6,7 +6,7 @@ PKG_NAME="spirv-headers"
# The SPIRV-Headers pkg_version needs to match the compatible (known_good) glslang pkg_version.
# https://raw.githubusercontent.com/KhronosGroup/glslang/${PKG_VERSION}/known_good.json
# When updating glslang pkg_version please update to the known_good spirv-headers pkg_version.
-PKG_VERSION="4f7b471f1a66b6d06462cd4ba57628cc0cd087d7"
+PKG_VERSION="2acb319af38d43be3ea76bfabf3998e5281d8d12"
PKG_LICENSE="Apache-2.0"
PKG_SITE="https://github.com/KhronosGroup/SPIRV-headers"
PKG_URL="https://github.com/KhronosGroup/SPIRV-headers/archive/${PKG_VERSION}.tar.gz"
diff --git a/packages/graphics/vulkan/spirv-tools/package.mk b/packages/graphics/vulkan/spirv-tools/package.mk
index 00e8fcb2e..a2c5000f8 100644
--- a/packages/graphics/vulkan/spirv-tools/package.mk
+++ b/packages/graphics/vulkan/spirv-tools/package.mk
@@ -6,10 +6,17 @@ PKG_NAME="spirv-tools"
# The SPIRV-Tools pkg_version needs to match the compatible (known_good) glslang pkg_version.
# https://raw.githubusercontent.com/KhronosGroup/glslang/${PKG_VERSION}/known_good.json
# When updating glslang pkg_version please update to the known_good spirv-tools pkg_version.
-PKG_VERSION="dd4b663e13c07fea4fbb3f70c1c91c86731099f7"
+PKG_VERSION="0cfe9e7219148716dfd30b37f4d21753f098707a"
PKG_LICENSE="Apache-2.0"
PKG_SITE="https://github.com/KhronosGroup/SPIRV-Tools"
PKG_URL="https://github.com/KhronosGroup/SPIRV-Tools/archive/${PKG_VERSION}.tar.gz"
-PKG_DEPENDS_HOST=""
+PKG_DEPENDS_HOST="toolchain:host"
+PKG_DEPENDS_UNPACK="spirv-headers"
PKG_LONGDESC="The SPIR-V Tools project provides an API and commands for processing SPIR-V modules."
-PKG_TOOLCHAIN="manual"
+
+post_unpack() {
+ mkdir -p ${PKG_BUILD}/external/spirv-headers
+ tar --strip-components=1 \
+ -xf "${SOURCES}/spirv-headers/spirv-headers-$(get_pkg_version spirv-headers).tar.gz" \
+ -C "${PKG_BUILD}/external/spirv-headers"
+}
diff --git a/packages/hardware/quirks/devices/AYANEO AIR/bin/fancontrol b/packages/hardware/quirks/devices/AYANEO AIR/bin/fancontrol
index c6e2debe1..8a3b6ddf1 100755
--- a/packages/hardware/quirks/devices/AYANEO AIR/bin/fancontrol
+++ b/packages/hardware/quirks/devices/AYANEO AIR/bin/fancontrol
@@ -73,7 +73,7 @@ declare -a HISTORY
while true
do
INDEX=0
- CPU_TEMP=$(printf "%.0f" $(awk '{ total += $1; count++ } END { print total/count }' ${DEVICE_TEMP_SENSOR}))
+ CPU_TEMP=$(awk '{total += $1; count++} END {printf "%d", total/count}' ${DEVICE_TEMP_SENSOR})
### Keep a rolling history of CPU temps.
HISTORY+=(${CPU_TEMP})
diff --git a/packages/hardware/quirks/devices/AYANEO AYANEO 2S/bin/fancontrol b/packages/hardware/quirks/devices/AYANEO AYANEO 2S/bin/fancontrol
index 6faa6e15e..4b3a9acfb 100755
--- a/packages/hardware/quirks/devices/AYANEO AYANEO 2S/bin/fancontrol
+++ b/packages/hardware/quirks/devices/AYANEO AYANEO 2S/bin/fancontrol
@@ -61,7 +61,7 @@ set_control 1 >/dev/null 2>&1
while true
do
INDEX=0
- CPU_TEMP=$(printf "%.0f" $(awk '{ total += $1; count++ } END { print total/count }' ${DEVICE_TEMP_SENSOR}))
+ CPU_TEMP=$(awk '{total += $1; count++} END {printf "%d", total/count}' ${DEVICE_TEMP_SENSOR})
$DEBUG && log $0 "CPU TEMP: ${CPU_TEMP}" 2>/dev/null
for TEMP in "${TEMPS[@]}"
do
diff --git a/packages/hardware/quirks/devices/Anbernic RG ARC-D/001-device_config b/packages/hardware/quirks/devices/Anbernic RG ARC-D/001-device_config
old mode 100644
new mode 100755
index 54c030c92..76eb095b5
--- a/packages/hardware/quirks/devices/Anbernic RG ARC-D/001-device_config
+++ b/packages/hardware/quirks/devices/Anbernic RG ARC-D/001-device_config
@@ -4,8 +4,6 @@
cat </storage/.config/profile.d/001-device_config
DEVICE_FAKE_JACKSENSE="false"
-DEVICE_POWER_LED="false"
-DEVICE_BRIGHTNESS="128"
DEVICE_BATTERY_LED_STATUS="true"
DEVICE_HAS_TOUCHSCREEN="true"
EOF
diff --git a/packages/hardware/quirks/devices/Anbernic RG ARC-D/040-display b/packages/hardware/quirks/devices/Anbernic RG ARC-D/040-display
deleted file mode 100755
index 107ddab32..000000000
--- a/packages/hardware/quirks/devices/Anbernic RG ARC-D/040-display
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/bin/bash
-# SPDX-License-Identifier: GPL-2.0
-# Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS)
-
-. /etc/profile
-
-# Configure default contrast saturation and hue values
-for PROPERTY in brightness contrast saturation hue
-do
- MYVAL=$(get_setting display.${PROPERTY})
- if [ -z "${MYVAL}" ]
- then
- MYVAL=$(drm_tool list | sed -n '/Connector: 133/,$p' | awk '/'${PROPERTY}'/ {print $5}')
- fi
- paneladj ${PROPERTY} ${MYVAL}
-done
diff --git a/packages/hardware/quirks/devices/Anbernic RG ARC-D/050-game-configs b/packages/hardware/quirks/devices/Anbernic RG ARC-D/050-game-configs
index 95dee1421..003c6ea50 100755
--- a/packages/hardware/quirks/devices/Anbernic RG ARC-D/050-game-configs
+++ b/packages/hardware/quirks/devices/Anbernic RG ARC-D/050-game-configs
@@ -60,3 +60,64 @@ if [ -d "${REMAP_DIR}" ]; then
fi
done
fi
+
+# hypseus aka daphne
+if [ ! -d "/storage/.config/game/configs/hypseus/" ]; then
+ mkdir -p /storage/.config/game/configs/hypseus/
+fi
+if [ ! -f "/storage/.config/game/configs/hypseus/hypinput.ini" ]; then
+cat </storage/.config/game/configs/hypseus/hypinput.ini
+# Sample hypinput.ini
+# All key options listed
+# Arcade layout by OzFalcon
+# Hypseus uses SDL2 Keycodes
+# KEY_BUTTON3 Turns scoreboard on/off
+# SWITCH = Key1 Key2 Joy
+# Start + Select will exit game
+##################################
+#Button Info for ARC-D running Rocknix by Morfious
+#
+#Controller Button ID# Game Function
+#Dpad Up 13 Dpad Up 1073741906 SDLK_UP BUTTON_DPAD_UP
+#Dpad Down 14 Dpad Down 1073741905 SDLK_DOWN BUTTON_DPAD_DOWN
+#Dpad Left 15 Dpad Left 1073741904 SDLK_LEFT BUTTON_DPAD_LEFT
+#Dpad Right 16 Dpad Right 1073741903 SDLK_RIGHT BUTTON_DPAD_RIGHT
+#Select 11 Insert Coin
+#Start 12 Start Game
+#A Button 2 Button 1
+#B Button 1 Button 2
+#C Button 3 Toggle Scoreboard
+#X Button 4 Skill 1
+#Y Button 5 Skill 2
+#Z Button 6 Skill 3
+#L1 7 Pause
+#R1 8 Test Mode
+#L2 9 Reset
+#R2 10 Service Mode
+
+[KEYBOARD]
+KEY_UP = 1073741906 SDLK_UP 13
+KEY_DOWN = 1073741905 SDLK_DOWN 14
+KEY_LEFT = 1073741904 SDLK_LEFT 15
+KEY_RIGHT = 1073741903 SDLK_RIGHT 16
+KEY_COIN1 = SDLK_5 0 11
+KEY_COIN2 = SDLK_6 0 0
+KEY_START1 = SDLK_1 0 12
+KEY_START2 = SDLK_2 0 0
+KEY_BUTTON1 = SDLK_LCTRL 0 2
+KEY_BUTTON2 = SDLK_LALT 0 1
+KEY_BUTTON3 = SDLK_SPACE 0 3
+KEY_SKILL1 = SDLK_LSHIFT 0 4
+KEY_SKILL2 = SDLK_z 0 5
+KEY_SKILL3 = SDLK_x 0 6
+KEY_SERVICE = SDLK_9 0 10
+KEY_TEST = SDLK_F2 SDLK_F4 8
+KEY_RESET = SDLK_0 0 9
+KEY_SCREENSHOT = SDLK_F12 0 0
+KEY_QUIT = SDLK_ESCAPE 0 0
+KEY_PAUSE = SDLK_p 0 7
+KEY_CONSOLE = SDLK_BACKSLASH 0 0
+KEY_TILT = SDLK_t 0 0
+END
+EOF
+fi
diff --git a/packages/hardware/quirks/devices/Anbernic RG ARC-S/001-device_config b/packages/hardware/quirks/devices/Anbernic RG ARC-S/001-device_config
index b57d9e7bf..ef9f43808 100755
--- a/packages/hardware/quirks/devices/Anbernic RG ARC-S/001-device_config
+++ b/packages/hardware/quirks/devices/Anbernic RG ARC-S/001-device_config
@@ -3,9 +3,6 @@
# Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS)
cat </storage/.config/profile.d/001-device_config
-DEVICE_FAKE_JACKSENSE="true"
-DEVICE_POWER_LED="true"
-DEVICE_HEADPHONE_DEV="/dev/input/by-path/platform-rk817-sound-event"
-DEVICE_BRIGHTNESS="70"
-
+DEVICE_FAKE_JACKSENSE="false"
+DEVICE_BATTERY_LED_STATUS="true"
EOF
diff --git a/packages/hardware/quirks/devices/Anbernic RG ARC-S/020-gpios b/packages/hardware/quirks/devices/Anbernic RG ARC-S/020-gpios
deleted file mode 100755
index 608532312..000000000
--- a/packages/hardware/quirks/devices/Anbernic RG ARC-S/020-gpios
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/bin/sh
-# SPDX-License-Identifier: GPL-2.0
-# Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS)
-
-cat </storage/.config/profile.d/020-gpios
-DEVICE_WIFI="5"
-DEVICE_LED="77"
-DEVICE_PWM_MOTOR="pwmchip1"
-DEVICE_JACK="86"
-EOF
-
-. /storage/.config/profile.d/020-gpios
-# Enable PWM for rumble and turn rumble off during startup.
-echo 0 > /sys/class/pwm/${DEVICE_PWM_MOTOR}/export
-echo 1000000 > /sys/class/pwm/${DEVICE_PWM_MOTOR}/pwm0/period
-echo 1 > /sys/class/pwm/${DEVICE_PWM_MOTOR}/pwm0/enable
-echo 1000000 > /sys/class/pwm/${DEVICE_PWM_MOTOR}/pwm0/duty_cycle
diff --git a/packages/hardware/quirks/devices/Anbernic RG ARC-S/020-gpios b/packages/hardware/quirks/devices/Anbernic RG ARC-S/020-gpios
new file mode 120000
index 000000000..f892ec22a
--- /dev/null
+++ b/packages/hardware/quirks/devices/Anbernic RG ARC-S/020-gpios
@@ -0,0 +1 @@
+../Anbernic RG ARC-D/020-gpios
\ No newline at end of file
diff --git a/packages/hardware/quirks/devices/Anbernic RG ARC-S/040-display b/packages/hardware/quirks/devices/Anbernic RG ARC-S/040-display
deleted file mode 100755
index 107ddab32..000000000
--- a/packages/hardware/quirks/devices/Anbernic RG ARC-S/040-display
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/bin/bash
-# SPDX-License-Identifier: GPL-2.0
-# Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS)
-
-. /etc/profile
-
-# Configure default contrast saturation and hue values
-for PROPERTY in brightness contrast saturation hue
-do
- MYVAL=$(get_setting display.${PROPERTY})
- if [ -z "${MYVAL}" ]
- then
- MYVAL=$(drm_tool list | sed -n '/Connector: 133/,$p' | awk '/'${PROPERTY}'/ {print $5}')
- fi
- paneladj ${PROPERTY} ${MYVAL}
-done
diff --git a/packages/hardware/quirks/devices/Anbernic RG351M/001-device_config b/packages/hardware/quirks/devices/Anbernic RG351M/001-device_config
index 58e91c023..2c81da255 100755
--- a/packages/hardware/quirks/devices/Anbernic RG351M/001-device_config
+++ b/packages/hardware/quirks/devices/Anbernic RG351M/001-device_config
@@ -4,10 +4,8 @@
cat </storage/.config/profile.d/001-device_config
# Device Features
-DEVICE_POWER_LED="false"
DEVICE_PLAYBACK_PATH_SPK="HP"
DEVICE_PLAYBACK_PATH_HP="SPK"
-DEVICE_BRIGHTNESS="128"
DEVICE_VOLUME="100"
DEVICE_BATTERY_LED_STATUS="true"
DEVICE_PWR_LED_GPIO="77"
diff --git a/packages/hardware/quirks/devices/Anbernic RG351V/001-device_config b/packages/hardware/quirks/devices/Anbernic RG351V/001-device_config
index d52aa6dbd..96d6492db 100755
--- a/packages/hardware/quirks/devices/Anbernic RG351V/001-device_config
+++ b/packages/hardware/quirks/devices/Anbernic RG351V/001-device_config
@@ -4,10 +4,8 @@
cat </storage/.config/profile.d/001-device_config
# Device Features
-DEVICE_POWER_LED="false"
DEVICE_PLAYBACK_PATH_SPK="SPK"
DEVICE_PLAYBACK_PATH_HP="HP"
-DEVICE_BRIGHTNESS="128"
DEVICE_BATTERY_LED_STATUS="true"
DEVICE_PWR_LED_GPIO="77"
DEVICE_TEMP_SENSOR="/sys/devices/virtual/thermal/thermal_zone0/temp"
diff --git a/packages/hardware/quirks/devices/Anbernic RG353P/001-device_config b/packages/hardware/quirks/devices/Anbernic RG353P/001-device_config
index a70f4866a..9cad1d4a8 100644
--- a/packages/hardware/quirks/devices/Anbernic RG353P/001-device_config
+++ b/packages/hardware/quirks/devices/Anbernic RG353P/001-device_config
@@ -4,8 +4,6 @@
cat </storage/.config/profile.d/001-device_config
DEVICE_FAKE_JACKSENSE="false"
-DEVICE_POWER_LED="false"
-DEVICE_BRIGHTNESS="128"
DEVICE_BATTERY_LED_STATUS="false"
DEVICE_HAS_TOUCHSCREEN="true"
EOF
diff --git a/packages/hardware/quirks/devices/Anbernic RG353PS/001-device_config b/packages/hardware/quirks/devices/Anbernic RG353PS/001-device_config
index d39597c79..61c452a2d 100644
--- a/packages/hardware/quirks/devices/Anbernic RG353PS/001-device_config
+++ b/packages/hardware/quirks/devices/Anbernic RG353PS/001-device_config
@@ -4,7 +4,5 @@
cat </storage/.config/profile.d/001-device_config
DEVICE_FAKE_JACKSENSE="false"
-DEVICE_POWER_LED="false"
-DEVICE_BRIGHTNESS="128"
DEVICE_BATTERY_LED_STATUS="false"
EOF
diff --git a/packages/hardware/quirks/devices/Anbernic RG353V/001-device_config b/packages/hardware/quirks/devices/Anbernic RG353V/001-device_config
index 474f33e1e..0755a3f1c 100755
--- a/packages/hardware/quirks/devices/Anbernic RG353V/001-device_config
+++ b/packages/hardware/quirks/devices/Anbernic RG353V/001-device_config
@@ -4,9 +4,7 @@
cat </storage/.config/profile.d/001-device_config
DEVICE_FAKE_JACKSENSE="true"
-DEVICE_POWER_LED="true"
DEVICE_HEADPHONE_DEV="/dev/input/by-path/platform-rk817-sound-event"
-DEVICE_BRIGHTNESS="70"
DEVICE_HAS_TOUCHSCREEN="true"
EOF
diff --git a/packages/hardware/quirks/devices/Anbernic RG353VS/001-device_config b/packages/hardware/quirks/devices/Anbernic RG353VS/001-device_config
index b57d9e7bf..75a4a2360 100755
--- a/packages/hardware/quirks/devices/Anbernic RG353VS/001-device_config
+++ b/packages/hardware/quirks/devices/Anbernic RG353VS/001-device_config
@@ -4,8 +4,6 @@
cat </storage/.config/profile.d/001-device_config
DEVICE_FAKE_JACKSENSE="true"
-DEVICE_POWER_LED="true"
DEVICE_HEADPHONE_DEV="/dev/input/by-path/platform-rk817-sound-event"
-DEVICE_BRIGHTNESS="70"
EOF
diff --git a/packages/hardware/quirks/devices/Anbernic RG503/001-device_config b/packages/hardware/quirks/devices/Anbernic RG503/001-device_config
index 81ba3c028..127677e36 100755
--- a/packages/hardware/quirks/devices/Anbernic RG503/001-device_config
+++ b/packages/hardware/quirks/devices/Anbernic RG503/001-device_config
@@ -4,6 +4,4 @@
cat </storage/.config/profile.d/001-device_config
DEVICE_FAKE_JACKSENSE="false"
-DEVICE_POWER_LED="false"
-DEVICE_BRIGHTNESS="153"
EOF
diff --git a/packages/hardware/quirks/devices/Anbernic RG552/001-device_config b/packages/hardware/quirks/devices/Anbernic RG552/001-device_config
index af86e5cf9..d2500c0f5 100755
--- a/packages/hardware/quirks/devices/Anbernic RG552/001-device_config
+++ b/packages/hardware/quirks/devices/Anbernic RG552/001-device_config
@@ -8,7 +8,6 @@ DEVICE_FAKE_JACKSENSE="true"
DEVICE_AUDIO_MIXER="DAC"
DEVICE_PLAYBACK_PATH_SPK="1*"
DEVICE_PLAYBACK_PATH_HP="0*"
-DEVICE_BRIGHTNESS="128"
DEVICE_HEADPHONE_DEV="/dev/input/by-path/platform-es8316-sound-event"
DEVICE_HAS_HDMI="true"
DEVICE_BATTERY_LED_STATUS="true"
diff --git a/packages/hardware/quirks/devices/Anbernic RG552/bin/fancontrol b/packages/hardware/quirks/devices/Anbernic RG552/bin/fancontrol
index 54316ae22..0b50005cf 100755
--- a/packages/hardware/quirks/devices/Anbernic RG552/bin/fancontrol
+++ b/packages/hardware/quirks/devices/Anbernic RG552/bin/fancontrol
@@ -62,7 +62,7 @@ set_control 1 >/dev/null 2>&1
while true
do
INDEX=0
- CPU_TEMP=$(printf "%.0f" $(awk '{ total += $1; count++ } END { print total/count }' ${DEVICE_TEMP_SENSOR}))
+ CPU_TEMP=$(awk '{total += $1; count++} END {printf "%d", total/count}' ${DEVICE_TEMP_SENSOR})
$DEBUG && log $0 "CPU TEMP: ${CPU_TEMP}" 2>/dev/null
for TEMP in "${TEMPS[@]}"
do
diff --git a/packages/hardware/quirks/devices/Game Console R33S/001-device_config b/packages/hardware/quirks/devices/Game Console R33S/001-device_config
index 24664d56c..daf508520 100755
--- a/packages/hardware/quirks/devices/Game Console R33S/001-device_config
+++ b/packages/hardware/quirks/devices/Game Console R33S/001-device_config
@@ -4,10 +4,8 @@
cat </storage/.config/profile.d/001-device_config
# Device Features
-DEVICE_POWER_LED="false"
DEVICE_PLAYBACK_PATH_SPK="HP"
DEVICE_PLAYBACK_PATH_HP="SPK"
-DEVICE_BRIGHTNESS="128"
DEVICE_PWR_LED_GPIO="77"
DEVICE_TEMP_SENSOR="/sys/devices/virtual/thermal/thermal_zone0/temp"
DEVICE_DTB_SWITCH="true"
diff --git a/packages/hardware/quirks/devices/Game Console R36S/001-device_config b/packages/hardware/quirks/devices/Game Console R36S/001-device_config
index 24664d56c..daf508520 100755
--- a/packages/hardware/quirks/devices/Game Console R36S/001-device_config
+++ b/packages/hardware/quirks/devices/Game Console R36S/001-device_config
@@ -4,10 +4,8 @@
cat </storage/.config/profile.d/001-device_config
# Device Features
-DEVICE_POWER_LED="false"
DEVICE_PLAYBACK_PATH_SPK="HP"
DEVICE_PLAYBACK_PATH_HP="SPK"
-DEVICE_BRIGHTNESS="128"
DEVICE_PWR_LED_GPIO="77"
DEVICE_TEMP_SENSOR="/sys/devices/virtual/thermal/thermal_zone0/temp"
DEVICE_DTB_SWITCH="true"
diff --git a/packages/hardware/quirks/devices/Game Console R36S/110-retroarch-joypad b/packages/hardware/quirks/devices/Game Console R36S/110-retroarch-joypad
index 2ee2be90a..f98b32702 100755
--- a/packages/hardware/quirks/devices/Game Console R36S/110-retroarch-joypad
+++ b/packages/hardware/quirks/devices/Game Console R36S/110-retroarch-joypad
@@ -32,8 +32,8 @@ input_r_x_plus_axis = "+2"
input_r_x_minus_axis = "-2"
input_r_y_plus_axis = "+3"
input_r_y_minus_axis = "-3"
-input_enable_hotkey_btn = "12"
-input_exit_emulator_btn = "13"
+input_enable_hotkey_btn = "8"
+input_exit_emulator_btn = "9"
input_menu_toggle_btn = "2"
input_fps_toggle_btn = "3"
input_load_state_btn = "4"
diff --git a/packages/hardware/quirks/devices/GameForce ACE/001-device_config b/packages/hardware/quirks/devices/GameForce ACE/001-device_config
index 6d43256f5..a9a1520dc 100755
--- a/packages/hardware/quirks/devices/GameForce ACE/001-device_config
+++ b/packages/hardware/quirks/devices/GameForce ACE/001-device_config
@@ -8,7 +8,6 @@ cat </storage/.config/profile.d/001-device_config
#DEVICE_AUDIO_MIXER="DAC"
#DEVICE_PLAYBACK_PATH_SPK="1*"
#DEVICE_PLAYBACK_PATH_HP="0*"
-DEVICE_BRIGHTNESS="128"
#DEVICE_HEADPHONE_DEV="/dev/input/by-path/platform-es8316-sound-event"
DEVICE_HAS_TOUCHSCREEN="true"
#DEVICE_BATTERY_LED_STATUS="true"
diff --git a/packages/hardware/quirks/devices/GameForce ACE/bin/fancontrol b/packages/hardware/quirks/devices/GameForce ACE/bin/fancontrol
index 563cc33e2..0056edb43 100755
--- a/packages/hardware/quirks/devices/GameForce ACE/bin/fancontrol
+++ b/packages/hardware/quirks/devices/GameForce ACE/bin/fancontrol
@@ -74,7 +74,7 @@ declare -a HISTORY
while true
do
INDEX=0
- CPU_TEMP=$(printf "%.0f" $(awk '{ total += $1; count++ } END { print total/count }' ${DEVICE_TEMP_SENSOR}))
+ CPU_TEMP=$(awk '{total += $1; count++} END {printf "%d", total/count}' ${DEVICE_TEMP_SENSOR})
### Keep a rolling history of CPU temps.
HISTORY+=(${CPU_TEMP})
diff --git a/packages/hardware/quirks/devices/Gameforce CHI/001-device_config b/packages/hardware/quirks/devices/Gameforce CHI/001-device_config
index 58e91c023..2c81da255 100755
--- a/packages/hardware/quirks/devices/Gameforce CHI/001-device_config
+++ b/packages/hardware/quirks/devices/Gameforce CHI/001-device_config
@@ -4,10 +4,8 @@
cat </storage/.config/profile.d/001-device_config
# Device Features
-DEVICE_POWER_LED="false"
DEVICE_PLAYBACK_PATH_SPK="HP"
DEVICE_PLAYBACK_PATH_HP="SPK"
-DEVICE_BRIGHTNESS="128"
DEVICE_VOLUME="100"
DEVICE_BATTERY_LED_STATUS="true"
DEVICE_PWR_LED_GPIO="77"
diff --git a/packages/hardware/quirks/devices/Hardkernel ODROID-GO-Ultra/001-device_config b/packages/hardware/quirks/devices/Hardkernel ODROID-GO-Ultra/001-device_config
index 144b17542..dffa839f5 100755
--- a/packages/hardware/quirks/devices/Hardkernel ODROID-GO-Ultra/001-device_config
+++ b/packages/hardware/quirks/devices/Hardkernel ODROID-GO-Ultra/001-device_config
@@ -5,7 +5,5 @@
cat </storage/.config/profile.d/001-device_config
DEVICE_FAKE_JACKSENSE="true"
DEVICE_HEADPHONE_DEV="/dev/input/by-path/platform-gpio-keys-event"
-DEVICE_POWER_LED="false"
-DEVICE_BRIGHTNESS="128"
DEVICE_TEMP_SENSOR=("/sys/devices/virtual/thermal/thermal_zone0/temp" "/sys/devices/virtual/thermal/thermal_zone3/temp" "/sys/devices/virtual/thermal/thermal_zone2/temp")
EOF
diff --git a/packages/hardware/quirks/devices/Hardkernel ODROID-N2/001-device_config b/packages/hardware/quirks/devices/Hardkernel ODROID-N2/001-device_config
index 87d0e1313..738f0bc51 100755
--- a/packages/hardware/quirks/devices/Hardkernel ODROID-N2/001-device_config
+++ b/packages/hardware/quirks/devices/Hardkernel ODROID-N2/001-device_config
@@ -5,7 +5,5 @@
cat </storage/.config/profile.d/001-device_config
# Device Features
DEVICE_VOLUME="100"
-DEVICE_POWER_LED="false"
-DEVICE_BRIGHTNESS="hardware"
DEVICE_TEMP_SENSOR=("/sys/devices/virtual/thermal/thermal_zone0/temp" "/sys/devices/virtual/thermal/thermal_zone3/temp" "/sys/devices/virtual/thermal/thermal_zone2/temp")
EOF
diff --git a/packages/hardware/quirks/devices/MagicX XU10/001-device_config b/packages/hardware/quirks/devices/MagicX XU10/001-device_config
index 1303393a1..00efc770c 100755
--- a/packages/hardware/quirks/devices/MagicX XU10/001-device_config
+++ b/packages/hardware/quirks/devices/MagicX XU10/001-device_config
@@ -4,10 +4,8 @@
cat </storage/.config/profile.d/001-device_config
# Device Features
-DEVICE_POWER_LED="false"
DEVICE_PLAYBACK_PATH_SPK="SPK"
DEVICE_PLAYBACK_PATH_HP="HP"
-DEVICE_BRIGHTNESS="128"
DEVICE_BATTERY_LED_STATUS="true"
DEVICE_TEMP_SENSOR="/sys/devices/virtual/thermal/thermal_zone0/temp"
EOF
diff --git a/packages/hardware/quirks/devices/ODROID-GO Advance Black Edition/001-device_config b/packages/hardware/quirks/devices/ODROID-GO Advance Black Edition/001-device_config
index ebbbce0ab..24e0afa1f 100755
--- a/packages/hardware/quirks/devices/ODROID-GO Advance Black Edition/001-device_config
+++ b/packages/hardware/quirks/devices/ODROID-GO Advance Black Edition/001-device_config
@@ -4,10 +4,8 @@
cat </storage/.config/profile.d/001-device_config
# Device Features
-DEVICE_POWER_LED="false"
DEVICE_SW_HP_SWITCH="true"
DEVICE_PLAYBACK_PATH_SPK="SPK"
DEVICE_PLAYBACK_PATH_HP="HP"
-DEVICE_BRIGHTNESS="128"
DEVICE_MMC_EJECT="false"
EOF
diff --git a/packages/hardware/quirks/devices/ODROID-GO Advance/001-device_config b/packages/hardware/quirks/devices/ODROID-GO Advance/001-device_config
index c78bcd396..574664674 100755
--- a/packages/hardware/quirks/devices/ODROID-GO Advance/001-device_config
+++ b/packages/hardware/quirks/devices/ODROID-GO Advance/001-device_config
@@ -4,11 +4,9 @@
cat </storage/.config/profile.d/001-device_config
# Device Features
-DEVICE_POWER_LED="false"
DEVICE_PLAYBACK_PATH_SPK="SPK"
DEVICE_PLAYBACK_PATH_HP="HP"
DEVICE_SW_HP_SWITCH="true"
-DEVICE_BRIGHTNESS="128"
DEVICE_VOLUME="100"
DEVICE_BATTERY_LED_STATUS="true"
DEVICE_PWR_LED_GPIO="77"
diff --git a/packages/hardware/quirks/devices/ODROID-GO Super/001-device_config b/packages/hardware/quirks/devices/ODROID-GO Super/001-device_config
index 14497ebdc..b7ba91a58 100755
--- a/packages/hardware/quirks/devices/ODROID-GO Super/001-device_config
+++ b/packages/hardware/quirks/devices/ODROID-GO Super/001-device_config
@@ -4,9 +4,7 @@
cat </storage/.config/profile.d/001-device_config
# Device Features
-DEVICE_POWER_LED="false"
DEVICE_PLAYBACK_PATH_SPK="SPK"
DEVICE_PLAYBACK_PATH_HP="HP"
-DEVICE_BRIGHTNESS="128"
DEVICE_MMC_EJECT="false"
EOF
diff --git a/packages/hardware/quirks/devices/Powkiddy RGB20S/001-device_config b/packages/hardware/quirks/devices/Powkiddy RGB20S/001-device_config
index 5e350b0f5..5512ae4a2 100755
--- a/packages/hardware/quirks/devices/Powkiddy RGB20S/001-device_config
+++ b/packages/hardware/quirks/devices/Powkiddy RGB20S/001-device_config
@@ -4,10 +4,8 @@
cat </storage/.config/profile.d/001-device_config
# Device Features
-DEVICE_POWER_LED="false"
DEVICE_PLAYBACK_PATH_SPK="HP"
DEVICE_PLAYBACK_PATH_HP="SPK"
-DEVICE_BRIGHTNESS="128"
DEVICE_PWR_LED_GPIO="77"
DEVICE_TEMP_SENSOR="/sys/devices/virtual/thermal/thermal_zone0/temp"
EOF
diff --git a/packages/hardware/quirks/devices/Powkiddy x55/001-device_config b/packages/hardware/quirks/devices/Powkiddy x55/001-device_config
index 626cd0953..d2daab3db 100755
--- a/packages/hardware/quirks/devices/Powkiddy x55/001-device_config
+++ b/packages/hardware/quirks/devices/Powkiddy x55/001-device_config
@@ -4,7 +4,5 @@
cat </storage/.config/profile.d/001-device_config
DEVICE_FAKE_JACKSENSE="true"
-DEVICE_POWER_LED="false"
-DEVICE_BRIGHTNESS="128"
DEVICE_BATTERY_LED_STATUS="true"
EOF
diff --git a/packages/hardware/quirks/devices/Retro Lite CM5/001-device_config b/packages/hardware/quirks/devices/Retro Lite CM5/001-device_config
index 3dc868479..bf25515bf 100755
--- a/packages/hardware/quirks/devices/Retro Lite CM5/001-device_config
+++ b/packages/hardware/quirks/devices/Retro Lite CM5/001-device_config
@@ -8,7 +8,6 @@ cat </storage/.config/profile.d/001-device_config
#DEVICE_AUDIO_MIXER="DAC"
#DEVICE_PLAYBACK_PATH_SPK="1*"
#DEVICE_PLAYBACK_PATH_HP="0*"
-DEVICE_BRIGHTNESS="128"
#DEVICE_HEADPHONE_DEV="/dev/input/by-path/platform-wm8960-sound-event"
DEVICE_HAS_TOUCHSCREEN="true"
#DEVICE_BATTERY_LED_STATUS="true"
diff --git a/packages/hardware/quirks/platforms/AMD64/001-device_config b/packages/hardware/quirks/platforms/AMD64/001-device_config
index f8067f367..ee6943d83 100755
--- a/packages/hardware/quirks/platforms/AMD64/001-device_config
+++ b/packages/hardware/quirks/platforms/AMD64/001-device_config
@@ -6,7 +6,6 @@
### Set the default device configuration
cat </storage/.config/profile.d/001-device_config
-DEVICE_BRIGHTNESS="hardware"
EOF
CPU_INFO=$(awk 'BEGIN {FS=":"} /model name/ {print $2; exit}' /proc/cpuinfo)
diff --git a/packages/hardware/quirks/platforms/H700/001-device_config b/packages/hardware/quirks/platforms/H700/001-device_config
new file mode 100644
index 000000000..763737fa3
--- /dev/null
+++ b/packages/hardware/quirks/platforms/H700/001-device_config
@@ -0,0 +1,8 @@
+#!/bin/bash
+# SPDX-License-Identifier: Apache-2.0
+# Copyright (C) 2024-present ROCKNIX (https://github.com/ROCKNIX)
+
+cat </storage/.config/profile.d/001-device_config
+DEVICE_BRIGHTNESS="128"
+DEVICE_TEMP_SENSOR="/sys/devices/virtual/thermal/thermal_zone2/temp"
+EOF
diff --git a/packages/hardware/quirks/platforms/H700/002-turbo-mode_config b/packages/hardware/quirks/platforms/H700/002-turbo-mode_config
new file mode 100755
index 000000000..6883d58da
--- /dev/null
+++ b/packages/hardware/quirks/platforms/H700/002-turbo-mode_config
@@ -0,0 +1,7 @@
+#!/bin/bash
+# SPDX-License-Identifier: GPL-2.0
+# Copyright (C) 2024 JELOS (https://github.com/JustEnoughLinuxOS)
+
+cat </storage/.config/profile.d/002-turbo-mode_config
+DEVICE_TURBO_MODE="false"
+EOF
diff --git a/packages/hardware/quirks/platforms/H700/010-governors b/packages/hardware/quirks/platforms/H700/010-governors
new file mode 100755
index 000000000..45631b7be
--- /dev/null
+++ b/packages/hardware/quirks/platforms/H700/010-governors
@@ -0,0 +1,8 @@
+#!/bin/sh
+# SPDX-License-Identifier: GPL-2.0
+# Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS)
+
+cat </storage/.config/profile.d/010-governors
+CPU_FREQ=("/sys/devices/system/cpu/cpufreq/policy0")
+GPU_FREQ=("/sys/devices/platform/soc/1800000.gpu/devfreq/1800000.gpu")
+EOF
diff --git a/packages/hardware/quirks/platforms/H700/060-game_settings b/packages/hardware/quirks/platforms/H700/060-game_settings
new file mode 100755
index 000000000..c38bd3449
--- /dev/null
+++ b/packages/hardware/quirks/platforms/H700/060-game_settings
@@ -0,0 +1,15 @@
+#!/bin/sh
+# SPDX-License-Identifier: GPL-2.0
+# Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS)
+
+. /etc/profile.d/001-functions
+
+### Set the default performance scaling mode for a few systems.
+for SYSTEM in dreamcast n64 ports psp psx saturn gba pcfx cdi
+do
+ CPU_SETTING=$(get_setting ${SYSTEM}.cpugovernor)
+ if [ -z "${CPU_SETTING}" ]
+ then
+ set_setting ${SYSTEM}.cpugovernor performance
+ fi
+done
diff --git a/packages/hardware/quirks/platforms/H700/091-ui_shader b/packages/hardware/quirks/platforms/H700/091-ui_shader
new file mode 100755
index 000000000..7eab4389f
--- /dev/null
+++ b/packages/hardware/quirks/platforms/H700/091-ui_shader
@@ -0,0 +1,8 @@
+#!/bin/sh
+# SPDX-License-Identifier: GPL-2.0
+# Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS)
+
+### Set the default device configuration
+cat </storage/.config/profile.d/091-ui_shader
+UI_SHADER="glslp"
+EOF
diff --git a/packages/hardware/quirks/platforms/H700/sleep.d/post/002-freq b/packages/hardware/quirks/platforms/H700/sleep.d/post/002-freq
new file mode 100755
index 000000000..cfc35a100
--- /dev/null
+++ b/packages/hardware/quirks/platforms/H700/sleep.d/post/002-freq
@@ -0,0 +1,23 @@
+#!/bin/sh
+# SPDX-License-Identifier: GPL-2.0
+# Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS)
+
+### Restore previous governors before going to sleep
+
+. /etc/profile
+
+### Grab the old governors.
+OLD_CPU_FREQ=$(get_setting "sleep.cpugovernor")
+if [ ! -n "${OLD_CPU_FREQ}" ]; then
+ OLD_CPU_FREQ="ondemand"
+fi
+
+#OLD_GPU_FREQ=$(get_setting "sleep.gpugovernor")
+#if [ ! -n "${OLD_GPU_FREQ}" ]; then
+# OLD_GPU_FREQ="simple_ondemand"
+#fi
+
+# Restore old governors.
+set_cpu_gov "${OLD_CPU_FREQ}"
+#set_dmc_gov "${OLD_CPU_FREQ}"
+#set_gpu_gov "${OLD_GPU_FREQ}"
diff --git a/packages/hardware/quirks/platforms/H700/sleep.d/pre/002-freq b/packages/hardware/quirks/platforms/H700/sleep.d/pre/002-freq
new file mode 100755
index 000000000..e23ad5f35
--- /dev/null
+++ b/packages/hardware/quirks/platforms/H700/sleep.d/pre/002-freq
@@ -0,0 +1,19 @@
+#!/bin/sh
+# SPDX-License-Identifier: GPL-2.0
+# Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS)
+
+# Store current freq governors and set governors to powersave.
+
+. /etc/profile
+
+### Get the current cpu and gpu governor, save for when the device wakes from sleep.
+CUR_CPU_FREQ="$(cat ${CPU_FREQ}/scaling_governor)"
+#CUR_GPU_FREQ="$(cat ${GPU_FREQ}/governor)"
+
+set_setting sleep.cpugovernor "${CUR_CPU_FREQ}"
+#set_setting sleep.gpugovernor "${CUR_GPU_FREQ}"
+
+### Set all governors to powersave
+set_cpu_gov powersave
+#set_dmc_gov powersave
+#set_gpu_gov powersave
diff --git a/packages/hardware/quirks/platforms/RK3566/001-device_config b/packages/hardware/quirks/platforms/RK3566/001-device_config
index bc5588143..107e2f30d 100755
--- a/packages/hardware/quirks/platforms/RK3566/001-device_config
+++ b/packages/hardware/quirks/platforms/RK3566/001-device_config
@@ -4,6 +4,4 @@
cat </storage/.config/profile.d/001-device_config
DEVICE_FAKE_JACKSENSE="false"
-DEVICE_POWER_LED="false"
-DEVICE_BRIGHTNESS="128"
EOF
diff --git a/packages/hardware/quirks/platforms/RK3588/001-device_config b/packages/hardware/quirks/platforms/RK3588/001-device_config
index 026782af2..900dfb7e6 100755
--- a/packages/hardware/quirks/platforms/RK3588/001-device_config
+++ b/packages/hardware/quirks/platforms/RK3588/001-device_config
@@ -3,7 +3,6 @@
# Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS)
cat </storage/.config/profile.d/001-device_config
-DEVICE_BRIGHTNESS="128"
DEVICE_TEMP_SENSOR="/sys/devices/virtual/thermal/thermal_zone*/temp"
# Affinity
diff --git a/packages/hardware/quirks/platforms/RK3588/091-ui_shader b/packages/hardware/quirks/platforms/RK3588/091-ui_shader
index d087007a4..7eab4389f 100755
--- a/packages/hardware/quirks/platforms/RK3588/091-ui_shader
+++ b/packages/hardware/quirks/platforms/RK3588/091-ui_shader
@@ -4,5 +4,5 @@
### Set the default device configuration
cat </storage/.config/profile.d/091-ui_shader
-UI_SHADER="slangp"
+UI_SHADER="glslp"
EOF
diff --git a/packages/hardware/quirks/platforms/S922X/001-device_config b/packages/hardware/quirks/platforms/S922X/001-device_config
index cce007fdd..7c0c63753 100755
--- a/packages/hardware/quirks/platforms/S922X/001-device_config
+++ b/packages/hardware/quirks/platforms/S922X/001-device_config
@@ -4,7 +4,5 @@
cat </storage/.config/profile.d/001-device_config
# Device Features
-DEVICE_POWER_LED="false"
-DEVICE_BRIGHTNESS="128"
DEVICE_TEMP_SENSOR=("/sys/devices/virtual/thermal/thermal_zone0/temp" "/sys/devices/virtual/thermal/thermal_zone3/temp" "/sys/devices/virtual/thermal/thermal_zone2/temp")
EOF
diff --git a/packages/hardware/quirks/platforms/S922X/090-ui_service b/packages/hardware/quirks/platforms/S922X/090-ui_service
index bc7013fc9..4c9e45dae 100755
--- a/packages/hardware/quirks/platforms/S922X/090-ui_service
+++ b/packages/hardware/quirks/platforms/S922X/090-ui_service
@@ -3,6 +3,12 @@
# Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS)
### Set the default device configuration
-cat </storage/.config/profile.d/090-ui_service
+if [ -f "/usr/lib/systemd/system/sway.service" ]; then
+ cat </storage/.config/profile.d/090-ui_service
+UI_SERVICE="sway.service essway.service"
+EOF
+else
+ cat </storage/.config/profile.d/090-ui_service
UI_SERVICE="weston.service"
EOF
+fi
\ No newline at end of file
diff --git a/packages/hardware/quirks/profile.d/999-export b/packages/hardware/quirks/profile.d/999-export
index 9b56fb76f..b95fee3c9 100755
--- a/packages/hardware/quirks/profile.d/999-export
+++ b/packages/hardware/quirks/profile.d/999-export
@@ -12,7 +12,6 @@ export SLOW_CORES \
GPU_FREQ \
DEVICE_AUDIO_MIXER \
DEVICE_BASE_TDP \
- DEVICE_BRIGHTNESS \
DEVICE_BATTERY_LED_STATUS \
DEVICE_DTB_SWITCH \
DEVICE_FAKE_JACKSENSE \
@@ -36,7 +35,6 @@ export SLOW_CORES \
DEVICE_PLAYBACK_PATH \
DEVICE_PLAYBACK_PATH_HP \
DEVICE_PLAYBACK_PATH_SPK \
- DEVICE_POWER_LED \
DEVICE_PWM_FAN \
DEVICE_PWM_MOTOR \
DEVICE_ROTATED_SDL \
diff --git a/packages/hardware/quirks/system.d/led-poweroff.service b/packages/hardware/quirks/system.d/led-poweroff.service
old mode 100755
new mode 100644
diff --git a/packages/kernel/drivers/dtbocfg/package.mk b/packages/kernel/drivers/dtbocfg/package.mk
new file mode 100644
index 000000000..070942c4e
--- /dev/null
+++ b/packages/kernel/drivers/dtbocfg/package.mk
@@ -0,0 +1,22 @@
+# SPDX-License-Identifier: GPL-2.0
+# Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS)
+
+PKG_NAME="dtbocfg"
+PKG_VERSION="0.1.0"
+PKG_LICENSE="BSD"
+PKG_SITE="https://github.com/ikwzm/dtbocfg"
+PKG_URL="${PKG_SITE}/archive/refs/tags/v${PKG_VERSION}.tar.gz"
+PKG_LONGDESC="Device Tree Blob Overlay Configuration File System"
+PKG_DEPENDS_TARGET="toolchain linux"
+PKG_NEED_UNPACK="${LINUX_DEPENDS}"
+PKG_TOOLCHAIN="manual"
+PKG_IS_KERNEL_PKG="yes"
+
+make_target() {
+ kernel_make KERNEL_SRC=$(kernel_path) -C ${PKG_BUILD}
+}
+
+makeinstall_target() {
+ mkdir -p ${INSTALL}/$(get_full_module_dir)/${PKG_NAME}
+ cp dtbocfg.ko ${INSTALL}/$(get_full_module_dir)/${PKG_NAME}/
+}
diff --git a/packages/kernel/drivers/generic-dsi/firmware/elida-kd35t133.desc b/packages/kernel/drivers/generic-dsi/firmware/elida-kd35t133.desc
deleted file mode 100644
index ae52db9e8..000000000
--- a/packages/kernel/drivers/generic-dsi/firmware/elida-kd35t133.desc
+++ /dev/null
@@ -1,25 +0,0 @@
-# size=width_mm,height_mm delays=prepare,reset,init,enable,disable,unprepare
-G size=42,82 delays=2,1,20,120,50,20 format=rgb888 lanes=1 flags=0xe03 # DSI params
-
-M clock=14118 horizontal=320,130,4,130 vertical=480,2,1,2
-M clock=15545 horizontal=320,130,4,130 vertical=480,2,1,2
-M clock=16286 horizontal=320,130,4,130 vertical=480,2,1,2
-M clock=16917 horizontal=320,130,4,130 vertical=480,2,1,2
-M clock=16976 horizontal=320,130,4,130 vertical=480,2,1,2 default=1
-M clock=17022 horizontal=320,130,4,130 vertical=480,2,1,2
-M clock=21375 horizontal=320,130,4,130 vertical=480,2,1,2
-
-I dcs=e0 data=001318040f063a564d030a06303e0f # positive gamma
-I dcs=e1 data=00131801110638344d060d0b31370f # negative gamma
-I dcs=c0 data=1817 # power control 1
-I dcs=c1 data=41 # power control 2
-I dcs=c5 data=001a80 # vcom
-I dcs=36 data=48 # MIPI_DCS_SET_ADDRESS_MODE
-I dcs=3a data=55 # MIPI_DCS_SET_PIXEL_FORMAT
-I dcs=b0 data=00 # inetrface mode
-I dcs=b1 data=a0 # framerate
-I dcs=b4 data=02 # display inversion
-I dcs=b6 data=2002 # display function
-I dcs=e9 data=00 # image function
-I dcs=f7 data=a9512c82 # adjust control
-I dcs=21 data= # MIPI_DCS_ENTER_INVERT_MODE
diff --git a/packages/kernel/drivers/generic-dsi/firmware/r36s-panel-orig.desc b/packages/kernel/drivers/generic-dsi/firmware/r36s-panel-orig.desc
deleted file mode 100644
index 206beb1e7..000000000
--- a/packages/kernel/drivers/generic-dsi/firmware/r36s-panel-orig.desc
+++ /dev/null
@@ -1,28 +0,0 @@
-G size=52,70 delays=2,1,20,120,20 format=rgb888 lanes=4 flags=0xe03
-
-M clock=50000 horizontal=640,450,70,450 vertical=480,17,5,13 default=1
-
-I seq=b9f11283 # orig_cmd=0x39
-I seq=b1000000da80 # orig_cmd=0x39
-I seq=b2001370 # orig_cmd=0x39
-I seq=b31010282803ff00000000 # orig_cmd=0x39
-I seq=b480 # orig_cmd=0x15
-I seq=b50a0a # orig_cmd=0x15
-I seq=b67f7f # orig_cmd=0x15
-I seq=b82662f063 # orig_cmd=0x39
-I seq=ba338105f90e0e2000000000000000442500900a0000014f01000037 # orig_cmd=0x39
-I seq=bc47 # orig_cmd=0x15
-I seq=bf021100 # orig_cmd=0x39
-I seq=c0737350500000125000 # orig_cmd=0x39
-I seq=c153c0323277e1dddd77773333 # orig_cmd=0x39
-I seq=c68200bfff00ff # orig_cmd=0x39
-I seq=c7b8000a000000 # orig_cmd=0x39
-I seq=c810401e02 # orig_cmd=0x39
-I seq=cc0b # orig_cmd=0x15
-I seq=e000070d37353f4144060c0d0f111012141a00070d37353f4144060c0d0f111012141a # orig_cmd=0x39
-I seq=e307070b0b0b0b00000000ff00c010 # orig_cmd=0x39
-I seq=e9c810020000b0b11131232880b0b127080004020000000004020000008888ba60240888888888888888ba713518888888888800000001000000000000000000 # orig_cmd=0x39
-I seq=ea970a820203070000000000008188ba17538888888888888088ba0642888888888888230000028000000000000000000000000000000000000000000000 # orig_cmd=0x39
-I seq=efffff01 # orig_cmd=0x39
-I seq=11 wait=200 # orig_cmd=0x5
-I seq=29 wait=50 # orig_cmd=0x5
diff --git a/packages/kernel/drivers/generic-dsi/firmware/r36s-panel1.desc b/packages/kernel/drivers/generic-dsi/firmware/r36s-panel1.desc
deleted file mode 100644
index 8fd668ab4..000000000
--- a/packages/kernel/drivers/generic-dsi/firmware/r36s-panel1.desc
+++ /dev/null
@@ -1,31 +0,0 @@
-G size=52,70 delays=20,150,20,120,20 format=rgb888 lanes=4 flags=0xe03
-
-M clock=29000 horizontal=640,80,20,80 vertical=480,20,4,12 default=1
-M clock=29000 horizontal=640,80,20,80 vertical=480,20,4,12
-M clock=29000 horizontal=640,80,20,80 vertical=480,20,4,12
-
-I seq=e0abba # orig_cmd=0x39
-I seq=e1baab # orig_cmd=0x39
-I seq=b1100147ff # orig_cmd=0x39
-I seq=b20c0804505014 # orig_cmd=0x39
-I seq=b35612e0 # orig_cmd=0x39
-I seq=b4333004 # orig_cmd=0x39
-I seq=b6b0000010001000 # orig_cmd=0x39
-I seq=b80512294948 # orig_cmd=0x39
-I seq=b97f635245423439243e3d3c59464d3e3d3022007f635245423439243e3d3c59464d3e3d302200 # orig_cmd=0x39
-I seq=c03210123422222222900490040f0000c1 # orig_cmd=0x39
-I seq=c1129f8e89900490045440 # orig_cmd=0x39
-I seq=c2770908890811223344871800 # orig_cmd=0x39
-I seq=c3884a24241e1f120c0e10040624240202020202020202 # orig_cmd=0x39
-I seq=c4090b24241e1f130d0f11050724240202020202020202 # orig_cmd=0x39
-I seq=c64655 # orig_cmd=0x39
-I seq=c8120031423416 # orig_cmd=0x39
-I seq=ca1843 # orig_cmd=0x39
-I seq=cd0e64642c166b06b3 # orig_cmd=0x39
-I seq=d2e32b3808 # orig_cmd=0x39
-I seq=d40001000e04440810000000 # orig_cmd=0x39
-I seq=e68009ffffffffffff # orig_cmd=0x39
-I seq=f012032000ff # orig_cmd=0x39
-I seq=f303 # orig_cmd=0x15
-I seq=11 wait=200 # orig_cmd=0x5
-I seq=29 wait=20 # orig_cmd=0x5
diff --git a/packages/kernel/drivers/generic-dsi/firmware/r36s-panel2.desc b/packages/kernel/drivers/generic-dsi/firmware/r36s-panel2.desc
deleted file mode 100644
index f12e743f7..000000000
--- a/packages/kernel/drivers/generic-dsi/firmware/r36s-panel2.desc
+++ /dev/null
@@ -1,193 +0,0 @@
-G size=52,70 delays=20,150,20,120,20 format=rgb888 lanes=4 flags=0xe03
-
-M clock=29000 horizontal=640,46,2,44 vertical=480,16,2,14 default=1
-M clock=29000 horizontal=640,46,2,44 vertical=480,16,2,14
-M clock=29000 horizontal=640,46,2,44 vertical=480,16,2,14
-
-I seq=ff30 # orig_cmd=0x15
-I seq=ff52 # orig_cmd=0x15
-I seq=ff01 # orig_cmd=0x15
-I seq=e300 # orig_cmd=0x15
-I seq=400a # orig_cmd=0x15
-I seq=0340 # orig_cmd=0x15
-I seq=0400 # orig_cmd=0x15
-I seq=0503 # orig_cmd=0x15
-I seq=2412 # orig_cmd=0x15
-I seq=251e # orig_cmd=0x15
-I seq=266f # orig_cmd=0x15
-I seq=2752 # orig_cmd=0x15
-I seq=2867 # orig_cmd=0x15
-I seq=2901 # orig_cmd=0x15
-I seq=2adf # orig_cmd=0x15
-I seq=379c # orig_cmd=0x15
-I seq=38a7 # orig_cmd=0x15
-I seq=3953 # orig_cmd=0x15
-I seq=4400 # orig_cmd=0x15
-I seq=493c # orig_cmd=0x15
-I seq=59fe # orig_cmd=0x15
-I seq=5c00 # orig_cmd=0x15
-I seq=8020 # orig_cmd=0x15
-I seq=9177 # orig_cmd=0x15
-I seq=9277 # orig_cmd=0x15
-I seq=a055 # orig_cmd=0x15
-I seq=a150 # orig_cmd=0x15
-I seq=a49c # orig_cmd=0x15
-I seq=a702 # orig_cmd=0x15
-I seq=a801 # orig_cmd=0x15
-I seq=a921 # orig_cmd=0x15
-I seq=aafc # orig_cmd=0x15
-I seq=ab28 # orig_cmd=0x15
-I seq=ac06 # orig_cmd=0x15
-I seq=ad06 # orig_cmd=0x15
-I seq=ae06 # orig_cmd=0x15
-I seq=af03 # orig_cmd=0x15
-I seq=b008 # orig_cmd=0x15
-I seq=b126 # orig_cmd=0x15
-I seq=b228 # orig_cmd=0x15
-I seq=b328 # orig_cmd=0x15
-I seq=b433 # orig_cmd=0x15
-I seq=b508 # orig_cmd=0x15
-I seq=b626 # orig_cmd=0x15
-I seq=b708 # orig_cmd=0x15
-I seq=b826 # orig_cmd=0x15
-I seq=ff30 # orig_cmd=0x15
-I seq=ff52 # orig_cmd=0x15
-I seq=ff02 # orig_cmd=0x15
-I seq=b00b # orig_cmd=0x15
-I seq=b116 # orig_cmd=0x15
-I seq=b217 # orig_cmd=0x15
-I seq=b32c # orig_cmd=0x15
-I seq=b432 # orig_cmd=0x15
-I seq=b53b # orig_cmd=0x15
-I seq=b629 # orig_cmd=0x15
-I seq=b740 # orig_cmd=0x15
-I seq=b80d # orig_cmd=0x15
-I seq=b905 # orig_cmd=0x15
-I seq=ba12 # orig_cmd=0x15
-I seq=bb10 # orig_cmd=0x15
-I seq=bc12 # orig_cmd=0x15
-I seq=bd15 # orig_cmd=0x15
-I seq=be19 # orig_cmd=0x15
-I seq=bf0e # orig_cmd=0x15
-I seq=c016 # orig_cmd=0x15
-I seq=c10a # orig_cmd=0x15
-I seq=d00c # orig_cmd=0x15
-I seq=d117 # orig_cmd=0x15
-I seq=d214 # orig_cmd=0x15
-I seq=d32e # orig_cmd=0x15
-I seq=d432 # orig_cmd=0x15
-I seq=d53c # orig_cmd=0x15
-I seq=d622 # orig_cmd=0x15
-I seq=d73d # orig_cmd=0x15
-I seq=d80d # orig_cmd=0x15
-I seq=d907 # orig_cmd=0x15
-I seq=da13 # orig_cmd=0x15
-I seq=db13 # orig_cmd=0x15
-I seq=dc11 # orig_cmd=0x15
-I seq=dd15 # orig_cmd=0x15
-I seq=de19 # orig_cmd=0x15
-I seq=df10 # orig_cmd=0x15
-I seq=e017 # orig_cmd=0x15
-I seq=e10a # orig_cmd=0x15
-I seq=ff30 # orig_cmd=0x15
-I seq=ff52 # orig_cmd=0x15
-I seq=ff03 # orig_cmd=0x15
-I seq=002a # orig_cmd=0x15
-I seq=012a # orig_cmd=0x15
-I seq=022a # orig_cmd=0x15
-I seq=032a # orig_cmd=0x15
-I seq=0461 # orig_cmd=0x15
-I seq=0580 # orig_cmd=0x15
-I seq=06c7 # orig_cmd=0x15
-I seq=0701 # orig_cmd=0x15
-I seq=0882 # orig_cmd=0x15
-I seq=0983 # orig_cmd=0x15
-I seq=302a # orig_cmd=0x15
-I seq=312a # orig_cmd=0x15
-I seq=322a # orig_cmd=0x15
-I seq=332a # orig_cmd=0x15
-I seq=34a1 # orig_cmd=0x15
-I seq=35c5 # orig_cmd=0x15
-I seq=3680 # orig_cmd=0x15
-I seq=3723 # orig_cmd=0x15
-I seq=4082 # orig_cmd=0x15
-I seq=4183 # orig_cmd=0x15
-I seq=4280 # orig_cmd=0x15
-I seq=4381 # orig_cmd=0x15
-I seq=4455 # orig_cmd=0x15
-I seq=45e6 # orig_cmd=0x15
-I seq=46e5 # orig_cmd=0x15
-I seq=4755 # orig_cmd=0x15
-I seq=48e8 # orig_cmd=0x15
-I seq=49e7 # orig_cmd=0x15
-I seq=5002 # orig_cmd=0x15
-I seq=5101 # orig_cmd=0x15
-I seq=5204 # orig_cmd=0x15
-I seq=5303 # orig_cmd=0x15
-I seq=5455 # orig_cmd=0x15
-I seq=55ea # orig_cmd=0x15
-I seq=56e9 # orig_cmd=0x15
-I seq=5755 # orig_cmd=0x15
-I seq=58ec # orig_cmd=0x15
-I seq=59eb # orig_cmd=0x15
-I seq=7e02 # orig_cmd=0x15
-I seq=7f80 # orig_cmd=0x15
-I seq=e05a # orig_cmd=0x15
-I seq=b100 # orig_cmd=0x15
-I seq=b40e # orig_cmd=0x15
-I seq=b50f # orig_cmd=0x15
-I seq=b604 # orig_cmd=0x15
-I seq=b707 # orig_cmd=0x15
-I seq=b806 # orig_cmd=0x15
-I seq=b905 # orig_cmd=0x15
-I seq=ba0f # orig_cmd=0x15
-I seq=c700 # orig_cmd=0x15
-I seq=ca0e # orig_cmd=0x15
-I seq=cb0f # orig_cmd=0x15
-I seq=cc04 # orig_cmd=0x15
-I seq=cd07 # orig_cmd=0x15
-I seq=ce06 # orig_cmd=0x15
-I seq=cf05 # orig_cmd=0x15
-I seq=d00f # orig_cmd=0x15
-I seq=810f # orig_cmd=0x15
-I seq=840e # orig_cmd=0x15
-I seq=850f # orig_cmd=0x15
-I seq=8607 # orig_cmd=0x15
-I seq=8704 # orig_cmd=0x15
-I seq=8805 # orig_cmd=0x15
-I seq=8906 # orig_cmd=0x15
-I seq=8a00 # orig_cmd=0x15
-I seq=970f # orig_cmd=0x15
-I seq=9a0e # orig_cmd=0x15
-I seq=9b0f # orig_cmd=0x15
-I seq=9c07 # orig_cmd=0x15
-I seq=9d04 # orig_cmd=0x15
-I seq=9e05 # orig_cmd=0x15
-I seq=9f06 # orig_cmd=0x15
-I seq=a000 # orig_cmd=0x15
-I seq=ff30 # orig_cmd=0x15
-I seq=ff52 # orig_cmd=0x15
-I seq=ff02 # orig_cmd=0x15
-I seq=0101 # orig_cmd=0x15
-I seq=02da # orig_cmd=0x15
-I seq=03ba # orig_cmd=0x15
-I seq=04a8 # orig_cmd=0x15
-I seq=059a # orig_cmd=0x15
-I seq=0670 # orig_cmd=0x15
-I seq=07ff # orig_cmd=0x15
-I seq=0891 # orig_cmd=0x15
-I seq=0990 # orig_cmd=0x15
-I seq=0aff # orig_cmd=0x15
-I seq=0b8f # orig_cmd=0x15
-I seq=0c60 # orig_cmd=0x15
-I seq=0d58 # orig_cmd=0x15
-I seq=0e48 # orig_cmd=0x15
-I seq=0f38 # orig_cmd=0x15
-I seq=102b # orig_cmd=0x15
-I seq=ff30 # orig_cmd=0x15
-I seq=ff52 # orig_cmd=0x15
-I seq=ff00 # orig_cmd=0x15
-I seq=3602 # orig_cmd=0x15
-I seq=3a70 # orig_cmd=0x15
-I seq=11 wait=200 # orig_cmd=0x5
-I seq=29 wait=20 # orig_cmd=0x5
diff --git a/packages/kernel/drivers/generic-dsi/firmware/r36s-panel3.desc b/packages/kernel/drivers/generic-dsi/firmware/r36s-panel3.desc
deleted file mode 100644
index 855189ac9..000000000
--- a/packages/kernel/drivers/generic-dsi/firmware/r36s-panel3.desc
+++ /dev/null
@@ -1,194 +0,0 @@
-G size=52,70 delays=20,150,20,120,20 format=rgb888 lanes=4 flags=0xe03
-
-M clock=29000 horizontal=640,46,2,44 vertical=480,16,2,14 default=1
-M clock=29000 horizontal=640,46,2,44 vertical=480,16,2,14
-M clock=29000 horizontal=640,46,2,44 vertical=480,16,2,14
-
-I seq=ff30 # orig_cmd=0x15
-I seq=ff52 # orig_cmd=0x15
-I seq=ff01 # orig_cmd=0x15
-I seq=e300 # orig_cmd=0x15
-I seq=0400 # orig_cmd=0x15
-I seq=0503 # orig_cmd=0x15
-I seq=2412 # orig_cmd=0x15
-I seq=251e # orig_cmd=0x15
-I seq=266f # orig_cmd=0x15
-I seq=2752 # orig_cmd=0x15
-I seq=2867 # orig_cmd=0x15
-I seq=2901 # orig_cmd=0x15
-I seq=2adf # orig_cmd=0x15
-I seq=379c # orig_cmd=0x15
-I seq=38a7 # orig_cmd=0x15
-I seq=3953 # orig_cmd=0x15
-I seq=4400 # orig_cmd=0x15
-I seq=493c # orig_cmd=0x15
-I seq=59fe # orig_cmd=0x15
-I seq=5c00 # orig_cmd=0x15
-I seq=8020 # orig_cmd=0x15
-I seq=9177 # orig_cmd=0x15
-I seq=9277 # orig_cmd=0x15
-I seq=a055 # orig_cmd=0x15
-I seq=a150 # orig_cmd=0x15
-I seq=a49c # orig_cmd=0x15
-I seq=a702 # orig_cmd=0x15
-I seq=a801 # orig_cmd=0x15
-I seq=a921 # orig_cmd=0x15
-I seq=aafc # orig_cmd=0x15
-I seq=ab28 # orig_cmd=0x15
-I seq=ac06 # orig_cmd=0x15
-I seq=ad06 # orig_cmd=0x15
-I seq=ae06 # orig_cmd=0x15
-I seq=af03 # orig_cmd=0x15
-I seq=b008 # orig_cmd=0x15
-I seq=b126 # orig_cmd=0x15
-I seq=b228 # orig_cmd=0x15
-I seq=b328 # orig_cmd=0x15
-I seq=b433 # orig_cmd=0x15
-I seq=b508 # orig_cmd=0x15
-I seq=b626 # orig_cmd=0x15
-I seq=b708 # orig_cmd=0x15
-I seq=b826 # orig_cmd=0x15
-I seq=c000 # orig_cmd=0x15
-I seq=c100 # orig_cmd=0x15
-I seq=c200 # orig_cmd=0x15
-I seq=ff30 # orig_cmd=0x15
-I seq=ff52 # orig_cmd=0x15
-I seq=ff02 # orig_cmd=0x15
-I seq=b00b # orig_cmd=0x15
-I seq=b116 # orig_cmd=0x15
-I seq=b217 # orig_cmd=0x15
-I seq=b32c # orig_cmd=0x15
-I seq=b432 # orig_cmd=0x15
-I seq=b53b # orig_cmd=0x15
-I seq=b629 # orig_cmd=0x15
-I seq=b740 # orig_cmd=0x15
-I seq=b80d # orig_cmd=0x15
-I seq=b905 # orig_cmd=0x15
-I seq=ba12 # orig_cmd=0x15
-I seq=bb10 # orig_cmd=0x15
-I seq=bc12 # orig_cmd=0x15
-I seq=bd15 # orig_cmd=0x15
-I seq=be19 # orig_cmd=0x15
-I seq=bf0e # orig_cmd=0x15
-I seq=c016 # orig_cmd=0x15
-I seq=c10a # orig_cmd=0x15
-I seq=d00c # orig_cmd=0x15
-I seq=d117 # orig_cmd=0x15
-I seq=d214 # orig_cmd=0x15
-I seq=d32e # orig_cmd=0x15
-I seq=d432 # orig_cmd=0x15
-I seq=d53c # orig_cmd=0x15
-I seq=d622 # orig_cmd=0x15
-I seq=d73d # orig_cmd=0x15
-I seq=d80d # orig_cmd=0x15
-I seq=d907 # orig_cmd=0x15
-I seq=da13 # orig_cmd=0x15
-I seq=db13 # orig_cmd=0x15
-I seq=dc11 # orig_cmd=0x15
-I seq=dd15 # orig_cmd=0x15
-I seq=de19 # orig_cmd=0x15
-I seq=df10 # orig_cmd=0x15
-I seq=e017 # orig_cmd=0x15
-I seq=e10a # orig_cmd=0x15
-I seq=ff30 # orig_cmd=0x15
-I seq=ff52 # orig_cmd=0x15
-I seq=ff03 # orig_cmd=0x15
-I seq=002a # orig_cmd=0x15
-I seq=012a # orig_cmd=0x15
-I seq=022a # orig_cmd=0x15
-I seq=032a # orig_cmd=0x15
-I seq=0461 # orig_cmd=0x15
-I seq=0580 # orig_cmd=0x15
-I seq=06c7 # orig_cmd=0x15
-I seq=0701 # orig_cmd=0x15
-I seq=0882 # orig_cmd=0x15
-I seq=0983 # orig_cmd=0x15
-I seq=302a # orig_cmd=0x15
-I seq=312a # orig_cmd=0x15
-I seq=322a # orig_cmd=0x15
-I seq=332a # orig_cmd=0x15
-I seq=34a1 # orig_cmd=0x15
-I seq=35c5 # orig_cmd=0x15
-I seq=3680 # orig_cmd=0x15
-I seq=3723 # orig_cmd=0x15
-I seq=4082 # orig_cmd=0x15
-I seq=4183 # orig_cmd=0x15
-I seq=4280 # orig_cmd=0x15
-I seq=4381 # orig_cmd=0x15
-I seq=4455 # orig_cmd=0x15
-I seq=45e6 # orig_cmd=0x15
-I seq=46e5 # orig_cmd=0x15
-I seq=4755 # orig_cmd=0x15
-I seq=48e8 # orig_cmd=0x15
-I seq=49e7 # orig_cmd=0x15
-I seq=5002 # orig_cmd=0x15
-I seq=5101 # orig_cmd=0x15
-I seq=5204 # orig_cmd=0x15
-I seq=5303 # orig_cmd=0x15
-I seq=5455 # orig_cmd=0x15
-I seq=55ea # orig_cmd=0x15
-I seq=56e9 # orig_cmd=0x15
-I seq=5755 # orig_cmd=0x15
-I seq=58ec # orig_cmd=0x15
-I seq=59eb # orig_cmd=0x15
-I seq=7e02 # orig_cmd=0x15
-I seq=7f80 # orig_cmd=0x15
-I seq=e05a # orig_cmd=0x15
-I seq=b100 # orig_cmd=0x15
-I seq=b40e # orig_cmd=0x15
-I seq=b50f # orig_cmd=0x15
-I seq=b604 # orig_cmd=0x15
-I seq=b707 # orig_cmd=0x15
-I seq=b806 # orig_cmd=0x15
-I seq=b905 # orig_cmd=0x15
-I seq=ba0f # orig_cmd=0x15
-I seq=c700 # orig_cmd=0x15
-I seq=ca0e # orig_cmd=0x15
-I seq=cb0f # orig_cmd=0x15
-I seq=cc04 # orig_cmd=0x15
-I seq=cd07 # orig_cmd=0x15
-I seq=ce06 # orig_cmd=0x15
-I seq=cf05 # orig_cmd=0x15
-I seq=d00f # orig_cmd=0x15
-I seq=810f # orig_cmd=0x15
-I seq=840e # orig_cmd=0x15
-I seq=850f # orig_cmd=0x15
-I seq=8607 # orig_cmd=0x15
-I seq=8704 # orig_cmd=0x15
-I seq=8805 # orig_cmd=0x15
-I seq=8906 # orig_cmd=0x15
-I seq=8a00 # orig_cmd=0x15
-I seq=970f # orig_cmd=0x15
-I seq=9a0e # orig_cmd=0x15
-I seq=9b0f # orig_cmd=0x15
-I seq=9c07 # orig_cmd=0x15
-I seq=9d04 # orig_cmd=0x15
-I seq=9e05 # orig_cmd=0x15
-I seq=9f06 # orig_cmd=0x15
-I seq=a000 # orig_cmd=0x15
-I seq=ff30 # orig_cmd=0x15
-I seq=ff52 # orig_cmd=0x15
-I seq=ff02 # orig_cmd=0x15
-I seq=0101 # orig_cmd=0x15
-I seq=02da # orig_cmd=0x15
-I seq=03ba # orig_cmd=0x15
-I seq=04a8 # orig_cmd=0x15
-I seq=059a # orig_cmd=0x15
-I seq=0670 # orig_cmd=0x15
-I seq=07ff # orig_cmd=0x15
-I seq=0891 # orig_cmd=0x15
-I seq=0990 # orig_cmd=0x15
-I seq=0aff # orig_cmd=0x15
-I seq=0b8f # orig_cmd=0x15
-I seq=0c60 # orig_cmd=0x15
-I seq=0d58 # orig_cmd=0x15
-I seq=0e48 # orig_cmd=0x15
-I seq=0f38 # orig_cmd=0x15
-I seq=102b # orig_cmd=0x15
-I seq=ff30 # orig_cmd=0x15
-I seq=ff52 # orig_cmd=0x15
-I seq=ff00 # orig_cmd=0x15
-I seq=3602 # orig_cmd=0x15
-I seq=3a70 # orig_cmd=0x15
-I seq=11 wait=200 # orig_cmd=0x5
-I seq=29 wait=20 # orig_cmd=0x5
diff --git a/packages/kernel/drivers/generic-dsi/firmware/r36s-panel4.desc b/packages/kernel/drivers/generic-dsi/firmware/r36s-panel4.desc
deleted file mode 100644
index 62133b955..000000000
--- a/packages/kernel/drivers/generic-dsi/firmware/r36s-panel4.desc
+++ /dev/null
@@ -1,161 +0,0 @@
-G size=52,70 delays=20,150,20,120,20 format=rgb888 lanes=4 flags=0xe03
-
-M clock=29000 horizontal=640,46,2,44 vertical=480,165,2,14 default=1 # 60
-M clock=29000 horizontal=640,46,2,44 vertical=480,296,2,14 # 50
-M clock=29000 horizontal=640,46,2,44 vertical=480,32,2,14 # 75
-
-I seq=ff30 # orig_cmd=0x15
-I seq=ff52 # orig_cmd=0x15
-I seq=ff01 # orig_cmd=0x15
-I seq=e300 # orig_cmd=0x15
-I seq=2510 # orig_cmd=0x15
-I seq=286f # orig_cmd=0x15
-I seq=2901 # orig_cmd=0x15
-I seq=2adf # orig_cmd=0x15
-I seq=2c22 # orig_cmd=0x15
-I seq=c30f # orig_cmd=0x15
-I seq=379c # orig_cmd=0x15
-I seq=38a7 # orig_cmd=0x15
-I seq=3941 # orig_cmd=0x15
-I seq=8020 # orig_cmd=0x15
-I seq=9167 # orig_cmd=0x15
-I seq=9267 # orig_cmd=0x15
-I seq=a055 # orig_cmd=0x15
-I seq=a150 # orig_cmd=0x15
-I seq=a358 # orig_cmd=0x15
-I seq=a49c # orig_cmd=0x15
-I seq=a702 # orig_cmd=0x15
-I seq=a801 # orig_cmd=0x15
-I seq=a921 # orig_cmd=0x15
-I seq=aafc # orig_cmd=0x15
-I seq=ab28 # orig_cmd=0x15
-I seq=ac06 # orig_cmd=0x15
-I seq=ad06 # orig_cmd=0x15
-I seq=ae06 # orig_cmd=0x15
-I seq=af03 # orig_cmd=0x15
-I seq=b008 # orig_cmd=0x15
-I seq=b126 # orig_cmd=0x15
-I seq=b228 # orig_cmd=0x15
-I seq=b328 # orig_cmd=0x15
-I seq=b403 # orig_cmd=0x15
-I seq=b508 # orig_cmd=0x15
-I seq=b626 # orig_cmd=0x15
-I seq=b708 # orig_cmd=0x15
-I seq=b826 # orig_cmd=0x15
-I seq=2c22 # orig_cmd=0x15
-I seq=5c40 # orig_cmd=0x15
-I seq=c000 # orig_cmd=0x15
-I seq=c100 # orig_cmd=0x15
-I seq=c200 # orig_cmd=0x15
-I seq=ff30 # orig_cmd=0x15
-I seq=ff52 # orig_cmd=0x15
-I seq=ff02 # orig_cmd=0x15
-I seq=b002 # orig_cmd=0x15
-I seq=d002 # orig_cmd=0x15
-I seq=b10f # orig_cmd=0x15
-I seq=d110 # orig_cmd=0x15
-I seq=b211 # orig_cmd=0x15
-I seq=d212 # orig_cmd=0x15
-I seq=b332 # orig_cmd=0x15
-I seq=d333 # orig_cmd=0x15
-I seq=b436 # orig_cmd=0x15
-I seq=d436 # orig_cmd=0x15
-I seq=b53c # orig_cmd=0x15
-I seq=d53c # orig_cmd=0x15
-I seq=b620 # orig_cmd=0x15
-I seq=d620 # orig_cmd=0x15
-I seq=b73e # orig_cmd=0x15
-I seq=d73e # orig_cmd=0x15
-I seq=b80e # orig_cmd=0x15
-I seq=d80d # orig_cmd=0x15
-I seq=b905 # orig_cmd=0x15
-I seq=d905 # orig_cmd=0x15
-I seq=ba11 # orig_cmd=0x15
-I seq=da12 # orig_cmd=0x15
-I seq=bb11 # orig_cmd=0x15
-I seq=db11 # orig_cmd=0x15
-I seq=bc13 # orig_cmd=0x15
-I seq=dc14 # orig_cmd=0x15
-I seq=bd14 # orig_cmd=0x15
-I seq=dd14 # orig_cmd=0x15
-I seq=be16 # orig_cmd=0x15
-I seq=de18 # orig_cmd=0x15
-I seq=bf0e # orig_cmd=0x15
-I seq=df0f # orig_cmd=0x15
-I seq=c017 # orig_cmd=0x15
-I seq=e017 # orig_cmd=0x15
-I seq=c107 # orig_cmd=0x15
-I seq=e108 # orig_cmd=0x15
-I seq=ff30 # orig_cmd=0x15
-I seq=ff52 # orig_cmd=0x15
-I seq=ff03 # orig_cmd=0x15
-I seq=088a # orig_cmd=0x15
-I seq=098b # orig_cmd=0x15
-I seq=3000 # orig_cmd=0x15
-I seq=3100 # orig_cmd=0x15
-I seq=3200 # orig_cmd=0x15
-I seq=3300 # orig_cmd=0x15
-I seq=3461 # orig_cmd=0x15
-I seq=35d4 # orig_cmd=0x15
-I seq=3624 # orig_cmd=0x15
-I seq=3703 # orig_cmd=0x15
-I seq=4086 # orig_cmd=0x15
-I seq=4187 # orig_cmd=0x15
-I seq=4284 # orig_cmd=0x15
-I seq=4385 # orig_cmd=0x15
-I seq=4411 # orig_cmd=0x15
-I seq=45de # orig_cmd=0x15
-I seq=46dd # orig_cmd=0x15
-I seq=4711 # orig_cmd=0x15
-I seq=48e0 # orig_cmd=0x15
-I seq=49df # orig_cmd=0x15
-I seq=5082 # orig_cmd=0x15
-I seq=5183 # orig_cmd=0x15
-I seq=5280 # orig_cmd=0x15
-I seq=5381 # orig_cmd=0x15
-I seq=5411 # orig_cmd=0x15
-I seq=55e2 # orig_cmd=0x15
-I seq=56e1 # orig_cmd=0x15
-I seq=5711 # orig_cmd=0x15
-I seq=58e4 # orig_cmd=0x15
-I seq=59e3 # orig_cmd=0x15
-I seq=820f # orig_cmd=0x15
-I seq=830f # orig_cmd=0x15
-I seq=8400 # orig_cmd=0x15
-I seq=850f # orig_cmd=0x15
-I seq=860f # orig_cmd=0x15
-I seq=870e # orig_cmd=0x15
-I seq=880e # orig_cmd=0x15
-I seq=8906 # orig_cmd=0x15
-I seq=8a06 # orig_cmd=0x15
-I seq=8b07 # orig_cmd=0x15
-I seq=8c07 # orig_cmd=0x15
-I seq=8d04 # orig_cmd=0x15
-I seq=8e04 # orig_cmd=0x15
-I seq=8f05 # orig_cmd=0x15
-I seq=9005 # orig_cmd=0x15
-I seq=980f # orig_cmd=0x15
-I seq=990f # orig_cmd=0x15
-I seq=9a00 # orig_cmd=0x15
-I seq=9b0f # orig_cmd=0x15
-I seq=9c0f # orig_cmd=0x15
-I seq=9d0e # orig_cmd=0x15
-I seq=9e0e # orig_cmd=0x15
-I seq=9f06 # orig_cmd=0x15
-I seq=a006 # orig_cmd=0x15
-I seq=a107 # orig_cmd=0x15
-I seq=a207 # orig_cmd=0x15
-I seq=a304 # orig_cmd=0x15
-I seq=a404 # orig_cmd=0x15
-I seq=a505 # orig_cmd=0x15
-I seq=a605 # orig_cmd=0x15
-I seq=e002 # orig_cmd=0x15
-I seq=e152 # orig_cmd=0x15
-I seq=ff30 # orig_cmd=0x15
-I seq=ff52 # orig_cmd=0x15
-I seq=ff00 # orig_cmd=0x15
-I seq=3602 # orig_cmd=0x15
-I seq=1100 # orig_cmd=0x15
-I seq=2900 # orig_cmd=0x15
-I seq=11 wait=200 # orig_cmd=0x5
-I seq=29 wait=20 # orig_cmd=0x5
diff --git a/packages/kernel/drivers/generic-dsi/package.mk b/packages/kernel/drivers/generic-dsi/package.mk
index 4e1956375..b6a86ff89 100644
--- a/packages/kernel/drivers/generic-dsi/package.mk
+++ b/packages/kernel/drivers/generic-dsi/package.mk
@@ -5,22 +5,23 @@ PKG_NAME="generic-dsi"
PKG_VERSION="0.1.0"
PKG_LICENSE="GPL"
PKG_LONGDESC="generic DSI panel driver"
+PKG_DEPENDS_TARGET="pyFDT"
PKG_TOOLCHAIN="manual"
-
### For development. Easier to check if code compiles and works.
### No need for a long build-transfer-reboot-wait-reboot-check loop
make_target() {
- if [ "${I_AM_DEVELOPER}" != "yes" ]; then
- echo "###### you should not build ${PKG_NAME} as package! ######" >&2;
- exit 3;
+ if [ "${I_AM_DEVELOPER}" == "yes" ]; then
+ # rename the driver to not conflict with built-in one
+ sed 's|define DRIVER_NAME .*$|define DRIVER_NAME "panel-generic-dsi-test"|' panel-generic-dsi.c > panel-generic-dsi-test.c
+ echo 'obj-m += panel-generic-dsi-test.o' > ${PKG_BUILD}/Makefile
+ kernel_make -C $(kernel_path) M=${PKG_BUILD}
fi
- echo 'obj-m += panel-generic-dsi.o' > ${PKG_BUILD}/Makefile
- kernel_make -C $(kernel_path) M=${PKG_BUILD}
}
makeinstall_target() {
- :
+ mkdir -p "${INSTALL}/usr/libexec/generic-dsi"
+ cp -v "${PKG_DIR}/scripts/importpanel.py" "${INSTALL}/usr/libexec/generic-dsi/"
}
diff --git a/packages/kernel/drivers/generic-dsi/scripts/desc2dtbo.sh b/packages/kernel/drivers/generic-dsi/scripts/desc2dtbo.sh
deleted file mode 100755
index 64257a865..000000000
--- a/packages/kernel/drivers/generic-dsi/scripts/desc2dtbo.sh
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/bin/bash
-
-desc2dtso() {
-cat << EOH
-/dts-v1/;
-/plugin/;
-
-// compile with \`dtc -@ -I dts -O dtb -o mipi-panel.dtbo elida-kd35t133.dtso\`
-
-/ {
- fragment@0 {
- target-path = "/dsi@ff450000/panel@0";
- __overlay__ {
- compatible = "rocknix,generic-dsi";
- panel_description =
-EOH
-
-sed 's|^\(..*\)$| "\1",|' $1
-
-cat << EOF
- "#END";
- };
- };
-};
-EOF
-}
-
-desc2dtso $1 | dtc -I dts -O dtb
diff --git a/packages/kernel/drivers/generic-dsi/scripts/importpanel.py b/packages/kernel/drivers/generic-dsi/scripts/importpanel.py
new file mode 100755
index 000000000..39f8571f8
--- /dev/null
+++ b/packages/kernel/drivers/generic-dsi/scripts/importpanel.py
@@ -0,0 +1,184 @@
+#!/usr/bin/env python
+
+# https://pypi.org/project/fdt/
+# pip install fdt
+
+import sys, argparse
+import fdt
+import math
+
+parser = argparse.ArgumentParser(description="Extract MIPI panel description from stock dtb to use with panel-mipi-generic driver")
+parser.add_argument("-n", "--name", help="human readable panel name")
+parser.add_argument("-O", "--dtbo", help="store result in ready to use .dtbo file")
+parser.add_argument(metavar="/path/to/vendor.dtb", dest="source_dtb", help="dtb file from stock firmware")
+args = parser.parse_args()
+
+with open(args.source_dtb, "rb") as f:
+ dtb_data = f.read()
+
+acc = []
+
+g_name = f"name='{args.name}' " if args.name else ""
+
+dt = fdt.parse_dtb(dtb_data)
+panel = dt.get_node("dsi@ff450000/panel@0")
+
+w = panel.get_property("width-mm").value
+h = panel.get_property("height-mm").value
+
+delays = [
+ panel.get_property("prepare-delay-ms").value,
+ panel.get_property("reset-delay-ms").value,
+ panel.get_property("init-delay-ms").value,
+ panel.get_property("enable-delay-ms").value,
+ 20 # ready -- no such timeout in legacy dtbs
+ ]
+delays_str = ','.join(map(str, delays))
+
+fmt = ['rgb888', 'rgb666', 'rgb666_packed', 'rgb565'] [panel.get_property("dsi,format").value]
+lanes = panel.get_property("dsi,lanes").value
+flags = panel.get_property("dsi,flags").value
+flags |= 0x0400
+
+# G size=52,70 delays=2,1,20,120,50,20 format=rgb888 lanes=4 flags=0xe03
+acc += [f"G {g_name}size={w},{h} delays={delays_str} format={fmt} lanes={lanes} flags=0x{flags:x}", ""]
+
+
+timings = panel.get_subnode("display-timings")
+native = timings.get_property("native-mode").value
+
+# Collect vendor modes
+modes = {}
+orig_def_fps = None
+for m in timings.nodes:
+ clock = round(m.get_property("clock-frequency").value/1000)
+ hor = [
+ m.get_property("hactive").value,
+ m.get_property("hfront-porch").value,
+ m.get_property("hsync-len").value,
+ m.get_property("hback-porch").value,
+ ]
+ ver = [
+ m.get_property("vactive").value,
+ m.get_property("vfront-porch").value,
+ m.get_property("vsync-len").value,
+ m.get_property("vback-porch").value,
+ ]
+
+ mode = {'clock': clock, 'hor': hor, 'ver': ver}
+ if (m.get_property("phandle").value == native):
+ mode['default'] = True
+
+ htotal = sum(hor)
+ vtotal = sum(ver)
+ fps = clock*1000/(htotal*vtotal)
+
+ if fps not in modes:
+ modes[fps] = mode
+ if (m.get_property("phandle").value == native):
+ modes[fps]['default'] = True
+ orig_def_fps = fps
+
+
+def absfrac(x):
+ return abs(x - round(x))
+
+# Based on vendor modes construct a better set of modes
+# https://tasvideos.org/PlatformFramerates
+# 50, 60 -- generic
+# */1.001 -- NTSC hack with 1001 divisor
+# 50.0070 -- PAL NES https://www.nesdev.org/wiki/Cycle_reference_chart
+# 60.0988 -- NTSC NES
+# 54.8766 -- src/mame/toaplan/twincobr.cpp
+# 57.5 -- src/mame/kaneko/snowbros.cpp
+# 59.7275 -- https://en.wikipedia.org/wiki/Game_Boy
+# 75.47 -- https://ws.nesdev.org/wiki/Display
+def_fps = 60
+if orig_def_fps:
+ def_fps = orig_def_fps
+for targetfps in [orig_def_fps, 50/1.001, 50, 50.0070, 57.5, 59.7275, 60/1.001, 60, 60.0988, 75.47, 90, 120]:
+ if not targetfps:
+ continue
+ warn = ""
+ # nearest fps to base on
+ greaterfps = [fps for fps in modes.keys() if fps >= targetfps]
+ if greaterfps == []:
+ basefps = max(modes.keys())
+ basemode = modes[basefps]
+ clock = None
+ else:
+ # Trust original clock. If real clock differs, maybe make a whitelist or blacklist here
+ basefps = min(greaterfps)
+ basemode = modes[basefps]
+ clock = basemode['clock']
+ hor = basemode['hor'].copy()
+ ver = basemode['ver'].copy()
+ # Assume original totals are minimal for the panel at this clock
+ htotal = sum(hor)
+ vtotal = sum(ver)
+ perfectclock = targetfps*htotal*vtotal/1000
+ if not clock:
+ warn = "(CAN FAIL) "
+ # This may fail, but worth trying. Round up to 10kHz
+ clock = math.ceil(perfectclock/10)*10
+ elif clock > 1.25*perfectclock:
+ # Too much deviation may cause no image
+ clock = math.ceil(perfectclock/10)*10
+
+ maxvtotal = round(vtotal*1.25)
+ # A little bruteforce to find a best totals for target fps
+ # TODO: maybe iterate over some clock values too
+ options = [(absfrac(c*1000/targetfps/vt), c, vt)
+ for vt in range(vtotal, maxvtotal+1)
+ for c in range(clock, round(1.25*perfectclock), 10)
+ if ((c*1000/targetfps/vt) >= htotal) and ((c*1000/targetfps/vt) < htotal*1.05) ]
+ if options == []:
+ acc += [f"# failed to find mode for fps={targetfps:.6f} c={clock} h={htotal} v={vtotal}"]
+ continue
+ (mindev, newclock, newvtotal) = min(options)
+ # construct a new mode with chosen vtotal
+ newhtotal = round(newclock*1000/targetfps/newvtotal)
+ addhtotal = newhtotal - htotal
+ addvtotal = newvtotal - vtotal
+ expectedfps = newclock*1000/newvtotal/newhtotal
+ hor[2] += addhtotal
+ ver[2] += addvtotal
+ hor_str = ','.join(map(str, hor))
+ ver_str = ','.join(map(str, ver))
+ maybe_default = " default=1" if targetfps == def_fps else ""
+ acc += [f"M clock={newclock} horizontal={hor_str} vertical={ver_str}{maybe_default} # {warn}fps={expectedfps:.6f} (target={targetfps:.6f})"]
+
+acc += [""]
+
+iseq0 = panel.get_property("panel-init-sequence")
+if (hasattr(iseq0, 'value')) and (isinstance(iseq0.value, (int))):
+ iseq = b''.join(map(lambda w : w.to_bytes(4, "big"), list(iseq0)))
+else:
+ iseq = bytearray(iseq0)
+
+while iseq:
+ cmd = iseq[0]
+ wait = iseq[1]
+ datalen = iseq[2]
+ iseq = iseq[3:]
+
+ data = iseq[0:datalen]
+ iseq = iseq[datalen:]
+
+ maybe_wait = f" wait={wait}" if (wait) else ""
+ acc += [f"I seq={data.hex()}{maybe_wait} # orig_cmd=0x{cmd:x}"]
+
+if args.dtbo:
+ # remove empty lines as pyfdt does not like them
+ acc = [ l for l in acc if l != '']
+ # create an overlay tree
+ overlay = fdt.FDT()
+ overlay.set_property('target-path', '/dsi@ff450000/panel@0', path='fragment@0')
+ overlay.set_property('compatible', 'rocknix,generic-dsi', path='fragment@0/__overlay__')
+ overlay.set_property('panel_description', acc, path='fragment@0/__overlay__')
+ # store the overlay
+ with open(args.dtbo, "wb") as f:
+ f.write(overlay.to_dtb(version=17))
+else:
+ for l in acc:
+ print(l)
diff --git a/packages/kernel/drivers/generic-dsi/scripts/stock2desc.py b/packages/kernel/drivers/generic-dsi/scripts/stock2desc.py
deleted file mode 100755
index a0c7cd131..000000000
--- a/packages/kernel/drivers/generic-dsi/scripts/stock2desc.py
+++ /dev/null
@@ -1,79 +0,0 @@
-#!/usr/bin/env python
-
-# https://pypi.org/project/fdt/
-# pip install fdt
-
-import sys
-import fdt
-
-with open(sys.argv[1], "rb") as f:
- dtb_data = f.read()
-
-dt = fdt.parse_dtb(dtb_data)
-panel = dt.get_node("dsi@ff450000/panel@0")
-
-w = panel.get_property("width-mm").value
-h = panel.get_property("height-mm").value
-
-delays = [
- panel.get_property("prepare-delay-ms").value,
- panel.get_property("reset-delay-ms").value,
- panel.get_property("init-delay-ms").value,
- panel.get_property("enable-delay-ms").value,
- 20 # ready -- no such timeout in legacy dtbs
- ]
-delays_str = ','.join(map(str, delays))
-
-fmt = ['rgb888', 'rgb666', 'rgb666_packed', 'rgb565'] [panel.get_property("dsi,format").value]
-lanes = panel.get_property("dsi,lanes").value
-flags = panel.get_property("dsi,flags").value
-flags |= 0x0400
-
-# G size=52,70 delays=2,1,20,120,50,20 format=rgb888 lanes=4 flags=0xe03
-print(f"G size={w},{h} delays={delays_str} format={fmt} lanes={lanes} flags=0x{flags:x}\n")
-
-
-timings = panel.get_subnode("display-timings")
-native = timings.get_property("native-mode").value
-# M clock=27500 horizontal=640,50,2,90 vertical=480,18,2,8
-for m in timings.nodes:
- clock = round(m.get_property("clock-frequency").value/1000)
- hor = [
- m.get_property("hactive").value,
- m.get_property("hfront-porch").value,
- m.get_property("hsync-len").value,
- m.get_property("hback-porch").value,
- ]
- hor_str = ','.join(map(str, hor))
- ver = [
- m.get_property("vactive").value,
- m.get_property("vfront-porch").value,
- m.get_property("vsync-len").value,
- m.get_property("vback-porch").value,
- ]
- ver_str = ','.join(map(str, ver))
- maybe_default = ""
- if (m.get_property("phandle").value == native):
- maybe_default = " default=1"
-
- print(f"M clock={clock} horizontal={hor_str} vertical={ver_str} {maybe_default}")
-
-print()
-
-iseq0 = panel.get_property("panel-init-sequence")
-if (hasattr(iseq0, 'value')) and (isinstance(iseq0.value, (int))):
- iseq = b''.join(map(lambda w : w.to_bytes(4, "big"), list(iseq0)))
-else:
- iseq = bytearray(iseq0)
-
-while iseq:
- cmd = iseq[0]
- wait = iseq[1]
- datalen = iseq[2]
- iseq = iseq[3:]
-
- data = iseq[0:datalen]
- iseq = iseq[datalen:]
-
- maybe_wait = f" wait={wait}" if (wait) else ""
- print(f"I seq={data.hex()}{maybe_wait} # orig_cmd=0x{cmd:x}")
diff --git a/packages/kernel/drivers/generic-dsi/sources/panel-generic-dsi.c b/packages/kernel/drivers/generic-dsi/sources/panel-generic-dsi.c
index 774e17df0..7740d10bc 100644
--- a/packages/kernel/drivers/generic-dsi/sources/panel-generic-dsi.c
+++ b/packages/kernel/drivers/generic-dsi/sources/panel-generic-dsi.c
@@ -24,6 +24,8 @@
#include
#include
+#define DRIVER_NAME "panel-generic-dsi"
+
static char *descfile = "";
module_param(descfile,charp,0660);
MODULE_PARM_DESC(descfile, "Panel description filename in firmware dir");
@@ -53,25 +55,26 @@ struct generic_panel_mode {
struct generic_panel_init_seq {
int dcs;
int len;
+ int read;
int wait;
u8 *data;
struct generic_panel_init_seq *link;
};
struct generic_panel {
- struct device *dev;
- struct drm_panel panel;
- struct gpio_desc *reset_gpio;
- struct regulator *vdd;
- struct regulator *iovcc;
+ struct device *dev;
+ struct drm_panel panel;
+ struct gpio_desc *reset_gpio;
+ struct regulator *vdd;
+ struct regulator *iovcc;
struct generic_panel_delays delays;
struct generic_panel_size size;
struct generic_panel_mode *modes;
struct generic_panel_init_seq *iseq;
- enum drm_panel_orientation orientation;
- bool prepared;
+ enum drm_panel_orientation orientation;
+ bool prepared;
};
@@ -84,6 +87,7 @@ int load_init_seq(char *data, struct mipi_dsi_device *dsi, struct generic_panel
int load_globals(char *data, struct mipi_dsi_device *dsi, struct generic_panel *ctx) {
+ struct device *dev = &dsi->dev;
char *param, *val;
while (*data) {
data = next_arg(data, ¶m, &val);
@@ -111,21 +115,21 @@ int load_globals(char *data, struct mipi_dsi_device *dsi, struct generic_panel *
} else if (strcmp(val, "rgb565") == 0) {
dsi->format = MIPI_DSI_FMT_RGB565;
} else {
- dev_info(NULL, "bad format %s\n", val);
+ dev_info(dev, "bad format %s\n", val);
}
} else if (strcmp(param, "lanes") == 0) {
if (get_option(&val, &dsi->lanes) == 0) {
- dev_info(NULL, "bad lanes %s\n", val);
+ dev_info(dev, "bad lanes %s\n", val);
}
} else if (strcmp(param, "flags") == 0) {
int flags;
if (get_option(&val, &flags) == 0) {
- dev_info(NULL, "bad flags %s\n", val);
+ dev_info(dev, "bad flags %s\n", val);
} else {
dsi->mode_flags = flags;
}
} else {
- dev_info(NULL, "unknown param %s\n", param);
+ dev_info(dev, "unknown param %s\n", param);
return -1;
}
}
@@ -134,11 +138,11 @@ int load_globals(char *data, struct mipi_dsi_device *dsi, struct generic_panel *
int load_mode(char *data, struct mipi_dsi_device *dsi, struct generic_panel *ctx) {
- struct device *dev = &dsi->dev;
+ struct device *dev = &dsi->dev;
struct generic_panel_mode *mode;
char *param, *val;
- mode = devm_kzalloc(dev, sizeof(*mode), GFP_KERNEL);
+ mode = devm_kzalloc(dev, sizeof(*mode), GFP_KERNEL);
while (*data) {
data = next_arg(data, ¶m, &val);
@@ -168,13 +172,14 @@ int load_mode(char *data, struct mipi_dsi_device *dsi, struct generic_panel *ctx
}
int load_init_seq(char *data, struct mipi_dsi_device *dsi, struct generic_panel *ctx) {
- struct device *dev = &dsi->dev;
+ struct device *dev = &dsi->dev;
struct generic_panel_init_seq *item;
char *param, *val;
- item = devm_kzalloc(dev, sizeof(*item), GFP_KERNEL);
+ item = devm_kzalloc(dev, sizeof(*item), GFP_KERNEL);
item->dcs = -1;
item->len = -1;
+ item->read = 0;
item->wait = 0;
while (*data) {
@@ -200,6 +205,9 @@ int load_init_seq(char *data, struct mipi_dsi_device *dsi, struct generic_panel
dev_info(dev, "bad seq %s\n", val);
return -1;
}
+ dev_dbg(dev, "loaded seq len=%d %s\n", item->len, val);
+ } else if (strcmp(param, "read") == 0) {
+ item->read = simple_strtoul(val, NULL, 16);
} else if (strcmp(param, "wait") == 0) {
item->wait = simple_strtoul(val, NULL, 16);
} else {
@@ -222,7 +230,7 @@ int load_init_seq(char *data, struct mipi_dsi_device *dsi, struct generic_panel
int load_panel_description_line(char *data, struct mipi_dsi_device *dsi, struct generic_panel *ctx) {
size_t pos;
for (pos = 0; data[pos] != 0; pos ++) {
- if (data[pos] == '#') {
+ if ((data[pos] == '#') || data[pos] == '\n') {
data[pos] = 0;
break;
}
@@ -246,8 +254,13 @@ int load_panel_description_line(char *data, struct mipi_dsi_device *dsi, struct
return 0;
}
-int load_panel_description(struct mipi_dsi_device *dsi, struct generic_panel *ctx) {
- struct device *dev = &dsi->dev;
+int panel_description_foreach(struct mipi_dsi_device *dsi, struct generic_panel *ctx,
+ int (*handle_line)(char*, struct mipi_dsi_device*, struct generic_panel*));
+
+int panel_description_foreach(struct mipi_dsi_device *dsi, struct generic_panel *ctx,
+ int (*handle_line)(char*, struct mipi_dsi_device*, struct generic_panel*))
+{
+ struct device *dev = &dsi->dev;
const struct firmware *fw;
int ret;
@@ -267,7 +280,7 @@ int load_panel_description(struct mipi_dsi_device *dsi, struct generic_panel *ct
if (pos < size) pos++;
data[pos - 1] = 0;
- load_panel_description_line(data, dsi, ctx);
+ handle_line(data, dsi, ctx);
data = &data[pos];
size = size - pos;
@@ -277,7 +290,8 @@ int load_panel_description(struct mipi_dsi_device *dsi, struct generic_panel *ct
release_firmware(fw);
} else {
//ret = of_drm_get_panel_orientation(dev->of_node, &ctx->orientation);
- const char **lines = NULL;
+ const char *line;
+ char * buf;
size_t linescnt, i;
linescnt = of_property_count_strings(dev->of_node, "panel_description");
@@ -286,36 +300,31 @@ int load_panel_description(struct mipi_dsi_device *dsi, struct generic_panel *ct
return -1;
}
- lines = devm_kcalloc(dev, linescnt + 1, sizeof(*lines), GFP_KERNEL);
- if (!lines) {
- dev_err(dev, "failed to allocate description lines\n");
- return -1;
- }
+ for (i = 0; i < linescnt; i++) {
+ ret = of_property_read_string_index(dev->of_node, "panel_description", i, &line);
+ if (ret < 0) {
+ dev_err(dev, "failed to read panel_description[%ld] from device tree %d\n", i, ret);
+ return -1;
+ }
+ buf = kstrdup(line, GFP_KERNEL);
+ if (!buf) {
+ dev_err(dev, "kstrdup(of desc line) failed\n");
+ return -1;
+ }
- linescnt = of_property_read_string_array(dev->of_node, "panel_description", lines, linescnt);
- if (linescnt < 0) {
- dev_err(dev, "failed to read panel_description from device tree %ld\n", linescnt);
- kfree(lines);
- return -1;
+ dev_dbg(dev, "desc[%ld]: %s", i, line);
+ handle_line(buf, dsi, ctx);
+ kfree(buf);
}
+ }
+ return 0;
+}
- size_t buflen = 0;
- for (i = 0; i < linescnt; i++) { buflen = max(buflen, strlen(lines[i])+1); };
- char *buf = devm_kcalloc(dev, buflen, sizeof(char), GFP_KERNEL);
- if (!buf) {
- dev_err(dev, "failed to allocate line buffer\n");
- kfree(lines);
- return -1;
- }
+int load_panel_description(struct mipi_dsi_device *dsi, struct generic_panel *ctx) {
+ int ret;
- for (i = 0; i < linescnt; i++) {
- dev_info(dev, "desc: %s", lines[i]);
- strncpy(buf, lines[i], buflen);
- load_panel_description_line(buf, dsi, ctx);
- }
- kfree(buf);
- kfree(lines);
- }
+ ret = panel_description_foreach(dsi, ctx, &load_panel_description_line);
+ if (ret < 0) { return ret; }
// Reverse iseq
struct generic_panel_init_seq *rev = ctx->iseq, *fwd = NULL, *tmp = NULL;
@@ -334,20 +343,31 @@ int load_panel_description(struct mipi_dsi_device *dsi, struct generic_panel *ct
static inline struct generic_panel *panel_to_generic_panel(struct drm_panel *panel)
{
- return container_of(panel, struct generic_panel, panel);
+ return container_of(panel, struct generic_panel, panel);
}
static int generic_panel_init_sequence(struct generic_panel *ctx)
{
- struct mipi_dsi_device *dsi = to_mipi_dsi_device(ctx->dev);
- struct device *dev = ctx->dev;
+ struct mipi_dsi_device *dsi = to_mipi_dsi_device(ctx->dev);
+ struct device *dev = ctx->dev;
int ret;
struct generic_panel_init_seq *iseq = ctx->iseq;
while (iseq) {
- if (iseq->dcs == DCS_PSEUDO_CMD_SEQ) {
+ if (iseq->read > 0) {
+ u8 readbuf[8];
+ if (iseq->read > 8) { iseq->read = 8; }
+ ret = mipi_dsi_generic_read(dsi, iseq->data, iseq->len, &readbuf[0], iseq->read);
+ if (ret < 0) {
+ dev_err(ctx->dev, "failed to read: %d\n", ret);
+ } else {
+ for (int i = 0; i < ret; i++) {
+ dev_info(ctx->dev, "read[%d]: %02x\n", i, readbuf[i]);
+ }
+ }
+ } else if (iseq->dcs == DCS_PSEUDO_CMD_SEQ) {
ret = mipi_dsi_dcs_write_buffer(dsi, iseq->data, iseq->len);
- dev_dbg(dev, "iseq %02x len=%d -> %d\n", iseq->dcs, iseq->len, ret);
+ dev_dbg(dev, "iseq 0x%px len=%d -> %d\n", (void*)iseq, iseq->len, ret);
} else {
ret = mipi_dsi_dcs_write(dsi, iseq->dcs, iseq->data, iseq->len);
dev_dbg(dev, "iseq %02x len=%d -> %d\n", iseq->dcs, iseq->len, ret);
@@ -358,103 +378,103 @@ static int generic_panel_init_sequence(struct generic_panel *ctx)
iseq = iseq->link;
}
- dev_info(dev, "Panel init sequence done\n");
+ dev_dbg(dev, "Panel init sequence done\n");
- return 0;
+ return 0;
}
static int generic_panel_unprepare(struct drm_panel *panel)
{
- struct generic_panel *ctx = panel_to_generic_panel(panel);
- struct mipi_dsi_device *dsi = to_mipi_dsi_device(ctx->dev);
- int ret;
+ struct generic_panel *ctx = panel_to_generic_panel(panel);
+ struct mipi_dsi_device *dsi = to_mipi_dsi_device(ctx->dev);
+ int ret;
- if (!ctx->prepared)
- return 0;
+ if (!ctx->prepared)
+ return 0;
- ret = mipi_dsi_dcs_set_display_off(dsi);
- if (ret < 0)
- dev_err(ctx->dev, "failed to set display off: %d\n", ret);
+ ret = mipi_dsi_dcs_set_display_off(dsi);
+ if (ret < 0)
+ dev_err(ctx->dev, "failed to set display off: %d\n", ret);
- ret = mipi_dsi_dcs_enter_sleep_mode(dsi);
- if (ret < 0) {
- dev_err(ctx->dev, "failed to enter sleep mode: %d\n", ret);
- return ret;
- }
+ ret = mipi_dsi_dcs_enter_sleep_mode(dsi);
+ if (ret < 0) {
+ dev_err(ctx->dev, "failed to enter sleep mode: %d\n", ret);
+ return ret;
+ }
- gpiod_set_value_cansleep(ctx->reset_gpio, 1);
+ gpiod_set_value_cansleep(ctx->reset_gpio, 1);
- regulator_disable(ctx->iovcc);
- regulator_disable(ctx->vdd);
+ regulator_disable(ctx->iovcc);
+ regulator_disable(ctx->vdd);
- gpiod_set_value_cansleep(ctx->reset_gpio, 1);
+ gpiod_set_value_cansleep(ctx->reset_gpio, 1);
- ctx->prepared = false;
+ ctx->prepared = false;
- return 0;
+ return 0;
}
static int generic_panel_prepare(struct drm_panel *panel)
{
- struct generic_panel *ctx = panel_to_generic_panel(panel);
- struct mipi_dsi_device *dsi = to_mipi_dsi_device(ctx->dev);
- int ret;
+ struct generic_panel *ctx = panel_to_generic_panel(panel);
+ struct mipi_dsi_device *dsi = to_mipi_dsi_device(ctx->dev);
+ int ret;
- if (ctx->prepared)
- return 0;
+ if (ctx->prepared) {
+ return 0;
+ }
- dev_dbg(ctx->dev, "Resetting the panel\n");
- ret = regulator_enable(ctx->vdd);
- if (ret < 0) {
- dev_err(ctx->dev, "Failed to enable vdd supply: %d\n", ret);
- return ret;
- }
+ ret = regulator_enable(ctx->vdd);
+ if (ret < 0) {
+ dev_err(ctx->dev, "Failed to enable vdd supply: %d\n", ret);
+ return ret;
+ }
- ret = regulator_enable(ctx->iovcc);
- if (ret < 0) {
- dev_err(ctx->dev, "Failed to enable iovcc supply: %d\n", ret);
- goto disable_vdd;
- }
+ ret = regulator_enable(ctx->iovcc);
+ if (ret < 0) {
+ dev_err(ctx->dev, "Failed to enable iovcc supply: %d\n", ret);
+ goto disable_vdd;
+ }
- msleep(ctx->delays.prepare);
+ msleep(ctx->delays.prepare);
- gpiod_set_value_cansleep(ctx->reset_gpio, 1);
- msleep(ctx->delays.reset);
- gpiod_set_value_cansleep(ctx->reset_gpio, 0);
+ gpiod_set_value_cansleep(ctx->reset_gpio, 1);
+ msleep(ctx->delays.reset);
+ gpiod_set_value_cansleep(ctx->reset_gpio, 0);
- msleep(ctx->delays.init);
+ msleep(ctx->delays.init);
- ret = generic_panel_init_sequence(ctx);
- if (ret < 0) {
- dev_err(ctx->dev, "Panel init sequence failed: %d\n", ret);
- goto disable_iovcc;
- }
+ ret = generic_panel_init_sequence(ctx);
+ if (ret < 0) {
+ dev_err(ctx->dev, "Panel init sequence failed: %d\n", ret);
+ goto disable_iovcc;
+ }
- ret = mipi_dsi_dcs_set_display_on(dsi);
- if (ret < 0) {
- dev_err(ctx->dev, "Failed to set display on: %d\n", ret);
- goto disable_iovcc;
- }
+ ret = mipi_dsi_dcs_set_display_on(dsi);
+ if (ret < 0) {
+ dev_err(ctx->dev, "Failed to set display on: %d\n", ret);
+ goto disable_iovcc;
+ }
- ret = mipi_dsi_dcs_exit_sleep_mode(dsi);
- if (ret < 0) {
- dev_err(ctx->dev, "Failed to exit sleep mode: %d\n", ret);
- goto disable_iovcc;
- }
+ ret = mipi_dsi_dcs_exit_sleep_mode(dsi);
+ if (ret < 0) {
+ dev_err(ctx->dev, "Failed to exit sleep mode: %d\n", ret);
+ goto disable_iovcc;
+ }
- msleep(ctx->delays.enable);
+ msleep(ctx->delays.enable);
- //msleep(ctx->delays.ready);
+ //msleep(ctx->delays.ready);
- ctx->prepared = true;
+ ctx->prepared = true;
- return 0;
+ return 0;
disable_iovcc:
- regulator_disable(ctx->iovcc);
+ regulator_disable(ctx->iovcc);
disable_vdd:
- regulator_disable(ctx->vdd);
- return ret;
+ regulator_disable(ctx->vdd);
+ return ret;
}
/* drm_display_mode template without clock as it is variable */
@@ -462,17 +482,17 @@ static const struct drm_display_mode mode_template = { };
static int generic_panel_get_modes(struct drm_panel *panel,
- struct drm_connector *connector)
+ struct drm_connector *connector)
{
- struct generic_panel *ctx = panel_to_generic_panel(panel);
- struct drm_display_mode mode_tmp;
- struct drm_display_mode *mode;
+ struct generic_panel *ctx = panel_to_generic_panel(panel);
+ struct drm_display_mode mode_tmp;
+ struct drm_display_mode *mode;
struct generic_panel_mode *genmode = ctx->modes;
while (genmode) {
dev_dbg(ctx->dev, "gen mode %d %dx%d\n", genmode->clock, genmode->horizontal[1], genmode->vertical[1]);
- mode_tmp = mode_template;
+ mode_tmp = mode_template;
mode_tmp.clock = genmode->clock;
@@ -494,18 +514,18 @@ static int generic_panel_get_modes(struct drm_panel *panel,
// TODO: pass drm flags in mode line if some future panel requires that
mode_tmp.flags = DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC;
- mode = drm_mode_duplicate(connector->dev, &mode_tmp);
- if (!mode) {
- dev_err(ctx->dev, "Failed to add mode %u\n",
- drm_mode_vrefresh(mode));
- return -ENOMEM;
- }
- drm_mode_set_name(mode);
+ mode = drm_mode_duplicate(connector->dev, &mode_tmp);
+ if (!mode) {
+ dev_err(ctx->dev, "Failed to add mode %u\n",
+ drm_mode_vrefresh(mode));
+ return -ENOMEM;
+ }
+ drm_mode_set_name(mode);
- mode->type = DRM_MODE_TYPE_DRIVER;
+ mode->type = DRM_MODE_TYPE_DRIVER;
if (genmode->is_default) { mode->type |= DRM_MODE_TYPE_PREFERRED; };
- drm_mode_probed_add(connector, mode);
+ drm_mode_probed_add(connector, mode);
genmode = genmode->prev;
}
@@ -514,149 +534,149 @@ static int generic_panel_get_modes(struct drm_panel *panel,
connector->display_info.height_mm = ctx->size.height;
- /*
- * TODO: Remove once all drm drivers call
- * drm_connector_set_orientation_from_panel()
- */
- drm_connector_set_panel_orientation(connector, ctx->orientation);
+ /*
+ * TODO: Remove once all drm drivers call
+ * drm_connector_set_orientation_from_panel()
+ */
+ drm_connector_set_panel_orientation(connector, ctx->orientation);
- return 1;
+ return 1;
}
static enum drm_panel_orientation generic_panel_get_orientation(struct drm_panel *panel)
{
- struct generic_panel *ctx = panel_to_generic_panel(panel);
+ struct generic_panel *ctx = panel_to_generic_panel(panel);
- return ctx->orientation;
+ return ctx->orientation;
}
static const struct drm_panel_funcs generic_panel_funcs = {
- .unprepare = generic_panel_unprepare,
- .prepare = generic_panel_prepare,
- .get_modes = generic_panel_get_modes,
- .get_orientation = generic_panel_get_orientation,
+ .unprepare = generic_panel_unprepare,
+ .prepare = generic_panel_prepare,
+ .get_modes = generic_panel_get_modes,
+ .get_orientation = generic_panel_get_orientation,
};
static int generic_panel_probe(struct mipi_dsi_device *dsi)
{
- struct device *dev = &dsi->dev;
- struct generic_panel *ctx;
- int ret;
-
- ctx = devm_kzalloc(dev, sizeof(*ctx), GFP_KERNEL);
- if (!ctx)
- return -ENOMEM;
-
- ctx->reset_gpio = devm_gpiod_get_optional(dev, "reset", GPIOD_OUT_LOW);
- if (IS_ERR(ctx->reset_gpio)) {
- dev_err(dev, "cannot get reset gpio\n");
- return PTR_ERR(ctx->reset_gpio);
- }
-
- ctx->vdd = devm_regulator_get(dev, "vdd");
- if (IS_ERR(ctx->vdd)) {
- ret = PTR_ERR(ctx->vdd);
- if (ret != -EPROBE_DEFER)
- dev_err(dev, "Failed to request vdd regulator: %d\n", ret);
- return ret;
- }
-
- ctx->iovcc = devm_regulator_get(dev, "iovcc");
- if (IS_ERR(ctx->iovcc)) {
- ret = PTR_ERR(ctx->iovcc);
- if (ret != -EPROBE_DEFER)
- dev_err(dev, "Failed to request iovcc regulator: %d\n", ret);
- return ret;
- }
-
- ret = of_drm_get_panel_orientation(dev->of_node, &ctx->orientation);
- if (ret < 0) {
- dev_err(dev, "%pOF: failed to get orientation %d\n", dev->of_node, ret);
- return ret;
- }
-
- mipi_dsi_set_drvdata(dsi, ctx);
-
- ctx->dev = dev;
+ struct device *dev = &dsi->dev;
+ struct generic_panel *ctx;
+ int ret;
+
+ ctx = devm_kzalloc(dev, sizeof(*ctx), GFP_KERNEL);
+ if (!ctx)
+ return -ENOMEM;
+
+ ctx->reset_gpio = devm_gpiod_get_optional(dev, "reset", GPIOD_OUT_LOW);
+ if (IS_ERR(ctx->reset_gpio)) {
+ dev_err(dev, "cannot get reset gpio\n");
+ return PTR_ERR(ctx->reset_gpio);
+ }
+
+ ctx->vdd = devm_regulator_get(dev, "vdd");
+ if (IS_ERR(ctx->vdd)) {
+ ret = PTR_ERR(ctx->vdd);
+ if (ret != -EPROBE_DEFER)
+ dev_err(dev, "Failed to request vdd regulator: %d\n", ret);
+ return ret;
+ }
+
+ ctx->iovcc = devm_regulator_get(dev, "iovcc");
+ if (IS_ERR(ctx->iovcc)) {
+ ret = PTR_ERR(ctx->iovcc);
+ if (ret != -EPROBE_DEFER)
+ dev_err(dev, "Failed to request iovcc regulator: %d\n", ret);
+ return ret;
+ }
+
+ ret = of_drm_get_panel_orientation(dev->of_node, &ctx->orientation);
+ if (ret < 0) {
+ dev_err(dev, "%pOF: failed to get orientation %d\n", dev->of_node, ret);
+ return ret;
+ }
+
+ mipi_dsi_set_drvdata(dsi, ctx);
+
+ ctx->dev = dev;
// Some defaults
- dsi->lanes = 1;
- dsi->format = MIPI_DSI_FMT_RGB888;
- dsi->mode_flags = MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_BURST |
- MIPI_DSI_MODE_LPM | MIPI_DSI_MODE_NO_EOT_PACKET |
- MIPI_DSI_CLOCK_NON_CONTINUOUS;
+ dsi->lanes = 1;
+ dsi->format = MIPI_DSI_FMT_RGB888;
+ dsi->mode_flags = MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_BURST |
+ MIPI_DSI_MODE_LPM | MIPI_DSI_MODE_NO_EOT_PACKET |
+ MIPI_DSI_CLOCK_NON_CONTINUOUS;
ret = load_panel_description(dsi, ctx);
if (ret < 0) {
- dev_err(dev, "Failed to load panel description\n");
- return ret;
+ dev_err(dev, "Failed to load panel description\n");
+ return ret;
}
- mipi_dsi_set_drvdata(dsi, ctx);
+ mipi_dsi_set_drvdata(dsi, ctx);
dev_info(dev, "lanes %d, format %d, mode %lx\n", dsi->lanes, dsi->format, dsi->mode_flags);
- drm_panel_init(&ctx->panel, &dsi->dev, &generic_panel_funcs,
- DRM_MODE_CONNECTOR_DSI);
+ drm_panel_init(&ctx->panel, &dsi->dev, &generic_panel_funcs,
+ DRM_MODE_CONNECTOR_DSI);
- ret = drm_panel_of_backlight(&ctx->panel);
- if (ret)
- return ret;
+ ret = drm_panel_of_backlight(&ctx->panel);
+ if (ret)
+ return ret;
- drm_panel_add(&ctx->panel);
+ drm_panel_add(&ctx->panel);
- ret = mipi_dsi_attach(dsi);
- if (ret < 0) {
- dev_err(dev, "mipi_dsi_attach failed: %d\n", ret);
- drm_panel_remove(&ctx->panel);
- return ret;
- }
+ ret = mipi_dsi_attach(dsi);
+ if (ret < 0) {
+ dev_err(dev, "mipi_dsi_attach failed: %d\n", ret);
+ drm_panel_remove(&ctx->panel);
+ return ret;
+ }
- return 0;
+ return 0;
}
static void generic_panel_shutdown(struct mipi_dsi_device *dsi)
{
- struct generic_panel *ctx = mipi_dsi_get_drvdata(dsi);
- int ret;
+ struct generic_panel *ctx = mipi_dsi_get_drvdata(dsi);
+ int ret;
- ret = drm_panel_unprepare(&ctx->panel);
- if (ret < 0)
- dev_err(&dsi->dev, "Failed to unprepare panel: %d\n", ret);
+ ret = drm_panel_unprepare(&ctx->panel);
+ if (ret < 0)
+ dev_err(&dsi->dev, "Failed to unprepare panel: %d\n", ret);
- ret = drm_panel_disable(&ctx->panel);
- if (ret < 0)
- dev_err(&dsi->dev, "Failed to disable panel: %d\n", ret);
+ ret = drm_panel_disable(&ctx->panel);
+ if (ret < 0)
+ dev_err(&dsi->dev, "Failed to disable panel: %d\n", ret);
}
static void generic_panel_remove(struct mipi_dsi_device *dsi)
{
- struct generic_panel *ctx = mipi_dsi_get_drvdata(dsi);
- int ret;
+ struct generic_panel *ctx = mipi_dsi_get_drvdata(dsi);
+ int ret;
- generic_panel_shutdown(dsi);
+ generic_panel_shutdown(dsi);
- ret = mipi_dsi_detach(dsi);
- if (ret < 0)
- dev_err(&dsi->dev, "Failed to detach from DSI host: %d\n", ret);
+ ret = mipi_dsi_detach(dsi);
+ if (ret < 0)
+ dev_err(&dsi->dev, "Failed to detach from DSI host: %d\n", ret);
- drm_panel_remove(&ctx->panel);
+ drm_panel_remove(&ctx->panel);
}
static const struct of_device_id generic_panel_of_match[] = {
- { .compatible = "rocknix,generic-dsi" },
- { /* sentinel */ }
+ { .compatible = "rocknix,generic-dsi" },
+ { /* sentinel */ }
};
MODULE_DEVICE_TABLE(of, generic_panel_of_match);
static struct mipi_dsi_driver generic_panel_driver = {
- .driver = {
- .name = "panel-generic-dsi",
- .of_match_table = generic_panel_of_match,
- },
- .probe = generic_panel_probe,
- .remove = generic_panel_remove,
- .shutdown = generic_panel_shutdown,
+ .driver = {
+ .name = DRIVER_NAME,
+ .of_match_table = generic_panel_of_match,
+ },
+ .probe = generic_panel_probe,
+ .remove = generic_panel_remove,
+ .shutdown = generic_panel_shutdown,
};
module_mipi_dsi_driver(generic_panel_driver);
diff --git a/packages/kernel/drivers/mali-bifrost/patches/0001-include-vmalloc.patch b/packages/kernel/drivers/mali-bifrost/patches/0001-include-vmalloc.patch
new file mode 100644
index 000000000..bf0bf749e
--- /dev/null
+++ b/packages/kernel/drivers/mali-bifrost/patches/0001-include-vmalloc.patch
@@ -0,0 +1,10 @@
+--- mali-bifrost-r50p0-00eac0/product/kernel/drivers/gpu/arm/midgard/mali_kbase_mem.h.orig 2024-07-04 20:05:04.046675083 +0000
++++ mali-bifrost-r50p0-00eac0/product/kernel/drivers/gpu/arm/midgard/mali_kbase_mem.h 2024-07-04 20:06:12.857657030 +0000
+@@ -43,6 +43,7 @@
+ #include
+ #include
+ #include
++#include
+
+ static inline void kbase_process_page_usage_inc(struct kbase_context *kctx, int pages);
+
diff --git a/packages/kernel/linux/package.mk b/packages/kernel/linux/package.mk
index a7c0d9a01..2db33b01b 100644
--- a/packages/kernel/linux/package.mk
+++ b/packages/kernel/linux/package.mk
@@ -30,11 +30,12 @@ case ${DEVICE} in
PKG_GIT_CLONE_BRANCH="rk-5.10-rkr6"
;;
H700)
- PKG_VERSION="6c522e1c85a07e2e0db113a979c0a404eb692de1"
+ PKG_VERSION="e3c121d666583f4cf32883b123ef84166b4998f6"
PKG_URL="https://git.sr.ht/~tokyovigilante/linux/archive/${PKG_VERSION}.tar.gz"
+ PKG_PATCH_DIRS+=" mainline"
;;
*)
- PKG_VERSION="6.9.7"
+ PKG_VERSION="6.10.4"
PKG_URL="https://www.kernel.org/pub/linux/kernel/v${PKG_VERSION/.*/}.x/${PKG_NAME}-${PKG_VERSION}.tar.xz"
PKG_PATCH_DIRS+=" mainline"
;;
diff --git a/packages/kernel/linux/patches/AMD64/002-display-quirks.patch b/packages/kernel/linux/patches/AMD64/002-display-quirks.patch
index 1cb6b6bb8..3490aaa40 100755
--- a/packages/kernel/linux/patches/AMD64/002-display-quirks.patch
+++ b/packages/kernel/linux/patches/AMD64/002-display-quirks.patch
@@ -1,6 +1,6 @@
-diff -rupN linux-6.8.6.orig/drivers/gpu/drm/drm_panel_orientation_quirks.c linux-6.8.6/drivers/gpu/drm/drm_panel_orientation_quirks.c
---- linux-6.8.6.orig/drivers/gpu/drm/drm_panel_orientation_quirks.c 2024-04-13 20:10:12.000000000 +0900
-+++ linux-6.8.6/drivers/gpu/drm/drm_panel_orientation_quirks.c 2024-04-18 03:04:59.815912789 +0900
+diff -rupN linux.orig/drivers/gpu/drm/drm_panel_orientation_quirks.c linux/drivers/gpu/drm/drm_panel_orientation_quirks.c
+--- linux.orig/drivers/gpu/drm/drm_panel_orientation_quirks.c 2024-07-12 04:43:00.348961579 +0000
++++ linux/drivers/gpu/drm/drm_panel_orientation_quirks.c 2024-07-12 04:51:29.466639476 +0000
@@ -147,6 +147,12 @@ static const struct drm_dmi_panel_orient
.orientation = DRM_MODE_PANEL_ORIENTATION_RIGHT_UP,
};
@@ -31,7 +31,7 @@ diff -rupN linux-6.8.6.orig/drivers/gpu/drm/drm_panel_orientation_quirks.c linux
.matches = {
DMI_EXACT_MATCH(DMI_SYS_VENDOR, "AYANEO"),
DMI_MATCH(DMI_PRODUCT_NAME, "AIR"),
-@@ -202,6 +208,30 @@ static const struct dmi_system_id orient
+@@ -202,6 +208,36 @@ static const struct dmi_system_id orient
DMI_MATCH(DMI_BOARD_NAME, "NEXT"),
},
.driver_data = (void *)&lcd800x1280_rightside_up,
@@ -47,6 +47,12 @@ diff -rupN linux-6.8.6.orig/drivers/gpu/drm/drm_panel_orientation_quirks.c linux
+ DMI_MATCH(DMI_PRODUCT_NAME, "AYANEO 2"),
+ },
+ .driver_data = (void *)&lcd1200x1920_rightside_up,
++ }, { /* AYANEO AYANEO FLIP DS */
++ .matches = {
++ DMI_EXACT_MATCH(DMI_SYS_VENDOR, "AYANEO"),
++ DMI_MATCH(DMI_PRODUCT_NAME, "FLIP DS"),
++ },
++ .driver_data = (void *)&lcd1080x1920_leftside_up,
+ }, { /* AOKZOE A1 Pro */
+ .matches = {
+ DMI_EXACT_MATCH(DMI_SYS_VENDOR, "AOKZOE"),
@@ -62,7 +68,7 @@ diff -rupN linux-6.8.6.orig/drivers/gpu/drm/drm_panel_orientation_quirks.c linux
}, { /* Chuwi HiBook (CWI514) */
.matches = {
DMI_MATCH(DMI_BOARD_VENDOR, "Hampoo"),
-@@ -351,6 +381,7 @@ static const struct dmi_system_id orient
+@@ -351,6 +387,7 @@ static const struct dmi_system_id orient
}, { /* Lenovo Legion Go 8APU1 */
.matches = {
DMI_EXACT_MATCH(DMI_SYS_VENDOR, "LENOVO"),
@@ -70,7 +76,7 @@ diff -rupN linux-6.8.6.orig/drivers/gpu/drm/drm_panel_orientation_quirks.c linux
DMI_EXACT_MATCH(DMI_PRODUCT_VERSION, "Legion Go 8APU1"),
},
.driver_data = (void *)&lcd1600x2560_leftside_up,
-@@ -408,6 +439,12 @@ static const struct dmi_system_id orient
+@@ -408,6 +445,12 @@ static const struct dmi_system_id orient
DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "ONE XPLAYER"),
},
.driver_data = (void *)&lcd1600x2560_leftside_up,
diff --git a/packages/lang/gcc/package.mk b/packages/lang/gcc/package.mk
index de9c60d9c..ffb8f8a32 100644
--- a/packages/lang/gcc/package.mk
+++ b/packages/lang/gcc/package.mk
@@ -4,7 +4,7 @@
# Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS)
PKG_NAME="gcc"
-PKG_VERSION="12.3.0"
+PKG_VERSION="14.1.0"
PKG_LICENSE="GPL-2.0-or-later"
PKG_SITE="https://gcc.gnu.org/"
PKG_URL="https://ftp.gnu.org/gnu/gcc/${PKG_NAME}-${PKG_VERSION}/${PKG_NAME}-${PKG_VERSION}.tar.xz"
diff --git a/packages/lang/gcc/patches/gcc-allow-newer-autoconf.patch b/packages/lang/gcc/patches/gcc-allow-newer-autoconf.patch
deleted file mode 100644
index f0c991926..000000000
--- a/packages/lang/gcc/patches/gcc-allow-newer-autoconf.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From c611cd5416ff1042a4adec0e1b12c71e307b508d Mon Sep 17 00:00:00 2001
-From: Stefan Saraev
-Date: Thu, 24 Apr 2014 22:33:27 +0300
-Subject: [PATCH] allow newer autoconf
-
----
- config/override.m4 | 9 ---------
- 1 files changed, 0 insertions(+), 9 deletions(-)
-
-diff --git a/config/override.m4 b/config/override.m4
-index 52bd1c3..6c39656 100644
---- a/config/override.m4
-+++ b/config/override.m4
-@@ -38,15 +38,6 @@ dnl m4_define([_GCC_AUTOCONF_VERSION], [X.Y])
- dnl in configure.ac before AC_INIT,
- dnl without rewriting this file.
- dnl Or for updating the whole tree at once with the definition above.
--AC_DEFUN([_GCC_AUTOCONF_VERSION_CHECK],
--[m4_if(m4_defn([_GCC_AUTOCONF_VERSION]),
-- m4_defn([m4_PACKAGE_VERSION]), [],
-- [m4_fatal([Please use exactly Autoconf ]_GCC_AUTOCONF_VERSION[ instead of ]m4_defn([m4_PACKAGE_VERSION])[.])])
--])
--m4_define([AC_INIT], m4_defn([AC_INIT])[
--_GCC_AUTOCONF_VERSION_CHECK
--])
--
-
- dnl Ensure we do not use a buggy M4.
- m4_if(m4_index([..wi.d.], [.d.]), [-1],
---
-1.7.2.5
-
diff --git a/packages/lang/gcc/patches/gcc-sync-to-12.3.1-01032024.patch b/packages/lang/gcc/patches/gcc-sync-to-12.3.1-01032024.patch
deleted file mode 100644
index 91ff0a978..000000000
--- a/packages/lang/gcc/patches/gcc-sync-to-12.3.1-01032024.patch
+++ /dev/null
@@ -1,180005 +0,0 @@
-diff --git a/fixincludes/ChangeLog b/fixincludes/ChangeLog
-index d02624f669f..e7afc3fa00e 100644
---- a/fixincludes/ChangeLog
-+++ b/fixincludes/ChangeLog
-@@ -1,3 +1,10 @@
-+2023-12-11 Rainer Orth
-+
-+ * inclhack.def (darwin_flt_eval_method): Handle macOS 14 guard
-+ variant.
-+ * fixincl.x: Regenerate.
-+ * tests/base/math.h [DARWIN_FLT_EVAL_METHOD_CHECK]: Update test.
-+
- 2023-05-08 Release Manager
-
- * GCC 12.3.0 released.
-diff --git a/fixincludes/fixincl.x b/fixincludes/fixincl.x
-index bad490453b7..b314506f00d 100644
---- a/fixincludes/fixincl.x
-+++ b/fixincludes/fixincl.x
-@@ -2,11 +2,11 @@
- *
- * DO NOT EDIT THIS FILE (fixincl.x)
- *
-- * It has been AutoGen-ed February 27, 2022 at 07:47:03 PM by AutoGen 5.18.16
-+ * It has been AutoGen-ed December 11, 2023 at 06:14:06 PM by AutoGen 5.18.16
- * From the definitions inclhack.def
- * and the template file fixincl
- */
--/* DO NOT SVN-MERGE THIS FILE, EITHER Sun Feb 27 19:47:03 UTC 2022
-+/* DO NOT SVN-MERGE THIS FILE, EITHER Mon Dec 11 18:14:06 CET 2023
- *
- * You must regenerate it. Use the ./genfixes script.
- *
-@@ -3587,7 +3587,7 @@ tSCC* apzDarwin_Flt_Eval_MethodMachs[] = {
- * content selection pattern - do fix if pattern found
- */
- tSCC zDarwin_Flt_Eval_MethodSelect0[] =
-- "^#if __FLT_EVAL_METHOD__ == 0$";
-+ "^#if __FLT_EVAL_METHOD__ == 0( \\|\\| __FLT_EVAL_METHOD__ == -1)?$";
-
- #define DARWIN_FLT_EVAL_METHOD_TEST_CT 1
- static tTestDesc aDarwin_Flt_Eval_MethodTests[] = {
-@@ -3598,7 +3598,7 @@ static tTestDesc aDarwin_Flt_Eval_MethodTests[] = {
- */
- static const char* apzDarwin_Flt_Eval_MethodPatch[] = {
- "format",
-- "#if __FLT_EVAL_METHOD__ == 0 || __FLT_EVAL_METHOD__ == 16",
-+ "%0 || __FLT_EVAL_METHOD__ == 16",
- (char*)NULL };
-
- /* * * * * * * * * * * * * * * * * * * * * * * * * *
-diff --git a/fixincludes/inclhack.def b/fixincludes/inclhack.def
-index 7605ac89aa2..5cdd52a8de8 100644
---- a/fixincludes/inclhack.def
-+++ b/fixincludes/inclhack.def
-@@ -1772,10 +1772,11 @@ fix = {
- hackname = darwin_flt_eval_method;
- mach = "*-*-darwin*";
- files = math.h;
-- select = "^#if __FLT_EVAL_METHOD__ == 0$";
-+ select = "^#if __FLT_EVAL_METHOD__ == 0( \\|\\| __FLT_EVAL_METHOD__ == -1)?$";
- c_fix = format;
-- c_fix_arg = "#if __FLT_EVAL_METHOD__ == 0 || __FLT_EVAL_METHOD__ == 16";
-- test_text = "#if __FLT_EVAL_METHOD__ == 0";
-+ c_fix_arg = "%0 || __FLT_EVAL_METHOD__ == 16";
-+ test_text = "#if __FLT_EVAL_METHOD__ == 0\n"
-+ "#if __FLT_EVAL_METHOD__ == 0 || __FLT_EVAL_METHOD__ == -1";
- };
-
- /*
-diff --git a/fixincludes/tests/base/math.h b/fixincludes/tests/base/math.h
-index 29b67579748..7b92f29a409 100644
---- a/fixincludes/tests/base/math.h
-+++ b/fixincludes/tests/base/math.h
-@@ -32,6 +32,7 @@
-
- #if defined( DARWIN_FLT_EVAL_METHOD_CHECK )
- #if __FLT_EVAL_METHOD__ == 0 || __FLT_EVAL_METHOD__ == 16
-+#if __FLT_EVAL_METHOD__ == 0 || __FLT_EVAL_METHOD__ == -1 || __FLT_EVAL_METHOD__ == 16
- #endif /* DARWIN_FLT_EVAL_METHOD_CHECK */
-
-
-diff --git a/gcc/BASE-VER b/gcc/BASE-VER
-index 4d23cb8e0bd..9c028e25d40 100644
---- a/gcc/BASE-VER
-+++ b/gcc/BASE-VER
-@@ -1 +1 @@
--12.3.0
-+12.3.1
-diff --git a/gcc/ChangeLog b/gcc/ChangeLog
-index 07376405660..54316b78f1a 100644
---- a/gcc/ChangeLog
-+++ b/gcc/ChangeLog
-@@ -1,3 +1,1696 @@
-+2023-12-19 Jakub Jelinek
-+
-+ Backported from master:
-+ 2023-12-19 Jakub Jelinek
-+
-+ PR target/112816
-+ * config/i386/mmx.md (signbitv2sf2): Force operands[1] into a REG.
-+
-+2023-12-18 Jakub Jelinek
-+
-+ Backported from master:
-+ 2023-12-18 Jakub Jelinek
-+
-+ PR tree-optimization/113013
-+ * tree-object-size.cc (alloc_object_size): Return size_unknown if
-+ corresponding argument(s) don't have integral type or have integral
-+ type with higher precision than sizetype. Don't check arg1 >= 0
-+ uselessly. Compare argument indexes against gimple_call_num_args
-+ in unsigned type rather than int. Formatting fixes.
-+
-+2023-12-16 Jakub Jelinek
-+
-+ Backported from master:
-+ 2023-11-29 Jakub Jelinek
-+
-+ PR middle-end/112733
-+ * fold-const.cc (multiple_of_p): Pass SIGNED rather than
-+ UNSIGNED for wi::multiple_of_p on widest_int arguments.
-+
-+2023-12-16 Jakub Jelinek
-+
-+ Backported from master:
-+ 2023-12-05 Jakub Jelinek
-+
-+ PR target/112845
-+ * config/i386/i386.md (movabsq $(i32 << shift), r64 peephole2): FAIL
-+ if the new immediate is ix86_endbr_immediate_operand.
-+
-+2023-12-16 Jakub Jelinek
-+
-+ Backported from master:
-+ 2023-12-04 Jakub Jelinek
-+
-+ PR target/112837
-+ * config/i386/i386.cc (ix86_elim_entry_set_got): Before checking
-+ for UNSPEC_SET_GOT check that SET_SRC is UNSPEC. Use SET_SRC and
-+ SET_DEST macros instead of XEXP, rename vec variable to set.
-+
-+2023-12-16 Jakub Jelinek
-+
-+ Backported from master:
-+ 2023-12-04 Jakub Jelinek
-+
-+ PR target/112816
-+ * config/i386/sse.md (signbit2): Force operands[1] into a REG.
-+
-+2023-12-16 Jakub Jelinek
-+
-+ Backported from master:
-+ 2023-11-25 Jakub Jelinek
-+
-+ PR target/111408
-+ * config/i386/i386.md (*jcc_bt_mask): Add (const_int 0) as
-+ expected second operand of bt_comparison_operator.
-+
-+2023-12-16 Jakub Jelinek
-+
-+ Backported from master:
-+ 2023-11-13 Jakub Jelinek
-+
-+ PR tree-optimization/111967
-+ * gimple-range-cache.cc (block_range_cache::set_bb_range): Grow
-+ m_ssa_ranges to num_ssa_names rather than num_ssa_names + 1.
-+ (block_range_cache::dump): Iterate from 1 rather than 0. Don't use
-+ ssa_name (x) unless m_ssa_ranges[x] is non-NULL. Iterate to
-+ m_ssa_ranges.length () rather than num_ssa_names.
-+
-+2023-12-16 Jakub Jelinek
-+
-+ Backported from master:
-+ 2023-11-09 Jakub Jelinek
-+
-+ PR c/112339
-+ * attribs.cc (attribute_ignored_p): Only return true for
-+ attr_namespace_ignored_p if as is NULL.
-+ (decl_attributes): Never add ignored attributes.
-+
-+2023-12-16 Jakub Jelinek
-+
-+ Backported from master:
-+ 2023-07-19 Jakub Jelinek
-+
-+ PR tree-optimization/110731
-+ * wide-int.cc (wi::divmod_internal): Always unpack dividend and
-+ divisor as UNSIGNED regardless of sgn.
-+
-+2023-12-15 Richard Biener
-+
-+ Backported from master:
-+ 2023-08-24 Richard Biener
-+
-+ PR debug/111080
-+ * dwarf2out.cc (prune_unused_types_walk): Handle
-+ DW_TAG_restrict_type, DW_TAG_shared_type, DW_TAG_atomic_type,
-+ DW_TAG_immutable_type, DW_TAG_coarray_type, DW_TAG_unspecified_type
-+ and DW_TAG_dynamic_type as to only output them when referenced.
-+
-+2023-12-15 Richard Biener
-+
-+ Backported from master:
-+ 2023-08-25 Richard Biener
-+
-+ PR tree-optimization/111137
-+ * tree-vect-data-refs.cc (vect_slp_analyze_load_dependences):
-+ Properly handle grouped stores from other SLP instances.
-+
-+2023-12-15 Richard Biener
-+
-+ Backported from master:
-+ 2023-08-25 Richard Biener
-+
-+ * tree-vect-data-refs.cc (vect_slp_analyze_store_dependences):
-+ Split out from vect_slp_analyze_node_dependences, remove
-+ dead code.
-+ (vect_slp_analyze_load_dependences): Split out from
-+ vect_slp_analyze_node_dependences, adjust comments. Process
-+ queued stores before any disambiguation.
-+ (vect_slp_analyze_node_dependences): Remove.
-+ (vect_slp_analyze_instance_dependence): Adjust.
-+
-+2023-12-12 liuhongt
-+
-+ Backported from master:
-+ 2023-12-12 liuhongt
-+
-+ PR target/112891
-+ * config/i386/i386.cc (ix86_avx_u128_mode_after): Return
-+ AVX_U128_ANY if callee_abi doesn't clobber all_sse_regs to
-+ align with ix86_avx_u128_mode_needed.
-+ (ix86_avx_u128_mode_needed): Return AVX_U128_ClEAN for
-+ sibling_call.
-+
-+2023-11-27 Richard Biener
-+
-+ Backported from master:
-+ 2023-10-23 Richard Biener
-+
-+ PR tree-optimization/111917
-+ * tree-ssa-loop-unswitch.cc (hoist_guard): Always insert
-+ new conditional after last stmt.
-+
-+2023-11-27 Richard Biener
-+
-+ Backported from master:
-+ 2023-10-17 Richard Biener
-+
-+ PR middle-end/111818
-+ * tree-ssa.cc (maybe_optimize_var): When clearing
-+ DECL_NOT_GIMPLE_REG_P always rewrite into SSA.
-+
-+2023-11-27 Richard Biener
-+
-+ Backported from master:
-+ 2023-09-28 Richard Biener
-+
-+ PR tree-optimization/111614
-+ * tree-ssa-reassoc.cc (undistribute_bitref_for_vector): Properly
-+ convert the first vector when required.
-+
-+2023-11-27 Richard Biener
-+
-+ Backported from master:
-+ 2023-10-12 Richard Biener
-+
-+ PR tree-optimization/111764
-+ * tree-vect-loop.cc (check_reduction_path): Remove the attempt
-+ to allow x + x via special-casing of assigns.
-+
-+2023-11-27 Richard Biener
-+
-+ Backported from master:
-+ 2023-10-20 Richard Biener
-+
-+ PR tree-optimization/111445
-+ * tree-scalar-evolution.cc (simple_iv_with_niters):
-+ Add missing check for a sign-conversion.
-+
-+2023-11-27 Richard Biener
-+
-+ Backported from master:
-+ 2023-08-18 Richard Biener
-+
-+ PR tree-optimization/111019
-+ * tree-ssa-loop-im.cc (gather_mem_refs_stmt): When canonicalizing
-+ also scrap base and offset in case the ref is indirect.
-+
-+2023-11-27 Richard Biener
-+
-+ Backported from master:
-+ 2023-08-03 Richard Biener
-+
-+ PR tree-optimization/110702
-+ * tree-ssa-loop-ivopts.cc (rewrite_use_address): When
-+ we created a NULL pointer based access rewrite that to
-+ a LEA.
-+
-+2023-11-27 Richard Biener
-+
-+ Backported from master:
-+ 2023-07-06 Richard Biener
-+
-+ PR tree-optimization/110556
-+ * tree-ssa-tail-merge.cc (gimple_equal_p): Check
-+ assign code and all operands of non-stores.
-+
-+2023-11-27 Richard Biener
-+
-+ Backported from master:
-+ 2023-07-06 Richard Biener
-+
-+ PR tree-optimization/110515
-+ * tree-ssa-pre.cc (compute_avail): Make code dealing
-+ with hoisting loads with different alias-sets more
-+ robust.
-+
-+2023-11-27 Richard Biener
-+
-+ Backported from master:
-+ 2023-06-20 Richard Biener
-+
-+ PR debug/110295
-+ * dwarf2out.cc (process_scope_var): Continue processing
-+ the decl after setting a parent in case the existing DIE
-+ was in limbo.
-+
-+2023-11-27 Richard Biener
-+
-+ Backported from master:
-+ 2023-05-31 Richard Biener
-+
-+ PR ipa/109983
-+ PR tree-optimization/109143
-+ * tree-ssa-structalias.cc (struct topo_info): Remove.
-+ (init_topo_info): Likewise.
-+ (free_topo_info): Likewise.
-+ (compute_topo_order): Simplify API, put the component
-+ with ESCAPED last so it's processed first.
-+ (topo_visit): Adjust.
-+ (solve_graph): Likewise.
-+
-+2023-11-24 Uros Bizjak
-+
-+ Backported from master:
-+ 2023-11-23 Uros Bizjak
-+
-+ PR target/112672
-+ * config/i386/i386.md (parityhi2):
-+ Use temporary register in the call to gen_parityhi2_cmp.
-+
-+2023-11-22 Maciej W. Rozycki
-+
-+ Backported from master:
-+ 2023-11-22 Maciej W. Rozycki
-+
-+ PR target/111815
-+ * config/vax/vax.cc (index_term_p): Only accept the index scaler
-+ as the RHS operand to ASHIFT.
-+
-+2023-11-20 Lulu Cheng
-+
-+ Backported from master:
-+ 2023-11-20 Lulu Cheng
-+
-+ * config/loongarch/gnu-user.h (MUSL_ABI_SPEC): Modify suffix.
-+
-+2023-11-20 Peng Fan
-+
-+ Backported from master:
-+ 2023-04-21 Peng Fan
-+
-+ * config/loongarch/gnu-user.h (MUSL_DYNAMIC_LINKER): Redefine.
-+
-+2023-11-16 Xi Ruoyao
-+
-+ Backported from master:
-+ 2023-11-15 Xi Ruoyao
-+
-+ * config/loongarch/loongarch.cc
-+ (loongarch_memmodel_needs_release_fence): Remove.
-+ (loongarch_cas_failure_memorder_needs_acquire): New static
-+ function.
-+ (loongarch_print_operand): Redefine 'G' for the barrier on CAS
-+ failure.
-+ * config/loongarch/sync.md (atomic_cas_value_strong):
-+ Remove the redundant barrier before the LL instruction, and
-+ emit an acquire barrier on failure if needed by
-+ failure_memorder.
-+ (atomic_cas_value_cmp_and_7_): Likewise.
-+ (atomic_cas_value_add_7_): Remove the unnecessary barrier
-+ before the LL instruction.
-+ (atomic_cas_value_sub_7_): Likewise.
-+ (atomic_cas_value_and_7_): Likewise.
-+ (atomic_cas_value_xor_7_): Likewise.
-+ (atomic_cas_value_or_7_): Likewise.
-+ (atomic_cas_value_nand_7_): Likewise.
-+ (atomic_cas_value_exchange_7_): Likewise.
-+
-+2023-11-15 Kewen Lin
-+
-+ Backported from master:
-+ 2023-11-06 Kewen Lin
-+
-+ PR target/111828
-+ * config.in: Regenerate.
-+ * config/rs6000/rs6000.cc (rs6000_update_ipa_fn_target_info): Guard
-+ inline asm handling under !HAVE_AS_POWER10_HTM.
-+ * configure: Regenerate.
-+ * configure.ac: Detect assembler support for HTM insns at power10.
-+
-+2023-11-10 liuhongt
-+
-+ Backported from master:
-+ 2023-11-10 liuhongt
-+
-+ PR target/112443
-+ * config/i386/sse.md (*avx2_pcmp3_4): Fix swap condition
-+ from LT to GT since there's not in the pattern.
-+ (*avx2_pcmp3_5): Ditto.
-+
-+2023-11-06 John David Anglin
-+
-+ * config/pa/pa.cc (pa_asm_trampoline_template): Fix typo.
-+
-+2023-10-26 Lulu Cheng
-+
-+ Backported from master:
-+ 2023-10-23 Lulu Cheng
-+
-+ * config/loongarch/loongarch.h (CLEAR_INSN_CACHE): New definition.
-+
-+2023-10-26 chenxiaolong
-+
-+ Backported from master:
-+ 2023-10-25 chenxiaolong
-+
-+ * config/loongarch/loongarch.md (get_thread_pointer):Adds the
-+ instruction template corresponding to the __builtin_thread_pointer
-+ function.
-+ * doc/extend.texi:Add the __builtin_thread_pointer function support
-+ description to the documentation.
-+
-+2023-10-26 liuhongt
-+
-+ Backported from master:
-+ 2023-07-06 liuhongt
-+
-+ PR target/110170
-+ * config/i386/i386.md (movdf_internal): Disparage slightly for
-+ 2 alternatives (r,v) and (v,r) by adding constraint modifier
-+ '?'.
-+
-+2023-10-23 Oleg Endo
-+
-+ PR target/111001
-+ * config/sh/sh_treg_combine.cc (sh_treg_combine::record_set_of_reg):
-+ Skip over nop move insns.
-+
-+2023-10-23 Kewen Lin
-+
-+ Backported from master:
-+ 2023-10-12 Kewen Lin
-+
-+ PR target/111367
-+ * config/rs6000/rs6000.md (stack_protect_setsi): Support prefixed
-+ instruction emission and incorporate to stack_protect_set.
-+ (stack_protect_setdi): Rename to ...
-+ (stack_protect_set): ... this, adjust constraint.
-+ (stack_protect_testsi): Support prefixed instruction emission and
-+ incorporate to stack_protect_test.
-+ (stack_protect_testdi): Rename to ...
-+ (stack_protect_test): ... this, adjust constraint.
-+
-+2023-10-20 Oleg Endo
-+
-+ PR target/101177
-+ * config/sh/sh.md (unnamed split pattern): Fix comparison of
-+ find_regno_note result.
-+
-+2023-10-19 Richard Sandiford
-+
-+ Backported from master:
-+ 2023-09-07 Richard Sandiford
-+
-+ PR target/111528
-+ * lra-eliminations.cc (lra_eliminate_regs_1): Use simplify_gen_binary
-+ rather than gen_rtx_PLUS.
-+
-+2023-10-16 Kewen Lin
-+
-+ Backported from master:
-+ 2023-09-25 Kewen Lin
-+
-+ PR target/111380
-+ * config/rs6000/rs6000.cc (rs6000_can_inline_p): Adopt
-+ target_option_default_node when the callee has no option
-+ attributes, also simplify the existing code accordingly.
-+
-+2023-10-16 Kewen Lin
-+
-+ Backported from master:
-+ 2023-09-25 Kewen Lin
-+
-+ PR target/111366
-+ * config/rs6000/rs6000.cc (rs6000_update_ipa_fn_target_info): Skip
-+ empty inline asm.
-+
-+2023-10-07 Andrew Pinski
-+
-+ Backported from master:
-+ 2023-10-06 Andrew Pinski
-+
-+ PR middle-end/111699
-+ * match.pd ((c ? a : b) op d, (c ? a : b) op (c ? d : e),
-+ (v ? w : 0) ? a : b, c1 ? c2 ? a : b : b): Enable only for GIMPLE.
-+
-+2023-10-02 Pat Haugen
-+
-+ Backported from master:
-+ 2023-09-19 Pat Haugen
-+
-+ * config/rs6000/rs6000.cc (rs6000_rtx_costs): Check whether the
-+ modulo instruction is disabled.
-+ * config/rs6000/rs6000.h (RS6000_DISABLE_SCALAR_MODULO): New.
-+ * config/rs6000/rs6000.md (mod3, *mod3): Check it.
-+ (define_expand umod3): New.
-+ (define_insn umod3): Rename to *umod3 and check if the modulo
-+ instruction is disabled.
-+ (umodti3, modti3): Check if the modulo instruction is disabled.
-+
-+2023-09-29 Wilco Dijkstra
-+
-+ Backported from master:
-+ 2023-09-28 Wilco Dijkstra
-+
-+ PR target/111121
-+ * config/aarch64/aarch64.md (aarch64_movmemdi): Add new expander.
-+ (movmemdi): Call aarch64_expand_cpymem_mops for correct expansion.
-+ * config/aarch64/aarch64.cc (aarch64_expand_cpymem_mops): Add support
-+ for memmove.
-+ * config/aarch64/aarch64-protos.h (aarch64_expand_cpymem_mops): Add new
-+ function.
-+
-+2023-09-26 Eric Botcazou
-+
-+ * gimple-range-gori.cc (gori_compute::logical_combine): Add missing
-+ return statement in the varying case.
-+
-+2023-09-20 Richard Sandiford
-+
-+ Backported from master:
-+ 2023-09-15 Richard Sandiford
-+
-+ PR target/111411
-+ * config/aarch64/aarch64.cc (aarch64_operands_ok_for_ldpstp): Require
-+ the lower memory access to a mem-pair operand.
-+
-+2023-09-20 Richard Sandiford
-+
-+ Backported from master:
-+ 2023-08-31 Richard Sandiford
-+
-+ * config/aarch64/aarch64.md (untyped_call): Emit a call_value
-+ rather than a call. List each possible destination register
-+ in the call pattern.
-+
-+2023-09-12 Uros Bizjak
-+
-+ PR target/111340
-+ * config/i386/i386.cc (output_pic_addr_const): Handle CONST_WIDE_INT.
-+ Call output_addr_const for CASE_CONST_SCALAR_INT.
-+
-+2023-09-12 Richard Sandiford
-+
-+ * config/aarch64/aarch64.cc (aarch64_save_regs_above_locals_p):
-+ New function.
-+ (aarch64_layout_frame): Use it to decide whether locals should
-+ go above or below the saved registers.
-+ (aarch64_expand_prologue): Update stack layout comment.
-+ Emit a stack tie after the final adjustment.
-+
-+2023-09-12 Richard Sandiford
-+
-+ * config/aarch64/aarch64.h (aarch64_frame::saved_regs_size)
-+ (aarch64_frame::below_hard_fp_saved_regs_size): Delete.
-+ * config/aarch64/aarch64.cc (aarch64_layout_frame): Update accordingly.
-+
-+2023-09-12 Richard Sandiford
-+
-+ * config/aarch64/aarch64.h (aarch64_frame::sve_save_and_probe)
-+ (aarch64_frame::hard_fp_save_and_probe): New fields.
-+ * config/aarch64/aarch64.cc (aarch64_layout_frame): Initialize them.
-+ Rather than asserting that a leaf function saves LR, instead assert
-+ that a leaf function saves something.
-+ (aarch64_get_separate_components): Prevent the chosen probe
-+ registers from being individually shrink-wrapped.
-+ (aarch64_allocate_and_probe_stack_space): Remove workaround for
-+ probe registers that aren't at the bottom of the previous allocation.
-+
-+2023-09-12 Richard Sandiford
-+
-+ * config/aarch64/aarch64.cc (aarch64_allocate_and_probe_stack_space):
-+ Always probe the residual allocation at offset 1024, asserting
-+ that that is in range.
-+
-+2023-09-12 Richard Sandiford
-+
-+ * config/aarch64/aarch64.cc (aarch64_layout_frame): Ensure that
-+ the LR save slot is in the first 16 bytes of the register save area.
-+ Only form STP/LDP push/pop candidates if both registers are valid.
-+ (aarch64_allocate_and_probe_stack_space): Remove workaround for
-+ when LR was not in the first 16 bytes.
-+
-+2023-09-12 Richard Sandiford
-+
-+ * config/aarch64/aarch64.cc (aarch64_allocate_and_probe_stack_space):
-+ Don't probe final allocations that are exactly 1KiB in size (after
-+ unprobed space above the final allocation has been deducted).
-+
-+2023-09-12 Richard Sandiford
-+
-+ * config/aarch64/aarch64.cc (aarch64_layout_frame): Tweak
-+ calculation of initial_adjust for frames in which all saves
-+ are SVE saves.
-+
-+2023-09-12 Richard Sandiford
-+
-+ * config/aarch64/aarch64.cc (aarch64_layout_frame): Simplify
-+ the allocation of the top of the frame.
-+
-+2023-09-12 Richard Sandiford
-+
-+ * config/aarch64/aarch64.h (aarch64_frame): Add comment above
-+ reg_offset.
-+ * config/aarch64/aarch64.cc (aarch64_layout_frame): Walk offsets
-+ from the bottom of the frame, rather than the bottom of the saved
-+ register area. Measure reg_offset from the bottom of the frame
-+ rather than the bottom of the saved register area.
-+ (aarch64_save_callee_saves): Update accordingly.
-+ (aarch64_restore_callee_saves): Likewise.
-+ (aarch64_get_separate_components): Likewise.
-+ (aarch64_process_components): Likewise.
-+
-+2023-09-12 Richard Sandiford
-+
-+ * config/aarch64/aarch64.h (aarch64_frame::frame_size): Tweak comment.
-+
-+2023-09-12 Richard Sandiford
-+
-+ * config/aarch64/aarch64.h (aarch64_frame::hard_fp_offset): Rename
-+ to...
-+ (aarch64_frame::bytes_above_hard_fp): ...this.
-+ * config/aarch64/aarch64.cc (aarch64_layout_frame)
-+ (aarch64_expand_prologue): Update accordingly.
-+ (aarch64_initial_elimination_offset): Likewise.
-+
-+2023-09-12 Richard Sandiford
-+
-+ * config/aarch64/aarch64.h (aarch64_frame::locals_offset): Rename to...
-+ (aarch64_frame::bytes_above_locals): ...this.
-+ * config/aarch64/aarch64.cc (aarch64_layout_frame)
-+ (aarch64_initial_elimination_offset): Update accordingly.
-+
-+2023-09-12 Richard Sandiford
-+
-+ * config/aarch64/aarch64.cc (aarch64_expand_prologue): Move the
-+ calculation of chain_offset into the emit_frame_chain block.
-+
-+2023-09-12 Richard Sandiford
-+
-+ * config/aarch64/aarch64.h (aarch64_frame::callee_offset): Delete.
-+ * config/aarch64/aarch64.cc (aarch64_layout_frame): Remove
-+ callee_offset handling.
-+ (aarch64_save_callee_saves): Replace the start_offset parameter
-+ with a bytes_below_sp parameter.
-+ (aarch64_restore_callee_saves): Likewise.
-+ (aarch64_expand_prologue): Update accordingly.
-+ (aarch64_expand_epilogue): Likewise.
-+
-+2023-09-12 Richard Sandiford
-+
-+ * config/aarch64/aarch64.h (aarch64_frame::bytes_below_hard_fp): New
-+ field.
-+ * config/aarch64/aarch64.cc (aarch64_layout_frame): Initialize it.
-+ (aarch64_expand_epilogue): Use it instead of
-+ below_hard_fp_saved_regs_size.
-+
-+2023-09-12 Richard Sandiford
-+
-+ * config/aarch64/aarch64.h (aarch64_frame::bytes_below_saved_regs): New
-+ field.
-+ * config/aarch64/aarch64.cc (aarch64_layout_frame): Initialize it,
-+ and use it instead of crtl->outgoing_args_size.
-+ (aarch64_get_separate_components): Use bytes_below_saved_regs instead
-+ of outgoing_args_size.
-+ (aarch64_process_components): Likewise.
-+
-+2023-09-12 Richard Sandiford
-+
-+ * config/aarch64/aarch64.cc (aarch64_layout_frame): Explicitly
-+ allocate the frame in one go if there are no saved registers.
-+
-+2023-09-12 Richard Sandiford
-+
-+ * config/aarch64/aarch64.cc (aarch64_expand_prologue): Use
-+ chain_offset rather than callee_offset.
-+
-+2023-09-12 Richard Sandiford
-+
-+ * config/aarch64/aarch64.cc (aarch64_save_callee_saves): Use
-+ a local shorthand for cfun->machine->frame.
-+ (aarch64_restore_callee_saves, aarch64_get_separate_components):
-+ (aarch64_process_components): Likewise.
-+ (aarch64_allocate_and_probe_stack_space): Likewise.
-+ (aarch64_expand_prologue, aarch64_expand_epilogue): Likewise.
-+ (aarch64_layout_frame): Use existing shorthand for one more case.
-+
-+2023-09-12 Haochen Gui
-+
-+ Backported from master:
-+ 2023-08-31 Haochen Gui
-+
-+ PR target/96762
-+ * config/rs6000/rs6000-string.cc (expand_block_move): Call vector
-+ load/store with length only on 64-bit Power10.
-+
-+2023-09-11 liuhongt
-+
-+ Backported from master:
-+ 2023-09-11 liuhongt
-+
-+ PR target/111306
-+ PR target/111335
-+ * config/i386/sse.md (int_comm): New int_attr.
-+ (fma__):
-+ Remove % for Complex conjugate operations since they're not
-+ commutative.
-+ (fma___pair): Ditto.
-+ (___mask): Ditto.
-+ (cmul3): Ditto.
-+
-+2023-09-01 Tobias Burnus
-+
-+ Backported from master:
-+ 2023-08-19 Tobias Burnus
-+
-+ PR middle-end/111017
-+ * omp-expand.cc (expand_omp_for_init_vars): Pass after=true
-+ to expand_omp_build_cond for 'factor != 0' condition, resulting
-+ in pre-r12-5295-g47de0b56ee455e code for the gimple insert.
-+
-+2023-09-01 Lulu Cheng
-+
-+ Backported from master:
-+ 2023-09-01 Lulu Cheng
-+ Guo Jie
-+
-+ PR target/110484
-+ * config/loongarch/loongarch.cc (loongarch_emit_stack_tie): Use the
-+ frame_pointer_needed to determine whether to use the $fp register.
-+
-+2023-08-30 Jakub Jelinek
-+
-+ Backported from master:
-+ 2023-08-30 Jakub Jelinek
-+
-+ PR tree-optimization/110914
-+ * tree-ssa-strlen.cc (strlen_pass::handle_builtin_memcpy): Don't call
-+ adjust_last_stmt unless len is known constant.
-+
-+2023-08-30 Jakub Jelinek
-+
-+ Backported from master:
-+ 2023-08-30 Jakub Jelinek
-+
-+ PR tree-optimization/111015
-+ * gimple-ssa-store-merging.cc
-+ (imm_store_chain_info::output_merged_store): Use wi::mask and
-+ wide_int_to_tree instead of unsigned HOST_WIDE_INT shift and
-+ build_int_cst to build BIT_AND_EXPR mask.
-+
-+2023-08-19 Guo Jie
-+
-+ Backported from master:
-+ 2023-08-19 Guo Jie
-+ Lulu Cheng
-+
-+ * config/loongarch/t-loongarch: Add loongarch-driver.h into
-+ TM_H. Add loongarch-def.h and loongarch-tune.h into
-+ OPTIONS_H_EXTRA.
-+
-+2023-08-16 liuhongt
-+
-+ Backported from master:
-+ 2023-08-16 liuhongt
-+
-+ * config/i386/i386-builtins.cc
-+ (ix86_vectorize_builtin_gather): Adjust for use_gather_8parts.
-+ * config/i386/i386-options.cc (parse_mtune_ctrl_str):
-+ Set/Clear tune features use_{gather,scatter}_{2parts, 4parts,
-+ 8parts} for -mtune-crtl={,^}{use_gather,use_scatter}.
-+ * config/i386/i386.cc (ix86_vectorize_builtin_scatter): Adjust
-+ for use_scatter_8parts
-+ * config/i386/i386.h (TARGET_USE_GATHER): Rename to ..
-+ (TARGET_USE_GATHER_8PARTS): .. this.
-+ (TARGET_USE_SCATTER): Rename to ..
-+ (TARGET_USE_SCATTER_8PARTS): .. this.
-+ * config/i386/x86-tune.def (X86_TUNE_USE_GATHER): Rename to
-+ (X86_TUNE_USE_GATHER_8PARTS): .. this.
-+ (X86_TUNE_USE_SCATTER): Rename to
-+ (X86_TUNE_USE_SCATTER_8PARTS): .. this.
-+ * config/i386/i386.opt: Add new options mgather, mscatter.
-+
-+2023-08-16 liuhongt
-+
-+ Backported from master:
-+ 2023-08-16 liuhongt
-+
-+ * config/i386/i386-options.cc (m_GDS): New macro.
-+ * config/i386/x86-tune.def (X86_TUNE_USE_GATHER_2PARTS): Don't
-+ enable for m_GDS.
-+ (X86_TUNE_USE_GATHER_4PARTS): Ditto.
-+ (X86_TUNE_USE_GATHER): Ditto.
-+
-+2023-08-09 liuhongt
-+
-+ * common/config/i386/cpuinfo.h (get_available_features): Check
-+ max_subleaf_level for valid subleaf before use CPUID.
-+
-+2023-08-01 Kewen Lin
-+
-+ Backported from master:
-+ 2023-07-26 Kewen Lin
-+
-+ PR target/110741
-+ * config/rs6000/vsx.md (define_insn xxeval): Correct vsx
-+ operands output with "x".
-+
-+2023-07-14 Uros Bizjak
-+
-+ Backported from master:
-+ 2023-07-14 Uros Bizjak
-+
-+ PR target/110206
-+ * fwprop.cc (contains_paradoxical_subreg_p): Move to ...
-+ * rtlanal.cc (contains_paradoxical_subreg_p): ... here.
-+ * rtlanal.h (contains_paradoxical_subreg_p): Add prototype.
-+ * cprop.cc (try_replace_reg): Do not set REG_EQUAL note
-+ when the original source contains a paradoxical subreg.
-+
-+2023-07-14 Oleg Endo
-+
-+ PR target/101469
-+ * config/sh/sh.md (peephole2): Handle case where eliminated reg
-+ is also used by the address of the following memory operand.
-+
-+2023-07-13 Uros Bizjak
-+
-+ Backported from master:
-+ 2023-07-13 Uros Bizjak
-+
-+ PR target/106966
-+ * config/alpha/alpha.cc (alpha_emit_set_long_const):
-+ Always use DImode when constructing long const.
-+
-+2023-07-08 Jonathan Wakely
-+
-+ Backported from master:
-+ 2023-07-08 Jonathan Wakely
-+
-+ PR c++/110595
-+ * doc/invoke.texi (Warning Options): Fix typo.
-+
-+2023-07-05 Michael Meissner