Commit Graph

215 Commits

Author SHA1 Message Date
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
adelikat d5a48614b7 Remove a now unused method 2014-05-01 17:11:05 +00:00
adelikat 06828f2484 Lua - convert emu.setrenderpanes to use params 2014-05-01 17:09:54 +00:00
adelikat f2c5b4eeb4 fix to emu.setrenderpanes 2014-05-01 12:06:54 +00:00
adelikat 04aa023cb9 Fix joypad.Set() when using the controller number parameter, also strongly type that parameter to nullable int instead of object, add a unit test lua script that tests for this 2014-04-22 21:55:04 +00:00
adelikat 67704b35bf Lua Console - dont' flag changes when change the on/off status of a script as that leads to being nagged too much (for instance, toggling a lua script at any time during recording and then restarting your movie). Remember the file name when creating a new session as to do a Save As during AskSave() 2014-04-22 21:35:04 +00:00
adelikat 603fd81066 Lua - implement movie.fps() and add MovieTimer.lua script that shows the clock time for a given movie (updates while recording) 2014-04-22 21:27:08 +00:00
adelikat 47f33b522f Lua - support quicknes in nes library 2014-04-22 01:38:19 +00:00
adelikat ed7ce61234 Lua - joypad.get() strongly type the controller parameter to nullable int 2014-04-13 18:46:06 +00:00
adelikat d5d84943fa meh, slight tweak to that commit 2014-04-13 14:24:38 +00:00
adelikat 9c3a7fec37 Lua - add a gameinfo lua library with getromname(), getromhash(), getdisplaytype(), getindatabase(), getstatus(), getisstatusbad(), getboardtype(), and getoptions() methods 2014-04-13 14:22:13 +00:00
beirich c3e0d8824c zero warnings! 2014-04-08 02:25:46 +00:00
adelikat 42ff4c072c Lua - Fix joypad.set() 2014-03-29 21:12:04 +00:00
adelikat b93c1414c1 A fix to joypad.set() - passing null will clear a button 2014-03-27 01:21:05 +00:00
adelikat 51f480901b a slight cleanup of the JoyPad.Set method to make it not so annoying to understand 2014-03-27 00:53:22 +00:00
adelikat 00c243212d Lua - rename the string library to bizstring because it was eating the built in lua string library. Fix M64_reader that was using now deleted/renamed functions 2014-03-26 22:30:48 +00:00
adelikat 8ac9f7d2dd Lua Console - try to use relative paths when saving and loading lua scripts 2014-03-23 14:44:18 +00:00
adelikat 0a0f144aa8 Lua - Bit library - fix support for uint values 2014-03-01 15:04:19 +00:00
mvl1986 17f17a02fd Added the display of tooltips for all the methods that are in the lualibraries
-MightyMar
2014-02-12 13:28:48 +00:00
adelikat 23f7017651 Some code cleanup tinkerings in Client.Common 2014-02-03 20:48:01 +00:00
adelikat 364c2367ea Hex Editor - refactor to use ToolDialogSettings Add floating window option 2014-01-30 03:10:17 +00:00
adelikat 7417ea7b8f Lua - more documentation and more strong typing of parameters, more fixups to display of parameter types in the Lua functions list 2014-01-27 03:16:05 +00:00
adelikat ce9f282d67 Lua - clean up a lot of params by making them strongly typed numbers instead of object, and simplify a lot of logic as a result 2014-01-27 01:15:56 +00:00