OBD:BINA/PAR3: Difference between revisions

From OniGalore
Jump to navigation Jump to search
(work in progress...)
(work in progress...)
Line 66: Line 66:
|}
|}


===Other crap===
===Particle Properties===
{| width="100%" border=1 cellspacing=0 cellpadding=0 bgcolor="#000000"
{{Table}}
|- bgcolor="#808080" align="CENTER" valign="TOP"
{{OBDth}}
| colspan="3" | <font size="2" color="#FFFFFF">First of the 19 variable/constant blocks of the header :</font>
{{OBDtrBK}}
|- bgcolor="#FFEEDD" align="CENTER" valign="TOP"
{{OBDtr| 0x60 | int32    |FFFFC8| 03 00 00 00 | 3       | property type: float }}
| bgcolor="#FFFFC8" | 03 00 00 00
{{OBDtr| 0x64 | float    |C8FFC8| 00 00 40 3F | 0.750000 | value }}
| 3
{{OBDtr| 0x68 |         |C8FFC8| 80 0B 00 00 | unused  | unused for float properties }}
| align="LEFT" | type (3:float, 0:16-byte string)
{{OBDtr| 0x6c |         |C8FFC8| 02 02 00 00 | unused  | unused for float properties }}
|- bgcolor="#FFEEDD" align="CENTER" valign="TOP"
{{OBDtr| 0x70 |         |C8FFC8| 00 00 00 00 | unused  | unused for float properties }}
| bgcolor="#C8FFC8" | 00 00 40 3F
{{OBDtr| 0x74 |         |C8FFFF| E8 01 EF 01 | unused  | unknown; I'd say garbage }}
| 0.750000
{{OBDtr| 0x78 |          |FFC8FF| 97 3A 42 89 | unused  | unknown; I'd say garbage }}
| align="LEFT" | value
{{OBDtrBK}}
|- bgcolor="#FFEEDD" align="CENTER" valign="TOP"
{{OBDtr| 0x00 |         |FFC800| 00 00 00 00 | 0.000000 | unknown }}
| bgcolor="#C8FFC8" | 80 0B 00 00
{{OBDtr| 0x00 |          |FFC800| 00 00 00 00 | 0.000000 | unknown }}
| unknown
{{OBDtr| 0x00 | char[16] |FFC800| 00          | ""       | flyby sound name }}
| align="LEFT" | value (string only)
{{OBDtr| 0x00 | char[32] |C800C8|            | <tt>notfoundtex</tt> | texture name or geometry name }}
|- bgcolor="#FFEEDD" align="CENTER" valign="TOP"
{{OBDtr| 0x00 |         |C87C64| 00 00       | 0       | unknown }}
| bgcolor="#C8FFC8" | 02 02 00 00
{{OBDtr| 0x00 |          |C87C64| 00 00       | 0       | unknown }}
| unknown
{{OBDtr| 0x00 |          |C87C64| 64 00       | 100     | unknown }}
| align="LEFT" | value (string only)
{{OBDtr| 0x00 |          |C87C64| 3C 00       | 60       | unknown }}
|- bgcolor="#FFEEDD" align="CENTER" valign="TOP"
{{OBDtr| 0x00 |          |B0C3D4| 00 00 00 00 | 0       | unknown }}
| bgcolor="#C8FFC8" | 00 00 00 00
{{OBDtr| 0x00 |         |B0C3D4| 00 00 00 00 | 0       | unknown }}
| unknown
{{OBDtr| 0x00 |          |B0C3D4| 00 00 00 00 | 0       | unknown }}
| align="LEFT" | value (string only)
{{OBDtr| 0x00 | char[64] |B0C3D4| 00          | ""       | unknown; name of a particle }}
|- bgcolor="#FFEEDD" align="CENTER" valign="TOP"
{{OBDtr| 0x00 |          |E7CEA5| AC 22 81 0B | unknown | unknown; maybe garbage? }}
| bgcolor="#C8FFFF" | E8 01 EF 01
{{OBDtr| 0x00 |          |E7CEA5| E0 22 81 0B | unknown | unknown; maybe garbage? }}
| unknown
{{OBDtr| 0x00 |         |E7CEA5| 88 24 81 0B | unknown | unknown; maybe garbage? }}
| align="LEFT" | unknown; I'd say garbage
|- bgcolor="#FFEEDD" align="CENTER" valign="TOP"
| bgcolor="#FFC8FF" | 97 3A 42 89
| unknown
| align="LEFT" | unknown; I'd say garbage
|- bgcolor="#808080" align="CENTER" valign="TOP"
| colspan="3" | <font size="2" color="#FFFFFF">Below follow the remaining colors.</font>
|- bgcolor="#FFEEDD" align="CENTER" valign="TOP"
| bgcolor="#FFC800" | 00 00 00 00
| 0.000000
| align="LEFT" | unknown
|- bgcolor="#FFEEDD" align="CENTER" valign="TOP"
| bgcolor="#FFC800" | 00 00 00 00
| 0.000000
| align="LEFT" | unknown
|- bgcolor="#FFEEDD" align="CENTER" valign="TOP"
| colspan="2" bgcolor="#FFC800" | not used
| align="LEFT" | unknown; 16 byte string
|- bgcolor="#FFEEDD" align="CENTER" valign="TOP"
| colspan="2" bgcolor="#C800C8" | <tt>notfoundtex</tt>
| align="LEFT" | texture name; the first 00 is the stop byte; 32 byte string
|- bgcolor="#FFEEDD" align="CENTER" valign="TOP"
| bgcolor="#C87C64" | 00 00
| 0
| align="LEFT" | unknown
|- bgcolor="#FFEEDD" align="CENTER" valign="TOP"
| bgcolor="#C87C64" | 00 00
| 0
| align="LEFT" | unknown
|- bgcolor="#FFEEDD" align="CENTER" valign="TOP"
| bgcolor="#C87C64" | 64 00
| 100
| align="LEFT" | unknown
|- bgcolor="#FFEEDD" align="CENTER" valign="TOP"
| bgcolor="#C87C64" | 3C 00
| 60
| align="LEFT" | unknown
|- bgcolor="#FFEEDD" align="CENTER" valign="TOP"
| bgcolor="#B0C3D4" | 00 00 00 00
| 0
| align="LEFT" | unknown
|- bgcolor="#FFEEDD" align="CENTER" valign="TOP"
| bgcolor="#B0C3D4" | 00 00 00 00
| 0
| align="LEFT" | unknown
|- bgcolor="#FFEEDD" align="CENTER" valign="TOP"
| bgcolor="#B0C3D4" | 00 00 00 00
| 0
| align="LEFT" | unknown
|- bgcolor="#FFEEDD" align="CENTER" valign="TOP"
| colspan="2" bgcolor="#B0C3D4" | not used
| align="LEFT" | unknown; name of a particle; 64 byte string
|- bgcolor="#FFEEDD" align="CENTER" valign="TOP"
| bgcolor="#E7CEA5" | AC 22 81 0B
| unknown
| align="LEFT" | unknown; maybe garbage?
|- bgcolor="#FFEEDD" align="CENTER" valign="TOP"
| bgcolor="#E7CEA5" | E0 22 81 0B
| unknown
| align="LEFT" | unknown; maybe garbage?
|- bgcolor="#FFEEDD" align="CENTER" valign="TOP"
| bgcolor="#E7CEA5" | 88 24 81 0B
| unknown
| align="LEFT" | unknown; maybe garbage?
|}
|}



Revision as of 10:42, 5 December 2007

ONI BINARY DATA
AKVA << Other file types >> CBPI
ONIE << Other BINA >> SABD
PAR3 : 3D Particle
switch to XML:BINA/PAR3 page
Overview @ Oni Stuff
OBD.png

The following example is the raw/sep part of 3RAPenv_bomb_e06.BINA (level 0).

Header

The header takes up 780 = 0x30C bytes.

bin_r_3h.gif

Offset Type Raw Hex Value Description
0x00 char[4] 33 52 41 50 PAR3 signature
0x04 int32 9C 06 00 00 1692 length of the following 3d particle part from this position
0x08 int16 9C 06 1692 length again
0x0A int16 01 20 18 unknown; always the same
0x0C int32 01 20 00 00 0x2001 unknown; flags?
0x10 int32 00 00 00 02 0x20000000 unknown; more flags?
0x14 int32 00 00 00 00 0 unknown; looks like garbage data
0x18 int16 01 00 1 number of variables
0x1a int16 01 00 1 number of events/actions
0x1c int16 01 00 1 number of emitted particles
0x1e int16 00 01 256 unknown; always the same

Event groups (0x20 - 0x5F)

Here we have 16 4-byte slots, which correspond to the following 16 particle event types :

0:update 1:pulse 2:start 3:stop
4:bgfx_start 5:bgfx_stop 6:hit_wall 7:hit_char
8:lifetime 9:explode A:brokenlink B:create
C:die D:newattractor E:delay_start F:delay_stop

The ZZZZ actions in the file (ZZZZ is specified at 0x1A above) are bound to a specific event # by means of this list.

If the 4-byte slot for event # reads XX XX YY YY, where XXXX < YYYY < ZZZZ, then event # will execute all the actions whose slot is greater or equal to XXXX, and less than YYYY.

Example
3RAPglass_shard.BINA has 10 actions, distributed between events as follows :
(0,4)(4,4)(4,4)(4,4)(4,4)(4,4)(4,7)(7,9)(9,10)(10,10)(10,10)(10,10)(10,10)(10,10)(10,10)(10,10)
That means :
  • actions {0,1,2,3} will be triggered by an update event
  • actions {4,5,6} will be triggered by a hit_wall event
  • actions {7,8} will be triggered by a hit_char event
  • action {9} will be triggered by a lifetime event
Back to the silly 3RAPenv_bomb_e06.BINA...
Offset Type Raw Hex Value Description
0x20 int16,int16 00 00 01 00 0, 1 action 0 (actions 0 to 1) triggered by update event
0x24 int16,int16 01 00 01 00 1, 1 no action (actions 1 to 1) triggered by pulse event
0x28 int16,int16 01 00 01 00 1, 1 no action (actions 1 to 1) triggered by start event
0x2C int16,int16 01 00 01 00 1, 1 no action (actions 1 to 1) triggered by stop event
0x30 int16,int16 01 00 01 00 1, 1 no action (actions 1 to 1) triggered by bgfx_start event
0x34 int16,int16 01 00 01 00 1, 1 no action (actions 1 to 1) triggered by bgfx_stop event
0x38 int16,int16 01 00 01 00 1, 1 no action (actions 1 to 1) triggered by hit_wall event
0x3C int16,int16 01 00 01 00 1, 1 no action (actions 1 to 1) triggered by hit_char event
0x40 int16,int16 01 00 01 00 1, 1 no action (actions 1 to 1) triggered by lifetime event
0x44 int16,int16 01 00 01 00 1, 1 no action (actions 1 to 1) triggered by explode event
0x48 int16,int16 01 00 01 00 1, 1 no action (actions 1 to 1) triggered by brokenlink event
0x4C int16,int16 01 00 01 00 1, 1 no action (actions 1 to 1) triggered by create event
0x50 int16,int16 01 00 01 00 1, 1 no action (actions 1 to 1) triggered by die event
0x54 int16,int16 01 00 01 00 1, 1 no action (actions 1 to 1) triggered by newattractor event
0x58 int16,int16 01 00 01 00 1, 1 no action (actions 1 to 1) triggered by delay_start event
0x5C int16,int16 01 00 01 00 1, 1 no action (actions 1 to 1) triggered by delay_stop event

Particle Properties

Offset Type Raw Hex Value Description
First element (black outline)
0x60 int32 03 00 00 00 3 property type: float
0x64 float 00 00 40 3F 0.750000 value
0x68 80 0B 00 00 unused unused for float properties
0x6c 02 02 00 00 unused unused for float properties
0x70 00 00 00 00 unused unused for float properties
0x74 E8 01 EF 01 unused unknown; I'd say garbage
0x78 97 3A 42 89 unused unknown; I'd say garbage
First element (black outline)
0x00 00 00 00 00 0.000000 unknown
0x00 00 00 00 00 0.000000 unknown
0x00 char[16] 00 "" flyby sound name
0x00 char[32] notfoundtex texture name or geometry name
0x00 00 00 0 unknown
0x00 00 00 0 unknown
0x00 64 00 100 unknown
0x00 3C 00 60 unknown
0x00 00 00 00 00 0 unknown
0x00 00 00 00 00 0 unknown
0x00 00 00 00 00 0 unknown
0x00 char[64] 00 "" unknown; name of a particle
0x00 AC 22 81 0B unknown unknown; maybe garbage?
0x00 E0 22 81 0B unknown unknown; maybe garbage?
0x00 88 24 81 0B unknown unknown; maybe garbage?



Variables

Every variable takes up 52=0x34 bytes. The number of variables is specified at 0x18 in the header.

bin_r_31.gif

Hex Translation Meaning
Variable name and type
rotate name of the variable
02 00 00 00 2 variable type (float)
30 00 00 00 48 offset of variable data to ??? (incremented by 4 for every next variable)
Variable value parameters
04 00 00 00 4 3:single value, 4:min-max (random?), 7:...
00 00 B4 C3 -360.000000 min value (or single value)
00 00 B4 43 360.000000 max value (or garbage)
02 02 00 00 unknown unknown; I'd say garbage
00 00 00 00 unknown unknown; I'd say garbage
EC 01 EA 01 unknown unknown; I'd say garbage
97 3A 42 89 unknown unknown; I'd say garbage



Actions

Every action takes up 424=0x1A8 bytes. The number of actions is specified at 0x1A in the header.

The available actions are listed HERE, together with their 2 sets of parameters : A-parameters and B-parameters.

bin_r_32.gif

Hex Translation Meaning
22 00 00 00 34 action type (Rotate Y)
00 00 00 00 0 unknown, looks like a (big) pointer
First of the eight A-parameters :
not used name of the parameter (e.g. variable name)
00 00 00 00 0 type of the parameter
00 00 00 00 0 unknown; I'd say garbage
First of the eight B-parameters :
0A 00 00 00 10 type of the "space" parameter : integer
01 00 00 00 1 value of the "space" parameter : world, relative, dunno
00 00 00 00 unknown value (string only)
00 00 00 00 unknown value (string only)
00 00 00 00 unknown value (string only)
00 00 00 00 unknown unknown; I'd say garbage
00 00 00 00 unknown unknown; I'd say garbage



Emitted particles

Every emitted particle takes up 444=0x1BC bytes. The number of emitted particles is specified at 0x1C in the header.

bin_r_33.gif

Hex Translation Meaning
env_bomb_p09 name of the particle to emit (3RAPenv_bomb_p09.BINA); 64 byte string
C0 92 62 00 unknown unknown; maybe old offset data?
47 00 00 00 71 unknown
04 00 4 unknown
FF FF -1 unknown
00 00 20 41 10.000000 unknown
00 00 00 00 0 unknown
00 00 00 00 0 unknown
00 00 00 00 0 unknown
03 00 00 00 3 unknown
00 00 00 00 0 unknown
0C 00 00 00 12 unknown
04 00 00 00 4 unknown
Below follows the first of the twelve blocks of the package.
04 00 00 00 4 identifier
00 00 00 3E 0.125000 unknown
00 00 00 3F 0.500000 unknown
02 02 00 00 unknown unknown; maybe garbage?
00 00 00 00 unknown unknown; maybe garbage?
F6 01 ED 01 unknown unknown; maybe garbage?
97 3A 42 89 unknown unknown; maybe garbage?




ONI BINARY DATA
AKVA << Other file types >> CBPI
BINA : Binary data
ONIE << Other BINA >> SABD
PAR3 : 3D Particle
[[OBD:File types/{{{family}}}|{{{family}}} file]]