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!

Bejeweled 2 (Windows, Mac OS X)

From The Cutting Room Floor
Jump to navigation Jump to search

Title Screen

Bejeweled 2

Also known as: Bejeweled 2 Deluxe
Developer: PopCap Games
Publisher: PopCap Games
Platforms: Windows, Mac OS X
Released in US: November 5, 2004 (Windows), November 15, 2004 (Mac)

CodeIcon.png This game has unused code.
SourceIcon.png This game has uncompiled source code.
DevTextIcon.png This game has hidden development-related text.
GraphicsIcon.png This game has unused graphics.
MusicIcon.png This game has unused music.
DebugIcon.png This game has debugging material.
RegionIcon.png This game has regional differences.
Carts.png This game has revisional differences.

PrereleaseIcon.png This game has a prerelease article

Bejeweled 2 is, as you may have guessed, the sequel to Bejeweled. It's also relatively large compared to the first game, with a bevy of new modes and new special gems plus some beautiful background graphics and music.

To do:
There's a mention for a "cheat string" and "cheat" parameter relating to the source code. Same for "debug messages".


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

Unused Music Sequences

Offset 127, with tempo 128. Interestingly, this is the third track that plays when you place the CD into a CD player, but doesn't appear anywhere in-game. In the source tracker, this sequence in the source tracker is called "Get Ready!" as this might imply that this is played when you start a game in the main menu.

Offset 128, with tempo 125. A leftover duplicated fragment from the track that plays when you complete Puzzle Mode. Additionally, this sequence in the source tracker is called "Complete!" as it might imply that this might play after you complete a level. Likely was not going to be used as the music would have to stop to play this, then fade back in the main level loop tracks of Classic or Action.

Offset 144, 145, 184, each with tempo 125. These sequences are attached to each other at the end of the music tracker file. The first two sequences here are possibly scrapped for being too similar/early version of the track Schein. Additionally, offset 184 is a fragment of Final Destination on offset 168 heard at the end of Puzzle mode as well. This file is called "Mists of the Past/Totenschein" in the OpenMPT source tracker. Skaven has said that he did want to develop Mists of the Past further than the included sketch, but didn't get to, but he didn't want to delist it either. Instead, it now appears at the end of the IT files.

Offset 115, 116, each with tempo 128. Unlisted sequences that do not appear on the music tracker file's surface. It seems to be an early draft of the song "Schein".

Offset 141,142,143, each with tempo 136. Unlisted.

Offset 146, with tempo 136. Unlisted.

Unused Graphics


Ooh, shiny!

A very high-detailed and shiny loader bar. The used one is more energetic.


You haven't started the game yet.

An unused score widget. Interestingly enough, a prerelease image has a section in the middle which also has this shine, texturing, and palette.



Interestingly, this sprite is used HOWEVER the right half of the sprite is never seen anywhere in the game.

Bejeweled 1 Leftovers


I'm waiiitiiiiing!

The unused loading bar from Bejeweled is also in Bejeweled 2, still unused.


Gotta love seven segment displays.

The menu score font from Bejeweled Deluxe.



The slider knob from Bejeweled Deluxe.

Cancelled "Planet Pack"

According to this download source, with an included digital signature MD5 hash by PopCap themselves for authentication, Bejeweled 2 might have had a planned expansion pack that was scrapped for unknown reasons nearly a year after the game's release.

Running the installer would place new files under the C:\Program Files (x86)\PopCap Games\Bejeweled 2 Deluxe\images\backdrops folder, which includes a variety of 12 new backdrops under the codename planetpack. Besides these images, no such attachment or modification of files is done by the installation.

Version 1.1 was coded to have backdrops.lst updated with detection of new images being uploaded onto the backdrops folder, after executing the game. Version 1.0 prior lacks such a feature, however.

Without official sources, it is inconclusive calling it as an incomplete puzzle pack as nowhere does the installation process mentions an update to Puzzle Mode - perhaps a major backdrop update only.

It is also worth mentioning most or all backdrops were later reused in Bejeweled Twist.

Leftover Development Content

Source Code

A portion of source header files and a precompiled header file are present in the data directory in the Mac OS X version (one of the files has no data, unfortunately). How exactly the developers did the same mistake in Zuma Deluxe is an unsolved mystery. Interestingly, a file called test.h is also present which is pretty much a generated resources file for testing, however this one only has most audio files listed, but SOUND_LEVEL_UP and SOUND_MENU_CLICK are defined in the file, unlike the final game's resources file which suggests they were internally renamed in development. ProfileMgr.h was carried over from assumedly Zuma.

Download.png Download Bejeweled 2 (Mac OS X) Source files
File: Bejeweled2MacOSX_SourceFiles.zip (36,295 KB) (info)

Development Images

Under the Japanese localization, an unused folder named _dump can be found within the data folder, with contents of what consists to be game development leftovers. As these images are not under the usual images folder where all the graphics of the game are usually stored, they are independent and cannot be manipulated to appear in-game through the modification of the configuration files.

An HTML file is present within the folder that displays the five development images as thumbnails, while also showing size, transparency, and resolution info.



To do:
What version of the framework? Seems to not be 1.33.

A window screenshot of FontTester from the PopCap Framework, loading img0001.png for the characters. The tool can load a font descriptor file to preview rendering of related text using the characters. Such a program is nowhere to be found within the game's files. The application is actually one built with the framework as a whole so debug keys could be used on it, one being able to dump a screenshot which might explain why it got here.


Learn your alphabet the Bejeweled way

The main textured font base used for the game's "LEVEL X", "WORLD COMPLETE", etc. lines.


Where have you been? Playing Puzzle Mode?

The full text that is linked towards the image of img0001.png. This text by itself is either scrapped out from the final game or used for demonstration purposes.



A 64×64 black square that is duplicated twice but with sequential file names; there is a possibility that it might have served as the base background for img0001's text generator program.

Inaccessible Debug Code

To do:
  • Creating Mode and Free Mode. Possible variables are 005AE266 and 005AE409 for [February 10th 2011 (PopCap.com, Windows WW/FlowPlay)].
  • Sexy::Board::SavePuzzle (Probably related to the below)
  • Sexy::Board::EnableCreateMode (Possibly relating to a mode to create puzzles for the game)
  • Sexy::Board::Redo (Probably related to a debug keypress to redo the previous move)
  • Sexy::Board::GetPrintableState
  • Sexy::Board::MakePieceAt (Probably related to a debug keypress to spawn a gem at the mouse cursor)
  • Sexy::GameStateEngine::GetPrintableState

Although impossible to access, some debugging code remained in the final game, with the text using the DEBUG font ID, continuum medium.

<Font id="DEBUG" path="ContinuumMedium18outline.txt" sm_path="ContinuumMedium12outline.txt" />

Mode Info Display

To do:
If possible check if this works better than NOPing the function below the value.
Address Version
005AE259 1.13.2523 / February 10th 2011 (PopCap.com, Windows WW/FlowPlay)
005A3B65 / Steam (Windows)
00414A29 1.0 September 3rd 2007 (Japanese)
0041517C 1.0 September 29th 2007 (PopCap.com, Windows Dutch)

A simple call to draw text for the current game mode. In puzzle mode, the amount of valid moves or puzzle solving state is also drawn to the screen. To enable it, change the byte at the memory address to 1, for Japanese, change the function to NOP.

Bej2 Debug ModeInfoDisplay.png

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.

Development text

To do:
There's most likely more.

The game executable (on Windows) mentions a CVS directory in the root of the game installation that doesn't exist, suggesting the game was built off CVS version control.

Command-Line Parameters

  • -version - Shows the product name, version, build number, and build date with a popup instead of starting the game.
  • -play - Plays a demo file then closes the game.
  • -record - Records a demo and saves it after shutdown of the game.
  • -recnum - Records sequentially-named demos each time you run the game. The filenames of the saved demos are "Popcap1.dmo", "Popcap2.dmo", "Popcap3.dmo", etc., with "Popcap" being replaced with a specified file name with -demofile.
  • -playnum - Starts Bejeweled 2 with the previously recorded demo files sequentially.
  • -crash - Crashes the game immediately with an Access Violation error.
  • -screensaver - Makes the game act like it's a screensaver, any movement or key presses will immediately force close the game. Likely a remnant of Insaniquarium's screensaver command line.
  • -demofile - Specifies the filename for the played or recorded demo and only works when used with the "-play" or "-record" command line parameters (see below). The correct syntax for this parameter is "-demofile=MyDemo.dmo" (minus the quotes), substituting "MyDemo.dmo" with your demo filename of choice (either a previously recorded demo to play, or a filename to save a new demo that you wish to record).
  • -changedir - Changes the directory of where the game assets will be located.

Debug Commands

To do:
There may be more.

Pressing CTRL + ALT + D will play a sound to indicate that debug key input is enabled, allowing unique keys and key combinations to be typed for debugging displays or mechanisms, another use will disable it. This can only be used on Windows as the Mac OS framework port didn't support launch commands at the time.

  • F2 - Start/Stop perf timing.
  • F3 - Toggle FPS display.
    • Shift + F3 - Toggle FPS/mouse coordinate display.
  • F8 - Show current Video Stats (mostly used to see if 3D acceleration is currently on).
    • Shift + F8 - Toggle 3D acceleration.
  • F11 - Take screenshot (goes into the ProgramData/OEM/Bejeweled2/_screenshots) directory.
    • Shift + F11 - Dump all program images in memory to the ProgramData/OEM/Bejeweled2/_dump directory.

Developer Notes

Present in Config.xml.

<!-- Percent chance (0.0 - 1.0) that a bomb will fall -->
<!-- Percent chance (0.0 - 1.0) that a power gem will fall -->
<!-- Percent chance (0.0 - 1.0) that a rock will fall -->
<!-- Initial countdown value of a time bomb -->
<!-- Mininum number of gems needed in a match to create a power gem -->
<!-- Mininum number of gems needed in a match to create a wildcard destroyer -->
<!-- Number of points for each explosion in a chain reaction -->
<!-- Additional number of points for each extra explosion in a chain reaction -->
<!-- Number of points for each normal gem in a hyper gem electrocution -->
<!-- Number of points for each power gem in a hyper gem electrocution -->
<!-- Number of points for each power gem in a set -->
	The following difficulty levels are represented by a BASE and
	a MULT.  BASE is the value for level 1.  MULT specified how much
	that value increases per level.
	Also, note that that most of these values such as NormBonus take
	effect before the point multiplier is taken into account, which means
	that the point multiplier can change without affecting the difficulty 
<!-- How many points it takes to get to the next level in normal mode -->
<!-- Controls for points multiplier in normal mode -->
<!-- How many points it takes to get to the next level in timed mode -->
<!-- Point multiplier for timed mode -->
<!-- How fast does bonus bar start going down in timed mode -->
<!-- How fast the bonus bar accelerates downward in timed mode -->
<!-- How fast acceleration increases in timed mode -->
<!-- How many seconds to advance velocity by per level -->
<!-- How much grace time you are given per move in timed mode -->
<!-- Multiplied by move points for additional grace time -->
<!-- Max grace time -->
<!-- Point multiplier for endless mode -->
<!-- How many points it takes to get to the next level in endless mode -->

Regional Differences

Different Sounds

The Japanese version uses rather different-sounding voice sound effects for "No More Moves" and "World Complete", sounding comparatively "clearer" and "panned" to the ones featured in English releases.



Notably, the former file is used in all releases of the Xbox 360 version.

Bejeweled Leftovers

In the Japanese version, levelup1.ogg can also be found under the sounds folder as an unused voice sound effect, not present in the English versions.

Revisional Differences

Version 1.1

  • v1.0 has the older PopCap logo at the bottom-right corner of the loading screen. v1.1 has the newer PopCap logo with the absence of "GAMES" on the right.
  • v1.0 occasionally asks the player whether to check for system updates at the loading screen. v1.1 doesn't do this.
v1.0 v1.1
Bejeweled2 1.0LoadingScreen.png Bejeweled2 1.1LoadingScreen.png
  • In v1.0, the "Automatic Update" button is located between the "Custom Cursors" and "Random Backdrops" buttons in the options menu, which would lead the game into checking the PopCap servers if ticked. The "Update Check" button is used for its said purpose. However, in v1.1 these two buttons are missing, with the "Automatic Update" button hidden in the top-left corner, requiring you to drag the option window in order to view it. The button is non-interactable.
v1.0 v1.1
Bejeweled2 1.0OptionsScreen.png Bejeweled2 1.1OptionsScreen.png

However, changing the string <Boolean id="DontUpdate">true</Boolean> under partner.xml to <Boolean id="DontUpdate">false</Boolean> in v1.1 will revert the update button settings to v1.0.

  • Although not existing in v1.1, under the Galaxy One folder of v1.0 there is a text document called sol.txt, which might be an uncompiled .sol file. "4,7" and "3,7" here to the X and Y axes of the gems to be swapped:
Solution: C:\GameSrc\cpp\WinBej2\puzzles\Galaxy One\tutorial8.sol
Start State: 2

    [3C] 4,7 to 3,7 - 0
    [3C] 4,7 to 3,7 - 1
v1.0 v1.1
Bej2 v10 icon.png
Bej2 v11 Icon.png
  • v1.0's icon uses the Blue Gem design from Bejeweled Deluxe. v1.1 replaced it with the design used in this game.