0xd0 – Fix Scenery Texture
By: Tim
de Klein (TdK), August, 17th, 2008.
First off all:
This document
explains how the 0xd0 command works, and what it can do. I discovered how
this command works just by experiment during the making off my Mid-Ohio and
Zolder tracks.
All the 0xd0
commands in the Zolder track have a function, those in the Mid-Ohio track are
not all correct, but I can guarantee that everything within this document is for
almost 100% accurate.
What 0xd0 does/can do:
It’s an simple
command with 3 arguments that can eliminate flashing scenery panels and fences,
and wrapping textures on a panel. A panel can be everything. A ribbon, verge, track, fence, etc…
But It can do
more. Sometimes a track, or most likely, a pitlane road, gets disturbed. A
great example is shown below:
As you can see the yellow lines on the
right, but
particularly on the left are straight!
But for sure this is a corner(!) in the
exit of the
pitlane…
With help of the 0xd0 command, this
problem
can be solved.
This is explained how, later on…
So simply
said, it “can” solve every visual imperfection! Which is very useful with track
making.
Standard 0xd0 information
The command
makes use off 3 arguments. Named in the Track Editor as:
a1 = Unused
a2 = 1st Ugly Factor – Location Code Type F
a3 = 2nd
Ugly Factor – Location Code Type F
As we all
know, a1 is the offset. So everything within the track length is allowed. But,
a2 and a3 become more difficult. I discovered that:
a2 = Wrapping
textures. This is simply a texture that won’t stand still on a panel. It just
moves
around between the two swivel arms, or
the begin and end of an (track)sector.
a3 = Flashing
panels. Well, you would say ribbons, banks, verges, fences.. etc. NO! Wrong,
a3 only affects the ribbons and banks.
So scenery structures.
But
what to do if I have a flashing fence or verge?
That’s the
weird thing about it. To prevent them from flashing (as you notice it), you
need to set a location code in a2, and most off the time in a3. Don’t know why,
but it works the best that way. Maybe we see it as flashing, but actually it’s
wrapping/moving around within the sector offsets. A bit strange but true…
‘Location Code Type F’
Now we know
what to do when. But, how does the “Location Code Type F” work?
From what has been discovered
until now, only the codes for the left and right bank are correct. All the
other codes are unknowns.
But not anymore! While making
the Mid-Ohio track, and the under construction Zolder track, i had a lot off
flashing panels, wrapping textures, to much to deal with. There was no reason
to make several track sectors for every problem area, or insert more scenery
commands to solve the problems.
So I decided to explore how
the 0xd0 command works. Which turned out to be more useful in more than one
way.
Because the track(s) had so
many visual imperfections, I was able to find out every code from the “Type F”
table.
This is how
it should look:
Code |
Description |
Code |
Description |
1 |
Trackside right |
2 |
Trackside left |
4 |
Type B kerbstone |
8 |
Type A kerbstone |
16 |
Right fence |
32 |
Left fence |
64 |
Right verge |
128 |
Right verge (including a texture) |
256 |
Left verge |
512 |
Left verge (Including a texture) |
1024 |
Bank left (Values 0, or below 0) |
2048 |
Left bank |
4096 |
Right bank |
6144 |
Ribbon 2 |
8192 |
Ribbon 3 |
16384 |
Ribbon 4 |
-1 |
Ribbon 1(!) |
|
|
Explanations:
Why is the code from ribbon 1, the value -1?
I think this should be 32768. Only
this value can’t be entered into the command. That’s why the -1 gives
32767+1=32768. Strange, but true.
What is a trackside?
The lines around the track. So
the white ones on the track, the yellows in the pitlane. When both location
codes used, you will have the location
code (3)
for the road.
Do kerbstones flash?
No. But they do deform a lot.
That’s why both have a location code. One single value code (4 or 8) works for
the left and right side.
Kerbstone example:
The original MircoProse San
Marino track. Track sector 61 has an 0xd0 command to correct the kerbstone.
On the left is how it looks
like with the command. On the right without the command. See how the kerbstone
gets disturbed without this helpful command.
a1 = set at: 13 à That’s where the kerbstone may go from a “Type B”,
to a “Type A”.
a2 = set at: 4 à The location code for the “Type B”
kerbstone.
A verge including a texture?
On verges you place textures a
lot. Gravel, tarmac, etc. Mostly in corners this textures can be disturbed.
When you have a texture disturbed on a verge, use code value 128 or 512,
depending on which side it is placed.
Bank left (Values 0, or below 0):
A strange location code. Only
found it in F1ct06, and F1ct04 of the original MicroProse tracks.
It’s for sure the left bank.
But only if the Z value of this bank is 0, or below 0. In F1ct06 it’s used in
the river on the left side down the long-curved straight, track sector 62. In
F1ct04 it is used in the right-hand corner before “Loews Hairpin”, track sector
32.
Strange code values like
24576:
Maybe most off the track makers know this already, but
for those who don’t:
These kind off “weird” values
are created by adding one code to another. 24576 is made out off the location codes
from Ribbon 3 (8192) and Ribbon 4 (16384).
The game itself is smart
enough to sort out which panels are included within the “add-on” value.
48 for an example consists out
of both fence codes, 32 and 16.
Now, let’s go back to this:
I’ve
already told that the 0xd0 command can do more than stop
ribbons
or fences from flashing and/or wrapping.
Sometimes,
but usually in the pitlane, the road
gets disturbed.
When
the track is deformed/disturbed, it’s
most likely to be seen
when
in camera view.
To solve this
type of visual imperfection, the 0xd0 command can be used with the value 39. At
least, that’s the value I used within the pitlane off the Zolder track. What
does 39 stand for than?
Trackside left
2
Trackside
right 1
Fence right 32
Type
b kerbstone 4
-------- +
39
I used code 4 because I first used this code for use within
the track, where there was a type b kerbstone on the inside of that corner. But
in the pitlane there’s no kerbstone, but that doesn’t matter. 35 (so all, but without the kerbstone) will give the
same effect.
Some final notifications:
1) Something
i didn’t discovered, is how to integrate the -1 value for Ribbon 1, with other
values. If you have flashing fences, and a flashing ribbon 1, 48 + -1 = 47,
won’t work as an location code. I think it’s best when this happens, to make
separate 0xd0 commands in that sector.
2) The
Zolder and Mid-Ohio track are created with the Gp2 TrackEditor 1.9.1.488 by
Paul Hoad. I think in older versions of the TrackEditor this information is as
useful as it is with the newest version, but it’s not tested.
3) Never
insert a 0xd0 command with a scenery location code included, when scenery at
that point is turned off. This is the same for fences, when they are turned
off. This will give strange effects on other textures. It can affect the cars
driving around, or (maybe) the objects. There is even a change of creating GFX
bugs.
‘Disclaimer’:
The reason i
wrote this document, was to let other track makers learn how to fix visual
bugs/imperfections in their own tracks.
I can always
give (some) assistance, but only if this document doesn’t help, and/or you’ve
tried your best to fix the problem.
TdK.