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.
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.
The course/field/action files contain multiple sub-files:
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:
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
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