Editing Rules
In order to ensure that each page follows a similar style, please read and conform to the following editing rules.
Easy Cheats
These are the cheats that appear at the top of every game page. Easy cheats are meant to be used by people with little skill in emulators, so they should be made as easy to use as possible.
General Display
Easy Cheats should be formatted in the following way:
| Icon | Addr | Val | Cmp | Description |
|---|---|---|---|---|
| 08C4 | D3 | 01 | Cheat Description | |
| How do I use these? | ||||
Each number uses leading zeroes to ensure they're all the same length, 4 digits for the memory address and two digits for the value. If the compare isn't used, fill it with a dash "-". The description should be treated like a title where all important words are upper case, while lesser important words like "a," "of," "the," etc. are lower case.
Multiple Codes Per Cheat
When two or more cheat codes need to be tied together, put them into a single cheat on multiple lines. Add to the description the cheat number, a slash, and the total number surrounded in parenthesis. Here is an example:
| Icon | Addr | Val | Cmp | Description |
|---|---|---|---|---|
| 9472 9473 |
FA F9 |
FC FC |
High Jump (1/2) High Jump (2/2) | |
| How do I use these? | ||||
Description Notes
If a cheat will disrupt normal game play, add a note to its description. Place notes in parentheses and only capitalize the first word. For example:
| Icon | Addr | Val | Cmp | Description |
|---|---|---|---|---|
| 0071 | 63 | - | Infinite Hearts (Turn off at the end of a stage) | |
| How do I use these? | ||||
Order
Cheats should be ordered based on what they do. Cheats affecting lives and/or hit points should be first, followed by power-ups, those that affect movement (jumps, speed, etc.), and then less-important cheats (like infinite time or continues). Similar cheats should be grouped together. Challenger cheats should always be placed at the bottom and be ordered in a similar fashion. For example:
| Icon | Addr | Val | Cmp | Description |
|---|---|---|---|---|
| 010A | 09 | - | Start With 9 Lives and 9 Continues | |
| 02BE | 09 | - | Infinite Lives | |
| C5D0 C889 |
0F 0F |
0A 0A |
More Hit Points (1/2) More Hit Points (2/2) | |
| 02AB | 0B | - | Infinite Hit Points | |
| 02A2 | 01 | - | Have Knife | |
| 02A2 | 01 | - | Have Nun-chucks | |
| 0204 | 40 | - | Infinite Time | |
| 02BF | 09 | - | Infinite Continues | |
| 010A | 01 | - | Start With 1 Life and 1 Continue | |
| C5D0 C889 |
06 06 |
0A 0A |
Fewer Hit Points (1/2) Fewer Hit Points (2/2) | |
| 02A2 | 00 | - | Can't Use Weapons | |
| How do I use these? | ||||
Naming Conventions
Some games have specific names for values and those names should be used rather than a generic name. For example, The Legend of Zelda (NES) uses the name "rupee" for money. For games that don't have specific names, use the following standards in the cheat code descriptions.
- Lives - For the number of retries a player gets. Don't used "guys," "1-ups," etc.
- Hit Points - For when the player can take multiple hits. Try to match the game's terminology (health, energy, etc.), but use "hit points" as the default when no specific name is listed.
- Level - Try to match the game's terminology (stage, area, etc.), but use "level" as the default when no specific name is listed.
- Invulnerable - When the player cannot take damage.
- Invincible - When a player injures enemies on contact.
Multiple Players
When distinguishing between Player 1 and Player 2, always use P1, P2 at the beginning of the code. All P1 codes of a type should be grouped together, then all P2 codes. You can use this same system for RPGs with multiple party members as well. RPGs with four adventurers (like Final Fantasy (NES)) and 4-player games (like Gauntlet II (NES)) should use P3 and P4 as well. Here is an example:
| Icon | Addr | Val | Cmp | Description |
|---|---|---|---|---|
| 05B4 | 89 | - | P1 Infinite Lives | |
| 0210 | 18 | - | P1 Infinite Hit Points | |
| 05E4 | 89 | - | P2 Infinite Lives | |
| 0224 | 18 | - | P2 Infinite Hit Points | |
| How do I use these? | ||||
Code Duplication
Don't duplicate an existing code unless there is a valid reason. The first code below gives the player 9 ammo, the second code gives them 99 ammo, but since they both yield infinite ammo, each code does the same thing, so one should be eliminated.
| Icon | Addr | Val | Cmp | Description |
|---|---|---|---|---|
| 00A4 | 09 | - | Infinite Ammo | |
| 00A4 | 99 | - | Infinite Ammo | |
| How do I use these? | ||||
However, in this example, the codes have a different purpose. One starts the player with a lot of ammo, the other provides infinite ammo. In this case, both codes are valid.
| Icon | Addr | Val | Cmp | Description |
|---|---|---|---|---|
| D86C | 2F | 03 | Start With 99 Ammo | |
| 00A4 | 09 | - | Infinite Ammo | |
| How do I use these? | ||||
Memory Addresses
Memory addresses include the values found in bytes 0000-07FF. You can also include any memory beyond this section provided it's not code. For example, if there is a data table in the ROM, or the area where the game stores battery memory.
Numbers
Many games handle large numbers like score, hit points, etc. in multiple areas of memory, but there are different forms of doing this, and each form should be displayed in a particular way to remain intuitive. If single digits are stored across multiple memory locations, write them out as follows:
07DE - P1 Score: 9xxxx 07DF - P1 Score: x9xxx 07E0 - P1 Score: xx9xx 07E1 - P1 Score: xxx9x 07E2 - P1 Score: xxxx9
Note that the 9 is the variable position that is being altered, and an x is a place holder to show the full size of the number. Sometimes a game will display a digit that isn't part of actual number. For example, the score may read "125500," but the 00 at the end never changes, and isn't stored in memory. When this occurs, add the unused values to the score to show where they are. For example:
0200 - P1 Score: 9xxx00 0201 - P1 Score: x9xx00 0202 - P1 Score: xx9x00 0203 - P1 Score: xxx900
Sometimes two digits are stored in a single byte. In cases like this, simply display 99 per section and xx in the place holders, like so:
0424 - Score: 99xxxx 0425 - Score: xx99xx 0426 - Score: xxxx99
There is a different way of handling numbers that is a bit more technical. Some games store numbers by multiplying one byte with a second byte (and sometimes even a third or fourth byte). This allows very large numbers to be stored in relatively small areas of memory. When this occurs, use the following notation:
00BC - Gold: x1 00BD - Gold: x256 00BE - Gold: x65536
This implies that the number stored in 00BE is multiplied by 65,536, the number stored in 00BD is multiplied by 256, and the number stored in 00BC is multiplied by 1. Finally, the three are added together to get the total amount of gold. For example, if the memory reads the values below, the total gold is 180,522. Here's why:
00BC - 2A 00BD - C1 00BE - 02
You can figure out how much gold the player has by first converting to decimal:
2A = 42 C1 = 193 02 = 2
Then multiplying by the noted values:
42 x 1 = 42 193 x 256 = 49,408 2 x 65,536 = 131,072
And finally, adding them all together to determine the total number of gold:
131,072 + 49,408 + 42 = 180,522
Normal Range
When the game has a normal operating range for a variable, include the normal low and high values. This will also help determine if the value is stored as decimal or hex).
00C6 - Magic Points (00-63)
Do not include all possible values, but rather the expected values. For example, In Super Mario Bros. (NES), the player's lives value can technically span from 0 to 255, but the game starts glitching when it surpasses 9, so the line should read:
075A - Lives (00-09)
Example Values
If a byte stores multiple values, each with a different description, try to include each description. For example:
0756 - Powerup Flag (00 - Mario, 01 - Super Mario, 02 - Fire Mario)
When there are too many possibilities to comfortably fit on a line, break the line up into multiple lines, each indented below the first. This is done with a space, then a tab character (to insert a tab character, open Notepad, press tab, highlight the tab space, copy it, and then paste it into your browser).
00E0 - Tile type on which the player is standing: 00 - Grass 01 - Desert 02 - Hills 03 - Stairs Up 04 - Tiles 05 - Stairs Down 06 - Swamp 07 - Town 08 - Cave 09 - Castle 0A - Bridge 0B - Forest 0C - Chest 0D - Force Field
A lot of games will store multiple true or false values (or flags) into a single byte, called a bitflag. These should be denoted by a plus sign at the beginning so other readers know how much to add.
680B - Joined party members +01 - Mage +02 - Bard +04 - Fighter +08 - Druid +10 - Tinker +20 - Paladin +40 - Ranger +80 - Shepherd
Text
Characters should be listed with a two-digit hexadecimal look-up, an equal sign, and then the character value. Do not put spaces before or after the equal sign (unless the crossover character is actually a space, like line 39 in the example). The text table should be sorted in order of the hexadecimal number NOT the character. Here is an example:
00=0 01=1 02=2 ... 10=A 11=B 12=C ... 39= 3A=. 3B=,
Code
Try to use the same indentation for comments as existing games.