Introduction
Commands
Addresses
Values
Encryption
Joker Commands
Examples
Codes
Thanks
Links
Bonus
PS2DIS

Joker Commands

This is an interesting combination of AR2 command, address, and value so I thought I'd dedicate a page to it. Each button on the controller is assigned a unique 16-bit value. These values are listed in the table below.

Button16-bit Value
Select0001
L30002
R30004
Start0008
Up0010
Right0020
Down0040
Left0080
L20100
R20200
L10400
R10800
Triangle1000
Circle2000
X4000
Square8000

Use kpdavatar's Joker Generator to easily create your 4-digit Joker value. Click the Info button for help.

MSG D2: MSG D3:
XorAdd  AddXor  XorAdd  AddXor 
Joker Hex:
Select:
L3:
R3:
Start:
d2 XOR: d3 XOR:
Joker AR2:
Up:
Right:
Down:
Left:
d2 ADD: d3 ADD:
Reverse Joker Hex:
L2:
R2:
L1:
R1:
  
Reverse Joker AR2:
Triangle:
Circle:
X:
Square:

Any combination of button presses can be checked for by adding the values for each button that is pressed. See the example below for details.

Now we have to figure out where these values need to be used. Each game has different addresses that it uses to store Controller 1 and Controller 2 button presses. For GTA3, those addresses are C70EE6 for Controller 1 and C711E6 for Controller 2. I don't currently care about hacking codes for other games, so I'll use these addresses for my examples.

Now that we have the address to check, we will use the "0C" AR2 command to check for a 16-bit Equal value. There are two kinds of joker commands. Regular jokers will check if the value at that address is equal to the value we calculated for the button presses. Reverse jokers will check if the value is equal to FFFF minus the value we calculated. The minus calculation needs to be part of the value that we specify to check against. GTA3 uses reverse jokers.

Tying it all together: Say we want to activate the code to spawn a Cheetah in our Staunton Garage (3CF2F6B8 1456E77E) when we press the L1 and L2 buttons together on Controller 2.

First, we calculate our button-press value: 0400 (L1) + 0100 (L2) = 0500
Since GTA3 uses reverse jokers: FFFF - 0500 = FAFF
The value we want to use in our "0C" command is 0000FAFF. We need to encrypt this value.
00 00 FA FF encrypts to 14 56 AD 0C.

So the command we need to use is "0CC711E6 1456AD0C". We place this command before the car spawning code and *voila*, it works.


If you have any information to contribute to this section, please let me know at hellion00@comcast.net.