Barbie Fashion Show

From Foone Wiki
Jump to navigation Jump to search

Basic details

Barbie Fashion Show was released in 2004 by Vivendi, developed by Knowledge Adventure (now known as Jumpstart Games). It uses the Power Render game engine, targeting DirectX.

Scripting is provided by Python 2.2, implemented through SIP by Riverbank Computing.

The game's internal engine is apparently called Ring0 or "R0".

Data Files (KAR)

The main data files are .KAR files. The game has a total of 41 KAR files.

KAR files are built on an IFF/RIFF format, with inconsistent endianness.

KAR Chunks:

The function at 004ee380 in BarbieFashion.exe seems to select how different chunks are loaded. From that function we can extract all (?) chunk types, other than meta chunks

Name Class Purpose
CAT Meta Starts the file
RsCk Meta
MtFm Textures
ScFm Scripting Modified .pyc bytecode
SnFm Sounds Sound effects
TrFm Textures
TxFm Textures


Python bytecode in the form of modified .pyc files exists in two forms:

  • The sipEngine.bc file which is loaded at game start
  • ScFm chunks. These are saved in the files GlobalSc.kar ModelMatcherSc.kar PortfolioSc.kar SigninSc.kar Stage5Sc.kar TravelSc.kar

In both cases, they are missing their header. Add the bytes "2D ED 0D 0A 00 00 00 00" to the beginning of the file, and they can be successfully decompiled by Easy Python Decompiler.

For the kar files, as they are the only chunk in the file, you can convert them to stand-alone .BC files by removing the first 44 bytes. Then add the above bytes and rename to .pyc to disassemble.

The game registers two modules with the python interpreter:

  • libsip (used to let python code extend C++ classes)
  • libEnginec (game engine functionality)

KAS files

KAS files are used for music. The two KAS files are CreditsStream1.KAS and globalStream1.KAS.

Both are Ogg Vorbis soundfiles with a 4-byte header added. In both cases the header is 31 CC CC CC, and when removed, they can be opened by any .ogg program.

GlobalStream1.KAS is 38 minutes, 43 seconds

CreditsStream1.KAS is 3 minutes, 53 seconds.

See also