Dec 082017
Utility to rotate Flight Sim IV scenery around a user-input coordinate.
File ASDROT.ZIP from The Programmer’s Corner in
Category Games and Entertainment
Utility to rotate Flight Sim IV scenery around a user-input coordinate.
File Name File Size Zip Size Zip Type
ASDROT.EXE 52172 26216 deflated
READ.ME 12556 4923 deflated

Download File ASDROT.ZIP Here

Contents of the READ.ME file

ASDROT.EXE Copyright 1992 (C) Synthetic Reality Co.

This program is a DOS utility which allows you to rotate objects within
an ASD .SC1 scenery file.This version will also rotate a .DY1 dynamic
scenery file, but you must supply the center of rotation explicitly via
the /N and /E switches.

NOTE: This is a beta test version which you use at your own risk.
Be sure to back up any .SC1 file on which you intend to use
this utility.

All objects within the SC1 file you select will be rotated about a point
which you specify, some number of degrees which you also specify.The
rotated scenery will be placed in a file with the same name as the source
file, only a @ character is appended to the end of the name.

For example:

C:FS4> ASDROT file.sc1-25.3

this will rotate by 25.3 degrees all objects within the scenery file
'file.sc1' in a counterclockwise direction around the center of the
scenery file. Not only are the object centers rotated, but the
orientation of buildings, runways, ILS beacons etc. are also rotated.
The results will be saved in a file called '[email protected]'

If you know the FS4 coordinates of the point around which you would
like to rotate objects, you may specify it explicitly through the use of
command line switches. For example:

C:FS4> ASDROT file.sc1180.0 /N17000 /E7512.23

Which will rotate the objects 180.0 degrees clockwise around the
FS4 pointNorth 17000.000, East 7512.23

Note that you must have at least one space before each command
switch and NO spaces within command switches. For example:

Bad: ASDROT file.sc175 /N 17000 /E7500
Bad: ASDROT file.sc175/N17000 /E7500

You can also limit the scope of rotation to objects which lie within a
certain radius of the center of rotation via the /R switch. You can also
specify specific types of objects which should be left alone even though
they lie within the radius of rotation (using the /X switch)


To get a complete list of current switches, use the /? switch, as


However, as of this writing, after the MANDATORY file name (including
extension) and degrees, you may optionally include one or all of the
following command switches:

/T Enable an extremely verbose diagnostic trace.
You may want to use this as:

ASDROT file.sc1 90 /T >trace.txt

so that you can examine trace.txt at your leisure.

/? Summarize the command options

/Nnn.nn Specify a new FS4 NORTH coord for center of rotation
(Otherwise uses the NORTH scenery file bounds info)

/Enn.nn Specify a new FS4 EAST coord for center of rotation

/Rnn.nn Specify a radius of rotation.Objects whose centers
are farther that this from the center of
rotation will not be rotated.Be forwarned that long
objects like rivers should be manually excluded if
that is your goal, since you may not be sure where
their center points lie. Units are FS units
(256 meters), the same used for N and E coords.

/X.... Specify a list of object types which are to be
left alone (not rotated). See the /? list for
full details, but for example:

/XR - don't rotate runways
/XV - don't rotate rivers
/XRVD - don't rotate runways, rivers,
or roads.
Excludable Obects:

N = Navaids P = Polygons B = Buildings
V = Rivers D = Roads M = Mountains
L = Lines R = Runways G = Timing Gates

/D When rotating a static scenery .SC1 file, if this
switch is present, ASDROT will automatically look
for a .DY1 dynamic scsnery file of the same name and
rotate it around the same center of rotation.
For example:

ASDROT file.sc1 -30 /D

will rotate the contents of file.sc1 AND file.DY1

You will probably find it easiest to run ASDROT from within a batch
file looking something like:

ASDROT FILE.SC1 [degrees] {switch options}
COPY [email protected] C:\FS4

This way you can try out different rotation values and exclusion
parameters without a lot of retyping. Having FS4 start with a mode which
places you above the rotation point looking straight down makes it more
convenient to judge the effectiveness of your rotation.

You may wish to use other tools to move areas to be rotated around
between SC1 files


Well, the program is SO young, it probably has LOADs of problems, but
here is what I know about already:

1.) I don't range-check your rotation-degrees, so keep them
in the range +/- 360.0

2.) If you rotate a file which is near the edge of the FS4
universe (or choose a remote center of rotation), some
objects may be rotated off one side of the univers and
onto the other side. This will probably be bad.

3.) Thermal Generators may not be handled correctly.

4.) Building orientations are normally rotated to the same
degree that their center points are rotated. However, some
scenery files do not record an orientation marker for
buildings which have a heading of 0 degrees. Such buildings
will not have their headings rotated. To overcome this,
use ASD to manually rotate the building (even back to 0
degrees). This will cause ASD to add an orientation
record which will allow ASDROT to rotate the heading of
the object.

5.) I haven't tried ILS systems post-rotation

6.) The current version handles all SEE-enhanced test files I
have tried, but I suspect SEE still has a few surprises.

7.) Command syntax for rotating dynamic scenery files is the
same, ASDROT automatically determines the file format from
its contents. But since a dynamic scenery file has no native
center, you must explicitly include the center of rotation
using the /N and /E switches. (unless you use the /D switch
when rotating an SC1 file, in which case the Dynamic scenery
is rotated about whatever Center of rotation you selected
for the static scenery file.

8.) Due to indecision on my part, I always rotate ALL dynamic
scenery within a DY1 file, unrelated to any /R radius you
might define. Let me know if you have ideas for a more
general algorithm (like only rotate objects whose starting
points are within the radius - except what about dynamic
sceney arcraft which start at some distance and land in the
middle or end of their pattern?)If at ANY time, the object
flies within the radius?More switch options?


If you enable the trace file option using the /T switch, you will almost
surely want to capture the voluminous output to a text file for later
analysis.When reporting bugs, it might be necessary to include a
trace file along with your description of the bug. The following command
format will capture the trace listing to a file instead of printing the
trace messages to screen.

> ASDROT file.sc1 /T >tracefile.txt

Without going into too much detail describing a format which is in a
constant state of flux, the trace file reports on the actions of the
program for each object encountered in the SC1 file. The statements
'rotating ...' indicate that a rotation is about to be performed. The
next two lines indicate:

(original coord) -> (delta from center of rotation)
(rotated delta) -> (final coord)

If you suspect ASDROT has made an error, check out the trace file and
look specifically for "unexpected record". I am very interested in
these, in general. However, building objects often end with a type 53h
record which has so far denied deterministic length determination (and I
am too much of a purist to scan for 19h!). So sometimes an unexpected
record will occur when I under-estimate a size. But this is always at
the end of the record (I think) and not a problem. But you tell ME!


The numbers are NOT shown to their full precision, so
don't worry if they appear clipped. All math is done using double
floating point precision.All FS values are first imported at the
highest possible resolution (1/256th of a meter, basically) and
intermediate computations are maintained in double floating point
precision until final output is needed. As a result, the program is
quite a number cruncher and seems pretty peppy on my 386/40 but is
probably a real pig, in general.

Rotation of all points consists of first determining the absolute coord
of the point (a feat in itself since the points are sometimes doubly
de-referenced), performing the rotation about the abs. rotation center
and then reconverting the point to its dereferenced format.

Heading rotations are performed simply by converting to a DOUBLE
format of the current heading, adding the rotation amount and then
converting back to FS format.

Precision of point rotation is maintained to a 1/256 meter. Heading
rotation should be accurate to .005 degrees. Repeated rotations of the
same file will slowly accrue errors. To minimize this, perform several
test rotations to determine the correct value and then rotate the final
determined amount all in one go from the original SC1 file. However, the
precision is really pretty good and it takes quite a few applications of
ASDROT before a file starts to skew noticeably. Several hundred, in fact.


Various symbols are probably registered trademarks of Microsoft, BAO,
Mallard, SubLogic, and other companies...

No warrantee or guarantee is expressed or implied blah blah blah....

Use at your own risk..... Save your pre-rotated files.

At this point, this program is neither Freeware, Shareware, nor a
product. Members of FSFORUM are hereby granted a limited license to
use the program at their option.

It does represent a fair amount of effort on the part of myself and other
individuals and our rights will ultimately have to be respected.

Other than that, this program was written with the intention of providing
a useful utility for the creation of scenery files.

Subject to change without notice...


Please let me know of any problems you have (and I will NOT feel guilty
about any SC1 files which are lost because you didn't BACK THEM UP) and
I will try to repair them.

Note: There are no published specs for the contents of scenery
files and so this utility was generated based upon information
derived from extensive trial and error.If you encounter
any problems, be sure to use the /T trace feature and send me
a note about the problem including the source scenery and /T
trace file.

Feel free to suggest enhancements.

Although this was not done for $$$, I would NEVER be so rude as to
refuse a check....

Dan J. Samuel
Synthetic Reality Co.
1248 Van Dyck Dr.
Sunnyvale, CA 94087
Compuserve: 70110,434
Internet: [email protected]


New with BETA 4 release

- Now tries to do dynamic scenery files as well
- Rotates SEE library objects
- Doesn't overwrite original file
- uses 1/256th meter resolution where available

New with BETA 5 release

- Scans records hidden within SEE 23h and 0Bh 'skip' records
- /R now affects DYNAMIC scenery
- /D switch automatically rotates DYNAMIC with same name as STATIC
- reworked ALL math to 1/256th meter resolution

New with BETA 6 release

- new understanding of 23h record
- fiddling with conditional jump vectors in general
- trace output summarizes records encountered.
- rotates runway heading designation to match Magnetic N orientation

 December 8, 2017  Add comments

Leave a Reply