PS2 Controller Hack Nets Codes for GTA
glengineer writes "Gotta love edisoncarter for his cheesy, brute force, and effective hack of the PS2 controller to discover cheats for Grand Theft Auto - San Andreas. He used the parallel port of his PC connected to relays on the PS2 controller to step thru the combinations of button pushing needed to obtain cheats that were not released by Rockstar."
By FAR, one of the best things to come about from A.D.D.
Apparently the webserver's connection is over a parallel port connection too.
I remember being a little kid, looking at Nintendo Power's codes section and wondering where all those codes came from. Did kids like me just sit there all day punching random codes in and seeing what happened?
Looks like someone figured out a way to do just that.
"We shall grapple with the ineffable, and see if we may not eff it after all." - Douglas Adams
Why do these cheat codes exist in the final product? I can understand having them for development--they need to be able to test different parts of the game. Buy why would they still exist in the released version?
Heh heh heh! I love these kinds of hacks because they cut to the reason that PCs are both so useful and at the same time the bane of the movie, recording, and to some extent, the gaming industry. As far as I know, this hack to get the cheat codes doesn't violate any current laws (maybe the EULA for the game), but I can imagine the legal types at Rockstar not being too happy, especially if Rockstar planned to profit by publishing the codes later. In their zeal to protect IP like cheat codes, I'm sure that some would love to be able to ban PCs altogether or at least control access to various ports with DRM schemes. There's already at least one DRM enabled BIOS shipping.
To the making of books there is no end, so let's get started
So, how did the "relays" know when he'd actually found one? I'd read the article, if it was actually available.
SUre, it's easy to program some i/o lines to just twiddle all combinations of the buttons, but you have to have something that confirms that you actually hit something interesting.
I bet his system also plays a mean game of Tekken!
(joking, I love tekken...)
Slashdot - Mutual Assured Discussion
http://server3.uploadit.org/files/KSquared-edisonc ircuit.jpg
I've been looking for a way for a long time to record inputs to a PC and play them back directly over a controller line according to a script, but I don't have the experience necessary with parallel ports to do such a thing. It would make QA much easier.
Did he post the source code somewhere? I'd love to have working base from which to, well, work.
- Chris
The ______ Agenda
But the real question is my understanding of the playstation controllers is that they speak a serial-uart communications to the ps2. Wouldn't it more elegant to rig up serial-out from a computer to the ps2?
The nice thing about the parallel port is that it is pin programmable. You can individually control any of the pins directly. Where as with serial you need to talk UART
Since all I see is a pic of the joystick on the main page, I wonder if he's trying out all the buttons (L3, R3, and the directions on the analog sticks as well as select and start)
Even with the 12 "buttons" he's pressing and an assumed maximum code length of 12 presses, he's got 12^12 possibilities -- 8916100448256. Testing that number of possibilities (with 12 button presses per possibility) means that if he can spit out something like 48 button presses a second that leaves him with 2,150,000 days to find all the combinations.
If the game has been out for 120 days (I don't know the real amount of time, I'm estimating), that joystick would have to be sending 1 million plus button presses a second to have a complete code list as of today? Anyone know how often the PS2 probes the joystick for button presses?
There is one key error in my math that might shrink the figure by a bit: if you have a range of 24 button presses that the joystick is sending, that could actually be a test of 12 different 12-lengthed codes. My *guess* (I can't prove it mathematically -- maybe someone else can) is that it would shrink times/sizes by a factor of 10. Meaning at 48 button presses a second you need 215,000 days or to have found every code as of today you would have need to be sending input at ~100,000 button presses a second. Even then, assuming the analog state of the joystick can be packed into a byte somehow, that exceeds parallel port speeds.
Add *ALL* the buttons into the mix, R3, L3, Select, Start, and the directions on the analog sticks and the problem just gets a whole lot harder.
Someone please correct me if my math is off. I really am curious to know how the guy discovered so many codes so quickly.
Maybe I'm too old and lame to be playing it, but there were a couple of missiong on GTA: VC which were just too hard for me to complete without using the 'slow motion' cheat codes.
From what I can tell, he leaves it on all day. He's using cheats and convienent locations to muffle or get rid of all the other sounds, and when the Cheat Confirmed box pops up and blips, Cool Edit catches it. Then, he just looks for the spikes in the otherwise flat sound wave, and cross-references to the program to see what code was entered at that time.