TASEmulators / BizHawk

BizHawk is a multi-system emulator written in C#. BizHawk provides nice features for casual gamers such as full screen, and joypad support in addition to full rerecording and debugging tools for all system cores.
http://tasvideos.org/BizHawk.html
Other
2.1k stars 380 forks source link

MoonSharp / the future of Lua #2260

Open YoshiRulz opened 4 years ago

YoshiRulz commented 4 years ago

(going to flesh this out more later the can has been kicked down the road now that Lua works under Mono)

(see existing discussion in https://github.com/TASVideos/BizHawk/issues/971#issuecomment-549660627, #1415, #1422, and #1491, and also in IRC logs if you have them)

options to choose from:

YoshiRulz commented 4 years ago

(reserved because I can imagine this thread getting real long)

CasualPokePlayer commented 2 years ago

edit 2022-05-07: KeraLua is another .NET Standard 2.0 library, but supports Lua 5.4 features, unlike MoonSharp.

To clarify here, KeraLua is the new Lua "backend" for NLua. Our NLua is still when they used KopiLua, and we only are able to use native Lua with a hacky switcharoo to give it our LuaInterface instead of KopiLua.

It would probably be easiest (and best in terms of lua functionality) overall to just update our NLua to upstream and delete our LuaInterface. I tried a bit here: https://github.com/CasualPokePlayer/BizHawk/tree/moonshot and it seems to execute commands within the console without completely crashing, so it doesn't seem so bad to do.

YoshiRulz commented 2 years ago

https://github.com/CasualPokePlayer/BizHawk/commit/c41096ac01bc88040b286ceb483e2860dc9fdb7b seems to work on Linux

CasualPokePlayer commented 4 months ago
  • Pluto (fork of Lua 5.4, probably no C# bindings)

It would appear the API (as far as bindings are concerned) is identical to Lua 5.4, so simply dropping in a different .dll/.so would suffice to "support" this (hell you could make it literally a switch in the config whether you want Pluto or pure Lua 5.4)