TL;DR - if you are not interested in a brief explanation of the Combined Disc, scroll down to the Download & Instructions section for a download link and setup instructions.
Gran Turismo 2, other than being one of the more fondly remembered installments of the franchise, has one unique aspect not seen in any other Gran Turismo to date – it’s split between two discs.
The amount of added content in comparison to the first game was so big that Polyphony could not fit it on a single 660MB CD, and therefore the game has separate discs for Arcade and Simulation/Gran Turismo Modes.
As we are reaching Gran Turismo 7 release date (at the time of writing this post, it’s scheduled for release next week), I thought – can we do any different? Is it possible to combine both discs and show how would the game look if PS1 discs could store more data?
To show why Polyphony was forced to split the discs, it’s worth noting what each disc includes. Unsurprisingly, the majority of the data is shared, there is not much data unique to each disc.
Data on both discs:
- Full game code, including Arcade/Simulation specific code overlays.
- All in-game assets – cars, sounds, localization texts, etc.
- Main menu assets.
- Arcade Mode assets (even on the Simulation Disc!).
Data exclusive to the Simulation Disc:
- Simulation Mode assets.
Data exclusive to the Arcade Disc:
- FMVs – intro, credits, Arcade Mode track previews.
As you can see, the Simulation Disc can be considered more “complete” of the two, as it contains assets from both modes. In practice, with a Simulation Disc, all it takes to get to Arcade Mode is a simple edit of the Main Menu code to load Arcade Mode instead of Simulation. As I teased on Twitter, I had a proof of concept of this change back in late August:
Hold up... this is *not* a Gran Turismo 2 Arcade Disc pic.twitter.com/EGjDjTNNpe— Silent (@__silent_) August 28, 2021
For the Combined Disc to be complete, we need to do the following, using the Simulation Mode Disc as a base:
- Add missing files from the Arcade Disc
- Add a new main menu entry to start Arcade Mode
- Modify textures and localizations to refer to Arcade/Sim Mode instead of Disc 1/2
The first part is easy – with MKPSXISO1 I can just unpack both discs and then repack the Simulation Disc with Arcade’s
This results in an image that is way too big to fit on a physical CD but is still technically valid.
Thus, even though no real PS1 game was like that, emulators are fine with it:
For menu entries, adding a new menu action isn’t much harder than modifying the existing one. For comparison, that’s all the code required to switch from the main menu to Arcade/Sim Mode screens:
The initial implementation used two identical Start Game buttons, just recolored from red to blue, to match the colors of the discs:
However, later I found out that those were in fact buttons from different languages (e.g. US English and UK English), and so this would have broke when porting the mod to the PAL version – for example, had this been used in the PAL version in English, the second Start Game would’ve shown in French. To do it properly, I dissected the texture atlas format used by the game to pack all menu buttons into a single texture. The original atlas is a TIM texture packing individual textures with their palettes (seen as “garbage” on the bottom):
To tackle this, I extracted the atlas definitions from the executable and developed a tool to cut them into individual images:
Then, once the packer tool was made, Ash_735 could bring the mod to the next level by creating proper Arcade Mode and Simulation Mode buttons. When packed back to a new atlas, the results are impressive. The layout is entirely unlike the original packing, but this doesn’t matter since atlas definitions are updated either way:
The in-game result, combined with the removal of a “SIMULATION MODE DISC” from the menu background, could likely pass as an official version of the game:
Fun side note – the color coding of red Arcade and blue Simulation buttons matches both the appearance of CDs (as seen above) and the demo versions of GT2:
Gran Turismo 2 Combined Disc can be downloaded here:
Download Gran Turismo 2 Combined Disc
The modification is compatible with all game versions, except for NTSC-J v1.0. Compatibility with mods has also been verified, Combined Disc was verified to work fine with those mods (and probably more):
Combined Disc is also compatible with RetroAchievements! Those using it for their GT2 playthroughs may safely move to using the Combined Disc and achievements will continue to work as expected.
On real hardware:
- PSP/PS Vita can use the full version of the mod in PBP format.
- On PS1, the full version is compatible with XStation and PSIO. You should opt for the lightweight version (without FMVs) only if burning the image on a physical CD.
If you are using cheat-based mods (like all my other GT2 mods), stick to codes created for the Simulation Mode. All my mods have been verified with the Combined Disc and they are expected to work fine.
Due to the nature of this mod, the setup process is slightly more involved than the usual:
- Download the setup script. Do note that GTVolTool used by this script is Windows only.
- Install Python 3.8.0 or newer. If you don’t have it installed yet, Python can be downloaded from here:
- Standalone: https://www.python.org/downloads/
- Microsoft Store: https://www.microsoft.com/p/python-310/9pjpw5ldxlz5
setup.pyby double-clicking it like any other executable file. If due to your local setup the script does not run, launch it with
python3 setup.pyin the Command Prompt.
- Follow the on-screen instructions. The script will bring up a system file picker to select files by default, but this may be changed by starting the script with a
-tparameter. Remember that you may easily “type” the full path to the file by dragging it to the command line window - it’s useful for easily putting full paths to the Arcade and Simulation discs.
- Wait for the setup to complete. Please be patient - it takes a while, as it needs to repack discs and the game assets.
Now you see why I spent so much time perfecting this tool. ↩