Difference between revisions of "Barbie Fashion Show"

From Foone Wiki
Jump to navigation Jump to search
 
(2 intermediate revisions by the same user not shown)
Line 6: Line 6:
The game's internal engine is apparently called Ring0 or "R0".
The game's internal engine is apparently called Ring0 or "R0".


==Data Files ==
==Data Files (KAR) ==
The main data files are .KAR files. The game has a total of 41 KAR files.
The main data files are .KAR files. The game has a total of 41 KAR files.


Line 52: Line 52:
|-
|-
|MtFm
|MtFm
|'''Textures'''
|
|
|
|-
|-
Line 72: Line 72:
|-
|-
|SnFm
|SnFm
|'''Sounds'''
|
|Sound effects
|
|-
|-
|SsFm
|SsFm
Line 88: Line 88:
|-
|-
|TrFm
|TrFm
|'''Textures'''
|
|
|
|-
|-
|TxFm
|TxFm
|'''Textures'''
|
|
|
|}
|}
Line 110: Line 110:
* libsip (used to let python code extend C++ classes)
* libsip (used to let python code extend C++ classes)
* libEnginec (game engine functionality)
* 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==
==See also==

Latest revision as of 21:54, 30 June 2023

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
RIFF Meta
RsCk Meta
DtFm
FtFm
IfFm
InFm
LvFm
MtFm Textures
ObFm
PhFm
PtFm
ScFm Scripting Modified .pyc bytecode
SnFm Sounds Sound effects
SsFm
StFm
TbFm
TrFm Textures
TxFm Textures

Python

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