mholeys / roadtrip-choroq-tools

RoadTrip Adventure / ChoroQ 2 HG model/texture extractor
3 stars 0 forks source link
choroq playstation-2 playstation2 road-trip-adventure

Road Trip Adventure / ChoroQ 2 HG extraction tools

This is a set of tools used to extract the data from the PS2 game Road Trip Adventure (UK/EU) / Everywhere Road Trip (US)/ChoroQ HG 2 (JP) チョロQ HG 2 - written in python.

This has been tested with only the EU/UK version of the game, as this is the one I have. I have not really tested this with other games in the ChoroQ series, but after a quick look the files seem very different between games. It should also work with the US/American version, and the JP/Japanese & KR/Korean version, as the text is the main difference.

Originally only wanted to create a tool to extract the car models, and textures, but the other files for the game are very similar and some data can be extracted from them as well. Building on my understanding of the car file format I have expanded this to work with the other files.

Features

Currently it is possible to get all field (FLD/xxx.BIN), course (COURSE/Cxx.BIN), action (ACTION/Axx.BIN), and car models (CAR{0,1,2,3,4,S}/Qxx.BIN). The field/course file format are not fully understood, but the model, and most of the textures can be extracted (if a texture fails to be understood the rest of the textures usually fail). It is possible to get the mini-map model, and some level extras such as doors/barrels. I have not worked out how textures map to meshes, and so the field/course model will be untextured, the cars have 1 texture.

Documentation of the file formats below are still being worked on, and the best source of info is within the code.

Course/Field file format

The course/field/action files contain multiple sub-files:

Car model file format

The car file format is the most understood, and it is possible to get the car body model, texture, as well as its accessories. Sub-File structure:

Extracting car models

See the car-extractor.py file: python car-extractor.py <input folder> <output folder> [makedirs] [type]

e.g to make PLY files from the CAR0 folder, with subfolders for each car

python car-extractor.py CAR0 ~/cars 1 2

e.g to make both OBJ and PLY files from the CAR0 folder, directly in the ~/cars folder

python car-extractor.py CAR0 ~/cars

e.g to make OBJ files from the Q00.BIN car

python car-extractor.py Q00.BIN ~/cars 1 1

Extracting Fields/Courses:

While the code will get all the model information, it creates an odd bit of model that connects to the 0, 0, 0 point. I think this is due to the last part of the model being different, but I have not attempted to parse this section differently. If you are using the model, I would suggest removing this last mesh. See the choroq-extractor.py file: Basic usage python choroq-extractor.py <input folder> <output folder> [type]

python choroq-extractor.py E:/ ~/road-trip/

e.g to make OBJ files from road trip disc

python choroq-extractor.py E:/ C:/road-trip/ 1

e.g to make PLY files from road trip disc

python choroq-extractor.py E:/ C:/road-trip/ 2

Experimental grouped option: This should link all meshes by their texture, (not prooven) making texturing quicker, this will produce less files and might run quicker. The format might not work in all obj compatible programs.

python choroq-extractor.py E:/ C:/road-trip/ 3

Demo

Mostly textured world of the RoadTrip Adventure game in 3D Sandpolis from RoadTrip Adventure game

Information sources:

Thanks: