the cutting room mirror

Club Penguin: Elite Penguin Force

This article has a talk page!
view on tcrf.net

Unused Graphics#

CPEPF_Unused_cutscene_1.png CPEPF_Unused_cutscene_2.png

Selecting the 30th cutscene in the debug menu reveals an early version of the Protobot 3000 cutscene, which unlike the final, isn't animated. There is text at the bottom left, most likely reading 'FPO', which is an abbreviation of "for placement only".

Unused Sprites#

To do:
There are way more unused sprites than this, including sprites for an earlier iteration of the Snowboarding minigame.

Early Designs for Dot#

CPEPF_Dot_Large.png CPEPF_Dot_small.png CPEPF_DotTrash_Out.png

Unused sprites of what are presumed to be early designs for Dot.

Unused Rooms#

To do:
get a screenshot of the unused map screen.

There is an unused room in the game with ID 00. It resembles the map screen, but has large orange crosses where the locations are supposed to be.

You can access this room with an Action Replay code to edit the destination room during a transition. You will need to find the address in RAM for the destination room, as this address changes location. Search for E8 addresses while standing in a room, then go to the snow forts and search for addresses with 28 before the transition circle closes all the way (pausing using an emulator is recommended.) Keep doing this with different room IDs according to the table below, and you will find the transition destination address.

During a transition, before the circle closes, set the address to the room you want to go to. Before the circle fully opens again at the destination, set the address to E8 to prevent a softlock. Finally, when you have arrived, turn off the code.

ID

Room

00

Weird map screen

01

Ski lodge attic

02

Beach

03

Beacon

04

Boiler room

05

Book room

06

Wilderness cave

07

Coffee shop

08

Command room (softlock if not unlocked)

09

Dock

0A

Dojo

0B

Ice fishing pond

0C

Forest

0D

Gadget room (softlock if not unlocked)

0E

Gadget room (Mission 13)

0F

Gary's room

10

Gift Shop

11

Gift Shop office

12

Gift Shop roof

13

HQ (softlock if not unlocked)

14

Iceberg

15

Ice rink

16

Lighthouse

17

Ski lodge

18

Dance lounge

19

Mine shack

1A

Mine cave

1B

Cave where Gary was trapped

1C

Protobot lair

1D

Softlock

1E

Tool shed

1F

Night club

20

Pet shop

21

Pizza parlor

22

Plaza

23

Cave

24

Puffle training room (softlock if not unlocked)

25

Ski hill

26

Ski village

27

Softlock

28

Snow forts

29

Sport shop

2A

Stage

2B

Stage (Mission 13)

2C

Softlock

2D

Tallest Mountain (Mission 13)

2E

Tallest Mountain (Mission 13) (Empty, unused)

2F

Town

30

Wilderness next to cliff

31

Wilderness next to fallen log

32

Wilderness river-stump-cliff room

33

Wilderness tree stump

34

Wilderness river

35

Wilderness outside cave

Unused Music#

To do:
There are two more unused songs that need to be documented.

There is a seemingly unused track in the game, with ID 01. The track sounds very similar to the Command Room music, so it could be an early version.

It can be accessed in-game with the following code:

0227988C 000000??

Replace ?? with one of these IDs:

ID

Music

00

Main theme

01

Unused?

02

Command room

03

Coffee shop

04

Ski village

05

HQ

06

Town

07

Gift Shop

08

Ski lodge

09

Pizza Parlor

0A

Coffee Shop

0B

An Agent's Work is Never Done

0C

Cart Surfer

0D

Ice fishing

0E

Gadget room

0F

Night club

10

Dojo

11

Boiler room

12

Menu

13

Stage

14

Beach

15

Mine shack

16

Mine caves

17

Jet Pack Adventure

18

Snowboarding

19

Snow trekker

1A

Mission complete

Unused Cutscene#

To do:
There's another one of these somewhere in the files.

A test background for the snowboarding minigame.

Watch on YouTube

Debug Menu#

Cpepf-debugmenu.png

There is a debug menu still present in the game's code. It allows you to modify the player's coins, activate minigames and missions, and view cutscenes.

It can be accessed with the following Action Replay code (EU)ː

1210AD2C 00002024

Once the debug menu has been accessed, the second half of the code must be changed to 00006800, or you will not be able to do anything.

This menu has a button to access it in the prototype of the game.

Build Dates#

Each of the game's releases have a version label and build date that are loaded in memory. The numbers in the "T" segment are Unix timestamps.

Version

Offset

String

Timestamp

US Rev0

0x1B08F4

[VERSIONBLOCK|V15146          |T1223422984|MGoliath2       |]

Oct 07 2008 23:43:04

EU

0x1ABFA0

[VERSIONBLOCK|V15270          |T1232148633|MGoliath2       |]

Jan 16 2009 23:30:33

FR

0x1B20B4

[VERSIONBLOCK|V15530          |T1237250813|MGoliath2       |]

Mar 17 2009 00:46:53

US Rev1

0x1B21F4

[VERSIONBLOCK|V15543          |T1237565400|MGoliath2       |]

Mar 20 2009 16:10:00

US Rev2

0x1ADBC4

[VERSIONBLOCK|V15650          |T1277264395|MGAMBIT         |]

Jun 23 2010 03:39:55

SP

0x1ADBA4

[VERSIONBLOCK|V15669          |T1279641405|MGAMBIT         |]

Jul 20 2010 15:56:45

GE

0x1A04B4

[VERSIONBLOCK|V15816          |T1320190560|MROGUE          |]

Nov 01 2011 23:36:00

DGamer.xml#

Inside the /dgamer/ folder is a XML file named DGamer.xml. The file itself contains general settings for DGamer on the DS, but it also has a few dev comments in it.

<dgamer gamename="Club Penguin" cmsid="136103" ggid="0x00400583" platform="DGamerDS" version="2008.09.05.11.27.16" embededSRL="true">
  • The build date of the Client.
 <!-- Default items are like game unlockables, but backend only, so category DGamer.  I'm carving out
         slots for them in the DGamer_Data array to avoid confusion, but they don't actually need them.  -->
    <!-- <unlockable category="DGamer" id="161460" dgamerid="46848" /> --> <!--  Club Penguin T-shirt -->
    <!-- <unlockable category="DGamer" id="161465" dgamerid="46849" /> --> <!--  Spy Costume -->
    <!-- <unlockable category="DGamer" id="161466" dgamerid="46851" /> --> <!--  Club Penguin Puffle T-shirt -->
  • This one, which is in , has some outfits that were commented out.
<!-- Enter up to eight (8) Wireless (adhoc) chat stages/lobbies that will be listed to player -->
  <!-- They will be listed on the client according to the order attribute (A-Z = top-bottom) -->
  <stages>
    <stage name="Bronze Room" order="A" />
    <stage name="Gold Room" order="B" />
    <stage name="Green Room" order="C" />
    <stage name="Orange Room" order="D" />
    <stage name="Pink Room" order="E" />
    <stage name="Purple Room" order="F" />
    <stage name="Silver Room" order="G" />
    <stage name="Yellow Room" order="H" />
  </stages>
  • This has something to do with the chat lobbies.
<events>
    <event id="136103" gameid="0" source="GAME" type="dgamer_ClubPenguin_ElitePenguinForceTrainee 0 0 0 dgamer" />
    <event id="136103" gameid="1" source="GAME" type="dgamer_ClubPenguin_ElitePenguinForceRank1 0 0 0 dgamer" />
    <!-- The following event was improperly created on the backend, however, it's easier to break it here as well, rather than fix the backend -->
    <event id="136103" gameid="2" source="GAME" type="dgamer_ClubPenguin_unlockElitePenguinForceRank2 0 0 0 dgamer" />
    <event id="136103" gameid="3" source="GAME" type="dgamer_ClubPenguin_ElitePenguinForceRank3 0 0 0 dgamer" />
    <event id="136103" gameid="4" source="GAME" type="dgamer_ClubPenguin_ElitePenguinForceRank4 0 0 0 dgamer" />
    <event id="136103" gameid="5" source="GAME" type="dgamer_ClubPenguin_ElitePenguinForceRank5 0 0 0 dgamer" />
    <event id="136103" gameid="6" source="GAME" type="dgamer_ClubPenguin_RegisteredDGamer 0 0 0 dgamer" autofire="true" />

    <event id="136103" gameid="7" source="GAME" type="dgamer_ClubPenguin_unlockClubPenguinTShirt 0 0 0 dgamer" autofire="true" />
    <event id="136103" gameid="8" source="GAME" type="dgamer_ClubPenguin_unlockSpyCostume 0 0 0 dgamer" />
    <event id="136103" gameid="9" source="GAME" type="dgamer_ClubPenguin_unlockClubPenguinPuffleTShirt 0 0 0 dgamer" />
    <!-- The following event was also improperly created on the backend, now broken here to match -->
    <event id="136103" gameid="10" source="GAME" type="dgamer_ClubPenguin_unlockSpyglasses 0 0 0 dgamer"  />
    <event id="136103" gameid="11" source="GAME" type="dgamer_ClubPenguin_unlockBluePuffleTShirt 0 0 0 dgamer"  />
    <event id="136103" gameid="12" source="GAME" type="dgamer_ClubPenguin_unlockEPFBaseballCap 0 0 0 dgamer"  />
    <event id="136103" gameid="13" source="GAME" type="dgamer_ClubPenguin_unlockRedPuffleTShirt 0 0 0 dgamer"  />
    <event id="136103" gameid="14" source="GAME" type="dgamer_ClubPenguin_unlockYellowPuffleTShirt 0 0 0 dgamer"  />
    <event id="136103" gameid="15" source="GAME" type="dgamer_ClubPenguin_unlockEPFTShirt 0 0 0 dgamer"  />
    <event id="136103" gameid="16" source="GAME" type="dgamer_ClubPenguin_unlockToque 0 0 0 dgamer"  />
    <event id="136103" gameid="17" source="GAME" type="dgamer_ClubPenguin_unlockPuffleTShirt 0 0 0 dgamer"  />
    <event id="136103" gameid="18" source="GAME" type="dgamer_ClubPenguin_unlockBlackPuffleTShirt 0 0 0 dgamer"  />
    <event id="136103" gameid="19" source="GAME" type="dgamer_ClubPenguin_unlockPurplePuffleTShirt 0 0 0 dgamer"  />
    <event id="136103" gameid="20" source="GAME" type="dgamer_ClubPenguin_unlockAstroBlasterTShirt 0 0 0 dgamer"  />
    <event id="136103" gameid="21" source="GAME" type="dgamer_ClubPenguin_unlockSpyPod 0 0 0 dgamer"  />
  </events>
  • Game specific events for DGamer.
<!-- DGamer DS dynamic configuration, for Club Penguin DS -->
  • Seen at the beginning of the XML, this probably means that the DGamer client was made during early development.
 <!--  DGamer specific unlockables, note that these shouldn't be fired if id (e.g. 117358) already exists in the backpack -->
    <unlockable category="StarterSet" starterSetID="0" id="117358" eventid="116060" source="GAME" type="dgamer_dgamer_registerSetA0 0 0 0 dgamer"/>
    <unlockable category="StarterSet" starterSetID="0" id="117358" eventid="116060" source="GAME" type="dgamer_dgamer_registerSetA1 0 0 0 dgamer"/>
    <unlockable category="StarterSet" starterSetID="0" id="117358" eventid="116060" source="GAME" type="dgamer_dgamer_registerSetA2 0 0 0 dgamer"/>
    <unlockable category="StarterSet" starterSetID="0" id="117358" eventid="116060" source="GAME" type="dgamer_dgamer_registerSetA3 0 0 0 dgamer"/>

    <unlockable category="StarterSet" starterSetID="1" id="117358" eventid="116060" source="GAME" type="dgamer_dgamer_registerSetB0 0 0 0 dgamer"/>
    <unlockable category="StarterSet" starterSetID="1" id="117358" eventid="116060" source="GAME" type="dgamer_dgamer_registerSetB1 0 0 0 dgamer"/>
    <unlockable category="StarterSet" starterSetID="1" id="117358" eventid="116060" source="GAME" type="dgamer_dgamer_registerSetB2 0 0 0 dgamer"/>
    <unlockable category="StarterSet" starterSetID="1" id="117358" eventid="116060" source="GAME" type="dgamer_dgamer_registerSetB3 0 0 0 dgamer"/>

    <unlockable category="StarterSet" starterSetID="2" id="117358" eventid="116060" source="GAME" type="dgamer_dgamer_registerSetC0 0 0 0 dgamer"/>
    <unlockable category="StarterSet" starterSetID="2" id="117358" eventid="116060" source="GAME" type="dgamer_dgamer_registerSetC1 0 0 0 dgamer"/>
    <unlockable category="StarterSet" starterSetID="2" id="117358" eventid="116060" source="GAME" type="dgamer_dgamer_registerSetC2 0 0 0 dgamer"/>
    <unlockable category="StarterSet" starterSetID="2" id="117358" eventid="116060" source="GAME" type="dgamer_dgamer_registerSetC3 0 0 0 dgamer"/>

    <unlockable category="StarterSet" starterSetID="3" id="117358" eventid="116060" source="GAME" type="dgamer_dgamer_registerSetD0 0 0 0 dgamer"/>
    <unlockable category="StarterSet" starterSetID="3" id="117358" eventid="116060" source="GAME" type="dgamer_dgamer_registerSetD1 0 0 0 dgamer"/>
    <unlockable category="StarterSet" starterSetID="3" id="117358" eventid="116060" source="GAME" type="dgamer_dgamer_registerSetD2 0 0 0 dgamer"/>
    <unlockable category="StarterSet" starterSetID="3" id="117358" eventid="116060" source="GAME" type="dgamer_dgamer_registerSetD3 0 0 0 dgamer"/>
  • DGamer Specific Unlockables.

Revisional Changes#

Besides the original release, this game has 2 revisions, and was released across many different regions.

Title Screen#

Probably the biggest change is the removal of DGamer in the European release and the microphone option being added from the first revision onwards.

USA v1.0

Europe

France

USA v1.1

"Licensed by Nintendo"#

Another visual change is the "Licensed by Nintendo" screen, changing each revision.

USA v1.0

Europe

USA v1.1