Here's how fans reverse-engineered GTA 3 and Vice City in Rockstar's silence
Grand Theft Auto 3 and Vice City underwent a complete reverse engineering process by a handful of fans.
It means that fans have recreated the source code of both games, and posted it on GitHub . The code can be used by anyone who wants to play on PC, and is also open to further modifications and improvements.
Re3 (reverse-engineered GTA 3) and reVC (reverse-engineered Vice City) are not limited to offer the games as we know them in their official incarnations, but they also add some improvements, as you can see in the video below.
Just to give you an idea, we point out that several bugs have been fixed, which now Debug menu and camera are available, compatibility with the latest controllers is present, inter-island uploads have been eliminated and widescreen support added with an interface that adapts accordingly. And much more (we only mention the improved effects taken from the PS2 versions of the games, and a map of Liberty City in the Re3 pause menu).
Watch on YouTube. As you can guess, this is a major achievement for the reverse engineering enthusiast scene, and it amazes how Rockstar (and Take-Two, of course) have let it go for the moment.
"A GTA open source is like a dream for many GTA fans, "project leader" aap "told Eurogamer.
" We've been adding our code to games via mods for years, but it was a rather cumbersome process and with different limits. "
What we are talking about today is just the culmination of a long journey, in which there have been several attempts to recreate GTA3, originally released in 2001 by DMA Design and Rockstar Games.
One of these attempts, called Open ReWrite or OpenRW, looked promising, but now the project looks dormant. Someone even tried to recreate Grand Theft Auto 3 in Unity or Unreal, but aap was more interested in reverse engineering the original code, to derive a new source. The operation started in 2016 more as a pastime, going so far as to be able to fly around the map.>
aap then concentrated on reverse engineering the collision systems and physics, injecting them into the original code to see how they were doing, and so the re3 project officially started. aap replaced every piece of code in the game piece by piece until, in the spring of 2018, there was nothing original.
"I didn't know if the project would ever see an end," he explained app. "I was working on it myself, but it still seemed like the most reliable way to an open source GTA."
You shouldn't underestimate the skill, time and energy required to reverse engineer a video game. It is not an easy feat for a professional, so let alone for a simple enthusiast. The amount of code to work on is huge, and mistakes are in fact inevitable, especially if they don't translate into obvious ingame problems. aap admits it candidly: there are almost certainly bugs in the re3 code that are not present in the original game.
That said, it's a remarkable achievement. Here's how aap and his collaborators managed to reach him (easy called):
Watch on YouTube. "GTA 3 and Vice City were written in C ++," app explains. "The compiled executables are in machine code, so the idea is that you have to go back to C ++ starting from machine code."
"The machine code can be mapped (more or less) 1: 1 into assembly, a language that can be interpreted by a human, but still very woody to read. "
" Returning to C ++ is not a simple 1: 1 mapping, but fortunately in the last decade some decompilers have been developed that render the easiest process. "
" So, we usually work with the output of the decompiler and put it back in a readable form of C ++. Sometimes it's pretty simple, sometimes not, but in any case it is to handle a lot of code, and mistakes are inevitable. "
Fortunately, the code of GTA 3 on PS2 and Android includes debug symbols that contain all the information you need for debugging. They aren't usually found in finished products because they take up space, but Rockstar for some reason left them in these versions giving the reverse engineering group a big hand.
"We were very lucky to find them," he said aap. "The PS2 and Android versions of GTA 3 contain names for global variables and functions. They've been so useful, so much so that I don't think we could have gotten to where we are without them."
In the video below you can see the analysis of the code used for the garbage found on the streets of GTA 3. It is not an easy movie, but it is very interesting.
Watch on YouTube. After stopping work on re3 for a year, aap resumed in Spring 2019 and posted the work on GitHub in May 2019. We're talking more or less than 15,000 lines of code.
At that point, other enthusiasts noticed the project and started contributing. There was a halt in the second half of 2019, then in 2020 everything resumed when the pandemic gave hackers more free time (little consolation, you say). In April 2020 the re3 team (at the heart of which are only six people) had the first executable.
But why GTA 3? "It was the first game of an era, it's the smallest (which means the one with the shortest code) and pretty much everyone likes it," aap said. After GTA 3, the team logically moved to Vice City, after all it is much loved and the similarities with the previous chapter are many. Started in May 2020, reVC was completed in December.
Looking ahead, aap says he'd like to fix the game's physics when the frame-rate goes up and maybe add a mod for virtual reality. Another project concerns Renderhook (and therefore ray-tracing): "We'll see ..." said aap.
In any case, porting projects for Wii U, Nintendo Switch and PlayStation Vita have already sprung up. In the video below, by YouTuber Modern Vintage Gamer, you can see the work in progress for the Nintendo hybrid:
Watch on YouTube. "The Wii U port was a surprise," aap said. "I think the Android version will be done sooner or later, but no one on the team knows the platform so we will probably need someone outside."
"The PS2 version is personally close to my heart because it is the original GTA platform , and I think I have to take care of it (after all, I have a PS2 devikit). The PS3 version is also interesting, I have a devkit but not the time though. "
GTA reverse engineering is living sparkling times, in short. Some hackers have managed to run the Android version of Grand Theft Auto: San Andreas on PS Vita (you can always find it on GitHub). It wasn't a code reverse engineering operation, but the inspiration comes from the ability to play GTA 3 and Vice City on Vita. More ports from Android are coming to the Sony laptop, then.
Watch on YouTube. At this point we wonder why Take-Two and Rockstar didn't do anything. Re3 only works if you have a copy of GTA 3, and aap points out that his code should only be used for training, documentation or modding purposes. "We do not advocate for piracy or commercial use."
Despite this, Take-Two and Rockstar's reputation, generally harsh against fanmade remakes, was a concern for the team: "we were very worried, and we tried to work silently as much as possible ".
" There has been some noise with the Switch port, but none of Take-Two has intervened so we think they don't care (or really blind). "
Most read now
PS5: Sony would be censoring representations of violence in video games
An interesting report, but what's the limit to not overcome?
Stadia in chaos! Journey to the Savage Planet developers cannot fix bugs because they are licensed by Google
UPDATE: Google reacts.
Valheim is an unstoppable success, there are only 5 developers and they find it hard to believe
"Out of my mind ... it's awesome"
Super Mario 64 reverse engineering project is still on GitHub, which aap takes as a good sign "because Nintendo is at least as aggressive Take-Two ". So far so good, then, but for how long?
aap does not wait hands in hand. The next work is reLCS, the reverse engineering of Liberty City Stories (PSP, 2005), a work started in January 2021 and which will bring the game to PC for the first time.
And then? Grand Theft Auto: Vice City Stories, which aap describes as the holy grail of GTA reverse engineering. VCS has more features than LCS, but it never made it to Android and therefore there are no debug symbols in the code. Reverse engineering the exclusive PSP dated 2006 is a real challenge: "We will see what we can do in due course," aap said.
It means that fans have recreated the source code of both games, and posted it on GitHub . The code can be used by anyone who wants to play on PC, and is also open to further modifications and improvements.
Re3 (reverse-engineered GTA 3) and reVC (reverse-engineered Vice City) are not limited to offer the games as we know them in their official incarnations, but they also add some improvements, as you can see in the video below.
Just to give you an idea, we point out that several bugs have been fixed, which now Debug menu and camera are available, compatibility with the latest controllers is present, inter-island uploads have been eliminated and widescreen support added with an interface that adapts accordingly. And much more (we only mention the improved effects taken from the PS2 versions of the games, and a map of Liberty City in the Re3 pause menu).
Watch on YouTube. As you can guess, this is a major achievement for the reverse engineering enthusiast scene, and it amazes how Rockstar (and Take-Two, of course) have let it go for the moment.
"A GTA open source is like a dream for many GTA fans, "project leader" aap "told Eurogamer.
" We've been adding our code to games via mods for years, but it was a rather cumbersome process and with different limits. "
What we are talking about today is just the culmination of a long journey, in which there have been several attempts to recreate GTA3, originally released in 2001 by DMA Design and Rockstar Games.
One of these attempts, called Open ReWrite or OpenRW, looked promising, but now the project looks dormant. Someone even tried to recreate Grand Theft Auto 3 in Unity or Unreal, but aap was more interested in reverse engineering the original code, to derive a new source. The operation started in 2016 more as a pastime, going so far as to be able to fly around the map.>
aap then concentrated on reverse engineering the collision systems and physics, injecting them into the original code to see how they were doing, and so the re3 project officially started. aap replaced every piece of code in the game piece by piece until, in the spring of 2018, there was nothing original.
"I didn't know if the project would ever see an end," he explained app. "I was working on it myself, but it still seemed like the most reliable way to an open source GTA."
You shouldn't underestimate the skill, time and energy required to reverse engineer a video game. It is not an easy feat for a professional, so let alone for a simple enthusiast. The amount of code to work on is huge, and mistakes are in fact inevitable, especially if they don't translate into obvious ingame problems. aap admits it candidly: there are almost certainly bugs in the re3 code that are not present in the original game.
That said, it's a remarkable achievement. Here's how aap and his collaborators managed to reach him (easy called):
Watch on YouTube. "GTA 3 and Vice City were written in C ++," app explains. "The compiled executables are in machine code, so the idea is that you have to go back to C ++ starting from machine code."
"The machine code can be mapped (more or less) 1: 1 into assembly, a language that can be interpreted by a human, but still very woody to read. "
" Returning to C ++ is not a simple 1: 1 mapping, but fortunately in the last decade some decompilers have been developed that render the easiest process. "
" So, we usually work with the output of the decompiler and put it back in a readable form of C ++. Sometimes it's pretty simple, sometimes not, but in any case it is to handle a lot of code, and mistakes are inevitable. "
Fortunately, the code of GTA 3 on PS2 and Android includes debug symbols that contain all the information you need for debugging. They aren't usually found in finished products because they take up space, but Rockstar for some reason left them in these versions giving the reverse engineering group a big hand.
"We were very lucky to find them," he said aap. "The PS2 and Android versions of GTA 3 contain names for global variables and functions. They've been so useful, so much so that I don't think we could have gotten to where we are without them."
In the video below you can see the analysis of the code used for the garbage found on the streets of GTA 3. It is not an easy movie, but it is very interesting.
Watch on YouTube. After stopping work on re3 for a year, aap resumed in Spring 2019 and posted the work on GitHub in May 2019. We're talking more or less than 15,000 lines of code.
At that point, other enthusiasts noticed the project and started contributing. There was a halt in the second half of 2019, then in 2020 everything resumed when the pandemic gave hackers more free time (little consolation, you say). In April 2020 the re3 team (at the heart of which are only six people) had the first executable.
But why GTA 3? "It was the first game of an era, it's the smallest (which means the one with the shortest code) and pretty much everyone likes it," aap said. After GTA 3, the team logically moved to Vice City, after all it is much loved and the similarities with the previous chapter are many. Started in May 2020, reVC was completed in December.
Looking ahead, aap says he'd like to fix the game's physics when the frame-rate goes up and maybe add a mod for virtual reality. Another project concerns Renderhook (and therefore ray-tracing): "We'll see ..." said aap.
In any case, porting projects for Wii U, Nintendo Switch and PlayStation Vita have already sprung up. In the video below, by YouTuber Modern Vintage Gamer, you can see the work in progress for the Nintendo hybrid:
Watch on YouTube. "The Wii U port was a surprise," aap said. "I think the Android version will be done sooner or later, but no one on the team knows the platform so we will probably need someone outside."
"The PS2 version is personally close to my heart because it is the original GTA platform , and I think I have to take care of it (after all, I have a PS2 devikit). The PS3 version is also interesting, I have a devkit but not the time though. "
GTA reverse engineering is living sparkling times, in short. Some hackers have managed to run the Android version of Grand Theft Auto: San Andreas on PS Vita (you can always find it on GitHub). It wasn't a code reverse engineering operation, but the inspiration comes from the ability to play GTA 3 and Vice City on Vita. More ports from Android are coming to the Sony laptop, then.
Watch on YouTube. At this point we wonder why Take-Two and Rockstar didn't do anything. Re3 only works if you have a copy of GTA 3, and aap points out that his code should only be used for training, documentation or modding purposes. "We do not advocate for piracy or commercial use."
Despite this, Take-Two and Rockstar's reputation, generally harsh against fanmade remakes, was a concern for the team: "we were very worried, and we tried to work silently as much as possible ".
" There has been some noise with the Switch port, but none of Take-Two has intervened so we think they don't care (or really blind). "
Most read now
PS5: Sony would be censoring representations of violence in video games
An interesting report, but what's the limit to not overcome?
Stadia in chaos! Journey to the Savage Planet developers cannot fix bugs because they are licensed by Google
UPDATE: Google reacts.
Valheim is an unstoppable success, there are only 5 developers and they find it hard to believe
"Out of my mind ... it's awesome"
Super Mario 64 reverse engineering project is still on GitHub, which aap takes as a good sign "because Nintendo is at least as aggressive Take-Two ". So far so good, then, but for how long?
aap does not wait hands in hand. The next work is reLCS, the reverse engineering of Liberty City Stories (PSP, 2005), a work started in January 2021 and which will bring the game to PC for the first time.
And then? Grand Theft Auto: Vice City Stories, which aap describes as the holy grail of GTA reverse engineering. VCS has more features than LCS, but it never made it to Android and therefore there are no debug symbols in the code. Reverse engineering the exclusive PSP dated 2006 is a real challenge: "We will see what we can do in due course," aap said.