Proposal for a new cheat type

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.
Post Reply
kelvSYC
Posts: 1121
Joined: Thu Sep 27, 2001 1:00 am
Location: Calgary, AB, Canada

Proposal for a new cheat type

Post by kelvSYC »

Part of why cheat lists have inflated is because of the fact that we are simply using the same "truth-table" over and over again. Again, it's meant to be a line-reducing feature, but here we go:

Let's define a new cheat type called the value list header:

Code: Select all

110xxxxx -------0 -0------ --------
(I've reserved 101----- -------- -------- -------- for CheatScript, basing on what I know)

What this does is to define a list of values that a cheat can refer to later. The Xs give an ID to this list (needed later). Thus, each game can have up to 32 separate lists. For example, let's create this list:

Code: Select all

:game0001:C0000000:000000:00000000:FFFFFFFF:List of characters
:game0001:00010000:000000:00000000:000000FF:Ryu
:game0001:00010000:000000:00000001:000000FF:Ken
:game0001:00010000:000000:00000002:000000FF:Chun-Li
....
Like comment cheats, a value list header's data fields have no meaning. In the linked cheats, the address field is left empty, as another assumption that the same address is used for the entire list is used. Thus, the list merely associates a label with a cheat type - in the example above, a write with mask.

Finally, to use this value list, we use our previously unused cheat engine bit with a standard list cheat header:

Code: Select all

01100010 -------0 1------- --------
Then, in the address field, the address that we use, and the value field the numerical ID of the value list (the extend field is not used). Here's an example:

Code: Select all

:game0001:62008000:FF8432:00000000:FFFFFFFF:Select Character P1
Thus, the above cheat line and the previously defined value list would be the same as:

Code: Select all

:game0001:62000000:000000:00000000:FFFFFFFF:Select Character P1
:game0001:00010000:FF8432:00000000:000000FF:Ryu
....
What's the advantage of such a cheat type then? It allows you to reuse a list numerous times without needing to redefine the list items again and again - useful for "select player" cheats for games with large rosters :-)

A drawback to this is that first, this has little use outside specific genres of MAME/MESS games, and second, it is assumed that a list writes different values to ONE address, and that easy-to-understand names are substituted for cryptic numbers (which may not be the case - see how sfa's infinite taunt cheats can be made into a list).

What do you think of this idea?
kelvSYC's Guide to the Cheat Engine - http://members.shaw.ca/kelvsyc/cheatguide.html

The New Move List Cheat Collection - http://mamecheat.co.uk/forums/viewtopic.php?p=6469

Underscore Command - What better game is there?
User avatar
ianpatt
Posts: 336
Joined: Sat Sep 22, 2001 1:00 am
Location: San Francisco, CA

Post by ianpatt »

Hmm. Seems slightly useful, but it would require more dynamic memory than I want in the loader. That and right now most of my MAME-coding time is spent making the PPC talk to the SHARC & the SHARC talk to the 3D.
Post Reply