ATV Quad Power Racing 2
|ATV Quad Power Racing 2|
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.
<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>
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. :)
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
The elf file. The game executable.
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\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.
- 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 places 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.