This aims to be a full documentation for FLEP's customizable smoke emitter patches. There may be mistakes here and there, and there are holes. If there is any help you can provide, please do.
MODS: please don't close this thread so I can update it if needed.

Introduction

FLEP provides a set of patches that allow you to create custom particle emitters by using smoke emitters.
This allows you to create more complex and interesting effects like fire, smoke, dust, snow, steam, waterfalls, lava burps, and whatever you can imagine.
For this, you need to enable a few patches first: Extend Tomb4.exe size, New blending modes, Enable new blending modes for particles, Extended steam / smoke emitter OCBs. But you can jump straight to the Smoke emitters white OCB 00 settings and FLEP will offer you to enable those patches in one click.

You can use it to test particle emitter properties on the fly, and then write down desired parameters into FLEP. All instructions are included in README file!

Notes

To prevent artifacts, use formula: Lifetime >= (StartTime + EndTime).

Detailed description of the fields

Start color

Range: 0..255 per value

Description: Color at the beginning of the lifecycle, in R,G,B format

Start time

Range: 0..255

Description: Time taken by the particle to fade in before becoming completely visible.

End color

Range: 0..255 per value

Description: Color at the end of the lifecycle, in R,G,B format

End time

Range: 0..255

Description: Time taken by the particle to fade out before disappearing completely.

Note: This is not a time counted from the beginning of the lifecycle of the particle, but from the end. For example, if you set the lifetime to 60 and the endtime to 10, then the particle will start fading out at frame 50.

Blending mode

Range: 0..16

Description: Method used by the renderer to display the particle. This basically determines whether it will be opaque, transparent, or something else.

Available modes:

Mode 0 - Opaque (fully)

Mode 1 - Opaque (magenta = transparent)

Mode 2 - Additive transluscency. The colors of the particle are "added" onto the background.
The darker the pixel, the less visible it is.
Consequently the particle will only get brighter, never darker.
This is the default transluscency used in TR3-4-5 for room geometry (water).

Mode 3 - Almost same as Mode 1.
The 1st difference is that you can actually "see" a black/white version of the objects behind the particle, a bit like a shadow.
I believe this is the effect used when using flashing grenades: it flashes light gray, then everything is dark gray but you can see silhouettes before it goes back to normal. Here the effect is similar.
A 2nd difference is that these particles are rendered in inverted order: particles that have just spawned will appear "behind" particles that have spawned before.

Mode 4 - Opaque (magenta = transparent | always rendered in front).
This mode is used for rendering fonts, sky, etc. It is similar to Mode 1, but everything that is 3D will be rendered behind the particle.

Mode 5 - ???

Mode 6 - Wireframe.
The texture itself is not rendered, instead there are 2 lines on 2 sides of the face, and 1 diagonal line (basically it looks like a N).

Mode 7 - ???

Mode 8 - Brightness = transluscency.
The brighter parts of the textures will be more transparent, and the darker parts will be more opaque.

Mode 9 - Screen.

Mode 10 - Invert and multiply.

Mode 11 - Unused

Mode 12 - Unused

Mode 13 - Unused

Mode 14 - Unused

Mode 15 - Unused

Lifetime

Range: 0..248

Description: Time before a particle is destroyed. This also defines the speed at which a particle grows.

Note: While putting a too big value in other fields simply acts like the value was back to 0, putting more than 248 here seems to make the game crash.

Note: Note: this is a flag field: each digit acts like a switch. Each digit position corresponds to a specific behavior. Hence, every digit must be 0 (off) or 1 (on).

Known flags descriptions:

Bit 0 - Set Lara on fire on contact

Bit 1 - Use perspective correction
Defines wether the size of the particle on the screen should be smaller when it is further.
If disabled, the particle will always take the same space on the screen, no matter how far it is from the camera. Effectively, this means the particle will seem small when it is close, and big when it is far.

Bit 2

Bit 3 - Lines

Bit 4 - Rotates

Bit 5

Bit 6

Bit 7 - Is visible

Bit 8 - Reacts to wind (note: the wind will affect the whole line of particles, not every particle separately)

Bit 9

Bit 10 - Causes damage on contact

Bit 11 - Pushed by Lara horizontally on collision

Bit 12 - Pushed by Lara vertically on collision

Bit 13

Bit 14

Bit 15

Horizontal speed

Description: Sets overall particle velocity.

Horizontal curve

Ranges: 1..16 | 17..32 | 33..48 (???)

Description: Defines trajectory curvature. However the way the curve is created is a bit complex.
A very low value in one of the ranges (1, 17, 33...) will make the particle decelerate very fast (ie. with a high speed, the particle will have a high speed at first, and then it will slow down very fast). A higher value in one of the ranges (16, 32, 48...) will have lower deceleration.