If you appreciate the work done within the wiki, please consider supporting The Cutting Room Floor on Patreon. Thanks for all your support!

Cars 2 (Wii)

From The Cutting Room Floor
Jump to navigation Jump to search

Title Screen

Cars 2

Developer: Avalanche Software
Publisher: Disney Interactive
Platform: Wii
Released in US: June 20, 2011
Released in EU: June 23, 2011


DevTextIcon.png This game has hidden development-related text.
RegionIcon.png This game has regional differences.
PiracyIcon.png This game has anti-piracy features.


Cars 2 is a game based on the Disney/Pixar film with the same name. Surprisingly, this video game adaptation was a good one not just trying to copy Mario Kart!

Development Files

Compilation Log?

LogWii.html is present on the root.

<HTML>
<HEAD>
	<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
	<META NAME="Author" CONTENT="Output.Wii.cpp">
	<TITLE>Debug Log</TITLE>
</HEAD>

<BODY TEXT="#000000">
<<A HREF="file://D:/dev-cars/Main/Octane/Code/Core/Genie/Platform/custom/GenieOverrides.cpp">D:/dev-cars/Main/Octane/Code/Core/Genie/Platform/custom/GenieOverrides.cpp - Genie::DiskFile::Seek(long long, unsigned int)()</A>><BR>
	<FONT style="color: #00FFFF" >[0x9106e000:0x9146dd9f]<B>    4MB</B></FONT><FONT style="color: #FFFFFF" > Scaleform</FONT><BR>
<<A HREF="file://D:/dev-cars/Main/Octane/Code/Core/Kernel/FileIO/mhal_wii.cpp">D:/dev-cars/Main/Octane/Code/Core/Kernel/FileIO/mhal_wii.cpp - MediaHAL::Write(const void *, long, void *)()</A>><BR>
	[0x9106e000:0x9146dd9f]<B>    4MB</B><FONT style="color: #FFFFFF" > Scaleform </FONT>(destroyed)<BR>
<<A HREF="file://D:/dev-cars/Main/Octane/Code/Core/Kernel/FileIO/HogThread.cpp">D:/dev-cars/Main/Octane/Code/Core/Kernel/FileIO/HogThread.cpp - Kernel::HogThread::_Read(const Kernel::EventQueueItem &)()</A>><BR>
	<FONT style="color: #00FF00" >[0x9106e000:0x91a6dfff]<B>   10MB</B></FONT><FONT style="color: #FFFFFF" > Texture</FONT><BR>
	<FONT style="color: #00FF00" >[0x91a6e000:0x91f6dfff]<B>    5MB</B></FONT><FONT style="color: #FFFFFF" > Mesh</FONT><BR>
<<A HREF="file://D:/dev-cars/Main/Octane/Code/Core/Genie/Platform/custom/GenieOverrides.cpp">D:/dev-cars/Main/Octane/Code/Core/Genie/Platform/custom/GenieOverrides.cpp - Genie::DiskFile::Seek(long long, unsigned int)()</A>><BR>
	<FONT style="color: #00FFFF" >[0x91f6e000:0x92a6dd9f]<B>   11MB</B></FONT><FONT style="color: #FFFFFF" > Scaleform</FONT><BR>
<<A HREF="file://unknown.file">unknown.file - (*0x801f7fe0)()</A>><BR>
	<B>RuntimePermanent Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>SavedGame Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>Animation Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>System Physical Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>String Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>RuntimePermanent2 Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>Perm Texture Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>Perm Mesh Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>Aurora Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>Texture Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>Mesh Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>Data Physical Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>Overflow Physical Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>Debug Physical Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>System Logical Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>Data Logical Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>Overflow Logical Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>Debug Logical Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>RuntimePermanent Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>SavedGame Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>Animation Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>System Physical Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>String Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>RuntimePermanent2 Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>Perm Texture Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>Perm Mesh Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>Aurora Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>Texture Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>Mesh Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>Data Physical Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>Overflow Physical Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>Debug Physical Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>System Logical Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>Data Logical Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>Overflow Logical Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>Debug Logical Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
<<A HREF="file://D:/dev-cars/Main/Octane/Code/Core/Kernel/FileIO/mhal_wii.cpp">D:/dev-cars/Main/Octane/Code/Core/Kernel/FileIO/mhal_wii.cpp - MediaHAL::Write(const void *, long, void *)()</A>><BR>
	[0x91f6e000:0x92a6dd9f]<B>   11MB</B><FONT style="color: #FFFFFF" > Scaleform </FONT>(destroyed)<BR>
<<A HREF="file://D:/dev-cars/Main/Octane/Code/Core/Kernel/FileIO/HogThread.cpp">D:/dev-cars/Main/Octane/Code/Core/Kernel/FileIO/HogThread.cpp - Kernel::HogThread::_FileSize(const Kernel::EventQueueItem &)()</A>><BR>
	[0x9106e000:0x91a6dfff]<B>   10MB</B><FONT style="color: #FFFFFF" > Texture </FONT>(destroyed)<BR>
	[0x91a6e000:0x91f6dfff]<B>    5MB</B><FONT style="color: #FFFFFF" > Mesh </FONT>(destroyed)<BR>
<<A HREF="file://D:/dev-cars/Main/Octane/Code/Core/Kernel/FileIO/HogThread.cpp">D:/dev-cars/Main/Octane/Code/Core/Kernel/FileIO/HogThread.cpp - Kernel::HogThread::_Read(const Kernel::EventQueueItem &)()</A>><BR>
	<FONT style="color: #00FF00" >[0x9106e000:0x9186dfff]<B>    8MB</B></FONT><FONT style="color: #FFFFFF" > Texture</FONT><BR>
	<FONT style="color: #00FF00" >[0x9186e000:0x920edfff]<B> 8.50MB</B></FONT><FONT style="color: #FFFFFF" > Mesh</FONT><BR>
<<A HREF="file://D:/dev-cars/Main/Octane/Code/Core/Genie/Platform/custom/GenieOverrides.cpp">D:/dev-cars/Main/Octane/Code/Core/Genie/Platform/custom/GenieOverrides.cpp - Genie::DiskFile::Seek(long long, unsigned int)()</A>><BR>
	<FONT style="color: #00FFFF" >[0x920ee000:0x929add9f]<B> 8.75MB</B></FONT><FONT style="color: #FFFFFF" > Scaleform</FONT><BR>
<<A HREF="file://unknown.file">unknown.file - (*0x801f7fe0)()</A>><BR>
	<B>RuntimePermanent Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>SavedGame Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>Animation Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>System Physical Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>String Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>RuntimePermanent2 Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>Perm Texture Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>Perm Mesh Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>Aurora Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>Texture Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>Mesh Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>Data Physical Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>Overflow Physical Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>Debug Physical Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>System Logical Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>Data Logical Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>Overflow Logical Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>Debug Logical Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>RuntimePermanent Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>SavedGame Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>Animation Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>System Physical Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>String Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>RuntimePermanent2 Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>Perm Texture Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>Perm Mesh Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>Aurora Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>Texture Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>Mesh Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>Data Physical Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>Overflow Physical Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>Debug Physical Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>System Logical Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>Data Logical Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>Overflow Logical Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>Debug Logical Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
<<A HREF="file://D:/dev-cars/Main/Octane/Code/Core/Kernel/FileIO/mhal_wii.cpp">D:/dev-cars/Main/Octane/Code/Core/Kernel/FileIO/mhal_wii.cpp - MediaHAL::Write(const void *, long, void *)()</A>><BR>
	[0x920ee000:0x929add9f]<B> 8.75MB</B><FONT style="color: #FFFFFF" > Scaleform </FONT>(destroyed)<BR>
<<A HREF="file://D:/dev-cars/Main/Octane/Code/Core/Kernel/FileIO/HogThread.cpp">D:/dev-cars/Main/Octane/Code/Core/Kernel/FileIO/HogThread.cpp - Kernel::HogThread::_FileSize(const Kernel::EventQueueItem &)()</A>><BR>
	[0x9106e000:0x9186dfff]<B>    8MB</B><FONT style="color: #FFFFFF" > Texture </FONT>(destroyed)<BR>
	[0x9186e000:0x920edfff]<B> 8.50MB</B><FONT style="color: #FFFFFF" > Mesh </FONT>(destroyed)<BR>
<<A HREF="file://D:/dev-cars/Main/Octane/Code/Core/Kernel/FileIO/HogThread.cpp">D:/dev-cars/Main/Octane/Code/Core/Kernel/FileIO/HogThread.cpp - Kernel::HogThread::_Read(const Kernel::EventQueueItem &)()</A>><BR>
	<FONT style="color: #00FF00" >[0x9106e000:0x91a6dfff]<B>   10MB</B></FONT><FONT style="color: #FFFFFF" > Texture</FONT><BR>
	<FONT style="color: #00FF00" >[0x91a6e000:0x91f6dfff]<B>    5MB</B></FONT><FONT style="color: #FFFFFF" > Mesh</FONT><BR>
<<A HREF="file://D:/dev-cars/Main/Octane/Code/Core/Genie/Platform/custom/GenieOverrides.cpp">D:/dev-cars/Main/Octane/Code/Core/Genie/Platform/custom/GenieOverrides.cpp - Genie::DiskFile::Seek(long long, unsigned int)()</A>><BR>
	<FONT style="color: #00FFFF" >[0x91f6e000:0x92a6dd9f]<B>   11MB</B></FONT><FONT style="color: #FFFFFF" > Scaleform</FONT><BR>
<<A HREF="file://unknown.file">unknown.file - (*0x801f7fe0)()</A>><BR>
	<B>RuntimePermanent Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>SavedGame Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>Animation Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>System Physical Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>String Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>RuntimePermanent2 Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>Perm Texture Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>Perm Mesh Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>Aurora Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>Texture Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>Mesh Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>Data Physical Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>Overflow Physical Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>Debug Physical Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>System Logical Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>Data Logical Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>Overflow Logical Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>Debug Logical Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>RuntimePermanent Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>SavedGame Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>Animation Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>System Physical Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>String Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>RuntimePermanent2 Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>Perm Texture Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>Perm Mesh Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>Aurora Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>Texture Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>Mesh Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>Data Physical Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>Overflow Physical Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>Debug Physical Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>System Logical Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>Data Logical Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>Overflow Logical Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
	<B>Debug Logical Heap Consistency Check...</B><BR>
	passed<BR>
	<BR>
<<A HREF="file://D:/dev-cars/Main/Octane/Code/Core/Kernel/FileIO/mhal_wii.cpp">D:/dev-cars/Main/Octane/Code/Core/Kernel/FileIO/mhal_wii.cpp - MediaHAL::Write(const void *, long, void *)()</A>><BR>
	[0x91f6e000:0x92a6dd9f]<B>   11MB</B><FONT style="color: #FFFFFF" > Scaleform </FONT>(destroyed)<BR>
<<A HREF="file://D:/dev-cars/Main/Octane/Code/Core/Kernel/FileIO/HogThread.cpp">D:/dev-cars/Main/Octane/Code/Core/Kernel/FileIO/HogThread.cpp - Kernel::HogThread::_FileSize(const Kernel::EventQueueItem &)()</A>><BR>
	[0x9106e000:0x91a6dfff]<B>   10MB</B><FONT style="color: #FFFFFF" > Texture </FONT>(destroyed)<BR>
	[0x91a6e000:0x91f6dfff]<B>    5MB</B><FONT style="color: #FFFFFF" > Mesh </FONT>(destroyed)<BR>
<<A HREF="file://D:/dev-cars/Main/Octane

CodeWarrior Projects

Hmmm...
To do:
Please check other regions in case they are different.

The root of the disc has two projects from CodeWarrior for building a debug build and an optimized build.

Download.png Download Cars 2 CodeWarrior Projects
File: Cars2_Wii_CodeWarriorProjects.zip (6.10 KB) (info)


Possible Lotcheck Spreadsheet

Hmmm...
To do:
Please check other regions of the game for their lotcheck sheets if possible. US was checked already.

The root of the US disc has Cars DataTitleInputFormat_US.xls, being used likely when sending the game to Nintendo for lotchecking.

Download.png Download Cars 2 Possible Lotcheck Spreadsheet
File: Cars2_Wii_US_PossibleLotcheckSpreadsheet.zip (284 KB) (info)


Uncompiled Octane File

Texture =
{
	FilePathName = "C:\depot\Octane\main\Content\Game\Frontend\fonts\sample.dds"
	ExportTextures_NumFrames = 1
	ExportTextures_TextureHasAlpha = 1
	ExportTextures_TextureHas8BitAlpha = 1
	ExportTextures_TextureWidth = 256
	ExportTextures_TextureHeight = 256
	ExportTextures_TextureFormat = "A8R8G8B8"
	ExportTextures_ActualFilePath = "c:\depot\octane\main\content\game\frontend\fonts\sample.dds"
	ExportTextures_DummyImage = 0
	ExportTextures_TextureSize = 262144
}
TexturePool =
{
	Texture "0" =
	{
		Name = "sample"
		#SourceFileName = c:\depot\octane\main\content\game\frontend\fonts\sample.dds
		#Size = 262272 Format = A8R8G8B8, Width = 256, Height = 256, Depth = 0, MipLevels = 1, ResourceType = 2d
		FileName = "sample_0.tbuf"
	}
}

Most Octane Engine files in the game were compiled but fonts.zip/sample.oct was not compiled and left compilation information.

Unused Text

Cmdline.var Comments

AI takes over control of player car right away (from Spencer)
AI always takes hint (note that AI will NOT take a drive-to-target hint if he’s driving backwards, or turboing, or in the air, etc)
tokyo c, before tunnel with hopovers
All Wiimotes must be awake for this to work.
Worlds.db is ignored now, default is 3

cmdline.var has some developer comments.

They're probably referring to Spencer Parkin, who is the associate programmer at Avalanche Software.

Data.zip

Filelist.txt

The "permanent" section is the place to put files that should only be loaded once, and they stay memory-resistent permantly after that.
this guy needs to be loaded first before geoms are loaded

In assets/data.zip, there's a file named filelist.txt.

Soundocc.txt

Sound occlusion table
material= volume factor; pan factor;
if the material is missing, it is 100; 100
 	(no volume reduction, no panreduction)

In assets/data.zip, there's a file named soundocc.txt.

File Path Strings

data_wii/sound/DIALOGRU/dialog_str.lst has a list to a ton of sound effects.

Regional Differences

The German version of the game removes the Gatling Gun sequence and an explosion from the intro. The explosion sound effect still plays however, making it seem more like a normal car crash sound.

Anti-Dolphin Code

During gameplay, Cars 2 attempts to write garbage data to lower MEM1, where important data is stored. However, it writes just enough that the data is never actually written to RAM and instead is only written to the CPU cache, which the game requests to be cleared right after. Because Dolphin does not emulate the CPU cache and instead makes all writes go immediately to RAM, the game proceeds to crash due to important data being overwritten with garbage. Dolphin's development team suspects that this behavior was purposefully implemented to target Dolphin, and implemented a hack to prevent the game from attempting to trash its own memory.

(Source: Dolphin Emulator)

Internal Project Name

The game's internal title is simply Cars.