Commit Graph

226 Commits

Author SHA1 Message Date
J.D. Purcell b53502eed8 Spaces -> tabs. 2017-04-15 16:37:30 -04:00
adelikat fc59710dab some code cleanup, mostly introducing C#6isms, also add a customized resharper+stylecop settings file in case anyone is using resharper 2017-04-10 10:30:05 -05:00
adelikat c61d432fd6 Don't position tools to last saved position if that position is not visible on screen 2017-02-21 16:57:47 -06:00
adelikat 5277be6833 Ram Search - update the size and display type dropdowns on restart. Fixes #762 2017-02-07 18:54:58 -06:00
adelikat 4a7321b096 Ram watch - yet another tweak to restart logic, ugh 2017-01-29 20:21:47 -06:00
adelikat dca03607be Ram watch - another tweak to previous commit 2017-01-29 19:56:09 -06:00
adelikat c5ff514760 Ram watch - fix logic when deciding whether to keep the current watch list when rebooting the core, the check was always failing 2017-01-29 19:32:52 -06:00
adelikat 44a1e691f3 Ram Search - show restored/removed messages when undoing/redoing, fixes #749 2017-01-14 20:00:55 -06:00
adelikat e73a66b07e When ram watch is open with a file open, and loading another rom, only keep the ram watch file open if all the domains are compatible, else close it, addresses #285. There is arguably not a black and white expectation in this scenario but I think this is marginally more expected than exceptions and erroneous watch values 2016-11-12 11:46:32 -06:00
adelikat 36dcf53cc0 on specialized number boxes, select all text when reseting an empty box to a default value. This fixes #685 2016-11-09 10:19:49 -06:00
adelikat 3f191be372 Ram Search - Better event to tie toolbar enabling logic to for indices changing - fixes #629 2016-09-21 14:31:42 -04:00
adelikat 3bf11dbf68 Fix slow Ctrl+A on Ram Search and Ram Watch, fixes #630 2016-09-21 10:56:57 -04:00
zeromus a7d2b8d7f7 * add a new IToolForm update mechanism which has extensible update points (so a tool can both pre- and post- update)
* make trace logging "core-pushes" model, to a sink installed by the frontend. This sink can go straight to the disk without wasting memory if that's what the Trace Logger tool has selected; or the Trace Logger will buffer it if it needs to.  Formerly, we had a "core-pushes-to-buffer" and "client-pulls-once-per-frame" which necessarily caused huge buffers no matter what was going on.
2016-08-13 15:31:26 -05:00
parasyte 71c7edbb24 Add address mask setting for breakpoints 2016-08-08 04:37:39 -07:00
Isotarge e0ac148e76 Fix #669
- Fixes RAM Watch, RAM Search, and RAM Poke usability issue w/negative
numbers.
- Bonus fix for unhandled exception when entering . in to the specific
value box
2016-07-22 02:15:43 +09:30
Isotarge 41ff244e01 Poke: Ram -> RAM #669 2016-07-22 01:52:43 +09:30
Isotarge 5a20a520bd Tools: Ram -> RAM #669 2016-07-22 01:32:54 +09:30
nattthebear 111648cf98 Break a bunch of memory domain stuff with pointless refactoring 2016-04-13 19:50:06 -04:00
zeromus 66683b16ed replace "Ok" with "OK" 2016-03-26 21:50:33 -05:00
Isotarge 822f571621 RAM Search: Fix unhandled exception
Fixes an unhandled exception when beginning to type a negative number
into the search box when display is set to float
2016-03-05 08:11:08 +10:30
zeromus 2f50771494 fix ramwatch popup dialogs not referencing ramwatch as parent 2016-02-17 16:37:53 -06:00
adelikat 51e12040d1 Ram Watch - fix logic that determines whether to show Freeze or Unfreeze in the context menu 2016-01-31 11:55:00 -05:00
adelikat 9cb0072f0f Ram Search - also fix leadings zeros in the Difference box 2016-01-31 09:15:17 -05:00
adelikat 0013646db5 Rip out obsolete notion of a WatchList domain, change ram watch menu item to Default Domain, who's functionality is simply to decide the default domain used when adding a new watch, also add some Visual Studio designer shenanigans for a previous commit I made that broke it 2016-01-30 22:17:31 -05:00
adelikat aaf4d39b58 Ram Watch/Search - misc code cleanup 2016-01-30 21:21:17 -05:00
adelikat 6f75ef6dba Move another function to ToolFormBase 2016-01-30 21:07:03 -05:00
adelikat 894a9c2318 Rework ToolHelpers from a static object to ToolFormBase that inherits form and have a lot of tools inherit it, in hopes of moving a lot of copy pasta into a base class, move a few functions that show up a lot there 2016-01-30 20:24:53 -05:00
adelikat 7bb3e04105 Ram Search - fix having lots of leading zeros in the different by box 2016-01-30 18:28:29 -05:00
Connor Olding f0c939d87c reimplement strings for OSD watches
also fixed saving separators
2015-12-23 17:18:39 -08:00
Hathor86 a7074c6341 ExternalToolManager and BizHawkExternalToolattribute
Add those 2 classes in order to help handling of external tools
- Also fix value setting in watches constructor
- Bugfix in loading externaltools (they loaded multiple times)
- Add new version of Hello World external tool
Whitespaces noise in RamWatch.cs... :s The code hasn't changed
2015-12-13 21:38:35 +01:00
Hathor86 708bb4fa93 Final stuff to WatchList
Now fully use comparer class. That saves memory and offer extensibility
ItemCount property obsolete => Moved to Count property (which did the same thing)
Moved ConfigPersistAttribute.cs, IToolForm.cs, IToolFormAutoConfig.cs back to common
2015-12-09 00:54:54 +01:00
adelikat 48487f2a90 Sort out and fix problems with Ram Search watch files showing up in the Ram Watch recent list 2015-12-04 23:18:46 -05:00
Hathor86 32271899c3 Comments on Watch derived class; started on watchlist
+ Moved WatchList.cs to specific directory (just a matter of ordering)
+ Mark some properties and methods in watchlist as obsolete
+ Create Comparer class that are used for sorting (Only domain and
address atm, other a still stored with linq). Unlike OrderBy in LINQ, it
doesn't create a new list for sorting (so it saves memory), furthermore,
it runs faster.
Finally, change to type of Watch.Address from nullable lon to regular
long (the rare times watch.Address.Value was used, there wasn't any
check of null and so, program would have crashed -
InvalidOperationException -)
2015-12-01 22:18:55 +01: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
Hathor86 d4b4c06f0c Draft of API
So, I create a new dll named BizHawk.Client.ApiHawk and moved few stuff
to it.
Also moved some stuff to BizHawk.Client.Common. Don't think it can be
desiociated.

I started comment Watch and rearrange code (put some #region etc...

It compiles and it seems working :)
2015-11-26 23:05:29 +01:00
zeromus 53eae133e7 fix #537 Annoyance with "always on top" 2015-11-12 17:32:49 -06:00
zeromus be4af1ec2f when editing watches, populate the edit dialog with the actual memorydomain of the watch you're editing, instead of mainmemory 2015-11-03 03:24:25 -06:00
zeromus 7e0996b44b fix Memory watch: Strange rectangle #526 2015-10-18 22:13:41 -05:00
zeromus 7e9c966887 fix some weirdly bloated dialog box resx files simply by deleting their icons and re-setting them 2015-10-13 00:14:12 -05:00
adelikat 1ee56ea4ef Ram Search - fix save menu item adding to ram watch recent files instead of ram search 2015-10-11 09:53:32 -04:00
adelikat 6d4dea9a14 Don't attempt to remember tool window size/position if tool is minimized/maximized, this fixes issue #491 but also fixes the bug in every tool (unless there is a tool that does not implement IAutoToolFormConfig that I missed in this changeset) 2015-09-05 17:05:14 -04:00
adelikat 8a4e33981c Ram Watch - only show the Read/Write breakpoints context menu items if the selected address(es) are on the system bus, and only show if all the criteria to use them are available rather than showing and disabling them. 2015-07-21 22:30:38 -04:00
zeromus f8497507f7 proof of concept: handle VirtualItemsSelectionRangeChanged on VirtualListView to fix some bugs when shift+clicking. Better fix is to correct all this stuff at the base class level and turn it into a more normalized event that works the way you expect. 2015-07-18 12:32:48 -05:00
scrimpeh 60c3734e8c Ram Watch - Fix moving up and down blocks of identical Watches 2015-07-05 18:55:43 +02:00
adelikat 5d5a4d10f2 Ram Search - make IInputPollable an optional service not a required one 2015-04-17 15:21:19 +00:00
SuuperW 9b8d2f70ab Various fixes 2015-03-22 16:55:34 +00:00
pjgat09 876bb5adf4 Ram search: fix searching for a specific value >= 0x80000000 2015-03-15 02:35:47 +00:00
scepheo 32b788b352 Hex Editor and new RAM Watch now default to memory domain byte size. 2015-02-24 10:18:20 +00:00
adelikat abbfcad071 Fix Ram Watch designer file 2015-02-08 22:30:18 +00:00
scepheo 714f4a9687 RAM Watch: Added read/write breakpoint setting to context menu. 2015-02-08 17:39:59 +00:00
scepheo 0ff1808101 RAM Search: Fixed go-to using index instead of address. 2015-02-08 00:35:32 +00:00
scepheo bdfdd96686 RAM Poke: Pressing the "Poke" button now also closes the dialog. 2015-01-30 16:15:08 +00:00
adelikat 5636c1b6a1 Ram Search - support copy similarly to ram watch 2015-01-27 03:09:13 +00:00
adelikat f547dfbb21 some fixes to last commit 2015-01-27 02:53:57 +00:00
adelikat bb2cd1b476 Ram Watch - support copy and paste (generates and receives the same text as would be in a .wch file) 2015-01-27 02:37:18 +00:00
adelikat e51ffd95d8 Ram Watch/Search - disable poke and freeze toolbar items based on writability of a domain, also smarter enabling/disabling of them in general 2015-01-25 16:07:15 +00:00
adelikat 71d7c2537a Ram Watch/Search - also disable freezing if a domain is not writable 2015-01-25 15:15:56 +00:00
adelikat 7ed8704555 add a CanPoke() extension method for memory domains, checks for a null or not implemented Poke Poke delegate, use it to disable Poke on Ram Search and Ram Watch, still todo - hex editor and lua 2015-01-25 14:37:37 +00:00
zeromus 2a1f40982c dont know how valuable it will be, but just in case.. 16.16 fixed point support 2015-01-22 01:24:20 +00:00
adelikat aff2e9544e Ram Search - change "Add to Ram Watch" hotkey from ctrl+R to ctrl+W for consistency 2015-01-21 23:20:58 +00:00
adelikat a8b1fc609a Ram Poke - handle the case of an absurd amount of addresses picked 2015-01-19 02:04:04 +00:00
adelikat ebf7273cbe Hex Editor - open poke dialog in a logical location, update the hex editor when Poke is clicked on the Poke pop up dialog 2015-01-19 01:39:47 +00:00
adelikat f647f16592 Ram Watch - add/edit watch - support 32 bit domains 2015-01-18 19:50:31 +00:00
adelikat 515a41592c Convert a whole bunch of ram stuff from int to long 2015-01-18 18:59:23 +00:00
adelikat 6507fa5d92 Hex Editor - convert addresses from int to long, fixes Go to address on 32bit domains, highlighting on addresses after 7FFFFFFF is still busted though 2015-01-18 18:01:27 +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 ab518e9e7c Ram Search - Issue 342 - add an "Account for lag" option to the auto-search feature, on by default because I decided that you probably really want that most of the time and don't realize that you do 2015-01-02 21:53:39 +00:00
adelikat 153e823f78 Ram Search - a minor code refactor - remove a functional call that is only used once in another function and just do the code there 2015-01-02 21:33:03 +00:00
adelikat 38c1ffa1e9 Fix autoloading of Ram Watch 2015-01-02 15:19:18 +00:00
adelikat 47d1e480da Ram Watch - a null check 2015-01-02 14:40:18 +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 31823693ae Cheats, Ram Watch - Fix bugs in column hide/show in new system 2015-01-01 01:21:06 +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 fd28a593f6 Ram Watch - add a null check on Restart() 2014-12-22 00:59:39 +00:00
goyuken 78ea103114 ramwatch fix 2014-12-21 21:43:03 +00:00
scepheo eaaaef8f1d RamSearch: Have Restart() handle settings loading so RAM Search actually works again. 2014-12-17 20:04:25 +00:00
adelikat ffe3be09a4 Remove some now useless logic in the Restart() method of some tools (checking IsHandleCreated and IsDisposed) 2014-12-17 03:48:08 +00:00
adelikat 95c57da72c Ram Watch - add back the text property as "Ram Watch" don't know when that went blank 2014-12-17 03:03:12 +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
goyuken ea47246658 remove the IEmulator inheritance from some services, and fix code as needed 2014-12-15 22:25:06 +00:00
goyuken 7b580e7dca tim the tool form taylor 2014-12-15 03:19:23 +00:00
adelikat 3af65a6498 removed some deletable code I missed 2014-12-14 01:42:05 +00:00
adelikat 8eda262ebe convert Ram Watch and Hex Editor to use EmulatorServices 2014-12-13 22:54:07 +00:00
adelikat c00b8ad78e Ram Search - convert to using EmulatorServices 2014-12-13 22:40:04 +00:00
scepheo 769cbeb1a0 - IToolForm: Added RequiredServices attribute to define dependencies, and added EmulatorServices for ToolManager to supply them.
- IServiceProvider, BasicServiceProvider: Added compile-time unknown type versions of GetService and HasService.
- ToolManager: Added IsAvailable to test whether all dependencies for a tool are available.
2014-12-13 21:54:59 +00:00
goyuken 0b16e36776 fix issue 330 2014-11-29 18:57:57 +00:00
adelikat e6e2972e3d Make IMemoryDomains inherit IEmulator and simplify some code slightly as a result 2014-11-23 16:03:04 +00:00
zeromus 200d11df62 cleanup ramwatch during rom loads for other platforms a bit. should fix #285. the whole concept of ramwatch when loading other platforms needs some help though (the current watches mutate into some format senseless for the new platform) 2014-10-11 19:49:22 +00:00
adelikat a71031d6d0 fix the same stale memory domain problem from 7909 but in Ram Search 2014-09-28 16:51:06 +00:00
adelikat f4d3b70469 Ram Watch - fix issue with stale memory domains when rebooting a core, some cores were unaffected, cores like atari 2600 were affected by this bug 2014-09-28 16:39:53 +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
kylelyk 321c8c64bf Added documentation to IControlMainForm, renamed a few variables, moved IControlMainForm related code in MainForm to the same region. 2014-08-19 19:24:17 +00:00
adelikat 813d1b1669 Input Roll - FullRowSelect and MultiSelect properties, SelectedIndexChanged event 2014-08-14 23:10:56 +00:00
hegyak 42caa87c67 Correct Error with RAMWatch and seperatorToolStripButton. Also unified all RamWatch internal button names. 2014-08-07 22:48:10 +00:00
adelikat a84e3b3a3b Ram Watch - account for separators in my background drawing bypassing logic 2014-08-02 01:36:06 +00:00
adelikat d89dfd5595 Change Ram Watch and Ram Search to invalidate rather than refresh, also refactor ram search some to have more coherent update methods for when the listview changes size vs when the values need updating 2014-07-30 22:31:52 +00:00
adelikat 2fd1ffe824 VirtualListView - add a UseCustomBackground flag true by default, if set to false it will bypass custom background drawing logic resulting in that speedboost I keep doing checkins for. Refactor RamWatch to check if there is any need to draw ahead of time and set this flag. Most of the time this will result is a good speed boost for this dialog, only if they are watching a frozen address (which isn't very exciting anyway) or an out of range address (which they need to fix) do they suffer the speed cost of background drawing 2014-07-30 21:31:13 +00:00
adelikat aeea08a823 Cleanup the InputPrompt class, removing unused methods, and converting some silly methods into properties allowing some pretty array initializers instead of function calls 2014-07-28 02:40:30 +00:00
adelikat 5d4ff76ed6 Convert a copy/pasted method in a bunch of tool dialogs to an extension method 2014-07-28 02:31:51 +00:00