DRACO custom patch module reference
(updated 13 Apr 2007)
Hinweis:
Dies Seite beinhaltet alle Informationen über Custom Patches, die
früher auf der "Handbuch" Seite zu finden waren.
Table of contents:
1.
Überblick 2. How to use custom patches?
2.1.
Custom patches reference 3. How to create custom
patches?
3.1. DRCMerger
1.: Überblick
Mehr als ein Jahr ist vergangen, seit die ersten
Patches für die TR4 Engine im Internet erschienen sind. Fast jeden Monat wird
irgend etwas neues herausgefunden und es ist sehr schwer,
Wenn du in die TREP History schaust, wirst du sehen, dass in der Mitte von 2006,
fast jede Woche neue Versionen von TREP veröffentlicht wurden.
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.
Das ist der Grund
warum man DRACO (Dynamically-ReplaceAble Code
Organizer) nennt — es erlaubt dir etwas hinzuzufügen, zu
löschen, anzumachen, auszumachen, modifizieren und custom patches zu
verändern.
2.:
WIE VERWENDE ICH CUSTOM PATCHES?
Der Aufbau vom DRACO module ist
beträchtlich einfach:
Auf der linken Seite ist die Patch
Liste. Du kannst dort patches Aktivieren und Deaktivieren, welche du brauchst,
oder nicht brauchst. Die Beschreibung ändert sich im Rechten Fenster, wenn du
einen anderen Patch anklickst. Die Rechte Seite ist die Patch Info Box und sie
beinhaltet nützliche Informationen des entsprechenden patches, wie Name,
Beschreibung usw. Markierte patches erlauben dir die dynamischen Parameter zu
verändern, du wirst entsprechende Beschreibungen und Textfelder in der Infobox
entdecken.
In manchen Fällen färbt sich bei
bestimmen Patches die Infobox (Schrift) rot und es taucht ein rotes Bild auf der
Rechten Seite auf wie dieses Beispiel:
Patch Titel rot gefärbt!
Wenn dies passiert, hast du nicht alle Optionen
aktiviert, die für diesen Patch erforderlich sind. Jedes rote Bild hat seine
eigene Bedeutung, dies kannst du erfahren, wenn du mit dem Mauszeiger über da
Bild fährst, ändert sich der Mauszeiger in eine Hans. Wenn du anschließend auf
das Bild klickst, öffnet sich ein neues Fenster in dem steht, welche Option du
aktivieren muss.
— hier musst du aktivieren «Extend
tomb4.exe size» Option im Hauptfenster von TREP.
— hier musst du aktivieren «Remap
particle buffer» Option im Hauptfenster von TREP.
— hier musst du aktivieren «Remap
scene memory» Option im Hauptfenster von TREP..
— hier musst du aktivieren «Enable
advanced savegame management» Option im Hauptfenster von TREP.
— hier musst du diverse extra
Custom patches aktivieren um den einen lauffähig zu bekommen. Am
einfachsten ist es, du klickst auf das Bild und du wirst dann die
entsprechende Liste bekommen, welche patches du Aktivieren musst.
DRACO module buttons:
load set: Lade
eine vorgefertigte Patch Datei (Datei die alle Informationen über dem custom
Patch enthält).
save set: Wenn du einen Patch editierst oder selber patches
erstellst kannst du diese hiermit speichern. defaults:
Setzt alle patches und Einstellungen der patches wieder auf Werkseinstellung
zurück.
proceed: Schließt das custom patches Fenster und kehrt zum
TREP Hauptfenster zurück.
Suchfunktion: DRACO
module hat eine eingebaute Suchfunktion. Wenn du viele patches in der Liste
hast, kannst du die Suche benutzen, um einen Patch schneller zu finden.
Um die Suche benutzen zu können, tippe einfach bestimmte Suchwörter in die
Such box und Klicke Enter, oder auf die Lupe, du wirst anschließend zu den
ersten Treffer geführt.
Wenn die Suchfunktion nichts finden konnte, wirst du in der Such box folgendes
lesen können: [sequence not found]. Um die Suche von vorne beginnen zu
können, drücke einfach auf dem Pfeil neben der Lupe.
Du kannst auch Tastenkürzel für
die Suche benutzen:
F2 —
Suche vom Anfang an. F3 — Suche nächsten
Treffer.
Using parameters
Manche custom patches erlauben dir einen dynamic
parameter zu verändern oder mehrere dynamic 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 Our Dearest Core Design Programmers? Can you tell me
why they've removed a lot of good features introduced in previous
games from TR4 engine? Obviously you can't, because such behaviour
exceeds all borders of logic and common sense. Why they've removed
useful ammo counter? 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. Did you know that Our Dearest Core
Design Programmers allowed 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:
of course, as always, Our Dearest Core Design Programmers left a great
surprise for us there too. 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. So say thanks to Our Dearest Core Design Programmers and their outstanding
programming skills again.
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. Perhaps, Our Dearest Core Design Programmers blundered once
again and forgot to add control handler for it. 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:
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 armor class (i. e. non-protected, armored, bleeding, undead
etc., according to Enemy HP Customizer's HP flags settings). 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:
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 STRINGS.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.
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.
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. Maybe
Core thought that green phosphoric sticks are looking better
than REAL fiery flare, but obviously it was a big mistake.
Now 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. Because of this, you may experience
bug when holding a flare — it won't change flame direction according
to Lara's hand mesh position. Separate flare objects, however, works
normally.
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.
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.
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.
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.
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.
Multiple
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. 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 20 different Lara reflections.
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
disapper in one of the reflections).
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.
|