Commit Graph

266 Commits

Author SHA1 Message Date
zeromus 5024f6022e console log lua exceptions, workaround for #607 2016-03-31 14:11:34 -05:00
feos a6c3561db0 lua: movie.getinput() now fails gracefully if adapter is null.
fixes #595
movie.mode() returns a string, so make its modes look like strings in the description.
2016-03-12 12:05:24 +03:00
zeromus aa3c599882 readd y=x functionality to SetReadOnly 2016-03-10 19:03:07 -06:00
feos 78f20510e5 lua: emu.disassemble(uint pc, string name = "") 2016-02-21 18:14:03 +03:00
adelikat ddbaf6b2f9 Lua - registering completiosn to sublime text 2 - exclude strings from completion logic 2016-02-14 22:35:47 -05:00
feos 07d4ac846b lua: memory.GetMemoryDomainSize()
fix #542
2016-02-09 17:54:11 +03:00
zeromus 97998071a7 fix bugs in lua's memorysavestate apis (fixes #565) 2016-02-08 01:28:26 -06:00
adelikat 36b82c3563 Lua Console - add a button that installs auto-complete for all bizhawk's lua library to Sublime Text 2's lua syntax, still todo - notepad++ 2016-02-07 08:27:57 -05:00
adelikat 487fce328b Lua - add option to detect changes in scripts and automatically reload them. Have this option off by default for now. Also fix reloading of scripts which was recently broken. 2016-02-06 13:50:02 -05:00
zeromus 5e89e563d0 overhaul lua sandboxing so that each lua script has its own sandbox. elaborate tracking of winform/event ownership to ensure that lua doesnt receive calls without going through the owner's sandbox. add win32-specific speed hacks for currdir set/get at higher speed. There may be bugs in this commit, but I think we're on the right track now. 2016-01-31 19:54:55 -06:00
zeromus 42c0b62261 fix some lua currdir bugs, but its all broken, dont pay any attention to it 2016-01-31 03:18:34 -06:00
zeromus da865e28b8 try sandboxing currenty directory harder 2016-01-31 02:40:48 -06:00
adelikat 5ddd9e097b clean up some warnings 2016-01-30 21:28:49 -05:00
zeromus 0da6e745e5 move EnvironmentSandbox and LuaSandbox to Client.Common 2016-01-30 18:37:30 -06:00
zeromus b0ab66801f Revert "comment out feos' sandbox change so things compile"
This reverts commit 418eed6cc5.
2016-01-30 18:28:51 -06:00
adelikat 418eed6cc5 comment out feos' sandbox change so things compile 2016-01-30 18:10:23 -05:00
adelikat ca3b43973c Load Lua session - when loading a relative path, drop the .\ part, I'm disappointed in Path.Combine 2016-01-30 18:08:54 -05:00
feos 7409a32658 lua: attempt to use sandbox in callbacks. 2016-01-30 23:26:27 +03:00
feos c641d94e05 lua: movie.save
see #384
2016-01-30 16:10:28 +03:00
feos a821fce6c8 typo 2016-01-30 16:10:27 +03:00
feos 7421bd7244 lua docs derp 2016-01-27 17:06:22 +03:00
feos 3c779a897b lua: emu.setislagged() 2016-01-27 16:41:41 +03:00
feos c1e70077c8 instafix #546 2015-12-13 00:00:22 +03:00
feos 3c07f7e649 lua: optional domain for memory functions.
fixes #538.

I tested heavy memory reading, and it's not adding noticeable overhead.
2015-11-29 22:56:28 +03:00
Hathor86 1e2f4e12be Watch refactoring
Some improvement when you get Available types. Used to return a new
array each time you call the function. It has been transformed into an
IEnumrable and yield return.
DisplayType, PreviousType and Watchsize have been moved outside the
Watch Class
2015-11-28 22:52:00 +01:00
zeromus 93e7c91ee9 clean up lua console pause/stop behaviour a little bit and add listview icons to make it more clear what's going on 2015-10-22 16:28:52 -05:00
adelikat aa01b725a6 Also handle lack of input callbacks when removing a lua function, not just on clear all 2015-10-17 20:03:07 -04:00
adelikat 32a2711303 When clearing lua callbacks, handle the case that input callbacks might not be implemented, also handle memory callbacks in a more consistent way 2015-10-12 19:02:03 -04:00
zeromus e6ea96771b fix crashes removing lua callbacks on some cores 2015-10-01 01:16:34 -05:00
adelikat f1c77c349e Oops, add EmuLuaLibrary.MemorySavestate.cs 2015-09-10 17:36:20 -04:00
adelikat 3ba965321a make bizstring.split() 1-based 2015-09-09 19:57:14 -04:00
adelikat 12479cbc25 lua implement movie.getcomments() and movie.getsubtitles() 2015-08-04 18:33:22 -04:00
adelikat f3d8388dfe Lua - implement movie.getheader() 2015-08-04 18:22:22 -04:00
adelikat 0205762409 lua - remove movie.insertframe() as it is no longer needed and was not coded in an acceptable way, if such a feature is needed in the future, it needs to be thought through better 2015-08-01 22:21:44 -04:00
adelikat 8ec8032061 lua - implement movie.startsfromsavestate() and movie.startsfromsaveram() 2015-08-01 18:16:40 -04:00
adelikat 383a462207 lua - implement movie.InsertFrame(int index, string logEntry), for now, will only work on .bk2 movies (.bkm and .tasproj will crash) 2015-08-01 15:46:43 -04:00
zeromus 644a17dc19 fix nonsense in ReadByteRange; should fix #463, but havent tested 2015-07-26 19:56:27 -05:00
adelikat 3541c9e975 Make the lag counter settable, and expose this functionality in lua 2015-07-09 13:05:30 -04:00
adelikat 2790dcbf0d lua - implement userdata.containskey() 2015-07-02 14:29:19 -04:00
adelikat f847e905d2 tastudio/lua - add onqueryitembg event to the lua library, this is called during each cell's background color drawing callback, and gives the opportunity for lua to override the color. 2015-07-01 19:01:29 -04:00
adelikat e03da4f5fe Lua - add a userdata library, with basic api for a script to add arbitruary data to a dictionary. This dictionary is saved and loaded in savestates (if present). Scripts can use this to create counters and whatnot that need data saved in savestates 2015-06-30 18:54:42 -04:00
scepheo abf1e55934 A bit of testing with Lua. 2015-04-10 14:11:01 +00:00
adelikat 5b15638671 Lua - issue 404 - add a Genesis library with the ability to toggle bg layers 2015-03-28 00:42:36 +00:00
adelikat 6ea50f6e49 Fix issue 410 - Lua - don't crash on lua script errors in savestate and frame events 2015-03-28 00:26:10 +00:00
adelikat 4e9e2ffa37 Lua - readbyterange - pass a table of strings not ints 2015-03-27 23:34:25 +00:00
adelikat bf034b880f some misc bug fixes in some lua functions 2015-03-27 23:29:15 +00:00
adelikat 16e9bc7d38 Fix some lua documentation 2015-03-23 22:22:02 +00:00
adelikat b82e19f230 Lua - fix a relative path bug when saving a lua session 2015-03-03 01:19:38 +00:00
adelikat 22c62d16a9 better catching of error in lua callbacks 2015-01-31 02:25:23 +00:00
adelikat 4ee4c449aa Lua - memory read/write callbacks - oops, specify them as read and write, not execute 2015-01-31 01:45:45 +00:00
adelikat b1b94da6ef Lua Sessions - make scripts relative to the lua session instead of relative to the .exe, note: this wrecks existing luases files 2015-01-29 02:08:12 +00:00
adelikat 9757709242 Lua - check if memory callbacks are implemented before attempting to remove memory callbacks 2015-01-27 21:48:18 +00:00
adelikat 8246de14aa IMemoryCallbackSystem - add a flag to indicate whether execute callbacks are available, in lua and the debugger, take this flag into account, also improve some availability checking in Lua memory callbacks. Flag N64 as not having execute callbacks available 2015-01-25 22:14:58 +00:00
adelikat 0d54298f02 Lua - memory domain - if a domain isn't writable, error when attempting to write to it 2015-01-25 20:20:43 +00:00
adelikat 779d7c0cee Lua - memory library - default to main memory if user did not specify a domain 2015-01-24 21:33:52 +00:00
adelikat 12c3cb0b40 oops, and that todo 2015-01-18 17:28:26 +00:00
adelikat 71438b2de6 remove a todo 2015-01-18 17:28:02 +00:00
adelikat 91ffc17aae Refacotor MemoryDomain.Size to be long instead of int, still some small todos, but it compiles and seems to work 2015-01-18 15:25:47 +00:00
adelikat fbdb29b64c refactor IMemorydomains to be a domain list instead of having a domain property, refactor cores to register an IMemoryDomains instead of being one 2015-01-14 21:55:48 +00:00
adelikat 9358e24213 IMemoryDomainList - downgrade from IList to IEnumerable, refactor a spot that needed something more than that 2015-01-14 00:34:50 +00:00
adelikat 418d80b0e8 Lua - Memory library - simplify some code 2015-01-14 00:25:25 +00:00
adelikat d62ba4e2b4 Change IMemoryDomains to have an IMemoryDomainList instead of a MemoryDomainList, this is an incremental step into eventually having IMemoryDomains take over the properties of IMemoryDomainList, still todo: reduce the amount of needed functionality in IMemoryDomainList from old and not good code 2015-01-13 22:18:07 +00:00
adelikat 6f4b01417f Lua - convert SNES library to service injection system 2015-01-01 20:37:31 +00:00
adelikat 01019686cf lua - convert memory libraries to use service injection 2015-01-01 20:19:20 +00:00
adelikat b6e33d010a Lua - gameinfo library - convert to using service injection 2015-01-01 20:08:03 +00:00
adelikat f6c2b4e897 Lua - event library - convert to service injection system, fix OnInputPoll() to return a GUID like every other event 2015-01-01 20:01:37 +00:00
adelikat 58616ff001 lua - Emu library - convert to service injection model, fix emu.getregister(s) that was broken when refactoring core methods for better debugger support 2015-01-01 19:52:53 +00:00
adelikat 7bebb66589 IDebuggable - refactor GetCpuFlagsAndRegisters to be IDictionary<string, Register> where Register is a value and a bitsize 2014-12-20 03:19:33 +00:00
goyuken cfaf59f887 lua: internal infrsatructure changes to nes library 2014-12-17 23:03:58 +00:00
goyuken ea47246658 remove the IEmulator inheritance from some services, and fix code as needed 2014-12-15 22:25:06 +00:00
adelikat 45809ab73f move an attribute in Wonderswan core that was on the constructor on accident, added an AttributeTargets attribute on it that would have caught such an error, add AttributeTargets on some other attributes to help clarify their usage 2014-12-13 02:31:31 +00:00
adelikat 1c179da80c MemoryCallback System - another refinement, make an IMemoryCallback and make that the argument for add methods 2014-12-07 19:09:36 +00:00
adelikat 2d1a43dc65 MemoryCallbackSystem - simplify by having a single Add method with a MemoryCallbackType parameter, and some simplifying of client code as a result 2014-12-07 18:53:56 +00:00
pjgat09 c2096d9a30 Lua: Fixed a bug with analog controls not being cleared 2014-12-07 07:39:01 +00:00
adelikat 0b84beec88 Move MemoryCallbackSystem from CoreComm to IDebuggable and refactor accordingly, Lua - tell the user when memory callbacks are not available for a given core 2014-12-05 01:56:45 +00:00
adelikat 11a8a009c5 AsDebuggable() 2014-12-05 01:01:58 +00:00
adelikat f5cc38c9cd AsInputPollable() 2014-12-05 00:59:00 +00:00
adelikat 04f9081943 in IEmulator extensions add methods such as AsMemoryDomains(), AsStatable() that do the service calling magic. In the client code replace appplicable casts of IMemoryDomains with AsMemoryDomains(), more commits of this nature for the other IEmulatorServices soon to follow 2014-12-05 00:32:29 +00:00
adelikat a07263c04e Move InputCallbackSystem from CoreComm to IInputPollable, and refactor all cores accordingly. Lua - OnInputPoll() - log to the user when attemping to add a callback of this type to a core that has not implemented input callbacks. Mark all unmanaged cores' implementations of the InputCallbackSystem as FeatureNotImpleented, won't have any effect on functionality, but will help us keep track of the fact that they still have a bit of work to do. Still todo: ActiveChanged event handler on the base implementation of IInputCallbackSystem 2014-12-04 00:43:12 +00:00
adelikat a83d714c42 Break off IsLagFrame and LagCount from IEmulator and put into its own interface IInputPollable, and refactor cores as necessary. EmuHawk - account for the possibility that a core is not an IInputPollable, and do things like disable the lag counter menu item. Still some front end todos. Also still todo, move the InputCallbackSystem from CoreComm to IInputPollable 2014-11-30 20:29:30 +00:00
adelikat a932cef662 Add a description attribute for EmulatorLuaLibrary 2014-11-08 14:08:32 +00:00
scepheo 28f21e1775 Lua:
- LoadState through Lua isn't counted for movie RerecordCount.
 - Added movie.setrerecordcount and movie.getrerecordcount for people who really want to count their bot loadstates.
2014-10-20 20:31:31 +00:00
jlennox a64017366c Create ISettable<T,T2>/ISettable interfaces. This checkin has not been extensively tested. 2014-10-19 01:22:47 +00:00
jlennox 01a994fe9c Break IDebuggable off from IEmulator 2014-10-18 22:13:25 +00:00
adelikat 538c4632af Add a LuaLibraryAttributes attribute to lua libraries with a Released property, only register libraries that are released except in Developer Builds, set tastudio library Released flag to false 2014-09-20 01:00:50 +00:00
adelikat d003be9cda remove some todos, I decided not to do any of them, it is too pedantic to do them 2014-09-01 19:07:05 +00:00
adelikat 5ba74c631c Remove MemoryDomains from IEmulator into a new Interface, IMemoryDomains, Add this interface to existing cores, except null emulator (and removed memory domain related code from it). Refactored EmuHawk for ram tools to use an instance of IMemoryDomains rather than IEmulator, don't expose ram tools unless the core implements IMemoryDomains. Still a few misc todos, and probably some cleanup 2014-09-01 18:43:41 +00:00
gochaism 6e01ca1808 Lua: Add bit.arshift for arithmetic right-shift. 2014-08-14 01:49:28 +00:00
adelikat 9644c3d29f Lua - memory library - populate the default memory with the MainMemory defined for that core, as opposed to null, which results in silent crashes 2014-07-14 16:24:28 +00:00
adelikat e475edc3c6 Lua - joypad.setfrommnemonicstr() - catch errors and log to the lua console the error instead of killing the script 2014-06-29 13:40:49 +00:00
adelikat 055e88fea3 Remove Fps from IMovie 2014-06-29 00:48:36 +00:00
adelikat 19feaaa3ba Remove some more usages of IMovie.GetInput() 2014-06-19 00:37:42 +00:00
adelikat 9a16540e14 Movie 2.0 - simplify some code 2014-06-18 19:34:27 +00:00
adelikat 6133164a7f Add GetInputState() to IMovie that returns an IController representing a frame of input and replace a lua method to use this instead of getting the inputlog as a string and processing it, still todo: obsolete the GetInput() method 2014-06-18 02:26:22 +00:00
adelikat 6b73891a91 More bk2 progress 2014-06-15 14:44:26 +00:00
adelikat c807e27496 Some movie code reorg and cleanup 2014-06-15 13:03:24 +00:00
adelikat df19bc3a38 slight fix to wiki lua documentation 2014-06-14 17:04:54 +00:00
adelikat a682c667dd Nuke IMovieHeader, put necessary methods into IMovie instead, and some todos on trouble spots for movie 2.0 2014-06-11 01:41:41 +00:00
goyuken fb026ccb3c support looah emu setrenderplanes for quicknes (sp only, not bg) and wonderswan (fully supported) 2014-06-10 20:41:20 +00:00
adelikat e4a12c58bc for Developer builds - Lua functions list - a ToTASVideosWikiMarkup button that copies to clipboard 2014-06-05 00:23:05 +00:00