From cbb335fec24267f2f560d376154cb14265be8998 Mon Sep 17 00:00:00 2001 From: YoshiRulz Date: Sun, 11 Dec 2022 13:13:11 +1000 Subject: [PATCH] Fix Lua `require` not looking in Lua dir on Linux see #3485 thanks to @CasualPokePlayer for research and initial implementation --- src/BizHawk.Client.EmuHawk/tools/Lua/Win32LuaLibraries.cs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/BizHawk.Client.EmuHawk/tools/Lua/Win32LuaLibraries.cs b/src/BizHawk.Client.EmuHawk/tools/Lua/Win32LuaLibraries.cs index c1f06dec30..e2e26afe16 100644 --- a/src/BizHawk.Client.EmuHawk/tools/Lua/Win32LuaLibraries.cs +++ b/src/BizHawk.Client.EmuHawk/tools/Lua/Win32LuaLibraries.cs @@ -104,6 +104,14 @@ namespace BizHawk.Client.EmuHawk } _lua.RegisterFunction("print", this, typeof(Win32LuaLibraries).GetMethod(nameof(Print))); + if (OSTailoredCode.IsUnixHost) + { + // add %exe%/Lua to library resolution pathset (LUA_PATH) + // this is done already on windows, but not on linux it seems? + var packageTable = (LuaTable) _lua["package"]; + var luaPath = PathEntries.LuaAbsolutePath(); + packageTable["path"] = $"{luaPath}/?.lua;{luaPath}?/init.lua;{packageTable["path"]}"; + } EmulationLuaLibrary.FrameAdvanceCallback = Frameadvance; EmulationLuaLibrary.YieldCallback = EmuYield;