OBD:BINA/OBJC: Difference between revisions
< OBD:BINA
Jump to navigation
Jump to search
m (→OBJC types: deleted dead link) |
No edit summary |
||
Line 26: | Line 26: | ||
:*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 collection is signaled by a null next object size. | ||
;Object header | |||
:All objects start with the following header: | |||
{{Table}} | |||
{{OBDth}} | |||
{{OBDtr| 0x00 | char[4] |FFC8C8| 52 52 57 50 | PWRU | object type }} | |||
{{OBDtr| 0x04 | int32 |FFFFC8| AC 1C 00 00 | 7340 | object ID }} | |||
{{OBDtr| 0x08 | |C8FFC8| 00 00 00 00 | 0x00 | object flags; used values: | |||
:0x'''01''' 00 00 00 - unknown | |||
:0x'''08''' 00 00 00 - unknown }} | |||
{{OBDtr| 0x0C | float |C8FFFF| E8 92 77 44 | 990.254 | x-position }} | |||
{{OBDtr| 0x10 | float |C8FFFF| 00 00 D8 41 | 27.000000 | y-position }} | |||
{{OBDtr| 0x14 | float |C8FFFF| 71 DD 98 43 | 305.73 | z-position }} | |||
{{OBDtr| 0x18 | float |FFC8FF| 00 00 00 00 | 0.000000 | rotation on the x-axis in degrees }} | |||
{{OBDtr| 0x1C | float |FFC8FF| 00 00 00 00 | 0.000000 | rotation on the y-axis in degrees }} | |||
{{OBDtr| 0x20 | float |FFC8FF| 00 00 00 00 | 0.000000 | rotation on the z-axis in degrees }} | |||
|} | |||
---- | ---- |
Revision as of 11:09, 30 May 2008
|
- Example file
- CJBOPowerUp.BINA from dunno where (level 3, probably)
- Offsets
- Offsets are given with respect to RAW part start.
Offset | Type | Raw Hex | Value | Description |
---|---|---|---|---|
0x00 | 4CC | 43 4A 42 4F | OBJC | object collection |
0x04 | int32 | 18 02 00 00 | 536 | size to end of OBJC from 0x08, in bytes |
0x08 | int32 | 27 00 00 00 | 39 | object collection version |
0x0C | int32 | 28 00 00 00 | 40 | size of next (first) object (black outline) |
0x10 - 0x37 : first object (40 bytes) | ||||
0x38 | int32 | 28 00 00 00 | 40 | size of next (second) object |
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.
- 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 collection can only hold objects of a specific type, which can be :
|
- Blue Box Beta "revelations"
- A German Mac Beta version was released as part of a compilation of old Mac games.
- The version contained extra 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.
ONI BINARY DATA |
---|
AKVA << Other file types >> CBPI |
BINA : Binary data |
TMBD << Other BINA >> ONIE |
OBJC : Object Collection |
[[OBD:File types/{{{family}}}|{{{family}}} file]] |