We just reached 30,000 articles on this wiki! 🥳
If you appreciate the work done within the wiki, please consider supporting The Cutting Room Floor on Patreon. Thanks for all your support!
This article has a talk page!

Zuma Deluxe (Windows, Mac OS X)

From The Cutting Room Floor
Jump to navigation Jump to search

Title Screen

Zuma Deluxe

Developer: PopCap Games
Publisher: PopCap Games
Platforms: Windows, Mac OS X, Xbox
Released internationally: December 12, 2003


CodeIcon.png This game has unused code.
SourceIcon.png This game has uncompiled source code.
TextIcon.png This game has unused text.
DebugIcon.png This game has debugging material.
RegionIcon.png This game has regional differences.


PrereleaseIcon.png This game has a prerelease article

Cactus 2.0!
This article has just been started and needs the article basics added.
Help us out and add them.

Zuma Deluxe is a ball shooter puzzle game developed by PopCap.

Sub-Pages

Read about prerelease information and/or media for this game.
Prerelease Info

UFO and Developer Credits Easter Egg

Visitors, from where?

To trigger the developer credits, hover the mouse over these buttons in this order three times in the main menu:

  1. Adventure
  2. Gauntlet
  3. Options
  4. More Games (or Help)
  5. Quit

A clickable UFO appears that takes the player to the developer credits. Disappears after a short time if not clicked.

Developer Leftovers

File Signer Scripts

pushd "%~dp0"
\bin\SignFile -setsigcode="../Zuma.exe" "partner.xml"
popd

Present in the Traditional Chinese release is a file called dosign.bat.

pushd "c:\gamesrc\cpp\circleshoot\properties"
\bin\SignFile -setsigcode="../ZumaCheat.exe" "partner.xml"
popd

The same file is also present in the original Xbox Live Arcade version on the install disc, but instead referring to different directories and a possible debug build of the game. Most likely SignFile is the tool PopCap used to sign most files for their trial wrapper to deter full game cracking.

CVS Directories

Multilingual distributions for the game on PopCap.com/depots on Steam have leftover CVS directories from version control for each level in the levels directory, only Entries.extra files have readable data, being just the location of the files.

Source Code

The Mac OS X version of the game (beyond March 31 2005) left over some (but not all) source header files and a precompiled header file in the sounds directory, how exactly the developers did such a mistake is better a unsolved mystery. A Zuma.rsrc file in the folder also exists and does not even mention Zuma in any way, but instead mentions Bejeweled 2, a title that wasn't even known until a year after.

Download.png Download Zuma (Mac OS X) Source files
File: ZumaMacOSX_SourceFiles.zip (15,471 KB) (info)


#define FRAME_W		34
#define DIALOG_W	410
#define BUTTON_W	150

There's also this in the Traditional Chinese release in a file called s.cpp.

PAK Support

The game's executable has full support for loading from a main.pak, unfortunately, PopCap never released a version of the game using one and the game does not read the music directory in a PAK and the game crashes when attempting to read the levels directory in that fashion.

Leftover Debug Variables

Hmmm...
To do:
Offsets.

Like nearly all retail PopCap games, their debug code is inaccessible from normal means or mostly flat out removed, however a few variables are actually referenced, being one that toggles collision detection, forcing a coin spawn with a given number, speeding up the game logic, forcing a stage completed transition and unlocking all stages in the practice screen.

Force Stage Complete

Hmmm...
To do:
Double check.

This overrides the level up transition after beating a level to make the game increase the stage and temple and play the stage complete animation. To enable it, change the byte at the memory address to 1.

Address Version
0042E108 1.1.0.0 / February 17, 2010 (PopCap.com, Windows WW/FlowPlay)
49E780 (Executable) MacOS (v?)

Toggle Collision Detection

While this is obviously used, the ability to toggle it is not. To disable it, change the byte at the memory address to 0.

Address Version
005A3009 1.1.0.0 / February 17, 2010 (PopCap.com, Windows WW/FlowPlay)
49E0F4 (Executable) MacOS (v?)

Color Override

Sets the maximum number of ball colors in levels, regardless of the curve description in the level configuration, change the byte at the memory address to any number greater than 0 to enable.

Address Version
005A97B0 1.1.0.0 / February 17, 2010 (PopCap.com, Windows WW/FlowPlay)
49E0EC (Executable) MacOS (v?)

Force Treasure

Forces a coin spawn at the position from the treasure point index (set to 0) for the level (the game uses 3 for each). To enable change the byte at the memory address to 1, it will immediately change back after the effect triggers. For overriding the index, add 2 (for Mac, 4) to the memory address and only edit the second byte of the value, there will only be an effect if set before enabling.

Address Version
005A97B1 1.1.0.0 / February 17, 2010 (PopCap.com, Windows WW/FlowPlay)
49E0E4 (Executable) MacOS (v?)

Unlock

Unlocks all levels and difficulties for Gauntlet mode, choosing this does not write to save data and levels unlocked by it won't have a difficulty set automatically, to enable change the byte at the memory address to 1.

Address Version
00447F4A 1.1.0.0 / February 17, 2010 (PopCap.com, Windows WW/FlowPlay)
__text:00029286 (Executable) MacOS (v?)

Speed Up

Doubles the speed of the game board logic, regardless whether already updating or not, to enable change the byte at the memory address to 1.

Address Version
00426762 1.1.0.0 / February 17, 2010 (PopCap.com, Windows WW/FlowPlay)
49E0E1 (Executable) MacOS (v?)

Unused Level Settings

Hmmm...
To do:
Figure out slowspeed.

At offset 0030C3F0 in the exe file there's a bunch of settings that are used for the levels.xml file. Some of these being unused.

Every setting here needs to be added manually (with code blocks to help you where to place them).

slowspeed   
slowfactor  
slowdistance    
danger  
mergespeed  
single  
repeat  
backfreq    
accfreq 
slowfreq    
bombfreq    
accrate 
skullrot    
score   
balls   
colors  
start   
maxspeed    
speed   
destroyall  
drawtunnels 
drawcurve   
curvecolor  
curve3  
curve2  
curve1  
curve   
powerfreq   
partime 
treasurefreq    
huerot  
reloaddelay 
firespeed

Debug Display

Zuma Deluxe Debug.png

Adding the drawtunnels property draws thick translucent lines that follow the path's tunnels. Adding the drawcurve property draws a line(s) of the path(s), and the color changes every level session.

<Graphics id="underover" curve="underover" image="underover" dispname="Mud Slide" gx="334" gy="247" drawtunnels="true" drawcurve="true">
	<Cutout image="left" pri="1" x="0" y="118" />
	<Cutout image="right" pri="1" x="311" y="0" />  
	<TreasurePoint x="76" y="431" dist1="32" />
	<TreasurePoint x="590" y="437" dist1="50" />
	<TreasurePoint x="584" y="100" dist1="60" />
</Graphics>

Powerup Frequencies

ZumaDeluxe VeryAccurate.png

Aside from powerfreq which determines how frequently a powerup appears, accfreq (Accuracy ball), backfreq (Backwards ball), bombfreq (Bomb) and slowfreq (Slowdown ball) are in the game's code and determines how accuracy/backwards/bomb/slowdown frequently appear more than other powerups. The lower the count (all 5 freq properties), the more frequent powerups spawn.

<Settings id="lvl11" speed=".5"  start="35"  score="1000" repeat="40" accfreq="1000"/>

Longer/Shorter Danger Zone Radius

ZumaDeluxe Dangerous.png

Adding the danger property allows you to edit the radius of the danger zone. The higher the count, the further the radius.

<Graphics id="spiral" curve="spiral" image="spiral" dispname="Spiral of Doom" gx="327" gy="233" drawtunnels="true" drawcurve="true" danger="10000">
	<TreasurePoint x="574" y="403" dist1="0" />
	<TreasurePoint x="75" y="400" dist1="30" />
	<TreasurePoint x="71" y="93" dist1="40" />
</Graphics>

Ball Count

ZumaDeluxe Balls.png

Adding the balls property sets the exact ball count. Completing a level with limited balls without the win condition (the number of points to fill the gauge) fulfilled wins the level regardless if the gauge was filled or not. Negative values give you an instant win.

<Settings id="lvl11" speed=".5" start="35"  score="1000" balls="2"/>

Destroy All Balls

ZumaDeluxe Destroyall.png

Adding the destroyall property (any value, including 0 and negatives) will destroy all balls in screen once the gauge has been filled.

<Settings id="lvl11" speed=".5" start="35" score="1000" destroyall="1"/>

Coin Frequency

Adding the treasurefreq property determines the chance of a coin appearing. This property uses division, and the value is the divisor (2nd number), meaning 0 as the value crashes the game because it's attempting to divide by zero. The first number (dividend) is unknown. The lesser the value, the higher chance a coin appears.

<Settings id="lvl11" speed=".5" start="35" score="1000" treasurefreq="1"/>

Acceleration Rate

Adding the accrate property (not to be confused with accfreq, which determines accuracy powerup frequency) determines the acceleration rate. Negative values freeze the balls after rolling. If the acceleration rate is in a negative value and the gauge is filled, all of the balls will roll backwards one by one.

<Settings id="lvl11" speed=".5" start="35" score="1000" treasurefreq="1"/>

Oddities

  • mmMOREGAMESBUTTON.jpg is present and used by the game yet it has an image of the word HELP, loading the help dialog.
  • The image for the button of the Adventure mode is appareantly named mmARCADEBUTTON.jpg, which contains the old name for that mode.

Revisional Differences

Only version 1.1.0.0 was released.

  • The texture for the game's loading screen was redone, to update the PopCap Games logo.
1.0 1.1
ZumaDeluxeLoadingScreen.png ZumaDeluxeLoadingScreen-latest.png
  • The texture for the game's More Games button was replaced with a proper texture, showing a popup to advertise games.

Regional Differences

In non-English versions of Zuma, some of the assets have been changed. French is used here for comparison.

Gauntlet Screen

The English version has text in all of the three buttons (more precisely "BACK", "PLAY" and "NEXT"), while in the French version, only "PLAY" has text and is wider.

French English
ZumaDeluxe French.png ZumaDeluxe EnglishGauntlet.png

Japanese Version

The Japanese version of Zuma Deluxe has the Random level locked. Furthermore, the "Locked" text layer is below the red gradient.

Japanese English (and other languages)
ZD Japanese Gauntlet.png ZD EnglishGauntlet 2.png

Furthermore, the texts below "ガントレット" (Gauntlet) that change depending on the level and mode selected (Locked, Random, etc) are images instead of strings.

Main Menu

The English version has "MORE GAMES" and "QUIT" into two squares, while the French version has both buttons in a rectangle.

French English
ZumaDeluxe FrenchMenu.png ZumaDeluxe EnglishMenu.png

HUD and Fonts

The French version of NativeAlien48 is more glossy, no font spacing after breaks, and some fonts are "flat".

French English
ZumaDeluxe FrenchStart.png ZumaDeluxe EnglishStart.png

Internal Project Name

The game is internally called CircleShoot[1]. Simple isn't it?

References

  1. CircleShootApp class