OBD:BINA/OBJC: Difference between revisions

From OniGalore
Jump to navigation Jump to search
m (contrary to Windows' claims, these are not "RAW" files)
(shocking revelation: OBJC stands for Objects, not Object Collection; see ASCII string in game app; rewrote BBB part)
Line 1: Line 1:
{{OBD BINA Header|prev=TMBD|type=OBJC|next=ONIE|name=Object Collection|onistuff=bina}}
{{OBD BINA Header|prev=TMBD|type=OBJC|next=ONIE|name=Objects|onistuff=bina}}


OBJC files are lists of objects. Objects are composed of a standard wrapper and then type-specific data which has its own tags. OBJC objects could be edited in-game by the developers using the GUI which was discovered by fans in the German [[Big Blue Box]] version of Oni. The editing interface is pictured on the pages of the types which the interface could edit.


;Example file
;Example file
:[[OBD:BINA/OBJC/PWRU|CJBOPowerUp.BINA]] from dunno where (level 3, probably)
:[[OBD:BINA/OBJC/PWRU|CJBOPowerUp.BINA]] from level 3
;Offsets
;Offsets
:Offsets are given with respect to the start of the raw file's data part.
:Offsets are given with respect to the start of the raw file's data part.
Line 13: Line 14:
{{table}}
{{table}}
{{OBDth}}
{{OBDth}}
{{OBDtr|0x00|4CC|FF0000|43 4A 42 4F|OBJC|object collection}}
{{OBDtr|0x00|4CC|FF0000|43 4A 42 4F|OBJC|objects}}
{{OBDtr|0x04|int32|FFFF00|18 02 00 00|536|size to end of OBJC from 0x08, in bytes}}
{{OBDtr|0x04|int32|FFFF00|18 02 00 00|536|size to end of OBJC from 0x08, in bytes}}
{{OBDtr|0x08|int32|00FF00|27 00 00 00|39| object collection version }}
{{OBDtr|0x08|int32|00FF00|27 00 00 00|39|object format version}}
{{OBDtr|0x0C|int32|00FFFF|28 00 00 00|40|size of next (first) object (black outline)}}
{{OBDtr|0x0C|int32|00FFFF|28 00 00 00|40|size of next object (black outline)}}
{{OBDtrBK|0x10 - 0x37 : first object (40 bytes)}}
{{OBDtrBK|0x10 - 0x37 : first object (40 bytes)}}
{{OBDtr|0x38|int32|FFFFFF|28 00 00 00|40|size of next (second) object}}
{{OBDtr|0x38|int32|FFFFFF|28 00 00 00|40|size of next object}}
{{OBDtrBK|0x3C - ... : second object (40 bytes), etc}}
{{OBDtrBK|0x3C - ... : second object (40 bytes), etc}}
|}
|}
;General layout
;General layout
:The collection's header (first 16 bytes) and layout is common to all 16 OBJC types (see below).
:The list's header (first 16 bytes) and layout is common to all 16 OBJC types (see below).
:*The size of the whole collection is announced at 0x04 (int32), followed by the collection.
:*The size of the whole list is announced at 0x04 (int32), followed by the list.
:*Unlike ONIE and TMBD (which are arrays), OBJC announces the size of every object (int32).
:*Unlike ONIE and TMBD (which are arrays), OBJC announces the size of every object (int32).
:*After the last object, the end of the collection is signaled by a null next object size.
:*After the last object, the end of the list is signaled by a null next object size.


;Object header
;Object header
Line 48: Line 49:
----
----
==OBJC types==
==OBJC types==
A given collection can only hold objects of a specific type, which can be :  
A given list can only hold objects of a specific type, which can be:  
{|
{|
|
|
{|{{OBDtable}}
{|{{OBDtable}}
|-bgcolor=#E9E9E9
|-bgcolor=#E9E9E9
!Type!!Long name!!Filename
!Type!!Long name!!File name
|-
|-
|[[OBD:BINA/OBJC/CHAR|CHAR]]||Character||CJBO'''Character'''.BINA
|[[OBD:BINA/OBJC/CHAR|CHAR]]||Character||CJBO'''Character'''.BINA
Line 88: Line 89:
|}
|}
|}
|}
;Blue Box Beta "revelations"
:A German Mac Beta version was released as part of a compilation of old Mac games.
:The version contained extra [[OBD:WMDD|WMDD]] files, part of Oni's developer GUI.
:Supposedly it allowed developers to edit OBJC files while running the game.
:Those menus provide additional information about the structure of a few OBJC types.
:*It's available as screenshots on the respective pages.
:*Folder with all bluebox images: http://ssg.oni2.net/subfold/bluebox/images/


{{OBD BINA Footer|prev=TMBD|type=OBJC|next=ONIE|name=Object Collection}}
{{OBD BINA Footer|prev=TMBD|type=OBJC|next=ONIE|name=Objects}}


{{OBD}}
{{OBD}}

Revision as of 14:32, 19 July 2014

ONI BINARY DATA
AKVA << Other file types >> CBPI
TMBD << Other BINA >> ONIE
OBJC : Objects
switch to XML:BINA/OBJC page
Overview @ Oni Stuff
OBD.png

OBJC files are lists of objects. Objects are composed of a standard wrapper and then type-specific data which has its own tags. OBJC objects could be edited in-game by the developers using the GUI which was discovered by fans in the German Big Blue Box version of Oni. The editing interface is pictured on the pages of the types which the interface could edit.

Example file
CJBOPowerUp.BINA from level 3
Offsets
Offsets are given with respect to the start of the raw file's data part.


bin_r_pu.gif


Offset Type Raw Hex Value Description
0x00 4CC 43 4A 42 4F OBJC objects
0x04 int32 18 02 00 00 536 size to end of OBJC from 0x08, in bytes
0x08 int32 27 00 00 00 39 object format version
0x0C int32 28 00 00 00 40 size of next object (black outline)
0x10 - 0x37 : first object (40 bytes)
0x38 int32 28 00 00 00 40 size of next object
0x3C - ... : second object (40 bytes), etc
General layout
The list's header (first 16 bytes) and layout is common to all 16 OBJC types (see below).
  • The size of the whole list is announced at 0x04 (int32), followed by the list.
  • Unlike ONIE and TMBD (which are arrays), OBJC announces the size of every object (int32).
  • After the last object, the end of the list is signaled by a null next object size.
Object header
All objects start with the following header:
Offset Type Raw Hex Value Description
0x00 char[4] 52 52 57 50 PWRU object type
0x04 int32 AC 1C 00 00 7340 object ID
0x08 00 00 00 00 0x00 object flags; used values:
0x01 00 00 00 - unknown
0x08 00 00 00 - unknown
0x0C float E8 92 77 44 990.254 x-position
0x10 float 00 00 D8 41 27.000000 y-position
0x14 float 71 DD 98 43 305.73 z-position
0x18 float 00 00 00 00 0.000000 rotation on the x-axis in degrees
0x1C float 00 00 00 00 0.000000 rotation on the y-axis in degrees
0x20 float 00 00 00 00 0.000000 rotation on the z-axis in degrees


OBJC types

A given list can only hold objects of a specific type, which can be:

Type Long name File name
CHAR Character CJBOCharacter.BINA
CMBT Combat profile CJBOCombat.BINA
CONS Console CJBOConsole.BINA
DOOR Door CJBODoor.BINA
FLAG Flag CJBOFlag.BINA
FURN Furniture CJBOFurniture.BINA
MELE Melee profile CJBOMelee Profile.BINA
NEUT Neutral behaviour CJBONeutral.BINA
PART Particle CJBOParticle.BINA
PATR Patrol path CJBOPatrol_Path.BINA
PWRU Powerup CJBOPowerUp.BINA
SNDG Sound Group CJBOSound.BINA
TRGV Trigger Volume CJBOTrigger_Volume.BINA
TRIG Trigger CJBOTrigger.BINA
TURR Turret CJBOTurret.BINA
WEAP Weapon CJBOWeapon.BINA
ONI BINARY DATA
AKVA << Other file types >> CBPI
BINA : Binary data
TMBD << Other BINA >> ONIE
OBJC : Objects
[[OBD:File types/{{{family}}}|{{{family}}} file]]