Difference between revisions of "Barbie Fashion Show"

From Foone Wiki
Jump to navigation Jump to search
(Created page with "== Basic details == Barbie Fashion Show was released in 2004 by Vivendi. It uses the [https://web.archive.org/web/20070428043806/http://www.powerrender.com/2007/homepage.htm P...")
 
Line 1: Line 1:
== Basic details ==
== Basic details ==
Barbie Fashion Show was released in 2004 by Vivendi. It uses the [https://web.archive.org/web/20070428043806/http://www.powerrender.com/2007/homepage.htm Power Render game engine], targeting DirectX.
[https://www.mobygames.com/game/161608/barbie-fashion-show/ Barbie Fashion Show] was released in 2004 by Vivendi, developed by Knowledge Adventure (now known as Jumpstart Games). It uses the [https://web.archive.org/web/20070428043806/http://www.powerrender.com/2007/homepage.htm Power Render game engine], targeting DirectX.


Scripting is provided by Python 2.2, implemented through [https://www.riverbankcomputing.com/software/sip/ SIP by Riverbank Computing].
Scripting is provided by Python 2.2, implemented through [https://www.riverbankcomputing.com/software/sip/ SIP by Riverbank Computing].
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 ==
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.


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


== See also ==
===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
{| class="wikitable"
|+
!Name
!Class
!Purpose
|-
|CAT
|'''Meta'''
|Starts the file
|-
|RIFF
|'''Meta'''
|
|-
|RsCk
|'''Meta'''
|
|-
|DtFm
|
|
|-
|FtFm
|
|
|-
|IfFm
|
|
|-
|InFm
|
|
|-
|LvFm
|
|
|-
|MtFm
|
|
|-
|ObFm
|
|
|-
|PhFm
|
|
|-
|PtFm
|
|
|-
|ScFm
|'''Scripting'''
|Modified .pyc bytecode
|-
|SnFm
|
|
|-
|SsFm
|
|
|-
|StFm
|
|
|-
|TbFm
|
|
|-
|TrFm
|
|
|-
|TxFm
|
|
|}


== Python ==
* [https://digipres.club/@foone/110584666308562791 Mastodon thread for researching the game]
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 [https://sourceforge.net/projects/easypythondecompiler/ 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)

==See also==

*[https://digipres.club/@foone/110584666308562791 Mastodon thread for researching the game]

Revision as of 20:06, 25 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

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
ObFm
PhFm
PtFm
ScFm Scripting Modified .pyc bytecode
SnFm
SsFm
StFm
TbFm
TrFm
TxFm

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)

See also