Tomb Raider 4.5 Engine Patcher
English | German

 

Main page
Downloads
User's Guide
DRACO patches
eSSe scripting
FAQ
Anti-TREP
Bugs memorial
Preset archive
Contact authors

 

DRACO custom patch module reference (updated 31 Aug 2010)

Note: This document now contains all information about custom patches that was previously available in User's Guide.

Table of contents:

 1. Overview
 
2. How to use custom patches?
   
2.1. Custom patches reference
 
3. How to create custom patches?
   
3.1. DRCMerger


1.: OVERVIEW

Two years have passed since first patches for TR4 engine appeared on the Net. Almost every month something completely new is discovered, and it's very hard to handle all these new options with just recompiling one utility over and over again. If you will look at TREP's history, you will see that in the middle of 2006, new versions were released almost every week. The reason for such extremely frequent updates is continous researching of TR4 engine by numerous people around the world. That is, in the past, every new option was hardly integrated into TREP's code and there was no possibility for altering patching routines and adding new patches without recompiling main TREP's executable.

So, when in the end of 2006 amount of various patches and new options grew pretty fast, it becomes obvious that now we need something even more flexible — a module which will allow to create ANY patch with ANY parameters without modifying main TREP code.

DRACO module's purpose is:

  • Minimize download times and also liquidate time gaps between developing and releasing patch. Think like about antivirus bases or anti-spam bases — you only need to update small base files to let your antivirus program know new modifications of viruses, you don't need to download new antivirus's installer every week. Same thing with DRACO module — you don't need new TREP versions for any new feature (however, some critical bugfixes and new features still can be added only with new version of TREP), you only need small 60 kb file which will contain all new updated options and patches. Also DRACO module allows you to modify and update patches VERY FAST.
  • To allow you creation of your own new patches. If some day you will learn assembly language or find interesting parameter with OllyDbg, you can immediately create custom patch for TREP, and it will appear in TREP's custom patches window just like any other patch. That is, you can create a lot of your own custom patches and dynamically change their values, position, modify offsets on the fly, add parameters etc.

That is the reasons why DRACO called Dynamically-ReplaceAble Code Organizer — it allows you to add, delete, turn on, turn off, modify and change all custom patches.


2.: HOW TO USE CUSTOM PATCHES?

Layout of DRACO module is pretty simple:

On the left side is the patch list. You can enable or disable any patches that you need or not need. Note that when you're selecting any patch, right side of the window will change. Right side is the patch info box, and it may contain useful info about patch, like patch's name, description and so on. Also, if selected patch allows you to modify some dynamic parameters, you will see extra description and text field in the bottom side of info box.

In some circumstances you may find out that patch's title in the info box colored in red, and some strange red icons appeared on the right side, like this:


Patch's title colored in red!

It means that you have not enabled some options that is required for this patch. Each red icon has its own meaning, which you can learn by pressing onto it (as always, mouse pointer will turn into Mickey Mouse's hand when you'll hover it over corresponding icon):

— you should turn on «Extend tomb4.exe size» option in main TREP window.
— you should turn on «Remap particle buffer» option in main TREP window.
— you should turn on «Remap scene memory» option in main TREP window.
— you should turn on «Enable advanced savegame management» option in main TREP window.
— you should activate some extra custom patches to make current custom patch work. Simply click onto this icon, and you'll see a list of required custom patches.

DRACO module buttons:

  load set: loads predefined patch set (file that contains info about patches and patInch data).
  save set: if you've edited/created some patch (to learn more about this, refer to Custom Patch Reference bundled with TREP), you can save patch set here.
  defaults: will reset all patches to disabled state and also reset all patch parameters to default value.
  proceed: close DRACO custom patches module and return to main TREP window.


Search function: DRACO module have built-in search function. You can use it if you have too many patches in the list and want to jump to specific patch. To use search, simply type some expression into search textbox under custom patch list and press ENTER or click small magnifier icon on the left. If there are any patches with desired expression in their name, you will be immediately pointed to nearby matching patch. Each time you'll press ENTER or click magnifier icon, you'll be redirected to next matching patch, and if there are no any patches that can match your criteria left, you'll see [sequence not found] message. To begin search from the beginning, press small rounded arrow icon once.

Also you can use hotkeys to search through patch list:

  F2 — Search from the beginning
  F3 — Search next.

Using parameters

Sometimes custom patches will allow you to change one or more dynamic parameters with it. It appears like this in patch's description box:

In this case, patch allows you to specify three different parameters for displaying enemy state on game screen. You may ask: «what the heck? I only see one parameter, not three!» But wait a little. Do you see that parameter's description is UNDERLINED? That's that! Just move mouse pointer to parameter's description, and you will see that it will change to Mickey Mouse's hand. Now click it, and — voila! — three parameters at your service!


Can you see five different parameters that you can select from parameter list?

If there is only one parameter in selected patch, parameter's description label won't be underlined, mouse pointer won't turn to Mickey's hand and you won't be able to bring up parameter list by clicking on parameter's description label.

Also note small round arrow picture at the right side of parameter's textbox. Note that mouse pointer will again turn to Mickey's hand. Click on it and you will see that parameter's value resetted to defaults!

***

2.1.: Custom patches reference

In this section we will try to describe most useful custom patches currently available. If you don't see some of these patches in your custom patch list, be sure you've got latest custom patches file.

Ammo counter
Can you understand why ammo counter was removed  from TR4-TR5 engines? No one knows. But now... Prepare... AMMO COUNTER IS BACK! With improvements! Now ammo counter have two modes — normal and critical, just like HP or AP bar! You can set font effect ID for each mode (for ex., you can create red critical ammo counter and yellow normal ammo counter), and also ammo value threshold between these two modes!


Ammo counter: normal mode (left) and critical mode (right)

Also ammo counter will work, if you've enabled limited pistol ammo. If you've unlimited ammo for some weapon, ammo counter won't show.

Another distinctive feature of this updated ammo counter is that it can show current flare's lifetime, if Lara holds one. Note that in this case ammo counter's format will change to counting-down MIN:SEC format, i. e. you will see how much time left until current flare will die.

Ammo counter: shotgun divider
It's an add-on for previous patch. In case you're using MP5 or M16 in shotgun slot, you can disable 6x divider, so counter will show native ammo value, not divided by 6.

Enable in-game timer
Shows overall game timer in top right corner.

Enable GAME OVER
Enables blinking GAME OVER text when Lara dies. This feature was never introduced in full PC versions of TR4 and TR5, but supposedly it was used in some demo versions and console versions.

Disable blinking text
Disables fading text effect, replacing it with constant colour. You can change font brightness with parameter.

Always exit statistics
When user will press ESC key in statistics screen, he will be thrown back in game immediately, bypassing PAUSED screen. VERY useful if you're gonna use SHOW_STATS flipeffect command to show final game or level statistics in the end of your game.

Add [Kills] to statistics
For some reason, TR4 have no «Kills» entry in statistics screen. This patch will return kills entry to statistics. Note that text «Kills» is hardcoded, so you can't change it with script file. Also you must remember that TR4 engine ignores some enemies when calculating this value (for ex., horseman) and resets this statistics entry with every new level.

Add [Hits] to statistics
Adds new, never seen before accuracy statistics entry. It will appear as additional value after «Ammo used» entry.

Disable quicksave when game is over
Disables F5 savegame hotkey when Lara is dead. You may ask: «what the heck is this?» Well, then, you're lucky that you've never tried to smash your keyboard in anger after occasional saving over existing savegame when Lara was already dead! Fortunately, this patch can preserve your mental health by disabling savegame hotkey when Lara have died.

Fix flyby hotkey bug
Fixes nasty bug that allowed Lara to draw her guns when flyby is active. VERY useful when you're creating cutscenes.

Fix flyby legend draw
For some reason, Core disabled legend strings during flybys. This patch, indeed, allows you to use legend strings with flybys. Note that you can use ANY flyby bars height with it, since legend string will automatically move above bottom flyby bar (it's really cool effect when legend string moves up synchronously with flyby bars, no?).

Disable add-on gun sound
Removes additional EXPLOSION_1 sound, which is playing when Lara uses pistols, uzis, revolver or shotgun.

Disable sentry gun flame attack
Forces sentry gun to use gunfire attack even on narrow distances.

Old-skool teeth spikes 1
Enables spit animation and sound, when Lara jumps onto teeth spikes.

Old-skool teeth spikes 2
With this patch Lara can safely walk through teeth spikes, like in earlier TR1-TR3 games.

Old-skool teeth spikes 3
Disables spikes sound if spikes are sticked out constantly (OCB 16+). Allows to avoid spikes sound playing after savegame reloading.
If you want to create Coastal Ruins-like «hidden» teeth spikes, you should use OCB 36 instead of OCB 20, or stick out sound won't play. (In fact, Coastal Ruins' teeth spikes has exactly 36 in its OCB field.)

Teeth spikes — kill enemies
When this patch is activated, teeth spikes object will be able to kill enemies! You can use it to create some puzzle which will require Lara to kill enemy without using her guns.

Wireframe mode
Nifty and useless patch that will set almost all geometry and sprites to wireframe mode. You can use it to debug your level or to inspect internal TR4 clipping.

Single gun with PULSE (left)
Disables left pistol and UZI, if you've set PULSE=ENABLED in your script file for corresponding level. It can be useful if in some leves you're using other character, who has single-gun armoury (instead usual Lara's twin-guns). For ex., if some of your levels are using Kurtis as a playable character, you can create single-gun mode for his levels only.

Bugfix: poisoned darts
This patch will fix nasty TR4 engine bug and will allow you to use poisoned darts, just like in TR3.

Static shatter: limiters
This patch with two parameters will allow you to define UPPER and LOWER limit of static meshes' IDs. With it, you can create much more static shatters.

Static shatter: alternate sound
This patch will divide static shatters into two groups. One group will use default sound when shatters, and other group will use custom sound.

Parameters:

  • Alt. sound threshold: specifies if default or alt. sound will be used. If mesh ID is less than threshold, default will be used, otherwise alternate sound ID will be used.
  • Alt. shatter sound ID: sets custom alternate sound for second group of static shatters. You can use some unused sound index, add alternate shatter sound in your SOUNDS.TXT file and then use both these sounds for different static shatters. For example, now you can have BOTH breakable wood crates that will produce wood sound, and breakable windows that will produce shattered glass sound.

Replace Wild Boar AI with Troops AI
Replaces Wild Boar AI with Troops AI. Please note that after this patch Wild Boar slot will share all animations with Troops slot.

Unlimited air with STARFIELD
If your script file will contain STARFIELD=ENABLED entry for certain level, it will set unlimited air supply for Lara. With this patch, you can create underwater episode with Lara using Scuba Gear or Extreme Depth Diving Suit and so on.

Relocate fog bulb buffer (test)
Test patch to increase maximum amount of simultaneously shown fog bulbs from 5 to 21.

Relocate dynamic lights buffer (test)
And now… Finally… Prepare… One Of The Most Nasty TR4 Bugs Ever… The Flare Bug! What do you know… Now you can fix it! In fact, this patch will increase max. amount of dynamic lights from 32 to 127, so you can use much more flame emitters / flares / light objects at the same moment.

Relocate rope buffer (test)
TR4 engine definetly isn't TR: Legend engine. It allows us to use only FIVE ropes in each level. If you will try to use more than 5 ropes, level will immediately crash, even if you have no any other objects in your level. So this patch will relocate rope buffer, and you will be able to use up to 30 ropes.

Pigtail: gravity
Simply sets gravity for pigtail. You can set it lower to give Lara's pigtail more «air» and make it look more fluid and smooth.

Extended loading bar X position
This option, if active, will override corresponding Bar Customizer's setting and will allow you to use bigger X coordinates for loading bar. In other words, you can shrink loading bar and then move it to the center of the screen, so it will look like loading bar in TR5.

Disable baboon magic death
If you don't want any fantasy and otherworld chit-chat in your levels, you can remove orange explosion after baboon's death. After this, he will die like any other normal creature in TR4 (except tiny and barely noticeable square that will appear where explosion epicentre should be).

Enable standable pushables (beta)
This patch allows you to use good old TR1-TR3 climbable pushables. But there are some notable differences. First of all — now you can stack these pushables! For example, you can create a pyramid of pushables, and Lara should somehow re-arrange this pyramid to access new area or to jump over some nasty trap. Also there is no «lower pushable» bug — unlike TR1-TR3, Lara won't be able to push/pull lower block until all upper blocks are removed.
Second new feature — now you can DYNAMICALLY CHANGE pushable's height! It means that you can create not only classic 4-click cubical pushables, but also 2-click and 3-click mini-pushables, as well as massive 5-click, 6-click, 8-click etc. pushables! Imagine that Lara now can move some tall pillars or, in contrary, squished platforms — now you have much more possibilities for various puzzles!


3 different pushables in action: 4-click (classical), 6-click and 8-click.

You must set each pushable's height with OCB field. Value is raw global coordinates value, i. e.:

? To create classical 4-click pushblock, you must enter 1024 in OCB field.
? To create 2-click pushable (half of classical pushblock) you must enter 512.
? To create 6-click tall pushable pillar, you must enter 1536.
? And so on…

Make sure that collision box is correct, or else Lara will refuse to push/pull these pushables.

If you want to have both classical pushblocks and «modern» TR4-TR5-like «smooth» pushables without block collision — don't worry! You still can use TR4-like pushables along with classical pushable blocks. Just set OCB to 0, and Lara will treat this pushable as always in TR4 engine. Unfortunately, you CAN'T use both these types of pushables on the same floor level, but you indeed CAN use them in different areas, where they won't interfere.

BUG WARNING: TR4 engine contains really nasty bug which locks-up pushable and denies to push/pull it and also messes up floor collision data. When Lara grabs a block in preparation to push/pull it, you can VERY QUICKLY push forward or backward key and then IMMEDIATELY unpush both action and direction key. In about 2/3 of all cases, Lara won't push/pull block, and it will occasionally «lock up» and Lara won't be able to push pull it. Also, if you've activated climbable pushable patch, it will result in messing up floor collision data. Unfortunately, the nature of this bug is very well integrated into code, so it's not possible to fix it now.

Now let me tell you something about pushable stacking. Theoretically, you can stack ANY type of pushables in ANY combination with ANY amount of rows. Here's a few examples how you can create really challenging puzzles with different types pushables in different combinations:


Combined puzzles using pushables with various collision heights (in this case — 2-click and 4-click)
 

And in these cases Lara will deny to pull/push lower pushable, until all upper pushables are removed. Note that this trick was not possible even in TR3:


Lara won't pull or push lower pushable, until two upper pushables are removed.


Lara won't pull lower pushable, until upper pushable is removed.

Quick crawlspace climb
If you remember TR5, maybe you also remember that there was no need to press DUCK button when climbing into crawlspace. This patch will act in the same way, allowing you to climb into crawlspace without pressing DUCK button (i. e. Lara will automatically climb into crawlspace in «duck» state).

Enable ladder crawl (beta)
Another patch for enabling TR5-specific move. In TR5, when Lara is climbing up the ladder and there is crawlspace above, she will immediately crawl into crawlspace. This patch will allow you to use same trick, but with one difference — you must hold action button until crawl animation will end. To make it work, you must rip animation #473 from TR5 level file, then paste it into any new animation slot in WadMerger and specify corresponding animation number in patch's parameter textbox.

Enable crawlspace jump
And another TR5-specific move — jumping out from the crawlspace facing deep pit. Maybe you already know that all revised TR4 wads already contain this animation as #421. Perhaps, Core Design had plans to implement this movement in TR4 engine, but delayed it until TR5. This patch will indeed enable this trick, and Lara will be able to flip forward from the crawlspace with jump key. Note that you can use this patch with ALREADY EXISTING CUSTOM LEVELS which contain unmodified animation #421, and therefore enjoy this new move without altering level files!


Crawlspace jump in Horus' Neon God. No level flie altering needed!

Parameters:

  • Pit deepness threshold: specifies minimum pit deepness to perform this action. Minimum is 512 (2 clicks).
  • Crawlspace jump animation #: custom animation number.

Enable crawlspace roll
This fancy move never was introduced in PC versions of TR4 and TR5, despite the fact that all revised TR4 wads contain this animation sequence (number 218-219-220) and it's possible to use this trick on PlayStation versions. Anyway, now you can use this move by pressing SPRINT key when Lara is in duck stand state. Also note that you can use pistols, uzis and revolver with this move, so it's now possible to shoot when moving in crouch position.
As with previous patch, you don't need any extra custom animations for it, because all revised wads and custom Lara objects already contain this move. Just enable this patch, and you will enjoy this brand new move in old custom levels!


Crawlspace roll in Christoph's Jade Empire. No level file altering needed!

Parameters:

  • Animation #: default animation number. You shouldn't change it, as long as you won't decide to rearrange this already existing animation sequence.
  • Collision check distance: Unfortunately, TR4 calculates collision incorrectly, so when Lara will try to roll nearby some tall block, she can occasionally find herself all the way up on it! To solve this problem, you can increase Collision check distance parameter (values about 800-1024 should do fine), but then Lara will deny to roll when facing walls at different angles.
  • Max. collision height thresh: specifies maximum block height that Lara can roll onto. By default it's 1 click (-256), but you can decrease it to allow Lara roll onto higher platforms.
  • Min. collision height thresh: specifies minimum block height  to roll onto. By default, Lara can roll from one-click platforms, but you can increase it to allow Lara roll into lower pits (like 2-click and such).

Enable crawlspace pickup
One more unused action in TR4 engine — picking up items when crouching on all fours. Once again, this animation was already included into all TRLE revised wads, so there's no need in custom animation. Just enable this patch, and Lara will be able to pick up items without changing her crouch state!


LEFT: standard pickup animation. RIGHT: crawl pickup animation on all fours.
No level file altering needed! 

Allow ladder-monkey animation (beta)
Allows you to use new «ladder to monkey bars» movement. You must create new custom animation that will rotate Lara for 180 degrees and move her from the wallclimb state to monkeyswing state. Also note that if you will use this patch, you'd better don't use slanted monkeybars above ladders, because Lara will deny to move from ladder to monkeybars if there is large gap between her hands and ceiling level.


Ladder-monkey animation by GeckoKid

Allow water-ladder animation (beta)
Allows to use new «water surface to ladder» movement. As with previous patch, you must create custom animation for it and specify its number.

Parameters:

  • Ladder height threshold: specifies minimum height for ladder to climb onto. Default is -1280 (5 clicks).
  • Animation #: custom animation number.

Monkeyswing: 180° turn (stop)
Enables usage of ROLL key when Lara is hanging still on monkeybars. When ROLL key is pressed, specified custom animation # will play, allowing you to create fast 180-degree turn on monkeybars. Here is the example of such animation:


180-degree monkeybars turn by Titak

Monkeyswing: 180° turn (move)
Enables usage of ROLL key when Lara is moving forward on monkeybars. Usage similar to previous patch, but in this case you can specify other animation # and therefore create two different animations for stop and move monkeyswing states. Or you can type same animation # as with previous patch, and this animation will play in both cases.

Ledge climb control
Patch created by Harly Wuson
Allows to assign two new state IDs for «hanging on ledge» state with jump and down keys. With this patch you can create ledge hop move, like in TR: Legend.

Parameters:

  • (Jump) state ID: State ID for jump key.
  • (Down) state ID: State ID for down key.

Exploding enemies
Allows you to specify five different enemy slots to explode after death, like mutants in TR1's Atlantis. If you want to assign explosion death to less than five enemies, just equalize some of the parameters.

Jeep / motorbike water explosion
When jeep or motorbike falls into the water, it explodes. Unfortunately, sometimes it produce occasional «frozen Lara» problem, when Lara's model is stuck in «driving» state with no HP left. This patch will also shatter Lara to meshes, so this problem won't occur at all!

Rolling ball: smash and kill
TR4 rolling balls are pretty strange. Each contact with rolling ball will result in immediate Lara's death, but all of the enemies can safely walk through it! This patch fixes this problem and allows you to destroy enemies with rolling balls. Just place 20 baddies or SAS in the narrow corridor and feed them with only one rolling ball — tons of blood guaranteed!
Also this patch will turn on occasional shatter for shatterable statics if rolling ball will roll through them. Why «occasional»? Because it will shatter only specific shatter meshes. Test it thoroughly and you should get the idea how to place your shatter static so it can be shattered by boulder.

Static mesh hard collision
This is the one of the most requested features from early TR games (along with weather and climbable pushables). Of course you know that in TR1, TR2 and TR3 engines all static meshes produced so-called «hard» collision — when Lara collides with static mesh, she immediately stops and denies to run/walk/jump until you'll turn around.
This method was replaced in TR4 and TR5 engines with «smooth» collision — Lara continues to run into static mesh and she's able to «ooze» into object after few jumps. It makes static meshes almost ineffective when creating limiting fences, borders, pillars etc., because Lara can run through it. Also it is quite unnatural when Lara is running into some object in your level.
So this patch returns TR1-3 static mesh collision method and allows you to bring back old TR1-3 memories, when any encounter with static mesh was much more painful for Lara.
For example, let's take latest Bojrkraider's level — The Experiment 3 part 2. This level uses LOTS of static meshes to form room interiors and architecture, but by Lara's behaviour you easily can distinguish real room geometry from artificial static mesh geometry. This technical flaw kills a lot of any level's atmosphere and also allows Lara to merge into static meshes. After applying this patch, all static meshes are almost IDENTICAL to wall collision, and it makes level's overal feeling much better.

 
Collision behaviour in Bojrkraider's Budapest Museum

But unfortunately, there are two notable bugs, and both of them are not specific patch problems, but related to engine's methods to calculate collision. First of all, you CAN'T place low static meshes right at the wall! If Lara will jump onto this static mesh, she will emerge into wall and player will need to restart level. Always leave small gap between static mesh and wall, so Lara can walk around it or correct mesh's collision box to deny Lara from jumping over it!
Second bug — you can't use diagonal placement of non-symmetrical static meshes with this collision method, because collision will calculate incorrectly. To overcome this problem, you can use invisible dummy static meshes or use both types of collision (TR1-3 and TR4-5) in single engine. To do this, modify Normal-hard mode threshold parameter. All static meshes with ID BIGGER than parameter value will contain hard collision, and all meshes with ID LOWER or EQUAL to parameter will contain soft collision. For example, if you've specified 5 in parameter field, all static meshes with ID prior to 6 will use soft collision, and all other meshes will use hard collision.

But there are also some very good news. Unlike any old TR games, this patch's distinctive feature is fully-functional bottom static mesh collision. What does it mean? Well, now you really can limit room's ceiling with statics! For example, if there is a lamp or furniture on the top of the ceiling, Lara WON'T JUMP INTO STATIC MESH, but instead will smash, like with any room ceiling! It makes hard collision even more realistic and allows you to create ceiling collision not related to old-skool TR grid system!

Switches maker
Patch created by Harly Wuson
This enormous patch allows you to create things never seen before in TR4 levels! First of all, it allows you to use TR5-like method when assigning proper animations for switches by extending possible OCBs (from 3 to 7). Now you can create small lever pull animation, small push button animation, wheel animation etc. WITHOUT RE-ASSIGNING ANIMATIONS in WadMerger! But it's not all. Also this patch allows you to assign ANY animation to ANY switch! Just remember that all OCBs after 7 will be interpreted as turn-on animation numbers. As for turn-off animation numbers, they're calculated by adding 1 to OCB number, i. e. if you've set OCB 456 for switch, Lara will play animation # 456 when turning switch on and animation # 457 when turning switch off.

Parameters:

  • Switch ON (OCB 1-6) Anim #: allows to change OCB 1-6 turn-on animation numbers.
  • Switch OFF (OCB 1-6) Anim #: same as above, but for turn-off animation numbers.

Roll key setting
Patch created by Harly Wuson 
Allows to assign different animation numbers for ROLL and UP+DOWN keys. This way you can have two different turn around animations in your levels.

Enable eSSe add-on files loading
After applying this patch TR4 engine will begin to load extra strings file called STRINGS2.DAT (similar to ENGLISH.DAT, but without encryption) and extra script file SCRIPT2.DAT (also without goddamn encryption) that can be later used for various purposes. For example, diary feature (see further) will require this patch, as it uses A LOT of custom strings for diary records. Also, most recent level-specific DRACO patches will require extra script file, so this patch is necessary for these needs.
Both STRINGS2.DAT and SCRIPT2.DAT files are compiled using utility called eSSe that is available in
downloads section. To edit extra script and strings file, you can use any text editor.
Also see
Advanced scripting with TREP section.

Multi-purpose LOAD GAME item
This patch will convert LOAD GAME item into a TR1-like passport item with unified LOAD/SAVE functions. But most important thing is that this patch will allow you to use... Prepare... Are you ready? DIARY FEATURE! Finally! Now you can create LOTS of diary records for every level and carefully guide player through your level's story and enrich your level's plot with text-based hints and commentaries! Since ages old-skool TR games were so non-informative and, therefore, plot-unwise, that even Phil Campbell complained in TRLE manual that he needed to use complicated tricks to guide player through story. But now, with diary, you can support player with ANY amount of text information for ANY game event!


Diary screen

Parameters:

  • Non-active menu font effect ID: sets font effect for non-active diary menu entry.
  • Active menu font effect ID: sets font effect for active diary menu entry.
  • Diary counter font effect ID: font effect for diary records counter.
  • Diary main text font effect ID: font effect for main diary text.
  • Animated background brightness: specifies brightness for ultra-cool blue animated diary text background.

Show HP bar in inventory
If you remember, in TR1-TR3, HP bar appeared in inventory if inventory pointer hovered over large or small medkit. For some mysterious reason, Core removed it in TR4 engine. This patch will show HP bar in inventory again, like in good old TR1-TR3 days.

Enable in-game enemy info
Nifty patch that will allow you to see current auto-targeted enemy's overall and start-up HP, as well as his name. Note that when some enemy will pick up medkit (like first Baddy 1 in TUT1 level), his HP will indeed increase, and if you'll shoot him with poisoned crossbow bolt, his HP will continously decrease! So this way you now can trace each enemy's HP, which makes gameplay more informative and allows you to use more strategic approach when fighting enemies.

Enable revolver shell casing
Simple patch that will enable shell casing for revolver weapon, like for Desert Eagle in TR3.

Enable crossbow shell casing
Same as above, but for crossbow weapon.

Scripted parameters: Episode I, II & III
This patch will turn on first series of level-specific parameters that can be set up with add-on script file (read
eSSe scripting document to learn more).

Enable multi-purpose bar
Enables extra multi-purpose bar that acts like cold water bar in TR3. To begin decrease this bar's value, use ACTIVATE_BAR flipeffect editor command — since you'll use this command, multi-purpose bar will be placed in active state and its value will begin to decrease. Then, if bar value reached zero, Lara's HP will start decreasing. To increase bar value again, you must use DEACTIVATE_BAR command in filpeffect editor. In this case bar value will slowly increase until it is reached its maximum — and then it'll disappear from game screen.
Please note that latest update (14 April and later) of DRACO module WON'T ALLOW YOU to edit bar's colours and increase/decrease values anymore, because now it can be adjusted with
SCRIPT2.TXT and eSSe.

Parameters:

  • Width: bar's width.
  • Height: bar's height.

Automatically create \SAVE directory
This small fool-protection patch will prevent game crashing when user have deleted \SAVE subdirectory and trying to save. This extra \SAVE directory is needed for advanced savegame management, so this patch will re-create this subdirectory automatically if it does not exist. Also this patch will help if you're releasing custom level and don't want to include any empty folders with it. In this case, \SAVE subdirectory also will be automatically created at the first start-up of your game.

Add Lara's Home entry to title menu
Core Design removed Lara's home from both TR4 and TR5, effectively integrating tutorial into main game (Cambodia in TR4 and Opera Backstage in TR5). But sometimes, when you want to bring back TR1-3-like Lara's Home independent menu entry or when you simply want to create a game with two independent scenarios, you can use this patch. When used, it will add extra menu entry to title screen. When you'll click on it, it will load specified level number.

You must note that «Lara's Home» text is taken from STRINGS2.TXT file, not from SCRIPT.TXT or ENGLISH.TXT!

Parameters:

  • Lara's Home level #: this parameter specifies level number for Lara's Home menu entry.
  • Original game level #: main game will start from level #1 by default, but there you can set it to 2 or anything else, and then use level #1 for Lara's Home instead.
  • Active entry font effect ID: sets font effect for activated Lara's Home entry.

Enable Bink videos playback
Finally! It's there! Yes, your eyes aren't lying to you. Now you can use BINK FULL MOTION VIDEOS in your game! Read carefully: you can use videos now! First of all, now you can create FMV intro for your game that will play just like classic TR1-TR5 intro, but what is more interesting — you now can call FMVs with FLIPEFFECTS! No need to assign extra lines in SCRIPT.TXT file — you just use new PLAY_FMV [file number from 0 to 99] FURR command and enjoy quick and easy way to implement classic videos into your game!
There are two things to remember. First — don't forget to put binkw32.dll file into TRLE folder, or executable won't launch. There are quite large amount of binkw32.dll versions, but every recent version should work normally — for example, you can borrow one from TR: Anniversary directory. Don't use old binkw32.dll versions from TR4 or TR5, because they lack support for several sound compression formats. Second — put videos into /fmv subfolder and call them like this: fmv00.bik, fmv01.bik ... fmv99.bik . In other words — just like in TR4.

Main question is: «How do I create BINK VIDEO files?» And here is the answer: go to Bink Video homepage and download The RAD Video Tools for free! This tool can convert almost any contemporary video format into BINK video and allows you to select A LOT of options. The ultimate drawback of .bik format is a VERY slow encoding speed (almost 4-5 times slower than ordinary DivX/Xvid encoders), but the quality of resulting bink file exceeds all quality standarts! So be patient, and you will be able to use one of the best video formats in your game.

Parameters:

  • Intro FMV number: this video file will be used as start-up introduction. For example, you can place into /fmv subfolder good ol' Eidos/Core logo intro, so you will enjoy watching it every time when launching your game. Or you can replace it with your own intro or logo, or combine both in single file... By default it's set to 0, so fmv00.bik will play, but you can change it to any value from 0 to 99.
  • Video window horizontal resolution / Video window vertical resolution: changes video window size. Default is 640x480, like in TR4 and TR5. If your videos are 800x600 or higher, then you should change these parameters to fit resolution. However, i don't recommend you to use resolutions higher than 640x480, because filesize will be too large (and it won't be good for custom level hosted on the Net, not distributed on CD or DVD).

Use Position Changer via WHITE_LIGHT
Patch created by Tomo
By numerous requests, this extremely useful patch was translated into TREP's DRACO module. As you may already know, it adds Position Changer functionality to the WHITE_LIGHT object, but in this patch's version it acts a bit different. To use Position Changer, you must put OCB 666 for corresponding WHITE_LIGHT object. With all other OCBs it will work like ordinary white light.

One VERY IMPORTANT NOTE: DO NOT use this patch with Tomo's TRGE executable, because it may result in code conflict and game will crash! Please use DEFAULT, XP-patched tomb4.exe back from 2002! You may download it here.

Enable weather
Patch created by Tomo
It is very sad that Tomo has stopped any work on TR4 engine patches. I continue to wonder how he managed to import TR5's weather code into TR4 engine, because it should be very difficult and time-consuming to search and compare all constants, addresses etc. in both engines. As for me, i've never succeeded in this job, no matter how i tried. So, as with previous patch, all main code was directly translated from Tomo's executable into DRACO patch module. Indeed, there are few improvements and optimizations in this version. First of all, now you can get rid of oval-shaped snow bug and see normal TR5-like snow. Second, rain was too faint and hard to see before, but now it is looking like TR5-rain. Third — you now can use BOTH rain and snow AT THE SAME TIME! And another bug is fixed, which prevented rain and snow from using in title flybys and occasionally crashed game during certain level jumps.


Rain and snow are activated simultaneously by using CHANGE_WEATHER 3 command.

To set weather, you need use new FURR command called CHANGE_WEATHER with extra parameter which specifies weather type (0 goes for nothing, 1 goes for rain, 2 — for snow, and 3 — for both rain and snow at the same time). For example, CHANGE_WEATHER 0 resets weather, and so on.

Parameters:

  • Primary particle density: Here you can change density for both rain and snow. Larger numbers will create denser rain/snow, but don't set it too high, remember that rain and snow eats A LOT OF PARTICLE BUFFER!
  • Secondary particle density: Should be edited in conjunction with primary density.

One VERY IMPORTANT NOTE: DO NOT use this patch with Tomo's TRGE executable, because it may result in code conflict and game will crash! Please use DEFAULT, XP-patched tomb4.exe back from 2002! You may download it here.

Add keypad into MAP slot
One more good thing in TR5 was keypad lock, which required certain numerical combination to be unlocked. Now you can use almost the same thing in custom levels! This patch enables new, written from scratch, keypad, which differs from TR5 keypad in certain ways. First of all, it is rendered differently (in TR5, keypad was rendered as 3D mesh, there you will see 2D representation of keypad). Also this keypad allows you to use same digit multiple times — i. e., unlike TR5, you can use combinations like 5225 or 1114.


Enter keycode combination screen.

To use this keypad lock, use MAP slot for keypad object (you can get one from TR5 wad, or create mesh from scratch). Place MAP object in your level and write desired numerical combination into OCB field. Then, use your keypad like ordinary keyhole. In game, however, keypad won't require any keys, and will bring «Enter combination» screen instead. If user will enter wrong combination, error message will pop up (just like in the screenshot above), and keypad screen will automatically close after some time. If user will enter correct combination, another message will pop up, keypad screen will close itself, and underlying trigger will be activated. Each keypad can be used multiple times.

All text messages and labels for this patch are taken from STRINGS2.TXT file.

Parameters:

  • Prompt message text effect ID: Sets font effect for prompt («Please enter keycode») message.
  • Event message text effect ID: Sets font effect for event («Code is correct» or «Code isn't correct») message.
  • Key code text effect ID: Sets font effect for numerical combination itself.
  • Clear button inactive text ID: Font effect for C (clear) button.
  • Enter button inactive text ID: Font effect for > (enter) button.
  • Failed message timeout: Timeout before keypad screen will close itself when entered combination is not correct. Set to 0 to immediately close screen (like in TR5).
  • Success message timeout: Timeout before keypad screen will close itself when entered combination is correct. Set to 0 to immediately close screen (like in TR5).

Custom background
Patch created by Harly Wuson
With this patch you can replace standard monochrome background for inventory, load/save and options/statistics screens with ANY bitmaps. Moreover, all bitmap filenames are customized via SCRIPT2.TXT file, so you can change backgrounds for EACH level! Just use corresponding OptionsScreen, InventoryScreen, LoadSaveScreen parameters in SCRIPT2.TXT (remember you must update your aliases.txt file with latest version; for detailed parameter explanation, refer to eSSe scripting reference).
WARNING: For now, this patch have a serious bug that causes a flickering of fonts in the bottom part of the screen at resolutions higher than 800x600. Currently there is no solution for this problem.
WARNING 2: Another serious problem with this patch is that it drastically slows down some systems. As above, no solution is available for now.

Enable loading screens
And another frequently requested feature. This patch allows you to disable boring loading cameras and screenshots with TR1-3 and TR5-like pre-rendered bitmap loading screens! As with previous patch, you can customize loading screen filename for each level, so it will change with each level! Use LoadingScreen parameter in SCRIPT2.TXT file to achieve this (remember you must update your
aliases.txt file with latest version; for detailed parameter explanation, refer to eSSe scripting reference).

Widescreen mode option
Patch developed by Harly Wuson
Adds new «Widescreen» option to setup menu that allows you to use 16:9 aspect ratio resolutions without nasty squashing effect. Now, if you'll play TRLE levels on your new widescreen monitor or TV, there should be no screen deformation and «fat Lara» effect. To use this option, just go to usual tomb4.exe -setup window, and you will see one new checkbox:

If you still can't understand the meaning of this option, here are two screenshots in 640x400 resolution with and without widescreen option turned on:


As you can see, Lara looks squashed on first screenshot, but with widescreen option turned on, she looks normal.

Enable flare particle effects
For some reason, TR4 engine lacks beautiful flare particle effects that were available in TR3. This patch turns on TR3-like fiery flare again. Remember that you will also get burning flare sound (which changes pitch and volume depending on game situation — for ex., you won't hear a sound, if flare is placed underwater, when you're not) and underwater bubbles (i. e. flares will emit bubbles when underwater).
The origin of this patch is a
very old TR4 demo, which inherits some features of TR3. For some reason, in this demo, flare emitted particles only when it was thrown on the floor, but not when Lara was holding it in her hand. Indeed, this patch revives flare particles not only for separate flare objects, but for in-hand flares too!


That's how thrown flare looks in-game.

Parameters:

  • Passes (ext): Rendering passes for separate flare objects. More passes will give you more rich particle effects, but remember that particle buffer shouldn't be overflown, so setting amount of passes to 25 or 100 is a very bad idea.
  • Passes (int): Rendering passes for in-hand flare. Same as above, but remember that it renders slightly different, so it needs less passes.
  • Burining flare sound effect: Sets sound effect for burning flare. By default it's set to SAND_LOOP sound (internal ID #344), which sounds almost similar to TR3 burning flare.

Smooth shadows
Are you tired of odd octagonal shadows in TR engines? I suppose yes, because such angular shadows look absolutely ridiculous. Interesting thing that TR4 engine can render different type of shadows — look at PlayStation versions of TR3 and TR4, these games use smooth, textured, rounded shadow instead of usual PC octagon. It is even more interesting that same
TR4 demo 1.0 uses textured shadow instead of octagonal! But, as with many other great features, it was ripped from final TR4 version. Now it is time to get it back:


Rounded textured shadow turned on. Please note that it still differs from PS versions and have sharp edges.

Also, unlike ANY versions of ANY old Tomb Raider games, this shadow will gradually disappear, if Lara's vertical position increases in relation to the floor. In other words, shadow will become less noticeable, if Lara is jumping or hanging on a ledge, and it will completely disappear at the distance about 3 squares from the floor. Indeed, it will immediately reappear, if distance between Lara and the floor decreases.
Now some information how to achieve such smooth shadow.
You know that DEFAULT_SPRITES contain some unused sprites for inventory background (they appear in WadMerger as sprites from #19 to #27). I don't think that someone will use these sprites some day, so you can put your brand new shadow sprite into this unused slot and then change sprite ID parameter. Shadow sprite must have magenta background and contain black circle with SHARP edges (i. e. no antialiasing). WadMerger will allow you to import sprites up to 127x127, so you can create very clear and sharp rounded shadow.
Unfortunately, you can't create PlayStation-like smooth shadows for now, but there is indeed a possibility to gain smooth shadow anyway. To do this, you must create shadow sprite as tiny 5x5 magenta square with ONLY ONE black pixel in the middle. Then set shadow darkness to maximum in patch's parameters, and you will get nice black smooth shadow. (Thanks to GeckoKid for this information!)

Parameters:

  • Shadow sprite ID: Which sprite should be used to render shadow? Well, by default it is set to one of the lensflare sprites, but this sprite is too small, so you still can see pixels, especially when shadow is stretched. So, as it was said before, you'd better create custom shadow sprite, put it into unused sprite slot and change shadow sprite ID.
  • Render type: You can select other render type (for ex., setting it to 6 will give you wireframe shadow).
  • RGBA tint: Changes shadow's red-green-blue highlighting. It's not very useful, but can be fun.
  • Shadow darkness: shadow's overall blackness. Higher values will give darker shadow. Value of 255 will create pitch-black shadow, and value of 0 will remove shadow completely.
  • Vertical position: shadow's position in relation to floor. By default it's set a bit higher than floor itself (value of -16), because setting shadow's position at the same height as floor (i. e. value of 0) will produce Z-fighting problems (simply said, shadow will «flicker» on sloped surfaces).

Fix disappearing bubbles
This patch is useful when you have activated flare particle effects patch and experience problem with disappearing bubbles. It remaps bubble buffer from 40 to 128, so you will be able to see much more bubbles at the same time. Also it changes bubble buffer overflow behaviour, so even if bubble buffer will be completely filled, bubbles won't disappear suddenly anymore.

Genuine TR5 static bars
Replaces all TR4 static bars (except loading bar) with genuine gradient TR5 static bars. Unlike native TREP setting, gradient won't squash, if bar value is decreased. Please note that TR5 bars are placed a bit differently on screen.

Add copyright notice under main menu
If you remember early TR4 demos, there were copyright notices under main title menu. This patch adds same copyright notice under main menu. You can use any text you want — just edit corresponding STRINGS2.TXT line. After this, you will get neat copyright message under title menu:

Remap scene memory: revamped
TREP is now 2 years old, and some old extensions are becoming obsolete. 2 years ago it seemed that it's pretty enough to have 4 megabytes of scene buffer to fit anything TRLE builder may want to. But times are changing. Newest custom levels (like Teme9's Spanish Galleon level) are gone beyond standard «Remap scene memory» limits, so there's now need to extend it even further. This update for «Remap scene memory» option doubles scene memory buffers, which can prevent crashes when playing newest custom levels with ultra-high detail. Also this patch reverts forcing of bump-mapping when remap scene memory is on, since this bug is now fixed.

Demo recorder / player
From the long history of custom patches, i think, this is the most advanced and promising patch. Why, you may ask? Well, because it allows you to record and replay custom demo files! Maybe you remember that PC versions of TR2 and TR4 demo had something like this, but of course, these versions supported only playing of Core's pre-recorded demos. Supposedly, Core used external tool to record gameplay demos, so there was no chance to record custom user demo file... But now you can do this! Imagine — now you can record your walkthroughs (there is possibility to record non-stop multi-level demos without interrupting recording process), tricks, speedruns (remember all these QuakeDoneQuick-like projects? Now you can create same thing with TRLE levels!) and then share them with all TRLE community! Let others see how you play your favorite custom levels!

ABSOLUTELY IMPORTANT WARNING ABOUT DEMOS: Current demo format is plain simple; it only records player input (i. e. keys pressed) and Lara's position and speed values. It means that ANY changes in ANY significant TREP options, like gravity, enemy HP, weapon settings, static mesh hard collision, spikes / rollingballs behaviour, and even flare particle effects may result in CORRUPTED DEMO REPLAY. For example, if you've recorded some demo with one TREP settings, then re-patched .exe with different settings and tried to replay your demo, it may result in very weird glitches, like Lara stumbling into a wall, some enemies being left behind (although they must've been killed), wrong inventory items used, etc. Also don't forget that some important TREP settings are now set via SCRIPT2.DAT file, so wrong SCRIPT2.DAT file also may cause a mess. So, the gold rule is: always record and play demos with same .exe or with same TREP preset applied, and also with same SCRIPT2.DAT file.
ANOTHER IMPORTANT WARNING: do not use weapon hotkeys and medkit hotkeys when recording a demo! Since these hotkeys are not treated by TR4 engine as usual control keys, their values can't be written into demo file.

 


Demo recorder (left) and demo player (right)

Demo player and recorder will provide you any important information you may need in real-time. Recorder shows you how much time you've already recorded, as well as amount of disk space that is already occupied by your demo and overall amount of frames recorded. Also, in the top part of the screen, you will see small indicator which shows you demo recording buffer status. Demo is written to disk by 8-kilobyte blocks, so this indicator will continously fill and then reset again, when 8 kilobytes limit is reached and data is being written to disk. And demo player simply shows you overall and played demo time and size.

Now a bit information about playing and recording controls. First of all, you must know that you can record your demo in 33 different slots — from 0 to 32. To switch between these slots, you must press F3 (switches to next slot) or SHIFT+F3 (switches to previous slot) either in title flyby or in-game. You will get a quick info about current slot, like this:

To play demo, press F4 key either in game or in title flyby. Demo will be immediately loaded from current slot (if current slot is empty, nothing will happen) To record demo, press F2 key in game. To stop recording, press F2 again. Please be sure that you've selected correct slot for your demo, cause you can easily overwrite existing file by accidentally pressing F2 key. Note that, when recording a demo, game will re-initialize itself to reset some important variables and counters (it will look like ordinary loading screen, except «GET READY...» message above loading bar).
All demos will be placed into /demo subdirectory. If there is no such subdirectory, it will be created automatically. Each demo sequence consists of three different files: demosave.x, savegame.x and trepsave.x («x» means number of demo slot). When distributing your demo files, please be sure that you've included ALL THREE FILES, because all of them are needed to play your demos. And don't even try to use demo savegames as usual savegames, because they're using slightly different file format to prevent cheating!

Funny fact about demo player: since you can theoretically record whole game walkthroughs, it doesn't stop recording when going into inventory screen and save game screen. When you will replay your demo, you will also see that you've entered inventory or savegame screen, but, as for the latter, IT WILL ONLY LOOK LIKE you've saved your game — actually, since game is in demo mode, no actual data will be written to disk. But BEWARE of entering load game and paused screens when recording! Moreover, NEVER exit to title without stopping demo recording! If you will not stop recording before game will exit to title, something nasty may happen. Also you should immediately stop recording, if Lara is dead (or else game will automatically exit to title, and you will encounter same nasty bug).

In addition to user-controlled demo player, this patch will enable title menu demo autoplay. Like in TR2 and PlayStation TR3 versions, game will cyclically play specified amount of demos, if you haven't pressed any keys in a timely manner. You already know that classic SCRIPT.TXT contains unused InputTimeout value, so now this value WILL be used for this patch.
NOTE: Title autoplay demos aren't using same slots as ordinary demos! There is a simple fool-protection method that prevents user from overwriting your demos that you may bundle with your level — in other words, all title autoplay demos are using slots 33 and above. That is, if you will use three different demos for title flyby (it's default value), they should be placed in /demo subfolder with these names:

demosave.33
savegame.33
trepsave.33

demosave.34
savegame.34
trepsave.34

demosave.35
savegame.35
trepsave.35

If you will use more than 3 demos, then you should use slots 36, 37, and so on. Amount of title flyby demos to play is specified with Title autoplay demos amount parameter.
If you don't want to use title demo autoplay at all, simply set InputTimeout to a VERY BIG value, like 500000. It means that user will have to wait ~5 hours until demo autoplay will actually begin, i bet that no one have such large amount of patience.

Parameters:

  • Title autoplay demos amount: changes amount of autoplay demos in title screen.
  • Font effect parameters set different font effects for different demo player / recorder labels.

Fix binoculars bug
If you've played PlayStation version of TR4, you should remember that, when you was in the mirror room and binoculars were used, Lara's reflection was put into binocular state too — her animation changed, and binoculars meshswap appeared in her hands. In PC version, however, Lara was in standard standing state, with no traces of binoculars animation or meshswap. This patch fixes this bug, so, when looking through binoculars, you will see the same thing as in PS version.


In this Coastal Ruins mirror room, you now is able to see actual Lara's binoculars reflection.

PLEASE NOTE that by default animation #441, which is used for binoculars state, is looped on itself! If you will use this patch with unmodified animation #441, it will look like Lara isn't able to move binoculars up and down. So you must edit animation #441 in WadMerger and change next animation number to 103 — up/down binocular controls will be unlocked.

Parameters:

  • Meshswap object ID: changes meshswap object that becomes active when Lara is looking through binoculars.

Multiple vertical / horizontal mirrors
TR4 engine uses quite simple method of rendering Lara's reflection. It copies all main Lara parameters (like corrdinates, rotation, animation number etc.), processes them in a way that reflection moves properly, and then draws second Lara model, plus executes some secondary effects. For some reason, Core used only one mirror for single level, despite the fact that reflection drawing can be repeated infinitely. This patch modifies mirror drawing, so actually game will now be able to render up to 20 different Lara reflections in single level. It overwrites classic SCRIPT.TXT mirror settings completely, now all mirror parameters are placed in extended SCRIPT2.TXT file. Read eSSe reference to learn these new mirror parameters.


Multiple reflections in Coastal Ruins

However, it is NOT recommended to place multiple reflections in the same room, because then you may experience various minor glitches (for example, gunflash may disappear in one of the reflections).

Much more desired advantage of this patch is the ability to create up to 50 vertical mirrors. It is extremely useful if you want to make reflecting floors or ceilings in your level:


Vertical reflections include floor and ceiling reflections.

Vertical mirrors are almost the same thing as horizontal mirrors, except that their code processes slightly different parameters, so it looks like Lara is not mirrored horizontally, but vertically. Scripting of vertical mirrors is similar to scripting of horizontal mirrors, but coordinate parameter sets vertical reflection plane position. If reflection plane is equal or larger than Lara's position, then reflection will be rendered UNDER Lara, and if reflection plane is less than Lara's position, it will be rendered ABOVE Lara. Mind that when creating floor and ceiling reflections.

Rotate camera with right stick
Old
Tomb Raider games were optimized for gamepad controllers by nature, since primary platform for TR1-TR5 was PlayStation console. So, in my opinion, the best choice is to play custom levels with some decent gamepad with two analog sticks. Unfortunately, TR4 was developed at a times when dual-stick gamepads were rare, so it doesn't support right stick controls. If you look at newest TR games, like Legend or Anniversary, you will see that right stick is used to rotate camera around Lara. This may come in handy in some circumstances — if you want to take good screenshot, check out what happens behind you, or simply to get a better control response. This patch turns on right analog stick on most of dual-stick gamepads, so it will be used to rotate camera, just like in Anniversary or Legend. Only major difference is Lara won't change her direction according to camera rotation.
To restore default camera position (i. e. behind Lara), simply press LOOK button for one moment — then position will be immediately restored to default.
NOTE: some users may realize that up/down and left/right axes on their right analog stick are swapped! This bug is related to certain gamepad configurations and drivers. If you can't fix it by changing gamepad settings (some drivers may allow you to swap axes on low level), then you can simply swap axes in TR4 options screen. Just go to TR4 options menu, and you will see new option that will swap gamepad right stick axes:

Also note that this patch requires eSSe extended strings file, because text labels for this new option are taken from STRINGS2.TXT file.

Parameters:

  • Dead zone: changes right stick's deadzone. You can set it higher, so poorly calibrated or malfunctioning gamepads won't accidentally rotate camera. It is set to 4 by default, which should be enough for most devices.

Cold breath
Again, as seen in TR3, enables cold breath functionality. To make it work, you can either set «Cold» room flag in NGLE or type ColdBreath= ENABLED for corresponding level in SCRIPT2.TXT. In other words, you have two methods to do it: first — enable cold breath for specific rooms in NGLE, or second — enable cold breath for whole level with SCRIPT2.TXT. NGLE users will find first method more flexible, but in case you're using DXTre3D or simply don't want to tick Cold button for each room in your project, you can use second method.
Remember that there is no need to set ColdBreath parameter, if you're using Cold flags in NGLE and, on contrary, there is no need to use such flags if you're using ColdBreath parameter.

Also note that cold breath is synchronized differently with 4 standing animations (103, 110, 222 and 263). If you're using default animations, leave these settings intact. But if you've modified one of these standing animations, you must set cold breath start frame manually, so it will synchronize with actual Lara movement. As for all other animations... Well, there is a little surprise for you: unlike TR3, breathing speed will depend on how fast Lara is moving! So it will look like Lara is breathing faster when, for example, she is sprinting or running, and she will breath very slowly when she's hanging on a ledge or walking.

Parameters:

  • Animation 103 start frame: modifies cold breath effect start frame for animation 103 (standing still).
  • Animation 110 start frame: modifies cold breath effect start frame for animation 110 (surfacing water).
  • Animation 222 start frame: modifies cold breath effect start frame for animation 222 (duck).
  • Animation 263 start frame: modifies cold breath effect start frame for animation 263 (on all fours).
  • General cycle length: modifies breathing cycle length for all other animations.
  • General cycle start frame: changes breathing effect start frame for general breathing cycle.

Cold breath: bypass animation 103 sync
Bypasses synchronization of cold breath effect with standing animation. Can be useful if you have VERY LONG custom standing animation.

Bass.dll OGG audiotrack playback
Not only this patch replaces TR4 engine's audiotrack format from MS-ADPCM to OGG Vorbis format, but it completely changes the way audiotracks are played! It uses new external sound engine called BASS sound library, which is FAR MORE powerful than built-in TR4 audiotrack playback code. For example, with this BASS library you now can smoothly fade-out audiotracks on level loading, you can play several audiotracks simultaneously (unlike TR4 audiotrack player, which is capable of only playing one track at a time), you can smoothly fade one track into another, and many more! For now, this patch offers you these advantages:

  1. OGG format allows gapless looped playback, which means that there will be no ugly gap on looped track replay any more, so you can have Legend-like infinite musics and ambiences.
  2. OGG format uses one of the best audio compression algotithms, much better than MP3. You can create very small files with decent sound quality.
  3. Since OGG format is played directly by TR4 engine, there is no need in inbetween audio conversions. In other words — no more start_me.exe is needed.
  4. Looped and non-looped audiotracks are played in two different streams. In simple words, it means that ambience loops will play without interruptions, because all other music themes will be played in parallel stream (i. e. you will hear both ambience and music tracks playing at the same moment!).
  5. There are now smooth transitions, when game is switching between two looped tracks. You don't need to fade-out your loop ambience tracks in sound editor anymore, because all fade-ins and fade-outs will be processed by BASS library itself. Also it adds more atmospheric feel to your level, because tracks can fade into each other very slowly, leaving no rude edge between indoor and outdoor zones.
  6. There will be smooth audiotrack fadeout when you're loading new level.
  7. When Lara is dead, both audiotracks will stop with fancy «dying turntables» slow-down effect and fadeout.
  8. You may set-up looped audiotrack damping, so looped track will be temporarily silenced (partly or fully) if non-looped track is also playing.
  9. Very first looped track in a level starts with a one-shot fade-in, so you can have «infinite» ambience loop with automatic start-up fade-in.

WARNING: To use this patch, you must download BASS library package and then put bass.dll file from this archive to the same directory as tomb4.exe, or else game won't work!
WARNING 2: before using this patch, make sure there is NO .wav files in your /audio folder, or else TR4 will still play old .wav files and ignore .ogg files!

Parameters:

  • Prev looped track fadeout time: sets time (in milliseconds) to fade-out previous looped track (when looped tracks are switching).
  • Next looped track fade-in time: sets time (in milliseconds) to fade-in forthcoming looped track (when looped tracks are switching).
  • Non-looped track fadeout time: sets time (in milliseconds) to fade-out previous non-looped track (when non-looped tracks are switching)
  • Looped track loading fadeout time: sets time (in milliseconds) to fade-out looped track on next level loading.
  • Non-looped track loading fadeout time: sets time (in milliseconds) to fade-out non-looped track on next level loading.
  • Looped extension hex string: if you want this patch to play looped .mp3 files instead of .ogg files (yeah, you can use MP3 or OGG formats), set it to 2E6F6767.
  • Non-looped extension hex string: if you want this patch to play non-looped .mp3 files instead of .ogg files, set it to 2E6F6767 too.
  • Looped track damping fadeout time: time (in milliseconds) to fade-out looped track after non-looped track playback is initiated.
  • Looped track damping fadeout volume: damping volume. Maximum is 100 (looped track will be comptetely silenced), minimum is 0 (no damping at all).
  • Looped track damping fade-in time: time (in milliseconds) to fade-in looped track back again (after non-looped track playback is finished).
  • On-death looped fadeout time: time (in milliseconds) to fadeout and slow-down looped track in case Lara is dead.
  • On-death non-looped fadeout time: time (in milliseconds) to fadeout and slow-down non-looped track in case Lara is dead.
  • Looped level start-up fade-in time: time (in milliseconds) to fade-in very first looped track in each level.

Clear menu backgrounds
Every old TR (except TR2, which had textured background) game draws inventory / load / save / paused screens background in a very dumb way — it simply captures current game screen, downsamples it to 640x480 resolution and then renders under inventory or whatever else. It looks OK on consoles and TVs (remember that TR4 engine is nothing more but direct PlayStation port), but on high-resolution PC monitors it looks so awful...
This patch will give you something else. Instead of screen-capturing, it pauses in-game renderer, but everything remains on screen. Benefits — of course, no more striped inventory bug, plus inventory background will be rendered in SAME resolution as current screen resolution! Also you'll get nice colour tint fade-in, like in PlayStation versions of the game.

Parameters:

  • Blue / Red / Green colour tint: changes overall background colour character.
  • Blue / Red / Green tint fade-in speed: changes the speed of each tint colour fade-in speed.

Lara's Ponytail Position Changer
Patch created by GeckoKid / Harly Wuson
With this patch you can freely change both old (1-ponytail) and young (2-ponytail) Lara's hair position! Theoretically it allows you to create new outfits with different haircuts and hair placement.

Parameters:

  • Adult Lara's X / Y / Z position: changes adult Lara's ponytail X / Y / Z position.
  • Young Lara's (left) X / Y / Z position: changes young Lara's left ponytail X / Y / Z position.
  • Young Lara's (right) X / Y / Z position: changes young Lara's right ponytail X / Y / Z position.

Add textbox into SECRET_MAP slot
Allows you to use abandoned SECRET_MAP slot for universal textbox object, that will generate specific event, when Lara will press ACTION key in object activation zone. In simple words, if you've played any of Resident Evil (or any other CAPCOM) games, you know that usually, when you're pressing ACTION key nearby some suspicious object, game will return some text comment, like «It's too dark to see outside the window» or «It is the painting of an old man» or «Some weird experiments were done here...», and so on. So, with SECRET_MAP object you now can create absolutely the same thing! Literally, you can turn whole TR game into text quest, because you can place LOTS of SECRET_MAP objects in your level with different text strings assigned to them!
Moreover, when Lara approaches this object's interaction zone, it will produce neat tooltip message in the bottom right part of the screen. Text of this tooltip may change, depending on OCB you've set (see below).
There are, however, few complications that you must keep in mind when using SECRET_MAP object.

  1. OCB codes from 0 to 9999 sets number of STRINGS2.TXT to show, when Lara presses ACTION nearby corresponding SECRET_MAP object. For ex., if you have SECRET_MAP object with OCB 15, it will show string number 16 (because OCB 0 goes for string number 1) from STRINGS2.TXT. Text will show in the bottom part of game screen.
  2. OCB + 10000 will produce same result as above, but text will show in the center part of the screen. It may be useful if you want to mark importance of your text, or simply if your large text can't fit bottom part of the screen.
  3. OCB + 20000 will produce same result as (1), but you will see «ACTION — talk» item tooltip instead of default «ACTION — examine» tooltip. It may be very useful, if you're using SECRET_MAP objects not only for item interaction, but also for NPC talks. This way you can also place some static NPCs in your game with SECRET_MAP objects around them, and it will show you proper tooltip message (because it will look odd if game will produce «examine» message with living people, no?).
  4. OCB + 30000 will produce same result as (2), but with same difference as in (3).
  5. Negative OCB will produce absolutely different effect. Any negative OCB will result in call-back of corresponding custom flipeffect set in Flipeffect Editor. For example, SECRET_MAP object with OCB -52 will immediately execute flipeffect number 52, if Lara will appear in its activation zone and player will press ACTION. This way you can create some unique interaction zones or objects with different functions (like health chargers, item givers, item activators, level loaders, video / audio players etc.)! Note that flipeffect activated by any SECRET_MAP object won't stop any general flipeffect that is currently activated.

More info about this patch's functionality is given in these forum messages: one, two.

OCB-customizable waterfall mist

Modifies WATERFALL_MIST object using standard OCB field. With this patch, you can create mist objects of ANY size and various colours.
Waterfall mist's OCB should be in format XXYY, where XX - mist size, and YY - mist colour (colour numbers are COMPLETELY similar to volumetric fog bulb colour numbers, which you're entering in timer field when changing fog bulb colour). Examples:

0517 — creates small red mist,
3026 — creates extra-huge green mist,
2003 — creates medium-sized sky-blue mist.

Note that this patch overwrites GFX Customizer's waterfall mist colour and size options, but it DOESN'T overwrite density and amount settings, because I've ran out of OCB capacity (there is way to pack more parameters into OCB, like Core design did, but I suppose no one want to hurt themselves with calculating hexcodes).

OCB-customizable amber light

Amber Light object, along with Blinking Light object, is very popular in TR level building, because these two objects are only dynamic lights in our beloved TR4 engine. But what's the use of it, if you can't customize it?! So now, prepare for REAL DISCO!!! You can freely change light's fading interval, size (radius) and, of course, colour! Imagine dark room with all types of dynamic lights turned on simultaneously... Create dancefloors, alarms of any kind, faint CRT screens blinking, underwater glow, and many more — all with only one simple OCB.

OCB is now in 5-digit format "XXXYZ", where XXX - blinking ratio from 0 (constant glowing) to 127 (shifting strobe), Y - light radius from 0 to 9, and Z - light colour from 0 to 6. Colour numbering IS NOT the same as for waterfall mist bulb, but is similar to TREP's Light Customizer original Amber Light options. If you still feel confused, here is the description:

0 — light-blue (classic Amber Light colour)
1 — green
2 — deep-blue
3 — magenta
4 — yellow
5 — red
6 — white.

Examples of usage:

00122 — create small blue light with very slow blinking effect
12756 — create big white light with funny shifting stroboscope effect (try it, can't describe it well)
02031 — create medium-sized green light which blinks a bit faster than classic amber light.


3.: HOW TO CREATE YOUR OWN CUSTOM PATCHES?

Warning: this section contains NO information about how to research TR4 engine, but only directions for dealing with internal DRACO patch editor.

You don't need any extra software to write DRACO patches, because it already contains built-in patch editor. If you want to use this editor, you must set DRACO module to development mode. To do this, you must click onto small smiley picture in the top right corner of description box (you will note that cursor changed to Mickey's hand) or find line DeveloperMode=0 in trep.cfg and set it to DeveloperMode=1. Then TREP will always start with custom patch development functions enabled!


TREP's custom patch module with developer functions enabled

Now, as described by this picture, you should see additional buttons panel under patch's list.

  • edit — allows you to edit selected custom patch
  • delete — deletes current custom patch. You WILL NOT be prompted if you want to delete it or not, so press this button carefully.
  • delete all — deletes ALL custom patches from the list. You will be prompted if you really want to do this or not.
  • new — create new custom patch. If you will press this button, you will be promted to enter new patch's name. Do not use commas in patch's name! Never! Commas are used by TREP to recognize custom patch's settings from preset file, and if you will use comma in patch name, preset file will be corrupted.
  • /\ — moves selected custom patch up. You can change patching order by moving each custom patch up or down.
  • \/ — moves selected custom patch down. You can change patching order by moving each custom patch up or down.

Now, if you've decided to create new custom patch, pressed new button and entered new patch's name, you should see patch editor window:


Patch editor window

Here is the description of each part of editor's window:

  • Title specifies custom patch's name. You can always change your custom patch's name there, but you must note that if patch's name changed, previous patch's version settings won't be loaded from preset file and you will need to re-enter your settings again and create preset again.
  • Description short description of your patch.
  • «Patch requires remap scene memory» checkbox — if your patch requires this option (like Tomo's weather patch), you must turn on this checkbox, so if user haven't enabled this option, custom patch will not be written.
  • «Patch requires increased tomb4.exe size» checkbox if your patch uses extended tomb4.exe section, you must use this option. Usage same as above.
  • «Patch requires relocated particle buffer» checkbox same as above, but for «Remap particle buffer» option.
  • «Patch requires advanced savegame management» checkbox — as above, but for «Advanced savegame management» option.
  • Dependencies here you can specify names of already existing patches that are required for your new patch. You can specify multiple custom patch names seperated by commas WITHOUT spaces. You must enter each custom patch's name exactly as it appears in custom patch list.
  • When conditions are not complied... what to do if some of listed requirements and dependencies are not complied?
    • Ignore patch simply ignore patch and don't write anything to executable. You must use this option VERY carefully, because since user have enabled your patch, he won't be able to disable it again!
    • Patch original patch original data (see further for description of ORIGINAL and MODIFIED text fields). This option commonly used in almost all existing custom patches. That is, if user have disabled this custom patch or some requirements did not match, TREP will write default, original (non-modified) data.

Offsets and codes

Next goes big part of editor's window which consists of so-called OFFSET LIST (left) and three CODE textboxes. Offset list used to specify offsets for your custom patch data. For example, if you want to write some patch at offset 2E5E1, you must press add button and enter this offset. Remember that tomb4.exe's offsets are not equal to OllyDbg offsets and such. You must substract 400000 from OllyDbg's offset to get real file's offset. This difference in «real» and «virtual memory» offset called Relative Virtual Address (shortly called RVA) in low-level programming terms.
You can delete already existing offsets by pressing kill button. Also you can edit each offset by selecting it from the list and pressing right mouse button.

Next goes description of CODE section. For each offset there can be three different hexadecimal codes that are used in different circumstances. First ORIGINAL is the original, non-modified code used for resetting patch data to default. You must enter here default tomb4.exe's code that you're replacing by your patch. Second text field — MODIFIED — used for specifying modified hex code (i. e. your patched code).
Next text field
MODIFIED (REMAP) is a bit more complicated. You may ask «why there are two different MODIFIED hex codes in some custom patches?» and here is the answer. Roots of this problem lies in «Remap scene memory» option from main TREP's window. This option changes internal TR4 memory structure, so all addresses in your custom patch must be corrected. To know more about dealing with these two MODIFIED code fields, refer to DRACO Custom Patch Reference bundled with each TREP's package.

  • TRIM this gray option above CODE textboxes used to quickly remove all spaces, carriage return and line feed symbols from all your hexcodes. This option is VERY useful if you're directly importing hexcodes from OllyDbg, since OllyDbg generates hexcode with spaces and CR/LF symbols, which is not applicable for TREP's write file functions.

Parameters

Parameters are dynamic values that you can change in tomb4.exe file to get different results. About 90% of all TREP's options are such parameters that you can change in any way you want. So DRACO module also contains support for 9 different parameters per each patch. Each parameter occupies one parameter slot (see Parameter slot combobox in the bottom part of patch editor).

  • Enable parameter enables parameter for current parameter slot. It means that this parameter will be functional and will be written into executable.
  • Title specifies parameter's title (description). It will appear as parameter's description label in custom patches window.
  • Offset enter your parameter's offset here (hexadecimal only!)
  • Value default value for your parameter. This value will be written to executable if user disabled your custom patch or have resetted parameter's value to default.
  • Type specifies value type for your parameter.

***

3.1.: DRCMerger

DRCMerger is DRACO module's front-end. This small tool intended for merging one custom patch set file (usually called patches.drc) into another. It can copy patches from one custom patch set file to another, and also delete and move them. This can be useful if, for example, you have downloaded two different patch sets from different people, and you want to collect all patches in single patch set file. That's where DRCMerger steps in:


DRCMerger window

Basically, DRCMerger's interface is similar to FexMerger or WADMerger interface — it has two separate lists and separate controls for source (shortly called SRC) and destination (DEST) patch set files. When you've loaded source and destination files (with LOAD SRC and LOAD DEST buttons), you can begin to copy patches from source to destination patch set.

Note that patches that you've selected in the left part of the window will be copied into right part of the window. To copy selected patches, simply press copy >> button. If you will try to copy patch with the same name, DRCMerger will ask you if it should overwrite this patch or skip it.

Also, like in TPascal's FexMerger, you can select patches in right part of the window, and when you will press copy >> button, all patches that were selected in right list, will be deleted.

When you're clicking on ANY custom patch in right or left list, DRCMerger will show you small fading-in info box with amount of offsets, parameters and raw patch size in bytes. Another useful info is placed on top of each patch list — it tells you current source/destination files' version, date and time.

In both lists, you can move patches up (/\ buttons) or down (\/ buttons), as well as reset all selected patches (with slashed zero buttons). Optionally, instead of loading destination patch set, you can create new destination patch set file from scratch with NEW button (in this case you should delete dummy Empty patch entry afterwards).

After you've ended merging patches, you can save it with corresponding button.

TOP

TREP is freeware and not a registered trademark and is not protected by any moronic copyright laws.