From f13f0e4536bee3517e07b625265f538fdc18e965 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AE=8B=E6=96=87=E6=AD=A6?= Date: Sun, 1 Dec 2024 12:07:57 +0800 Subject: [PATCH 1/2] libretro: Add nt2,nt3,ons,/ to supported extensions list --- src/onsyuri_libretro/libretro.cpp | 12 ++++++++---- src/onsyuri_libretro/onsyuri_libretro.info | 4 ++-- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/onsyuri_libretro/libretro.cpp b/src/onsyuri_libretro/libretro.cpp index 6a79d2a..bdf46f5 100644 --- a/src/onsyuri_libretro/libretro.cpp +++ b/src/onsyuri_libretro/libretro.cpp @@ -125,8 +125,8 @@ void retro_get_system_info(struct retro_system_info* info) { info->need_fullpath = true; - info->valid_extensions = "txt|dat|___"; - info->library_version = "0.7.4+1"; + info->valid_extensions = "txt|dat|___|nt2|nt3|ons|/"; + info->library_version = "0.7.4+2"; info->library_name = "onsyuri"; info->block_extract = false; } @@ -187,8 +187,12 @@ retro_load_game(const struct retro_game_info* game) if (!game) return false; - char* gamedir = dirname(SDL_strdup(game->path)); - chdir(gamedir); + if (game->path[SDL_strlen(game->path) - 1] == '/') { + chdir(game->path); + } else { + char* gamedir = dirname(SDL_strdup(game->path)); + chdir(gamedir); + } // Ignore SDL_AUDIODRIVER and SDL_VIDEODRIVER. SDL_SetHintWithPriority(SDL_HINT_AUDIODRIVER, "libretro", SDL_HINT_OVERRIDE); diff --git a/src/onsyuri_libretro/onsyuri_libretro.info b/src/onsyuri_libretro/onsyuri_libretro.info index 2460afa..45f2acc 100644 --- a/src/onsyuri_libretro/onsyuri_libretro.info +++ b/src/onsyuri_libretro/onsyuri_libretro.info @@ -1,11 +1,11 @@ # Software Information display_name = "ONScripter Yuri" -display_version = "0.7.4+1" +display_version = "0.7.4+2" authors = "Studio O.G.A.|jh10001|YuriSizuku" categories = "Game engine" license = "GPLv2+" permissions = "" -supported_extensions = "txt|dat|___|ons" +supported_extensions = "txt|dat|___|nt2|nt3|ons|/" # Hardware Information manufacturer = "ONScripter" From 51505841bd1975725808de28dae4f866bf319e73 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AE=8B=E6=96=87=E6=AD=A6?= Date: Sun, 1 Dec 2024 12:10:17 +0800 Subject: [PATCH 2/2] libretro: Build with LUA support --- .gitmodules | 3 ++ src/onsyuri_libretro/CMakeLists.txt | 48 ++++++++++++++++++++++++++++- src/onsyuri_libretro/deps/lua | 1 + src/onsyuri_libretro/deps/lua.hpp | 9 ++++++ 4 files changed, 60 insertions(+), 1 deletion(-) create mode 160000 src/onsyuri_libretro/deps/lua create mode 100644 src/onsyuri_libretro/deps/lua.hpp diff --git a/.gitmodules b/.gitmodules index d73a6ae..24738cd 100644 --- a/.gitmodules +++ b/.gitmodules @@ -13,3 +13,6 @@ [submodule "src/onsyuri_libretro/deps/bzip2"] path = src/onsyuri_libretro/deps/bzip2 url = https://github.com/libarchive/bzip2.git +[submodule "src/onsyuri_libretro/deps/lua"] + path = src/onsyuri_libretro/deps/lua + url = https://github.com/lua/lua.git diff --git a/src/onsyuri_libretro/CMakeLists.txt b/src/onsyuri_libretro/CMakeLists.txt index 0acc739..8ac25cb 100644 --- a/src/onsyuri_libretro/CMakeLists.txt +++ b/src/onsyuri_libretro/CMakeLists.txt @@ -283,6 +283,50 @@ target_include_directories(bzip2 PUBLIC deps/bzip2 ) +add_library(lua STATIC + deps/lua/lapi.c + deps/lua/lcode.c + deps/lua/lctype.c + deps/lua/ldebug.c + deps/lua/ldo.c + deps/lua/ldump.c + deps/lua/lfunc.c + deps/lua/lgc.c + deps/lua/llex.c + deps/lua/lmem.c + deps/lua/lobject.c + deps/lua/lopcodes.c + deps/lua/lparser.c + deps/lua/lstate.c + deps/lua/lstring.c + deps/lua/ltable.c + deps/lua/ltm.c + deps/lua/lundump.c + deps/lua/lvm.c + deps/lua/lzio.c + deps/lua/ltests.c + deps/lua/lauxlib.c + deps/lua/lbaselib.c + deps/lua/ldblib.c + deps/lua/liolib.c + deps/lua/lmathlib.c + deps/lua/loslib.c + deps/lua/ltablib.c + deps/lua/lstrlib.c + deps/lua/lutf8lib.c + deps/lua/lbitlib.c + deps/lua/loadlib.c + deps/lua/lcorolib.c + deps/lua/linit.c +) +target_compile_definitions(lua PRIVATE + LUA_COMPAT_5_2 +) +target_include_directories(lua PUBLIC + deps/lua +) +target_link_libraries(lua PUBLIC m) + if (LIBRETRO_STATIC) add_library(onsyuri_libretro STATIC ${SOURCES}) else () @@ -296,15 +340,17 @@ else () endif () target_link_libraries(onsyuri_libretro - bzip2 sdl2 sdl2_image sdl2_mixer sdl2_ttf + bzip2 sdl2 sdl2_image sdl2_mixer sdl2_ttf lua ) target_include_directories(onsyuri_libretro PRIVATE ../onsyuri + deps ) target_compile_definitions(onsyuri_libretro PRIVATE __LIBRETRO__ USE_BUILTIN_LAYER_EFFECTS ENABLE_1BYTE_CHAR + USE_LUA ) if (HAVE_NEON) target_compile_definitions(onsyuri_libretro PRIVATE USE_SIMD USE_SIMD_ARM_NEON) diff --git a/src/onsyuri_libretro/deps/lua b/src/onsyuri_libretro/deps/lua new file mode 160000 index 0000000..75ea9cc --- /dev/null +++ b/src/onsyuri_libretro/deps/lua @@ -0,0 +1 @@ +Subproject commit 75ea9ccbea7c4886f30da147fb67b693b2624c26 diff --git a/src/onsyuri_libretro/deps/lua.hpp b/src/onsyuri_libretro/deps/lua.hpp new file mode 100644 index 0000000..4f9c28b --- /dev/null +++ b/src/onsyuri_libretro/deps/lua.hpp @@ -0,0 +1,9 @@ +// lua.hpp +// Lua header files for C++ +// <> not supplied automatically because Lua also compiles as C++ + +extern "C" { +#include "lua/lua.h" +#include "lua/lualib.h" +#include "lua/lauxlib.h" +}