Proposal for a new cheat type
Posted: Fri Feb 21, 2003 7:14 am
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:
(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:
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:
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:
Thus, the above cheat line and the previously defined value list would be the same as:
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?
Let's define a new cheat type called the value list header:
Code: Select all
110xxxxx -------0 -0------ --------
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
....
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------- --------
Code: Select all
:game0001:62008000:FF8432:00000000:FFFFFFFF:Select Character P1
Code: Select all
:game0001:62000000:000000:00000000:FFFFFFFF:Select Character P1
:game0001:00010000:FF8432:00000000:000000FF:Ryu
....
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?