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
adelikat
5e2bd8a927
lua documentation - show optional parameters as optional, and show default values
2014-06-04 01:23:50 +00:00
adelikat
83671539d1
LuaDocumentation - some simplifying of code
2014-06-04 00:22:44 +00:00
zeromus
0fe74f95e7
fix LuaConsole PWD-related bugs
2014-06-03 02:39:15 +00:00
adelikat
0649d1c77e
Lua - add some more documentation, add a method that generates tasvideos wiki markup of the documentation and outputs to a file (method not wired to anything, there to save me tons of time when releasing)
2014-06-03 02:19:13 +00:00
adelikat
ba4e7d620b
Refactor the LuaDocumentation class to remove a bunch of unnecessary stuff
2014-06-03 00:34:41 +00:00
adelikat
f72b13bed3
Lua - events.unregisterbyid() - strongly type guid to string since that's what the methods return that give guids back to the script
2014-06-02 01:05:51 +00:00
adelikat
5d79072a38
Lua - Finish strongly typing the Color params in the gui library, Lua Functions List - cleanup display of Color params and some other things
2014-06-02 01:04:13 +00:00
adelikat
83ada011e8
Lua - Refactor how lua libraries are registered by searching assemblies and finding implementations and building a list of these
2014-06-01 22:02:59 +00:00
adelikat
51660dd023
Add SetCpuRegister() to IEmulator. Implemented it in Atari 2600, 7800, C64, Neshawk, and technically dual gameboy (passes it to L and R where it will fail). The rest throw NotImplementedExceptions. Lua - add emu.setregister(), catches NotImplementedExceptions and informs the user.
2014-05-31 17:03:21 +00:00
adelikat
9a24539c10
Lua - catch NotImplementedException on emu.getregister(s) and warn the user that this particular core doesn't implement this feature yet. Also, put IEmulator extensions in their own namespace
2014-05-31 14:29:27 +00:00
adelikat
0782c9820d
Lua - implement event.onexit() - fires when the calling script stops execution, supports multiple callbacks per script
2014-05-26 03:08:16 +00:00
adelikat
6d981c73e1
Lua - fix joypad roundtrip testing
2014-05-24 03:24:05 +00:00
adelikat
667a96a277
Lua - combine common code in memory and mainmemory libraries into a base class, apply range checking to all methods, add memory.getsize() to match mainmemory method, fix a name bug in a memory 32bit method, clean up a bunch of things too
2014-05-23 23:19:20 +00:00
adelikat
6f296a5773
Lua - joypad.setfrommnemonicstr() - support the notion of pressing the analog stick for 1 frame, rather than sticky behavior
2014-05-21 03:25:41 +00:00
adelikat
af9c462826
meh, null check some other bizstring library functions while I'm thinking about it
2014-05-21 02:12:27 +00:00
adelikat
ac6c5e6b48
lua - nullcheck bizstring.split()
2014-05-21 02:05:26 +00:00
adelikat
e88b7cc93e
one more tweak to make lua library constructors unified
2014-05-21 01:15:52 +00:00
adelikat
17568997bf
Lua - unify constructors and have all libraries receive a lua context and an output callback, simplify some convolved registration code
2014-05-21 00:17:35 +00:00
adelikat
6401e6d719
Refactor LuaLibraryBase to have a Lua context rather than misc libraries being in charge of that when needed. Still todo: clean up the inconsistent constructor logic, vs setting these as public properties
2014-05-20 20:34:51 +00:00
adelikat
f19d15d1ed
Lua - add a Log callback to the LuaLibraryBase class instead of having misc libraries have to build out this behavior when they need it
2014-05-20 20:25:18 +00:00
adelikat
4ee4088c4c
read/write byte range functions - range check, and log warnings if user attempts to access outside the domain range, rather than throw a vague lua exception and crash
2014-05-19 01:42:41 +00:00
adelikat
e1a5123dcf
implement memory.readbyterange() and memory.writebyterange(), these were in the mainmemory library but how did they manage to never be implemented in the memory library?
2014-05-19 01:13:26 +00:00
adelikat
059952f0a4
Change memory.getmemorydomainlist() to return a lua table instead of a string
2014-05-19 01:06:44 +00:00
adelikat
b2feb39c11
Lua - implement joypad.setfrommnemonicstr()
2014-05-18 22:54:41 +00:00
adelikat
d2bc1b89a3
Lua - implement movie.getinputasmnemonic()
2014-05-18 21:26:27 +00:00
adelikat
3d10d67fea
Implement bizstring.split()
2014-05-18 21:06:16 +00:00
adelikat
8cf1d327e3
Lua - Fix typo, memory.write_u8 instead of a duplicate memory.write_s8
2014-05-06 17:29:52 +00:00
adelikat
76a4560ff9
Lua - emu.getsystemId - be consistent with movies
2014-05-03 02:28:12 +00:00
adelikat
07e2c9758f
back out of 6464
2014-05-02 01:32:01 +00:00