Customized cheat.c
Posted: Thu Aug 24, 2006 10:54 pm
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.
-- NOTE --
- 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.
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]
- 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.