Cheat
Cheat
dat
file mainly to reduce the size of the .dat file. This cheat.txt file must be
distributed with the cheat.dat file. Don't forget whatever program you are
reading this with you can also use to read & add things to the cheat.dat file
with.
MAME CHEAT FILE Release Date: 31 Mar 2009 (Base release for MAME 0.126)
SECTIONS
-======-
Simple
1. Basic Instructions on enabling cheats in MAME
2. Cheat Description Meanings
3. Cheat Ordering
Advanced
4. Cheat Engine Commands (to customise the cheat UI)
5. Cheat Format Information
6. How to Pre-Enable cheats
7. Dynamic Cheat Finding method
Credits
8. General Credits
9. Games utilising ROM cheats with credits
10. Games utilising EEPROM/Mapped Memory cheats with credits
11. Games utilising Forced Range cheats with credits
12. Games utilising Dynamic (Relative Addressing) cheats with credits
Work to be done
12. General list of work to be done
------------------------------------------------------------------------------
SECTION 1 Basic Instructions on enabling cheats in MAME
------------------------------------------------------------------------------
First of all unzip the cheat.dat file into the same directory as where the
MAME.EXE is (All platforms apart from Mac OS 9/X ).
As standard the MAME Cheat Engine is turned OFF, there are several ways of
turning it ON depending on which platform you are running MAME on.
MAMEW: This is the standard MAME command line compile, go to your MAME
directory open up the MAME.INI file with a text editor (the one you
are using to read this will probably do!).
Find '### Mame CORE misc options ###' and change 'cheat 0' to
'cheat 1'. Note: If your MAME.EXE is named something else like
MAME067.EXE then you will need to edit MAME067.INI rather than
MAME.INI!
If you have no INI file then just start MAME from the command-line
with the -createconfig option eg. 'MAME -createconfig'. If you
manually use MAME every time from the command-line you can also
just add '-cheat' to the command line.
MAME32: This is the MAME with build in frontend compile for Windows. Go to
the Options Menu, and select "Default Options". Go to the
Miscellaneous tab and check the box that says "Enable Game Cheats".
DMAME: This is the DOS MAME compile, go to your MAME directory open up the
MAME.CFG file with a text editor (the one you are using to read this
will probably do!).
Find 'cheat off' and change it to 'cheat on'. Note: If your
MAME.EXE is named something else like MAME067.EXE then you will need
to edit MAME067.CFG rather than MAME.CFG! If you have no CFG file
then just start MAME from the command-line with the -createconfig
option eg. 'MAME -createconfig'. If you manually use MAME every time
from the command-line you can also just add '-cheat' to the
command-line.
UNIX: For the UNIX/LINUX compiles just follow the instructions for DMAME
the DOS compile.
OS9/X: From the front-end, go to the Misc tab, and check the box that says
"Allow Cheats".
Step 3 (Cheat!)
===============
------------------------------------------------------------------------------
SECTION 2 Cheat Description Meanings
------------------------------------------------------------------------------
Get+Now! means the cheat is a type 00000001 cheat and so it is a temporary cheat -
it changes the memory and then deactivates. Type 01 is ideal for
getting a particular weapon or feature, also needed for a Finish
Level Now! cheat.
Always means the cheat is permanent (several cheat types) idea for always
having a certain weapon or feature eg always have 3 rainbows on
Rainbow Islands.
Infinite means exactly what it says - you will have an inexhaustible supply of
the named item be it lives, time, ammo or something else. On some
rare occasions you may need to deactivate the cheat before you can
finish a level, if this need to be done you will see F6 at the end
of the cheat description.
Select current level - Select a level and you can progress to it by losing a
life. You should only activate this type of cheat
during game play or according to the comments.
Select next level - Select a level and when you complete the current level you
will progress straight to the selected level. You can also
activate this on the title/attract screens though the
effects cannot always be guaranteed! (you will either
start on the selected level or the next level after the
selected one or level 1). A far better method if you want
to select the starting level from the title screen is to
use the method that I thought of for Metrocross. See
Metrocross remarks for info.
Select Score - This cheat allows you to select your score or/and the other
player's score, ideal for sports games where you need a certain
score to win and/or progress. It must ONLY be activated during
game play. Also note the score may not display correctly until
the score has changed properly!
------------------------------------------------------------------------------
SECTION 3 Cheat Ordering
------------------------------------------------------------------------------
This is how I order the cheats - I try and stick to it as often as I can.
Some games don't conform to this standard either because it's better as is or
the cheats were done a while ago and I haven't changed them. DO NOT report any
games that don't follow this standard - it's pretty low on the list of
priorities right now.
Section 1 contains all the cheats valid for all players. Infinite Credits will
come first normally.
Section 2 contains cheats for individual players, split up so that all PL1
cheats are together and all PL2 cheats are together. Normally there will be the
same cheats for each player and the order of the cheats should be the same as
for the other player.
Section 3 contains cheats that are hard to button-hole and have fairly obscure
effects on the game that only the die-hard player of that game may really want.
These sort of cheats can often be merged into section 2, though in some
circumstances the sheer number of these cheats will seriously clutter out the
normal everyday cheats (section 2). In that case they should be separated into
another section and the PL1 / PL2 separation in that section should be maintained
if possible.
Section 4 contains any none cheat related things. Eg. Sound test timer and region
switch codes.
The normal order of cheats will be if there is no PL1 or PL2 specific cheats.
If a cheat is specific to all players it will promote it up the list.
Infinite Credits
Infinite Time (if 'Finish this Round Now!' is worthwhile it should
directly follow this cheat)
Infinite Lives
Infinite Energy (if 'Drain all Energy Now!' is worthwhile it should
directly follow this cheat)
Infinite Ammo
Infinite Bombs
Invincibility (if Invincibility doesn't turn off after a short while of
disabling it then there should be separate 'ON' and 'OFF'
cheats)
Always have this weapon
Get this weapon Now!
Play with this character Now!
Select starting level
Select current level
Select next level
SPACING/BLANK COMMENTS
----------------------
Blank Comment cheats should be added to improve the readability of the cheats
in the cheat engine were appropriate.
There should be a blank after section 1 if section 2 has 3 or more cheat entries
for each player OR if section 1 has itself got three or more cheat entries.
If there are 3 or more cheat entries for each player in section 2 then the
entries for each player should be seperated with a blank comment.
------------------------------------------------------------------------------
SECTION 4 Cheat Engine Commands (to customise the cheat UI)
------------------------------------------------------------------------------
These special cheat lines are used to set global preferences for the cheat
engine. If you don't understand binary then you really shouldn't be
messing with it. Here is a slightly techie description
LSB
0000000
6543210
------0 Cheat AutoSave = OFF
------1 Cheat AutoSave = ON (Recommended)
----00- Search Box Style = Minimum
----01- Search Box Style = Classic (Recommended)
----10- Search Box Style = Advanced
---0--- Search Labels = Show
---1--- Search Labels = Hide (Recommended)
--0---- Activation Key Message = OFF
--1---- Activation Key Message = ON (Recommended)
-0----- Old Cheat Format Support = OFF
-1----- Old Cheat Format Support = ON (Recommended)
0------ Cheat Engine Debug Mode = OFF (Recommended)
1------ Cheat Engine Debug Mode = ON (Don't bother!)
So to have the recommended settings we will have Binary 0111011 which if we put
into the Windows Calculator (in Scientific Mode) with the BIN button selected
and then convert the number to HEX (by pressing the HEX button) we will get 3B.
So just add this into the cheat.dat file for the required options:-
:_command:0000003B
To keep things simple this is already included in the cheat.dat file as standard,
so if
you are not happy with any of the settings then please change it.
------------------------------------------------------------------------------
SECTION 5 Cheat Format Information
------------------------------------------------------------------------------
The cheat format is very powerful, though the sheer number of options make it
hard to understand. On a whole cheats using the cheat format are best made by
setting the appropriate options on the edit cheat page and then saving the said
cheat. There are some exceptions though - as occasionally it's harder if not
impossible to do exactly what you want using the edit function. This
information will hopefully help you understand the cheat format.
Cheat Format:
-------------
This section is based heavily on the information found in cheat.c. I've just
edited it to make it a tad easier for me to understand, in fact the act of
editing this helped me a lot.
:gamename:12345678:87654321:12345678:FFFFFFFF:Cheat Description:Comment
^^ ^ ^ ^ ^ ^ ^
12 3 4 5 6 7 8
1. Notice the colon in front of the game name, this is very important so don't
forget it or lose it when cut and pasting cheats
2. Name of the game (short name) [zip file or directory]
3. Cheat Type Field in hexadecimal (how to poke)
4. Address in Hexadecimal (where to poke)
5. Data to put at this address in hexadecimal (what to poke)
6. Extended Data Field - used for mask and some other stuff (see below) usually
FFFFFFFF
7. Description of the cheat (25 to 255 characters max - check each game for
correct display) eg. 'Invincibility PL1'
8. Extra Comment about the cheat if needed eg 'Turn it OFF at the end of the
level!'
Type Field:
-----------
MSB LSB
33222222 22221111 11111100 00000000
10987654 32109876 54321098 76543210
Persistence
-------- -------- -------- -------0 the cheat is poked with respect to the
Normal/Delay options and the cheat remains
in the active list
-------- -------- -------- -------1 the cheat is poked only once and with
Type (Normal/Delay)
-------- -------- -------- 000--00- No Delay/Normal - If the cheat is in the
active list it is poked at a rate of once
every frame.
-------- -------- -------- 001--00- 1 Sec Delay - If the cheat is in the active
list it is poked at a rate of once every
one second.
-------- -------- -------- 010--00- 2 Secs Delay - If the cheat is in the
active list it is poked at a rate of once
every two seconds.
-------- -------- -------- 011--00- 3 Secs Delay - If the cheat is in the
active list it is poked at a rate of once
every three seconds.
-------- -------- -------- 100--00- 4 Secs Delay - If the cheat is in the
active list it is poked at a rate of once
every four seconds.
-------- -------- -------- 101--00- 5 Secs Delay - If the cheat is in the
active list it is poked at a rate of once
every five seconds.
-------- -------- -------- 110--00- 6 Secs Delay - If the cheat is in the
active list it is poked at a rate of once
every six seconds.
-------- -------- -------- 111--00- 7 Secs Delay - If the cheat is in the
active list it is poked at a rate of once
every seven seconds.
User-Selected Value (let the user select the poking value at runtime - can not
be used in a list cheat)
-------- -------- ----0001 -------- The user selects a decimal value
from 0 to byte (display : 0 to byte)
-------- -------- ----0011 -------- The user selects a decimal value
from 0 to byte (display : 1 to byte+1)
-------- -------- ----0101 -------- The user selects a decimal value
from 1 to byte (display : 1 to byte)
-------- -------- ----0111 -------- The user selects a decimal value
from 1 to byte (display : 1 to byte+1)
-------- -------- ----1001 -------- The user selects a BCD value
from 0 to byte (display : 0 to byte)
-------- -------- ----1011 -------- The user selects a BCD value
from 0 to byte (display : 1 to byte+1)
-------- -------- ----1101 -------- The user selects a BCD value
from 1 to byte (display : 1 to byte)
-------- -------- ----1111 -------- The user selects a BCD value
from 1 to byte (display : 1 to byte+1)
-------- -------- ----0010 -------- NOT CURRENTLY USED (Due to BIT cheat type -
unlikely to be used)
-------- -------- ----0100 -------- NOT CURRENTLY USED (Due to BIT cheat type -
unlikely to be used)
-------- -------- ----1000 -------- NOT CURRENTLY USED (Due to BIT cheat type -
unlikely to be used)
-------- -------- ----1010 -------- NOT CURRENTLY USED (Due to BIT cheat type -
unlikely to be used)
-------- -------- ----1100 -------- NOT CURRENTLY USED (Due to BIT cheat type -
unlikely to be used)
Link/Options
-------- -------- -1------ -------- Don't add to list - makes sure this cheat
doesn't show up in the list, use with
pre-enable & Assign Activation Key
& CPU Overclock.
-------- -------0 -------- -------- Single Part/First Cheat in Linked Cheat - A
single part or 1st part of a linked cheat.
-------- ------01 -------- -------- Linked\List & Use Value Field - Links this
cheat to the previous 'Single Part/First
Cheat in Linked Cheat' in the cheat file,
value field is used as the poking value.
-------- ------11 -------- -------- Linked\List & Copy Previous Value - Links
this cheat to the previous 'Single
Part/First Cheat in Linked Cheat' in the
cheat file, the value for this cheat is
determined by taking the value read from
the previous cheat and adding the value
stored in the data field.
-------- -------- 1------- -------- Link Extension - this allows multi-part
cheats to be used in a Linked List. For this
to work Link Extension should be used in a
similar way to the linked option in that the
any parts after the first part should have this
option set.
Bytes Used
-------- --00---- -------- -------- Bytes to Poke = 1 - The address is poked
with a byte (8 bit) value.
-------- --01---- -------- -------- Bytes to Poke = 2 - The address is poked
with 2 bytes (16 bit) value.
-------- --10---- -------- -------- Bytes to Poke = 3 - The address is poked
with 3 bytes (24 bit) value.
-------- --11---- -------- -------- Bytes to Poke = 4 - The address is poked
with 4 bytes (32 bit) value.
Endianness
-------- -0------ -------- -------- Same endianness as target processor/Generic
addresses are big endian
-------- -1------ -------- -------- Different endianness as target
processor/Generic addresses are little
endian.
Restore previous value on disable (this should always be used with non one-shot
ROM cheats)
-------- 1------- -------- -------- Restore previous value on disable - Returns
the value being poked to it's original
value on cheat switch OFF.
[ Write with Mask ] The field will store a mask containing which bits are
modified by the operation. For normal operation, set the
mask to 0xFFFFFFFF and only change it if you actually
need to!
Example code: data = (data & ~mask) | (input & mask);
[ Force Range ] This field will store the allowed range of values, or
the limit value (if a 24 or 32 bit value is being poked)
[ Relative Address ] The extend data field will store the the signed offset to
be applied to the address read. Because of this, any
operation using the extend data field may have
interesting results. Use the special set/clear bits
operations instead of a masked write.
Watches:
--------
You can specify options for watches using the data field. Specify fields like
this:
MSB LSB
33222222 22221111 11111100
00000000
10987654 32109876 54321098
76543210
-------- -------- --------
xxxxxxxx number of elements - 1
-------- -------- xxxxxxxx
-------- bytes to skip after each element
-------- xxxxxxxx --------
-------- elements per line
0 = all on one line
xxxxxxxx -------- -------- -------- signed value to add
So, to make a watch on CPU1 address 0064407F with six elements, skipping three
bytes after each element, showing two elements per line, you would do this:
:gamename:00000006:0064407F:00020305:00000000:
Notes:
- if you want to have a list of many on/off sub-cheats, include a "None" option,
or there will be no way to disable the cheat
- the engine will display "Press Enter to Activate Cheat" if a one-shot cheat
is selected
------------------------------------------------------------------------------
SECTION 6 How to Pre-Enable cheats
------------------------------------------------------------------------------
Enables a cheat on startup. Put the index of the cheat you want to enable in
the address field.
Example, to activate the eleventh cheat in the cheat list, add this cheat to
the file:
:gamename:64004000:0000000A:00000000:00000000:
Actual Example:
For the game Marble Madness, add this to the end of your cheat file it must be
the end of the cheat file or it won't work!
:marble:64004000:00000004:00000000:00000000:
:marble:64004000:00000007:00000000:00000000:
If you've done it correctly the above two lines will automatically enable
cheat lines 5 and 8 for that game which at the time of writing will give
Infinite Time for both players.
NOTE: The cheat lines are counted in hexadecimal not in decimal and the first
cheat line is 0, the 9th is 08, 11th is 0A etc. You should ignore all
other cheats in a linked list or linked cheat other than the first cheat.
All other cheats including comment cheats should be counted though
The pre-enabled cheats should be placed in the Pre-Enabled Cheat Section near the
end of the cheat.dat file. Below is a semi-full list of example pre-enabling cheats
for the game with the shortname "gamename".
Just remember if you're pre-enabling cheats that you will need to copy any
pre-enabling cheats you have made to future cheat files, if you just copy over
the new cheat.dat file you will lose any pre-enabling cheats you have made.
Also bear in mind that the cheat order in the cheat file can be changed between
updates due to new cheats being added, buggy cheats being removed or the cheats
just being re-arranged. Of course if the mamedevs change the shortname you will
have to compensate for that too. All things considered unless you know what you
are doing just stick to enabling cheats manually when you play the game.
REMEMBER THOUGH IF YOU PRE-ENABLE CHEATS FOR SOME GAMES IT WILL CAUSE THE GAME
TO FAIL IT'S RAM/ROM CHECKING AND THE GAME MAY NOT START. IN THESE CASES CHECK
TO SEE IF THERE ARE ANY CHEATS TO BYPASS THESE CHECKS AND IF THERE ARE THEN
PRE-ENABLE THOSE CHEATS. OTHERWISE YOU CAN TEMPORARILY TURN OFF ALL CHEATS
USING F6, RESET THE GAME AND THEN PRESS F6 AGAIN TO TURN ON ALL YOUR
PRE-ENABLED CHEATS.
------------------------------------------------------------------------------
SECTION 7 Dynamic Cheat Finding method
------------------------------------------------------------------------------
From the start, this is presuming you are using a debug MAME. I'm using samsho2
as an example and I am looking for infinite energy for PL1 - the method is easy
to alter for different games and/or other things (this is mainly a method used
for neogeo games - the only real system that utilises dynamic addressing for
'useful' locations). It's not a method for beginners, it assumes cheat finding
skills, a basic understanding of hexadecimal addressing and an ability to
decode my waffling.
1. Start MAME as you would normally - don't forget you must use the debug MAME
build with either -debug on the command-line or DEBUG 1 in the ini file.
2. You will find that after a short while MAME will be on the debugger screen,
at this stage just press F12 to start the game. [REMEMBER F12 in the
debugger will return you to the game]
3. Commence play
4. Start a Energy Search and reduce the results using standard methods. In the
example I reduced the results to 2 possibles 100AC6 & 10373B, by using
watches I can discount 100AC6 as it's the time location. So that leaves us
with 10373B 80 = Full Energy. NOTE: You have to find the value as quickly as
possible because the location will change the next time the level changes,
so you would have to start the search from the beginning. You can test the
address you find by poking it directly if it's the correct location you will
find it will have the desired affect on that level.
5. Press the tilde key (the tilde key is the key under Esc and about TAB and
the the left of 1). You will now be in the debugger, remember the fact that
we found the address 0010373B in step 4 (Note the preceding 0s - we will
need them).
6. Press TAB 3 times so that the cursor is in the address window. Now press S
to commence a search and type in the value as per step 5...but drop the last
byte as that will be part of the index. So in this case we would type in 00
10 37, then press RETURN to execute the search - you can repeat the search
by pressing S and hitting RETURN (the last search values are still set).
For every search result note down the address, you can safely ignore any
results in ROM locations or where it crosses word boundaries (ie. it shows as
XX00 1037 instead of 0010 37XX). In this example you will find that
S 00 10 37 only returns one ROM location at 00003680, so we can safely
ignore it. However, there are no other occurrences so we are goosed.....or
are we?
7. If there are no possibilities then remember that the location we are looking
for contains an address that hopefully points to a page of memory limited in
size. In most cases this seems to be no greater than 256 bytes and is mostly
forward indexed (+ve rather than -ve). So assuming that 10373B is the
extreme case it is 256 bytes away from the start of the memory page base
location, then the base location of the page would be 10363C. So we need to
repeat Step 6 but this time with S 00 10 36 as the search instruction,
ignoring ROM locations and word boundary crossing, from this we get the
following results:-
Address Contents
100A46 00103680
100A5E 00103680
102AEC 00103680
102D2C 00103680
103F2C 00103680
10404C 00103680
104DCC 00103680
10500C 00103680
1057EC 00103680
105A2C 00103680
105C6C 00103680
10644C 00103680
8. From the Step 7 results you can see that all the results point to a page of
memory starting at 00103680, since we know the energy location is 0010373B
we can work out that the index value is = BB (Cheat Location - Start Address
of page = 10373B -103680).
9. Now you need to narrow the location down either by loads of watches on
several levels or by excessive testing, personally I place a watch on all
the locations and try the first location first, second location second etc
etc. [ NOTE: A lot of neogeo games which utilise dynamic addressing seem to
like to use a value in the range 100AXX as the pointer location. ] Here are
the cheats to try first...
{ One more interesting thing to note, you may find that several locations
will have the desired affect as the pointers maybe held in several places
in memory, it really doesn't matter which one you use. }
10. Once you find out the location which works bear in mind that the game will
use the same page for other things like Power etc, Note PL2 will generally
use a different page though the location holding the pointer is generally
right next to the pointer for the other Player (the index will generally be
the same though...which is nice :) ).
------------------------------------------------------------------------------
SECTION 8 General Credits
------------------------------------------------------------------------------
The following people have contributed cheats to this cheat file since it's
first release in early 1998. By contributing I mean they have either emailed
me the cheats or have posted cheats on the cheat forums or have even just
pointed out errors with the cheat file. The names are sorted alphabetically
by first name, I prefer real names but aliases are included:
Andresb,
Angel L. Fradejas,
asper,
aycaramba,
Ben Jos Walbeehm,
C-TYPE,
Cal,
Chris Aruffo,
Chris Henry,
Chuck Livingston,
Coyotepaw,
CyberTaco,
Daniel Clegg,
Daniel Donoghue,
Darkfantager,
Dave Haywood (Haze),
David Jumper,
Deb,
Deckrine,
Don Hodges (PhantomDJ),
Doug Works,
drivium,
Dude,
Eli Flores,
EmuZoneAD,
enaitzjga,
Eric King,
F. D. Vorck,
Federico Stein,
Felipe de Almeida Leme,
FerJoe,
Filipe de V. Estima (aka Bugfinder),
Franck Charron,
Freegamer,
From A Distance,
Gmitra,
Heihachi_73,
Heiko Herold (aka Hman),
Iain Odlin,
Ian Patterson (the programmer of the new MAME Cheat Engine - what a great job he
made of it too),
Jaguar,
James Henstridge,
Jamie,
jAsOn,
JCK of the Ultimate Patchers (lots and lots....possible alter-ego of Steph),
jdurgi,
Jeff Gerstmann (aka Gleemonex),
Joe Ho,
John Sensebe,
Jon Attree,
Jon Colverson,
Jos' Miguel Aunin Juan,
Joseph Rard,
Jym,
kelvSYC (he likes his fighters far too much to be healthy! ;-P ),
Ken Lui,
Kenshiroh,
Kevin Butler,
Kim Scarborough,
KiwI_SLT,
Kralicek,
Kranser,
Laurence Pittenger,
Leo,
Lloyd Hannesson,
Lone Soldier,
Luca G. Nieddu,
Luigi,
Lurendrejer,
M.A.S.H. (Multiple Arcade Special Helper) alias Xgebken,
M'Lord Sandwich,
Mac Lak (neogeo cheats and author of the defunct CheckCDB cheat checker),
Marc Lafontaine (the programmer of the original MAME cheat engine)
Marc Sira,
Marceau Mallard,
Marcovich,
Martin Fernandez,
Martin Pugh ( aka Pugsy, you wouldn't believe how MANY cheats this bloke has
found!!! - oh that's me! ;-) ),
Maurizio Zanello,
Michael Horton (alias Just Michael),
Michel Colman,
Mike Haggar (he of the FinalBurn & Nebula cheat files)
mike myers,
Mohsin,
MRMIdAS,
Nate,
Nathan Duran,
Nathaniel Fedewa,
Neorage,
nyc7398,
Pablo Fernandez (AKA Darksoft),
PAC-MAD/Doctor Flip of the Ultimate Patchers,
Paul Priest (aka Tourniquet),
Paul Slabowski,
Paulo Cordeiro,
Pon,
Radiohead,
Red,
RedBeam,
Riaan Prinsloo,
Robert J Baker,
Robert MacCarthy (aka Crashtest),
Rodney Norton (aka Slade - the author of the Cheat Database Checker, the
replacement for checkcdb),
RON024,
Santeri Saarimaa,
ShimaPong aka 'The Destroyer of the cheat.dat Cheat Engine',
Shun,
Sgt Capcom,
Southpaw,
SSJVegeta (aka Eiji),
Steph Humbert of the Ultimate Patchers (lots and lots),
Sum,
T L Hawkins,
Taucher0815,
Techno_Vamp,
Tetrisguy,
The Gizmo,
The Rabbit,
The StarCreator,
The tECHIDNA,
Thierry Jaboeuf,
Thorwak,
Tom,
Tyler Weems,
Udirnel,
Valentino Georgiou,
VisitntX,
Voodoo666,
Walk,
walterh78,
Wayder,
Whipon,
Who Wants to Know?,
WhosAsking,
Xavier,
Yip Ho Fan,
YMI,
Yuuki-chan,
Zakriya Aleem (aka zakria),
Zan Hsieh,
Zanic.
If I've missed anybody out or if you are included twice (real name and alias)
then please let me know. You could even send some cheats along with the info,
I haven't heard from some of you for ages!!!
------------------------------------------------------------------------------
SECTION 9 Games utilising ROM cheats with credits
------------------------------------------------------------------------------
Games utilising ROM cheats, where the cheat actually changes the program code
rather than the game data. Individual credits will be given due to the extra
work and skill - though only for cheats where RAM cheats are either not
possible or buggy! Sometimes it is actually a LOT quicker to make a ROM hack
than find a RAM cheat.
I'm keeping this list as I may find it useful to for testing purposes when the
cheat engine changes...especially for processors with endian (big and little)
issues. As new clones are added I will add the cheats and give credit to the
original author for the clones as long as the conversions are relatively
straightforward.
------------------------------------------------------------------------------
SECTION 10 Games utilising EEPROM/Mapped Memory cheats with credits
------------------------------------------------------------------------------
This is a list of games that currently make use of cheats that poke direct to
mapped memory or EEPROM. Generally these cheats are to reveal game functions
such as hidden game characters. Note: If the mapped memory being poked is
actually program code it is classed as a ROM cheat!
EEPROM:
gunbird2 [Unlock Aine] (Found by Tourniquet)
s1945iii [Unlock X-36] (Found by Tourniquet)
sailormn/sailormo [REGION] (Found by either sum or zanhsieh - REPLACED WITH
STANDARD CHEATS 0.126)
sfa3/sfa3b/sfa3u/sfa3ur1/sfz3a/sfz3ar1/sfz3j/sfz3jr1/sfz3jr2 [Colour Unlock] (Found
by RedBeam)
Mapped Memory:
sb2003 + sb2003a [EEPROM region] (Found by unknown)
mk3 + clones [Unlock Smoke] (Found by Tourniquet) [CHEAT DISABLED - NO LONGER
WORKS, replaced with alternative character cheat]
umk3 + clones [Unlock Secret Chars] (Found by Tourniquet) [CHEAT DISABLED - NO
LONGER WORKS, replaced with alternative character cheat]
kof99 + clones [Unlock Secret Chars] (Found by unknown) [CHEAT DISABLED - NO LONGER
WORKS, replaced with enable character cheat]
------------------------------------------------------------------------------
SECTION 11 Games utilising Forced Range cheats with credits
------------------------------------------------------------------------------
This is a list of the games currently make use of the force range type cheat as
added in the new cheat engine. It basically allows you to take a location and
make sure that the value stays within a range of values. An example is Arkanoid
where by finding the Y pos of the ball sprite we can ensure by a simple cheat
that the ball never leaves the playing area as soon as it attempts to we poke
the location with a value which will effectively push the ball up a bit so that
you can have another go at hitting the ball. They will hopefully used more in
future as people understand them.
------------------------------------------------------------------------------
SECTION 12 Games utilising Dynamic (Relative Addressing) cheats with credits
------------------------------------------------------------------------------
This is a list of games that currently use 'dynamic' cheats. Dynamic cheats
are basically just relative addressed cheats. The problem with some games when
you do a cheat search is that you can easily find for example the energy
location and poking it will seem to work fine, but if you advance a level you
will find that the cheat no longer works. In fact the next time you play the
level you found the cheat for you will probably find that the cheat doesn't
work there either. I've included my method of how to find your own 'dynamic'
cheats under this list...enjoy ;-) Again this list is sorted in the order that
cheats were added (oldest cheats first).
------------------------------------------------------------------------------
SECTION 13 General list of work to be done
------------------------------------------------------------------------------
Old List:-
----------
Don't expect this list to change too much - there's more pressing issues for
me to deal with normally - I do have a crack at them occasionally.
Newest List:-
-----------------------------------------------------------------------
Update the remaining [ ] format comment cheats to the separated by ---- format
[COMPLETE AS FAR AS NEEDED]
Fix any flickering invincibility cheats to stop the flickering using ROM cheats [AS
AND WHEN]
Convert single byte multi-part cheats to poke 2,4,8 bytes [AS AND WHEN]
Convert cheats that are poking the same location into list cheats + poss. dropping
Now! duplicated cheats [AS AND WHEN]