If you appreciate the work done within the wiki, please consider supporting The Cutting Room Floor on Patreon. Thanks for all your support!
Bejeweled 3 (Windows, Mac OS X)
Bejeweled 3 |
---|
Developer: PopCap Games This game has unused areas. This game has a prerelease article This game has a bugs page |
To do: The Mac version on Steam has cheat keys enabled. More info: 1 2 3 4 5 6 |
Bejeweled 3 is the third (or fifth?) game of popular match-3 puzzle series.
As with most of PopCap's other games, this game packs most of the resources to a single file named "main.pak". You can extract the resources by using QuickBMS with this plugin. You can also repack the files by using "PopPak.exe" that is included in PopCap Games Framework.
Contents
- 1 Sub-Pages
- 2 Unused Graphics
- 3 Regional Differences
- 4 Unused Special Gems
- 5 Unused Quests
- 5.1 Mission #1: Lead to Gold - Any match
- 5.2 Mission #2: Lead to Gold - Yellow matches
- 5.3 Mission #3: Lead to Gold - Columns & Rows
- 5.4 Mission #4: Wall Blast
- 5.5 Mission #5: Time Bomb
- 5.6 Mission #6: Time Bomb (Real time)
- 5.7 Mission #7: Inferno
- 5.8 Mission #8: Balance
- 5.9 Mission #9: Stratamax
- 5.10 Mission #10: Butterflies
- 5.11 Mission #11: Avalanche
- 5.12 Mission #12: Butterflies + Wall
- 5.13 Mission #13: Lead to Gold + Time bomb
- 5.14 Mission #14: Buried Treasures
- 5.15 Mission #15: Sandstorm
- 5.16 Mission #16: Poker
- 5.17 Mission #17: Gold Rush
- 5.18 Mission #18: Scrolling Gold Rush
- 5.19 Mission #19: Lead to Gold - Othello
- 5.20 Mission #20: Ice Storm
- 5.21 Mission #21: Diamond Mine
- 6 Unused Quest Options
- 7 Unused Quest Mode Stats Screen
- 8 Debug Menu
- 9 Unused Text
- 10 Unused Music Sequences
- 11 Unused Sounds
- 12 Debug Commands
- 13 Command-Line Launch Options
- 14 Development leftovers
- 15 Unused code
- 16 Revisional Differences
Sub-Pages
Prerelease Info |
Bugs |
Unused Graphics
Early Exit Button
This graphic would have suited the main title screen of Blitz and in this game too, if 3D Acceleration isn't active, due to it having a different floor backdrop. Instead, these games opted for a simple text icon saying "Quit."
Checkpoint Marker
Usage unknown. Probably was a spot to keep track of your Quest progress?
Detonator
This very out-of-place looking Detonate button is NOT a leftover from the Windows version of Bejeweled Blitz. Blitz had a far more intricate detonator button than this. It may have been likely this was used to detonate a BOMB rather than using the detonator powerup, but in the bomb quests you immediately lose the mission and don't get a chance to disarm a bomb. Also, matchless move code exists, so it may have been planned to have a Classic-like mode, but you can make matchless moves and bombs would spawn.
Doom Gem
This is in a leftover from Bejeweled Blitz, identical to that game's files. Bomb Gems made an appearance in this game, but Doom Gems did not. Also, Doom Gem code does exist in this game.
Replay Button
These ARE NOT buttons from Bejeweled Twist. These are different textures which might've had a purpose for a Scoreboard screen like how Twist did at some point.
Clockwork Textures
Unused textures for a clock object. Possibly an unused timer.
Bejeweled Blitz Leftovers
Green Question
This is a leftover from Bejeweled Blitz's Mystery Gem boost. This is also very similar to Poker mode's wildcard, but the wildcard uses a different graphic than this one.
Silver Coin (Stats)
In the dialog folder, there exists both graphics for both the Silver coin and Gold coin from Blitz.
Gold Coin (Stats)
Regional Differences
Unused Images
Unused compliments found in Bejeweled 3's Japanese translation. These images do not appear in the Western-language versions.
Unused Special Gems
Doom Gem
What appears to be scrapped from Bejeweled Twist, this gem is incorrectly positioned on the board by default. Like Twist, the gem locks itself into place, but it is not possible to decrement the counter on this gem, as the mechanics differ from Twist.
Two types of the Doom Gem exist; 01 being the numberless version, that'll still explode when its counter is not set, and 03 displays the countdown.
Leftovers from Bejeweled Blitz (Windows)
Multplier Gem
Even though it lacks the graphics for the bonus multiplier display, the mechanics still function; the game will indeed multiply the score by the multiplier given, until the game's ended. This is not limited to the 8x bonus Blitz had.
Scrambler, Detonator and Coin Gems
Both available to be set as gem types, these don't have custom graphics on their own and so appear to be a normal gem, until hovered over which can be identified via the flavour text.
The detonator gem appears to be non-working even when other special gems are on the board, but the scrambler gem does scramble the board, for two turns. scramble.wav plays when the gem is clicked on.
The coin gem has the score base value of 300x[Level Number], while playing diamond_mine_treasurefind.ogg when matched, which is completely similar to the sound effect in Blitz.
Mystery Gem
Similar to the Doom Gem, it's locked into place and won't swap with neighboring gems, and refuses to match with same colored gems. The board can not level up with this gem present, even when the progress bar is full.
Unused Quests
Inside main.pak, there is a "properties" directory which has configuration files.
- defaultquest.cfg: Early Quest mode configurations
- quest.cfg: Final Quest mode configurations
- secret.cfg: Secret modes configurations (Poker, Butterflies, Ice Storm, and Diamond Mine)
- speed.cfg: Lightning mode configurations
- badges.txt: Badge requirements
- ranks.txt: Rank names
- tips.txt: Tip of the day (Appears during loading screen)
- music.xml: Music configurations
- resources.xml: Location of resources
There are two different Quest mode configuration files: defaultquest.cfg and quest.cfg. Only quest.cfg is used by the actual Quest mode. defaultquest.cfg has early designs of Quest mode. It's not used by the game by any normal means. However, it IS still loaded by the game, and partly used by the Debug Menu
There are 21 missions in defaultquest.cfg. The only way to play them is by hacking the current quest.cfg.
12 missions can be played without problems. 3 missions require the use of the debug menu because one must bypass the Quest Menu. 4 missions require repairing in order to play. 2 missions are unplayable.
All but 4 missions select the background randomly, unlike the final game's missions.
Mission #1: Lead to Gold - Any match
Fill the grid with gold by making matches.
This type of mission is completely unused in the final game. It's similar to Alchemy, but the matches do not turn entire rows/columns to gold.
Your goal is to fill the entire grid to gold within 1 minute. The time limit is short, but fortunately, the outer grids are already gold from the start.
You can't play this mission without using the debug menu, because the game crashes when you open up the Quest Mode menu. The reason of the crash is probably because the final game no longer has the icon for these type of missions.
Mission #2: Lead to Gold - Yellow matches
Before the match | After the match |
---|---|
Fill the grid with gold by making yellow matches.
This type of mission is also completely unused in the final game, and can only be played via the debug menu. Only yellow gem matches can turn the grids to gold, but if you do it, it will turn 8 surrounding grids to gold too, similar to how Flame Gems work.
You can't die in this mission; there are no time or move limits.
Mission #3: Lead to Gold - Columns & Rows
Fill the grid with gold by making matches.
This is almost the same as the final game's Alchemy mission. However, you have only 1 minute as opposed to 1:30.
Mission #4: Wall Blast
Destroy the wall with special gems.
This looks similar to the final's one, but there are twists: Most walls are invisible. Some visible walls can't be destroyed. It selects the wall patterns from one of the 3 different maps. There are no time or move limits, but you are still vulnerable to the frustration of invisible/unbreakable walls.
This is one of the four missions that has non-random background. It has background #0, which is same as the final's Wall Blast missions.
Mission #5: Time Bomb
Destroy 10 bomb gems by matching them before the countdown reaches zero!
This is almost the same as the final game's same mission. You have to destroy 10 bomb gems before any countdown to zero. Each bomb has 20 moves countdown.
Mission #6: Time Bomb (Real time)
Destroy 10 bomb gems by matching them before the countdown reaches zero!
This is almost the same as the final game's Time Bomb II mission, but new bombs drop more frequently. You have to destroy 10 bomb gems before any countdown to zero. Each bomb has 60 seconds.
Mission #7: Inferno
Match 200 gems before the flames reach the top of the board!
Inferno is the internal name of Ice Storm mode. So you see ice instead of fire. Strangely, there are no ice bars here, most likely because it lacks the mandatory settings for today's Ice Storm mission.
Mission #8: Balance
Collect 25 red and 25 blue gems, but don't let the weights get too unbalanced!
This is a slightly easier version of the final's Balance III. You have to clear 25 red and blue gems instead of 30.
Mission #9: Stratamax
Clear 100 gems in 20 moves.
This is an easy version of the final's Stratamax missions.
Mission #10: Butterflies
Catch 20 butterflies before they escape the top of the board!
This is a slightly harder version of the final's first Butterflies mission. You have to catch 20 butterflies instead of 15.
Mission #11: Avalanche
Clear 100 gems without allowing the board to fill up. Each move adds 5 gems.
This is very similar to the final's Avalanche IV, but you only need 100 gems instead of 110.
Mission #12: Butterflies + Wall
Knock down the wall and capture any butterflies before they escape.
Two challenges in one mission! Surprisingly, it can be played WITHOUT the debug menu. It uses the Butterflies icon and music.
You must battle against invisible/unbreakable walls (patterns are selected from 3 different maps) while catching the butterflies.
Mission #13: Lead to Gold + Time bomb
Fill the grid with gold by making matches.
Another mixed challenge. This one crashes the Quest Menu and requires the debug menu, because it uses the scrapped Gold system which is the same as the first mission.
You must battle against an unlimited amount of bomb gems (20 moves) and fill the entire grid to gold. The bomb gems do not appear until the first move.
Mission #14: Buried Treasures
Find buried treasures within 50 moves! Avoid the skull!
It crashes the game if you simply copy paste the configurations from defaultquest.cfg. To repair, use the following configurations instead:
Quest "Buried Treasures" Description = "Find buried treasures within 50 moves! Avoid the skull!" Challenge = "Move Limit" Goal = "Hidden Objects" ItemSet = "3" Moves = 50;
You have to find 4 treasures in 50 moves, instead of 120 or 90 seconds. The "skull" feature is removed from the final game, but probably a bad thing would have happened when you uncover it.
Mission #15: Sandstorm
Find buried treasures! They cover back up over time. Avoid the skull!
It crashes the game by default, too. Use the following configurations to repair it:
Quest "Sandstorm" Description = "Find buried treasures! They cover back up over time. Avoid the skull!" Challenge = "Time Limit" Goal = "Hidden Objects" ItemSet = "3" Time = 120 RefillRateSec = 20.00;
You have to find 4 treasures within 2 minutes. The sand refills after 20 seconds. This is the early version of Sandstorm II. It has a longer time limit (Sandstorm II has only 1:30) but has a faster sand refill rate (Refill starts after 30 seconds in Sandstorm II).
Mission #16: Poker
Description: Score 200 points before running out of hands. HelpText: Assemble the best hand possible out of 5 cards! Every match reveals a new card of the color of the gem you swapped. Mouse over the score sheet on the left to see a description of each valid hand. You have 10 hands to score 200 points. Good luck!
It crashes the game if you simply copy paste the configurations from defaultquest.cfg. To repair, use the following configurations instead:
Quest "Poker" Description = "Score 200 points before running out of hands." HelpText = "Assemble the best hand possible out of 5 cards! Every match reveals a new card of the color of the gem you swapped. Mouse over the score sheet on the left to see a description of each valid hand.\n\nYou have 10 hands to score 200 points. Good luck!" Challenge = "Poker" HyperMixers = true Goal = 200 Hands = 10 FlameBonus = 5 StarBonus = 5 HandValues = "0, 0, 5, 10, 25, 40, 75";
The value for hands are quite different from the final's Poker missions. Pair and Spectrum are worth 0 points. If your hand ends in Pair or Spectrum, "No Score" will be displayed, but the bonus for special gems are still added.
This mission has detailed help text, unlike most others.
Mission #17: Gold Rush
Break through the rock to collect diamonds before timer runs out!
You have to mine 15 gold nuggets within 2 minutes. The game play is similar to the final's Gold Rush missions, but visuals are not. It uses Alchemy/Buried Treasure/Sandstorm music, and background #9 (Poker).
Mission #18: Scrolling Gold Rush
Break through the rock to collect diamonds before timer runs out!
It uses the Gold Rush icon, but crashes the game if you try to enter it. It appears to be an early version of the Diamond Mine secret game.
Mission #19: Lead to Gold - Othello
Flip the gold tile twice to earn gold.
This is an early version of Alchemy III. You have 60 seconds instead of 30 moves, and cascades do not turn grids to lead or gold.
When played without repairing, you win the game instantly as soon as you enter here. To actually play this mission, replace the following line:
Target = 100;
with
Squares = 64;
Mission #20: Ice Storm
Description: Match 100 gems before ice reaches the top of the board!
HelpText: Ice is creeping up the board. Knock ice down by making matches above or below it. Match 100 gems before ice reaches the top of the board!
It seems this mission was created after the name of Ice Storm was finalized. It works better than Inferno mission; the ice bars are actually working. Either by a mistake or a testing purpose, only 10 gems (not 100) are required to win the game.
It uses background #16 (One of the Classic/Zen only backgrounds).
Mission #21: Diamond Mine
Description: Mine all rocks and gold above the line before time runs out!
HelpText: Dig through rocks and gold by matching gems near them. Clear above the line before time runs out to keep mining. The deeper you mine the better your score!
It's the revised version of Scrolling Gold Rush. It crashes the game if you try to enter it. It has high-score related settings and several Artifact related settings. It uses background #3 (Buried Treasure/Sandstorm).
Unused Quest Options
Common Options
There are some common options that can be defined in any quests and secret modes. Some of them are not used by any of quests or secret modes.
WantPointComplements
# WantPointComplements true/false turn on voice point-based complements (default is off)
It will display the complements ("Good!", "Awesome!", etc) when you destroy a large number of gems in a single move or when you make a big cascade.
RecordHighScores
# RecordHighScores true/false game should record high scores
It controls whether to show the stats screen after finishing a game. The default is false for quests, and true for secret games.
This setting can lead to two different unused things. When set to true in a quest, it will show the unused stats screen. When set to false in a secret mode, it will enable access to the debug menu.
ColorCountTarget and ColorCountTargetSec
# ColorCountTarget integer number of colors to change to # ColorCountTargetSec number seconds until color target is reached
These options are mentioned only in defaultquest.cfg, and does nothing when used.
Unused Challenge Types
The following are unused Challenge types for Quest Mode that can only be found in the game's executable.
BUTTERFLY
This is the alias of Butterflies challenge type. Everything is the same as Butterflies, except for the lack of a quest icon.
No Lose
"No Lose" challenge type actually appears several times in the final game's quest file, but ignored by the game as it is quickly overwritten by another challenge type.
As the name suggests, this challenge features no hazards, and possibly used by the developers for testing.
Unlike other challenges, the progress bar is shown below the game board like Classic/Zen modes. In other challenges, the progress bar is shown inside of the score display.
BAD MOVE LIMIT
The game ends after the player makes a certain number of bad moves. The number of bad moves so far made is not displayed to the screen. It is otherwise the same as the "No Lose" challenge type, including the position of the progress bar.
The number of bad moves allowed is defined by an otherwise unused "BadMovesAllowed" option:
BadMovesAllowed = [Integer]
Unused Goal Types
The following are unused Goal types for Quest Mode that can only be found in the game's executable.
DETONATOR
The goal is to destroy 20 gems in 1 move. If a cascade ends before reaching 20 gems, the score becomes zero. For 20-gems-requirement, none of the known options seem to change this.
ARSENAL
The goal is keep a certain number of Flame Gems on the screen. The score increases when you create Flame Gems, and decreases by destroying them. The number of Flame Gems required is defined by the "Gems" option.
SCORE
Probably, the goal is to score a certain number of points. However, no known actions give you points. The required number of points is defined by an otherwise unused "Score" option:
Score = [Integer]
FIRESTORM
The goal is to create a certain number of Flame Gems. You don't have to detonate them; just create them. The required number of Flame Gems is defined by an otherwise unused "FlameGems" option:
FlameGems = [Integer]
PRESERVER
The goal is to keep a certain number of certain colored gems on the screen. The score increases when the required colored gems appear on the screen, and decreases by destroying them. The number of required gems is defined by the "Gems" option. The gem color is defined by an otherwise unused "Color" option:
Color = [Integer] (0:Red, 1:White, 2:Green, 3:Yellow, 4:Purple, 5:Orange, 6:Blue)
HIDDEN GEMS and HIDDEN GRID
HIDDEN GEMS | HIDDEN GRID |
---|---|
The goal is the same as the "Clear Gems" goal type; clear a required number of gems to win. However, when an otherwise unused "HidePerMatch" option has a non-zero value, most of the board is covered with gray rectangles.
HidePerMatch = 1
All gray rectangles reappear each time you make a match. However, the gray rectangles are removed from nearby cleared gems (this includes your match, cascades, and newly generated gems). The difference between two goal types is whether or not you can see the gem color by trying to make a bad move. In HIDDEN GEMS, it's impossible due to the rectangles moving along gems. In HIDDEN GRID, it's possible; the rectangles do not move.
Another option named "HidePerUpdate" exists. Using this will cover the entire board with gray rectangles that cannot be removed.
HidePerUpdate = 1
SURVIVAL
Probably, the intended goal is to survive a certain number of seconds. However, nothing happens when the required time is passed. The required time is defined by an otherwise unused "SurviveSec" option:
SurviveSec = [Integer]
In the game, the goal is set to (SurviveSec * 100). For example, if SurviveSec is 60, it will display 6000 as the goal. Although the progress bar constantly fills, the score never increases. If the progress bar becomes full, the bar resets.
Other Unused Options
StartingMoney
This option sets the initial amount of score ("Money") in Poker quests.
StartingMoney = [Integer]
Unknown Options
This needs some investigation. Discuss ideas and findings on the talk page. Specifically: Figure out the functions of these options. |
The following are other unused options. Those functions are currently unknown.
GemsPerLevel MaxActiveColCount FireSpeedIncrLevel LevelDurationSec LevelProgress TimePenalty
Unused Quest Mode Stats Screen
This screen can be enabled by adding the following line after each "Quest" line, in quest.cfg:
RecordHighScores = true
After being enabled, this screen will be activated when the player completes or fails a mission. It has a "New Quest" button (used only in this screen) instead of the "Badges" button.
The buttons do not work as intended; "New Quest" and "Main Menu" buttons will crash the game. "Play Again" button will nearly freeze the game screen, however the player can still exit to the quest menu by pushing the Escape key, which will bring the pause screen. "Play Again" button will still crash the game if the bomb is exploded in Time Bomb missions, as the explosion unloads the board graphics from RAM.
Missions of Butterflies, Poker, and Ice Storm will display some statistics. All other type of missions (including Gold Rush for unknown reason) will show an empty screen.
Debug Menu
Debug menu can be enabled by adding the following line after each "Quest" line, in secret.cfg:
RecordHighScores = false
After enabled, go to any of 4 secret modes, then get a Game Over, and you'll be in the debug menu!
When you enter the debug menu, you are at the Secret Games debug menu, but there are lots of mess in the screen. Click the "Back" button to access the main debug menu and clean up the mess.
Please note when you play games from debug menu, you must disable "Animate Background" option to avoid huge slowdowns.
The regular backgrounds are not loaded when playing from the debug menu. Instead the game uses the static screen shot of Secret Games debug menu as a background.
Main Debug Menu
- Play Classic: Starts Classic mode.
- Time Bonus: Starts Lightning mode.
- Tug of War: Crashes the game. (Removed mode?)
- Play Zen: Starts Zen mode.
- Play Quests: Takes you to normal Quest mode menu.
- Secret Modes: Takes you to Secret Games debug menu, but without the mess in the screen.
- [Bunch of small buttons]: Quest mode shortcut. The quest names are loaded from defaultquest.cfg, but actual quest configurations are loaded from quest.cfg. So, if you click "Lead to Gold - Any match" button, you'll be taken to the first Butterflies mission. The game will crash upon completion of the mission.
- Main Menu: Takes you to Secret Games debug menu.
- Quit: Quits the game without confirming.
Secret Games Debug Menu
- Poker: Starts Poker mode.
- Butterflies: Starts Butterflies mode.
- Ice Storm: Starts Ice Storm mode.
- Diamond Mine: Starts Diamond Mine mode.
- Back: Takes you to the main debug menu.
Unused Text
This Quest needs help text. Insert a HelpText parameter in the appropriate quest .XML file
This help text appears when you click the quest objective in most of the unused quests. Please note the final game does not use XML for quest mode configurations.
Scrambles all gems on the board. Detonates all Special Gems on the board. Creates a random Special Gem at game start. Creates a x2 Multiplier at game start. Adds 5 seconds to the end of the game. Scrambler Detonator Mystery Gem Free Multiplier +5 Seconds MULTIPLIER GEM Randomly drops onto your board. Match it to increase your score multiplier by 1! COIN Clear this Gem to collect the coin inside! Save money to buy Boosts!
Leftover text from Bejeweled Blitz.
<!-- DO NOT EDIT THIS FILE. This file is generated by ResourceGen3. Any changes will be overwritten! -->
The generation note in resources.xml was changed in Mac version and future releases, also having more parameters. Possibly from Resource Generator 3.
Unused Music Sequences
Several unused music strings can be found in the main Bejeweled3_suite.mo3 file.
Sequences 22 to 27. Uniquely, outside of this game it is listed in Bejeweled 3's Bandcamp OST as a "bonus track" with the name Gems of Glass.
Sequences 90 to 94, that is apparent that were initially part of Zen's music, judging from the Pattern Name from the remastered OST file.
Sequences 96 to 105 are all linked together, with the majority of them appearing to be left unfinished as fragments.
Offset 96, with tempo 176, which perhaps might suggest to be an earlier version of Avalanche/Stratamax's music. In the tracker file of the remastered OST, this is named "Hoppers."
Offset 97, with tempo 112. In the tracker file of the remastered OST, this is named "Waiting." Perhaps this was an early loading screen theme?
Offset 98 to 99, with tempo 112. In the tracker file of the remastered OST, this is named "Dumb Theme."
Offset 100, with tempo 112. In the tracker file of the remastered OST, this is named "Das Boat." Quest Level music perhaps?
Offset 101, with tempo 120. In the tracker file of the remastered OST, this is named "Celt Hero." Maybe was going to be used as another Quest theme due to Celt meaning "A cut stone for use as a tool."
Offset 102, with tempo 128.
Offset 103, with tempo 128. In the tracker file of the remastered OST, this is named "Slow Theme Test."
Offset 104, with tempo 144. In the tracker file of the remastered OST, this is named "Zeitgeist 1." Likely another early version of Stratamax/Avalanche's theme due to similar instruments used.
Offset 105, with tempo 96. In the tracker file of the remastered OST, this is named "Vangalis Herp Derp." Despite the funny sounding name, this might've been used for Diamond Mine or the Gold Rush and Buried Treasure/Sandstorm quests due to this theme having similar instruments used.
Unused Sounds
Most sound effects here are leftovers from Bejeweled Blitz. Bejeweled 3 was built from Blitz, so it makes sense why these are left over.
Bejeweled Blitz Leftovers
coin_created.wav
This was played when Coin gems were to appear on the board in Blitz, but they are unused since there is no currency system.
scramble.wav
This was played in Blitz when you activated the Scrambler powerup, no powerups exist.
background_change.ogg
This sounds plays when you activated a multiplier gem, and the background would change based on what multiplier. Multiplier gem code exists, but is unused in Lightning mode. (Previously from the "Blitz" mode from Bejeweled Blitz.)
multiplier_appears.ogg
This plays in Blitz when a multiplier appears on the board.
multiplier_hurrahed.ogg
Lastly, this plays whenever a multiplier gem during Last Hurrah is cleared.
However, there is one sound that is not in Blitz that is new in 3.
sin500.ogg
An unused 500hz sinewave. Unknown purpose.
Debug Commands
To do: There may be more in the final game, class sub_5B8E50 in IDA for v1.0.6.6126 (PC) is the debug key detector function, in it it suggests there's more keypresses that may or not work.
Check the debug build of the advertising library in the JP ver for debug-only commands, as it includes the debug framework (base/pl_d.dll, base/pcon/pl/dll and fp_d.dll). I excluded the ones from the public framework here.
|
Pressing CTRL-ALT-D will play a sound to indicate debug key input is enabled, allowing options of typing unique keys for debugging displays or mechanisms, another use will disable it, a few were upgraded and few were removed as the framework got an overhaul since Blitz. Note on Mac only the first two and most from the framework have an effect, but any one involving a visual will be very small on 1920x1200 mode.
- F1 - Fixed a issue preventing UpdateCount from being displayed however a character at the end appears after the current version. DesktopRes and CustomCursors were added to show the resolution of the desktop and whether custom cursors are on or off.
- F3 - Compared to Blitz, Updated to include X and Y offsets of a current match in brackets.
- Shift-F8 - No longer restarts the game in the pause menu, do not use this with 3D Acceleration enabled on the main menu as it crashes the game.
Command-Line Launch Options
The game uses most of the typical PopCap Framework launch options, some like -webroot were ported from Bejeweled Blitz with no working functionality but a couple are unique. -record, -recnum, -playnum, -demofile and -play to load demo files were removed from the framework.
Development leftovers
Stats Dump Function
To do: What else does it do and what content does the file contain? |
On Windows builds of the game, the game's Bej3App class contains a function to dump stats to PopCap's internal network share which is called when quitting the game, surprisingly not cut from retail. While being hard to know what it actually does, strings for it are below. It calls OPTIONS before doing anything else. The first string is the computer name while the last string is the selected profile of the user.
SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName ComputerName \\sea-popshare\shares\Game Builds & Betas\Bejeweled 3\stats\statsdump1\ %s_%s.txt ab
Debug Advertising Library
In the Japanese version, libraries for handling advertising are present. While advertising libraries are largely uninteresting, it also uses a debug build of the private framework and has symbol files, having most content stripped from release builds.
CFGASM file
To do: This IS referenced by the debug framework build from the JP ver. |
default.cfgasm is present in the Chinese and Japanese version, it has a plaintext numeric list of content from the compatibility configuration file that has no use from the game.
0: Load Const Int "4318" 3: Store Var "VENDOR_NVIDIA" [0:0] 6: Pop 7: Load Const Int "4098" 10: Store Var "VENDOR_ATI" [0:2] 13: Pop 14: Load Const Int "32902" 17: Store Var "VENDOR_INTEL" [0:4] 20: Pop 21: Load Const Int "4153" 24: Store Var "VENDOR_SIS" [0:6] 27: Pop 28: Load Const Int "4139" 31: Store Var "VENDOR_MATROX" [0:8] 34: Pop 35: Jmp @145 37: Load Property "compat_IsVista" [0:15] 40: Jf @111 42: Load Property "compat_AppSysMemTotalMB" [0:12] 45: Load Const Int "768" 48: CmpGE 49: Copy 50: Jf @60 52: Pop 53: Load Property "compat_AppOrigScreenHeight" [0:14] 56: Load Const Int "1050" 59: CmpGE 60: Copy 61: Jf @71 63: Pop 64: Load Property "compat_AppVidMemory" [0:10] 67: Load Const Int "192" 70: CmpGE 71: Jf @79 73: Load Const Int "1200" 76: Ret 77: Jmp @109 79: Load Property "compat_AppSysMemTotalMB" [0:12] 82: Load Const Int "512" 85: CmpGT 86: Copy 87: Jf @97 89: Pop 90: Load Property "compat_AppOrigScreenHeight" [0:14] 93: Load Const Int "600" 96: CmpGT 97: Jf @105 99: Load Const Int "768" 102: Ret 103: Jmp @109 105: Load Const Int "600" 108: Ret 109: Jmp @141 111: Load Property "compat_AppSysMemTotalMB" [0:12] 114: Load Const Int "512" 117: CmpGT 118: Copy 119: Jf @129 121: Pop 122: Load Property "compat_AppOrigScreenHeight" [0:14] 125: Load Const Int "600" 128: CmpGT 129: Jf @137 131: Load Const Int "768" 134: Ret 135: Jmp @141 137: Load Const Int "600" 140: Ret 141: Load Const Bool "false" 144: Ret 145: Load Const Int "0" 148: Store Property "shader_whiteout_fallback" [0:29] 151: Pop 152: Load Const Int "0" 155: Store Property "shader_sidebar_p_fallback" [0:31] 158: Pop 159: Load Const Int "0" 162: Store Property "shader_sidebar_tube_p_fallback" [0:33] 165: Pop 166: Load Const Int "0" 169: Store Property "shader_sidebar_engine_p_fallback" [0:35] 172: Pop 173: Load Const Int "0" 176: Store Property "shader_cube_p_fallback" [0:37] 179: Pop 180: Load Const Int "0" 183: Store Property "shader_rainbow_cube_p_fallback" [0:39] 186: Pop 187: Jmp @382 189: Load Property "compat_D3DVendorID" [0:18] 192: Store Var "vendor" [9:0] 195: Pop 196: Load Property "compat_D3DDeviceID" [0:19] 199: Store Var "device" [9:1] 202: Pop 203: Load Const Int "4" 206: Store Var "maxstages" [9:2] 209: Pop 210: Load Var "vendor" [9:0] 213: Load Var "VENDOR_INTEL" [0:4] 216: CmpEQ 217: Jf @237 219: Load Property "compat_D3DPSVersion" [0:28] 222: Load Const Float "1.000000" 225: CmpLT 226: Jf @235 228: Load Const Int "1" 231: Store Var "maxstages" [9:2] 234: Pop 235: Jmp @253 237: Load Property "compat_D3DPSVersion" [0:28] 240: Load Const Float "1.000000" 243: CmpLT 244: Jf @253 246: Load Const Int "2" 249: Store Var "maxstages" [9:2] 252: Pop 253: Load Var "maxstages" [9:2] 256: Load Const Int "2" 259: CmpEQ 260: Jf @285 262: Load Const Int "2" 265: Store Property "shader_whiteout_fallback" [0:29] 268: Pop 269: Load Const Int "2" 272: Store Property "shader_sidebar_p_fallback" [0:31] 275: Pop 276: Load Const Int "2" 279: Store Property "shader_rainbow_cube_p_fallback" [0:39] 282: Pop 283: Jmp @322 285: Load Var "maxstages" [9:2] 288: Load Const Int "1" 291: CmpEQ 292: Jf @322 294: Load Const Int "3" 297: Store Property "shader_whiteout_fallback" [0:29] 300: Pop 301: Load Const Int "3" 304: Store Property "shader_sidebar_p_fallback" [0:31] 307: Pop 308: Load Const Int "2" 311: Store Property "shader_sidebar_tube_p_fallback" [0:33] 314: Pop 315: Load Const Int "3" 318: Store Property "shader_rainbow_cube_p_fallback" [0:39] 321: Pop 322: Load Const String "maxstages = " 325: Load Var "maxstages" [9:2] 328: Add 329: Log 330: Load Const String "shader_whiteout = " 333: Load Property "shader_whiteout_fallback" [0:29] 336: Add 337: Log 338: Load Const String "shader_sidebar_p = " 341: Load Property "shader_sidebar_p_fallback" [0:31] 344: Add 345: Log 346: Load Const String "shader_sidebar_tube_p = " 349: Load Property "shader_sidebar_tube_p_fallback" [0:33] 352: Add 353: Log 354: Load Const String "shader_sidebar_engine_p = " 357: Load Property "shader_sidebar_engine_p_fallback" [0:35] 360: Add 361: Log 362: Load Const String "shader_cube_p = " 365: Load Property "shader_cube_p_fallback" [0:37] 368: Add 369: Log 370: Load Const String "shader_rainbow_cube_p = " 373: Load Property "shader_rainbow_cube_p_fallback" [0:39] 376: Add 377: Log 378: Load Const Bool "false" 381: Ret 382: Jmp @420 384: Load Property "compat_D3DVendorID" [0:18] 387: Load Var "VENDOR_SIS" [0:6] 390: CmpEQ 391: Copy 392: Jt @402 394: Pop 395: Load Property "compat_D3DVendorID" [0:18] 398: Load Var "VENDOR_MATROX" [0:8] 401: CmpEQ 402: Jf @412 404: Load Const String "Returning Is3DSupported false due to SIS or Matrox hardware" 407: Log 408: Load Const Bool "false" 411: Ret 412: Load Const Bool "true" 415: Ret 416: Load Const Bool "false" 419: Ret 420: Jmp @463 422: Load Property "compat_D3DVendorID" [0:18] 425: Load Var "VENDOR_NVIDIA" [0:0] 428: CmpEQ 429: Jf @455 431: Load Property "compat_IsVista" [0:15] 434: Copy 435: Jf @445 437: Pop 438: Load Property "compat_D3DDriverVersion" [0:25] 441: Load Const String "7.15.10.9686" 444: CmpEQ 445: Jf @455 447: Load Const String "Returning Is3DRecommended false due to bad default Vista driver for nVidia cards" 450: Log 451: Load Const Bool "false" 454: Ret 455: Load Const Bool "true" 458: Ret 459: Load Const Bool "false" 462: Ret 463: Jmp @473 465: Load Const Bool "false" 468: Ret 469: Load Const Bool "false" 472: Ret 473: Jmp @520 475: Load Property "compat_IsVista" [0:15] 478: Load Const Bool "false" 481: CmpEQ 482: Copy 483: Jt @493 485: Pop 486: Load Property "compat_AppVidMemory" [0:10] 489: Load Const Int "0" 492: CmpEQ 493: Jf @499 495: Load Const Bool "true" 498: Ret 499: Load Property "compat_AppVidMemory" [0:10] 502: Load Const Int "92" 505: CmpLT 506: Jf @512 508: Load Const Bool "false" 511: Ret 512: Load Const Bool "true" 515: Ret 516: Load Const Bool "false" 519: Ret 520: Jmp @567 522: Load Property "compat_IsVista" [0:15] 525: Load Const Bool "false" 528: CmpEQ 529: Copy 530: Jt @540 532: Pop 533: Load Property "compat_AppVidMemory" [0:10] 536: Load Const Int "0" 539: CmpEQ 540: Jf @546 542: Load Const Bool "true" 545: Ret 546: Load Property "compat_AppVidMemory" [0:10] 549: Load Const Int "192" 552: CmpLT 553: Jf @559 555: Load Const Bool "false" 558: Ret 559: Load Const Bool "true" 562: Ret 563: Load Const Bool "false" 566: Ret 567: Jmp @585 569: Load Property "compat_D3DInterface" [0:17] 572: Load Const Int "0" 575: CmpGT 576: Jf @581 578: Call @189 580: Pop 581: Load Const Bool "false" 584: Ret
Blender file
This needs some investigation. Discuss ideas and findings on the talk page. Specifically: Find out what distribution had this file first if possible. |
The root of the game data from the Japanese and Chinese distributions have a Blender file titled Gems.blend possibly related to how PopCap made the Gems with their animations. It only works on Blender 2.73 as it crashes in modern Blender. A compilation location shows they were made in the following directory, suggesting this file was copied over from Bejeweled Twist.
d:\popcap\Resources\Bejeweled Twist\Gems\ r\.r\scripts\ /usr/home/intrr/blender/blend/ /Users/ton/Desktop/
Unused code
Resource Generator 3
There is code for executing a program called Rg3Win.exe in a folder outside the game directory being \bin\ResourceGen3\. It's possible it relates to a file called Bej3.rg3watch and also resprops\resprops.txt as well as properties\resources.xml, in the Mac version, the same code is copied, without any changes to load a version of the tool for Mac if it is present.
Resource Streams Manager
To do: Any other classes? Check the JP ver for symbols to check. |
The game executable mentions a class named ResStreamsManager. This class is used in games past this one and console ports to load RSB and RSG files (in RSB or outside) that contain the game data, but the code to read them is not present nor are those files used in the game.
Apple CAF File Support
The Mac version has code to read .caf files yet the game uses .ogg.
Revisional Differences
- The Steam version of the game was compiled with a newer version of the PopCap framework, given by there are some related strings are exclusively present.
The Bejeweled series
| |
---|---|
Java | Diamond Mine |
Windows | Bejeweled • Bejeweled 2 • Bejeweled Twist • Bejeweled Blitz • Bejeweled 3 • Bejeweled Live |
Mac OS Classic | Bejeweled |
Mac OS X | Bejeweled • Bejeweled 2 • Bejeweled 3 |
iOS | Bejeweled 2 • Bejeweled Blitz • Bejeweled Classic • Bejeweled Stars |
Android | Bejeweled Classic • Bejeweled Stars |
Adobe Flash | Bejeweled • Bejeweled 2 • Bejeweled Twist • Bejeweled 3 |
HTML5 | Bejeweled • Bejeweled Stars |
PopCap Loader | Bejeweled 2 |
- Pages missing developer references
- Games developed by PopCap Games
- Pages missing publisher references
- Games published by PopCap Games
- Windows games
- Mac OS X games
- Pages missing date references
- Games released in 2010
- Games released in December
- Games released on December 7
- Games with unused areas
- Games with unused code
- Games with unused objects
- Games with unused graphics
- Games with unused music
- Games with unused sounds
- Games with unused text
- Games with debugging functions
- Games with regional differences
- To do
- To investigate
- Bejeweled series
Cleanup > Pages missing date references
Cleanup > Pages missing developer references
Cleanup > Pages missing publisher references
Cleanup > To do
Cleanup > To investigate
Games > Games by content > Games with debugging functions
Games > Games by content > Games with regional differences
Games > Games by content > Games with unused areas
Games > Games by content > Games with unused code
Games > Games by content > Games with unused graphics
Games > Games by content > Games with unused music
Games > Games by content > Games with unused objects
Games > Games by content > Games with unused sounds
Games > Games by content > Games with unused text
Games > Games by developer > Games developed by Electronic Arts > Games developed by PopCap Games
Games > Games by platform > Mac OS X games
Games > Games by platform > Windows games
Games > Games by publisher > Games published by Electronic Arts > Games published by PopCap Games
Games > Games by release date > Games released in 2010
Games > Games by release date > Games released in December
Games > Games by release date > Games released in December > Games released on December 7
Games > Games by series > Bejeweled series