diff options
| author | 2010-12-19 17:41:56 +0000 | |
|---|---|---|
| committer | 2010-12-19 17:41:56 +0000 | |
| commit | 31d554dc17a3857d57013117f73f26db24a98b4a (patch) | |
| tree | 5835de91139e69404629146daca0ac4154cebf28 /src/emu/debug/debugcmd.c | |
| parent | 673f5bef0fd27548b84be5dc5214745b13693cc8 (diff) | |
Added a 'changed by' search to the cheat engine [Pugsy]
---------- Forwarded message ----------
From: Pugsy <pugsy@gmx.net>
Date: Tue, Dec 14, 2010 at 3:13 PM
Subject: Minor patch to improve cheat finding functionality
To: submit@mamedev.org
Cc: "stephh U.P." <upstephh_wip@yahoo.com>
Hi
Here is a simple patch that will add a "changed by" search - it's effectively a increased and decreased search rolled into one. It is useful when you are uncertain if the value has increased by x or decreased by x so it saves having to guess which search method to try first.
--
Martin 'Pugsy' Pugh
MAME Cheat File Maintainer http://mamecheat.co.uk
Gamebase64 Team Member http://www.gamebase64.com
Diffstat (limited to 'src/emu/debug/debugcmd.c')
| -rw-r--r-- | src/emu/debug/debugcmd.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/emu/debug/debugcmd.c b/src/emu/debug/debugcmd.c index 0cb47062361..dbea2d50af8 100644 --- a/src/emu/debug/debugcmd.c +++ b/src/emu/debug/debugcmd.c @@ -1834,7 +1834,8 @@ static void execute_cheatnext(running_machine *machine, int ref, int params, con CHEAT_DECREASEOF, CHEAT_INCREASEOF, CHEAT_SMALLEROF, - CHEAT_GREATEROF + CHEAT_GREATEROF, + CHEAT_CHANGEDBY }; if (cheat.cpu == 0) @@ -1869,6 +1870,8 @@ static void execute_cheatnext(running_machine *machine, int ref, int params, con condition = CHEAT_SMALLEROF; else if (!strcmp(param[0], "greaterof") || !strcmp(param[0], "gt") || !strcmp(param[0], ">")) condition = CHEAT_GREATEROF; + else if (!strcmp(param[0], "changedby") || !strcmp(param[0], "ch") || !strcmp(param[0], "~")) + condition = CHEAT_CHANGEDBY; else { debug_console_printf(machine, "Invalid condition type\n"); @@ -1955,6 +1958,12 @@ static void execute_cheatnext(running_machine *machine, int ref, int params, con else disable_byte = ((UINT64)cheat_value <= (UINT64)comp_value); break; + case CHEAT_CHANGEDBY: + if (cheat_value > comp_byte) + disable_byte = (cheat_value != comp_byte + comp_value); + else + disable_byte = (cheat_value != comp_byte - comp_value); + break; } if (disable_byte) |
