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.