Commit Graph

1095 Commits

Author SHA1 Message Date
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
jdpurcell 45ae0bb207 Fix potential (but rare) rewind savestate corruption when threaded option is enabled. 2015-01-18 15:38:49 +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
jdpurcell 423376835c Rewinder - when reallocating buffer, make sure we have released all references to the old buffer first to free up memory for the new buffer. 2015-01-18 00:56:32 +00:00
jdpurcell bcb6b20ec2 Rewind - if memory allocation fails, back off the size until successful. 2015-01-18 00:20:49 +00:00
jdpurcell 40bfe91238 Rewinder - small optimization to previous bugfix and rename misleading method name. 2015-01-17 20:53:01 +00:00
jdpurcell c23e60ac62 Fix several pre-existing bugs (doubt they were triggered often). 2015-01-17 20:37:00 +00:00
jdpurcell 0a9b07ac32 Small cleanup. 2015-01-17 19:22:21 +00:00
jdpurcell 4a40408f1d Use variable length integers for the rewind state deltas to reduce size. 2015-01-17 19:16:22 +00:00
jdpurcell f11158ac86 Would be nice if it compiled though. 2015-01-17 06:20:00 +00:00
jdpurcell 112d794f11 More optimization. 2015-01-17 06:19:13 +00:00
jdpurcell b4a4c04844 Remove unnecessary bounds check. 2015-01-17 04:13:05 +00:00
jdpurcell f99338dc2e Optimization (25% faster or so). 2015-01-17 03:55:41 +00:00
adelikat ec9bc9462b fix slowdown in movie finished mode 2015-01-16 17:56:56 +00:00
goyuken 82fcd0bc5e refactor IVideoProvider into a service. uses in mainform and friends are still hacky 2015-01-14 22:37:37 +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
goyuken f69718f57e provide intelligent message on trying to load CD from archive. this causes no change in functionality, as following that codepath would fail 100% anyway 2015-01-14 18:07:03 +00:00
jdpurcell 36d98f28a6 Always use Low CPU clock throttle mode; remove option. 2015-01-14 04:49:18 +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
jdpurcell 0a345b0084 Issue 368: Set all platform targets to x86, rename build platforms to match, and remove unused build platforms. 2015-01-13 15:28:58 +00:00
jdpurcell 28f1ad1c0e Allow clock throttle to take over for audio / vsync throttles during fast forward or rewind for proper speed control. 2015-01-13 04:21:32 +00:00
adelikat 21f5209726 oops, fix movie recording that was busted by revision 8761 2015-01-12 22:48:57 +00:00
jdpurcell e66fe70365 Proportional rewind speed is now always enabled - revert user-configurable setting.
Fix fast rewind with proportional rewind speed.
2015-01-12 15:09:27 +00:00
jdpurcell 3d37e3dc5a Option to make rewind speed proportional to rewind frequency. 2015-01-12 05:30:27 +00:00
adelikat c8c563153c Bk2 input display generation - don't generate the mnemonic string twice, one time per function call will do 2015-01-11 15:50:01 +00:00
adelikat d560eb80b4 BK2 mnemonics - support up to 8 players by default (without the need for a platform override) 2015-01-11 15:44:12 +00:00
adelikat 5e73e82b29 Fix the "pause" movie end option 2015-01-10 15:49:31 +00:00
adelikat 57023ffcb7 Movie playback - fix issue 358, duplicate input after a movie ends, note: this commit could be a breaking change for other movie related things (such as alternate movie end types other than the default of "finished") 2015-01-10 15:12:58 +00:00
adelikat fdc290cc14 Roll back last commit, nevermind. 2015-01-06 02:29:30 +00:00
adelikat f88b5389c1 Break everything. Seriously, a total cock-up. But also: Fix issue 358, duplicated input after a movie ends. Movie recording isn't obviously horribly busted from this, but just about anything movie related is now possibly busted, if you are looking for some mysterious regression in some movie feature, here's a good place to start! 2015-01-06 02:10:21 +00:00
jdpurcell 8c41af53d1 Option to automatically check for and notify of new versions. 2015-01-04 15:04:44 +00:00
adelikat 6c4a32d517 Virtualpads - when right-click auto-firing - take lag frames into account 2015-01-04 13:45:43 +00:00
adelikat 6835da1e45 VirtualPad - basic buttons - when right-clicking for autofire, respect the frame that autofire started on 2015-01-03 20:05:04 +00:00
adelikat 2f8a59a219 When the "Pause" movie end option is selected, fix bug where unpausing keeps repausing the emulator, now it will pause on movie end, and advancing further will stop and close the movie 2015-01-03 03:27:17 +00:00
christoph.boehmwalder c3f51f8b39 Made saving a little more convenient by putting it in its own thread. Might be very buggy still.
Also temporarily disabled reading TAStudio settings in PlaybackBox because of a NullReferenceException
2015-01-03 02:29:55 +00:00
jdpurcell d9bb7390be Add menu option for low CPU clock throttle.
Enable use of Stopwatch for clock throttle timing on non-Windows platforms (seems safe enough).
2015-01-02 22:57:27 +00:00
adelikat 3c83911c4f Ram Search - don't allow undo to the original list, a user can easily start a new search to get to that state, and allowing it means undo already starts out with a full list eating a lot of RAM for no benefit 2015-01-02 22:18:53 +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 5bba86e23a GB Game Genie - convert to IToolFormAutoConfig 2015-01-01 19:07:57 +00:00
adelikat bb5b20cc33 Gensis Game Geneie Encoder/Decoder - convert to IToolFormAutoConfig, fix a bug that would have made it never be available, make it available on non-interm builds (I think the issue keeping it unreleased was a core endian issue that was resolved), add a menu item for it in the Genesis menu 2015-01-01 19:02:00 +00:00
adelikat 93fe387311 NES Game Genie - convert to IToolFormAutoConfig, also fix a bug that would have made it never show up as available 2015-01-01 18:51:24 +00:00
adelikat 1854544f01 convert SNES Game Genie encoder/decoder to IToolFormAutoConfig 2015-01-01 18:45:14 +00:00
adelikat 1ee7cfc153 Convert Virtualpads to IToolFormAutoConfig 2015-01-01 18:42:08 +00:00
adelikat 6ce93c0496 TAStudio - move some settings from Config.cs to the dialog using [ConfigPersist] 2015-01-01 18:24:35 +00:00
adelikat 6fb88a0105 TAStudio - convert to IToolFormAutoConfig 2015-01-01 18:10:07 +00:00
adelikat b8d667812b convert Lua Console to IToolFormAutoConfig 2015-01-01 17:48:25 +00:00
adelikat 54b7a1c50f Convert Hex Editor to IToolFormAutoConfig and [ConfigPersist] 2015-01-01 14:54:26 +00:00
adelikat 89fcceecfc ToolManager - support autoloading from custom settings that inherit ToolDialogSettings, Ram Search - convert recent files to ConfigPersist 2015-01-01 02:08:45 +00:00
adelikat 3c09e25b82 move a variable in Config.cs to a more sensible place 2015-01-01 01:22:22 +00:00
adelikat 6440c9c44b Ram Watch - convert to ConfigPersist, and do column stuff the new way 2015-01-01 00:47:22 +00:00
adelikat ace8192c8a Cheats dialog - refactor and simplify how column info is saved and loaded 2014-12-31 23:28:50 +00:00
adelikat d809da1e8d Cheats dialog - convert to using ConfigPersist, and simplify some code 2014-12-31 22:16:22 +00:00
goyuken 757ca11e98 gba gpu view: IToolFormAutoConfig 2014-12-31 19:22:39 +00:00
jdpurcell eacadc8e09 Apparently UserControls that are created dynamically need AutoScaleMode.Font. UserControls placed via the designer should use AutoScaleMode.Inherit. Actually it seems possible to get around the problems of dynamically created UserControls (including the need to manually scale the positions/sizes) by moving their creation into the constructor after InitializeComponent, adding SuspendLayout before InitializeComponent, and adding ResumeLayout after UserControl creation. But I don't want to risk moving the code around too much. 2014-12-31 05:34:21 +00:00
jdpurcell 7b4c5636bd Improve scaling. Still needs some work but it's better than it was. 2014-12-28 23:58:45 +00:00
jdpurcell 9a1108e9f7 Fix control positions/sizes in the cases where auto scaling doesn't apply (e.g. dynamically created controls). 2014-12-28 21:59:53 +00:00
goyuken 4d78052961 pce sound debugger: auto config 2014-12-28 17:22:58 +00:00
goyuken 87c064c6ac snes graphics debugger: use autoconfig 2014-12-28 17:15:36 +00:00
goyuken 3ff067d426 IToolFormAutoConfig: add restore defaults 2014-12-23 01:01:37 +00:00
adelikat 67d03c12c7 Debugger - convert to IToolFormAutoConfig 2014-12-22 23:57:03 +00:00
goyuken 401c40fe8a don't show file picker twice on fallback to different core 2014-12-22 22:21:51 +00:00
goyuken 7e51289003 pce cdl: change settings system 2014-12-22 21:38:57 +00:00
goyuken 5ac505d582 SMS vdp viewer: settings 2014-12-22 19:15:56 +00:00
goyuken 808e17c3f7 tracelogger settings 2014-12-22 19:01:21 +00:00
adelikat 8a64bb3ee7 remove an unused config variable 2014-12-22 01:35:06 +00:00
adelikat 6d0a764a72 Tastudio - quick fix for crashing on startup, a better solution is needed eventually but this will work fine, it just isn't conceptually how we want to do things anymore 2014-12-21 23:53:40 +00:00
goyuken 66b557ce93 update some pce tools to use autoconfig/configpersist 2014-12-21 16:59:36 +00:00
goyuken ed6082cab3 NES: set NT and PPU viewers to use the new settings stuff 2014-12-21 08:17:56 +00:00
goyuken ff8922bb08 itoolform custom config infrastructure; not complete 2014-12-20 21:49:53 +00:00
goyuken 62cb922a81 change GB gpu to work with IToolFormAutoConfig and fix un-resizable window behavior 2014-12-20 17:20:56 +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 360ca02b93 tool setting stuff. WIP 2014-12-19 23:33:05 +00:00
zeromus 4dc4745122 psx - revise disc swapping method. way cooler now, you get a list of discs in the virtualpad box, and changing between them maps to physical operations more logically. 2014-12-19 03:24:48 +00:00
adelikat 42b454a562 Rip out the Atari 2600 debugger 2014-12-18 18:51:22 +00:00
zeromus 786cf97f0a psx - scribble some notes about framerate 2014-12-18 03:36:40 +00:00
goyuken cfaf59f887 lua: internal infrsatructure changes to nes library 2014-12-17 23:03:58 +00:00
hegyak d8e319b250 Let's let the user know they are Emulating a PlayStation. The ByteSize may be wrong. 2014-12-17 19:14:21 +00:00
zeromus 275c72d0c2 psx - framerate definitions 2014-12-17 01:22:25 +00:00
scepheo 14e2b280ac Removed reference to Global.Emulator from RamSearchEngine. 2014-12-16 01:50:22 +00:00
scepheo 77be509e44 RAM Search: Implement previous type "last change". Fixes issue 331. 2014-12-16 01:19:29 +00:00
scepheo 528b7ea104 RAM Search: Fix issues with signed values. Resolves issue 340. 2014-12-16 00:41:47 +00:00
scepheo 53ea2caeac ^Really^ fix cheats not working (forgot WordWatch & DWordWatch) 2014-12-15 23:57:56 +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 8648e6ba0a Remove the nes debugger tool 2014-12-14 14:56:16 +00:00
zeromus 2d56514fde load m3u files. still no disc switching 2014-12-14 10:36:03 +00:00
zeromus ede9620446 psx - settings framework and implement mednafen-compatible display mode 2014-12-14 08:48:23 +00:00
adelikat 14008fbcb0 don't show a "No core could load a rom" nag if the user cancels out of the platform chooser 2014-12-14 02:13:06 +00:00
scepheo 5179a3379f Fixed cheats not working. 2014-12-14 01:51:55 +00:00
zeromus 24526669fe emuhawk - add options for display of various window components (menu,frame,caption,statusbar). add --chromeless commandline argument and logic for folks embedding in frontends 2014-12-14 01:43:46 +00:00
adelikat 4985b3853d PSX mnemonics -> Square = Q not S 2014-12-13 14:57:03 +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 4304aa9d01 that was a bad idea 2014-12-13 02:26:15 +00:00
goyuken 10dee85cdb comments! 2014-12-12 23:11:49 +00:00
adelikat 536964bac2 a squarish mnemonic constant that is ascii 2014-12-12 02:07:46 +00:00
adelikat f447ab907b Bk2 mnemonic constants for some psx buttons, had to get creative on this one 2014-12-12 01:28:20 +00:00
zeromus 2a3a8a3124 psx - support loading exes 2014-12-11 08:30:37 +00:00
zeromus 5f6bb8d8fd octoshock! 2014-12-10 19:41:13 +00:00
zeromus e0c09a553b redo how subwcrev stuff is done, so that the subwcrev process doesnt have to run for every project. improves build times. 2014-12-09 19:20:22 +00:00
adelikat 21ae27dd94 Bk2/TasProj movies - don't crash if syncsettings, comments, or subtitles are missing 2014-12-08 19:02:22 +00:00
zeromus 08ae448257 start adding d3d9 display method, but.. it was more work than gdi+, as I expected. I'll finish it another time. 2014-12-08 02:15:42 +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
zeromus 556b7b0123 gdi+ display method! 2014-12-07 02:26:52 +00:00
adelikat 4a96e58a24 Start a generic Debugger tool, does nothing now except for open and have the standard ui options all tool forms have (such as autoload) 2014-12-06 00:03:36 +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 e2033c9d2e AsStatable() and also update statusbar saveslots on CloseRom() 2014-12-05 00:52:16 +00:00
goyuken 40416656a2 eliminate snowiy emulator option from CoreComm. this commit is a bit hackish 2014-12-05 00:39:02 +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
zeromus 29b217b587 big discsystem refactors and preliminary CCD handling. not to be considered stable, but ill start supporting it. 2014-12-04 05:40:10 +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 4b321847a4 ugh, just disable all warnings in ArchiveUpdateCallback.cs 2014-12-04 00:02:01 +00:00
adelikat 471b73eb0b disable an annoying warning in 7z code, since we don't really maintain it, I won't fix it, just hide it 2014-12-03 23:57:26 +00:00
zeromus 26c35ca7b8 rough draft of file ID system. not ready to be used just yet, but I think it can go the distance. I'll have to hook it up later. 2014-12-03 06:14:59 +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 71c92cb87e don't freak out if someone attempts to rewind on a core that is not IStatable 2014-11-30 19:58:32 +00:00
adelikat 1e5474c345 SaveSlotManager - check HasSavestate() not IsNull() 2014-11-30 17:58:26 +00:00
adelikat eed16fafc8 TasStateManager - don't check for null emulator nor IStatable, fail catastrophically if a core is not IStatable, they shouldn't have gotten this far if it wasn't 2014-11-30 17:54:21 +00:00
adelikat 76148ae111 Break off savestate functionality from IEmulator into IStatable and refactor things accordingly. Still todo (a big todo): EmuHawk should gracefully handle a core that is not an IStatable by disabling functionality dependent upon it (Savestates, Rewind, Tastudio, etc) 2014-11-30 16:42:58 +00:00
adelikat 4681fef0c2 Add an IsNull() extension method to IEmulator (checks for null and if NullEmulator) and replace EmuHawk NullEmulator checks with this method instead 2014-11-30 14:18:44 +00:00
adelikat fdc9ea2aa9 fix issue 326 - Ram Watch, Ram Search showing actual value instead of frozen value on frozen addresses 2014-11-29 00:45:38 +00:00
adelikat 7c83b91e83 Ram Watch - fix a bug where loading a watch file with separators would throw a null reference exception 2014-11-29 00:28:48 +00:00
goyuken 70fc923d2c fix savestate speed regression accidentally introduced with r8117 2014-11-28 17:36:05 +00:00
adelikat 0e82fff3ff Clean out ClearSaveRam() calls since they are no longer used 2014-11-24 15:00:54 +00:00
goyuken ad1ca57163 comments! 2014-11-23 19:31:22 +00:00
goyuken 610ac0d4d2 correct lynx platform flamerate, fix bug in virtual boy platform flamerate 2014-11-23 19:25:47 +00:00
adelikat e6e2972e3d Make IMemoryDomains inherit IEmulator and simplify some code slightly as a result 2014-11-23 16:03:04 +00:00
adelikat be00dae474 Fix issue 316 - cancelling out of the core picker causes exception 2014-11-22 15:56:02 +00:00
adelikat d64be5ed76 SystemID is Lynx not LYNX, cuz I said so 2014-11-21 01:32:15 +00:00
adelikat 2041b15260 Tasproj loading - don't attempt to read from empty files if they exist but are empty 2014-11-20 00:14:33 +00:00
adelikat b4f7e13d1b Tastudio - in non-developer builds, set the minimum savestate frequency from 2 to 1 2014-11-19 16:22:03 +00:00
adelikat ea6966a911 Tastudio - fix loading of projects 2014-11-19 15:54:00 +00:00
adelikat 17c6a2c1f6 Snes - use the compatibility profile override option in the game db, note that it will be a temporary override for the game if detected, the user setting will not be permanently changed. This touched a bunch of things, and many other things had to be considered, there's a reasonable chance that this broke something 2014-11-19 00:32:51 +00:00
hegyak ce626011d4 Added SystemInfo and SystemId for Lynx 2014-11-18 12:09:11 +00:00
adelikat 5349affbc4 Tastudio - support "out of order savestating" using saveslot states. Experiemental, could have bugs particularly off by one issues 2014-11-15 21:49:58 +00:00
adelikat 410078081c Tastudio - fix lag lag to reflect the next frame 2014-11-15 14:55:44 +00:00
adelikat 80dae0d026 Tastudio - refactor lag log to be a list of frame,bool combinations instead of just a list of bools, note: this changeset reverts the list back to an "off by 1" where it corresponds to the current frame not the next frame, that will be solved in a later commit 2014-11-15 14:31:18 +00:00
adelikat aa38ad24a2 Bk2 movies - don't save when switching to play, note: when stopping a movie in play mode, the movie will not be saved unless there are changes, the Save() that was removed here masked problem with potential failure to save. As of this commit, bk2 movies rely on the Changes flag to be accurately set 2014-11-14 00:00:18 +00:00
adelikat 891d3933bd Don't increment the Rerecord counter with loading a bk2 or tasproj movie, fixes the obvserved issue in issue 303. However, a bigger concern is why loading a movie and stopping it is causing the movie to be saved in the first place 2014-11-13 23:49:58 +00:00
zeromus a7432a1e52 firmwaremanager now tracks filesizes, and filesizes of known firmwares are used to restrict scope of scanning 2014-11-13 00:09:16 +00:00
zeromus ba0eca8a69 do firmware hash calculation differently without needing a buffer, for users with GBs of roms in their firmware folder 2014-11-12 01:27:11 +00:00