Commit Graph

213 Commits

Author SHA1 Message Date
YoshiRulz 5412a74890
Use the *correct* formatting string, skip calls to Math.Abs 2019-03-05 19:16:20 +10:00
YoshiRulz 20087cd804
Use string interpolation with {0:P;M;Z} format string 2019-03-03 17:52:47 +10:00
upthorn 59f30b4a79 Allow signed display of fixed point values. 2018-12-06 12:25:00 -08:00
Asnivor 92f187fce1 RAMWatch: Enhancements (#1315)
fix #1257
2018-09-14 08:28:38 +03:00
frequem d0d73766bd Fixed some filenames causing problems on case-sensitive systems 2018-02-21 20:19:33 -05:00
alyosha-tas 7a987810ef Cheats: Fix 2 byte return values
Fixes #1060
2017-11-21 09:58:16 -05:00
YoshiRulz f983c91eb0 Add display type column (resolves #683) 2017-11-10 14:32:30 +11:00
alyosha-tas af9c813c5b Add files via upload 2017-10-19 09:48:27 -04:00
zeromus f536002053 ramwatch: print diffs as integers always, fixes spurious - display as well as what I assume is a combination of unwanted and illogical behaviour attempting to display it as the same format as the value 2017-06-27 16:20:19 -05:00
adelikat 43cb50d5c3 Misc cleanups in Client.Common 2017-05-19 13:17:07 -05:00
adelikat 0d4313af91 general Cheat code cleanup 2017-05-18 15:16:02 -05:00
adelikat 70baf9d306 Client.Common cleanups 2017-05-18 11:36:38 -05:00
adelikat 2a54517b52 more misc Client.Common cleanups 2017-05-17 13:18:26 -05:00
adelikat dfea029fe4 Misc cleanups in Client.Common, documentation fixes 2017-05-17 11:16:55 -05:00
adelikat f576cb14b0 Watch classes - refactor, simplify, and cleanup code 2017-05-17 10:46:56 -05:00
adelikat 3860cf89c3 LINQ-fu 2017-05-10 13:40:18 -05:00
adelikat 429b066955 Client.Common - remove various redundant codez 2017-05-10 13:37:04 -05:00
adelikat f942a409d7 Client.Common - remove a bunch of unused usings 2017-05-10 13:27:10 -05:00
nattthebear ebe789eed2 heh 2017-05-10 07:45:23 -04:00
adelikat e0985465b6 misc Client.Common code cleanups 2017-05-09 13:19:55 -05:00
J.D. Purcell b53502eed8 Spaces -> tabs. 2017-04-15 16:37:30 -04:00
J.D. Purcell ed3bf0e62b Fix mixed line endings. 2017-04-15 15:53:02 -04:00
adelikat b6f335e4c8 misc code cleanups in BizHawk.Client.Common 2017-04-14 14:59:01 -05: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
J.D. Purcell b2a28339d1 Use 'nameof' operator. 2017-04-10 08:36:42 -04:00
adelikat 98a390b3c6 Default compare type to equal not NOTHING, fixes nes game genie codes generated through the cheat converter, and probably a lot of other platforms. And this is a better default, also silent failures are always bad 2017-02-25 15:08:20 -06:00
adelikat 44a1e691f3 Ram Search - show restored/removed messages when undoing/redoing, fixes #749 2017-01-14 20:00:55 -06:00
adelikat ef6c9131c6 Fix behavior when loading a new rom when a cheat is loaded, fixes #550 2016-10-06 13:57:39 -05:00
adelikat 3a36835af2 Ram Search - with the Diff column displayed, don't throw exceptions, Fixes #637. The Diff column still has issues with 4 byte watches though, but this fixes unending exceptions at least 2016-10-05 20:58:26 -05: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
feos 13476f33ca tastudio: don't pass ctrl+c hotkey to mainform. 2016-08-01 20:23:16 +03:00
Isotarge 5a20a520bd Tools: Ram -> RAM #669 2016-07-22 01:32:54 +09:30
zeromus 859f4e3c01 fix 2 watch-related bugs and a typo in an error message 2016-04-15 22:43:14 -05:00
nattthebear 111648cf98 Break a bunch of memory domain stuff with pointless refactoring 2016-04-13 19:50:06 -04:00
Hathor86 fcb0c8bc32 Work on input get/set through ApiHawk
Convertion has been moved to dedicated class

SystemInfo class review

SystemInfo class now instanciate all SystemInfo and stores them in a
static readonly collection (avoid creating a new class each time we call
DisplayName property).
+ EmulatedSystem enum (in Api) renamed to CoreSystem and moved to
BizHawk.Client.Common
+ this enum is used in SystemInfo class

Created a Joypad class that is populated with JoypadButton enum flags

Input get/set throught ApiHawk works for NES only. So many work remains...
2016-03-29 23:42:24 +02:00
zeromus 75df712563 fix ramwatch crashing bug involving core reboots and watchlist hanging on to stale emulator instances 2016-02-23 14:42:47 -06:00
adelikat cacfb615c4 simplify Cheat.cs somewhat 2016-02-16 20:02:57 -05:00
adelikat 3257b06f85 unnecessary usings 2016-02-16 19:57:57 -05:00
Adam Sturge c82f70763e Fixed bug where having no comparison type would throw exception 2016-02-09 20:33:44 -08:00
Adam Sturge 5dc31d3eb9 Fixed index bug for comparison type in Load() in CheatList 2016-02-07 21:54:45 -08:00
Adam Sturge 52c587d712 Save/Load cheats now accounts for comparison type column 2016-02-07 21:40:14 -08:00
Adam Sturge 992acd9e96 Added code to sort by comparison type. Added code to compare based on comparison type selected 2016-02-07 20:56:40 -08:00
Adam Sturge f19333dd11 Prettied up display of comparison type in cheats table 2016-02-05 20:33:21 -08:00
Adam Sturge 092b5da974 restored [ConfigPerist]. 2016-02-05 19:33:31 -08:00
Adam Sturge 9959d61949 Added comparison type dropdown. Updated Cheat model to contain reference to comparison type 2016-02-02 20:32:46 -08:00
adelikat cc1867326a Ram Search - fix "Exclude Ram Watch" option 2016-01-31 19:28:25 -05:00
adelikat ab16e9238b Drop support for pre-1.0.5 ram watch files, I think it is safe to do this by now 2016-01-30 22:19:32 -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
Hathor86 da25052e09 Just few comments on above notwa's method :)
(Oh and transform string concatenation with + to a string.Format)
Also made a small fix to externaltoolmanager
2015-12-24 14:00:08 +01: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 21e25555d0 BytWatch ValueString property fix
Call GetByte() instead of _value field (like other watches)
2015-12-10 10:25:45 +01:00
Hathor86 7779b2f7db Fix RamSearch value
Fix has been done on constructor of each watch. Call GetByte / Word /
DWord if value is 0.
It ensure that previous passed in parameters remains unchanged
2015-12-10 00:34:07 +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 31cc08a954 More WatchList comments
Finished coments on WatchList object
2015-12-02 22:48:30 +01: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 ee860fd820 Quick fix of save watch
Wrong ToString() method was called when writing
Reading was ok
2015-11-30 18:27:55 +01:00
Hathor86 e7de250fb2 Comments on ByteWatch
Also moved nullable value type to non nullable (with exception
prevention).
2015-11-29 17:13:32 +01:00
Hathor86 01639c3e10 Watch comparaison interfaces implementation
Watch now implements IEquatable<Watch>, IEquatable<Cheat>,
IComparable<Watch>
Operators had also been overloaded. You can now put watches from SAME
domain in a list and easly sort them.
Sorting is based on address first then size.
2015-11-29 13:46:50 +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 565f19fc83 Watch: Comments & reordering
Just comments some methods and reordering them
2015-11-27 13:43:49 +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 6f71956faa add lousy logic to fix cheat compares 2015-11-15 18:22:12 -06:00
zeromus 5402f1ff9e dont reorder cheats list when editing cheats 2015-08-04 22:25:58 -05:00
pjgat09 c829887f00 Ram search: fix equal/not equal for float searches 2015-03-21 00:13:53 +00:00
adelikat 36f4eff0f6 add ByteSize to MemoryDomain with a default of 1, set it to not 1 on appropriate domains (I probably missed some, or got some wrong). Have RamSearch use that instead of SystemInfo, remove ByteSize from SystemInfo since it is no longer needed 2015-02-22 15:19:38 +00:00
adelikat 8371c23830 WatchList - use the new watch to string method, did not wire up the from string, since the load code while very poorly coded, both works and supports legacy formats including older rerecording emulators 2015-01-27 02:55:31 +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
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 4c47ef2f3f Watch.cs - an remove an int cast I missed when converting domain size to long 2015-01-19 02:58:18 +00:00
adelikat 515a41592c Convert a whole bunch of ram stuff from int to long 2015-01-18 18:59:23 +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 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
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
scepheo 5179a3379f Fixed cheats not working. 2014-12-14 01:51:55 +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 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
adelikat e6e2972e3d Make IMemoryDomains inherit IEmulator and simplify some code slightly as a result 2014-11-23 16:03:04 +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 1dc789eb02 Ram Tools - support poking frozen values, fixes issue 266 2014-09-27 21:52:15 +00:00
zeromus 87e9d235f6 make some effort to support memdomain of full 32bits size, and use it for n64 system bus. make sure to check that its disabled in ramsearch engine and in hex editor. we could probably fix it to work in hex editor later. 2014-09-09 21:34:41 +00:00
zeromus ea1387c339 fix signed comparisons probably broken by last commit 2014-09-07 06:33:21 +00:00
zeromus c829183fa7 fix handling of sign extension and longs in ramsearch engine. fixes observed misbehaviours in n64 ramsearching. not tested real well, but definitely a needed improvement 2014-09-07 06:17:10 +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
adelikat db0dd17676 Hex Editor - fix wrapping logic when incrementing/decrementing frozen addresses 2014-08-16 14:44:40 +00:00
adelikat 9cfb30093a Ram Watch/Ram Search - Fix freezing of float values as well as some other types 2014-08-02 01:54:07 +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 ef14f661c0 Hex Editor - properly handle (and not throw exceptions) the display of cheat values in a byte size not equal to the cheat byte size 2014-07-28 00:49:48 +00:00
adelikat 6269e957e6 Remove some unused extension methods and move some others to CollectionExtensions 2014-07-03 18:43:49 +00:00
adelikat 1964f3754a Merge InputValidate into StringExtensions 2014-07-03 16:00:57 +00:00
adelikat 0eb37ad36d Convert IntHelpers to NumberExtensions and change namespace appropriately, remove StringHelpers.cs 2014-07-03 15:16:47 +00:00