OBD:BINA/OBJC: Difference between revisions
< OBD:BINA
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= | {{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 | :[[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| | {{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 | {{OBDtr|0x08|int32|00FF00|27 00 00 00|39|object format version}} | ||
{{OBDtr|0x0C|int32|00FFFF|28 00 00 00|40|size of next | {{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 | {{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 | :The list's header (first 16 bytes) and layout is common to all 16 OBJC types (see below). | ||
:*The size of the whole | :*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 | :*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 | A given list can only hold objects of a specific type, which can be: | ||
{| | {| | ||
| | | | ||
{|{{OBDtable}} | {|{{OBDtable}} | ||
|-bgcolor=#E9E9E9 | |-bgcolor=#E9E9E9 | ||
!Type!!Long name!! | !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: | ||
|} | |} | ||
|} | |} | ||
{{OBD BINA Footer|prev=TMBD|type=OBJC|next=ONIE|name= | {{OBD BINA Footer|prev=TMBD|type=OBJC|next=ONIE|name=Objects}} | ||
{{OBD}} | {{OBD}} |
Revision as of 14:32, 19 July 2014
|
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.
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:
| |
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:
|
ONI BINARY DATA |
---|
AKVA << Other file types >> CBPI |
BINA : Binary data |
TMBD << Other BINA >> ONIE |
OBJC : Objects |
[[OBD:File types/{{{family}}}|{{{family}}} file]] |