OBD:BINA/OBJC: Difference between revisions

shocking revelation: OBJC stands for Objects, not Object Collection; see ASCII string in game app; rewrote BBB part
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}}