liang0213 |
2008-09-15 18:50 |
MAME CHEATS Release Date: 22 Aug 2008 (Base release for MAME 0.127) {Based purely on the cheats for 0.126}
SECTIONS -======-
Simple 1. Basic Instructions on enabling cheats in MAME 2. Cheat Description Meanings 3. Cheat Ordering
Advanced 4. **N/A** Cheat Engine Commands (to customise the cheat UI) **N/A** 5. **N/A** Cheat Format Information **N/A** 6. **N/A** How to Pre-Enable cheats **N/A** 7. Dynamic Cheat Finding method
Credits/Lists 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 13. Games which may use the same cheats
Work to be done 14. General list of work to be done
------------------------------------------------------------------------------ SECTION 1 Basic Instructions on enabling cheats in MAME ------------------------------------------------------------------------------
What to do with the cheat.zip file :-
Step 1 (what to do with the cheat.zip file ) ============================================
First of all do NOT unzip the cheat.zip file - it will work just fine as a zip, it contains over 7180 xml files so unzipping it is not advised.
First of all unzip/un7z the still packed cheat.zip file into the same directory that contains MAME.EXE (All platforms apart from Mac OS 9/X ).
For MacMAME the cheat.zip file should be in:- ${HOME}/Documents/MacMAME User Data/Misc Support Files
For MAME OS X (not SDLMAME OSX!) the cheat.zip file should be in:- ${HOME}/Library/Application Support/MAME OS X
Step 2 (Enable the MAME Cheat Engine) =====================================
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.
MAME: 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'. 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.
MAMEUI: 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'. 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!) ===============
In-game press TAB and follow your nose...... Left and Right cursor toggles cheats ON and OFF, ENTER turns on one shot cheats and SHIFT ENTER displays the cheat comments if there are any (the ON/OFF/SET will be in reverse video if there are any comments).
------------------------------------------------------------------------------ SECTION 2 Cheat Description Meanings ------------------------------------------------------------------------------
GENERAL NOTES ABOUT CHEAT DESCRIPTIONS AND WHAT THEY MEAN: ---------------------------------------------------------- NOTES: The cheat descriptions use the following terms, this is what they actually mean:
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.
OVERALL CHEAT ORDER -------------------
gamename in format '; [ long game name ]' section1 section2 section3 (if applicable) section4
WHAT'S EACH SECTION ABOUT? --------------------------
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.
WHAT'S IN EACH SECTION ----------------------
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.
If section 3 exists it should ideally be preceded by a blank comment.
If section 4 exists it should ideally be preceded by a blank comment.
------------------------------------------------------------------------------ SECTION 4 Cheat Engine Commands (to customise the cheat UI) ------------------------------------------------------------------------------
The cheat engine has recently been radically changed, this section is currently no longer applicable.
------------------------------------------------------------------------------ SECTION 5 Cheat Format Information ------------------------------------------------------------------------------
The cheat engine has recently been radically changed, the cheat format here is no longer applicable. Information about the new format will follow some time in the future.
------------------------------------------------------------------------------ SECTION 6 How to Pre-Enable cheats ------------------------------------------------------------------------------
The cheat engine has recently been radically changed, the method given here is no longer applicable. Stay tuned for the new method (which is a LOT easier).
------------------------------------------------------------------------------ SECTION 7 Dynamic Cheat Finding method ------------------------------------------------------------------------------
Dynamic Cheat Finding method by Pugsy -------------------------------------
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...
:samsho2:83000000:00100A46:00000080:000000BB:Infinite Energy PL1 [POSSIBILITY NO. 1] :samsho2:83000000:00100A5E:00000080:000000BB:Infinite Energy PL1 [POSSIBILITY NO. 2] :samsho2:83000000:00102AEC:00000080:000000BB:Infinite Energy PL1 [POSSIBILITY NO. 3] :samsho2:83000000:00102D2C:00000080:000000BB:Infinite Energy PL1 [POSSIBILITY NO. 4]
{ 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 :) ).
For samsho2 we hence have these dynamic cheats:-
:samsho2:83000000:00100A46:00000080:000000BB:Infinite Energy PL1 :samsho2:83000001:00100A46:00000000:000000BB:Drain All Energy Now! PL1 :samsho2:83000000:00100A46:00000020:000000F0:Always have Maximum Power PL1 :samsho2:83000000:00100A46:00000000:000000F0:Always have Minimum Power PL1 :samsho2:83000000:00100A4A:00000080:000000BB:Infinite Energy PL2 :samsho2:83000001:00100A4A:00000000:000000BB:Drain All Energy Now! PL2 :samsho2:83000000:00100A4A:00000020:000000F0:Always have Maximum Power PL2 :samsho2:83000000:00100A4A:00000000:000000F0:Always have Minimum Power PL2
Dynamic Cheat Finding Method (c) Pugsy 2000-2002
------------------------------------------------------------------------------ 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, 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, 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, Wayder, Whipon, Who Wants to Know?, WhosAsking, Xavier, Yip Ho Fan, YMI, Yuuki-chan. 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!!!
|
|