Scenes and events are held together in a sort of heirarchy. Scenes hold the "world" of a given area, like the whole of Tailfin Pass or Radiator Springs. Then, inside the \Act\ folder ActivityInfo.dat and EventInfo.dat control individual races or event. ActivityInfo references a subdirectory where more specific information is stored. We'll use the "High Speed Heist" minigame from the campaign as an example. (more to come)
Preliminary research looks like it'll be possible to port both the scene (the "world") as well as the activities (like races) from the first Cars in to Mater-National. However ActivityInfo.dat and EventInfo.dat were not used in the first Cars, so we'll have to figure out how to reference all files the way Mater-National wants them to be referenced.
Scenes are the gameplay "world", and are of two types. The .SCN file contains information on things like lighting, where props are positioned, etc. The first is small enough to be loaded into memory all at once. These are items like the interior of Ramone's House of Art (aka the character select screen). Specialized levels, such as the highway chase mentioned above, are in this format as well, though some are stored in the \Act folder.
The second type is a streamed level. These are the larger worlds such as Radiator Springs and Tailfin Pass. The streaming information is stored in a .RES container, along with the .XNM shaders for that level. The .STR file also goes along with streamed levels, and presumably determines when to stream a given piece of the level.
What subfolders are used varies by each scene. For example, some scenes have no animated objects, so that folder may be empty or nonexistent.
- \Anim\ stores any animations for objects, such as the bouncing mattress found in the Radiator Springs drive-in theater
- \Col\ stores collision files. This includes both objects (.GOL) and the world collision (.COL)
- \Eco\ seems to store models and textures of flora (trees, etc).
- \Geo\ contains geometry. Could be props, sometimes it's a skybox
- \Pco\ is the physics collision folder. It defines how objects move that can be knocked over or broken by the characters.
- \Skies\ is where you'll find the skybox if it isn't in another folder. Bit of a roll of the dice here.
- \Tex\ stores all the textures and shaders not inside a .res file
- \Cars\Scenes\CD — Interstate 40
- \Cars\Scenes\MG_1_6TT — is the tractor tipping environment
- \Cars\Scenes\PC_LA — Los Angeles International Speedway
- \Cars\Scenes\PC_MS — Motor Speedway of the South
- \Cars\Scenes\PC_PM — Palm Mile Speedway
- \Cars\Scenes\PC_SM — Smasherville International Speedway
- \Cars\Scenes\PC_SV — Sun Valley International Raceway
- \Cars\Scenes\RR_3_7 — Rustbucket Arena #1
- \Cars\Scenes\RR_5_2 — Rustbucket Arena #2
- \Cars\Scenes\RS — Radiator Springs and Ornament Valley
- \Cars\Scenes\TF — Tailfin Pass
- \C\Scenes\FE — Front-End (user interface)
- \C\Scenes\LUI_Int — Luigi's Casa Della Tires (interior)
- \C\Scenes\MG_1_6TT — Tractor Tipping
- \C\Scenes\MG_RRR — Ramone's Rhythmic Rumble
- \C\Scenes\MG_Fillmores_Fuel_Frenzy — Fillmore's Fuel Frenzy
- \C\Scenes\OV_* — Ornament Valley
- \C\Scenes\RAM_Int — Ramone's House of Paint (interior)
- \C\Scenes\RB_* — Rustbucket arena
- \C\Scenes\RS_* — Radiator Springs
- \C\Scenes\SR_* — Stadium Races
- \C\Scenes\TF_* — Tailfin Pass
Ornament Valley, Radiator Springs and Tailfin Pass are each broken up into three parts. This is why you can't normally access the nature preserve area when driving around in Radiator Springs. It's a totally different scene. In fact if you switch its scene with, say the first race, then try to race that first race you'll find the game only has a little bit of collision data. You can't even get to the fire station. It's likely the three sections were created so that the game ran well on older systems, such as the PS2, and they just kept one version of the game that they could export to the different platforms.
- CR_01 - Radiator Springs Raceway
- CR_03 - Santa Carburera
- CR_04 - Motoropolis
- CR_05 - Autovia
- CT_MD - Cars Toon: "MaterDor"
- CT_SM - Cars Toon: "Stunt Mater"
- CT_TD - Cars Toon: "Tokyo Drift"
- HUB - Radiator Springs, Tailfin Pass and Ornament Valley (one large scene)
- JD - Mack's Challenge (a small oval track)
So far about half the resources needed to try running Race-o-Rama scenes have been extracted and discovered. The script to extract the data doesn't keep the filenames, and often the file extensions (.dat, .res, etc) are totally wrong, too. It wasn't until browsing the data in a hex editor that we knew certain files were actually others. For instance, a randomly named file had the text CR_01.toc inside its data when looking with a hex editor. The .toc files only appear in .RES containers, and the .RES container always has the same name as the .TOC file, so logically this file was CR_01.RES. Renaming it and running it through the .RES extraction script confirmed this, and by identifying textures we have figured out which .RES file corresponds to which scene.
The .COL file (collision) we figured out due to one recognizable string when looking at it with a hex editor. All .COL files have a "PADDING FOR GAMECUBE" string at the end. Unfortunately filenames are not known, so further testing is required to match the .COL file with the correct scene. We also need to locate each individual .STR (stream data) file in order to create a working scene. The .SCN file (text data that defines where props go, the sky, etc) can be either created or derived from extracted data. Props can also be figured out at a later point.