Previous BINA File3D-Particles.BINA FileNext BINA File

The following example shows the 05569-3RAPenv_bomb_e06.BINA file.


Header     Part 1 - Variables     Part 2 - Events / Actions     Part 3 - Emitted Particles

HexTranslationMeaning
33 52 41 50PAR3particle 3d
9C 06 00 0016921692 bytes is the length of the following 3d particle part from this position
9C 061692file size again
12 0018particle version; always the same
01 20 00 000x01200000bitset; the following bits are known:

01 00 00 00 - decorative
08 00 00 00 - use separate Y scale
E0 00 00 00 - sprite/contrail mode mask (3 bits); possible values are:

0 - sprite (face camera orient to screen)
1 - rotated sprite (face camera orient to particle)
2 - beam (parallel face camera)
3 - arrow (parallel orient to particle)
7 - discus (parallel orient to particle)
4 - flat (perpendicular)
5 - contrail (orient to particle)
6 - contrail (face camera)
 

00 01 00 00 - geometry
00 02 00 00 - collide with walls
00 04 00 00 - collide with chars
00 08 00 00 - unknown
00 10 00 00 - has velocity
00 20 00 00 - has orientation
00 40 00 00 - offset position
00 80 00 00 - attached to object
00 00 01 00 - unknown
00 00 02 00 - has decal state
00 00 04 00 - texture animation: random start
00 00 08 00 - texture animation: animate independently
00 00 10 00 - has damage owner
00 00 20 00 - has contrail data
00 00 40 00 - unknown, lensflare related
00 00 80 00 - is attracted
00 00 00 01 - has collision cache

00 00 00 020x00000002bitset 2; the following bits are known:

01 00 00 00 - use special tint
02 00 00 00 - unknown
08 00 00 00 - expire on cutscene
10 00 00 00 - die on cutscene
60 00 00 00 - disable level mask (2 bits); possible value are

00 - never disable
40 - disable medium detail
60 - disable low detail
 

00 00 10 00 - draw as sky
00 00 20 00 - unknown
00 00 80 00 - decal
00 00 00 02 - invisible
00 00 00 04 - unknown
00 00 00 08 - vector
00 00 00 10 - unknown
00 00 00 20 - contrail
00 00 00 40 - lensflare
00 00 00 80 - unknown

00 00 00 00garbagegarbage; maybe the last one (if you read it from right to left) is a bitset too
01 001amount of packages of part 1 - variables
01 001amount of packages of part 2 - events / actions
01 001amount of packages of part 3 - emitted particles
00 01256unknown; always the same
 
 
00 00 01 00
01 00 01 00
01 00 01 00
01 00 01 00
01 00 01 00
01 00 01 00
01 00 01 00
01 00 01 00
01 00 01 00
01 00 01 00
01 00 01 00
01 00 01 00
01 00 01 00
01 00 01 00
01 00 01 00
01 00 01 00
 
 
0, 1
1, 1
1, 1
1, 1
1, 1
1, 1
1, 1
1, 1
1, 1
1, 1
1, 1
1, 1
1, 1
1, 1
1, 1
1, 1
particle actions; the following particle actions are possible (values in dec):

0 - update
1 - pulse
2 - start
3 - stop
4 - bgfx_start
5 - bgfx_stop
6 - hit_wall
7 - hit_char
8 - lifetime
9 - explode
10 - brokenlink
11 - create
12 - die
13 - newattractor
14 - delay_start
15 - delay_stop

Oni triggers all positive round numbers of a line which are smaller than the second number. The highest value in the complete array is always equal to the number of packages of part 2

In this example Oni triggers the update field. Thus the action of part 2 is an update action.

(Thanks to geyser who figured all out.)

Below follows the first of the 19 blocks of the header.
03 00 00 003identifier for this block; the following identiefiers are used (values in dec):

0 - string follows (16 byte); this is followed by a long, a short and a garbage short
1 - short folows
2 - random short follows
3 - float follows
4 - two random floats follow (min + max)
5 - two random floats follow (mean + standard deviation)
6 - string follows (16 byte; reference to another file)
7 - colour follows (4 byte)
8 - two random colours follow (8 byte)
10 - long follows
11 - time follows (4 byte)

00 00 40 3F0.750000lifetime in seconds; (be careful: 0 = live forever; the emit-interval is stored in part 3)
80 0B 00 00garbagegarbage
02 02 00 00garbagegarbage
00 00 00 00garbagegarbage
E8 01 EF 01garbagegarbage
97 3A 42 89garbagegarbage
The other blocks.
2nd blockcollision radius (it seems that this radius belongs to a sphere)
3rd blockx-scale
4th blocky-scale
5th blockrotation
6th blockalpha
7th blockx-offset
8th blockx-shorten
9th blocktint
10th blockedge min
11th blockedge max
12th blockmax contrail lenght
13th blocklensflare through distance
14th blockdecal wrap angle
15th blockattractor max distance
16th blockattractor max angle
17th blockattractor angle select min
18th blockattractor angle select max
19th blockattractor angle select weight
Below follow the remaining colors.
00 00 00 000.000000AI dodge radius ?
00 00 00 000.000000AI alert radius ?
not usedflyby sound name
notfoundtexfile name (this example: reference to 01329-notfoundtex.TXMP); the first 00 is the stop byte
00 000 fade in frames
00 000 fade out frames
64 00100unknown; always the same
3C 0060unknown
00 00 00 000particle attractor target; the following targets are possible:

0 - none
1 - link
2 - class
3 - tag
4 - characters
5 - hostiles
6 - emitted towards
7 - parent's attractor
8 - all characters

00 00 00 000particle attractor target selection; the following target selections are possible:

0 - distance
1 - angle

00 00 00 000unknown; used only at runtime
not usedname of a particle; 64 byte string
AC 22 81 0B0B 81 22 ACruntime pointer of part 1
E0 22 81 0B0B 81 22 E0runtime pointer of part 2
88 24 81 0B0B 81 24 88runtime pointer of part 3


Header     Part 1 - Variables     Part 2 - Events / Actions     Part 3 - Emitted Particles

HexTranslationMeaning
Below follows the first block of the package.
rotatespace for the name of the variable (16 bytes)
02 00 00 000x02000000storage type; the following types are known:

01 00 00 00 - short
02 00 00 00 - float
04 00 00 00 - string? (16 bytes)
08 00 00 00 - colour (4 bytes)
10 00 00 00 - long?
20 00 00 00 - string? (16 bytes)
40 00 00 00 - string? (16 bytes)
00 00 00 00 - pingpong state
00 10 00 00 - action index
00 20 00 00 - emitter
00 30 00 00 - blast falloff
00 40 00 00 - coord frame
00 50 00 00 - collision orient
00 60 00 00 - boolean
00 70 00 00 - ambient sound
00 80 00 00 - impulse sound
00 90 00 00 - impact modifier
00 A0 00 00 - damage type

30 00 00 0048storaget offset (incremented by the storage type size for every next variable)
Below follows the second block of the package.
04 00 00 004identifier (values as above; use the back button of your browser to come back)
00 00 B4 C3-360.000000rotation range (lowest value)
00 00 B4 43360.000000rotation range (highest value)
02 02 00 00garbagegarbage
00 00 00 00garbagegarbage
EC 01 EA 01garbagegarbage
97 3A 42 89garbagegarbage


Header     Part 1 - Variables     Part 2 - Events / Actions     Part 3 - Emitted Particles

HexTranslationMeaning
22 00 00 0034identifier for this package; these identifiers are possible; for this example 34 = Rotate Y (Thanks to geyser and Loser for their help.)
00 00 00 000identifier for the next eight blocks (values as above; use the back button of your browser to come back)
Below follows the first of the eight "variables" blocks of the package.
not usedname of the variable (16 bytes)
00 00 00 000storage type; used only at runtime
00 00 00 000storrage offset; used only at runtime
Below follows the first of the "events" block of the package.
0A 00 00 0010identifier for this block (values as above; use the back button of your browser to come back)
01 00 00 001for this example: 1 = space value
00 00 00 00garbagegarbage
00 00 00 00garbagegarbage
00 00 00 00garbagegarbage
00 00 00 00garbagegarbage
00 00 00 00garbagegarbage


Header     Part 1 - Variables     Part 2 - Events / Actions     Part 3 - Emitted Particles

HexTranslationMeaning
env_bomb_p09emitted partcile name (reference to 05582-3RAPenv_bomb_p09.BINA)
C0 92 62 0062 92 C0old offset data
47 00 00 0071flags; used values:

01 00 00 00 - unknown
02 00 00 00 - unknown
04 00 00 00 - unknown
10 00 00 00 - emit with parent velocity
20 00 00 00 - unknown
40 00 00 00 - unknown
80 00 00 00 - inherit tint
00 01 00 00 - unknown
00 02 00 00 - unknown
00 04 00 00 - unknown

04 004unknown (from 0 to 100)
FF FF65535 emit probability (scaled by 65535)
00 00 20 4110.000000amount of (sprite) copies
00 00 00 000interval; requieres block 1; the following intervals are possible (values in dec):

0 - continuous (emit interval)
1 - random (min interval, max interval)
2 - instant
3 - distance (distance)
4 - attractor (recharge time, check interval)

(I'm not sure about this. Maybe only the next row is the interval value and requires block 1 and 2 and this row is something else.)

00 00 00 000the same as above; requires block 2
00 00 00 000type; requieres block 3, 4 and 5; the following types are possible (values in dec):

0 - point
1 - line (radius)
2 - circle (inner radius, outer radius)
3 - sphere (inner radius, outer radius)
4 - offset (x, y, z)
5 - cylinder (heigt, inner radius, outer radius)
6 - body-surface (offset radius)
7 - body-bones (offset radius)

03 00 00 003option; requieres block 6, 7 and 8; the following options are possible (values in dec):

0 - straight
1 - random
2 - cone (angle, center bias)
3 - ring (angle, offset)
4 - offset (x, y, z)
5 - inaccurate (base angle, inaccuracy, center bias)
6 - attractor

00 00 00 000rate; requieres block 9 and 10; the following rates are possible (values in dec):

0 - uniform (speed)
1 - stratified (speed 1, speed 2)

0C 00 00 0012direction, requires block 11; the following directions are possible (values in dec):

0 - parent +X
1 - parent -X
2 - parent +Y
3 - parent -Y
4 - parent +Z
5 - parent -Z
6 - world +X
7 - world -X
8 - world +Y
9 - world -Y
10 - world +Z
11 - world -Z
12 - velocity
13 - reverse-velocity
14 - towards-emitter
15 - awayfrom-emitter

04 00 00 004the same as above, requires block 12
Below follows the first of the twelve blocks of the package.
04 00 00 004identifier (values as above; use the back button of your browser to come back)
00 00 00 3E0.125000for this eaxmple: min emit interval
00 00 00 3F0.500000for this eaxmple: max emit interval
02 02 00 00garbagegarbage
00 00 00 00garbagegarbage
F6 01 ED 01garbagegarbage
97 3A 42 89garbagegarbage
Below follows the end of the file.
 fillerfiller


An example.

Here you can download the complete overview of the 3d-particles as text files.
Copy them to a spreadsheet calculation program like Excel.

  • header with commas as decimal hyphens (1.6 mb)
  • part 1 with commas as decimal hyphens (58 kb)
  • part 2 with commas as decimal hyphens (1.8 mb)
  • part 3 with commas as decimal hyphens (393 kb)
  • header with points as decimal hyphens (1.6 mb)
  • part 1 with points as decimal hyphens (58 kb)
  • part 2 with points as decimal hyphens (1.8 mb)
  • part 3 with points as decimal hyphens (393 kb)


Previous BINA FileBack to BINA FileNext BINA File

Back to main page