Zuma's Revenge! (Windows)
|This page is rather stubbly and could use some expansion.|
Are you a bad enough dude to
Zuma's Revenge! is the sequel to the previous ball shooter puzzle game from PopCap, with enhanced visuals and high definition graphics!
- 1 Development Leftovers
- 2 Unused levels
- 3 Development Compilation Directories
- 4 Development Text
- 5 Unused Challenge Mode Difficulty
- 6 Debug Displays
- 7 Debug Commands
- 8 Unused Sound Effects
- 9 Unused Text
- 10 Unused code
- 11 Internal Project Name
| LevelArchive folder|
A LOT of development leftovers, including MANY levels, even from the first game!
The Spanish Mac OS X distribution has two rich text documents titled level.rtf and levels_hard.rtf in the levels directory. They have pretty much the exact same data as the English release, only changing \ to /. They were both written and modified around 3 PM on July 22nd, 2009 by mcoffey, most likely Mark Coffey.
Get screenshots of these levels in the game, check if these values are correct.
A portion of unused levels are present in the final game. As of this game, the format for the levels was upgraded, granting the ability to add general level parameters.
Boss Level Tests
Altered Level params:
|Powerups||All have frequency set to 0 and max count to 100000000.|
Development Compilation Directories
C:\Documents and Settings\jeff\Desktop\ C:\work\games\Art\ZumasRevenge\Working\ C:\Documents and Settings\Architekt\Desktop\
The PAX files have some metadata which describes part of a few directories in the game. Jeff is most likely Jeff Weinstein, a programmer of many games from PopCap; "Architekt" is his alternative name, commonly seen on forums. Guess he has two user accounts.
Some functions of the game have swears.
There's a lot of interesting strings.
Your boss DDS parameters were all reset. You should quit and restart.
A message displayed when all level managers are reloaded.
ADVENTURE STATS DO NOT DELETE.csv HEROIC STATS DO NOT DELETE.csv CHALLENGE STATS DO NOT DELETE.csv IRON FROG STATS DO NOT DELETE.csv ERROR.csv users/user%d_%s_stats.dat
Possible names for save files from beta testing.
IMAGE_LEVELS_DEBUGBOSS6PART5_BKGRND IMAGE_LEVELS_DEBUGBOSS6PART5_CHUTE1 IMAGE_LEVELS_DEBUGBOSS6PART5_CHUTE2 IMAGE_LEVELS_DEBUGBOSS6PART5_CHUTE3 IMAGE_LEVELS_DEBUGBOSS6PART3_BKGRND IMAGE_LEVELS_DEBUGBOSS6PART3_CHUTE1 IMAGE_LEVELS_DEBUGBOSS6PART3_CHUTE2 IMAGE_LEVELS_DEBUGBOSS6PART3_CHUTE3 IMAGE_LEVELS_DEBUGBOSS6PART3_CHUTE4 IMAGE_LEVELS_DEBUGBOSS6PART3_CHUTE5 IMAGE_LEVELS_DEBUGBOSS6PART2_BKGRND IMAGE_LEVELS_DEBUGBOSS6PART2_CHUTE1 IMAGE_LEVELS_DEBUGBOSS6PART2_CHUTE2
Mentions of "debug boss" textures that are not present in the final game.
Message Maybe you don't care? Unabled to load level file:
Error message when a curve binary file is missing or improperly created.
One or more of your levels is outdated. The latest version of Zuma's Revenge has a new option to control overall powerup frequency and uses a weighted system to pick the one that appears. Powerups have been disabled. Please edit your curve to fix this. This message will only be displayed once per session. The first level found with this error is:
Error message for use of an older level format.
Instantly causes a game over gameover Causes the balls to rush towards the danger point danger Restarts the current level restart Jumps to the next level, restarts current one if no more nextlevel Also jumps to the next level nl Indicate the level ID to switch to. Example: changelevel new2 changelevel Also changes level cl Displays a list of all the available levels to choose from listlevels Also lists levels ll Reparses the level xml file and restarts the current level. reload Hides all balls and pauses the game. hide Mouse cheat mode: Mouse over a ball, 0-5/DEL changes color/deletes mcheat Specify a resource XML file to load to replace existing sounds. soundres Forces the equivalent of the reverse/backwards powerup. reverse Toggles on/off the accuracy powerup. accuracy Warps to a challenge level. Specify level ID. challenge Nukes all balls and ends the level. killall Toggles if the game is paused when you lose focus. nopause Sets it so that the game thinks you've beaten adventure mode once. beatgame Unlocks this zone for play in challenge mode: the same as beating level 10 of the zone naturally. beatzone Sets the number of lives the player has left. lives Makes the game crash. crash Makes the game assert (and then immediately quit). assert Sets your score to the specified value. score For challenge mode only: Sets the time remaining IN SECONDS (will inc difficulty, can be float) time For challenge mode only: Sets ALL BUT ONE level in the zone as if it were aced (unlocks if needed) acecup For challenge mode only: Sets ALL BUT ONE levle in the zone as it were normally beat (unlocks if needed) beatcup Resets steam achievements (steam builds only) resetsteam Displays all unlocked Steam achievements. showsteam Displays all stats recoreded for this user. showsteamstats *** Command Console *** Type /help for a list of commands. ^fff71f^ctrl-UP^FFFFFF^: Scrolls the currently displayed text up a line ^fff71f^ctrl-DOWN^FFFFFF^: Scrolls the currently displayed text down a line ^fff71f^UP^FFFFFF^: Scrolls up in the command history buffer ^fff71f^DOWN^FFFFFF^: Scrolls down in the command history buffer ^fff71f^/clear^ffffff^: Clears the console ^fff71f^` key^FFFFFF^: Closes/opens this window *** Help Menu *** ^fff71f^/help^ffffff^: Displays this menu ^fff71f^ctrl-UP^ffffff^: Scrolls the currently displayed text up a line ^fff71f^ctrl-DOWN^ffffff^: Scrolls the currently displayed text down a line ^fff71f^UP^ffffff^: Scrolls up in the command history buffer ^fff71f^DOWN^ffffff^: Scrolls down in the command history buffer ^fff71f^` key^ffffff^: Closes/opens this window Commands valid in the current context: ^ffffff^: ^fff71f^ /help /clear Error: unknown command \"
Text and commands for a debug console, titled a Command Console, only present in the Windows builds. mcheat has no references to the game, making it have no effect. resetsteam, showsteam ' and showsteamstats were added in the Steam, Final, or multilingual Mac release.
Zuma's Revenge!.app/Contents/MacOS/Cheat.app %20 open \"%s\ Popcap/Zuma's Revenge!/console.rbs
Related to the debug console, but the Mac version appears to use a separate app named Cheat which isn't bundled in any way.
There's a function to convert level data.
resprops\\resprops2.txt ShaderDefaults * PSEntry=main VSEntry=main; ImageDefaults * Group= FontDefaults * Group= SoundDefaults * Group= \\ / /../ Font Sound id= alias= cols= rows= volume= tags= ; Image resprops\\resprops.txt ..\\..\\..\\..\\..\\bin\\ResourceGen2.exe properties\\resources.xml
Text for a function to convert the game's resources.
%s\\Zuma2 Crash Data SUBMIT THIS FILE ASAP %d.zip _ _%d_ ZUMA2 CRASH_ \\\\sea-jeff\\c\\dump\\Zuma2Crashes\\ \\\\10.1.2.181\\c\\dump\\Zuma2Crashes\\ %s\\%s %s Crash %d.mdmp _%d_minidump.zip crash_tmp.zip crash %d.mdmp There was a problem creating a zip file of your crash information. Please report this problem at once to email@example.com. Thank you. You appear to have crash information saved on your desktop. This is VERY important data. You should post it to burrito, or barring that, email it to firstname.lastname@example.org. After you do that, you may delete the file. The file is ON YOUR DESKTOP and named:
Text for an alternative crash reporter. Burrito is an internal forum PopCap developers used to hitch ideas/logs and also post internal builds of games; a tool is also present. SEA likely relates to PopCap Seattle, the main branch of the company.
Unused Challenge Mode Difficulty
Normally, each game of Challenge mode lasts only 3 minutes (18000 in game's internal timer value) and get gradually more difficult as they go along. However, in one of the game's XML files (main.pak/levels/levels.xml), difficulty settings for lengths through 5:20 (32000 in game's internal timer value) exist:
Single curve levels: <Difficulty time="18000" colors="6" speed=".85" startdist="50" zumascore="1550" ballrepeat="37" powerup="560" rollback="50" dangerratio="2.5" maxclumps="2" maxsingles="6" rollbackduration="0"/> <Difficulty time="20000" colors="6" speed=".88" startdist="50" zumascore="1550" ballrepeat="37" powerup="550" rollback="50" dangerratio="2.4" maxclumps="2" maxsingles="6" rollbackduration="0"/> <Difficulty time="22000" colors="6" speed=".92" startdist="50" zumascore="1550" ballrepeat="36" powerup="550" rollback="50" dangerratio="2.4" maxclumps="2" maxsingles="6" rollbackduration="0"/> <Difficulty time="24000" colors="6" speed=".96" startdist="50" zumascore="1550" ballrepeat="36" powerup="560" rollback="50" dangerratio="2.3" maxclumps="2" maxsingles="6" rollbackduration="0"/> <Difficulty time="26000" colors="6" speed=".99" startdist="50" zumascore="1550" ballrepeat="35" powerup="570" rollback="50" dangerratio="2.3" maxclumps="2" maxsingles="7" rollbackduration="0"/> <Difficulty time="28000" colors="6" speed="1.03" startdist="50" zumascore="1550" ballrepeat="35" powerup="580" rollback="50" dangerratio="2.1" maxclumps="2" maxsingles="7" rollbackduration="0"/> <Difficulty time="30000" colors="6" speed="1.07" startdist="50" zumascore="1550" ballrepeat="34" powerup="590" rollback="50" dangerratio="1.9" maxclumps="2" maxsingles="7" rollbackduration="0"/> <Difficulty time="32000" colors="6" speed="1.1" startdist="50" zumascore="1550" ballrepeat="34" powerup="600" rollback="50" dangerratio="1.8" maxclumps="2" maxsingles="7" rollbackduration="0"/>
Double curve levels: <Difficulty time="18000" colors="6" speed="0.625" startdist="50" zumascore="1550" ballrepeat="36" powerup="500" rollback="50" dangerratio="2.1" maxclumps="3" maxsingles="5" rollbackduration="0"/> <Difficulty time="20000" colors="6" speed="0.625" startdist="50" zumascore="1550" ballrepeat="35" powerup="480" rollback="50" dangerratio="1.9" maxclumps="2" maxsingles="5" rollbackduration="0"/> <Difficulty time="22000" colors="6" speed="0.65" startdist="50" zumascore="1550" ballrepeat="34" powerup="460" rollback="50" dangerratio="1.9" maxclumps="2" maxsingles="5" rollbackduration="0"/> <Difficulty time="24000" colors="6" speed="0.65" startdist="50" zumascore="1550" ballrepeat="34" powerup="450" rollback="50" dangerratio="1.85" maxclumps="2" maxsingles="5" rollbackduration="0"/> <Difficulty time="26000" colors="6" speed="0.675" startdist="50" zumascore="1550" ballrepeat="34" powerup="460" rollback="50" dangerratio="1.8" maxclumps="2" maxsingles="5" rollbackduration="0"/> <Difficulty time="28000" colors="6" speed="0.675" startdist="50" zumascore="1550" ballrepeat="34" powerup="470" rollback="50" dangerratio="1.75" maxclumps="2" maxsingles="5" rollbackduration="0"/> <Difficulty time="30000" colors="6" speed="0.7" startdist="50" zumascore="1550" ballrepeat="34" powerup="480" rollback="50" dangerratio="1.7" maxclumps="2" maxsingles="5" rollbackduration="0"/> <Difficulty time="32000" colors="6" speed="0.725" startdist="50" zumascore="1550" ballrepeat="34" powerup="490" rollback="50" dangerratio="1.65" maxclumps="2" maxsingles="5" rollbackduration="0"/>
It's possible to extend the time limit of Challenge mode by editing the "GauntletSessionLength" property in the same XML file. After 3 minutes, the balls move even faster and the colors become more scattered, so the player will likely perish very soon.
Additionally, if you change the "time" parameter to a "points" parameter, the difficulty goes up based on the player's score. This is described in a developer's comment in levels.xml:
<!-- if you use "points" instead of "time" then when the users crosses that point threshhold the difficulty increases, otherwise it goes up over time -->
Most levels have a property "drawcurve" in levels.xml. Changing them to
true will draw the ball path as a red line in gameplay. On Mac OS X, this only works with the final worldwide version of the game.
Most levels have a property "drawtunnel" in levels.xml. Changing them to
true unfortunately does nothing, as the function is stripped from the game.
Pressing CTRL-ALT-D will play a sound (c:\windows\media\Windows XP Menu Command.wav) to indicate debug key input is enabled, allowing the option of typing unique keys for debugging displays or mechanisms; another use will disable it. One was slightly altered from Bejeweled Twist.
- F3 - Draws a display for the FPS; this doesn't include mouse coordinates.
Unused Sound Effects
The loading screen has two unused sound effects.
This cool "Zuma!" title call voice wasn't used.
The scene where the frog's ship is wrecked doesn't exist, but this sound effect suggests that PopCap might have planned it to.
Kahtiki Khan Maga Maga Baron Digo Kulo Komari Cephalo Ka Zhaka Mu Drumstick Willie His Crumbleness
Each boss battle has a level name, which is never displayed. The bottom three are each section of the final boss.
Oh no! Jungle Boss is on a rampage! Blast him through holes in the curve when his shield is down. But don't let the curve reach the skull!
You've awakened Village Boss from his slumber! Use the lilypads to take shots at his heads when they glow. Be sure to keep the balls out of the skull!
Level 10 and 20 in levels.xml have a parameter called "NextLevelText", as described in developer's comment:
<!-- NEW LEVEL PARAMETER: NextLevelText - In addition to displaying this round's stats, this text will be displayed so that the user can know what to expect on the next level. -->
The idea of NextLevelText appears to be dropped early in development, as they only exist in the first two worlds. In the final version of the game, it was replaced by a boss "placard", and the accompanying text is part of the graphics.
<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Berserk mode: This is for bosses only. This lets you alter any of the boss' parameters when his health drops below a certain amount. CURRENTLY, *ALL* VALUES DESCRIBED IN THE ABOVE DDS SECTION CAN BE USED AS BERSERK VALUES. I will list extra values below when they are added. When the boss' health drops below a threshhold you specify, the values are modified by the amount you set. Like the <DDS> tag, <Berserk> tags go between a <Boss> section. Here's an example tag: <Berserk value="HPDecPerHit" amount="-5" HealthLimit="75"/> The number in /amount/ is ADDED to the present value of the variable. /HealthLimit/ indicates that if the boss previously had a health greater than or equal to this but is now less than this (i.e. you damaged him and he dropped below the number) then this rule should take effect. It only happens the first time the boss crosses that threshhold, so it won't keep constantly apply -5 to HPDecPerHit when he's below 75 health. If you have multiple entries you want affected at the same HealthLimit, just specify them with another <Berserk> tag, using the same HealthLimit value. If you wanted HPDecPerHit to change again if say the boss dropped below 30 health, you would simply add another <Berserk> tag like so: <Berserk value="HPDecPerHit" amount="-5" HealthLimit="30"/> Skip to the end of this file for a testbed boss for more examples on the <Berserk> section. SPECIAL BERSERK MOVEMENT RELATED COMMANDS: ------------------------------------------ You can have the boss switch to a different movement pattern completely upon berserking. This requires a berserk tag of this form: <Berserk value="movement" HealthLimit="<num>" .../> NOTE THAT YOU HAVE TO SPECIFY "movement" FOR YOUR VALUE TAG!!!! And you don't specify /amount/ or /override/. Set any parameters here relating to position that you normally would set up for the boss' default movement pattern. The following are the ONLY valid tags that can be used here: please note that their usage and combination are subject to the same rules as described elsewhere in this doc. startx, endx, starty, endy, x, y, x1 and y1 through infinity 2 examples: This would switch movement to rail based: <Berserk value="movement" HealthLimit="60" startx="123" endx="456" y="123"/> This would switch to waypoint based: <Berserk value="movement" HealthLimit="95" x1="175" y1="217" x2="647" y2="217"/> This will COMPLETELY wipe out the values for these previous variables (all others aren't touched, like strafe, move speed, etc etc). ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
<!-- ================================================================================================================== The following is a list of all valid parameters for bosses only: Common to all: -------------- HPDec - How much health the boss loses per shot fire. Must be multiple of 5 (each 5 indicates a 1/4 heart) HPDecProxBomb - Like above but for how much health damage a proximity bomb does. IF NOT DEFINED AT ALL, DEFAULTS TO /HPDec/! ImpatientTimer - If specified, when this time runs out the boss becomes impatient and every 10 seconds, the curve moves 10% faster, the boss starts firing faster and more often. NormalPassUnder - If true, normal bullets don't affect the boss and he can only be hit by cannon balls. BombDelay - In frames, this will make it so the proximity bomb can spawn multiple times but limited by this delay instead of the present cap of 1 per curve. X/YShake - Makes the boss shake when hit by the specified amount. Use 0 for none. CanCompact - If "true", the boss will compact the curve when he's hit HeartXOff/HeartYOff - Lets you position the location of the boss heart gauge, relative to the boss' location. TikiStunTime - how long the tiki stops moving for if hit. If this is 0, the tiki will behave like the others do in regards to getting hit. Only valid for moving tikis. tiki<num>track - if true, this tiki follows the player, otherwise it behaves like the others do tiki<num>accel - If tracking the player, this is how fast it accelerates after overshooting You can put a tiki on a rail, either vert or horiz. Just do /tiki<num>w/ or /tiki<num>h/ to set the rail width or height, respectively. To set the traveltime between the rail points, use /tiki<num>time/. You can setup the location and size of a wall by inserting any of the following tags still on the <BOSS> line, where the # symbol is an integer ID number of the wall: wall#x, wall#y - location of the wall wall#w, wall#h - width/height of the wall If you have an even number of tikis to walls, then the tikis will make the wall of the same ID disappear when hit. If you have only 1 wall but more than 1 tiki, you must hit all tikis to make the wall disappear. Specific to boss type 3 (present "Ace" style boss permutations): ---------------------------------------------------------------- USE ONLY 1 OF THE FOLLOWING MOVEMENT METHODS MOVEMENT METHOD1 StartX/EndX - The boss moves horizontally between these points. He'll randomly start somewhere in between y - He doesn't change Y coordinate, so just set 1 value for this MOVEMENT METHOD2 x1/y1, x2/y2, etc - Specify any number of paired coordinates and the boss will instantly warp between them, rather than picking a spot on a rail between endpoints. Hovering parameters and all other parameters are respected. BombFreqMin/Max - Lets you force a prox bomb to spawn every this number of balls BombDuration - Lets you override how long the prox bomb powerup stays on screen for (default is 20 seconds) minhover/maxhover - Min/max time to hover in place movespeed - How fast he moves after hovering to the next spot minfire/maxfire - Min/Max firing delay when he's hovering ONLY USE 1 OF THE FOLLOWING 3 OPTIONS: stun - how long the frog is stunned for poison - how long frog is poisoned and has mouse controls inverted for hallucinate - how long ball colors are messed up for SHIELD RELATED UseShield - If true, the boss gets a shield around him that is made of 4 quadrants that must be destroyed by a prox bomb. If false, none of the rest of the parameters matter. ShieldRotSpeed - How fast (degrees per update frame) the shield SMOOTHLY rotates ShieldPauseTime - Use ONLY this or ShieldRotSpeed: if set, the shield will sit still until this time elapse, then it rotates 90 degrees. ShieldRespawnTime - How quickly the shield segments respawn. ShieldHP - Use with the next parameter: lets you set how much HP a shield segment has. BallShieldDamage - If the above is set, then this is how much HP a normal bullet does to a shield segment. When the segment drops to 0 HP, it disappears for /ShieldRespawnTime/. So if you set this to 1 and /ShieldHP/ to 3, you'd need to make 3 hits to open the shield segment. Hitting a shield segment with a prox bomb always instantly opens it up. EnrageShieldRestore - If true, the entire shield regens instantly when the boss goes berserk DrawRadius - If true, will draw a radius that indicates a region in which, if a prox bomb goes off in, will damage the boss. minbullet/maxbullet - Min/max speed of the projectiles he fires noflip - Disables the ability to flip back and forth on the rail. subtype - Set to 1 for how boss1 works: just fires a bullet right at the player. Set to 2 to allow the boss to fire multiple bullets at the player. ONLY IF SUBTYPE IS 2 WILL THE NEXT PARAMETER, /maxbullets/ APPLY! Otherwise it'll be ignored. shottype - If you're using subtype 2, aka multishot, this lets you set a specific type of shot to do for the boss' regular attacks. Specify "any" or leave blank to allow any (randomly chosen) shot type. Specify "target" to have the bullet target the player, specify "sine" for one of the sinusoidal variants (works for both the sine types we made), and finally the new one, specify "straight" to make the boss fire a perpendicular shot that isn't targeted. NEW ADDITION: specify "homing" to make the projectile's X velocity track the player. Used in conjunction with /homingspeed/ homingspeed - A floating point value only used with homing shot type. This is how fast the missile corrects its speed. shotdelay - In MS, this is only used if firing multiple shots. This lets you make shots delayed by an amount so as to stagger them. retalshotdelay - Like the above but for retaliatory shots. EndHoverOnHit - If true, when the boss is shot, he'll stop hovering and go to his next spot flightspeed - a floating point value that overrides the speed for when the boss is hit and is fleeing immediate fleeing effect. Only valid with endhoveronhit. minflightdist - the minimum pixel distance the dude has to travel if he is fleeing in terror. Only valid with endhoveronhit. EnrageAmt - Every time the boss loses this amount of health, he increments the maxbullets amount by 1 RetalEnrageAmt - Like above but for his retaliation shot counter maxbullets - If subtype is 2, this controls how many bullets the boss will fire when he's ready to retaliation - For either subtype, when the boss is hit, this is how many shots he'll fire retaltype - Retaliation shot type: set to "sine" to make the shots be sinusoidal. If you fire more than 1, he'll alternate firing a left/right sine pattern. If anything but "sine" he'll fire right at the player. THE FOLLOWING ARE ONLY USED IF /retaltype/ IS SINE: (Only one of these sections can be valid at a time) min/maxamp - Sets the min/max amplitude for the sine wave function. The large the value, the taller/higher the sine wave goes to. Think of this as the volume of a sound wave. min/maxfreq - Sets teh min/max range for the frequency of the wave shape. Think of this as how close together the actual humps/curves of the sine graph are. Higher values put them closer together. Min/MaxSineYInc - How fast in the Y direction the bullet moves SineShotsTargetPlayer - Only use this for vertical bosses at the moment. MinSineShotTime - How long sine shots take to travel from the boss to the player, min in a range MaxSineShotTime - How long sine shots take to travel from the boss to the player, max in a range CanShootBullets - Allows the bullets to be destroyed by frog balls. haha /FrogShield/ How long the frog shield powerup will last for /BossFreeze/ How long the boss freeze powerup will last for COLOR VAMP PARAMETERS: ColorVampire - If true, he's a color vampire, if not, stop reading the rest of this. AvoidColor - If true, the player has to AVOID hitting the boss when he's displaying the color. In that case, if you hit him with the color he's showing, he can regain health, if you let him. If false, you HAVE TO hit him with the displayed color. He won't regain health no matter what. VampHealthInc - If avoidcolor, this is how much health he'll get back. It follows the same rules/restrictions as the /hpdec/ parameter. Ignored if not avoidcolor. VampColorChangeMin/Max - The min/max time for him to change colors, though he'll change after being hit regardless. ColorHelp - Only valid for color vampire bosses whom you have to hit with the showing color: this is the % chance that when hit, the next color chosen will be the same as the 2nd ball color. ================================================================================================================== -->
Information on boss parameters.
<!-- DDS tiers must be added in order. /powerpct/ is the % increase to all powerups, /slowadd/ is the extra pixel distance to add to the danger/slowdown value. The /speedpct/ value affects the cruising speed of the balls. Set it to 200 (200%) to make the balls go twice as fast...which would be dumb. Set it to 50 (50%) to make them go half as fast at cruising speed. /zumapct/ is the amount to reduce the number of points needed for zuma by. Set it to 0 to leave it the same. Set it to 50 to make the user only need 50% of the points to achieve zuma. -->
<!-- don't touch this. If you change the boss names for some odd reason though, the /boss/ tag will need to be updated. So let's just not do that. -->
<!-- PLEASE DON'T REMOVE THESE: You may update them and modify them to balance and stuff but leave at least something defined for gauntlet mode so I can continue to test it w/out crashing -->
<!-- for the PopCap logo --> <!-- "Level" for level locked, empty/undefined for none or some overidden other DRM method --> <!-- If this is true, we'll display the upsell if the user hits the exit button on the main menu, otherwise we'll just quit. Note: This will never display an upsell if you hit alt-f4 or the "x" to close the app --> <!-- Set the number of partner logos to display in the "NumLogos" field. For EACH logo, make a Logo#File and a Logo#HoldTime entry. The file entry should be a path relative to the game's .exe. DO NOT SPECIFY A FILE EXTENSION. Supported file types are: gif, jpg, jp2, png, j2k, and limited support for tga. The hold time is specified in hundredths of a second, so 100 is equal to 1 second. --> <!-- <Integer id="NumLogos">2</Integer> <String id="Logo1File">images/1</String> <Integer id="Logo1HoldTime">300</Integer> <String id="Logo2File">images/2</String> <Integer id="Logo2HoldTime">150</Integer> -->
Interestingly, the Mac version has this information in partner.xml.
Resource Generator 2
Check the Mac version.
There is code for executing a program called ResourceGen2.exe in ..\..\..\..\..\bin. It's possible it relates to resprops\resprops.txt as well as properties\resources.xml.
Internal Project Name
The internal name of the game is Zuma2, most likely Zuma Deluxe 2.
The Zuma series
|Windows||Zuma Deluxe • Zuma's Revenge!|
|Mac OS X||Zuma Deluxe|
|Adobe Flash||Zuma High Speed Challenge! • Zuma's Revenge!|
|Nintendo DS||Zuma's Revenge!|