Modifying the Falcon 4.0 keyboard file - By Kurt 'Froglips' Giesselman
So many people are contributing
so much to Falcon these days. The cockpits, missions, sounds, and even
data file corrections and modifications (see the Hexcode threads on the
MicroProse Falcon 4.0 message boards!) are all adding to the sim in tremendous
ways. One weekend this past summer I got frustrated that I could not operate
the HSI from the keyboard. I went on a hunt to try to find out if anyone
had done much work on the keyboard file and was surprised to find that
most of us were still trying to find the command to turn on the frame
rate counter.
It looked like I was going to have to figure this out by myself! Fortunately
the keyboard file is just a text file and requires no (or very little)
understanding of hexadecimal coding, machine language, or any of the stuff
that really smart people understand (this stuff is just a mystery to me).
Delving into the Falcon 4.0 keyboard file was time consuming but not too
tough. If you don't want to mess with the file but just have access to
all the possible commands then download my modified file from this web
site and place it in your Falcon4\config subdirectory. In Falcon 4.0 you
will need to go into the controller set-up screen and LOAD my file as
your default keyboard set-up.
One caution, and a big one, DO NOT ATTEMPT TO REDEFINE THE KEYBOARD
MAP WITH THE NEW FILE! Reprogram your HOTAS instead. Falcon 4.0 attempts
to re-sort the keyboard mapping in ASCII order. With my highly modified
file, Falcon fails and leaves the keyboard file totally fragged. Write
me after you have attempted to re-map a key press from inside Falcon and
you will get shot down in flames. All this said, if you want to understand
the mysteries of the keyboard file, read on.
Each line in the Falcon keyboard file has a series of data that tells
Falcon what you expect a key press to do. Each line also has a number
of 'switches' that allowed the Falcon programmers to hide commands from
us that they needed for debugging but they felt should not be accessible
to the game players. Well, we aren't gonna take that are we? A typical
line in the keystrokes.key file looks like this:
SimNextAAWeapon
The first long word is the variable name for Falcon. For goodness sakes,
do not mess with these! Changing the variable names is the only thing
you can do in this file that will crash Falcon. Other changes may not
work or do what you expect but changing these variable names is not gonna
make you a happy camper.
1013
The next data is either a number 1001 through 1097 or a -1. This four-digit
number maps the key press to a control in the cockpit. When you press
a key, and the switch in your 2D cockpit changes position, it was caused
by this code calling a routine in either the 8_ckpit.dat file (800 X 600)
or the 6_ckpit.dat file (640 X 480). These cockpit files are buried in
the Falcon Zip files or are located in your Falcon4\art\cockpit subdirectory
if you have a custom cockpit loaded. You can change these numbers but
frankly it just messes up your cockpit by calling the wrong subroutine.
0
The next data only appears to be able to have two values, 0 or 1. If it
is a 0 then the keyboard is allowed to actuate the cockpit switch in addition
to mouse or other forms of non-keyboard control. If it is a 1, like in
the case of HSI course and heading increment and decrement, then the keyboard
input is blocked.
0X1CB 0 0 0
The next four pieces of data work together to define the key code(s),
from your keyboard, that will actuate each specific function. There are
four codes to accommodate the two step entries used for the debugging
code hidden in this file. Most people know about the frame rate counter
that is accessed by pressing the key and 'z' key together followed
by the 'r' key. The command line for this command looks like this.
The code 0X13 means key 'r'. The 0 following means no shift, control,
or alt keys modification. The next entry 0X2C means 'z'. A '2' follows
the key code. That means the control key must be held down while the 'z'
key is pressed. The final two digits of the four digit 0X codes are right
out of the DOS handbook for key codes. Unfortunately, you have to know
these codes if you want to re-map keys in my modified file. I repeat,
you can not re-map keys in Falcon with my custom file! There are seven
possible values for the modifiers after the key codes. 0 = none
1 = key plus shift key
2 = key plus control key
3 = key plus shift and control key
4 = key plus alt key
5 = key plus alt and shift key
6 = key plus alt and control key
7 = key plus alt and control and shift key
If the second pair of codes is 0 0 then Falcon just uses the first pair.
You may see a line with the key code 0XFFFFFFFF. This means that the command
has not been mapped to a key press yet.
1
The final piece of data is the key to unlocking the power of the Falcon
keyboard file. This code determines if the keyboard command is displayed
in the Falcon Set-up keyboard re-mapper and if it is re-mappable. I was
fortunate to figure out this code first. There are three possible values
for this data.
1 = display key code and allow re-mapping
-1 = display key code and prevent changes
-2 = hide key code
When I went through and changed every data location to a 1, I was able
to see every possible keyboard command in Falcon. From "Blackout/Redout-toggle"
to "Invincibility", they were all there. Frankly, I have messed with all
of them and most of them have no value during a mission or are just outright
cheats. But they are all there for you to see now! I have changed all
these key codes to -1 in my custom file to prevent anyone trying to re-map
a key press and messing up there file inadvertently. You will see that
the Radio and Menu commands are also not displayed (because you know those
codes right?).
Finally, there are eight lines at the end of the file that have this format:
SimTrigger 0 -1 -2 0 0 0 "Fire gun"
Do not mess with these. I believe that they are mapping keys assigned
to game ports. Early on I deleted them with Falcon promptly reinserting
them and trying to re-sort my file. I have tried changing them to determine
if some new values might do something interesting but it has not to date.
If you have any questions you can reach me at Froglips@club-internet.fr
or via my squadrons web page www.404th.com
Please make copies of a file before you change it. I don't respond to
emails that begin with "You messed up…" or "Your file messed up…". However,
I will respond to people with interesting questions or new knowledge about
Falcon 4.0