|
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
|