Customized cheat.c

If you are having problems finding or using cheats for an Emulator (particularly MAME/MESS) or have found a trick that you wish to share this is the place to do it. But please read the Cheat FAQ first.
ShimaPong
Posts: 1063
Joined: Wed May 21, 2003 4:19 pm
Location: Japan

Customized cheat.c

Post by ShimaPong »

I have tried customizing "official" cheat.c for 0.108.
Deleted
pass : KillJym!

-- NOTE --
It's test version and for official MAME ONLY.
Several clones have a specified arrangement but it NEVER feeds back to official source.
Therefore if you include it to unofficial, it may cause unexpected problem.
Checked on MAME 0.108 and HazeMD 0.04a debug build.

- Supported 16-bit Force Range -
You can set 16 bit range and data on Force Range.
I have confirmed the following codes.

Code: Select all

:powerbal:00100010:0F2CEC:00000011:0011FFFF:Always Keep 1 Ball [16-bit Force Range Test]

:thunderl:00100010:FFE014:00000150:00000150:Always Keep 1 Ball [16-bit Force Range Test]

:block:00500010:E22B:0000007C:007CFFFF:Always Keep 1 Ball [16-bit Force Range Test]
-- NOTE --
  • If a game has little endian, you have to set "Endiannes = Swap". (See the code for block [Z80])
  • In case of 16 bit range + 8 bit data (eg. range : 0x0001-0x00FE, data = 0x00FE), does it work without problem ?
  • I don't kill 24 bit and 32 bit so that you can set a data with these bits.
    Off course, it is meaningless but a code made by 8 or 16 bit range and data in 24 or 32 bit setting works wrong.

- Added Quick Cheat Database Reload Key -
In the cheat general, enable/disable and add/edit menu, pressing "R" key triggers the cheat reload quickly.
It is the same as "Options -> Reload Database".


- Safe Cheat Database Reload -
Reloading Database ignores "Restore Previous Value".
So unless you reload with turning all ROM codes OFF, you may be unable to re-boot with MAME reset due to fail ROM check.

DisposeCheatDatabase calls "TempDeactivateCheat" then do "DisposeCheat" to enable "safe" reloading.


- Switch between NearTo and EqualTo on the classic search menu -
See viewtopic.php?t=2423 (Question 1).
Normal life search is NearTo (the cheat engine picks up search value or search value-1).
But a search with pressed Shift key is EqualTo (search value only).
Try to sarch a credit to confirm the difference.


- Fixed Set/Clear Bit bug -
See viewtopic.php?t=2401


- Fixed the problem in case that the pointer address points out $0 -
See viewtopic.php?t=2330


- Fixed "bit" bug on Wait for Modification and Ignore If Decrement -
These operations only check 8 bit value on an address. So if you make a code with 16, 24 or 32 bit address, these may work wrong.
It's simple bug between "UINT8" and "UINT32".
... But do you make or use a code with these operations ?


- Disabled meaningless? assignment to a variable on AddActionWatch -
See viewtopic.php?t=2423 (Question 2).
But 0.108 has watchpoint display bug due to need "float" so that I have not tested it fully.
ShimaPong
Posts: 1063
Joined: Wed May 21, 2003 4:19 pm
Location: Japan

Post by ShimaPong »

Update.
Deleted

- Complete value recovery when a selection Type -
If you use a selection type code, the cheat engine restores a "previous" value instead of "original".

For example : original value = 0x03

Code: Select all

:arabianm:62000000:000000:00000000:00000000:Select Region
:arabianm:20810000:0FFFFF:00000001:FFFFFFFF:Japan
:arabianm:20810000:0FFFFF:00000002:FFFFFFFF:US
:arabianm:20810000:0FFFFF:00000003:FFFFFFFF:World
If you press right key 4 times.
  • OFF (0x03) -> Japan (0x01) -> US (0x02) -> World (0x03) -> OFF (0x02)
The cheat engine returns 0x02 (it's a value for US) instead of 0x03 when second "OFF". In this case, the game reset causes "Back Up Error" (or even ROM check error...!)

A modification is very simple.

Code: Select all

static void ResetAction(CheatAction * action)
{
	action->frameTimer = 0;

// Custom - Correct Recovery [ResetAction]
	if(!(action->flags & kActionFlag_LastValueGood))
		action->lastValue = ReadData(action);

	action->flags &= ~kActionFlag_StateMask;
	action->flags |= kActionFlag_LastValueGood;
}
But I have not traced completely about the flag of LastValueGood so that it may have a bug...

I have tried to test the following sample. 0x03 is restored completely in all cases.
  • OFF to Japan -> Disable (F6) -> Enable (F6) -> Japan to World -> World to OFF
  • OFF to US -> Disable (F6) -> US to Japan -> Enable (F6) -> Japan to OFF
  • OFF to US -> Cheat Reload Key
- Fixed Prefill display bug -
You can select 0xFF, 0x00 and 0x01 on the code edit screen.
ShimaPong
Posts: 1063
Joined: Wed May 21, 2003 4:19 pm
Location: Japan

Post by ShimaPong »

3rd update. http://zetubou.mine.nu/timer/file/bomber23684_d7.zip

- Added the Prefill display on the code edit menu if a label-selection type code -
On the code edit screen, "Prefill" is only displayed in case of value-selection (userSelect) type.

Code: Select all

:game1:00001301:00001234:000000FF:FFFFFFFF:Select Starting Stage
But several label-selection (0x62000000) type uses Prefill.

Code: Select all

:game2:62000001:00000000:00000000:FFFFFFFF:Select Starting Stage
:game2:00011001:00005678:00000000:FFFFFFFF:Stage 1-1
:game2:00011001:00005678:00000001:FFFFFFFF:Stage 1-2
:game2:00011001:00005678:00000002:FFFFFFFF:Stage 1-3
:game2:00011001:00005678:00000003:FFFFFFFF:Stage 2-1
So I have added the Prefill display in this case too.
But I don't know a code which is non-selection type though has Prefill. Does it exist in the latest database ?

- Fixed Watchpoint Display bug ...? -
See viewtopic.php?t=2460
I think this fix is too wasteful and incomplete but I don't know the best convertion from int to float (or float to int) at all.
My customized MAME allows watchpoint to display with 17 codes correctly (18th or later code are displayed on wrong position).

- Disabled he_did_cheat -
The latest "official" MAME doesn't have hi-score system so that he_did_cheat is now wasteful.
User avatar
Pugsy
Posts: 3638
Joined: Fri Aug 17, 2001 12:59 am
Location: North Wales, UK.
Has thanked: 1 time
Been thanked: 12 times
Contact:

Post by Pugsy »

Thanks, the single watchpoint bug was really getting on my nerves. Not had chance to test the other things yet...mainly playing with hazemd and not doing anything too fancy so far.
But I don't know a code which is non-selection type though has Prefill. Does it exist in the latest database ?
I'm pretty sure there are no such cheats at the moment.
Pugsy

Servicing your cheating needs since 1985 8)

Grab the latest cheat collection:
MAME 0.259 XML cheat collection (6 OCTOBER 2023) from http://www.mamecheat.co.uk or direct from:-
https://mega.nz/file/q4dHGZ6K#i-EUiqIjH ... KMz7hnbTfw (ZIP Archive 3.76MB)
ShimaPong
Posts: 1063
Joined: Wed May 21, 2003 4:19 pm
Location: Japan

Post by ShimaPong »

Fixed the following direct key input problems.
  • In BCD mode, any direct key input doesn't work on value selection menu.
  • Direct key input disables 16, 24 or 32 bit value on value selection menu.

Code: Select all

	// get a key
	keyValue = ReadHexInput();

	// if we got a key
	if(keyValue != -1)
	{
		// add it
		if(TEST_FIELD(action->type, UserSelectBCD))
		{
// Custom - Enablded Key Input if BCD [UserSelectValueMenu] : BCD
			if((keyValue >= 0) && (keyValue <=9))
			{
				value <<= 4;

				switch(EXTRACT_FIELD(action->type, BytesUsed))
				{
					case 0: // 8 bit
						value &= 0xF0;
						break;
					case 1: // 16 bit
						value &= 0xFFF0;
						break;
					case 2: // 24 bit
						value &= 0xFFFFF0;
						break;
					case 3: // 32 bit
						value &= 0xFFFFFFF0;
						break;
				}

					value += keyValue;
			}
		}
		else
		{
			value <<= 4;

// Custom - Enabled 16, 24 or 32 Bit Input [UserSelectValueMenu] : hex
			switch(EXTRACT_FIELD(action->type, BytesUsed))
			{
				case 0: // 8 bit
					value &= 0xF0;
					break;
				case 1: // 16 bit
					value &= 0xFFF0;
					break;
				case 2: // 24 bit
					value &= 0xFFFFF0;
					break;
				case 3: // 32 bit
					value &= 0xFFFFFFF0;
					break;
			}

			value |= keyValue & 0x0F;
		}

		delta = 0;
		forceUpdate = 1;
	}
stephh
Posts: 601
Joined: Fri Aug 17, 2001 1:00 am
Location: Paris, France

Post by stephh »

Shimapong, why don't you submit your customized cheat.c file to MAME Team ? I guess that they don't bother much about this file, but they could easily add it "as is" without breaking everything ...

Image Steph from The Ultimate Patchers Image
ShimaPong
Posts: 1063
Joined: Wed May 21, 2003 4:19 pm
Location: Japan

Post by ShimaPong »

It's very simple reason. I'm not satisfied with my customized cheat.c.
Especially, I'm very angry about my dirty modification for watchpoint display and feel my limitations.
I'd rather die than submit my rotten fix to MAME team ! and I'm sorry for ian before all.

Main purpose of my customization is to learn C and analize cheat.c.
Ultimate goal is to add the function to access to custom handling region via the cheat engine, just like encrypted CPU games or SMS ROM region on HazeMD.
But it's too hard and I storngly wish to advice and help.
So I have create this thread to hear an opinion.

Please help me, stephh. You have a skill and have contributed enormously to MAME cheat.
stephh
Posts: 601
Joined: Fri Aug 17, 2001 1:00 am
Location: Paris, France

Post by stephh »

First of all, why can't I download the file ? I jump to a err.htm page before asking for the password :(
ShimaPong wrote:It's very simple reason. I'm not satisfied with my customized cheat.c.
Especially, I'm very angry about my dirty modification for watchpoint display and feel my limitations.
I'd rather die than submit my rotten fix to MAME team ! and I'm sorry for ian before all.
I can't help much now as I haven't seen your file ... So I'll check your code when I have it ...
Please help me, stephh. You have a skill and have contributed enormously to MAME cheat.
Well ... I didn't work that much on the cheat engine (my girlfriend JCK did) ... And it was FAR before Ian's rewrite ! Anyway, I'll try to do my best to find a "valid" way to fix the watches display (the most important thing IMO for cheat finders who don't use the game code and the debugger), then I'll send the updated cheat.c file to the team (I wish I still had access to MAME Devs list) ...

Image Steph from The Ultimate Patchers Image
stephh
Posts: 601
Joined: Fri Aug 17, 2001 1:00 am
Location: Paris, France

Post by stephh »

Shimapong, I'm sorry to bother with that again, but I REALLY need to get your customized cheat.c file AS FAST AS POSSIBLE if you want me to propose a fix for the watches to MAME Devs Team !

And I also have a few things I'd like to fix/rewrite (too long to explain here now what) ...

Of course, I'll send you a copy of the source file when I have submitted it ...

BTW, Pugsy, in the "good old times" of MAME 0.37 beta cycle, you used to host my own "crappy" cheat.c file before Brad Oliver rewrote the cheat engine to fit asynchronus menus ... Couldn't you do the same thing until the changes are included in an OFFICIAL MAME release ? This would help people who want to work on the source file to be sure to have the latest version (so MAME Devs will not have problems in case of multiple submissions between releases) ...

Image Steph from The Ultimate Patchers Image
User avatar
Pugsy
Posts: 3638
Joined: Fri Aug 17, 2001 12:59 am
Location: North Wales, UK.
Has thanked: 1 time
Been thanked: 12 times
Contact:

Post by Pugsy »

BTW, Pugsy, in the "good old times" of MAME 0.37 beta cycle, you used to host my own "crappy" cheat.c file before Brad Oliver rewrote the cheat engine to fit asynchronus menus ... Couldn't you do the same thing until the changes are included in an OFFICIAL MAME release ? This would help people who want to work on the source file to be sure to have the latest version (so MAME Devs will not have problems in case of multiple submissions between releases) ...
I'm happy to upload the cheat.c here if ShimaPong doesn't mind (maybe he can then put the url in his sig). To be honest I've not had problems with the last few links myself, though I think the file expires after a few days so it's no longer available.
Pugsy

Servicing your cheating needs since 1985 8)

Grab the latest cheat collection:
MAME 0.259 XML cheat collection (6 OCTOBER 2023) from http://www.mamecheat.co.uk or direct from:-
https://mega.nz/file/q4dHGZ6K#i-EUiqIjH ... KMz7hnbTfw (ZIP Archive 3.76MB)
ShimaPong
Posts: 1063
Joined: Wed May 21, 2003 4:19 pm
Location: Japan

Post by ShimaPong »

OK, stephh, I upload the latest my customized source file.
It newly adds the modification for label-selection + one shot code bug you pointed out too.

http://zetubou.mine.nu/timer/file/bomber24494_d7.zip
Pass : HazeMame fools my wasted times and efforts
stephh
Posts: 601
Joined: Fri Aug 17, 2001 1:00 am
Location: Paris, France

Post by stephh »

OK, I've got the file :) Would you mind now answer my questions about watches in the other thread ?

Image Steph from The Ultimate Patchers Image
ShimaPong
Posts: 1063
Joined: Wed May 21, 2003 4:19 pm
Location: Japan

Post by ShimaPong »

I don't mind.
ShimaPong
Posts: 1063
Joined: Wed May 21, 2003 4:19 pm
Location: Japan

Post by ShimaPong »

whatsnew for the cheat engine update in 0.108u5.

<< New Function >>
- Enabled 16-bit Force Range -
The cheat engine now accepts 16-bit Force Range type.
The range is set in the extend data field and upper 4 bytes are for the minimum, lower 4 bytes are for the maximum.

Sample codes :

Code: Select all

:powerbal:00100010:0F2CEC:00000011:0011FFFF:Always Keep 1 Ball [16-bit Force Range]

:thunderl:00100010:FFE014:00000150:00000150:Always Keep 1 Ball [16-bit Force Range]

:block:00500010:E22B:0000007C:007CFFFF:Always Keep 1 Ball [16-bit Force Range]
NOTE :
  • In several CPUs (Z80 etc), you need to set "Endiannes = Swap" to work correctly. (See the code for block)
  • If you set 24 or 32 bit, Force Range will work wrong.
- Added Cheat Database Reload key - : adjusted by Stephh
In the cheat general menu, enable/disable menu and add/edit menu,
"L" key (default) makes the database reload quickly.
It is the same as "Reload Database" on option menu.

If you hope to change a key, open the general menu and select input(general) -> user interface.

<< Operation >>
- Fixed Several Label-Selection Code Problmes -
Fixed the following problems for label-selection with no "OFF" label (0x62000001) type.
  • When you open enable/disble menu in the moment, a cheat is done automatically without any input
  • If you press the left or right key, a cheat is done without pressing user select key
  • If you use Activation key, it doesn't move from last linked code to first linked code
- Fixed Set/Clear Bit bug -
Sample code :

Code: Select all

:neobombe:83000018:10449E:00000001:00000047:Always Have Bomb Kick PL1
:neobombe:83000018:10449E:00000004:00000047:Always Have Bomb Catch PL1
:neobombe:83000018:1044A2:00000001:00000047:Always Have Bomb Kick PL2
:neobombe:83000018:1044A2:00000004:00000047:Always Have Bomb Catch PL2

:androdun:81040018:105542:00000008:00100046:Rapid Fire PL1
:androdun:81040018:105546:00000008:00100046:Rapid Fire PL2
- Fixed the problem for Zero Address on Relative Address -
If the pointer address has zero address, the cheat engine tries to poke a value on invalid address.

Sample code :

Code: Select all

:dino:81000000:FFB328:00000032:00FF006D:Infinite Ammo PL1:Works for Rifle, Gun, Uzi, M-16A1, Shotgun and Bazooka
:dino:81000000:FFB4A8:00000032:00FF006D:Infinite Ammo PL2:Works for Rifle, Gun, Uzi, M-16A1, Shotgun and Bazooka
:dino:81000000:FFB628:00000032:00FF006D:Infinite Ammo PL3:Works for Rifle, Gun, Uzi, M-16A1, Shotgun and Bazooka

:dinou:81000000:FFB328:00000032:00FF006D:Infinite Ammo PL1:Works for Rifle, Gun, Uzi, M-16A1, Shotgun and Bazooka
:dinou:81000000:FFB4A8:00000032:00FF006D:Infinite Ammo PL2:Works for Rifle, Gun, Uzi, M-16A1, Shotgun and Bazooka
:dinou:81000000:FFB628:00000032:00FF006D:Infinite Ammo PL3:Works for Rifle, Gun, Uzi, M-16A1, Shotgun and Bazooka

:dinoj:81000000:FFB328:00000032:00FF006D:Infinite Ammo PL1:Works for Rifle, Gun, Uzi, M-16A1, Shotgun and Bazooka
:dinoj:81000000:FFB4A8:00000032:00FF006D:Infinite Ammo PL2:Works for Rifle, Gun, Uzi, M-16A1, Shotgun and Bazooka
:dinoj:81000000:FFB628:00000032:00FF006D:Infinite Ammo PL3:Works for Rifle, Gun, Uzi, M-16A1, Shotgun and Bazooka
In previoius, if you set the above code when you don't have any weapon, the game crashes.
No weapon triggers zero address on pointer address so that the cheat engine tries to poke on $FF006D.

- Fixed 16, 24 or 32 bit problem when Wait for Modification and Ignore If Decrement -
If you set these operations with 16, 24 or 32 bit, the cheat engine doesn't watch a value on an address you want to poke correctly.

<< Watchpoint >>
- Deleted 2nd "info->linkedCheat = entry;" on AddActionWatch -
I think it will be meaningless. But it has not tested fully.

- Avoid the same address display -
If you try to display a code packed by the same addresses like label-selection type, it avoids to display for all codes.

Code: Select all

:game:62000000:0000:00000000:00000000:Label-Selection
:game:00010000:1234:00000001:FFFFFFFF:Label 1
:game:00010000:1234:00000002:FFFFFFFF:Label 2
:game:00010000:1234:00000003:FFFFFFFF:Label 3
:game:00010000:1234:00000004:FFFFFFFF:Label 4
In the above case, the cheat engine will only display 1 watchpoint for $1234 instead of 4 watchpoints.

- Enabled to Interprit Position Setting for the Watchpoint Display on the Cheat Code Again -
After user interface update, the watchpoint position setting on the code doesn't work.
It works again now with dirty fix but if you set too large value, MAME will crash.

<< Key Input >>
- Enabled Backspace key input in editing hex field -
This key deletes the lowest key and shifts the rest value to right.
But it (and other "DoEdit" functions) will change again in the future...

- Fixed dircet key input for 16, 24 or 32 bit in the value-selection menu -
But several problems for direct key input in this menu remain.
Especially, when display minimum or minimum value is 1.

- Fixed Numeral Key Input Bug - : Fixed by Stephh
The cheat engine accepts a numeral key fully now.

<< Others >>
- Deleted "he_did_cheat" -
It is only related to hi-score save system. If you use a cheat, doesn't save any hi-score.
But official MAME now doesn't have it. So deleted.

- Fixed Pre-Fill Item on the Code Edit Menu -
  • Selectable correctly
  • Displayed in case of label-selection code too.
- Enabled "EqualTo" search in the Classic Search Menu -
Normal "Life" search is "NearTo". It picks up "required value" and "required value -1".
If you want to get "required value" only, try to press Shift key then do "Life" search.

- Safe Database Reload -
"Restore Previous Value" works when you use "Reload Database".
Especially, it is very useful for ROM code.
A value in ROM region normally doesn't recover even if soft-reset.
If the game has ROM check, you will fail to reboot and need to reset or reboot MAME itself.
So in previous cheat engine, you have to turn all ROM codes OFF then reload database.

- Copy Previous Value Restores Original Value if Label-Selection -
In case of label-selection, copy previous value restored previous value instead of original value.
When you use it for ROM code, previous value is not correct for ROM check.


<< ToDo ... >>
- Read/Write the region by special handling -
It's my earnest desire...
If a driver has special handling for RAM or ROM, current cheat engine can't read or write this region.
For example, many encrypted CPU games (Sega System 1/2, 16b, 18 etc), cinemat.c, sms.c in HazeMD etc etc...

- Customize Search Region -
In Sega System 16b and 18, you can only choose ALL (0-FFFFFF) or NOTHING as search region.
"Free Search Region Selection" will allow end-user to customize search region, just like "123456 - 789ABC".

- Copy Previous Value -
It seems under construction.
I think it is only used in case of value-selection type code and needs "normal copy", "BCD copy" and "increment/decrement copy".
"BCD" and "Inc./Dec." copy will be used when copy a value from real address to display address, just like Stage Selection code.
If Stage 99, real address has 0x62 and display address will have 99 (0x62 -> 98 and +1) in many cases.
Fortunatery, the cheat format has "BCD" option so that it will be without problem.
But how to deal with "Inc./Dec." ? Use data field or Minimum Value option ?

- Label-Selection Accepts Packed Code -
Packed code is like the following. a code includes several linked codes.

Code: Select all

:game:00100000:1234:00005678:FFFFFFFF:TEST
:game:00010000:9ABC:000000DE:FFFFFFFF:TEST (2/3)
:game:00310000:FFFF:00000099:00000099:TEST (3/3)
But current cheat engine doesn't allow label-selection type to include a packed code.
Because it interprits a linked code as "independent" 1 code.

Code: Select all

:game:62000000:0000:00000000:00000000:Select TEST
:game:00110000:1234:00005678:FFFFFFFF:TEST 1
:game:00010000:9ABC:000000DE:FFFFFFFF:TEST 1 (2/3)
:game:00310000:FFFF:00000099:00000099:TEST 1 (3/3)
:game:00110000:1234:00008765:FFFFFFFF:TEST 2
:game:00010000:9ABC:000000ED:FFFFFFFF:TEST 2 (2/3)
:game:00310000:FFFF:00000000:00000099:TEST 2 (3/3)
:game:00110000:1234:00008888:FFFFFFFF:TEST 3
:game:00010000:9ABC:000000EE:FFFFFFFF:TEST 3 (2/3)
:game:00310000:FFFF:00000099:00000099:TEST 3 (3/3)
The above code will work with TEST1 -> TEST 1 (2/3) -> TEST 1 (3/3) -> TEST 2 ->... instead of TEST1 -> TEST 2 -> TEST 3 ->...

See Stage Selection code for pbobble2. These are too many codes so that it's hard to find a code you want in-game menu.
If you can make these codes to 1 with label-selection, all codes are perhaps displayed in the current window only.
ShimaPong
Posts: 1063
Joined: Wed May 21, 2003 4:19 pm
Location: Japan

Post by ShimaPong »

I have started to clean up all codes for solomonj. Sorry, I don't have solomon. I'm lost all new or updated games for 0.108 or later.
BTW, this game has two starting stage selection code. One is for real and the other is for display.
I think it's wasteful but copy previous value doesn't work in the latest cheat engine.
So I have tried adding it.

Deleted due to Kriptokapi
PASS : KILL Kriptokapi !

Check whatsnew.txt in the above archive to see more information.

I have confirmed that the above codes based on copy previous value function seem to work fine.

Code: Select all

:solomonj:00001301:C243:00000033:FFFFFFFF:Select Starting Stage:Set on title screen after inserted a credit
:solomonj:00031001:C246:00000000:FFFFFFFF:Select Starting Stage (2/2):1st = Real, 2nd = Display

:sraider:00001301:6100:000000FE:FFFFFFFF:Select Starting Scene:Set on "Press Player Button" screen after inserted a credit
:sraider:00031801:6101:00000001:FFFFFFFF:Select Starting Scene (2/2):1st = Real, 2nd = Display

:quartet:00001301:FFC831:0000001F:FFFFFFFF:Select Starting Stage:Set on waiting other player screen after inserted a credit
:quartet:00031001:FFC833:00000000:FFFFFFFF:Select Starting Stage (2/2):1st = Real, 2nd = Display

:sonicbom:00001301:FFC50B:00000005:FFFFFFFF:Select Starting Operation:Set on displayed "Push Start" message screen after inserted a credit
:sonicbom:00031001:FFC511:00000000:FFFFFFFF:Select Starting Operation (2/2):1st = Display, 2nd = Real
ShimaPong
Posts: 1063
Joined: Wed May 21, 2003 4:19 pm
Location: Japan

Post by ShimaPong »

I have tried remaking old (classic) search menu.
  • Added "Save Memory" to merge "Start" and "Continue" search.
  • Selectable "Select Regions", "View Results", "Restore Results" directly in the search menu.
  • Disabled "Status" and "Bit" search. It is unused for me and sometimes I mischoice these items.
    IMO, it is no problem that there are only for advanced search mode.
It's hard coding for me. Anyway, I have succeeded in 1st compile.
This work will need to spend quite a bit of time.
I hope earnestly to free from disturbances by Kriptokapi.
ShimaPong
Posts: 1063
Joined: Wed May 21, 2003 4:19 pm
Location: Japan

Post by ShimaPong »

See screenshot for my WIP.
http://zetubou.mine.nu/timer/file/bomber27321_d5.png

It is customized old search menu in HazeMD 0.12a with BDF font.

You can enter this menu from both "Start and "Continue" search in the cheat general menu.
In the future, both items should be merged but current improvement is only for classic menu and not advanced menu.
I have not checked any function for advanced mode at all right now.

"Value" is "equalTo" search.
I have separated it from old "Lives" funtion.
You can select it directly and I have removed shift key input on normal "Live" search.
But selectable value is common so that if you try to change a value, both value items will be changed.

"Change or not" is separated from old "Energy".
You can select "Equal" and "Not Equal". These functions are the same as previous.
So new "Energy" is "Less", "Greater", "Less or Equal" and "Greater or Equal" only.
But IMO, it is enough that "Less" and "Greater" only because I don't use others.

"Status" and "Bit" are deleted. I don't use these items and even sometimes mischoice.
But don't mind, there are used in advanced search menu.

"View Results", "Restore Value" and "Select Regions" are added from other menu.
You can select directly on the search menu.
You no longer need to return to the general menu to view or restore.

"Initialize Memoy" (If first time, it is displayed as "Save Memory") is added.
You can save memory and search a value in the same screen.


I hope earnestly to free from disturbances by Kriptokapi.
stephh
Posts: 601
Joined: Fri Aug 17, 2001 1:00 am
Location: Paris, France

Post by stephh »

ShimaPong wrote:See screenshot for my WIP.
It is customized old search menu in HazeMD 0.12a with BDF font.
Be aware that src/cheat.c has changed in MAME 0.109u1 !

You can enter this menu from both "Start and "Continue" search in the cheat general menu.
In the future, both items should be merged but current improvement is only for classic menu and not advanced menu.
I have not checked any function for advanced mode at all right now.
This sounds promising :) Have you been able to "extract" the "search" part so you can press a key to activate it (Pugsy's request) ?

"Value" is "equalTo" search.
I have separated it from old "Lives" funtion.
You can select it directly and I have removed shift key input on normal "Live" search.
But selectable value is common so that if you try to change a value, both value items will be changed.
Good idea ! If I understand correctly, we shall use "Value" for credits or bombs and "Lives" for ... lives ;) BTW, you should remove the extra "(or another value)" comment as it may confuse people ...
"Change or not" is separated from old "Energy".
You can select "Equal" and "Not Equal". These functions are the same as previous.
So new "Energy" is "Less", "Greater", "Less or Equal" and "Greater or Equal" only.
But IMO, it is enough that "Less" and "Greater" only because I don't use others.
Please dont remove the "Less or Equal" and "Greater or Equal" searches ! They are REALLY needed !

Now the good thing with "Change or not" would be to have 4 choices :

. Same as Start
. Different from Start
. Same as Previous
. Different from Previous

I don't know how difficult it is to have 2 backups of memory, but it would be very useful for some games ...

"Status" and "Bit" are deleted. I don't use these items and even sometimes mischoice.
But don't mind, there are used in advanced search menu.
These were needed when you search for letters (eg: EXTEND in "Bubble Bobble") ...

"View Results", "Restore Value" and "Select Regions" are added from other menu.
You can select directly on the search menu.
You no longer need to return to the general menu to view or restore.

"Initialize Memoy" (If first time, it is displayed as "Save Memory") is added.
You can save memory and search a value in the same screen.
It's a good thing to have everything in the same menu :)

Image Steph from The Ultimate Patchers Image
ShimaPong
Posts: 1063
Joined: Wed May 21, 2003 4:19 pm
Location: Japan

Post by ShimaPong »

Be aware that src/cheat.c has changed in MAME 0.109u1 !
I have not updated my MAME to 0.109u1 yet (HazeMD 0.12a is based on 0.109).
But what dangerous bug it is ...!
Have you been able to "extract" the "search" part so you can press a key to activate it (Pugsy's request) ?
Sorry, I can't understand what it is.
But I have not add "K"ontinue key because I have not tried to modify other files.
BTW, this key is "Save Memory" ? or "Open Search Menu Directly" ?
Good idea ! If I understand correctly, we shall use "Value" for credits or bombs and "Lives" for ... lives BTW, you should remove the extra "(or another value)" comment as it may confuse people ...
Yes, "Lives" will be very useful for life and stage search.
But I don't know "good" name for search items.
Please dont remove the "Less or Equal" and "Greater or Equal" searches ! They are REALLY needed !
OK.
But I don't know effective using these and status, bit searches.
In many cases, it is enough that "Equal", "Not Equal", "Less" and "Greater".
Especially, status and bit pick up many results and need many time to narrow down.
Now the good thing with "Change or not" would be to have 4 choices :
I don't hope to add new search items any more in classic mode...
I have divided "Equal/NotEqual" because current "Energy" search has 6 items.
It is confusing for me to select an item.
So I want "simple settings/display and quick search".

I think it's better that the cheat engine allows end-user to choose serach item.
(Or "3rd" search mode instead of classic or advanced, just like "Simple" or "Beginner")

Anyway, 2nd update.
http://zetubou.mine.nu/timer/file/bomber27376_d5.png
"Select Region" is merged into "CPU" item to display simply.
If you press UI_Select key on this item, the region selection screen is opened directly.
And the sub-item for "Value" is displayed on either items.
In case of the above screenshot, if you move cursor "Equal" to "NearTo", also sub-item moves to "NearTo".
ShimaPong
Posts: 1063
Joined: Wed May 21, 2003 4:19 pm
Location: Japan

Post by ShimaPong »

I don't know how difficult it is to have 2 backups of memory
The cheat engine has already supported a comparison with "Start" (first saved) value and current "Slow But Sure" in classic mode is "Change or Not search with first value".
So it seems to be not hard to mount.

http://zetubou.mine.nu/timer/file/bomber27457_d5.png
3rd update.
Re-added "Status (Bit)" and "Slow But Sure" search.
But "Slow" search is merged into new "Status (Change or Not)".
So now "Status" search has 4 items.
  • Same as Previous (old "Energy - Equal")
  • Different from Previous (old "Energy - Not Equal")
  • Same as First (old "Slow - Equal")
  • Different from First (old "Slow - Not Equal")
I think maximum selectable items in one search section are 4 and don't hope to add any more.
BTW, in advanced mode, it allows "Energy/Bit search with first value". Is it need in classic mode ?

Screenshot
Left : Default screen. No memory saved.
Center : Done save memory.
Right : Move cursor to "Value (NearTo)". You will be able to confirm that sub-item moves too.
Post Reply