the cutting room mirror

Peggle 2

Unused Levels#

A portion of level files are present but went unused in normal gameplay. Most of these are tests. The game calls the level files from levels.json and multiplayer.json and said files in the game's data aren't mentioned in them.

Berg7NewHu.lvl
Berg8New2.lvl
BergPegTest.lvl
Bjorn01.lvl
Bjorn2Slide.lvl
Bjorn2Slide02.lvl
Bjorn04.lvl
Bjorn05.lvl
Bjorn06.lvl
Bjorn07.lvl
Bjorn08.lvl
Bjorn09.lvl
Bjorn10.lvl
BjornBackInTheBox.lvl
BjornMadEye.lvl
Cluster.lvl
CreepyEyes2.lvl
EditorTestLevel.lvl
Berg8New2.lvl

Unused Graphics#

Images for a level editor.

On PS4, the texture atlas is different and also is 256×256.

Thunderball_1080 is leftover on PS4 having no use by the game, containing the graphics of Peggle's PlayStation 3 adaptation, all crammed into 4 texture atlases.

Video file oddities#

Duplicated video files#

To do:
Those files are different internally.

The files Intro.bk2 and Masters_Intro.bk2 in the Video directory are duplicated copies of Berg_Intro.bk2, being Berg's intro without any audio channels. These were most likely copied from high-end releases as it is present on Xbox 360 which only has video files in 720p.

Other files with no audio channels#

On Xbox 360, the following files have no audio channels. The two being the DLC characters that skipped this release.

Jimmy_Intro.bk2
Wendy_Intro.bk2

Unused Text#

String ID

English (US)

German

Spanish

French

Italian

Portuguese

Japanese

AREA_FAIRY_TEST_NAME

Fairy Test Levels

AREA_AREA_SPECIALTEST_NAME

Playtest Levels

AREA_TEST_NAME

Test Levels

AREA_TEST_NAME

Test Levels

BergPegTest

BergPegTest

CHARACTER_TEST

Character Test string.

Character Test string.

Character Test string.

Character Test string.

Character Test string.

Character Test string.

Character Test string.

DELETEME

Purples

LEVEL_FAIRY_PLACEHOLD_DESC

I'm some Fairy level placeholder text! WOOOOO!!!

please_delete

Multiball

SpeechBubbleFairyIntroTest_DLC2

I'm a test of Fairy dialog! Wheeee!

Ich bin ein Feen-Testdialog! Wheeee!

¡Soy un diálogo de prueba de hada! ¡Wiiii!

Sou um diálogo de teste de Fada! Wohoo!

SpeechBubbleFairyPlaceholder_DLC2

I'm now speaking words that are holding a place! Language is wonderful!

Ich spreche nun Platzhalter-Worte. Sprache ist wundervoll!

¡Estas palabras están ocupando una caja! ¿No es maravilloso?

Agora estou falando palavras que estão reservando este espaço. Os idiomas são maravilhosos!

Test

Foo bar bing baz

Foo bar bing baz

Foo bar bing baz

Foo bar bing baz

Foo bar bing baz

Foo bar bing baz

Foo bar bing baz

Most are placeholders. The developers had fun localizing the game.

Development Text#

# MAX: This first WaitForTime is here because resource loading screws up the first fade otherwise

Debugging Material#

Debug Console#

To do:
Get this working if possible. Working functions exist in code to detect the entries. Fix typos if possible.

The game executable mentions a debug console.

Command

Help text

Effect

/easycoolclear

Writes this text to the console on the following failures, otherwise does the said action, targets likely relate to pegs.

Could not /easycoolclear -- No non-orange targets remaining...
Could not /easycoolclear -- No orange targets remaining...
/easyfever

Use with ultra grants an Ultra Extreme Fever while low grants a Fever.

/power
  /power [n]        - activate power

Writes this text to the console.

CHEAT KEY: Activate Power
/help

Depends on the below.

Displays the help text of the given command.

/profile.dump
  /profile.dump <page_idx_or_filter>     - Dump out details about the player's profile. Argument is either page or beginning string filter.

Writes this text to the console.

   LEVELS
----

                                         name idx won ulk ace ult opt
  %03d+-




PROFILE DUMP (%d pages)

----
/profile.reset
  /profile.reset                            - Resets the player's profile.
/profile.unlocklevel
  /profile.unlocklevel <level_id>         - Unlock single level. Id can be either index (starting at 0) or level name string.

If the level is invalid, writes this text to the debug console.

Invalid level '%s'

Otherwise, writes this after success.

Unlocked level idx '%d'
/profile.unlockarea
  /profile.unlockarea <area_id>            - Unlock all levels in an area. Id must be area name string.

If the level is invalid, writes this text to the debug console.

Invalid level '%s'

Otherwise, writes this after success.

Unlocked level '%S' (%d)
//profile.trophies

If the level is invalid, writes this text to the debug console.

Invalid level '%s'

Otherwise, writes this after success.

Unlocked level '%S' (%d)
/profile.unlockchallenges
  /profile.unlockchallenges <area_id>        - Unlock all challenges in an area. Id must be area name string.
/profile.unlock
  /profile.unlock                          - Unlocks all levels.
/profile.unlockcostume
  /profile.unlock <costumeId>       - Unlock a costume with id from unlocks.json->costume.
/profile.objectivecount
  /profile.objectivecount <n> <areaid> - Marks the first [n] objectives for an area as complete, and false for the remaining objectives

If the data provided is valid, writes this text to the debug console.

Success

Otherwise, writes this.

[ERROR] No area by id: %s
/net.timeout
  /net.timeout[x]                         - Sets PopNet's connection timeout (in seconds)
/net.cloudkey
  /net.cloudkey                          - Specify a name for a isolated multiplayer sandbox
/config.reload
  /config.reload                            - Reload level,background,challenge json config files from res/ dir (windows only)
/perf.toggleparticles
  /perf.toggleparticles <on|off>         - Toggle global popanim particles
/perf.togglesound
  /perf.togglesound <on|off>             - Toggle global sound
/nostrings

Added on Xbox One.

/dlcoverride

Added on Xbox One.

/perf.cyclestats
  /perf.cyclestats <on|off>                       - Cycle performance statistics view
/addbluehitcount
  /addbluehitcount [x]                    - Increase lifetime blue pegs hit by x

Writes this text to the console.

Added %i blue pegs hit, new total %i
/addorangehitcount
 /addorangehitcount [x]                 - Increase lifetime orange pegs hit by x

Writes this text to the console.

Added %i orange pegs hit, new total %i
/addgreenhitcount
  /addgreenhitcount [x]                  - Increase lifetime green pegs hit by x

Writes this text to the console.

Added %i green pegs hit, new total %i
/showpegcounts
  /showpegcounts                            - Display lifetime blue/orange/green pegs hit

Writes this text to the console.

Lifetime peg totals: blue %i, orange %i, green %i
/unlockFullVersion
  /unlockFullVersion                        - Unlocks the full version of the game
/setTrialVersionTimer
  /setTrialVersionTimer [x]              - Sets time left in trial version to x (in milliseconds)
/groupsInMemory
  /groupsInMemory                          - Dump names of resource groups currently loaded
/scenery.controlstyle

Assumedly sets the control style, used by /scenery.controlstyle %s, can be set to gamepad/controller or spatial/kinect/mouse.

/perf.toggleupdate

Unknown.

/dumpmem

Dumps memory leaks to mem_leaks.txt.

/auc

Unknown.

/forcespacial

Forces the control type to be a spacial controller.

/forcegamepad

Forces the control type to be a gamepad/controller.

/newhost

Unknown.

/mpcid

Unknown, likely sets the the Multiplayer Correlation ID, writes this to the console:

Multiplayer Correlation ID: %s
/clearinvite

Unknown, likely clears the invite writes this text to the console:

XInviteGetAcceptedInfo returned: %ld
/next
  /next      - Jump to next level
/prev
  /prev      - Jump to prev level
/mp.auto
  /mp.auto [on|off] - Toggles auto-play in multiplayer modes.

Revisional Differences#

PlayStation 4#

  • Textures and prerendered videos were redone to support 1080p.
  • The following text strings were altered:

String ID

English (US, Xbox 360)

English (US, PlayStation 4)

German

German (PlayStation 4)

Spanish

Spanish (PlayStation 4)

French

French (PlayStation 4)

Italian

Italian (PlayStation 4)

Portuguese

Portuguese (PlayStation 4)

Japanese

Japanese (PlayStation 4)

ButtonLabelOptions

Settings

Options

DialogTitleOptionsMenu

SETTINGS MENU

OPTIONS MENU

DLC2_Achievement_32_locked

Complete all Hallelujah Hollow objectives

Complete all Hallelujah Hollow optional objectives

DLC2_Achievement_32_unlocked

Completed all Hallelujah Hollow objectives

Completed all Hallelujah Hollow optional objectives

DLC2_Achievement_33_locked

Complete 210 objectives

Complete 210 optional objectives

DLC2_Achievement_33_unlocked

Completed 210 objectives

Completed 210 optional objectives

DLC2_MP_CHARSELECT_PURCHASE

You can unlock this master from our fancy store! Would you like to go to the store now? You will exit the current multiplayer lobby or press B to cancel.

You can unlock this content from our fancy store! Would you like to go to the store now? You will exit the current multiplayer lobby or press @{60}IMAGE_GAMEPAD_B@ to cancel.

Error_ActiveProfileChangedMessage

The active player has changed. Please sign in.

The active player has changed.

Error_SignOut

The active profile has changed. Returning to the title screen.

The active player has changed. Returning to the main menu.

HTPChallengesBody

Trials are unique Peggle challenges, and are often used to highlight different Master powers and specific style shots.

 Trials have special rules. For instance, there may be more orange pegs than normal, or the Master power may be on for every shot. Expect the unexpected!

 Each Master has 10 trials.
Trials have special rules.
For instance, there may be more orange pegs than normal, or
the master power may be on for every shot.
Expect the unexpected!


Each Master has 10 trials. Beat trials to earn more horseshoes
to unlock costumes and other goodies!


Trials are often used to highlight
different Masters' powers and style shots.

HTPDuelBody

Peggle 2 Duel mode allows two players to compete on the same board. 
In Peggle 2 Duel mode, two players take turns shooting the ball. 
The player with the most points at the end of the game wins.

 
You must hit at least one orange peg in each shot. 
If you don't, then you are penalized 25% of your total score.

There are no Free Balls in Duel mode. 
Instead, you get a Bucket Bonus every time the ball goes in the bucket.


The game ends when either the last orange peg is hit or when both players have run out of balls.
  • The following text strings were removed aside from most console-specific strings:
ButtonLabelFriends
ButtonLabelMyScore
ButtonLabelOverall

Internal Project Name#

The game's internal title is PeggleNext, according to its executable name. "Next" is possibly short for "next generation".