Commit Graph

279 Commits

Author SHA1 Message Date
YoshiRulz 0fcb6cbaa7
ApiHawk refactoring and cleanup
MemApi.ReadByteRange now returns the requested number of bytes and not 1 extra,
MemApi.ReadByteRange now warns only once per call for addrs outside range,
MemApi.ReadByteRange now warns for negative addrs (once per call; previous
implementation passed negative addresses to PeekByte), MemApi.WriteByteRange now
warns only once per call for addrs outside range, MemApi.WriteByteRange now
warns for negative addrs (once per call; previous implementation passed negative
addresses to PokeByte)
2019-12-17 02:39:04 +10:00
YoshiRulz 0b43b35427
Migrate GuiLuaLibrary to ApiHawk delegation
Changed param clear of IGui.DrawNew from bool? to bool (default value remains
true), made IGui and GuiLuaLibrary inherit IDisposable, added
GetDefaultTextBackground to IGui, applied fix from 6b3071d8a to
GuiApi.DrawString, replaced background box drawn by Lua API
gui.drawString/gui.drawText with what I think is a shadow (now matches
GuiApi.DrawString)
2019-12-16 16:54:06 +10:00
adelikat ad8f321ea1 Add event.availableScopes(), fix LogWithSeparator, cleanup 2019-12-15 12:25:49 -06:00
YoshiRulz 05801dc2c5
Reduce LINQ usage in Lua subsystem 2019-12-16 04:08:22 +10:00
adelikat b6df55bbf0 fix double new line in lua console.log() 2019-12-15 10:18:58 -06:00
adelikat 5d03062c4c remove redundant console checks in console logging methods 2019-12-15 10:06:31 -06:00
adelikat d2f21f84e3 another extension method for lua table creation 2019-12-15 09:46:39 -06:00
adelikat 7ebfd42229 Simplify some lua table creation with an extension method 2019-12-15 09:22:10 -06:00
adelikat d955c468db refactor LuaHelper into an extension method class, and some nitpick cleanups 2019-12-15 09:05:33 -06:00
YoshiRulz e6cb74d314
Partially migrate EmuHawkLuaLibrary to ApiHawk delegation 2019-12-15 04:40:01 +10:00
YoshiRulz f8dc18c1bd
Migrate SavestateLuaLibrary to ApiHawk delegation
includes backwards-compatible API change
2019-12-15 04:39:16 +10:00
YoshiRulz cc8dffa769
Migrate InputLuaLibrary to ApiHawk delegation 2019-12-15 03:59:21 +10:00
YoshiRulz 104c17e77c
Prepare for EmuHawk-tied libraries to delegate to ApiHawk
Made ApiContainer inherit from APISubsetContainer, added
DelegatingLuaLibraryEmu, and reworked init logic in EmuLuaLibrary
2019-12-15 03:52:48 +10:00
adelikat d757b8e64f Refactor a lot of lua code to use a LuaFile object instead of a Lua object, and unify some luafile manipulation logic into methods 2019-11-29 15:02:40 -06:00
adelikat 24cbf5e274 lua - a bit more cleanup 2019-11-29 13:14:30 -06:00
adelikat de2da910c2 Lua - simplify some logic 2019-11-29 12:47:50 -06:00
adelikat f926142921 cleanup OSDManager 2019-11-26 19:36:04 -06:00
adelikat 4e9b780539 Lua - implement tastudio.loadbranch #fixes #1650 2019-11-24 13:55:46 -06:00
adelikat a3428128ef EmuLuaLibrary.Tastudio - organize methods some 2019-11-24 12:56:57 -06:00
adelikat 6972046509 EmuLuaLibrary.Tastudio clenaup 2019-11-24 09:37:32 -06:00
feos 5ca08b6c29
Camhack support (#1725)
for the camhack to work we have to save a state, hack memory, advance twice to see the changes, then load the state to prevent desync. since we can omit the framebuffer in savestates, loading them can happen without updating the screen, so the hacked camera remains visible.

advancing 2 frames automatically is done like tastudio does it when it seeks to a frame, only from lua now.

and the most questionable part is "invisible emulation", which is how Gens calls this IIRC, when everything that can distract or slow us down is skipped: sound, video, tools updates.

new lua functions:
- client.invisibleemulation()
- client.seekframe()

* for a test, mGBA core uses fake video and audio buffers and renders to them when we want to "skip" rendering. proper setup would involve actually skipping rendering those inside the core.
* allow disabling video and audio updates for gpgx too (proper approach, no fake buffers involved)
* add the script for Sonic Advance
2019-11-23 12:27:14 +03:00
YoshiRulz a7ffdd948e
Add DelegatingLuaLibrary and set up ApiHawk instantiation 2019-11-16 17:19:04 +10:00
feos 8a7e495039 allow suppressing more OSD savestate reports from lua 2019-11-10 17:09:10 +03:00
YoshiRulz ae12b0e23c
Revert some changes from #1237 and #1380 that aren't needed anymore 2019-11-04 19:53:14 +10:00
YoshiRulz 8c059aa43c
Replace helper methods with readonly bool IsUnixHost and cleanup 2019-11-04 14:30:05 +10:00
adelikat f967ebc3a7 cleanup Communication.cs 2019-11-02 10:33:26 -05:00
adelikat 5c674e5f8f Watch UI classes - some cleanups, mostly C#7isms 2019-10-27 18:02:06 -05:00
adelikat b54be19e9e InputRoll - reorg - put in its own folder, break out column and cell classes into separate files 2019-10-26 16:49:52 -05:00
James Groom 90b0574bc3
Remove unnecessary calls to ToList (e.g. in foreach)
squashed PR #1591
2019-10-13 15:50:57 +00:00
YoshiRulz 0840687d4e
Allow disabling frame skip from Lua (resolves #1655) 2019-09-02 15:20:09 +10:00
YoshiRulz e3e51678b7
Improve docs in SavestateLuaLibrary (resolves #1649) 2019-08-28 15:11:14 +10:00
YoshiRulz 0d610301ec Use a new order for socket connection instructions (resolves #1174)
patch by @Ashafix
2019-06-10 21:32:42 +10:00
Maximilian Peters 80c0fe571b Squash merge #1505 - set socketServer IP/port via Lua (resolves #1495) 2019-05-29 15:06:38 +10:00
adelikat 8132afec8b
Merge pull request #1536 from Ashafix/sleep
Added sleep functions for Lua to client module (resolves #1177)
2019-04-12 12:51:25 -05:00
Ashafix 598723266e added sleep functions for Lua to client module 2019-04-12 19:03:14 +02:00
zeromus 41c57e5217 fix repeating sound buffer when calling client.SetSoundOn 2019-04-08 16:09:26 -04:00
YoshiRulz e6374ef477
Use string interpolation 2019-03-19 00:06:37 +10:00
feos ce3e3d2ed3 lua docs: couple hints 2019-01-23 15:42:02 +03:00
James Groom 42764f0019 Add preliminary Unix compatibility (using Mono; resolves #1384) (#1380)
* Move PlatformSpecificLinkedLibs and implementations to common and rename
* Specify file ext. at LoadPlatformSpecific call site
* Move Client.Common.Global.RunningOnUnix to PlatformLinkedLibSingleton
* Inline var Resolver
* Use PlatformLinkedLibManager internally
* Move plugin load check to LinkedLibManager, use LinkedLibManager
* Interpolate
* Return exit code from dlclose/FreeLibrary
* Skip all calls to externs in BlipBufDll when using mono
* Use PlatformLinkedLibManager in SevenZipLibraryManager
* Add expected return value to workaround (from testing on Win32)
* Remove ".dll" from DllImport attr, remove temporary workaround, see desc.
The library can be built by changing the output file name in
`.../blip_buf/Makefile` to `libblip_buf.so`, and running `make`. It will be
loaded if placed in the `.../output` folder.
* Remove unused code, add TODO (this class is req. for Waterbox.PeWrapper)
The TODO is to [rewrite with
C#](https://docs.microsoft.com/en-us/dotnet/standard/io/memory-mapped-files)
instead of importing from `kernel32.dll`.
* Update OpenTK again but better (for #1384)
* Add Mono run script
* Add libblip_buf.so (temporary)
Temporary because it should be a separate package which BizHawk depends on.
* Add distro detection, add "already running" and "unknown distro" messages
* Gray-out Lua Console on Unix
* Extract superclass from EmuLuaLibrary, add shell implementation for Unix
* Specify libdl version, Fedora doesn't have the versionless symlink
* Remove empty `ToolStripMenuItem`, null `Text` caused crash on Unix
* Transform OpenTK keyboard input into a `List<KeyEvent>` and read that
Also fixes crash on rebind
* Remove debug `using ...;`
2019-01-04 01:50:55 +03:00
adelikat 12c11eec5d lua method - client.getconfig(), returns the current config object, note that you can actually use this to set primitive config values, do so at your own risk 2018-12-01 09:20:08 -06:00
adelikat db50cfc648 Merge branch 'lua-polygon-pos' 2018-11-18 08:28:05 -06:00
adelikat 7d708029ad drawPolygon - change x,y to offsetX,offsetY, make them truely optional by fixing a subtle order of operations problem 2018-11-18 08:27:32 -06:00
adelikat ee9e21bcb2
Merge pull request #1180 from AntyMew/lua-polygon-pos
Lua: Add optional position parameters to `DrawPolygon`
2018-11-18 08:12:01 -06:00
nog5 6b3071d8a7 lua: drawText() alignment fix
The vertical alignment "top" and "bottom" was backwards
2018-09-14 23:16:35 +02:00
Asnivor 3e8326da50 Lua: client.getversion() - #1314
fix #1271
2018-09-10 19:24:36 +03:00
Callie LeFave be2085ecfb
._. 2018-04-16 16:56:56 -04:00
Callie LeFave a10d0ec6cc
Fix CI build 2018-04-16 16:44:18 -04:00
Callie LeFave 0d9ced7d83
Lua: Add optional position parameters to `DrawPolygon` 2018-04-16 16:15:37 -04:00
feos ae6ce00d7c I've heard bad things about ElementAt() 2018-03-27 19:01:17 +03:00
zeromus 0a18040aff remove pointless redundant function name from LuaMethodExampleAttributes 2018-03-13 21:05:30 -04:00