commit
12781ffe3a
105 changed files with 1204 additions and 513 deletions
|
@ -63,8 +63,7 @@ show_config() {
|
|||
config_message="${config_message}\n\n Misc. hardware configuration:"
|
||||
config_message="${config_message}\n ${dashes}${dashes}"
|
||||
|
||||
config_message="${config_message}\n - ALSA support:\t\t\t $ALSA_SUPPORT"
|
||||
config_message="${config_message}\n - Pulseaudio support:\t\t\t $PULSEAUDIO_SUPPORT"
|
||||
config_message="${config_message}\n - Pipewire support:\t\t\t $PIPEWIRE_SUPPORT"
|
||||
config_message="${config_message}\n - Bluetooth support:\t\t\t $BLUETOOTH_SUPPORT"
|
||||
|
||||
for config_driver in $ADDITIONAL_DRIVERS; do
|
||||
|
|
|
@ -37,9 +37,6 @@
|
|||
# Install glibc locales to the build (yes / no)
|
||||
GLIBC_LOCALES="yes"
|
||||
|
||||
# build and install PulseAudio support (yes / no)
|
||||
PULSEAUDIO_SUPPORT="no"
|
||||
|
||||
# build and install pipewire support (yes / no)
|
||||
PIPEWIRE_SUPPORT="yes"
|
||||
|
||||
|
|
|
@ -17,7 +17,7 @@ ProtectControlGroups=true
|
|||
# end of automatic additions
|
||||
# required in order for the above sandboxing options to work on a user unit
|
||||
PrivateUsers=yes
|
||||
Type=notify
|
||||
Type=simple
|
||||
NotifyAccess=main
|
||||
EnvironmentFile=-%h/.config/fluidsynth
|
||||
ExecStart=/usr/bin/fluidsynth -is -a sdl2 /usr/share/soundfonts/GeneralUser.sf2
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
# Copyright (C) 2023-present Fewtarius
|
||||
|
||||
PKG_NAME="box64"
|
||||
PKG_VERSION="f5fadea30e6d71046293f382d98f9f570bd31321"
|
||||
PKG_VERSION="e8972efca192e988cdd72fc765ef001defe9a5a4"
|
||||
PKG_ARCH="aarch64"
|
||||
PKG_LICENSE="MIT"
|
||||
PKG_SITE="https://github.com/ptitSeb/box64"
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
################################################################################
|
||||
|
||||
PKG_NAME="a5200-lr"
|
||||
PKG_VERSION="27141a4328cfc41112655de03c55275f1c246062"
|
||||
PKG_VERSION="cee3ff11f43615a49fba6c7e9a3151fc48b6a91f"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
################################################################################
|
||||
|
||||
PKG_NAME="atari800-lr"
|
||||
PKG_VERSION="86be15db82e8c4275a7854d8b61839e87f06ef30"
|
||||
PKG_VERSION="20d59afb3f19065749549732f20845c3be82e68c"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
################################################################################
|
||||
|
||||
PKG_NAME="beetle-pce-fast-lr"
|
||||
PKG_VERSION="0460d7f53c73e8854eed3a38b43df8176f71b292"
|
||||
PKG_VERSION="ba75096e85758f6b449135492123d014308eb172"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPLv2"
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
################################################################################
|
||||
|
||||
PKG_NAME="beetle-pce-lr"
|
||||
PKG_VERSION="69d356663a3092a315ffac10eff1d47e9a967de0"
|
||||
PKG_VERSION="4c7831689d37177596bc97c4cd1b01ce6e997a71"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPLv2"
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
# Copyright (C) 2023-present BrooksyTech (https://github.com/brooksytech)
|
||||
|
||||
PKG_NAME="beetle-psx-lr"
|
||||
PKG_VERSION="379793f1005b1d8810b99f81fe7b5f9126831c89"
|
||||
PKG_VERSION="9d07ee164ce18d5c98a12c1fb48d637306d4e8ee"
|
||||
PKG_LICENSE="GPLv2"
|
||||
PKG_SITE="https://git.libretro.com/libretro/beetle-psx-libretro"
|
||||
PKG_URL="${PKG_SITE}.git"
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
# Copyright (C) 2022-present BrooksyTech (https://github.com/brooksytech)
|
||||
|
||||
PKG_NAME="bsnes-lr"
|
||||
PKG_VERSION="609fffeb3ebaad1d9b5365ee648e7dd9c3a4eb31"
|
||||
PKG_VERSION="040865291367ce32566c36986d0b182be5948c9d"
|
||||
PKG_LICENSE="GPLv2"
|
||||
PKG_SITE="https://github.com/libretro/bsnes-libretro"
|
||||
PKG_URL="${PKG_SITE}/archive/${PKG_VERSION}.tar.gz"
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
################################################################################
|
||||
|
||||
PKG_NAME="core-info"
|
||||
PKG_VERSION="a51d638d5414bcbe41a3eae21b0bcd6e487acabe"
|
||||
PKG_VERSION="dacae85b406131feb12395a415fdf57fc4745201"
|
||||
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"
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
# Copyright (C) 2022-present BrooksyTech (https://github.com/brooksytech)
|
||||
|
||||
PKG_NAME="desmume-lr"
|
||||
PKG_VERSION="fbd368c8109f95650e1f81bca1facd6d4d8687d7"
|
||||
PKG_VERSION="cf0fcc6ea4a85b7491bdf9adc7bf09748b4be7da"
|
||||
PKG_LICENSE="GPLv2"
|
||||
PKG_SITE="https://git.libretro.com/libretro/desmume"
|
||||
PKG_URL="${PKG_SITE}.git"
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
################################################################################
|
||||
|
||||
PKG_NAME="dosbox-pure-lr"
|
||||
PKG_VERSION="6fde097c1b2eb1b0f263b24a2e39954452dd7100"
|
||||
PKG_VERSION="ab78c4790ef832753f053886b843a469bef23ed0"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPLv2"
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
# Copyright (C) 2023-present Fewtarius
|
||||
|
||||
PKG_NAME="fbneo-lr"
|
||||
PKG_VERSION="48a410325803dc1a1526130fd1726a27e1d21bb0"
|
||||
PKG_VERSION="d3084465295a4e11da151bda42cfcb89fd33f79f"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="Non-commercial"
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
# Copyright (C) 2022-present Fewtarius
|
||||
|
||||
PKG_NAME="flycast-lr"
|
||||
PKG_VERSION="a870fb7f6cdab0a4bfa8dd1c4ecb48db39c1ae34"
|
||||
PKG_VERSION="92a10ba0f0a5ca0d1ec9498962002f4cdcc8e7f6"
|
||||
PKG_SITE="https://github.com/flyinghead/flycast"
|
||||
PKG_URL="${PKG_SITE}.git"
|
||||
PKG_DEPENDS_TARGET="toolchain zlib libzip"
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
################################################################################
|
||||
|
||||
PKG_NAME="genesis-plus-gx-lr"
|
||||
PKG_VERSION="704da4359987bf4a8b73f5011e604d68936fa35c"
|
||||
PKG_VERSION="fe222d4eca340e37c556502452d9cce4bba016c1"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="Non-commercial"
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
################################################################################
|
||||
|
||||
PKG_NAME="genesis-plus-gx-wide-lr"
|
||||
PKG_VERSION="78e77050aef6a4bc438e53cb570bc422d48f65d4"
|
||||
PKG_VERSION="a68a3398634816be0704566a14ea2f4ce1e2a585"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="Non-commercial"
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
################################################################################
|
||||
|
||||
PKG_NAME="glsl-shaders"
|
||||
PKG_VERSION="61256f37a26c1058c5b5233b4cef8de76e89f54f"
|
||||
PKG_VERSION="07a6b9ae8cb1211209d336cd49313ef02658598f"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="aarch64"
|
||||
PKG_LICENSE="GPL"
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
################################################################################
|
||||
|
||||
PKG_NAME="handy-lr"
|
||||
PKG_VERSION="63db085af671bad2929078c55434623b7d4632a1"
|
||||
PKG_VERSION="6122ec6bc5fe8e831a71ed4da06e34e347e3d7b5"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="Zlib"
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
################################################################################
|
||||
|
||||
PKG_NAME="libretro-database"
|
||||
PKG_VERSION="3e7bb62975b7ac33eb494dd68a1f14eb5ce2a5cb"
|
||||
PKG_VERSION="ee6725c9802e6f6c6d493d90c7b9ae4ba5d009f4"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
# Copyright (C) 2019 Trond Haugland (trondah@gmail.com)
|
||||
|
||||
PKG_NAME="mame-lr"
|
||||
PKG_VERSION="e8c89915838d722345f52b320548ed914454181e"
|
||||
PKG_VERSION="4cd28066d8f9e129b1915a72163a10dac84a8731"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPLv2"
|
||||
PKG_SITE="https://github.com/libretro/mame"
|
||||
|
|
|
@ -1,80 +0,0 @@
|
|||
diff --git a/Makefile.libretro b/Makefile.libretro
|
||||
index 31c414be..8de62064 100644
|
||||
--- a/Makefile.libretro
|
||||
+++ b/Makefile.libretro
|
||||
@@ -55,6 +55,8 @@ VERBOSE ?= 1
|
||||
# scripts/toolchain.lua)
|
||||
# PTR64 = 1
|
||||
|
||||
+USE_BGFX ?= 0
|
||||
+
|
||||
###########################################################################
|
||||
#
|
||||
# LIBRETRO PLATFORM GUESSING
|
||||
diff --git a/scripts/genie.lua b/scripts/genie.lua
|
||||
index 4655b3f4..495308a8 100644
|
||||
--- a/scripts/genie.lua
|
||||
+++ b/scripts/genie.lua
|
||||
@@ -387,8 +387,22 @@ newoption {
|
||||
description = "Arguments for running debug build.",
|
||||
}
|
||||
|
||||
+newoption {
|
||||
+ trigger = "USE_BGFX",
|
||||
+ description = "Use bgfx.",
|
||||
+ allowed = {
|
||||
+ { "0", "Disabled" },
|
||||
+ { "1", "Enabled" },
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
dofile ("extlib.lua")
|
||||
|
||||
+if not _OPTIONS["USE_BGFX"] then
|
||||
+ _OPTIONS["USE_BGFX"] = "0"
|
||||
+end
|
||||
+
|
||||
+
|
||||
if _OPTIONS["SHLIB"]=="1" then
|
||||
LIBTYPE = "SharedLib"
|
||||
else
|
||||
diff --git a/scripts/src/3rdparty.lua b/scripts/src/3rdparty.lua
|
||||
index 664898d1..d720578d 100644
|
||||
--- a/scripts/src/3rdparty.lua
|
||||
+++ b/scripts/src/3rdparty.lua
|
||||
@@ -1249,7 +1249,7 @@
|
||||
--------------------------------------------------
|
||||
-- BGFX library objects
|
||||
--------------------------------------------------
|
||||
-
|
||||
+if not _OPTIONS["use_bgfx"]=="0" then
|
||||
project "bgfx"
|
||||
uuid "d3e7e119-35cf-4f4f-aba0-d3bdcd1b879a"
|
||||
kind "StaticLib"
|
||||
@@ -1433,7 +1433,7 @@
|
||||
"-x objective-c++",
|
||||
}
|
||||
end
|
||||
-
|
||||
+end
|
||||
|
||||
--------------------------------------------------
|
||||
-- PortAudio library objects
|
||||
diff --git a/scripts/src/main.lua b/scripts/src/main.lua
|
||||
index 0b47e662..b19eb646 100644
|
||||
--- a/scripts/src/main.lua 2019-05-22 00:15:58.983419982 +0200
|
||||
+++ b/scripts/src/main.lua 2019-05-22 00:17:39.675345144 +0200
|
||||
@@ -380,8 +380,12 @@
|
||||
ext_lib("portmidi"),
|
||||
}
|
||||
end
|
||||
+ if _OPTIONS["USE_BGFX"]~="0" then
|
||||
+ links {
|
||||
+ "bgfx",
|
||||
+ }
|
||||
+ end
|
||||
links {
|
||||
- "bgfx",
|
||||
"bimg",
|
||||
"bx",
|
||||
"ocore_" .. _OPTIONS["osd"],
|
|
@ -21,7 +21,7 @@
|
|||
################################################################################
|
||||
|
||||
PKG_NAME="mame2003-plus-lr"
|
||||
PKG_VERSION="89298ff12328433c7cdc63d38c65439079afcb5d"
|
||||
PKG_VERSION="5a4eb1e4da0788d265e28480568cbbb92ddd4a84"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="MAME"
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
# Copyright (C) 2020-present Fewtarius
|
||||
|
||||
PKG_NAME="mupen64plus-nx-lr"
|
||||
PKG_VERSION="90dae29e145f5ff07e753d602f2c40583e3afee7"
|
||||
PKG_VERSION="26fd1edd640ff3db49dd5ebb7e54f0de6600fc45"
|
||||
PKG_LICENSE="GPLv2"
|
||||
PKG_SITE="https://github.com/libretro/mupen64plus-libretro-nx"
|
||||
PKG_URL="${PKG_SITE}/archive/${PKG_VERSION}.tar.gz"
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
################################################################################
|
||||
|
||||
PKG_NAME="opera-lr"
|
||||
PKG_VERSION="8a49bb8877611037438aeb857cb182f41ee0e3a1"
|
||||
PKG_VERSION="100ae1e7decefe1f17d98cfcb9f2af4ff8452691"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="LGPL with additional notes"
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
# Copyright (C) 2022-present Fewtarius
|
||||
|
||||
PKG_NAME="pcsx_rearmed-lr"
|
||||
PKG_VERSION="18cdd2ad8875d26bac6661dc3e2a58d357d2a463"
|
||||
PKG_VERSION="d6ecbd77ccd78166445518d8737ac833e1265aa2"
|
||||
PKG_ARCH="arm aarch64"
|
||||
PKG_LICENSE="GPLv2"
|
||||
PKG_SITE="https://github.com/libretro/pcsx_rearmed"
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
PKG_NAME="picodrive-lr"
|
||||
PKG_VERSION="8ee2ca91bc26a2e173989e13f639b2f9bcd9c84b"
|
||||
PKG_VERSION="570319349588288f64c676123244acdb0be33881"
|
||||
PKG_LICENSE="MAME"
|
||||
PKG_SITE="https://github.com/libretro/picodrive"
|
||||
PKG_URL="${PKG_SITE}.git"
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
# Copyright (C) 2022-present BrooksyTech (https://github.com/brooksytech)
|
||||
|
||||
PKG_NAME="play-lr"
|
||||
PKG_VERSION="b33834af08a4954f06be215eee80a72e7a378e91"
|
||||
PKG_VERSION="58216c3110abcaf582c6eb9c8fad62ec92945ae6"
|
||||
PKG_ARCH="x86_64"
|
||||
PKG_LICENSE="GPLv2"
|
||||
PKG_SITE="https://github.com/jpd002/Play-"
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
################################################################################
|
||||
|
||||
PKG_NAME="ppsspp-lr"
|
||||
PKG_VERSION="56c2974e5e0a115d779daa0bcbc11e0b8d88f0c2"
|
||||
PKG_VERSION="fabcaf6e045983e3cb6dcc2000b034730e8b71d3"
|
||||
PKG_LICENSE="GPLv2"
|
||||
PKG_SITE="https://github.com/hrydgard/ppsspp"
|
||||
PKG_URL="https://github.com/hrydgard/ppsspp.git"
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
################################################################################
|
||||
|
||||
PKG_NAME="slang-shaders"
|
||||
PKG_VERSION="89530c1decc40fde5a0967c8a379a73d5b8c1e84"
|
||||
PKG_VERSION="8f9aa4e8a0b7a42d7774b05fb0fd9ea362eab4d9"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL"
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
################################################################################
|
||||
|
||||
PKG_NAME="stella-lr"
|
||||
PKG_VERSION="72227788b144be747419226187f7d5f07170bd37"
|
||||
PKG_VERSION="58c12ca2542dafcd8dd216689a3f71fb11fe0bc4"
|
||||
PKG_REV="1"
|
||||
PKG_LICENSE="GPL2"
|
||||
PKG_SITE="https://github.com/stella-emu/stella"
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
# Maintenance 2020 351ELEC team (https://github.com/fewtarius/351ELEC)
|
||||
|
||||
PKG_NAME="swanstation-lr"
|
||||
PKG_VERSION="27aad70ef926637be6e5a9bdab79f2a75d6b16fe"
|
||||
PKG_VERSION="8f6fecaa778a066c141196838ee5c1308576edfe"
|
||||
PKG_ARCH=""
|
||||
PKG_LICENSE="GPLv3"
|
||||
PKG_SITE="https://github.com/libretro/swanstation"
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
################################################################################
|
||||
|
||||
PKG_NAME="tic80-lr"
|
||||
PKG_VERSION="68b94ee596e1ac218b8b9685fd0485c7ee8d2f18"
|
||||
PKG_VERSION="02fd0eb858dc20ff4d67735ad239682b3f08b8a1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPLv3"
|
||||
PKG_SITE="https://github.com/nesbox/TIC-80"
|
||||
|
|
|
@ -16,7 +16,7 @@ case ${DEVICE} in
|
|||
PKG_CMAKE_OPTS_TARGET+=" -DUSE_DRMKMS=ON -DENABLE_EGL=ON -DUSE_MALI=OFF"
|
||||
;;
|
||||
*)
|
||||
PKG_VERSION="0575588e20d7c36a1a9a79e1ab90d6325fa9cda6"
|
||||
PKG_VERSION="0798292"
|
||||
PKG_PATCH_DIRS+=" wayland"
|
||||
;;
|
||||
esac
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
# Copyright (C) 2018-present 5schatten (https://github.com/5schatten)
|
||||
|
||||
PKG_NAME="hatarisa"
|
||||
PKG_VERSION="1b42c9fb4a4d6e3b537ad3d56bf46b8353c615ce"
|
||||
PKG_VERSION="a3e4b6da1cdd75e74532ed79050b920a6df94301"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="https://github.com/hatari/hatari"
|
||||
PKG_URL="https://github.com/hatari/hatari/archive/${PKG_VERSION}.tar.gz"
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
# Copyright (C) 2022-present Fewtarius
|
||||
|
||||
PKG_NAME="hypseus-singe"
|
||||
PKG_VERSION="329b748812acb2693e4bba2bc332510ac397867d"
|
||||
PKG_VERSION="fb981e2c2f963d32d5dbf88083539ef6762bbc85"
|
||||
PKG_REV="1"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="GPL3"
|
||||
|
|
|
@ -7,7 +7,7 @@ PKG_REV="1"
|
|||
PKG_ARCH="any"
|
||||
PKG_SITE="https://github.com/hrydgard/ppsspp"
|
||||
PKG_URL="${PKG_SITE}.git"
|
||||
PKG_VERSION="56c2974e5e0a115d779daa0bcbc11e0b8d88f0c2"
|
||||
PKG_VERSION="fabcaf6e045983e3cb6dcc2000b034730e8b71d3"
|
||||
PKG_LICENSE="GPLv2"
|
||||
PKG_DEPENDS_TARGET="toolchain ffmpeg libzip SDL2 zlib zip"
|
||||
PKG_SHORTDESC="PPSSPPDL"
|
||||
|
|
|
@ -1,22 +1,32 @@
|
|||
diff --git a/SDL/SDLMain.cpp b/SDL/SDLMain.cpp
|
||||
index d81157d83..3eaf5af42 100644
|
||||
index 86bd19131..99bc80d1f 100644
|
||||
--- a/SDL/SDLMain.cpp
|
||||
+++ b/SDL/SDLMain.cpp
|
||||
@@ -996,12 +996,7 @@ int main(int argc, char *argv[]) {
|
||||
g_Config.iWindowWidth = new_width;
|
||||
g_Config.iWindowHeight = new_height;
|
||||
}
|
||||
- // Hide/Show cursor correctly toggling fullscreen
|
||||
- if (lastUIState == UISTATE_INGAME && fullscreen && !g_Config.bShowTouchControls) {
|
||||
- SDL_ShowCursor(SDL_DISABLE);
|
||||
- } else if (lastUIState != UISTATE_INGAME || !fullscreen) {
|
||||
- SDL_ShowCursor(SDL_ENABLE);
|
||||
- }
|
||||
+ SDL_ShowCursor(SDL_DISABLE);
|
||||
break;
|
||||
}
|
||||
@@ -795,12 +795,7 @@ static void ProcessSDLEvent(SDL_Window *window, const SDL_Event &event, InputSta
|
||||
g_Config.iWindowWidth = new_width;
|
||||
g_Config.iWindowHeight = new_height;
|
||||
}
|
||||
- // Hide/Show cursor correctly toggling fullscreen
|
||||
- if (lastUIState == UISTATE_INGAME && fullscreen && !g_Config.bShowTouchControls) {
|
||||
- SDL_ShowCursor(SDL_DISABLE);
|
||||
- } else if (lastUIState != UISTATE_INGAME || !fullscreen) {
|
||||
- SDL_ShowCursor(SDL_ENABLE);
|
||||
- }
|
||||
+ SDL_ShowCursor(SDL_DISABLE);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -1295,10 +1290,7 @@ int main(int argc, char *argv[]) {
|
||||
@@ -1382,9 +1377,7 @@ int main(int argc, char *argv[]) {
|
||||
printf("Init from thread error: '%s'\n", error_message.c_str());
|
||||
}
|
||||
|
||||
-#ifdef MOBILE_DEVICE
|
||||
SDL_ShowCursor(SDL_DISABLE);
|
||||
-#endif
|
||||
|
||||
if (!useEmuThread) {
|
||||
NativeInitGraphics(graphicsContext);
|
||||
@@ -1436,10 +1429,7 @@ int main(int argc, char *argv[]) {
|
||||
#if !defined(MOBILE_DEVICE)
|
||||
if (lastUIState != GetUIState()) {
|
||||
lastUIState = GetUIState();
|
||||
|
|
|
@ -17,6 +17,93 @@ else
|
|||
unset EMUPERF
|
||||
fi
|
||||
|
||||
#Emulation Station Features
|
||||
GAME=$(echo "${1}"| sed "s#^/.*/##")
|
||||
FSKIP=$(get_setting frame_skip psp "${GAME}")
|
||||
FPS=$(get_setting show_fps psp "${GAME}")
|
||||
IRES=$(get_setting internal_resolution psp "${GAME}")
|
||||
SKIPB=$(get_setting skip_buffer_effects psp "${GAME}")
|
||||
VSYNC=$(get_setting vsync psp "${GAME}")
|
||||
|
||||
#Frame Skip
|
||||
if [ "$FSKIP" = "0" ]
|
||||
then
|
||||
sed -i '/^FrameSkip =/c\FrameSkip = 0' /storage/.config/ppsspp/PSP/SYSTEM/ppsspp.ini
|
||||
sed -i '/^FrameSkipType =/c\FrameSkipType = 0' /storage/.config/ppsspp/PSP/SYSTEM/ppsspp.ini
|
||||
sed -i '/^AutoFrameSkip =/c\AutoFrameSkip = False' /storage/.config/ppsspp/PSP/SYSTEM/ppsspp.ini
|
||||
fi
|
||||
if [ "$FSKIP" = "1" ]
|
||||
then
|
||||
sed -i '/^FrameSkip =/c\FrameSkip = 1' /storage/.config/ppsspp/PSP/SYSTEM/ppsspp.ini
|
||||
sed -i '/^FrameSkipType =/c\FrameSkipType = 0' /storage/.config/ppsspp/PSP/SYSTEM/ppsspp.ini
|
||||
sed -i '/^AutoFrameSkip =/c\AutoFrameSkip = False' /storage/.config/ppsspp/PSP/SYSTEM/ppsspp.ini
|
||||
fi
|
||||
if [ "$FSKIP" = "2" ]
|
||||
then
|
||||
sed -i '/^FrameSkip =/c\FrameSkip = 2' /storage/.config/ppsspp/PSP/SYSTEM/ppsspp.ini
|
||||
sed -i '/^FrameSkipType =/c\FrameSkipType = 0' /storage/.config/ppsspp/PSP/SYSTEM/ppsspp.ini
|
||||
sed -i '/^AutoFrameSkip =/c\AutoFrameSkip = False' /storage/.config/ppsspp/PSP/SYSTEM/ppsspp.ini
|
||||
fi
|
||||
if [ "$FSKIP" = "3" ]
|
||||
then
|
||||
sed -i '/^FrameSkip =/c\FrameSkip = 3' /storage/.config/ppsspp/PSP/SYSTEM/ppsspp.ini
|
||||
sed -i '/^FrameSkipType =/c\FrameSkipType = 0' /storage/.config/ppsspp/PSP/SYSTEM/ppsspp.ini
|
||||
sed -i '/^AutoFrameSkip =/c\AutoFrameSkip = False' /storage/.config/ppsspp/PSP/SYSTEM/ppsspp.ini
|
||||
fi
|
||||
if [ "$FSKIP" = "auto" ]
|
||||
then
|
||||
sed -i '/AutoFrameSkip =/c\AutoFrameSkip = True' /storage/.config/ppsspp/PSP/SYSTEM/ppsspp.ini
|
||||
fi
|
||||
|
||||
|
||||
#Internal Resolution
|
||||
if [ "$IRES" = "1" ]
|
||||
then
|
||||
sed -i '/^InternalResolution/c\InternalResolution = 1' /storage/.config/ppsspp/PSP/SYSTEM/ppsspp.ini
|
||||
fi
|
||||
if [ "$IRES" = "2" ]
|
||||
then
|
||||
sed -i '/^InternalResolution/c\InternalResolution = 2' /storage/.config/ppsspp/PSP/SYSTEM/ppsspp.ini
|
||||
fi
|
||||
if [ "$IRES" = "3" ]
|
||||
then
|
||||
sed -i '/^InternalResolution/c\InternalResolution = 3' /storage/.config/ppsspp/PSP/SYSTEM/ppsspp.ini
|
||||
fi
|
||||
if [ "$IRES" = "4" ]
|
||||
then
|
||||
sed -i '/^InternalResolution/c\InternalResolution = 4' /storage/.config/ppsspp/PSP/SYSTEM/ppsspp.ini
|
||||
fi
|
||||
|
||||
#Show FPS
|
||||
if [ "$FPS" = "0" ]
|
||||
then
|
||||
sed -i '/^iShowStatusFlags =/c\iShowStatusFlags = 0' /storage/.config/ppsspp/PSP/SYSTEM/ppsspp.ini
|
||||
fi
|
||||
if [ "$FPS" = "1" ]
|
||||
then
|
||||
sed -i '/^iShowStatusFlags =/c\iShowStatusFlags = 2' /storage/.config/ppsspp/PSP/SYSTEM/ppsspp.ini
|
||||
fi
|
||||
|
||||
#Skip Buffer Effects
|
||||
if [ "$SKIPB" = "0" ]
|
||||
then
|
||||
sed -i '/^SkipBufferEffects =/c\SkipBufferEffects = False' /storage/.config/ppsspp/PSP/SYSTEM/ppsspp.ini
|
||||
fi
|
||||
if [ "$SKIPB" = "1" ]
|
||||
then
|
||||
sed -i '/^SkipBufferEffects =/c\SkipBufferEffects = True' /storage/.config/ppsspp/PSP/SYSTEM/ppsspp.ini
|
||||
fi
|
||||
|
||||
#VSYNC
|
||||
if [ "$VSYNC" = "0" ]
|
||||
then
|
||||
sed -i '/^VSyncInterval =/c\VSyncInterval = False' /storage/.config/ppsspp/PSP/SYSTEM/ppsspp.ini
|
||||
fi
|
||||
if [ "$VSYNC" = "1" ]
|
||||
then
|
||||
sed -i '/^VSyncInterval =/c\VSyncInterval = True' /storage/.config/ppsspp/PSP/SYSTEM/ppsspp.ini
|
||||
fi
|
||||
|
||||
ARG=${1//[\\]/}
|
||||
jslisten set "-9 ppsspp"
|
||||
${EMUPERF} ppsspp --pause-menu-exit "${ARG}"
|
||||
|
|
|
@ -6,7 +6,7 @@ PKG_LICENSE="GPLv2"
|
|||
PKG_DEPENDS_TARGET="toolchain libevdev libdrm ffmpeg zlib libpng lzo libusb zstd ecm"
|
||||
PKG_SITE="https://github.com/shiiion/dolphin"
|
||||
PKG_URL="${PKG_SITE}.git"
|
||||
PKG_VERSION="7f7af1c5dd9fba54b785add7c6cf532cae9cca63"
|
||||
PKG_VERSION="48dbd3a4a7249948d3e7e21b20842d493c3b00cb"
|
||||
PKG_LONGDESC="PrimeHack – A Dolphin Emulator fork for Metroid Prime Trilogy."
|
||||
PKG_PATCH_DIRS+=" wayland"
|
||||
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
# Copyright (C) 2023-present Fewtarius
|
||||
|
||||
PKG_NAME="retroarch"
|
||||
PKG_VERSION="62f3840e3883cf64c126c39b9668e6bb59a44606"
|
||||
PKG_VERSION="6733d6da57d58a07b5fd6ceae129c538d87d0483"
|
||||
PKG_SITE="https://github.com/libretro/RetroArch"
|
||||
PKG_URL="${PKG_SITE}.git"
|
||||
PKG_LICENSE="GPLv3"
|
||||
|
@ -98,8 +98,6 @@ makeinstall_target() {
|
|||
cp ${PKG_BUILD}/retroarch ${INSTALL}/usr/bin
|
||||
mkdir -p ${INSTALL}/usr/share/retroarch/filters
|
||||
|
||||
cp ${PKG_DIR}/scripts/mkcontroller ${INSTALL}/usr/bin
|
||||
|
||||
case ${ARCH} in
|
||||
aarch64)
|
||||
if [ -f ${ROOT}/build.${DISTRO}-${DEVICE}.arm/retroarch-*/.install_pkg/usr/bin/retroarch ]; then
|
||||
|
|
|
@ -23,7 +23,7 @@ audio_enable_menu_notice = "false"
|
|||
audio_enable_menu_ok = "false"
|
||||
audio_fastforward_mute = "false"
|
||||
audio_filter_dir = "/usr/share/retroarch/filters/64bit/audio"
|
||||
audio_latency = "64"
|
||||
audio_latency = "32"
|
||||
audio_max_timing_skew = "0.049999"
|
||||
audio_mixer_mute_enable = "false"
|
||||
audio_mixer_volume = "0.000000"
|
||||
|
|
|
@ -23,7 +23,7 @@ audio_enable_menu_ok = "false"
|
|||
audio_enable = "true"
|
||||
audio_fastforward_mute = "false"
|
||||
audio_filter_dir = "~/.config/retroarch/filters/audio"
|
||||
audio_latency = "64"
|
||||
audio_latency = "32"
|
||||
audio_max_timing_skew = "0.049999"
|
||||
audio_mixer_mute_enable = "false"
|
||||
audio_mixer_volume = "0.000000"
|
||||
|
|
|
@ -23,7 +23,7 @@ audio_enable_menu_ok = "false"
|
|||
audio_enable = "true"
|
||||
audio_fastforward_mute = "false"
|
||||
audio_filter_dir = "~/.config/retroarch/filters/audio"
|
||||
audio_latency = "64"
|
||||
audio_latency = "32"
|
||||
audio_max_timing_skew = "0.049999"
|
||||
audio_mixer_mute_enable = "false"
|
||||
audio_mixer_volume = "0.000000"
|
||||
|
|
|
@ -23,7 +23,7 @@ audio_enable_menu_ok = "false"
|
|||
audio_enable = "true"
|
||||
audio_fastforward_mute = "false"
|
||||
audio_filter_dir = "~/.config/retroarch/filters/audio"
|
||||
audio_latency = "64"
|
||||
audio_latency = "32"
|
||||
audio_max_timing_skew = "0.049999"
|
||||
audio_mixer_mute_enable = "false"
|
||||
audio_mixer_volume = "0.000000"
|
||||
|
|
|
@ -23,7 +23,7 @@ audio_enable_menu_ok = "false"
|
|||
audio_enable = "true"
|
||||
audio_fastforward_mute = "false"
|
||||
audio_filter_dir = "~/.config/retroarch/filters/audio"
|
||||
audio_latency = "64"
|
||||
audio_latency = "32"
|
||||
audio_max_timing_skew = "0.049999"
|
||||
audio_mixer_mute_enable = "false"
|
||||
audio_mixer_volume = "0.000000"
|
||||
|
|
|
@ -23,7 +23,7 @@ audio_enable_menu_ok = "false"
|
|||
audio_enable = "true"
|
||||
audio_fastforward_mute = "false"
|
||||
audio_filter_dir = "~/.config/retroarch/filters/audio"
|
||||
audio_latency = "64"
|
||||
audio_latency = "32"
|
||||
audio_max_timing_skew = "0.049999"
|
||||
audio_mixer_mute_enable = "false"
|
||||
audio_mixer_volume = "0.000000"
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
# Copyright (C) 2020-present Fewtarius
|
||||
|
||||
PKG_NAME="scummvmsa"
|
||||
PKG_VERSION="128afa488aebdf5e4226008fdf095ff8d3bfc22c"
|
||||
PKG_VERSION="b347be081cb35889bebc191165fa88f5261932ba"
|
||||
PKG_REV="1"
|
||||
PKG_LICENSE="GPL2"
|
||||
PKG_SITE="https://github.com/scummvm/scummvm"
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
# Copyright (C) 2022-present BrooksyTech (https://github.com/brooksytech)
|
||||
|
||||
PKG_NAME="yuzu-sa"
|
||||
PKG_VERSION="2754f6c8831f44d91ecaf2d5f3fe461942e71136"
|
||||
PKG_VERSION="9d3a293a4ea17b60146c10e7561c0fd1219fd6c1"
|
||||
PKG_ARCH="x86_64"
|
||||
PKG_LICENSE="GPLv3"
|
||||
PKG_SITE="https://github.com/yuzu-emu/yuzu"
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
# Copyright (C) 2020-present Fewtarius
|
||||
|
||||
PKG_NAME="retroarch-joypads"
|
||||
PKG_VERSION="433c970928beba746f3c3ca97d9c70d3ecdf524e"
|
||||
PKG_VERSION="5666e46bb89caf4e9af358fdb97a2b384cb62f36"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="https://github.com/libretro/retroarch-joypad-autoconfig"
|
||||
PKG_URL="${PKG_SITE}.git"
|
||||
|
|
|
@ -89,9 +89,8 @@ fi
|
|||
PKG_CONFIGURE_OPTS_TARGET+=" --enable-video-wayland --enable-video-wayland-qt-touch --enable-wayland-shared"
|
||||
fi
|
||||
|
||||
if [ "$PULSEAUDIO_SUPPORT" = yes ]; then
|
||||
PKG_DEPENDS_TARGET="${PKG_DEPENDS_TARGET} pulseaudio"
|
||||
|
||||
if [ "${PIPEWIRE_SUPPORT}" = yes ]; then
|
||||
PKG_DEPENDS_TARGET="${PKG_DEPENDS_TARGET} alsa pulseaudio pipewire"
|
||||
PKG_CONFIGURE_OPTS_TARGET="${PKG_CONFIGURE_OPTS_TARGET} --enable-pulseaudio --enable-pulseaudio-shared"
|
||||
else
|
||||
PKG_CONFIGURE_OPTS_TARGET="${PKG_CONFIGURE_OPTS_TARGET} --disable-pulseaudio --disable-pulseaudio-shared"
|
||||
|
|
|
@ -1,123 +0,0 @@
|
|||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
# Copyright (C) 2018-present 5schatten (https://github.com/5schatten)
|
||||
# Copyright (C) 2022-present Fewtarius
|
||||
|
||||
PKG_NAME="SDL2-rotated"
|
||||
PKG_VERSION="$(get_pkg_version SDL2)"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="https://www.libsdl.org/"
|
||||
PKG_URL="https://www.libsdl.org/release/SDL2-${PKG_VERSION}.tar.gz"
|
||||
PKG_DEPENDS_TARGET="toolchain alsa-lib systemd dbus pulseaudio libdrm"
|
||||
PKG_LONGDESC="Simple DirectMedia Layer is a cross-platform development library designed to provide low level access to audio, keyboard, mouse, joystick, and graphics hardware."
|
||||
PKG_DEPENDS_HOST="toolchain:host distutilscross:host"
|
||||
PKG_PATCH_DIRS+="${DEVICE}"
|
||||
|
||||
if [ ! "${OPENGL}" = "no" ]; then
|
||||
PKG_DEPENDS_TARGET+=" ${OPENGL} glu"
|
||||
PKG_CMAKE_OPTS_TARGET+=" -DSDL_OPENGL=ON \
|
||||
-DVIDEO_OPENGL=ON \
|
||||
-DVIDEO_KMSDRM=OFF"
|
||||
else
|
||||
PKG_CMAKE_OPTS_TARGET+=" -DSDL_OPENGL=OFF \
|
||||
-DVIDEO_OPENGL=OFF \
|
||||
-DVIDEO_KMSDRM=OFF"
|
||||
fi
|
||||
|
||||
if [ "${OPENGLES_SUPPORT}" = "yes" ]; then
|
||||
PKG_DEPENDS_TARGET+=" ${OPENGLES}"
|
||||
PKG_CMAKE_OPTS_TARGET+=" -DSDL_OPENGLES=ON \
|
||||
-DVIDEO_OPENGLES=ON \
|
||||
-DVIDEO_KMSDRM=ON"
|
||||
else
|
||||
PKG_CMAKE_OPTS_TARGET+=" -DSDL_OPENGLES=OFF \
|
||||
-DVIDEO_OPENGLES=OFF \
|
||||
-DVIDEO_KMSDRM=OFF"
|
||||
fi
|
||||
|
||||
if [ "${VULKAN_SUPPORT}" = "yes" ]; then
|
||||
PKG_DEPENDS_TARGET+=" vulkan-loader vulkan-headers"
|
||||
PKG_CMAKE_OPTS_TARGET+=" -DSDL_VULKAN=ON \
|
||||
-DVIDEO_OPENGL=OFF \
|
||||
-DVIDEO_VULKAN=ON"
|
||||
else
|
||||
PKG_CMAKE_OPTS_TARGET+=" -DSDL_VULKAN=OFF \
|
||||
-DVIDEO_VULKAN=OFF"
|
||||
fi
|
||||
|
||||
if [ "${DISPLAYSERVER}" = "wl" ]
|
||||
then
|
||||
PKG_DEPENDS_TARGET+=" wayland ${WINDOWMANAGER}"
|
||||
PKG_CMAKE_OPTS_TARGET+=" -DSDL_WAYLAND=ON \
|
||||
-DVIDEO_WAYLAND=ON \
|
||||
-DVIDEO_WAYLAND_QT_TOUCH=OFF \
|
||||
-DWAYLAND_SHARED=ON \
|
||||
-DVIDEO_X11=OFF \
|
||||
-DSDL_X11=OFF"
|
||||
else
|
||||
PKG_CMAKE_OPTS_TARGET+=" -DVIDEO_WAYLAND=OFF \
|
||||
-DVIDEO_WAYLAND_QT_TOUCH=ON \
|
||||
-DWAYLAND_SHARED=OFF \
|
||||
-DVIDEO_X11=OFF \
|
||||
-DSDL_X11=OFF"
|
||||
fi
|
||||
|
||||
PKG_DEPENDS_TARGET+=" librga"
|
||||
pre_make_host() {
|
||||
sed -i "s| -lrga||g" ${PKG_BUILD}/CMakeLists.txt
|
||||
}
|
||||
pre_make_target() {
|
||||
if ! `grep -rnw "${PKG_BUILD}/CMakeLists.txt" -e '-lrga'`; then
|
||||
sed -i "s|--no-undefined|--no-undefined -lrga|" ${PKG_BUILD}/CMakeLists.txt
|
||||
fi
|
||||
}
|
||||
|
||||
pre_configure_target(){
|
||||
export LDFLAGS="${LDFLAGS} -ludev"
|
||||
PKG_CMAKE_OPTS_TARGET+="-DSDL_STATIC=OFF \
|
||||
-DLIBC=ON \
|
||||
-DGCC_ATOMICS=ON \
|
||||
-DALTIVEC=OFF \
|
||||
-DOSS=OFF \
|
||||
-DALSA=ON \
|
||||
-DALSA_SHARED=ON \
|
||||
-DJACK=OFF \
|
||||
-DJACK_SHARED=OFF \
|
||||
-DESD=OFF \
|
||||
-DESD_SHARED=OFF \
|
||||
-DARTS=OFF \
|
||||
-DARTS_SHARED=OFF \
|
||||
-DNAS=OFF \
|
||||
-DNAS_SHARED=OFF \
|
||||
-DLIBSAMPLERATE=OFF \
|
||||
-DLIBSAMPLERATE_SHARED=OFF \
|
||||
-DSNDIO=OFF \
|
||||
-DDISKAUDIO=OFF \
|
||||
-DDUMMYAUDIO=OFF \
|
||||
-DVIDEO_X11=OFF \
|
||||
-DVIDEO_MIR=OFF \
|
||||
-DMIR_SHARED=OFF \
|
||||
-DVIDEO_COCOA=OFF \
|
||||
-DVIDEO_DIRECTFB=OFF \
|
||||
-DVIDEO_VIVANTE=OFF \
|
||||
-DDIRECTFB_SHARED=OFF \
|
||||
-DFUSIONSOUND=OFF \
|
||||
-DFUSIONSOUND_SHARED=OFF \
|
||||
-DVIDEO_DUMMY=OFF \
|
||||
-DINPUT_TSLIB=ON \
|
||||
-DSDL_HIDAPI_JOYSTICK=ON \
|
||||
-DPTHREADS=ON \
|
||||
-DPTHREADS_SEM=ON \
|
||||
-DDIRECTX=OFF \
|
||||
-DSDL_DLOPEN=ON \
|
||||
-DCLOCK_GETTIME=OFF \
|
||||
-DRPATH=OFF \
|
||||
-DRENDER_D3D=OFF \
|
||||
-DPULSEAUDIO=ON"
|
||||
}
|
||||
|
||||
post_makeinstall_target() {
|
||||
sed -e "s:\(['=LI]\)/usr:\\1${SYSROOT_PREFIX}/usr:g" -i ${SYSROOT_PREFIX}/usr/bin/sdl2-config
|
||||
rm -rf ${INSTALL}/usr/bin
|
||||
mkdir ${INSTALL}/usr/lib/SDL2-rotated
|
||||
mv ${INSTALL}/usr/lib/libSDL* ${INSTALL}/usr/lib/SDL2-rotated
|
||||
}
|
|
@ -1,31 +0,0 @@
|
|||
From 7c4b7b8f46a3d688fe34c30741e260fa08a70813 Mon Sep 17 00:00:00 2001
|
||||
From: Fewtarius <fewtarius@gmail.com>
|
||||
Date: Sun, 4 Apr 2021 09:42:49 -0400
|
||||
Subject: [PATCH] Split V and P/M
|
||||
|
||||
---
|
||||
.../packages/SDL2/patches/0003-no-cursor.patch | 12 ++++++++++++
|
||||
1 file changed, 12 insertions(+)
|
||||
create mode 100644 projects/Rockchip/devices/RG351P/packages/SDL2/patches/0003-no-cursor.patch
|
||||
|
||||
diff --git a/projects/Rockchip/devices/RG351P/packages/SDL2/patches/0003-no-cursor.patch b/projects/Rockchip/devices/RG351P/packages/SDL2/patches/0003-no-cursor.patch
|
||||
new file mode 100644
|
||||
index 00000000..d912a67a
|
||||
--- /dev/null
|
||||
+++ b/projects/Rockchip/devices/RG351P/packages/SDL2/patches/0003-no-cursor.patch
|
||||
@@ -0,0 +1,12 @@
|
||||
+diff -rupN SDL2-2.0.10.orig/src/events/SDL_mouse.c SDL2-2.0.10.new/src/events/SDL_mouse.c
|
||||
+--- SDL2-2.0.10.orig/src/events/SDL_mouse.c 2019-07-25 00:32:36.000000000 -0400
|
||||
++++ SDL2-2.0.10.new/src/events/SDL_mouse.c 2021-01-08 19:35:14.792357252 -0500
|
||||
+@@ -158,7 +158,7 @@ SDL_MouseInit(void)
|
||||
+
|
||||
+ mouse->was_touch_mouse_events = SDL_FALSE; /* no touch to mouse movement event pending */
|
||||
+
|
||||
+- mouse->cursor_shown = SDL_TRUE;
|
||||
++ mouse->cursor_shown = SDL_FALSE;
|
||||
+
|
||||
+ return (0);
|
||||
+ }
|
||||
--
|
||||
2.25.1
|
||||
|
|
@ -1,25 +0,0 @@
|
|||
diff --git a/src/video/SDL_egl.c b/src/video/SDL_egl.c
|
||||
index 87d693e8d..891d588c4 100644
|
||||
--- a/src/video/SDL_egl.c
|
||||
+++ b/src/video/SDL_egl.c
|
||||
@@ -1032,7 +1032,7 @@ SDL_EGL_CreateContext(_THIS, EGLSurface egl_surface)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
- _this->egl_data->egl_swapinterval = 0;
|
||||
+ _this->egl_data->egl_swapinterval = 1;
|
||||
|
||||
if (SDL_EGL_MakeCurrent(_this, egl_surface, egl_context) < 0) {
|
||||
/* Save the SDL error set by SDL_EGL_MakeCurrent */
|
||||
diff --git a/src/video/kmsdrm/SDL_kmsdrmopengles.c b/src/video/kmsdrm/SDL_kmsdrmopengles.c
|
||||
index 3d76284fd..72163286b 100644
|
||||
--- a/src/video/kmsdrm/SDL_kmsdrmopengles.c
|
||||
+++ b/src/video/kmsdrm/SDL_kmsdrmopengles.c
|
||||
@@ -82,6 +82,7 @@ int KMSDRM_GLES_SetSwapInterval(_THIS, int interval) {
|
||||
return SDL_SetError("EGL not initialized");
|
||||
}
|
||||
|
||||
+ interval = 1;
|
||||
if (interval == 0 || interval == 1) {
|
||||
_this->egl_data->egl_swapinterval = interval;
|
||||
} else {
|
|
@ -3,7 +3,7 @@
|
|||
# Copyright (C) 2022-present Fewtarius
|
||||
|
||||
PKG_NAME="SDL2"
|
||||
PKG_VERSION="2.28.1"
|
||||
PKG_VERSION="2.28.2"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="https://www.libsdl.org/"
|
||||
PKG_URL="https://www.libsdl.org/release/SDL2-${PKG_VERSION}.tar.gz"
|
||||
|
@ -12,12 +12,6 @@ PKG_LONGDESC="Simple DirectMedia Layer is a cross-platform development library d
|
|||
PKG_DEPENDS_HOST="toolchain:host distutilscross:host"
|
||||
PKG_PATCH_DIRS+="${DEVICE}"
|
||||
|
||||
case ${ARCH} in
|
||||
arm|aarch64)
|
||||
PKG_DEPENDS_TARGET+=" SDL2-rotated"
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ ! "${OPENGL}" = "no" ]; then
|
||||
PKG_DEPENDS_TARGET+=" ${OPENGL} glu"
|
||||
PKG_CMAKE_OPTS_TARGET+=" -DSDL_OPENGL=ON \
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
From 7c4b7b8f46a3d688fe34c30741e260fa08a70813 Mon Sep 17 00:00:00 2001
|
||||
From b1b9120bdb797b0eda78a367385b178fb711cb7c Mon Sep 17 00:00:00 2001
|
||||
From: Fewtarius <fewtarius@gmail.com>
|
||||
Date: Sun, 4 Apr 2021 09:42:49 -0400
|
||||
Subject: [PATCH] Split V and P/M
|
||||
Subject: [PATCH 1/7] Split V and P/M
|
||||
|
||||
---
|
||||
.../packages/SDL2/patches/0003-no-cursor.patch | 12 ++++++++++++
|
||||
|
@ -10,7 +10,7 @@ Subject: [PATCH] Split V and P/M
|
|||
|
||||
diff --git a/projects/Rockchip/devices/RG351P/packages/SDL2/patches/0003-no-cursor.patch b/projects/Rockchip/devices/RG351P/packages/SDL2/patches/0003-no-cursor.patch
|
||||
new file mode 100644
|
||||
index 00000000..d912a67a
|
||||
index 000000000..d912a67aa
|
||||
--- /dev/null
|
||||
+++ b/projects/Rockchip/devices/RG351P/packages/SDL2/patches/0003-no-cursor.patch
|
||||
@@ -0,0 +1,12 @@
|
||||
|
@ -27,5 +27,5 @@ index 00000000..d912a67a
|
|||
+ return (0);
|
||||
+ }
|
||||
--
|
||||
2.25.1
|
||||
2.20.1
|
||||
|
|
@ -1,25 +1,38 @@
|
|||
From 075da47d122522b66dc87528199a8aaf363309aa Mon Sep 17 00:00:00 2001
|
||||
From: Johnny on Flame <johnnyonflame@hotmail.com>
|
||||
Date: Sun, 6 Aug 2023 20:55:04 +0000
|
||||
Subject: [PATCH 2/7] Force VSync when using KMSDRM.
|
||||
|
||||
---
|
||||
src/video/SDL_egl.c | 2 +-
|
||||
src/video/kmsdrm/SDL_kmsdrmopengles.c | 1 +
|
||||
2 files changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/video/SDL_egl.c b/src/video/SDL_egl.c
|
||||
index 87d693e8d..891d588c4 100644
|
||||
index 8e5f165b5..e270429b1 100644
|
||||
--- a/src/video/SDL_egl.c
|
||||
+++ b/src/video/SDL_egl.c
|
||||
@@ -1032,7 +1032,7 @@ SDL_EGL_CreateContext(_THIS, EGLSurface egl_surface)
|
||||
@@ -1044,7 +1044,7 @@ SDL_GLContext SDL_EGL_CreateContext(_THIS, EGLSurface egl_surface)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
- _this->egl_data->egl_swapinterval = 0;
|
||||
+ _this->egl_data->egl_swapinterval = 1;
|
||||
|
||||
|
||||
if (SDL_EGL_MakeCurrent(_this, egl_surface, egl_context) < 0) {
|
||||
/* Save the SDL error set by SDL_EGL_MakeCurrent */
|
||||
/* Delete the context */
|
||||
diff --git a/src/video/kmsdrm/SDL_kmsdrmopengles.c b/src/video/kmsdrm/SDL_kmsdrmopengles.c
|
||||
index 3d76284fd..72163286b 100644
|
||||
index 8dc2bfdc6..487168203 100644
|
||||
--- a/src/video/kmsdrm/SDL_kmsdrmopengles.c
|
||||
+++ b/src/video/kmsdrm/SDL_kmsdrmopengles.c
|
||||
@@ -82,6 +82,7 @@ int KMSDRM_GLES_SetSwapInterval(_THIS, int interval) {
|
||||
@@ -76,6 +76,7 @@ SDL_EGL_CreateContext_impl(KMSDRM)
|
||||
return SDL_SetError("EGL not initialized");
|
||||
}
|
||||
|
||||
|
||||
+ interval = 1;
|
||||
if (interval == 0 || interval == 1) {
|
||||
_this->egl_data->egl_swapinterval = interval;
|
||||
} else {
|
||||
--
|
||||
2.20.1
|
||||
|
|
@ -1,59 +0,0 @@
|
|||
diff --git a/src/video/kmsdrm/SDL_kmsdrmvideo.c b/src/video/kmsdrm/SDL_kmsdrmvideo.c
|
||||
index fbc2c96..cedc739 100644
|
||||
--- a/src/video/kmsdrm/SDL_kmsdrmvideo.c
|
||||
+++ b/src/video/kmsdrm/SDL_kmsdrmvideo.c
|
||||
@@ -609,6 +609,24 @@ void KMSDRM_AddDisplay (_THIS, drmModeConnector *connector, drmModeRes *resource
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
+ // batocera - set resolution
|
||||
+ {
|
||||
+ FILE* fdDrmMode;
|
||||
+ int drmMode;
|
||||
+ if((fdDrmMode = fopen("/var/run/drmMode", "r")) != NULL) {
|
||||
+ if(fscanf(fdDrmMode, "%i", &drmMode) == 1) {
|
||||
+ if(drmMode>=0 && drmMode<connector->count_modes) {
|
||||
+ drmModeCrtc *pcrtc = KMSDRM_drmModeGetCrtc(viddata->drm_fd, encoder->crtc_id);
|
||||
+ if(pcrtc != NULL) {
|
||||
+ KMSDRM_drmModeSetCrtc(viddata->drm_fd, pcrtc->crtc_id, pcrtc->buffer_id, 0, 0, &connector->connector_id, 1, &connector->modes[drmMode]);
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+ fclose(fdDrmMode);
|
||||
+ }
|
||||
+ }
|
||||
+ //
|
||||
+
|
||||
/* Try to find a CRTC connected to this encoder */
|
||||
crtc = KMSDRM_drmModeGetCrtc(viddata->drm_fd, encoder->crtc_id);
|
||||
|
||||
@@ -1107,8 +1125,27 @@ KMSDRM_GetDisplayModes(_THIS, SDL_VideoDisplay * display)
|
||||
SDL_DisplayMode mode;
|
||||
int i;
|
||||
|
||||
+ // batocera
|
||||
+ int wantedMode = 0;
|
||||
+ {
|
||||
+ FILE* fdDrmMode;
|
||||
+ int drmMode;
|
||||
+ if((fdDrmMode = fopen("/var/run/drmMode", "r")) != NULL) {
|
||||
+ if(fscanf(fdDrmMode, "%i", &drmMode) == 1) {
|
||||
+ if(drmMode>=0 && drmMode<conn->count_modes) {
|
||||
+ wantedMode = drmMode;
|
||||
+ }
|
||||
+ }
|
||||
+ fclose(fdDrmMode);
|
||||
+ }
|
||||
+ }
|
||||
+ //
|
||||
+
|
||||
for (i = 0; i < conn->count_modes; i++) {
|
||||
- SDL_DisplayModeData *modedata = SDL_calloc(1, sizeof(SDL_DisplayModeData));
|
||||
+ SDL_DisplayModeData *modedata;
|
||||
+ if(i != wantedMode) continue; // batocera
|
||||
+
|
||||
+ modedata = SDL_calloc(1, sizeof(SDL_DisplayModeData));
|
||||
|
||||
if (modedata) {
|
||||
modedata->mode_index = i;
|
||||
|
|
@ -1,7 +1,17 @@
|
|||
diff -rupN SDL2.orig/src/video/kmsdrm/SDL_kmsdrmmouse.c SDL2/src/video/kmsdrm/SDL_kmsdrmmouse.c
|
||||
--- SDL2.orig/src/video/kmsdrm/SDL_kmsdrmmouse.c 2023-07-01 17:04:05.000000000 +0000
|
||||
+++ SDL2/src/video/kmsdrm/SDL_kmsdrmmouse.c 2023-07-26 10:27:12.232726116 +0000
|
||||
@@ -150,6 +150,7 @@ static int KMSDRM_DumpCursorToBO(SDL_Vid
|
||||
From f00e8526825f14b8f6706afeabcbbfe7acfec057 Mon Sep 17 00:00:00 2001
|
||||
From: Johnny on Flame <johnnyonflame@hotmail.com>
|
||||
Date: Sun, 6 Aug 2023 20:58:34 +0000
|
||||
Subject: [PATCH 4/7] KMSDRM: Rotate the cursor
|
||||
|
||||
---
|
||||
src/video/kmsdrm/SDL_kmsdrmmouse.c | 13 +++++++++----
|
||||
1 file changed, 9 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/src/video/kmsdrm/SDL_kmsdrmmouse.c b/src/video/kmsdrm/SDL_kmsdrmmouse.c
|
||||
index 955045a7e..4c445ecf1 100644
|
||||
--- a/src/video/kmsdrm/SDL_kmsdrmmouse.c
|
||||
+++ b/src/video/kmsdrm/SDL_kmsdrmmouse.c
|
||||
@@ -150,6 +150,7 @@ static int KMSDRM_DumpCursorToBO(SDL_VideoDisplay *display, SDL_Cursor *cursor)
|
||||
uint8_t *src_row;
|
||||
|
||||
int i;
|
||||
|
@ -9,7 +19,7 @@ diff -rupN SDL2.orig/src/video/kmsdrm/SDL_kmsdrmmouse.c SDL2/src/video/kmsdrm/SD
|
|||
int ret;
|
||||
|
||||
if (curdata == NULL || !dispdata->cursor_bo) {
|
||||
@@ -170,8 +171,10 @@ static int KMSDRM_DumpCursorToBO(SDL_Vid
|
||||
@@ -170,8 +171,10 @@ static int KMSDRM_DumpCursorToBO(SDL_VideoDisplay *display, SDL_Cursor *cursor)
|
||||
|
||||
/* Copy from the cursor buffer to a buffer that we can dump to the GBM BO. */
|
||||
for (i = 0; i < curdata->h; i++) {
|
||||
|
@ -22,7 +32,7 @@ diff -rupN SDL2.orig/src/video/kmsdrm/SDL_kmsdrmmouse.c SDL2/src/video/kmsdrm/SD
|
|||
}
|
||||
|
||||
/* Dump the cursor buffer to our GBM BO. */
|
||||
@@ -370,6 +373,7 @@ static int KMSDRM_WarpMouseGlobal(int x,
|
||||
@@ -370,6 +373,7 @@ static int KMSDRM_WarpMouseGlobal(int x, int y)
|
||||
|
||||
SDL_Window *window = mouse->focus;
|
||||
SDL_DisplayData *dispdata = (SDL_DisplayData *)SDL_GetDisplayForWindow(window)->driverdata;
|
||||
|
@ -30,7 +40,7 @@ diff -rupN SDL2.orig/src/video/kmsdrm/SDL_kmsdrmmouse.c SDL2/src/video/kmsdrm/SD
|
|||
|
||||
/* Update internal mouse position. */
|
||||
SDL_SendMouseMotion(mouse->focus, mouse->mouseID, 0, x, y);
|
||||
@@ -378,7 +382,7 @@ static int KMSDRM_WarpMouseGlobal(int x,
|
||||
@@ -378,7 +382,7 @@ static int KMSDRM_WarpMouseGlobal(int x, int y)
|
||||
if (dispdata->cursor_bo) {
|
||||
int ret = 0;
|
||||
|
||||
|
@ -39,7 +49,7 @@ diff -rupN SDL2.orig/src/video/kmsdrm/SDL_kmsdrmmouse.c SDL2/src/video/kmsdrm/SD
|
|||
|
||||
if (ret) {
|
||||
SDL_SetError("drmModeMoveCursor() failed.");
|
||||
@@ -432,13 +436,14 @@ static void KMSDRM_MoveCursor(SDL_Cursor
|
||||
@@ -432,13 +436,14 @@ static void KMSDRM_MoveCursor(SDL_Cursor *cursor)
|
||||
|
||||
SDL_Window *window = mouse->focus;
|
||||
SDL_DisplayData *dispdata = (SDL_DisplayData *)SDL_GetDisplayForWindow(window)->driverdata;
|
||||
|
@ -55,4 +65,6 @@ diff -rupN SDL2.orig/src/video/kmsdrm/SDL_kmsdrmmouse.c SDL2/src/video/kmsdrm/SD
|
|||
|
||||
if (ret) {
|
||||
SDL_SetError("drmModeMoveCursor() failed.");
|
||||
Binary files SDL2.orig/src/video/kmsdrm/.SDL_kmsdrmmouse.c.rej.swp and SDL2/src/video/kmsdrm/.SDL_kmsdrmmouse.c.rej.swp differ
|
||||
--
|
||||
2.20.1
|
||||
|
|
@ -1,8 +1,17 @@
|
|||
From 2b837f662b12330e2d5afa867f1b6c1476b93102 Mon Sep 17 00:00:00 2001
|
||||
From: JohnnyonFlame <johnnyonflame@hotmail.com>
|
||||
Date: Tue, 8 Aug 2023 04:01:53 -0300
|
||||
Subject: [PATCH 6/7] drm resolution
|
||||
|
||||
---
|
||||
src/video/kmsdrm/SDL_kmsdrmvideo.c | 39 +++++++++++++++++++++++++++++-
|
||||
1 file changed, 38 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/video/kmsdrm/SDL_kmsdrmvideo.c b/src/video/kmsdrm/SDL_kmsdrmvideo.c
|
||||
index fbc2c96..cedc739 100644
|
||||
index 663c4707c..39eff8c1d 100644
|
||||
--- a/src/video/kmsdrm/SDL_kmsdrmvideo.c
|
||||
+++ b/src/video/kmsdrm/SDL_kmsdrmvideo.c
|
||||
@@ -609,6 +609,24 @@ void KMSDRM_AddDisplay (_THIS, drmModeConnector *connector, drmModeRes *resource
|
||||
@@ -842,6 +842,24 @@ static void KMSDRM_AddDisplay(_THIS, drmModeConnector *connector, drmModeRes *re
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
|
@ -27,7 +36,7 @@ index fbc2c96..cedc739 100644
|
|||
/* Try to find a CRTC connected to this encoder */
|
||||
crtc = KMSDRM_drmModeGetCrtc(viddata->drm_fd, encoder->crtc_id);
|
||||
|
||||
@@ -1107,8 +1125,27 @@ KMSDRM_GetDisplayModes(_THIS, SDL_VideoDisplay * display)
|
||||
@@ -1383,8 +1401,27 @@ void KMSDRM_GetDisplayModes(_THIS, SDL_VideoDisplay *display)
|
||||
SDL_DisplayMode mode;
|
||||
int i;
|
||||
|
||||
|
@ -56,4 +65,6 @@ index fbc2c96..cedc739 100644
|
|||
|
||||
if (modedata) {
|
||||
modedata->mode_index = i;
|
||||
--
|
||||
2.20.1
|
||||
|
|
@ -0,0 +1,30 @@
|
|||
From 35a4dd0e48a82d90157e92c49dc87202a31d4c1c Mon Sep 17 00:00:00 2001
|
||||
From: JohnnyonFlame <johnnyonflame@hotmail.com>
|
||||
Date: Tue, 8 Aug 2023 23:40:52 -0300
|
||||
Subject: [PATCH 7/7] Support building without hacky libmali headers.
|
||||
|
||||
---
|
||||
src/video/kmsdrm/SDL_kmsdrmmouse.c | 7 +++++++
|
||||
1 file changed, 7 insertions(+)
|
||||
|
||||
diff --git a/src/video/kmsdrm/SDL_kmsdrmmouse.c b/src/video/kmsdrm/SDL_kmsdrmmouse.c
|
||||
index 5dcaaaab6..fe17964a9 100644
|
||||
--- a/src/video/kmsdrm/SDL_kmsdrmmouse.c
|
||||
+++ b/src/video/kmsdrm/SDL_kmsdrmmouse.c
|
||||
@@ -109,6 +109,13 @@ void KMSDRM_CreateCursorBO(SDL_VideoDisplay *display)
|
||||
dispdata->cursor_w, dispdata->cursor_h,
|
||||
GBM_FORMAT_ARGB8888, GBM_BO_USE_CURSOR | GBM_BO_USE_WRITE | GBM_BO_USE_LINEAR);
|
||||
|
||||
+ // GBM_BO_USE_LINEAR not supported on mali... retry when this fails.
|
||||
+ if (!dispdata->cursor_bo) {
|
||||
+ dispdata->cursor_bo = KMSDRM_gbm_bo_create(viddata->gbm_dev,
|
||||
+ dispdata->cursor_w, dispdata->cursor_h,
|
||||
+ GBM_FORMAT_ARGB8888, GBM_BO_USE_CURSOR | GBM_BO_USE_WRITE);
|
||||
+ }
|
||||
+
|
||||
if (!dispdata->cursor_bo) {
|
||||
SDL_SetError("Could not create GBM cursor BO");
|
||||
return;
|
||||
--
|
||||
2.20.1
|
||||
|
|
@ -1,6 +1,21 @@
|
|||
diff -rupN SDL2.orig/CMakeLists.txt SDL2/CMakeLists.txt
|
||||
--- SDL2.orig/CMakeLists.txt 2023-07-01 17:04:05.000000000 +0000
|
||||
+++ SDL2/CMakeLists.txt 2023-07-26 10:28:57.254787571 +0000
|
||||
From d60c64d4142a0a706632c50b79474ee51464f973 Mon Sep 17 00:00:00 2001
|
||||
From: Johnny on Flame <johnnyonflame@hotmail.com>
|
||||
Date: Sun, 6 Aug 2023 20:57:02 +0000
|
||||
Subject: [PATCH 3/7] Implement librga framebuffer rotation.
|
||||
|
||||
---
|
||||
CMakeLists.txt | 2 +-
|
||||
Makefile.in | 2 +-
|
||||
src/video/kmsdrm/SDL_kmsdrmopengles.c | 26 +++++++++-
|
||||
src/video/kmsdrm/SDL_kmsdrmsym.h | 2 +-
|
||||
src/video/kmsdrm/SDL_kmsdrmvideo.c | 75 +++++++++++++++++++++++----
|
||||
src/video/kmsdrm/SDL_kmsdrmvideo.h | 8 +++
|
||||
6 files changed, 102 insertions(+), 13 deletions(-)
|
||||
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index d6c82c819..374f24e85 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -663,7 +663,7 @@ if(USE_GCC OR USE_CLANG OR USE_INTELCC)
|
||||
check_c_compiler_flag("" HAVE_NO_UNDEFINED)
|
||||
set(CMAKE_REQUIRED_FLAGS ${ORIG_CMAKE_REQUIRED_FLAGS})
|
||||
|
@ -10,9 +25,10 @@ diff -rupN SDL2.orig/CMakeLists.txt SDL2/CMakeLists.txt
|
|||
endif()
|
||||
endif()
|
||||
|
||||
diff -rupN SDL2.orig/Makefile.in SDL2/Makefile.in
|
||||
--- SDL2.orig/Makefile.in 2023-07-01 17:04:05.000000000 +0000
|
||||
+++ SDL2/Makefile.in 2023-07-26 10:28:57.254787571 +0000
|
||||
diff --git a/Makefile.in b/Makefile.in
|
||||
index eb4c4bc1a..5cd04eeec 100644
|
||||
--- a/Makefile.in
|
||||
+++ b/Makefile.in
|
||||
@@ -23,7 +23,7 @@ CXX = @CXX@
|
||||
INCLUDE = @INCLUDE@
|
||||
CFLAGS = @BUILD_CFLAGS@
|
||||
|
@ -22,9 +38,10 @@ diff -rupN SDL2.orig/Makefile.in SDL2/Makefile.in
|
|||
EXTRA_LDFLAGS = @EXTRA_LDFLAGS@
|
||||
LIBTOOL = @LIBTOOL@
|
||||
INSTALL = @INSTALL@
|
||||
diff -rupN SDL2.orig/src/video/kmsdrm/SDL_kmsdrmopengles.c SDL2/src/video/kmsdrm/SDL_kmsdrmopengles.c
|
||||
--- SDL2.orig/src/video/kmsdrm/SDL_kmsdrmopengles.c 2023-07-01 17:04:05.000000000 +0000
|
||||
+++ SDL2/src/video/kmsdrm/SDL_kmsdrmopengles.c 2023-07-26 10:30:42.776858597 +0000
|
||||
diff --git a/src/video/kmsdrm/SDL_kmsdrmopengles.c b/src/video/kmsdrm/SDL_kmsdrmopengles.c
|
||||
index 487168203..47db85ef1 100644
|
||||
--- a/src/video/kmsdrm/SDL_kmsdrmopengles.c
|
||||
+++ b/src/video/kmsdrm/SDL_kmsdrmopengles.c
|
||||
@@ -29,11 +29,15 @@
|
||||
#include "SDL_kmsdrmopengles.h"
|
||||
#include "SDL_kmsdrmdyn.h"
|
||||
|
@ -41,7 +58,7 @@ diff -rupN SDL2.orig/src/video/kmsdrm/SDL_kmsdrmopengles.c SDL2/src/video/kmsdrm
|
|||
/* EGL implementation of SDL OpenGL support */
|
||||
|
||||
void KMSDRM_GLES_DefaultProfileConfig(_THIS, int *mask, int *major, int *minor)
|
||||
@@ -92,6 +96,7 @@ int KMSDRM_GLES_SwapWindow(_THIS, SDL_Wi
|
||||
@@ -93,6 +97,7 @@ int KMSDRM_GLES_SwapWindow(_THIS, SDL_Window *window)
|
||||
SDL_VideoData *viddata = ((SDL_VideoData *)_this->driverdata);
|
||||
KMSDRM_FBInfo *fb_info;
|
||||
int ret = 0;
|
||||
|
@ -49,7 +66,7 @@ diff -rupN SDL2.orig/src/video/kmsdrm/SDL_kmsdrmopengles.c SDL2/src/video/kmsdrm
|
|||
|
||||
/* Always wait for the previous issued flip before issuing a new one,
|
||||
even if you do async flips. */
|
||||
@@ -135,7 +140,26 @@ int KMSDRM_GLES_SwapWindow(_THIS, SDL_Wi
|
||||
@@ -136,7 +141,26 @@ int KMSDRM_GLES_SwapWindow(_THIS, SDL_Window *window)
|
||||
}
|
||||
|
||||
/* Get an actual usable fb for the next front buffer. */
|
||||
|
@ -77,10 +94,11 @@ diff -rupN SDL2.orig/src/video/kmsdrm/SDL_kmsdrmopengles.c SDL2/src/video/kmsdrm
|
|||
if (fb_info == NULL) {
|
||||
SDL_LogError(SDL_LOG_CATEGORY_VIDEO, "Could not get a framebuffer");
|
||||
return 0;
|
||||
diff -rupN SDL2.orig/src/video/kmsdrm/SDL_kmsdrmsym.h SDL2/src/video/kmsdrm/SDL_kmsdrmsym.h
|
||||
--- SDL2.orig/src/video/kmsdrm/SDL_kmsdrmsym.h 2023-07-01 17:04:05.000000000 +0000
|
||||
+++ SDL2/src/video/kmsdrm/SDL_kmsdrmsym.h 2023-07-26 10:28:57.254787571 +0000
|
||||
@@ -122,7 +122,7 @@ SDL_KMSDRM_SYM(struct gbm_surface *,gbm_
|
||||
diff --git a/src/video/kmsdrm/SDL_kmsdrmsym.h b/src/video/kmsdrm/SDL_kmsdrmsym.h
|
||||
index 8b9e7b257..b33373805 100644
|
||||
--- a/src/video/kmsdrm/SDL_kmsdrmsym.h
|
||||
+++ b/src/video/kmsdrm/SDL_kmsdrmsym.h
|
||||
@@ -122,7 +122,7 @@ SDL_KMSDRM_SYM(struct gbm_surface *,gbm_surface_create,(struct gbm_device *gbm,
|
||||
SDL_KMSDRM_SYM(void,gbm_surface_destroy,(struct gbm_surface *surf))
|
||||
SDL_KMSDRM_SYM(struct gbm_bo *,gbm_surface_lock_front_buffer,(struct gbm_surface *surf))
|
||||
SDL_KMSDRM_SYM(void,gbm_surface_release_buffer,(struct gbm_surface *surf, struct gbm_bo *bo))
|
||||
|
@ -89,9 +107,10 @@ diff -rupN SDL2.orig/src/video/kmsdrm/SDL_kmsdrmsym.h SDL2/src/video/kmsdrm/SDL_
|
|||
|
||||
#undef SDL_KMSDRM_MODULE
|
||||
#undef SDL_KMSDRM_SYM
|
||||
diff -rupN SDL2.orig/src/video/kmsdrm/SDL_kmsdrmvideo.c SDL2/src/video/kmsdrm/SDL_kmsdrmvideo.c
|
||||
--- SDL2.orig/src/video/kmsdrm/SDL_kmsdrmvideo.c 2023-07-01 17:04:05.000000000 +0000
|
||||
+++ SDL2/src/video/kmsdrm/SDL_kmsdrmvideo.c 2023-07-26 10:33:34.282693634 +0000
|
||||
diff --git a/src/video/kmsdrm/SDL_kmsdrmvideo.c b/src/video/kmsdrm/SDL_kmsdrmvideo.c
|
||||
index ebe15fe9c..c5340afa8 100644
|
||||
--- a/src/video/kmsdrm/SDL_kmsdrmvideo.c
|
||||
+++ b/src/video/kmsdrm/SDL_kmsdrmvideo.c
|
||||
@@ -44,6 +44,7 @@
|
||||
#include "SDL_kmsdrmopengles.h"
|
||||
#include "SDL_kmsdrmmouse.h"
|
||||
|
@ -118,7 +137,7 @@ diff -rupN SDL2.orig/src/video/kmsdrm/SDL_kmsdrmvideo.c SDL2/src/video/kmsdrm/SD
|
|||
static int get_driindex(void)
|
||||
{
|
||||
int available = -ENOENT;
|
||||
@@ -330,6 +335,46 @@ static void KMSDRM_FBDestroyCallback(str
|
||||
@@ -330,6 +335,46 @@ static void KMSDRM_FBDestroyCallback(struct gbm_bo *bo, void *data)
|
||||
SDL_free(fb_info);
|
||||
}
|
||||
|
||||
|
@ -165,7 +184,7 @@ diff -rupN SDL2.orig/src/video/kmsdrm/SDL_kmsdrmvideo.c SDL2/src/video/kmsdrm/SD
|
|||
KMSDRM_FBInfo *KMSDRM_FBFromBO(_THIS, struct gbm_bo *bo)
|
||||
{
|
||||
SDL_VideoData *viddata = ((SDL_VideoData *)_this->driverdata);
|
||||
@@ -848,8 +893,8 @@ static void KMSDRM_AddDisplay(_THIS, drm
|
||||
@@ -848,8 +893,8 @@ static void KMSDRM_AddDisplay(_THIS, drmModeConnector *connector, drmModeRes *re
|
||||
modedata->mode_index = mode_index;
|
||||
|
||||
display.driverdata = dispdata;
|
||||
|
@ -176,7 +195,7 @@ diff -rupN SDL2.orig/src/video/kmsdrm/SDL_kmsdrmvideo.c SDL2/src/video/kmsdrm/SD
|
|||
display.desktop_mode.refresh_rate = dispdata->mode.vrefresh;
|
||||
display.desktop_mode.format = SDL_PIXELFORMAT_ARGB8888;
|
||||
display.desktop_mode.driverdata = modedata;
|
||||
@@ -1124,7 +1169,8 @@ static void KMSDRM_DirtySurfaces(SDL_Win
|
||||
@@ -1124,7 +1169,8 @@ static void KMSDRM_DirtySurfaces(SDL_Window *window)
|
||||
or SetWindowFullscreen, send a fake event for now since the actual
|
||||
recreation is deferred */
|
||||
KMSDRM_GetModeToSet(window, &mode);
|
||||
|
@ -186,7 +205,7 @@ diff -rupN SDL2.orig/src/video/kmsdrm/SDL_kmsdrmvideo.c SDL2/src/video/kmsdrm/SD
|
|||
}
|
||||
|
||||
/* This determines the size of the fb, which comes from the GBM surface
|
||||
@@ -1159,13 +1205,13 @@ int KMSDRM_CreateSurfaces(_THIS, SDL_Win
|
||||
@@ -1159,13 +1205,13 @@ int KMSDRM_CreateSurfaces(_THIS, SDL_Window *window)
|
||||
mode that's set in sync with what SDL_video.c thinks is set */
|
||||
KMSDRM_GetModeToSet(window, &dispdata->mode);
|
||||
|
||||
|
@ -203,7 +222,7 @@ diff -rupN SDL2.orig/src/video/kmsdrm/SDL_kmsdrmvideo.c SDL2/src/video/kmsdrm/SD
|
|||
surface_fmt, surface_flags);
|
||||
|
||||
if (!windata->gs) {
|
||||
@@ -1189,7 +1235,7 @@ int KMSDRM_CreateSurfaces(_THIS, SDL_Win
|
||||
@@ -1189,7 +1235,7 @@ int KMSDRM_CreateSurfaces(_THIS, SDL_Window *window)
|
||||
ret = SDL_EGL_MakeCurrent(_this, windata->egl_surface, egl_context);
|
||||
|
||||
SDL_SendWindowEvent(window, SDL_WINDOWEVENT_RESIZED,
|
||||
|
@ -212,7 +231,7 @@ diff -rupN SDL2.orig/src/video/kmsdrm/SDL_kmsdrmvideo.c SDL2/src/video/kmsdrm/SD
|
|||
|
||||
windata->egl_surface_dirty = SDL_FALSE;
|
||||
|
||||
@@ -1272,8 +1318,8 @@ void KMSDRM_GetDisplayModes(_THIS, SDL_V
|
||||
@@ -1272,8 +1318,8 @@ void KMSDRM_GetDisplayModes(_THIS, SDL_VideoDisplay *display)
|
||||
modedata->mode_index = i;
|
||||
}
|
||||
|
||||
|
@ -223,7 +242,7 @@ diff -rupN SDL2.orig/src/video/kmsdrm/SDL_kmsdrmvideo.c SDL2/src/video/kmsdrm/SD
|
|||
mode.refresh_rate = conn->modes[i].vrefresh;
|
||||
mode.format = SDL_PIXELFORMAT_ARGB8888;
|
||||
mode.driverdata = modedata;
|
||||
@@ -1386,6 +1432,13 @@ void KMSDRM_DestroyWindow(_THIS, SDL_Win
|
||||
@@ -1386,6 +1432,13 @@ void KMSDRM_DestroyWindow(_THIS, SDL_Window *window)
|
||||
/*********************************************************************/
|
||||
SDL_free(window->driverdata);
|
||||
window->driverdata = NULL;
|
||||
|
@ -237,7 +256,7 @@ diff -rupN SDL2.orig/src/video/kmsdrm/SDL_kmsdrmvideo.c SDL2/src/video/kmsdrm/SD
|
|||
}
|
||||
|
||||
/**********************************************************************/
|
||||
@@ -1404,6 +1457,7 @@ int KMSDRM_CreateWindow(_THIS, SDL_Windo
|
||||
@@ -1404,6 +1457,7 @@ int KMSDRM_CreateWindow(_THIS, SDL_Window *window)
|
||||
NativeDisplayType egl_display;
|
||||
drmModeModeInfo *mode;
|
||||
int ret = 0;
|
||||
|
@ -245,7 +264,7 @@ diff -rupN SDL2.orig/src/video/kmsdrm/SDL_kmsdrmvideo.c SDL2/src/video/kmsdrm/SD
|
|||
|
||||
/* Allocate window internal data */
|
||||
windata = (SDL_WindowData *)SDL_calloc(1, sizeof(SDL_WindowData));
|
||||
@@ -1519,6 +1573,9 @@ int KMSDRM_CreateWindow(_THIS, SDL_Windo
|
||||
@@ -1519,6 +1573,9 @@ int KMSDRM_CreateWindow(_THIS, SDL_Window *window)
|
||||
SDL_SetMouseFocus(window);
|
||||
SDL_SetKeyboardFocus(window);
|
||||
|
||||
|
@ -255,9 +274,10 @@ diff -rupN SDL2.orig/src/video/kmsdrm/SDL_kmsdrmvideo.c SDL2/src/video/kmsdrm/SD
|
|||
/* Tell the app that the window has moved to top-left. */
|
||||
SDL_SendWindowEvent(window, SDL_WINDOWEVENT_MOVED, 0, 0);
|
||||
|
||||
diff -rupN SDL2.orig/src/video/kmsdrm/SDL_kmsdrmvideo.h SDL2/src/video/kmsdrm/SDL_kmsdrmvideo.h
|
||||
--- SDL2.orig/src/video/kmsdrm/SDL_kmsdrmvideo.h 2023-07-01 17:04:05.000000000 +0000
|
||||
+++ SDL2/src/video/kmsdrm/SDL_kmsdrmvideo.h 2023-07-26 10:28:57.254787571 +0000
|
||||
diff --git a/src/video/kmsdrm/SDL_kmsdrmvideo.h b/src/video/kmsdrm/SDL_kmsdrmvideo.h
|
||||
index b48f6ef70..890575fb8 100644
|
||||
--- a/src/video/kmsdrm/SDL_kmsdrmvideo.h
|
||||
+++ b/src/video/kmsdrm/SDL_kmsdrmvideo.h
|
||||
@@ -32,6 +32,10 @@
|
||||
#include <xf86drmMode.h>
|
||||
#include <gbm.h>
|
||||
|
@ -280,3 +300,6 @@ diff -rupN SDL2.orig/src/video/kmsdrm/SDL_kmsdrmvideo.h SDL2/src/video/kmsdrm/SD
|
|||
} SDL_VideoData;
|
||||
|
||||
typedef struct SDL_DisplayModeData
|
||||
--
|
||||
2.20.1
|
||||
|
|
@ -0,0 +1,356 @@
|
|||
From 0e53103957dd75be9140a474be343a6b7cc3cc9e Mon Sep 17 00:00:00 2001
|
||||
From: JohnnyonFlame <johnnyonflame@hotmail.com>
|
||||
Date: Tue, 8 Aug 2023 03:55:43 -0300
|
||||
Subject: [PATCH 5/7] KMSDRM: Rotation should respect panel orientation.
|
||||
|
||||
---
|
||||
src/video/kmsdrm/SDL_kmsdrmdyn.h | 8 ++
|
||||
src/video/kmsdrm/SDL_kmsdrmmouse.c | 60 +++++++++++++-
|
||||
src/video/kmsdrm/SDL_kmsdrmvideo.c | 122 +++++++++++++++++++++++------
|
||||
src/video/kmsdrm/SDL_kmsdrmvideo.h | 2 +
|
||||
4 files changed, 166 insertions(+), 26 deletions(-)
|
||||
|
||||
diff --git a/src/video/kmsdrm/SDL_kmsdrmdyn.h b/src/video/kmsdrm/SDL_kmsdrmdyn.h
|
||||
index 319e3f0e3..e17e97e8e 100644
|
||||
--- a/src/video/kmsdrm/SDL_kmsdrmdyn.h
|
||||
+++ b/src/video/kmsdrm/SDL_kmsdrmdyn.h
|
||||
@@ -32,6 +32,14 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
+enum drm_panel_orientation {
|
||||
+ DRM_MODE_PANEL_ORIENTATION_UNKNOWN = -1,
|
||||
+ DRM_MODE_PANEL_ORIENTATION_NORMAL = 0,
|
||||
+ DRM_MODE_PANEL_ORIENTATION_BOTTOM_UP,
|
||||
+ DRM_MODE_PANEL_ORIENTATION_LEFT_UP,
|
||||
+ DRM_MODE_PANEL_ORIENTATION_RIGHT_UP,
|
||||
+};
|
||||
+
|
||||
int SDL_KMSDRM_LoadSymbols(void);
|
||||
void SDL_KMSDRM_UnloadSymbols(void);
|
||||
|
||||
diff --git a/src/video/kmsdrm/SDL_kmsdrmmouse.c b/src/video/kmsdrm/SDL_kmsdrmmouse.c
|
||||
index 4c445ecf1..5dcaaaab6 100644
|
||||
--- a/src/video/kmsdrm/SDL_kmsdrmmouse.c
|
||||
+++ b/src/video/kmsdrm/SDL_kmsdrmmouse.c
|
||||
@@ -170,10 +170,30 @@ static int KMSDRM_DumpCursorToBO(SDL_VideoDisplay *display, SDL_Cursor *cursor)
|
||||
}
|
||||
|
||||
/* Copy from the cursor buffer to a buffer that we can dump to the GBM BO. */
|
||||
+ uintptr_t src_buf = (uintptr_t)curdata->buffer;
|
||||
+ uintptr_t dst_buf = (uintptr_t)ready_buffer;
|
||||
for (i = 0; i < curdata->h; i++) {
|
||||
for (j = 0; j < curdata->w; j++) {
|
||||
- src_row = ((uint32_t*)curdata->buffer)[i * curdata->w + j];
|
||||
- SDL_memcpy(ready_buffer + ((curdata->w - j + 1) * bo_stride) + i, &src_row, 4);
|
||||
+ uintptr_t src_pixel = src_buf + (i * curdata->w + j) * 4;
|
||||
+ uintptr_t dst_pixel;
|
||||
+
|
||||
+ int x, y;
|
||||
+ if (dispdata->orientation == 0) {
|
||||
+ x = j;
|
||||
+ y = i;
|
||||
+ } else if (dispdata->orientation == 1) {
|
||||
+ x = curdata->w - i - 1;
|
||||
+ y = j;
|
||||
+ } else if (dispdata->orientation == 2) {
|
||||
+ x = curdata->h - j - 1;
|
||||
+ y = curdata->w - i - 1;
|
||||
+ } else if (dispdata->orientation == 3) {
|
||||
+ x = i;
|
||||
+ y = curdata->h - j - 1;
|
||||
+ }
|
||||
+
|
||||
+ dst_pixel = dst_buf + (y * bo_stride + x * sizeof(uint32_t));
|
||||
+ *(uint32_t*)dst_pixel = *(uint32_t*)src_pixel;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -382,7 +402,23 @@ static int KMSDRM_WarpMouseGlobal(int x, int y)
|
||||
if (dispdata->cursor_bo) {
|
||||
int ret = 0;
|
||||
|
||||
- ret = KMSDRM_drmModeMoveCursor(dispdata->cursor_bo_drm_fd, dispdata->crtc->crtc_id, y, dispdata->mode.vdisplay + curdata->w - x);
|
||||
+ if (dispdata->orientation == 0) {
|
||||
+ ret = KMSDRM_drmModeMoveCursor(dispdata->cursor_bo_drm_fd, dispdata->crtc->crtc_id,
|
||||
+ x,
|
||||
+ y);
|
||||
+ } else if (dispdata->orientation == 1) {
|
||||
+ ret = KMSDRM_drmModeMoveCursor(dispdata->cursor_bo_drm_fd, dispdata->crtc->crtc_id,
|
||||
+ dispdata->mode.hdisplay - curdata->h - y,
|
||||
+ x);
|
||||
+ } else if (dispdata->orientation == 2) {
|
||||
+ ret = KMSDRM_drmModeMoveCursor(dispdata->cursor_bo_drm_fd, dispdata->crtc->crtc_id,
|
||||
+ dispdata->mode.hdisplay - curdata->w - x,
|
||||
+ dispdata->mode.vdisplay - curdata->h - y);
|
||||
+ } else if (dispdata->orientation == 3) {
|
||||
+ ret = KMSDRM_drmModeMoveCursor(dispdata->cursor_bo_drm_fd, dispdata->crtc->crtc_id,
|
||||
+ y,
|
||||
+ dispdata->mode.vdisplay - curdata->w - x);
|
||||
+ }
|
||||
|
||||
if (ret) {
|
||||
SDL_SetError("drmModeMoveCursor() failed.");
|
||||
@@ -443,7 +479,23 @@ static void KMSDRM_MoveCursor(SDL_Cursor *cursor)
|
||||
return;
|
||||
}
|
||||
|
||||
- ret = KMSDRM_drmModeMoveCursor(dispdata->cursor_bo_drm_fd, dispdata->crtc->crtc_id, mouse->y, dispdata->mode.vdisplay - curdata->w - mouse->x);
|
||||
+ if (dispdata->orientation == 0) {
|
||||
+ ret = KMSDRM_drmModeMoveCursor(dispdata->cursor_bo_drm_fd, dispdata->crtc->crtc_id,
|
||||
+ mouse->x,
|
||||
+ mouse->y);
|
||||
+ } else if (dispdata->orientation == 1) {
|
||||
+ ret = KMSDRM_drmModeMoveCursor(dispdata->cursor_bo_drm_fd, dispdata->crtc->crtc_id,
|
||||
+ dispdata->mode.hdisplay - curdata->h - mouse->y,
|
||||
+ mouse->x);
|
||||
+ } else if (dispdata->orientation == 2) {
|
||||
+ ret = KMSDRM_drmModeMoveCursor(dispdata->cursor_bo_drm_fd, dispdata->crtc->crtc_id,
|
||||
+ dispdata->mode.hdisplay - curdata->w - mouse->x,
|
||||
+ dispdata->mode.vdisplay - curdata->h - mouse->y);
|
||||
+ } else if (dispdata->orientation == 3) {
|
||||
+ ret = KMSDRM_drmModeMoveCursor(dispdata->cursor_bo_drm_fd, dispdata->crtc->crtc_id,
|
||||
+ mouse->y,
|
||||
+ dispdata->mode.vdisplay - curdata->w - mouse->x);
|
||||
+ }
|
||||
|
||||
if (ret) {
|
||||
SDL_SetError("drmModeMoveCursor() failed.");
|
||||
diff --git a/src/video/kmsdrm/SDL_kmsdrmvideo.c b/src/video/kmsdrm/SDL_kmsdrmvideo.c
|
||||
index c5340afa8..663c4707c 100644
|
||||
--- a/src/video/kmsdrm/SDL_kmsdrmvideo.c
|
||||
+++ b/src/video/kmsdrm/SDL_kmsdrmvideo.c
|
||||
@@ -336,24 +336,27 @@ static void KMSDRM_FBDestroyCallback(struct gbm_bo *bo, void *data)
|
||||
}
|
||||
|
||||
static void
|
||||
-KMSDRM_InitRotateBuffer(_THIS, int frameWidth, int frameHeight)
|
||||
+KMSDRM_InitRotateBuffer(_THIS, int orientation, int frameWidth, int frameHeight)
|
||||
{
|
||||
- int l_frameHeight;
|
||||
+ int l_frameHeight, l_frameWidth;
|
||||
SDL_VideoData *viddata = ((SDL_VideoData *)_this->driverdata);
|
||||
|
||||
// initialize 2D raster graphic acceleration unit (RGA)
|
||||
c_RkRgaInit();
|
||||
|
||||
- l_frameHeight = frameHeight;
|
||||
- if(l_frameHeight % 32 != 0) {
|
||||
- l_frameHeight = (frameHeight + 32) & (~31);
|
||||
+ if (orientation & 1) {
|
||||
+ l_frameWidth = frameWidth;
|
||||
+ l_frameHeight = (frameHeight + 31) & (~31);
|
||||
+ } else {
|
||||
+ l_frameWidth = (frameWidth + 31) & (~31);
|
||||
+ l_frameHeight = frameHeight;
|
||||
}
|
||||
|
||||
// create buffers for RGA with adjusted stride
|
||||
for (int i = 0; i < RGA_BUFFERS_MAX; ++i)
|
||||
{
|
||||
viddata->rga_buffers[i] = KMSDRM_gbm_bo_create(viddata->gbm_dev,
|
||||
- frameWidth, l_frameHeight,
|
||||
+ l_frameWidth, l_frameHeight,
|
||||
GBM_FORMAT_XRGB8888, GBM_BO_USE_SCANOUT | GBM_BO_USE_RENDERING);
|
||||
assert(viddata->rga_buffers[i]);
|
||||
|
||||
@@ -364,10 +367,18 @@ KMSDRM_InitRotateBuffer(_THIS, int frameWidth, int frameHeight)
|
||||
// setup rotation
|
||||
src_info.fd = -1;
|
||||
src_info.mmuFlag = 1;
|
||||
- src_info.rotation = HAL_TRANSFORM_ROT_270;
|
||||
+ switch (orientation) {
|
||||
+ default: src_info.rotation = 0; break;
|
||||
+ case 1: src_info.rotation = HAL_TRANSFORM_ROT_90; break;
|
||||
+ case 2: src_info.rotation = HAL_TRANSFORM_ROT_180; break;
|
||||
+ case 3: src_info.rotation = HAL_TRANSFORM_ROT_270; break;
|
||||
+ }
|
||||
|
||||
// swap width and height and adjust stride here because our source buffer is 480x854
|
||||
- rga_set_rect(&src_info.rect, 0, 0, frameHeight, frameWidth, l_frameHeight, frameWidth, RK_FORMAT_BGRA_8888);
|
||||
+ if (orientation & 1)
|
||||
+ rga_set_rect(&src_info.rect, 0, 0, frameHeight, frameWidth, l_frameHeight, l_frameWidth, RK_FORMAT_BGRA_8888);
|
||||
+ else
|
||||
+ rga_set_rect(&src_info.rect, 0, 0, frameWidth, frameHeight, l_frameWidth, l_frameHeight, RK_FORMAT_BGRA_8888);
|
||||
|
||||
dst_info.fd = -1;
|
||||
dst_info.mmuFlag = 1;
|
||||
@@ -617,6 +628,52 @@ static SDL_bool KMSDRM_VrrPropId(uint32_t drm_fd, uint32_t crtc_id, uint32_t *vr
|
||||
return SDL_TRUE;
|
||||
}
|
||||
|
||||
+static int KMSDRM_ConnectorGetOrientation(uint32_t drm_fd,
|
||||
+ uint32_t output_id)
|
||||
+{
|
||||
+ uint32_t i;
|
||||
+ SDL_bool found = SDL_FALSE;
|
||||
+ uint64_t orientation = DRM_MODE_PANEL_ORIENTATION_NORMAL;
|
||||
+
|
||||
+ drmModeObjectPropertiesPtr props = KMSDRM_drmModeObjectGetProperties(drm_fd,
|
||||
+ output_id,
|
||||
+ DRM_MODE_OBJECT_CONNECTOR);
|
||||
+
|
||||
+ // Allow forcing specific orientations for debugging.
|
||||
+ const char *override = SDL_getenv("SDL_KMSDRM_ORIENTATION");
|
||||
+ if (override && override[0] != '\0') {
|
||||
+ int val = SDL_atoi(override);
|
||||
+ return SDL_clamp(val, 0, 3);
|
||||
+ }
|
||||
+
|
||||
+ if (!props) {
|
||||
+ return 0;
|
||||
+ }
|
||||
+
|
||||
+ for (i = 0; !found && i < props->count_props; ++i) {
|
||||
+ drmModePropertyPtr drm_prop = KMSDRM_drmModeGetProperty(drm_fd, props->props[i]);
|
||||
+
|
||||
+ if (!drm_prop) {
|
||||
+ continue;
|
||||
+ }
|
||||
+
|
||||
+ if (SDL_strcasecmp(drm_prop->name, "panel orientation") == 0) {
|
||||
+ orientation = props->prop_values[i];
|
||||
+ found = SDL_TRUE;
|
||||
+ }
|
||||
+
|
||||
+ KMSDRM_drmModeFreeProperty(drm_prop);
|
||||
+ }
|
||||
+
|
||||
+ /* librga expresses rotations clockwise. (e.g., dts = 90? rga = 270!) */
|
||||
+ switch (orientation) {
|
||||
+ default: return 0;
|
||||
+ case DRM_MODE_PANEL_ORIENTATION_BOTTOM_UP: return 2;
|
||||
+ case DRM_MODE_PANEL_ORIENTATION_LEFT_UP: return 1;
|
||||
+ case DRM_MODE_PANEL_ORIENTATION_RIGHT_UP: return 3;
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
static SDL_bool KMSDRM_ConnectorCheckVrrCapable(uint32_t drm_fd,
|
||||
uint32_t output_id,
|
||||
char const *name)
|
||||
@@ -869,6 +926,8 @@ static void KMSDRM_AddDisplay(_THIS, drmModeConnector *connector, drmModeRes *re
|
||||
dispdata->connector = connector;
|
||||
dispdata->crtc = crtc;
|
||||
|
||||
+ /* store current connector orientation */
|
||||
+ dispdata->orientation = KMSDRM_ConnectorGetOrientation(viddata->drm_fd, connector->connector_id);
|
||||
/* save previous vrr state */
|
||||
dispdata->saved_vrr = KMSDRM_CrtcGetVrr(viddata->drm_fd, crtc->crtc_id);
|
||||
/* try to enable vrr */
|
||||
@@ -893,8 +952,13 @@ static void KMSDRM_AddDisplay(_THIS, drmModeConnector *connector, drmModeRes *re
|
||||
modedata->mode_index = mode_index;
|
||||
|
||||
display.driverdata = dispdata;
|
||||
- display.desktop_mode.w = dispdata->mode.vdisplay;
|
||||
- display.desktop_mode.h = dispdata->mode.hdisplay;
|
||||
+ if (dispdata->orientation & 1) {
|
||||
+ display.desktop_mode.w = dispdata->mode.vdisplay;
|
||||
+ display.desktop_mode.h = dispdata->mode.hdisplay;
|
||||
+ } else {
|
||||
+ display.desktop_mode.w = dispdata->mode.hdisplay;
|
||||
+ display.desktop_mode.h = dispdata->mode.vdisplay;
|
||||
+ }
|
||||
display.desktop_mode.refresh_rate = dispdata->mode.vrefresh;
|
||||
display.desktop_mode.format = SDL_PIXELFORMAT_ARGB8888;
|
||||
display.desktop_mode.driverdata = modedata;
|
||||
@@ -1158,8 +1222,10 @@ static void KMSDRM_GetModeToSet(SDL_Window *window, drmModeModeInfo *out_mode)
|
||||
|
||||
static void KMSDRM_DirtySurfaces(SDL_Window *window)
|
||||
{
|
||||
- SDL_WindowData *windata = (SDL_WindowData *)window->driverdata;
|
||||
drmModeModeInfo mode;
|
||||
+ SDL_WindowData *windata = (SDL_WindowData *)window->driverdata;
|
||||
+ SDL_VideoDisplay *display = SDL_GetDisplayForWindow(window);
|
||||
+ SDL_DisplayData *dispdata = (SDL_DisplayData *)display->driverdata;
|
||||
|
||||
/* Can't recreate EGL surfaces right now, need to wait until SwapWindow
|
||||
so the correct thread-local surface and context state are available */
|
||||
@@ -1169,8 +1235,10 @@ static void KMSDRM_DirtySurfaces(SDL_Window *window)
|
||||
or SetWindowFullscreen, send a fake event for now since the actual
|
||||
recreation is deferred */
|
||||
KMSDRM_GetModeToSet(window, &mode);
|
||||
- SDL_SendWindowEvent(window, SDL_WINDOWEVENT_RESIZED, mode.vdisplay, mode.hdisplay);
|
||||
-
|
||||
+ if (dispdata->orientation & 1)
|
||||
+ SDL_SendWindowEvent(window, SDL_WINDOWEVENT_RESIZED, mode.vdisplay, mode.hdisplay);
|
||||
+ else
|
||||
+ SDL_SendWindowEvent(window, SDL_WINDOWEVENT_RESIZED, mode.hdisplay, mode.vdisplay);
|
||||
}
|
||||
|
||||
/* This determines the size of the fb, which comes from the GBM surface
|
||||
@@ -1204,14 +1272,18 @@ int KMSDRM_CreateSurfaces(_THIS, SDL_Window *window)
|
||||
SDL_video.c expects. Hulk-smash the display's current_mode to keep the
|
||||
mode that's set in sync with what SDL_video.c thinks is set */
|
||||
KMSDRM_GetModeToSet(window, &dispdata->mode);
|
||||
-
|
||||
- display->current_mode.w = dispdata->mode.vdisplay;
|
||||
- display->current_mode.h = dispdata->mode.hdisplay;
|
||||
+ if (dispdata->orientation & 1) {
|
||||
+ display->current_mode.w = dispdata->mode.vdisplay;
|
||||
+ display->current_mode.h = dispdata->mode.hdisplay;
|
||||
+ } else {
|
||||
+ display->current_mode.w = dispdata->mode.hdisplay;
|
||||
+ display->current_mode.h = dispdata->mode.vdisplay;
|
||||
+ }
|
||||
display->current_mode.refresh_rate = dispdata->mode.vrefresh;
|
||||
display->current_mode.format = SDL_PIXELFORMAT_ARGB8888;
|
||||
|
||||
windata->gs = KMSDRM_gbm_surface_create(viddata->gbm_dev,
|
||||
- dispdata->mode.vdisplay, dispdata->mode.hdisplay,
|
||||
+ display->current_mode.w, display->current_mode.h,
|
||||
surface_fmt, surface_flags);
|
||||
|
||||
if (!windata->gs) {
|
||||
@@ -1235,7 +1307,7 @@ int KMSDRM_CreateSurfaces(_THIS, SDL_Window *window)
|
||||
ret = SDL_EGL_MakeCurrent(_this, windata->egl_surface, egl_context);
|
||||
|
||||
SDL_SendWindowEvent(window, SDL_WINDOWEVENT_RESIZED,
|
||||
- dispdata->mode.vdisplay, dispdata->mode.hdisplay);
|
||||
+ display->current_mode.w, display->current_mode.h);
|
||||
|
||||
windata->egl_surface_dirty = SDL_FALSE;
|
||||
|
||||
@@ -1318,8 +1390,14 @@ void KMSDRM_GetDisplayModes(_THIS, SDL_VideoDisplay *display)
|
||||
modedata->mode_index = i;
|
||||
}
|
||||
|
||||
- mode.w = conn->modes[i].vdisplay;
|
||||
- mode.h = conn->modes[i].hdisplay;
|
||||
+ if (dispdata->orientation & 1) {
|
||||
+ mode.w = conn->modes[i].vdisplay;
|
||||
+ mode.h = conn->modes[i].hdisplay;
|
||||
+ } else {
|
||||
+ mode.w = conn->modes[i].hdisplay;
|
||||
+ mode.h = conn->modes[i].vdisplay;
|
||||
+ }
|
||||
+
|
||||
mode.refresh_rate = conn->modes[i].vrefresh;
|
||||
mode.format = SDL_PIXELFORMAT_ARGB8888;
|
||||
mode.driverdata = modedata;
|
||||
@@ -1573,8 +1651,8 @@ int KMSDRM_CreateWindow(_THIS, SDL_Window *window)
|
||||
SDL_SetMouseFocus(window);
|
||||
SDL_SetKeyboardFocus(window);
|
||||
|
||||
- data = (SDL_DisplayData *) SDL_GetDisplayForWindow(window)->driverdata;
|
||||
- KMSDRM_InitRotateBuffer(_this, data->mode.hdisplay, data->mode.vdisplay);
|
||||
+ data = (SDL_DisplayData *) SDL_GetDisplayForWindow(window)->driverdata;
|
||||
+ KMSDRM_InitRotateBuffer(_this, dispdata->orientation, data->mode.hdisplay, data->mode.vdisplay);
|
||||
|
||||
/* Tell the app that the window has moved to top-left. */
|
||||
SDL_SendWindowEvent(window, SDL_WINDOWEVENT_MOVED, 0, 0);
|
||||
diff --git a/src/video/kmsdrm/SDL_kmsdrmvideo.h b/src/video/kmsdrm/SDL_kmsdrmvideo.h
|
||||
index 890575fb8..8d2dc646f 100644
|
||||
--- a/src/video/kmsdrm/SDL_kmsdrmvideo.h
|
||||
+++ b/src/video/kmsdrm/SDL_kmsdrmvideo.h
|
||||
@@ -78,6 +78,8 @@ typedef struct SDL_DisplayData
|
||||
|
||||
drmModeCrtc *saved_crtc; /* CRTC to restore on quit */
|
||||
SDL_bool saved_vrr;
|
||||
+
|
||||
+ uint64_t orientation;
|
||||
|
||||
/* DRM & GBM cursor stuff lives here, not in an SDL_Cursor's driverdata struct,
|
||||
because setting/unsetting up these is done on window creation/destruction,
|
||||
--
|
||||
2.20.1
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
# Copyright (C) 2023-present Fewtarius (https://github.com/fewtarius)
|
||||
|
||||
. /etc/profile.d/02-distribution
|
||||
|
||||
### Set the default performance scaling mode for a few systems.
|
||||
for SYSTEM in dreamcast n64 psp saturn
|
||||
do
|
||||
SETTING=$(get_setting ${SYSTEM})
|
||||
if [ -z ${SETTING} ]
|
||||
then
|
||||
set_setting ${SYSTEM}.cpugovernor performance
|
||||
fi
|
||||
done
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
# Copyright (C) 2023-present Fewtarius (https://github.com/fewtarius)
|
||||
|
||||
. /etc/profile.d/02-distribution
|
||||
|
||||
### Set the default performance scaling mode for a few systems.
|
||||
for SYSTEM in dreamcast n64 psp saturn
|
||||
do
|
||||
SETTING=$(get_setting ${SYSTEM})
|
||||
if [ -z ${SETTING} ]
|
||||
then
|
||||
set_setting ${SYSTEM}.cpugovernor performance
|
||||
fi
|
||||
done
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
# Copyright (C) 2023-present Fewtarius (https://github.com/fewtarius)
|
||||
|
||||
. /etc/profile.d/02-distribution
|
||||
|
||||
### Set the default performance scaling mode for a few systems.
|
||||
for SYSTEM in dreamcast n64 psp saturn
|
||||
do
|
||||
SETTING=$(get_setting ${SYSTEM})
|
||||
if [ -z ${SETTING} ]
|
||||
then
|
||||
set_setting ${SYSTEM}.cpugovernor performance
|
||||
fi
|
||||
done
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
# Copyright (C) 2023-present Fewtarius (https://github.com/fewtarius)
|
||||
|
||||
. /etc/profile.d/02-distribution
|
||||
|
||||
### Set the default performance scaling mode for a few systems.
|
||||
for SYSTEM in dreamcast n64 psp saturn
|
||||
do
|
||||
SETTING=$(get_setting ${SYSTEM})
|
||||
if [ -z ${SETTING} ]
|
||||
then
|
||||
set_setting ${SYSTEM}.cpugovernor performance
|
||||
fi
|
||||
done
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
# Copyright (C) 2023-present Fewtarius (https://github.com/fewtarius)
|
||||
|
||||
. /etc/profile.d/02-distribution
|
||||
|
||||
### Set the default performance scaling mode for a few systems.
|
||||
for SYSTEM in dreamcast n64 psp saturn
|
||||
do
|
||||
SETTING=$(get_setting ${SYSTEM})
|
||||
if [ -z ${SETTING} ]
|
||||
then
|
||||
set_setting ${SYSTEM}.cpugovernor performance
|
||||
fi
|
||||
done
|
||||
|
|
@ -9,6 +9,7 @@ DEVICE_POWER_LED=false
|
|||
DEVICE_SW_HP_SWITCH=true
|
||||
DEVICE_PLAYBACK_PATH_SPK="SPK"
|
||||
DEVICE_PLAYBACK_PATH_HP="HP"
|
||||
DEVICE_PLAYBACK_PATH="Playback Mux"
|
||||
DEVICE_BRIGHTNESS="128"
|
||||
UI_SERVICE="weston.service"
|
||||
|
||||
|
|
|
@ -15,3 +15,7 @@ cat <<EOF >/storage/.config/sleep.conf.d/sleep.conf
|
|||
AllowSuspend=no
|
||||
SuspendState=freeze
|
||||
EOF
|
||||
|
||||
### Set sound properties
|
||||
amixer -q sset 'FRDDR_A SINK 1 SEL' 'OUT 1'
|
||||
amixer -q sset 'FRDDR_A SRC 1 EN' 'on'
|
||||
|
|
|
@ -8,6 +8,7 @@ DEVICE_VOLUMECTL=true
|
|||
DEVICE_POWER_LED=false
|
||||
DEVICE_PLAYBACK_PATH_SPK="HP"
|
||||
DEVICE_PLAYBACK_PATH_HP="SPK"
|
||||
DEVICE_PLAYBACK_PATH="Playback"
|
||||
DEVICE_BRIGHTNESS="128"
|
||||
DEVICE_PIPEWIRE_PROFILE="pro-audio"
|
||||
DEVICE_BATTERY_LED_STATUS=true
|
||||
|
|
|
@ -0,0 +1,16 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
# Copyright (C) 2023-present Fewtarius (https://github.com/fewtarius)
|
||||
|
||||
. /etc/profile.d/02-distribution
|
||||
|
||||
### Set the default performance scaling mode for a few systems.
|
||||
for SYSTEM in dreamcast n64 psp saturn
|
||||
do
|
||||
SETTING=$(get_setting ${SYSTEM})
|
||||
if [ -z ${SETTING} ]
|
||||
then
|
||||
set_setting ${SYSTEM}.cpugovernor performance
|
||||
fi
|
||||
done
|
||||
|
|
@ -18,22 +18,5 @@ hdmi_con() {
|
|||
fi
|
||||
}
|
||||
|
||||
###
|
||||
### Test for an HDMI connection and if there is none, configure the system to use
|
||||
### a rotation patched SDL2.
|
||||
cat <<EOF >/storage/.config/profile.d/006-hdmi
|
||||
HDMI="\$(cat /sys/class/extcon/hdmi/state)"
|
||||
if [ ! "\${HDMI}" = "HDMI=1" ]
|
||||
then
|
||||
SDL=\$(readlink -f /usr/lib/SDL2-rotated/libSDL2.so 2>/dev/null)
|
||||
export LD_PRELOAD="\${SDL}"
|
||||
else
|
||||
SDL=\$(readlink -f /usr/lib/libSDL2.so 2>/dev/null)
|
||||
export LD_PRELOAD="\${SDL}"
|
||||
fi
|
||||
EOF
|
||||
|
||||
chmod 0755 /storage/.config/profile.d/006-hdmi
|
||||
|
||||
### If hdmi is connected, set the framebuffer rotation back to normal.
|
||||
hdmi_con
|
||||
|
|
|
@ -0,0 +1,16 @@
|
|||
#!/bin/sh
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
# Copyright (C) 2023-present Fewtarius (https://github.com/fewtarius)
|
||||
|
||||
. /etc/profile.d/02-distribution
|
||||
|
||||
### Set the default performance scaling mode for a few systems.
|
||||
for SYSTEM in dreamcast n64 psp saturn
|
||||
do
|
||||
SETTING=$(get_setting ${SYSTEM})
|
||||
if [ -z ${SETTING} ]
|
||||
then
|
||||
set_setting ${SYSTEM}.cpugovernor performance
|
||||
fi
|
||||
done
|
||||
|
|
@ -28,6 +28,7 @@ export SLOW_CORES \
|
|||
DEVICE_PIPEWIRE_PROFILE \
|
||||
DEVICE_PWR_LED_CONTROL \
|
||||
DEVICE_PWR_LED_GPIO \
|
||||
DEVICE_PLAYBACK_PATH \
|
||||
DEVICE_PLAYBACK_PATH_HP \
|
||||
DEVICE_PLAYBACK_PATH_SPK \
|
||||
DEVICE_POWER_LED \
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
|
||||
# Minimal OS variable loading for performance
|
||||
. /etc/profile.d/02-distribution
|
||||
. /storage/.config/profile.d/001-deviceconfig
|
||||
|
||||
tocon "Configuring Audio..."
|
||||
|
||||
|
@ -22,7 +23,11 @@ pactl load-module module-switch-on-connect
|
|||
### Set the default audio path, needed for some devices
|
||||
if [ ! -z "${DEVICE_PLAYBACK_PATH_SPK}" ]
|
||||
then
|
||||
amixer cset name='Playback Path' ${DEVICE_PLAYBACK_PATH_SPK}
|
||||
if [ -z "${DEVICE_PLAYBACK_PATH}" ]
|
||||
then
|
||||
DEVICE_PLAYBACK_PATH="Playback Path"
|
||||
fi
|
||||
amixer cset name="${DEVICE_PLAYBACK_PATH}" ${DEVICE_PLAYBACK_PATH_SPK}
|
||||
fi
|
||||
|
||||
VOLUME=$(get_setting audio.volume)
|
||||
|
|
|
@ -65,6 +65,7 @@ genh.integerscale=0
|
|||
genh.ratio=4/3
|
||||
ggh.integerscale=0
|
||||
global.analogue=1
|
||||
global.audiolatency=32
|
||||
global.autosave=2
|
||||
global.incrementalsavestates=0
|
||||
global.netplay=0
|
||||
|
|
|
@ -186,3 +186,10 @@ function set_es_path() {
|
|||
}
|
||||
|
||||
set_es_path "Master"
|
||||
|
||||
### Set default audio latency
|
||||
LATENCY=$(get_setting global.audiolatency)
|
||||
if [ -z "${LATENCY}" ]
|
||||
then
|
||||
set_setting global.audiolatency 32
|
||||
fi
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
. /etc/profile
|
||||
|
||||
AUDIOTEST=$(ps -ef | grep [p]ulseaudio)
|
||||
AUDIOTEST=$(ps -ef | grep [p]ipewire)
|
||||
if [ ! $? = 0 ]
|
||||
then
|
||||
PLAYCMD="aplay -q"
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
PKG_NAME="linux"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_VERSION="6.4.9"
|
||||
PKG_VERSION="6.4.10"
|
||||
PKG_URL="https://www.kernel.org/pub/linux/kernel/v6.x/${PKG_NAME}-${PKG_VERSION}.tar.xz"
|
||||
PKG_SITE="http://www.kernel.org"
|
||||
PKG_DEPENDS_HOST="ccache:host rsync:host openssl:host"
|
||||
|
|
|
@ -11,13 +11,19 @@
|
|||
GPIO=$(cat /sys/class/gpio/gpio${DEVICE_JACK}/value)
|
||||
[[ "$GPIO" == "0" ]] && set_setting "audio.device" "headphone" || set_setting "audio.device" "speakers"
|
||||
|
||||
### Set the default audio path, needed for some devices
|
||||
if [ -z "${DEVICE_PLAYBACK_PATH}" ]
|
||||
then
|
||||
DEVICE_PLAYBACK_PATH="Playback Path"
|
||||
fi
|
||||
|
||||
STARTUP_DEVICE=$(get_setting "audio.device")
|
||||
case "${2}" in
|
||||
"headphone")
|
||||
amixer -M cset name='Playback Path' ${DEVICE_PLAYBACK_PATH_HP}
|
||||
amixer -M cset name=${DEVICE_PLAYBACK_PATH} ${DEVICE_PLAYBACK_PATH_HP}
|
||||
;;
|
||||
"auto"|"speakers"|*)
|
||||
amixer -M cset name='Playback Path' ${DEVICE_PLAYBACK_PATH_SPK}
|
||||
amixer -M cset name=${DEVICE_PLAYBACK_PATH} ${DEVICE_PLAYBACK_PATH_SPK}
|
||||
;;
|
||||
esac
|
||||
|
||||
|
@ -32,11 +38,11 @@ HP_OFF='*(SW_HEADPHONE_INSERT), value 1*'
|
|||
evtest "${DEVICE}" | while read line; do
|
||||
case $line in
|
||||
(${HP_ON})
|
||||
amixer cset name='Playback Path' ${DEVICE_PLAYBACK_PATH_HP}
|
||||
amixer cset name=${DEVICE_PLAYBACK_PATH} ${DEVICE_PLAYBACK_PATH_HP}
|
||||
set_setting "audio.device" "headphone"
|
||||
;;
|
||||
(${HP_OFF})
|
||||
amixer cset name='Playback Path' ${DEVICE_PLAYBACK_PATH_SPK}
|
||||
amixer cset name=${DEVICE_PLAYBACK_PATH} ${DEVICE_PLAYBACK_PATH_SPK}
|
||||
set_setting "audio.device" "speakers"
|
||||
;;
|
||||
esac
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
# Copyright (C) 2021 Fewtarius
|
||||
|
||||
PKG_NAME="es-theme-art-book-next"
|
||||
PKG_VERSION="20ed0a61423c25e7dac60f42b9d617323976217b"
|
||||
PKG_VERSION="1d1d9207a1c3a486bee82a1919cd76baad293621"
|
||||
PKG_ARCH="any"
|
||||
PKG_LICENSE="CUSTOM"
|
||||
PKG_SITE="https://github.com/anthonycaccese/art-book-next-jelos"
|
||||
|
|
|
@ -10,7 +10,7 @@ PKG_DEPENDS_TARGET="toolchain alsa-lib SDL2"
|
|||
PKG_LONGDESC="A console based real time MPEG Audio Player for Layer 1, 2 and 3."
|
||||
PKG_BUILD_FLAGS="-fpic"
|
||||
|
||||
if [ "$PULSEAUDIO_SUPPORT" = yes ]; then
|
||||
PKG_DEPENDS_TARGET="${PKG_DEPENDS_TARGET} pulseaudio"
|
||||
PKG_CONFIGURE_OPTS_TARGET="${PKG_CONFIGURE_OPTS_TARGET} --with-default-audio=pulse --with-audio=alsa,pulse"
|
||||
if [ "${PIPEWIRE}" = yes ]; then
|
||||
PKG_DEPENDS_TARGET="${PKG_DEPENDS_TARGET} pipewire"
|
||||
PKG_CONFIGURE_OPTS_TARGET="${PKG_CONFIGURE_OPTS_TARGET} --with-default-audio=pulse --with-audio=pulse"
|
||||
fi
|
||||
|
|
|
@ -56,6 +56,39 @@
|
|||
</core>
|
||||
</cores>
|
||||
</emulator>
|
||||
<emulator name="ppsspp">
|
||||
<cores>
|
||||
<core name="ppsspp-sa">
|
||||
<features>
|
||||
<feature name="frame skipping">
|
||||
<choice name="off" value="0"/>
|
||||
<choice name="1 frame per second" value="1"/>
|
||||
<choice name="2 frames per second" value="2"/>
|
||||
<choice name="3 frames per second" value="3"/>
|
||||
<choice name="auto frame skip" value="auto"/>
|
||||
</feature>
|
||||
<feature name="internal resolution">
|
||||
<choice name="1x" value="1"/>
|
||||
<choice name="2x" value="2"/>
|
||||
<choice name="3x" value="3"/>
|
||||
<choice name="4x" value="4"/>
|
||||
</feature>
|
||||
<feature name="show fps">
|
||||
<choice name="yes" value="1"/>
|
||||
<choice name="no" value="0"/>
|
||||
</feature>
|
||||
<feature name="skip buffer effects">
|
||||
<choice name="yes" value="1"/>
|
||||
<choice name="no" value="0"/>
|
||||
</feature>
|
||||
<feature name="vsync">
|
||||
<choice name="off" value="0"/>
|
||||
<choice name="on" value="1"/>
|
||||
</feature>
|
||||
</features>
|
||||
</core>
|
||||
</cores>
|
||||
</emulator>
|
||||
<emulator name="dolphin">
|
||||
<cores>
|
||||
<core name="dolphin-sa-gc">
|
||||
|
|
|
@ -43,5 +43,4 @@ then
|
|||
systemctl import-environment LANGUAGE
|
||||
fi
|
||||
|
||||
systemctl import-environment LD_PRELOAD
|
||||
jslisten set "emulationstation"
|
||||
|
|
|
@ -955,4 +955,7 @@ makeinstall_target() {
|
|||
|
||||
mkdir -p ${INSTALL}/usr/lib/tmpfiles.d
|
||||
cp -f ${ESTMP}/${DISTRO}-system-dirs.conf ${INSTALL}/usr/lib/tmpfiles.d
|
||||
|
||||
mkdir -p ${INSTALL}/usr/bin
|
||||
cp ${PKG_DIR}/scripts/mkcontroller ${INSTALL}/usr/bin
|
||||
}
|
||||
|
|
|
@ -25,8 +25,6 @@ PKG_FONTS="terminus-font corefonts"
|
|||
|
||||
PKG_MULTIMEDIA="ffmpeg vlc mpv gmu"
|
||||
|
||||
PKG_BLUETOOTH="bluez pygobject"
|
||||
|
||||
PKG_SOUND="espeak libao"
|
||||
|
||||
PKG_SYNC="synctools"
|
||||
|
@ -41,14 +39,13 @@ then
|
|||
ENABLE_32BIT=no
|
||||
PKG_DEPENDS_TARGET+=" ${PKG_TOOLS} ${PKG_FONTS}"
|
||||
else
|
||||
PKG_DEPENDS_TARGET+=" ${PKG_TOOLS} ${PKG_FONTS} ${PKG_SOUND} ${PKG_BLUETOOTH} ${PKG_SYNC} ${PKG_GRAPHICS} ${PKG_UI} ${PKG_UI_TOOLS} ${PKG_MULTIMEDIA} misc-packages"
|
||||
PKG_DEPENDS_TARGET+=" ${PKG_TOOLS} ${PKG_FONTS} ${PKG_SOUND} ${PKG_SYNC} ${PKG_GRAPHICS} ${PKG_UI} ${PKG_UI_TOOLS} ${PKG_MULTIMEDIA} misc-packages"
|
||||
|
||||
# GL demos and tools
|
||||
[ "${OPENGL_SUPPORT}" = "yes" ]&& PKG_DEPENDS_TARGET+=" mesa-demos glmark2"
|
||||
|
||||
# Sound support
|
||||
[ "${ALSA_SUPPORT}" = "yes" ] && PKG_DEPENDS_TARGET+=" alsa"
|
||||
[ "${PIPEWIRE_SUPPORT}" = "yes" ] && PKG_DEPENDS_TARGET+=" pipewire wireplumber"
|
||||
[ "${PIPEWIRE_SUPPORT}" = "yes" ] && PKG_DEPENDS_TARGET+=" alsa pulseaudio pipewire wireplumber"
|
||||
fi
|
||||
|
||||
[ "${DISPLAYSERVER}" = "wl" ] && PKG_DEPENDS_TARGET+=" weston"
|
||||
|
|
|
@ -12,7 +12,7 @@ PKG_SECTION="virtual"
|
|||
PKG_LONGDESC="Metapackage for various packages to install network support"
|
||||
|
||||
if [ "${BLUETOOTH_SUPPORT}" = "yes" ]; then
|
||||
PKG_DEPENDS_TARGET="${PKG_DEPENDS_TARGET} bluez"
|
||||
PKG_DEPENDS_TARGET="${PKG_DEPENDS_TARGET} pygobject bluez"
|
||||
fi
|
||||
|
||||
if [ "${SAMBA_SERVER}" = "yes" ] || [ "$SAMBA_SUPPORT" = "yes" ]; then
|
||||
|
|
|
@ -99,9 +99,6 @@
|
|||
# Disable 32BIT support
|
||||
ENABLE_32BIT="false"
|
||||
|
||||
# build and install PulseAudio support (yes / no)
|
||||
PULSEAUDIO_SUPPORT="yes"
|
||||
|
||||
# build and install bluetooth support (yes / no)
|
||||
BLUETOOTH_SUPPORT="yes"
|
||||
|
||||
|
|
|
@ -26,9 +26,6 @@
|
|||
# setup project defaults
|
||||
################################################################################
|
||||
|
||||
# build and install ALSA Audio support (yes / no)
|
||||
ALSA_SUPPORT="yes"
|
||||
|
||||
# OpenGL(X) implementation to use (no / mesa)
|
||||
OPENGL="mesa"
|
||||
|
||||
|
|
|
@ -19,7 +19,7 @@ PKG_PATCH_DIRS+="${DEVICE}"
|
|||
|
||||
case ${DEVICE} in
|
||||
S922X*)
|
||||
PKG_VERSION="6.1.44"
|
||||
PKG_VERSION="6.1.45"
|
||||
PKG_URL="https://www.kernel.org/pub/linux/kernel/v6.x/${PKG_NAME}-${PKG_VERSION}.tar.xz"
|
||||
;;
|
||||
esac
|
||||
|
|
|
@ -72,9 +72,6 @@
|
|||
# Disable 32BIT support
|
||||
ENABLE_32BIT="false"
|
||||
|
||||
# build and install PulseAudio support (yes / no)
|
||||
PULSEAUDIO_SUPPORT="yes"
|
||||
|
||||
# build and install bluetooth support (yes / no)
|
||||
BLUETOOTH_SUPPORT="yes"
|
||||
|
||||
|
|
|
@ -100,9 +100,6 @@
|
|||
# Disable 32BIT support
|
||||
ENABLE_32BIT="true"
|
||||
|
||||
# build and install PulseAudio support (yes / no)
|
||||
PULSEAUDIO_SUPPORT="yes"
|
||||
|
||||
# build and install bluetooth support (yes / no)
|
||||
BLUETOOTH_SUPPORT="yes"
|
||||
|
||||
|
|
|
@ -97,9 +97,6 @@
|
|||
# Disable 32BIT support
|
||||
ENABLE_32BIT="true"
|
||||
|
||||
# build and install PulseAudio support (yes / no)
|
||||
PULSEAUDIO_SUPPORT="yes"
|
||||
|
||||
# build and install bluetooth support (yes / no)
|
||||
BLUETOOTH_SUPPORT="yes"
|
||||
|
||||
|
|
|
@ -91,9 +91,6 @@
|
|||
# debug tty path
|
||||
DEBUG_TTY="/dev/ttyFIQ0"
|
||||
|
||||
# build and install PulseAudio support (yes / no)
|
||||
PULSEAUDIO_SUPPORT="yes"
|
||||
|
||||
# build and install bluetooth support (yes / no)
|
||||
BLUETOOTH_SUPPORT="yes"
|
||||
|
||||
|
|
|
@ -91,9 +91,6 @@
|
|||
# debug tty path
|
||||
DEBUG_TTY="/dev/ttyFIQ0"
|
||||
|
||||
# build and install PulseAudio support (yes / no)
|
||||
PULSEAUDIO_SUPPORT="yes"
|
||||
|
||||
# build and install bluetooth support (yes / no)
|
||||
BLUETOOTH_SUPPORT="yes"
|
||||
|
||||
|
|
|
@ -100,9 +100,6 @@
|
|||
# debug tty path
|
||||
DEBUG_TTY="/dev/ttyFIQ0"
|
||||
|
||||
# build and install PulseAudio support (yes / no)
|
||||
PULSEAUDIO_SUPPORT="yes"
|
||||
|
||||
# build and install bluetooth support (yes / no)
|
||||
BLUETOOTH_SUPPORT="yes"
|
||||
|
||||
|
|
|
@ -26,9 +26,6 @@
|
|||
# setup project defaults
|
||||
################################################################################
|
||||
|
||||
# build and install ALSA Audio support (yes / no)
|
||||
ALSA_SUPPORT="yes"
|
||||
|
||||
# OpenGL(X) implementation to use (no / mesa)
|
||||
OPENGL="no"
|
||||
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue