Jump to content

OBD:BINA/OBJC: Difference between revisions

500 bytes removed ,  25 September 2007
m
no edit summary
mNo edit summary
mNo edit summary
Line 1: Line 1:
{{OBD BINA Header|align=right|prev=TMBD|type=OBJC|next=ONIE|name=Object Collection|onistuff=bina}}
{{OBD BINA Header|align=right|prev=TMBD|type=OBJC|next=ONIE|name=Object Collection|onistuff=bina}}
;Object Collection
 
*The collection's header structure (first 16 bytes) and collection layout is common to all 16 OBJC types.
 
*A collection consists of a variable number of ''objects'', the size of which can also vary.
;Example file
*The size (in bytes) of the next object is announced by the field immediately preceding it (long, 4 bytes)
:[[OBD:BINA/OBJC/PWRU|CJBOPowerUp.BINA]] from dunno where (level 3, probably)
*The total size to the end of the collection is announced in the header.
;Offsets
;Blue Box Beta "revelations"
:Offsets are given with respect to RAW part start.
: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.
http://ssg.oni2.net/images/bin_r_pu.gif
:[http://www6.fh-eberswalde.de/user/dkriesch/oni/bina_missing.htm HERE] is the additional information provided by those menus about the structure of a few OBJC types.
 
 
{{table}}
{{OBDth}}
{{OBDtr|0x00|4CC|FF0000|43 4A 42 4F|OBJC|object collection}}
{{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|"identification number for the weapon classes; in every level the same; do not change it. [[User:ssg|ssg]]"}}
{{OBDtr|0x0C|int32|00FFFF|28 00 00 00|40|size of next (first) object (black outline)}}
{{OBDtrBK|0x10 - 0x37 : first object (40 bytes)}}
{{OBDtr|0x38|int32|FFFFFF|28 00 00 00|40|size of next (second) object}}
{{OBDtrBK|0x3C - ... : second object (40 bytes), etc}}
|}
;General layout
:The collection'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.
:*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.
;"Weapon classes?"
:If anyone can explain me WTF weapon classes have to do with it, I'd be greatly appreciative. [[User:Geyser|geyser]]




Line 19: Line 37:
|
|
{|{{OBDtable}}
{|{{OBDtable}}
|-bgcolor=#FFDDBB
|-bgcolor=#E9E9E9
!Type!!Long name!!Filename
!Type!!Long name!!Filename
|-
|-
Line 55: Line 73:
|}
|}
|}
|}
;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.
:*That info used to be available as HTML [http://www6.fh-eberswalde.de/user/dkriesch/oni/bina_missing.htm HERE]
:*Now it's available as screenshots on the respective pages.




----
----
==0x00 - 0x0F==
;HEADER
:Example file : [[OBD:BINA/OBJC/PWRU|CJBOPowerUp.BINA]] from dunno where (level 3, probably)
;Offsets
:Offsets are given with respect to RAW part size.
http://www6.fh-eberswalde.de/user/dkriesch/onistuff/images/bin_r_pu.gif
{|{{OBDtable}}
|align=center|
{|{{OBDtable}}
|- BGCOLOR="#FFDDBB"
! WIDTH=12% |Offset
! WIDTH=12% |Hex
! WIDTH=12% |Translation
!Meaning
|-
|0x00
| BGCOLOR="#FF0000" | 43 4A 42 4F
| OBJC
| ALIGN=LEFT | Object Collection
|-
|0x04
| BGCOLOR="#FFFF00" | 18 02 00 00
| 536
| ALIGN=LEFT | size of the collection in bytes, counting from 0x08
|-
|0x08
| BGCOLOR="#00FF00" | 27 00 00 00
| 39
| ALIGN=LEFT | identification number for the weapon classes; in every level the same; do not change it
|-
|0x0C
| BGCOLOR="#00FFFF" | 28 00 00 00
| 40
| ALIGN=LEFT | size of next (first) object (outlined in black)
|-BGCOLOR="#000000"
|<FONT SIZE=2 COLOR="#FFFFFF">0x10 - 0x37</FONT>
| COLSPAN=3 | <FONT SIZE=2 COLOR="#FFFFFF">First object (40 bytes)</FONT>
|-
|0x38
| BGCOLOR="#FFFFFF" | 28 00 00 00
| 40
| ALIGN=LEFT | size of next (second) object
|-BGCOLOR="#000000"
|<FONT SIZE=2 COLOR="#FFFFFF">0x3C - ...</FONT>
| COLSPAN=3 | <FONT SIZE=2 COLOR="#FFFFFF">Second object (40 bytes), etc</FONT>
|}
|}
;Collection end
:After the last object, the end of the collection is signaled by a null next object size.
;"Weapon classes?"
:If anyone can explain me WTF weapon classes have to do with it, I'd be greatly appreciative. [[User:Geyser|geyser]]
----
----
{{OBD BINA Footer|prev=TMBD|type=OBJC|next=ONIE|name=Object Collection}}
{{OBD BINA Footer|prev=TMBD|type=OBJC|next=ONIE|name=Object Collection}}