We just released a Feb. 5 '89 prototype of DuckTales for the NES!
If you'd like to support our preservation efforts (and this wasn't cheap), please consider donating or supporting us on Patreon. Thank you!

Shrek: Smash n' Crash Racing (Nintendo DS)

From The Cutting Room Floor
Jump to navigation Jump to search

Title Screen

Shrek: Smash n' Crash Racing

Developer: Torus Games
Publisher: Activision
Platform: Nintendo DS
Released in US: March 9, 2007
Released in EU: March 16, 2007
Released in AU: March 14, 2007


AreasIcon.png This game has unused areas.
DevTextIcon.png This game has hidden development-related text.
MusicIcon.png This game has unused music.


Shrek: Smash n' Crash Racing is... pretty much just a Mario Kart game, except with more Shrek.

Test Levels

Testlevel17

Shreksncr-Testmap17.png

A track in the shape of a small oval. It is possible to jump off the edge, though falling off teleports you back to the top. The only notable thing in this map is that there are untextured speed strips on each half of the map, which launch you forward when you run over one. It has no minimap data.

"ds_test" and "ds_test2"

While track data exists for these two maps, texture data seems to be missing. This means that although there is collision data, you can't see what you're running into.

It's worth noting that ds_test2 has item barrels present on the track, while ds_test does not.

dsdaytona

Unloadable. If forced to load, crashes the game. The name may indicate it likely has something to do with Daytona USA.

Unused Music

The main theme music from Mario Kart 64, listed as MARIOKART.SSEQ in the directory. This song is one of the samples from the Nintendo DS' development kit.


Development Related Files

Hmmm...
To do:
There is a lot of development txt files, probably wouldn't hurt to make a subpage

Material Attributes

matattr.txt allows the editing of material attributes. Present at the top of the text are instructions for which each attribute means:

//--------------------------------------------------------------------------------------
// Note:
//	* Friction affects sideways drift of vehicle plus acceleration & braking - default 1.0
//	* Restitution describes how "bouncy" a surface is - default 0.5
//	* Resistance slows down the vehicle when on this surface (eg. increase for deep mud to slow vehicle) - default 0.0
//--------------------------------------------------------------------------------------

BuildAudioAssets

Found in the audio directory, BuildAudioAssets.bat is a basic batch script that probably combined the split audio files into a .sdat file. This was probably left in on accident, considering MakeSound.bat is nowhere to be found ..

pushd ..\..\raw\audio
call MakeSound.bat
popd

LibContent Template

Located in the lcdata directory, lctemplate.txt is ... some sort of inhouse Torus engine template file.

//--------------------------------------------------------------------------------------
// File:		template.txt
// Description:	Defines the entities in LibContent
// Author:		mabbott
// Platform:	
//
// Copyright (c) 2004 Torus Games Pty. Ltd.
//--------------------------------------------------------------------------------------
// History:
//	2/3/2006		MA		Initial Revision
//--------------------------------------------------------------------------------------

TEMPLATE EntityAccumulator
{
	FIELDS
	{
		TSEBool	m_bAllowValueWrap = 0
		TSEBool	m_bResetAfterEqual = 1
		TSEBool	m_bSingleShot = 0
		u32		m_uLoop = 0
		s32		m_nInitialValue = 0
		s32		m_nMaxValue = 2147483647
		s32		m_nMinValue = -2147483648
		s32		m_nValue = 0
	}

	INPUTS
	{
		EntityAccumulator_Input_Reset			// Resets the current value to m_nInitialValue and the loop count will be reset back to m_uLoop
		EntityAccumulator_Input_Increment
		EntityAccumulator_Input_Decrement
	}

	OUTPUTS
	{
		EntityAccumulator_Output_Changed
		EntityAccumulator_Output_Equals
		EntityAccumulator_Output_GreaterThan
		EntityAccumulator_Output_LessThan
		EntityAccumulator_Output_Overflow
		EntityAccumulator_Output_Underflow
	}
}

TEMPLATE EntityAreaTrigger
{
	FIELDS
	{
		TSEBool	m_bActive = 1
		TSEBool	m_bInsideOutputEnabled = 0	{"Will the Inside message output get fired?"}
		u32		m_uLoop = 0
		TSEVec4	m_v4Extent = 1 1 1 0
		Entity	m_pEntity = 0
	}
	
	INTERNALFIELDS
	{
		// NOTE!!!!!!!!!!!!!!!!!!!!!!
		// This tells the AreaTrigger what class to test against.  For example, if you want to
		// test overlap against the player you override this in your template.txt to
		// "EntityPlayer"
		text	m_szOverlapTestClassName = 0
	}

	INPUTS
	{
		EntityAreaTrigger_Input_Activate
		EntityAreaTrigger_Input_Deactivate
		EntityAreaTrigger_Input_Destroy
	}

	OUTPUTS
	{
		EntityAreaTrigger_Output_Enter
		EntityAreaTrigger_Output_Exit
		EntityAreaTrigger_Output_Inside
	}
}

TEMPLATE EntityClientAreaTrigger
{
	FIELDS
	{
		TSEBool	m_bActive = 1
		TSEBool	m_bInsideOutputEnabled = 0	{"Will the Inside message output get fired?"}
		u32		m_uLoop = 0
		TSEVec4	m_v4Extent = 1 1 1 0
		Entity	m_pEntity = 0
	}
	
	INTERNALFIELDS
	{
		// NOTE!!!!!!!!!!!!!!!!!!!!!!
		// This tells the AreaTrigger what class to test against.  For example, if you want to
		// test overlap against the player you override this in your template.txt to
		// "EntityPlayer"
		text	m_szOverlapTestClassName = 0
	}

	INPUTS
	{
		EntityClientAreaTrigger_Input_ClientActivate
		EntityClientAreaTrigger_Input_ClientDeactivate
	}

	OUTPUTS
	{
		EntityClientAreaTrigger_Output_ClientEnter
		EntityClientAreaTrigger_Output_ClientExit
		EntityClientAreaTrigger_Output_ClientInside
	}
}

TEMPLATE EntityTimer
{
	FIELDS
	{
		TSEBool	m_bSingleShot = 0	// If true the timer will DELETE itself once the timer has triggerd m_uLoop times or once if m_uLoop equals 0.
									// If false the timer will only DEACTIVATE itself if m_uLoop is not 0 and the timer has triggerd m_uLoop times.
		u32		m_uLoop = 1			// The number of times the timer will time out and reset itself. NOTE: 0 means the timer will do this indefinitely 
		fp32	m_fMinTime = 5		// The minimum time to wait before triggering. If m_fpMaxTime < m_fpMinTime then the time will always be m_fpMinTime
		fp32	m_fMaxTime = 0		// The maximum time to wait before triggering
		fp32	m_fInitialDelay = 0	// The initial time to wait before starting the timer. Only happens once in a looping timer.
	}
	
	INPUTS 
	{
		EntityTimer_Input_Start
		EntityTimer_Input_Stop
		EntityTimer_Input_Reset		// Resets the current time to m_fpMinTime (or a random time if m_fpMaxTime > m_fpMinTime) and the loop count will be reset back to m_uLoop
	}
		
	OUTPUTS 
	{
		EntityTimer_Output_Trigger
	}
}