My Gran Turismo Diaries

A Lurid Tale of Obsession, Depravity, Wits and Attempted Wit

Thursday August 24, 2000

An Attempted Quick-Reference Guide to GameShark Code Meanings

[Previous Entry ] [Thread List ] [Search ] [game logs ] [Next Entry ] [email] [Disclaimers]

<<-- Game Shark Hints -->>

Copyright © 1999-2001, the author/owner of the following ==> page <==.


Thursday August 24, 2000

An Attempted Quick-Reference Guide to GameShark Code Meanings

I created this abridged guide to PlayStation GameShark Code Meanings based heavily on a longer document found at www.codejunkies.com. I reworded it, shortened it, and re-ordered it.


PlayStation Action Replay 3, GameShark 3 and GameBuster 3

The code types listed here are documented to work for Action Replay (English, Japanese, French), GameShark and Game Buster version 3 cartridges. They are also supposed to work for some slightly earlier versions, namely GameSharks 2.41 and above, UK Action Replay, German GameBuster and French Action Replay 2.8 and above, and Japanese Action Replay 2.5 and above.

80 -- Store Word
Repeatedly writes the given 16 bit value to the given memory location.

30 -- Store Byte
Like 80 code but affects only the byte at the given address, which address may be odd or even.

50 -- Serial Code
5000RR0S IIII
RR is the number of repeats
S is the size. multiple of 2 for words, 1 for bytes
IIII is options increment for written value

Use with 80/30 codes to avoid lots of repetitions of similar codes if you wish to update a lot of consecutive memory locations.

The 50 code itself must precede a normal store code. The size of the address increment must match the type of the store code, since it specifies a value by which to increase the target address on each repeat. That is, with 80000000 codes this S value must be even (2,4,6,8,A,C), but with 30000000 codes (which work on bytes) this S value can be any number from 1 to F.

Example.
   50000302 0000
   801CCFBC 1111
is equivalent to
   801CCFBC 1111
   801CCFBE 1111
   801CCFC0 1111

And
   50000302 0001
   801CCFBC 0001
is equivalent to
   801CCFBC 0001
   801CCFBE 0002
   801CCFC0 0003

Conditional Codes

D0 -- If Equal
If word (16-bit) value in the supplied location is the same as the supplied value do the next code, otherwise skip it.

D1 -- If Not Equal
If the word value in the supplied location is different from the supplied value do the next code, otherwise skip it.

D2 -- If Less Than
If the word value in the supplied location is less than the supplied value do the next code, otherwise skip it.

D3 -- If Greater Than
If the word value in the supplied location is greater than the supplied value do the next code, otherwise skip it.

E0 -- If Byte Equal
If byte value (8-bit) in the supplied location is the same as the supplied value do the next code, otherwise skip it.

E1 -- If Byte Not Equal
If byte value in the supplied location is different from the supplied value do the next code, otherwise skip it.

E2 -- If Byte Less Than
If byte value in the supplied location is less than the supplied value do the next code, otherwise skip it.

E3 -- If Byte Greater Than
If byte value in the supplied location is greater than the supplied value do the next code, otherwise skip it.

Increment (add to) and Decrement (subtract from) Codes

10 -- Add
Adds the value supplied to the word (16-bit) value at the location. Note this is done repeatedly, and so it, and all the other increment/decrement codes, are difficult to make useful.

11 -- Subtract
Subtracts value supplied from the 16-bit value at the location.

20 -- Add Byte
Adds the value supplied to the 8-bit value at the location.

21 -- Subtract Byte
Subtracts the value supplied from the 8-bit value at the location.

New Code Types

Several additional conditional codes were made available in all versions 3.x. They are also available in newer version 2 software (US 2.41+, UK 2.8+, JAP 2.5+).

Must Be On / Master Codes
Not a code, but a feature. If a code name starts with the text "(M)" or "(m)" then that code is always on.

D4 -- Do Code If Joypad
If joypad press equals word value do the next code.

Table of JoyPad values
0001 L2
0002 R2
0004 L1
0008 R1


0010 Triangle
0020 O
0040 X
0080 Square


0100 Select
0800 Start


1000 Up
2000 Right
4000 Down
8000 Left
Add combinations. E.g. Select+L1+R1 = 0100+004+0008 = 010C

D5 -- Codes ON If Joypad
If joypad press equals word value, turn all codes on. This "turn codes on/off" feature is permanently available in all games and defaults to "SELECT+L1+R1" for on and "SELECT+L2+R2" for off. The D5 and D6 codes are available if you need to change the buttons used or disable them. If the value given is zero (D5000000 0000 or D6000000 0000) then joypad functions are disabled (This is the same as "joypad toggle disabled" in the options screen).

D6 -- Codes OFF If Joypad
If joypad press equals word value, all codes off. This does the opposite of the D5 code.

More Extended Codes

There are several other interesting extended codes which are available in more recent GameSharks.

C0 -- Enable All Codes If Equal
If word value in location supplied is the same as value, enable ALL codes, otherwise disable codes, and don't do any. A C0 code if the same as a D0 code except it acts on ALL codes. This is useful for games that don't load when codes are on, or if you want to avoid repeating the same D0 code a lot of times. (Beware in that latter case that you will disable ALL codes in all selected code sets with the single condition).

C1 -- Code Initial Delay
Delay codes being turned on for a period of time specified by the value part of this code. By default this value is set to 1388 hex (5000 decimal) which waits about 10 seconds before activating codes. This can be a useful alternative to a D code for keeping codes off while a game loads.

Example: To delay all codes from being turned on for about 30 seconds in most games use the code C1000000 4000. The value you use depends on the game you are playing--the value 4000 might be 30 seconds on one game, but may only be 10 seconds on another. The only way is to know for sure is to experiment. You can tell if codes are on or off when by going in to the "In Game Menu" and looking at the text "Codes are ON". If it says "Codes are ON" then codes are on, if it says "Codes are ON." (with a dot (".") at the end of the string) then codes are actually off until this timer runs out.

C2 -- Block Move
This code copies one or more bytes from one memory location to another. The code must be used in pairs of two codes. The first code--the actual C2 code--contains the source address, and its value part is the number of bytes to copy. The second code contains the destination address. Both the value part and the op-code part of the second code are not used.

Example: Copy 164 bytes from memory location 801CCFB8 to 801D502C.
     C21CCFB8 00A4
     101D502C 0000



<<-- Game Shark Hints -->>

[Previous Entry ] [Thread List ] [Search ] [game logs ] [Next Entry ] [email] [Disclaimers]


Copyright © 1999-2001 the author/owner of the following ==> page <==.

email

Disclaimers