Initial D Special Stage is a port of the popular arcade game released by Sega. There are English releases of the arcade versions, but none of the home versions have ever been released outside of Asia. This is too bad, since Special Stage was a great port considering the hardware limitations of the PlayStation 2 (the arcade version’s hardware uses TWO video processors and has 8 times more video memory than a PS2!). Nevertheless, I’ve decided to start work on a translation patch for this game. Yes it’s a racing game and the text is probably not that important to read, but it can be challenging to navigate the menus that are entirely Japanese.
There are at least three versions of the games in existence.
- v1.01 – Original Japanese release (SLPM-65268, released June 26, 2003)
- v2.00 – Japanese re-release under “PlayStation 2 The Best” line (similar to a “Greatest Hits” release) (SLPM-74420, released February 26, 2004)
- v?.?? – Original Asian release (SCAJ-25008, release date unknown)
All versions are nearly identical, but v2.00 is the only one that mentions Dolby Digital support on the back of the box. This version is ~100MB larger that v1.01 and there are minor changes present in the game’s resource files and disc structure. When my patch is released, it should work with all versions of the game.
The game stores files in fairly simple file formats and doesn’t use compression for anything other than audio. ADX files are used to store resources (textures, audio, 3D models, etc). PAC files are stored within the ADX files and contain textures and other assets. Textures are stored in .GIM files using either 8bpp (256 color) or 4bpp (16 color) format. Both formats’ use a 32-bit RGBA palette with a 0-128 range alpha channel. Most of the 4bpp textures follow the same format, but some are stored differently in a format I don’t understand. This doesn’t really matter because the images that need to be translated are all in the normal 4bpp format as far as I can tell. 8bpp images are swizzled and must be de-swizzled before being converted to PNG. 8bpp images also have weird palettes that have to be filtered using a special algorithm (admitedly I don’t understand the algorithm, but the palette is stored this way to improve performance in-game). Japanese text can be found in text files, but a conversion table will likely be needed to read this since it isn’t encoded using standard shift-jis. I haven’t looked into the text yet.
I’m writing a few programs to convert .gim textures and extract/create .pac files. Since ADX files are used in other games, extraction and creation tools already exist and are compatible with this game. gimtool will handle gim files by converting them to and from standard PNG files that can be edited using Photoshop. The extractor is working now with all 8bpp textures and most 4bpp textures, but texture replacement isn’t ready yet. One issue I’ve run into with the extractor is that Photoshop doesn’t support index-color PNGs with 8bit alpha channels. RIght now the tool will export full 8bit RGBA PNGs (not using indexed colors), but the PNGs will need to be converted back to the correct indexed format to be inserted back into the gim.
pactool will handle .PAC extraction and building. Extracting and building is fully functional and has been tested by repacking several .PAC files. The game loaded the re packed .PAC files without any issues :).
My next college semester will begin soon so I will have less time to work on this, but I’m hoping to progress towards a release some time in the near future. The conversion tools will be open-sourced when the patch is released. This will be a challenging project, but it’s definitely doable.