OBD:BINA/PAR3

From OniGalore
< OBD:BINA
Revision as of 02:47, 29 July 2006 by Geyser (talk | contribs)
Jump to navigation Jump to search
ONI BINARY DATA
AKVA << Other file types >> CBPI
BINA : Binary data
Start file
ONIE << Other BINA >> SABD
PAR3 : 3D Particle
Struct def for OUP
Overview @ Oni Stuff

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

Hex Translation Meaning
33 52 41 50 PAR3 particle 3d
9C 06 00 00 1692 1692 bytes is the length of the following 3d particle part from this position
9C 06 1692 file size again
12 00 18 unknown; always the same
01 20 00 00 unknown unknown; looks like bitsets
00 00 00 02 unknown unknown; looks like bitsets
00 00 00 00 0 unknown; looks like garbage data
01 00 1 amount of variables
01 00 1 amount of events/actions
01 00 1 amount of emitted particles
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 Raw hex Value Meaning
0x20 00 00 01 00 0, 1 action 0 (actions 0 to 1) triggered by update event
0x24 01 00 01 00 1, 1 no action (actions 1 to 1) triggered by pulse event
0x28 01 00 01 00 1, 1 no action (actions 1 to 1) triggered by start event
0x2C 01 00 01 00 1, 1 no action (actions 1 to 1) triggered by stop event
0x30 01 00 01 00 1, 1 no action (actions 1 to 1) triggered by bgfx_start event
0x34 01 00 01 00 1, 1 no action (actions 1 to 1) triggered by bgfx_stop event
0x38 01 00 01 00 1, 1 no action (actions 1 to 1) triggered by hit_wall event
0x3C 01 00 01 00 1, 1 no action (actions 1 to 1) triggered by hit_char event
0x40 01 00 01 00 1, 1 no action (actions 1 to 1) triggered by lifetime event
0x44 01 00 01 00 1, 1 no action (actions 1 to 1) triggered by explode event
0x48 01 00 01 00 1, 1 no action (actions 1 to 1) triggered by brokenlink event
0x4C 01 00 01 00 1, 1 no action (actions 1 to 1) triggered by create event
0x50 01 00 01 00 1, 1 no action (actions 1 to 1) triggered by die event
0x54 01 00 01 00 1, 1 no action (actions 1 to 1) triggered by newattractor event
0x58 01 00 01 00 1, 1 no action (actions 1 to 1) triggered by delay_start event
0x5C 01 00 01 00 1, 1 no action (actions 1 to 1) triggered by delay_stop event

Other crap

First of the 19 variable/constant blocks of the header :
03 00 00 00 3 type (3:float, 0:16-byte string)
00 00 40 3F 0.750000 value
80 0B 00 00 unknown value (string only)
02 02 00 00 unknown value (string only)
00 00 00 00 unknown value (string only)
E8 01 EF 01 unknown unknown; I'd say garbage
97 3A 42 89 unknown unknown; I'd say garbage
Below follow the remaining colors.
00 00 00 00 0.000000 unknown
00 00 00 00 0.000000 unknown
not used unknown; 16 byte string
notfoundtex texture name; the first 00 is the stop byte; 32 byte string
00 00 0 unknown
00 00 0 unknown
64 00 100 unknown
3C 00 60 unknown
00 00 00 00 0 unknown
00 00 00 00 0 unknown
00 00 00 00 0 unknown
not used unknown; name of a particle; 64 byte string
AC 22 81 0B unknown unknown; maybe garbage?
E0 22 81 0B unknown unknown; maybe garbage?
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?




AKVA << Other file types >> CBPI
BINA : Binary data
ONIE << Other BINA >> SABD
PAR3 : 3D Particles