Check out our Monthly Survey Page to see what our users are running.
We do often include affiliate links to earn us some pennies. See more here.

It was only recently that we picked up the news of both GTA III and Vice City getting a fully working reverse engineered game engine, along with plenty of upgrades. Sadly, and expectedly, it got nuked from orbit.

Even though it required you to own the game assets, so you would have needed to purchase a copy of either to use the re3 and reVC game reimplementations that wasn't enough to satisfy Take-Two Interactive Software, Inc., the parent company of Rockstar Games. They've now given it the DMCA treatment, with the main repository and all known forks at the time to be taken offline on GitHub.

Sad but fully expected. Big publishers really don't like these sorts of projects, even though they can help revive their older games and perhaps even get them more sales. Copyright and Intellectual Property Rights are a legal minefield at the best of times, so the only way we may get this treatment in future is a fully clean-room reimplementation more like OpenMW for Morrowind or OpenRA for classic Westwood RTS games.

Perhaps now someone can pick up OpenRW again.

Article taken from GamingOnLinux.com.
Tags: Game Engine, Misc
24 Likes
About the author -
author picture
I am the owner of GamingOnLinux. After discovering Linux back in the days of Mandrake in 2003, I constantly came back to check on the progress of Linux until Ubuntu appeared on the scene and it helped me to really love it. You can reach me easily by emailing GamingOnLinux directly. Find me on Mastodon.
See more from me
The comments on this article are closed.
44 comments
Page: «2/5»
  Go to:

Baker Feb 22, 2021
Big corporations being pathetic yet again... No good reason to take this down
wytrabbit Feb 22, 2021
View PC info
  • Mega Supporter
QuoteNot in active development anymore; Superseded by re3

RIP


Last edited by wytrabbit on 22 February 2021 at 2:56 pm UTC
rustybroomhandle Feb 22, 2021
This is a weird one. I might be talking out my ass here, but DMCA is for copyright, and as far as I know, reverse engineered efforts like this usually do not use any of the original code and you still need to buy the original game for the assets. So it does not violate any copyright.

Remember when Microsoft tried to legally poopoo* the Samba project, but then later agreed to help them by providing spec docs?

* not a legal term
whizse Feb 22, 2021
View PC info
  • Supporter
Quoting: rustybroomhandleThis is a weird one. I might be talking out my ass here, but DMCA is for copyright, and as far as I know, reverse engineered efforts like this usually do not use any of the original code and you still need to buy the original game for the assets. So it does not violate any copyright.
As mentioned in the article, this did not seem to be a clean room reverse engineering effort. I think Rockstar might very well claim copyright.
slaapliedje Feb 22, 2021
Quoting: GuestIf it was a clean-room implementation there wouldn't be as much of a problem, however this was reverse engineered directly from the binaries it seems. That's a bit more of an issue as far as countries with dmca style laws go.
There was a point in time where reverse engineering was perfectly legal. I'm not sure if it is at this point. But for the most part there has to be some form of being able to read the data files to be able to recreate the game, and the term reverse engineering could technically be pinned to that. Pretty sure they weren't full on creating the engine through such means, were they?

I think the 'brings more sales' argument is shot down by sales, as they'd rather sell you new games instead of people being able to buy cheap old games. Plus with it being opened, they're afraid new content will be created for the old games, again hampering sales of new games.

Basically anti-consumer, pro-company thoughts.
popsulfr Feb 22, 2021
This is unfortunate.

All this aside, it blew me away to get Vice City running on my Raspberry Pi 400



1024x576 running at 20-25 fps, The framerate seems more stable by forcing GLES instead of OpenGL (just by commenting out the OpenGL profiles in the code).

Very cool!
EagleDelta Feb 22, 2021
Quoting: GuestSaw this one coming. I hope Github doesn't get hate for this like they did with Youtube-dl. Github are not to blame for this, they have no choice but to comply with the awful DMCA

So, that's no actually true. I'll have to dig up the appropriate video, but a particular Business Lawyer clarified the DMCA provisions relating to takedowns. There is no requirement to takedown content from a DMCA request. All that provision does is protect the platform owner from liability on both sides. Basically, it protects hosts from being "caught in the middle" of a copyright dispute and facing a lawsuit from the organization requesting the takedown and from the users affected by the takedown.

But, as can be seen with a recent copyright case between Cox Communications and Sony Music, if a company doesn't actually comply with the DMCA takedown, they lose the immunity to lawsuits.... making them liable for an infringement by their users.
scratchi Feb 22, 2021
Quoting: popsulfrThis is unfortunate.

All this aside, it blew me away to get Vice City running on my Raspberry Pi 400



1024x576 running at 20-25 fps, The framerate seems more stable by forcing GLES instead of OpenGL (just by commenting out the OpenGL profiles in the code).

Very cool!

Nice! I want to give it a try now, can you zip up the code and upload it somewhere? Please help :)
F.Ultra Feb 22, 2021
View PC info
  • Supporter
Quoting: slaapliedje
Quoting: GuestIf it was a clean-room implementation there wouldn't be as much of a problem, however this was reverse engineered directly from the binaries it seems. That's a bit more of an issue as far as countries with dmca style laws go.
There was a point in time where reverse engineering was perfectly legal. I'm not sure if it is at this point. But for the most part there has to be some form of being able to read the data files to be able to recreate the game, and the term reverse engineering could technically be pinned to that. Pretty sure they weren't full on creating the engine through such means, were they?

I think the 'brings more sales' argument is shot down by sales, as they'd rather sell you new games instead of people being able to buy cheap old games. Plus with it being opened, they're afraid new content will be created for the old games, again hampering sales of new games.

Basically anti-consumer, pro-company thoughts.

Depends on if there are clauses against reverse engineering in the EULA of the original game since it was declared in https://en.wikipedia.org/wiki/Bowers_v._Baystate_Technologies,_Inc. that such an EULA override the copyright law that expressly permits reverse engineering. However it has also to be said that Baystate did sell a competing application to Bowers and reverse engineered Bowers application to add new features to their own so that case is not 100% comparable with this situation.

However defending your position in court even if you are 100% sure that you will win is extremely expensive in the US so many smaller entities will not defend themselves even when they are in the right paving the way for big corporations to bully their way through the court system.
popsulfr Feb 22, 2021
Quoting: scratchiNice! I want to give it a try now, can you zip up the code and upload it somewhere? Please help :)
You should be able to find a mirror of the repo by searching a bit. I already had it pulled from github before the takedown. Checkout the correct branch if you want to build for Vice City or 3.

This is on Manjaro KDE with Wayland.

At the root level I had to apply:

 diff --git a/premake5.lua b/premake5.lua
index 531f92ea..987e72b3 100644
--- a/premake5.lua
+++ b/premake5.lua
@@ -354,7 +354,7 @@ project "reVC"
 
  if _OPTIONS["with-opus"] then
  filter {}
- links { "libogg" }
+ links { "ogg" }
  links { "opus" }
  links { "opusfile" }
  end


libogg is wrong.

In vendor/librw apply:

diff --git a/src/gl/gl3device.cpp b/src/gl/gl3device.cpp
index b1036c0..5184e17 100644
--- a/src/gl/gl3device.cpp
+++ b/src/gl/gl3device.cpp
@@ -1689,8 +1689,8 @@ static struct {
  int gl;
  int major, minor;
 } profiles[] = {
- { GLFW_OPENGL_API, 3, 3 },
- { GLFW_OPENGL_API, 2, 1 },
+ //{ GLFW_OPENGL_API, 3, 3 },
+ //{ GLFW_OPENGL_API, 2, 1 },
  { GLFW_OPENGL_ES_API, 3, 1 },
  { GLFW_OPENGL_ES_API, 2, 0 },
  { 0, 0, 0 },


To force GLES selection.

I compile it like this:
premake5 --with-librw --with-opus --lto gmake2
cd build
// export your compiler flags like MAKEFLAGS=-j5
make verbose=1 O=. config=release_linux-arm64-librw_gl3_glfw-oal


The binary will be at the root level in bin/ and copy the content of gamefiles/ over your game directory.

I have an overclock for the pi 400:
arm_freq=2100
gpu_freq=750
v3d_freq=750
over_voltage=6

Also using the pure kms driver:
dtoverlay=vc4-kms-v3d-pi4

If I find some time I'd like to figure out how to force the use of wayland instead of xorg (using glfw for wayland). There's a small part that depends on X11 input constants which should be replaceable. Wondering if it would help performance.


Last edited by popsulfr on 22 February 2021 at 4:35 pm UTC
While you're here, please consider supporting GamingOnLinux on:

Reward Tiers: Patreon. Plain Donations: PayPal.

This ensures all of our main content remains totally free for everyone! Patreon supporters can also remove all adverts and sponsors! Supporting us helps bring good, fresh content. Without your continued support, we simply could not continue!

You can find even more ways to support us on this dedicated page any time. If you already are, thank you!
The comments on this article are closed.