If you appreciate the work done within the wiki, please consider supporting The Cutting Room Floor on Patreon. Thanks for all your support!
🎄 Merry Christmas, TCRF! 🎄
This article is marked as NSFW!

ATV Quad Power Racing 2

From The Cutting Room Floor
Jump to navigation Jump to search

Title Screen

ATV Quad Power Racing 2

Developer: Climax Brighton
Publisher: Acclaim Entertainment
Platforms: PlayStation 2, GameCube, Xbox
Released in US: January 14, 2003 (PS2), January 22, 2003 (GCN/Xbox)
Released in EU: February 28, 2003


DevTextIcon.png This game has hidden development-related text.
DebugIcon.png This game has debugging material.


And you were just a scroll away from being fired too...
Oh dear, I do believe I have the vapors.
This page contains content that is not safe for work or other locations with the potential for personal embarrassment.
Such as: It’s a Climax game. Do you need me to explain more?

ATV Quad Power Racing 2 is, as you might have guessed, the sequel to ATV Quad Power Racing, albeit developed by a different studio.

This page was originally created by TCRF user Drebin, one of the game's programmers, so this page contains some commentary from him.

USER.XML File

Contains profanity.

<Root FileVersion="1.0000000" mRaceIntro="1" mUseArchive="1" mCountdown="1" mFuckDuncan="0" mProfileBars="0" mEditorMode="0" mEnableLogging="0" 
mNumHumanPlayers="1" mNumAIPlayers="5" mTrackType="dunes1" mNumLaps="20" mTimeLimit="0.0000000" mReplay="0" mShowCheckpoints="0" 
mAttractModeTime="30" mTitleScreenTime="5" mRespotsOn="1" mUseMemCards="1" mPlayMovies="1" mRaceMode="0" mGameMode="0" mUseRaceBalancer="1" 
mFakeProgression="0" AndyTest="0" mPad1LStick="None" mPad1RStick="None" mPad2LStick="None" mPad2RStick="None" mPad2Start="None" 
mDemoMaxTime="100" mDemoTrackRotate="0" mBikeAllocMethod="0" mPlayerIdleTime="300" mExitOnIdle="0" mDisableProfiles="0" mDisableReplays="0" 
mInactivityTimeout="880000000" mGameRegion="Twats">
   <Player1 mVehicleType="Bandit" mRiderType="doug_gust" mGridStartPosition="1" mHasCamera="1"/>
   <Player2 mVehicleType="Blaze" mRiderType="doug_gust" mGridStartPosition="2" mHasCamera="0"/>
   <Player3 mVehicleType="Dimension" mRiderType="Devil_Girl" mGridStartPosition="3" mHasCamera="0"/>
   <Player4 mVehicleType="Nitro" mRiderType="Doug_Gust" mGridStartPosition="4" mHasCamera="0"/>
   <Player5 mVehicleType="Nitro" mRiderType="Jasmin_Plante" mGridStartPosition="5" mHasCamera="0"/>
   <Player6 mVehicleType="Skyline" mRiderType="Jason_Luburgh" mGridStartPosition="6" mHasCamera="0"/>
   <Player7 mVehicleType="Dimension" mRiderType="Jeremiah_Jones" mGridStartPosition="7" mHasCamera="0"/>
   <Player8 mVehicleType="Charger" mRiderType="Shane_Hitt" mGridStartPosition="8" mHasCamera="0"/>
   <DefaultPlayer mVehicleType="Challenger" mRiderType="Doug_Gust" mGridStartPosition="8" mHasCamera="0"/>
</Root>

Developer Comments

This XML file was intended to provide a set of easily tweakable parameters for the game.

You can edit this file and fire up an emulator, and it'll reflect the changes you make. A lot of the options are self-explanatory. Here's some of the weird ones:

  • mFuckDuncan - The UI programmer for the early weeks of the project was named Duncan. The lead programmer of the project (Matt) added this to skip the frontend, so skipping all of Duncan's work. Hence the name. Duncan resigned early in the project, and I was hired to carry on his work after he left. I remember the lead programmer commenting to me that he actually wrote that code after they confirmed that they hired me, but he decided to go with "mFuckDuncan", rather than the slightly odd welcome to a new employee of "mFuckGavin".
  • mUseArchive - We supported loose files during development. We ship with an archive. The .BAD and .BAH files on the filesystem root are the archive. BAH is the archive header, detailing the contents of the files within.
  • mGameRegion="Twats" - This was the region code we used for the United States. British humour at its best. :)

Source Code

Managed to find this. It'll be helpful if you want to play with these options:

	b32 mUseArchive;						//< TRUE to use the resource archive, FALSE to use individual files
	b32 mFuckDuncan;						//< Bypasses front end and sets up race description from a file
	b32 mProfileBars;						//< Enables CPU/GPU profiling bars
	b32 mCountdown;							//< Whether or not to perform a countdown
	f32 mAttractModeTime;						//< timeout for attract mode
	b32 mShowCheckpoints;						//< Shows checkpoints and respot boxes
	b32 mRespotsOn;							//< Whether the rider will get respotted from being too far from track
	b32 mUseMemCards;						//< Whether or not to check for mem cards on startup
	b32 mPlayMovies;						//< Whether or not to play intro movies
	b32 mUseRaceBalancer;						//< TRUE to enable race balancer - set to FALSE when setting up AI node speeds
	b32 mRaceIntro;							//< Whether or not to play the race intro
	b32 mAndyTest;							//< my test stuff
	b32 mFakeProgression;						//< Fake progression in arcade,career and FSchallenge modes
	b32 mTimeTrialAI;						//< ai time trial
	b32 mDemoTrackRotate;						//< tracks rotate in sequence in demo mode
	f32 mDemoMaxTime;						//< max time for a demo to play
	s32 mBikeAllocMethod;						//< method for allocating bike types
	f32 mInactivityTimeout;						//< when a player doesn't move for this amount of time they're considered idle
	b32 mExitOnIdle;						//< should we drop to the front end when idle?
	eGameRegion mGameRegion;					//< Region the game is to be played in
	b32 mRunFastest;						//< ignore framerate lock
	b32 mNoSound;							//< turn off sound loading
	b32 mEnableLogging;						//< Enables logging of all DebugPrintf output to an ATV.log file
	b32 mForceWidescreen;						//< Forces widescreen for devkit test porpoises
	b32 mUseShocks;							//< Turn off the fucking vibration. Ahhh, peaceful...
	b32 mRenderWireframe;						//< render wireframe world overlay
	b32 mShowFightingStats;						//< Show the fighting stats in the HUD
	s32 mNumCareerLaps;						//< num of laps in a career game
	b32 mDebugVisiNinja;						//< TRUE to show VisiNinja debug stuff (occlusion info and boxes)
	b32 mNoNinja;							//< turns off the ninja
	b32 mRenderCollSkin;						//< Whether to render the world collision skin or not
	b32 mNoReplays;							//< disables replay options

SLUS_205.70

The elf file. The game executable.

Developer Comments

Disconcertingly, there are an insane amount of error handling strings in the shipped elf file. A lot of these should have been asserts, and compiled out of the shipping game.

  • Init/Goat - This was the name of the texture we'd use whenever encountering missing assets. It was a crudely-drawn cartoon of a goat.
  • FrontEnd\Toblerone1
  • FrontEnd\Toblerone2
  • FrontEnd\Toblerone3 - The rotating displays in the frontend which show player records were called "toblerones" internally. After the chocolate. Their rotation as it goes through the records looks a little like the chocolate container being rotated.
  • mNoNinja
  • mDebugVisiNinja - The lead programmer of the project came up with an automated system for "visiboxing" a level. This process used to be done by hand by the designers, to manually place boxes for certain areas as to occlude large pieces of geometry out of scenes, that we don't want to consider for rendering. The automated process made use of the AI racing splines, and figured out these boxes in automated fashion. This feature is probably usable if enabled in the USER.XML file.
  • devkit host0: teststation - The game did support the PS2 test stations during development. The really horrible ones where you had to use a bootstrap CD-ROM which ran a console-app-looking thing - and then you could connect from your PC to run the game. I forget if it was limited in some way, such as running with a little less memory.
  • UK Europe Twats - The three allowable settings for mGameRegion.

Random other strings:

  • Failed to fade to sample %i in state %i transitioning to state %i - dunno why
  • Dodgy magic '%s' in model file '%s'!
  • Failed to alloc face-me mem for '%s'!
  • Dodgy Magic '%x' in ink file '%s'!
  • VIF Stalled for more than 2 seconds. Waiting for VIF1. Needs Texture %d. At Texture %d. But what the Fuck? THe VIF claims not to be stalled.
  • Attempt to use spotlight with no object position! Eh? What kind of light are you supposed to be?!
  • Failed to open '%s'! Wank!
  • Unsupported zed mode!
  • Dodgy bog standard (Jesus, Duncan!) '%s' in '%s'!
  • Format conversion not supported for bog texture %s!
  • Can't instantiate cSkeletonManager without a skeleton to manage. Waste of effort.
  • Animations\Generic\scratch_arse