Ports: Add RetroArch
This commit is contained in:
parent
78dc77f7e4
commit
74226a6cb3
Notes:
sideshowbarker
2024-07-17 10:39:29 +09:00
Author: https://github.com/gouchi 🔰 Commit: https://github.com/SerenityOS/serenity/commit/74226a6cb3 Pull-request: https://github.com/SerenityOS/serenity/pull/13957 Reviewed-by: https://github.com/timschumi ✅
9 changed files with 1268 additions and 0 deletions
|
@ -189,6 +189,7 @@ Please make sure to keep this list up to date when adding and updating ports. :^
|
|||
| [`vlang`](vlang/) | V programming language | weekly.2021.31 | https://github.com/vlang/v |
|
||||
| [`radare2`](radare2/) | radare2 reverse engineering framework | 5.4.0-git | https://github.com/radareorg/radare2 |
|
||||
| [`readline`](readline/) | GNU Readline Library | 8.1.2 | https://tiswww.case.edu/php/chet/readline/rltop.html |
|
||||
| [`RetroArch`](RetroArch/) | RetroArch | 1.10.3 | https://www.retroarch.com |
|
||||
| [`RISCVEmu`](RISCVEmu/) | A Basic C++ RISC-V Emulator | ad8ad6a | https://github.com/IdanHo/RISCVEmu |
|
||||
| [`rsync`](rsync/) | rsync | 3.1.3 | https://rsync.samba.org/ |
|
||||
| [`ruby`](ruby/) | Ruby | 3.0.4 | https://www.ruby-lang.org/ |
|
||||
|
|
35
Ports/RetroArch/package.sh
Executable file
35
Ports/RetroArch/package.sh
Executable file
|
@ -0,0 +1,35 @@
|
|||
#!/usr/bin/env -S bash ../.port_include.sh
|
||||
port=RetroArch
|
||||
useconfigure="true"
|
||||
version="1.10.3"
|
||||
archive_hash="2af44294e55f5636262284d650cb5fff55c9070ac3a700d4fa55c1f152dcb3f2"
|
||||
files="https://github.com/libretro/${port}/archive/refs/tags/v${version}.tar.gz ${port}-${version}.tar.gz $archive_hash"
|
||||
auth_type=sha256
|
||||
depends=("freetype" "SDL2" "zlib")
|
||||
|
||||
configopts=(
|
||||
"--disable-builtinglslang"
|
||||
"--disable-discord"
|
||||
"--disable-glsl"
|
||||
"--disable-glslang"
|
||||
"--disable-opengl"
|
||||
"--disable-slang"
|
||||
"--disable-spirv_cross"
|
||||
"--disable-systemmbedtls"
|
||||
"--disable-update_cores"
|
||||
)
|
||||
|
||||
launcher_name=RetroArch
|
||||
launcher_category=Games
|
||||
launcher_command=/usr/local/bin/retroarch
|
||||
icon_file=media/retroarch.ico
|
||||
|
||||
export CFLAGS="-I${SERENITY_INSTALL_ROOT}/usr/include/LibGL -I${SERENITY_INSTALL_ROOT}/usr/local/include/SDL2"
|
||||
|
||||
post_install() {
|
||||
echo "==== Post installation instructions ===="
|
||||
echo "Please remember to use the online updater"
|
||||
echo "to install cores info files using main menu"
|
||||
echo "online updater > update core info files"
|
||||
echo "before installing libretro cores from the port"
|
||||
}
|
32
Ports/RetroArch/patches/0001-Add-SerenityOS-platform.patch
Executable file
32
Ports/RetroArch/patches/0001-Add-SerenityOS-platform.patch
Executable file
|
@ -0,0 +1,32 @@
|
|||
From 53eae76554d4e4629fc1568cec785b644bde1f86 Mon Sep 17 00:00:00 2001
|
||||
From: gouchi <gouchi@free.fr>
|
||||
Date: Sat, 7 May 2022 18:19:42 +0200
|
||||
Subject: [PATCH 1/6] Add SerenityOS platform
|
||||
|
||||
---
|
||||
qb/qb.system.sh | 5 +++--
|
||||
1 file changed, 3 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/qb/qb.system.sh b/qb/qb.system.sh
|
||||
index c7ac141..f7f198d 100644
|
||||
--- a/qb/qb.system.sh
|
||||
+++ b/qb/qb.system.sh
|
||||
@@ -1,5 +1,5 @@
|
||||
-PLATFORM_NAME="$(uname -s)"
|
||||
-ARCHITECTURE_NAME="$(uname -m)"
|
||||
+PLATFORM_NAME="SerenityOS"
|
||||
+ARCHITECTURE_NAME="${SERENITY_ARCH}"
|
||||
|
||||
if [ -n "${CROSS_COMPILE:=}" ]; then
|
||||
case "$CROSS_COMPILE" in
|
||||
@@ -18,6 +18,7 @@ if [ -z "$CROSS_COMPILE" ] || [ -z "$OS" ]; then
|
||||
'Haiku') OS='Haiku';;
|
||||
'MINGW'*) OS='Win32';;
|
||||
'SunOS') OS='SunOS';;
|
||||
+ 'SerenityOS') OS='SerenityOS';;
|
||||
*) OS="Win32";;
|
||||
esac
|
||||
fi
|
||||
--
|
||||
2.36.0
|
||||
|
25
Ports/RetroArch/patches/0002-Find-libgl.patch
Executable file
25
Ports/RetroArch/patches/0002-Find-libgl.patch
Executable file
|
@ -0,0 +1,25 @@
|
|||
From d65b301e331c52fd78a1b0205e4b3630a6200950 Mon Sep 17 00:00:00 2001
|
||||
From: gouchi <gouchi@free.fr>
|
||||
Date: Sat, 7 May 2022 18:20:09 +0200
|
||||
Subject: [PATCH 2/6] Find libgl
|
||||
|
||||
---
|
||||
qb/config.libs.sh | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/qb/config.libs.sh b/qb/config.libs.sh
|
||||
index 19cd2a6..672fb02 100644
|
||||
--- a/qb/config.libs.sh
|
||||
+++ b/qb/config.libs.sh
|
||||
@@ -402,7 +402,7 @@ if [ "$HAVE_OPENGL" != 'no' ] && [ "$HAVE_OPENGLES" != 'yes' ]; then
|
||||
check_lib '' OPENGL -lopengl32
|
||||
else
|
||||
check_header '' OPENGL "GL/gl.h"
|
||||
- check_lib '' OPENGL -lGL
|
||||
+ check_lib '' OPENGL -lgl
|
||||
fi
|
||||
|
||||
if [ "$HAVE_OPENGL" = 'yes' ]; then
|
||||
--
|
||||
2.36.0
|
||||
|
27
Ports/RetroArch/patches/0003-Add-strlcat.patch
Executable file
27
Ports/RetroArch/patches/0003-Add-strlcat.patch
Executable file
|
@ -0,0 +1,27 @@
|
|||
From 05fc282bdbe985fb77d746003ce213012a0292f8 Mon Sep 17 00:00:00 2001
|
||||
From: gouchi <gouchi@free.fr>
|
||||
Date: Sat, 7 May 2022 18:20:35 +0200
|
||||
Subject: [PATCH 3/6] Add strlcat()
|
||||
|
||||
---
|
||||
Makefile.common | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/Makefile.common b/Makefile.common
|
||||
index 580beba..dbfbd39 100644
|
||||
--- a/Makefile.common
|
||||
+++ b/Makefile.common
|
||||
@@ -186,6 +186,10 @@ ifneq ($(findstring Linux,$(OS)),)
|
||||
HAVE_UNIX = 1
|
||||
endif
|
||||
|
||||
+ifneq ($(findstring SerenityOS,$(OS)),)
|
||||
+ OBJ += $(LIBRETRO_COMM_DIR)/compat/compat_strl.o
|
||||
+endif
|
||||
+
|
||||
ifeq ($(HAVE_UNIX), 1)
|
||||
OBJ += frontend/drivers/platform_unix.o
|
||||
|
||||
--
|
||||
2.36.0
|
||||
|
25
Ports/RetroArch/patches/0004-Disable-pthread_attr_setschedpolicy.patch
Executable file
25
Ports/RetroArch/patches/0004-Disable-pthread_attr_setschedpolicy.patch
Executable file
|
@ -0,0 +1,25 @@
|
|||
From 365f17fb8bb303608d351f3a91219256746cdc60 Mon Sep 17 00:00:00 2001
|
||||
From: gouchi <gouchi@free.fr>
|
||||
Date: Sat, 7 May 2022 18:20:52 +0200
|
||||
Subject: [PATCH 4/6] Disable pthread_attr_setschedpolicy()
|
||||
|
||||
---
|
||||
libretro-common/rthreads/rthreads.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/libretro-common/rthreads/rthreads.c b/libretro-common/rthreads/rthreads.c
|
||||
index 30ec6ff..08c8a96 100644
|
||||
--- a/libretro-common/rthreads/rthreads.c
|
||||
+++ b/libretro-common/rthreads/rthreads.c
|
||||
@@ -161,7 +161,7 @@ sthread_t *sthread_create(void (*thread_func)(void*), void *userdata)
|
||||
}
|
||||
|
||||
/* TODO/FIXME - this needs to be implemented for Switch/3DS */
|
||||
-#if !defined(SWITCH) && !defined(USE_WIN32_THREADS) && !defined(_3DS) && !defined(GEKKO) && !defined(__HAIKU__) && !defined(EMSCRIPTEN)
|
||||
+#if !defined(SWITCH) && !defined(USE_WIN32_THREADS) && !defined(_3DS) && !defined(GEKKO) && !defined(__HAIKU__) && !defined(EMSCRIPTEN) && !defined(__serenity__)
|
||||
#define HAVE_THREAD_ATTR
|
||||
#endif
|
||||
|
||||
--
|
||||
2.36.0
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
From 8494fc6dbd6abc799a2eb02933103361ea0202b0 Mon Sep 17 00:00:00 2001
|
||||
From: gouchi <gouchi@free.fr>
|
||||
Date: Sat, 7 May 2022 18:21:50 +0200
|
||||
Subject: [PATCH 5/6] Use SDL software instead of hardware rendering
|
||||
|
||||
---
|
||||
gfx/drivers/sdl2_gfx.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/gfx/drivers/sdl2_gfx.c b/gfx/drivers/sdl2_gfx.c
|
||||
index 4dbe33f..dd67b4a 100644
|
||||
--- a/gfx/drivers/sdl2_gfx.c
|
||||
+++ b/gfx/drivers/sdl2_gfx.c
|
||||
@@ -182,7 +182,7 @@ static void sdl2_render_msg(sdl2_video_t *vid, const char *msg)
|
||||
|
||||
static void sdl2_init_renderer(sdl2_video_t *vid)
|
||||
{
|
||||
- unsigned flags = SDL_RENDERER_ACCELERATED;
|
||||
+ unsigned flags = SDL_RENDERER_SOFTWARE;
|
||||
|
||||
if (vid->video.vsync)
|
||||
flags |= SDL_RENDERER_PRESENTVSYNC;
|
||||
--
|
||||
2.36.0
|
||||
|
1060
Ports/RetroArch/patches/0006-Set-default-options-for-SerenityOS.patch
Executable file
1060
Ports/RetroArch/patches/0006-Set-default-options-for-SerenityOS.patch
Executable file
File diff suppressed because it is too large
Load diff
38
Ports/RetroArch/patches/ReadMe.md
Normal file
38
Ports/RetroArch/patches/ReadMe.md
Normal file
|
@ -0,0 +1,38 @@
|
|||
# Patches for RetroArch on SerenityOS
|
||||
|
||||
## `0001-Add-SerenityOS-platform.patch`
|
||||
|
||||
Add SerenityOS platform
|
||||
|
||||
|
||||
## `0002-Find-libgl.patch`
|
||||
|
||||
Find libgl
|
||||
|
||||
|
||||
## `0003-Add-strlcat.patch`
|
||||
|
||||
Add strlcat()
|
||||
|
||||
|
||||
## `0004-Disable-pthread_attr_setschedpolicy.patch`
|
||||
|
||||
Disable pthread_attr_setschedpolicy()
|
||||
|
||||
|
||||
## `0005-Use-SDL-software-instead-of-hardware-rendering.patch`
|
||||
|
||||
Use SDL software instead of hardware rendering
|
||||
|
||||
|
||||
## `0006-Set-default-options-for-SerenityOS.patch`
|
||||
|
||||
Set default options for SerenityOS
|
||||
|
||||
Set libretro cores path to `/usr/lib/libretro`
|
||||
Set video and audio driver to sdl2
|
||||
Disable vsync
|
||||
The libretro core won't keep running in the background when we are in the menu.
|
||||
Don't pause gameplay when window focus is lost
|
||||
Set some config paths to home directory
|
||||
|
Loading…
Add table
Reference in a new issue