GT1 Modding discussion

  • Thread starter Jandarman
  • 38 comments
  • 6,144 views
Well, as mentioned already - it's better to write game from scratch than rev-engineer GT1. It's a painly process you know.

Besides that for some unknown reason PSCX Redux doesn't work on my machine. It have nice debugger, but I can't run it.

Maybe I'm wrong, but for success in rev-engineer this game you need at least a team of 4-5 experts in rev-engineering. It's a not one-man job.
So basically either Polyphony makes GT1 open source or AI gets so amazing at coding that it is able to rev-engineer the whole game by itself.

Both options are a pipe dream for now lol


EDIT: maybe a petition for Kaz (or Sony) to make GT1 open source?
 
Last edited:
EDIT: maybe a petition for Kaz (or Sony) to make GT1 open source?

That's making the big assumption that Sony and / or Polyphony actually still have the source code for GT1. It's been useless for 25 years, and was written on entirely different computers and OS than they use today. Someone would have had to have made a concerted effort to keep that specific version of the code somewhere as a backup for all of these decades, despite it not having any real value to the company due to the game being superseded by its sequel after two years, and most likely not being compilable with modern tools.

There's also the much larger issue - why would Sony want to let other people make their own derivative works using Sony's intellectual property? It doesn't make them any money, and risks hurting the GT brand. This is the hurdle which kills off official mod support in most games, never mind freely giving away all of the hard work it took to create the game too.
 
I think it totally makes sense to make GT1 open source (provided that the source code is saved).

Sony can't make money on GT1 because of the licensing issues for the cars (maybe even some songs). That is why we didn't get GT games on PS1 mini or the Classics store on PSN.

I don't see how GT1 being open source would hurt Sony or Gran Turismo. It's an almost 30 year old game that can't even be commercialized anymore due to legal (licensing) issues.

In fact, this could be a cool marketing move and could invite some veteran players back to the franchise, as well as some new players who could become new fans of the franchise.
 
I don't see how GT1 being open source would hurt Sony or Gran Turismo. It's an almost 30 year old game that can't even be commercialized anymore due to legal (licensing) issues.

Sony don't want new fans of GT1, they want new fans of the game they're actually selling. Allowing other people to make their own variants of Gran Turismo also means having their very valuable trademark attached to products completely out of their control. Imagine if someone used the source code to make a version of the game where you score points for running over kids or something, I seriously doubt they'd want that associated with the GT name. Even just a badly-modified version which crashed frequently would reflect poorly on their brand.

It's also not just about not hurting them - they're a business, they'll only do what makes money. Spending the money to dig out old source code and release it for the goodwill of what is realistically maybe a couple of hundred people is absolutely not worth it for them, even ignoring the issues above. It's also source code that they spent of a lot of money to create, so giving it away for free doesn't add up.

There's also the point that the source code is technically useless to the public, as the Sony SDKs required to build it are not freeware nor have they ever been released to the public. Even if they were, there is no way to run a modified game on a standard Playstation console. For a source release to have any real utility, Sony would need to be implicitly endorsing pirating their SDKs and bypassing the copy protection on their consoles or running their games on other companies' hardware, all of which are the direct opposite of what they want people to do.

All of this is why you don't normally see source code releases for games in general. It provides a long list of issues and liabilities for the company, and basically nothing in the way of tangible benefits. We're frankly lucky that Sony haven't issued any cease and desist demands against existing GT mods, never mind supporting them in any way.
 
Sony don't want new fans of GT1, they want new fans of the game they're actually selling. Allowing other people to make their own variants of Gran Turismo also means having their very valuable trademark attached to products completely out of their control. Imagine if someone used the source code to make a version of the game where you score points for running over kids or something, I seriously doubt they'd want that associated with the GT name. Even just a badly-modified version which crashed frequently would reflect poorly on their brand.

It's also not just about not hurting them - they're a business, they'll only do what makes money. Spending the money to dig out old source code and release it for the goodwill of what is realistically maybe a couple of hundred people is absolutely not worth it for them, even ignoring the issues above. It's also source code that they spent of a lot of money to create, so giving it away for free doesn't add up.

There's also the point that the source code is technically useless to the public, as the Sony SDKs required to build it are not freeware nor have they ever been released to the public. Even if they were, there is no way to run a modified game on a standard Playstation console. For a source release to have any real utility, Sony would need to be implicitly endorsing pirating their SDKs and bypassing the copy protection on their consoles or running their games on other companies' hardware, all of which are the direct opposite of what they want people to do.

All of this is why you don't normally see source code releases for games in general. It provides a long list of issues and liabilities for the company, and basically nothing in the way of tangible benefits. We're frankly lucky that Sony haven't issued any cease and desist demands against existing GT mods, never mind supporting them in any way.
While I appreciate your constructive thoughts, I have a completely different perspective on this.

Sony can't make money on GT1 anymore so there is no loss of potential revenue, hence, "giving it away for free" as you have pointed out, is not so outrageous in this context.

I would agree there might be some costs related to restoring the original GT1 source code but we don't know the amount (it could be negligible if it was properly secured). This cost could be compensated with old and few fans (re)discovering the franchise and buying the modern game.

I don't see a problem for open sourcing SDK for a 30 year old console either...

I mean, for all practical purpose you are probably right and Sony will never do that (that's just not something big companies like to do), I just think it could be done with some effort and it wouldn't be a big deal (in terms of all those corporate related stuff).
 
I mean, for all practical purpose you are probably right and Sony will never do that (that's just not something big companies like to do), I just think it could be done with some effort and it wouldn't be a big deal (in terms of all those corporate related stuff).

Yeah, if it wasn't for the big companies involved it'd all be nice and easy to be honest, like when Lucasarts were closing down and someone simply uploaded the source code for two of the Jedi Knight games to Github because nobody was left to stop them. I'd love to see source releases for as many games as possible, my point here is basically just that big companies never do it because there's very little incentive for them to do so, and plenty of risks for their brand. From the point of view of a fan they're missing out for sure.
 
Howdy, I've done a fair bit of game research/patching/romhacking/etc in my time, and I wanted to contribute some meta-perspective to hopefully help drive peoples' spirits up a bit. Excuse the super long post, and consider showing this to your reverse engineer pals if you think it's interesting. Okay, here we go:

First off, one huge rule that's given me a lot of success over the years is that, not joking, you have to believe in yourself! It's simply too easy to sit and make up reasons that a romhacking goal isn't possible, as opposed to planning+forging your way forward until you physically hit a roadblock. You have to practice thinking positively and imagining new outcomes, even if it's unpopular or whatever. This is a major separator between folks who do and don't move the needle, in my experience.

Seriously, self-doubt will set a ceiling on what you can achieve MUCH more quickly than even your current skill level will. Skill can and will grow as you do more; you'll never regret practicing growing skills instead of so-called 'learned' cynicism!

On group sizes: I work alone on my projects usually (after coming up to speed in a tight 3ish person group as a teen) and find that it's actually better than working with a team much of the time. If you've got the brain for it, having a whole system stuffed in your head can be a lot better than the slow process of technical communication with other people. If you reach out to a group and nobody has an answer for you, you actually run a way higher risk of thinking something is fully impossible (especially because of how powerful social influence is for humans). If you run into that situation alone enough times though, you'll actually start to develop some siiick skills that let you hurdle over/smash apart entire categories of roadblocks instead. While not made by a single person, I always love to point out that Banjo-Kazooie and other high-end Rareware games of the 90s were all made on a countryside farm, without internet access!

Planning and thinking are actually /more/ important than the actual work you do with your mouse and keyboard. A lot of the process of romhacking involves wrapping your head around what you're looking at to begin with. Then you have to take time to reimagine the overall system design to include the elements you want, then finally you can actually start taking steps toward programming/implementation. Infamously, having source code often does not make this much easier in reality, as even professional programmers need time to learn how to work with unfamiliar source code. (Hex-Rays/Ghidra can often produce more modern, sane representations of scrappy 90s C code (and even handwritten assembler) anyway..!) This plan => execute process very closely mirrors the preproduction => production process that cleanly-developed games follow. Avoid overlapping core research with core development!

Remember to assess your selection of tools properly and fully-- e.g. in this case, PSX debugging and extensive logging are both trivial to do these days, even on real hardware (thru expansion ROMs like UNIROM with debugging shells-- yup, you can use your legitimate CD-ROMs!). Also make sure you take time to read old primary technical sources, and prioritize what they teach you over common/sensationalist information which might lead you far astray from the truth. Such sources can also help you understand the mindset and vibe of the programmers, which is useful for understanding peoples' design choices.


Polyphony did a legendary job on many, many games. And, they are humans. All programs are designed and laid out by humans, in a way that makes sense to those humans. Even CPU instructions have a human element to them, being that the CPUs themselves are also structures designed and laid out by humans. Snarky points about future AI-designed systems+chips aside, when it comes to RE, it's important to remember each layer of complexity was designed by people like yourself-- not some sort of inscrutable heavenly being!

If you break things into pieces over and over you'll end up with a stepladder directly to your goals, when it comes to these things. The only time you should pause for cynicism is if you legitimately can't find the path between two of the steps toward your goal, or if you need to second-guess plans that didn't work as expected.


I'm personally in the process of circling GT1 and kicking the tires so to speak, sizing up if I want to try going after some minor goals like replacing the soundtrack (has already been done but sounds like a fun drop-in point nonetheless), messing with compressed code, etc. To me, making a version of a game that's slightly more to my taste is a way of having a no-frills direct talk about technology with its creators, a talk based in absolute ground truths about the works that they've created. A type of interaction and introspection on sources more accurate than even the programmers' now-27-year-old memories.

Speaking technically: There's a lot of room to jam code into almost any PS1 game, you just have to think out of the box and stay in sync with how your particular title works. As an example, there's like several entire kilobytes free before the usual PS1 executable load address. Also GT1 is overlay-heavy already, so your flecks of patch code can be dynamically-loaded overlays too, no? For re-injection of modified stuff, you can often just tack data onto extra LBAs at the end of the disk and then patch up relevant code to look at that new location. (if otherwise-valid data became larger after recompression, for example). There's no need for a full decompilation to achieve most goals, just careful patching and strategy to live alongside the existing code and data. (Not that a full decomp wouldn't be cool!) I don't want to go on too long about this since I generally wanted to talk shop and theory (and am still learning GT1's structure), but figured it'd be good to offer some loose tech theory.

You don't have to perfectly obey the existing programming to achieve your goals successfully, you just need to work politely and subtly alongside it. Final Fantasy VIII was practically hacked into English using GameSharks since Square JP wouldn't trust others with their code. Game porters in the 80s were often given nothing more than a floppy/cart with the existing compiled game on it to work with-- and often achieved direct ports nonetheless. Someone has always made ends meet in a harder situation, or at a grander scale. Sure, OP's examples simply aren't all achievable, but their mind is actually 100% in the right place.

At the end of the day, the whole game is a ~5.5 gigabit volatile hunk of data. It's not made of hardware gates and wires, nor gears pistons and belts. There's a finite number of bytes with a finite number of purposes each, being executed on a very average computer that tens of thousands of people all separately learned to program. Each piece of it makes human sense, and systems can be designed alongside each piece to reengineer them as needed.

Phew, that's all. I just get bummed out when people say broad swaths of things I've literally achieved solo are, erm, not possible? Like, you can do it! I believe in you! And fans of the games deserve the positivity too! OP is very on-point keeping his mind open, and the combination of that with technical ability and confidence is one of the most powerful forces in the universe. Heck, it's the force that created the games themselves! ^_^
 
Back