4 ms·
Maybe you'll find the first commit instructive: https://github.com/GTAmodding/re3/tree/600bf0351476a5a21aabb5429132ddf7f52ac0b9 https://github.com/GTAmodding/re
by aap_ 6y ago
Maybe you'll find the first commit instructive: https://github.com/GTAmodding/re3/tree/600bf0351476a5a21aabb5429132ddf7f52ac0b9 https://github.com/GTAmodding/re3/tree/600bf0351476a5a21aabb...
We were very lucky that we had symbols for global things, which inludes function names and signatures but not return types.
We then replaced the first instruction of a function with a jump to our own. global variables can be done with a reference to a raw address. virtual methods are a bit of a challenge but we found way to handle them.
- dom96 6y agoWow, that's cool, so you replaced each of the game's functions individually until you had the majority replaced and working stand-alone?
- aap_ 6y agoNot the majority. every single one!
- deleted 6y ago[deleted]
- d26900 6y agoWow, impressive! Can the assets be "reverse engineered" as well? Also, can R* shut this project down? Is there a legal basis for them?
- softwhale 6y agoApparently, this project requires the game assets to work - so you have to own a (legitimate) PC version of the game. https://github.com/GTAmodding/re3#intro https://github.com/GTAmodding/re3#intro Of course, R*/Take-Two could always make a case.
- aap_ 6y agoNot sure what reverse engineering assets means. There is source code for them so they are what they are.
- d26900 6y agoWith "asset reverse engineering" I meant: recreating the assets from scratch. Just like a painter reproducing another painting.
- kmeisthax 6y agoAssets are typically "reverse engineered" by writing tools that convert them to and from whatever proprietary formats the game uses. Other than that, there's not much else to do with them once they're in standard format. As for the legality of the whole project: there's several different legal objections one could raise under copyright law: 1. That the EULA prohibits reverse-engineering 2. That the resulting reverse-engineering project is infringing the copyright on GTA3's program code (which it kind of has to in order to be a faithful disassembly)
- breakingcups 6y ago(Except libraries like Renderware and Miles Sound System, because there'd be almost no point in wasting time on that. Only R* code was reversed.)
- aap_ 6y agoThat's true, though I did write a replacement for RW. It's not an exact copy but it does the job.