Bejeweled 3
Accessing the Assets Archive

Posted:

This guide is for the Windows version of Bejeweled 3.

Required Tools

Here are the tools you will need to decompile and optionally recompile the assets archive used by Bejeweled 3:

Extraction

Step 1:  Run quickbms.exe.  Its command prompt will look something like this:

QuickBMS generic files extractor and reimporter 0.7.7
by Luigi Auriemma
e-mail: me@aluigi.org
web:    aluigi.org
        (Dec  3 2016 - 22:19:49)

                   quickbms.aluigi.org  Homepage
                            zenhax.com  ZenHAX Forum
                               @zenhax  Twitter & Scripts

- GUI mode activated, remember that the tool works also from command-line
  where are available various options like folder scanning, filters and so on

- select the BMS script to use

Step 2:  An open-file dialog will appear.  Select the script file 7x7m.bmx.

Step 3:  The command prompt will ask for the archive:

QuickBMS generic files extractor and reimporter 0.7.7
by Luigi Auriemma
e-mail: me@aluigi.org
web:    aluigi.org
        (Dec  3 2016 - 22:19:49)

                   quickbms.aluigi.org  Homepage
                            zenhax.com  ZenHAX Forum
                               @zenhax  Twitter & Scripts

- GUI mode activated, remember that the tool works also from command-line
  where are available various options like folder scanning, filters and so on

- select the BMS script to use
- select the input archives/files to extract, type * or "" for whole folder and subfolders

Another open-file dialog will appear.  Browse to the location of Bejeweled 3 and select main.pak.  (Assuming you got the game through Steam, the default location is “C:\Program Files (x86)\Steam\steamapps\common\Bejeweled 3\”.)

Step 4:  The command prompt will ask for an extraction location:

QuickBMS generic files extractor and reimporter 0.7.7
by Luigi Auriemma
e-mail: me@aluigi.org
web:    aluigi.org
        (Dec  3 2016 - 22:19:49)

                   quickbms.aluigi.org  Homepage
                            zenhax.com  ZenHAX Forum
                               @zenhax  Twitter & Scripts

- GUI mode activated, remember that the tool works also from command-line
  where are available various options like folder scanning, filters and so on

- select the BMS script to use
- select the input archives/files to extract, type * or "" for whole folder and subfolders
- select the output folder where extracting the files

A select-folder prompt will appear.  Browse to the location where you want the files extracted.  I recommend creating a new subdirectory at the game's location, e.g. “C:\Program Files (x86)\Steam\steamapps\common\Bejeweled 3\dump\”.

Note:  This prompt might not continue if the “File name” box is empty, in which case type any random text then press ENTER or click “Open.”  Don't worry; the garbage text you enter will be ignored.

The final output displayed will look something like this:

  054f034a 33191      sounds\voice_timeup.ogg
  054f84f1 41181      sounds\voice_unbelievable.ogg
  055025ce 33095      sounds\voice_welcomeback.ogg
  0550a715 65055      sounds\voice_welcometobejeweled.ogg
  0551a534 6157       sounds\zen_checkoff.ogg
  0551bd41 5623       sounds\zen_checkon.ogg
  0551d338 18348      sounds\zen_combo_2.ogg
  05521ae4 7775       sounds\zen_dropdownbutton.ogg
  05523943 42128      sounds\zen_mantra1.ogg
  0552ddd3 22783      sounds\zen_menuclose.ogg
  055336d2 16384      sounds\zen_menuexpand.ogg
  055376d2 25862      sounds\zen_menuopen.ogg
  0553dbd8 11565      sounds\zen_menushrink.ogg
  05540905 41769      sounds\zen_necklace_1.ogg
  0554ac2e 88050      sounds\zen_necklace_2.ogg
  05560420 82314      sounds\zen_necklace_3.ogg
  055745aa 98100      sounds\zen_necklace_4.ogg
  0558c4de 79031      temple.p3d
  0559f995 92718      warptube.p3d
  055b63c3 4152       warptube_cap.p3d

- 10117 files found in 23 seconds
  coverage file 0   100%   90502570   89879547  . offset 000981b9

Press ENTER or close the window to quit_

The Extracted Assets

Audio

Bejeweled 3's music uses an MO3 tracker modulemusic\Bejeweled3_suite.mo3.  The sound effects are OGG files.

Graphics

Bejeweled 3 uses a few JPEGs and PNGs, but the vast majority of the graphics are JPEG2000s, sometimes paired with 16-color gray-scale GIFs which define their opacity (alpha channels).  The game seems to be finicky about the JPEG2000s' formatting, and in my few attempts I have not successfully imported any replacement JPEG2000 images.

If you want to view JPEG2000s using paint.net, here are a couple of useful plug-ins:

Most of the graphics come resized and sorted for the three supported resolutions:  800x600, 1024x768, and 1920x1200.  If you plan on replacing any graphics, either be sure to pick the resolution you play in or replace all 3 sizes.

There are other data files for animations and 3-D effects.

Miscellaneous

Under properties\ are some text, XML, and configuration files.  A few are unused, while others can be edited to change in-game messages, enable unused game modes, or possibly even alter game parameters (i.e. cheat).

Recompiling the Archive

At the command prompt, go to where you put the PopCap Framework.  Change to its subdirectory tools\ and run PopPak.exe with the following command:

PopPak.exe /P main.pak path\to\asset\files

For example:

C:\Program Files (x86)\PopCap_Framework_v1.3\tools>PopPak.exe /P main.pak "C:\Program Files (x86)\Steam\steamapps\common\Bejeweled 3\dump"

This will generate a new main.pak at the same location as PopPak.exe.  You'll need to move it to the location of Bejeweled 3, e.g. “C:\Program Files (x86)\Steam\steamapps\common\Bejeweled 3\”.  I strongly recommend you back up the original main.pak in case your new one breaks the game.  When you start the game, if the loading-progress ring seems to get stuck for a while, your new main.pak is probably broken.

Restoring the Original Assets

It's always a good idea to back up main.pak before fiddling with it.  Simply renaming the file is sufficient, e.g. to main.orig.pak.  If you backed it up, simply delete the new main.pak and rename your backup to main.pak.

If you did not back up your original main.pak, you can restore it through Steam:

  • In your Steam library, right-click Bejeweled 3 in your library list.
  • Click "Properties."
  • Click the "LOCAL FILES" tab.
  • Click “VERIFY INTEGRITY OF GAME FILES...”

A word of caution:  Doing this may or may not delete your saved game progress and replace it with a fresh, empty profile, so you might want to back that up before having Steam reset your files.  If you installed the game through Steam, your save data should be located at %USERPROFILE%\AppData\Local\Steam\Bejeweled3\Users\ (where %USERPROFILE% is C:\Users\WINDOWS_USERNAME).

Alternatively, depending on your distribution of Bejeweled 3, the save files could be at one of these locations:

  • %USERPROFILE%\AppData\Local\PopCap Games\Bejeweled3\Users\
  • %USERPROFILE%\AppData\Local\GameHouse\Bejeweled3\users\
  • %USERPROFILE%\AppData\Local\iWin\Bejeweled3\users\

Other Notes

  • You should be able to use PopPak.exe to also decompile main.pak, thus eliminating the need for QuickBMS, but I haven't been able to get it to work; when I try, the program just exits without any messages.
  • These archive decompilers/compilers should also work with some other PopCap games, such as Plants vs Zombies.

Back to the main Bejeweled 3 page.