-
Notifications
You must be signed in to change notification settings - Fork 0
Registry
Certain values in the registry are able to be overridden by the config.opt file.
The value of BitmapEnable
depends on the checkboxes Enable Normal Maps
, Enable Dirt Maps
, and Enable Occlusion
in the Advanced
window in GameSetup.exe
. When Enable Normal Maps
is unchecked the bits 0xA8
are set, otherwise the bits are unset. When Enable Dirt Maps
is unchecked the bit 0x40
is set, otherwise the bit is unset. When Enable Occlusion
is unchecked the bit 0x4
is set, otherwise the bit is unset. Naturally, if all 3 checkboxes are set then BitmapEnable
is 0
, and if all 3 checkboxes are unchecked BitmapEnable
is 0xEC
. Despite appearing in the same window, the Enable Shadow Maps
checkbox has no effect on BitmapEnable
; instead it controls the value of VideoShadowMap
.
This key is read by the game but is not editable in GameSetup.exe
. A value of 1
inverts the Y-Axis movement of the camera. This is separate from the OPTIONS
-> CONTROLS
-> SETTINGS
-> Camera Y Axis
Inverted
option, which is stored in the save file. The registry value and Camera Y Axis
value stack together. If both are inverted then they cancel out and it is as if the camera Y-Axis is not inverted. The arrow key camera controls are always inverted regardless of either setting.
This key is read by the game but is not editable in GameSetup.exe
. The movement of the camera along each axis is multiplied by MouseSensitivity * 0.0099999998 * 1.5 + 0.5
.
This key is read by the game but is not editable in GameSetup.exe
. After the game reads the value, it is immediately discarded.
This key is read by the game but is not editable in GameSetup.exe
. This value is unused in favor of MouseSensitivity
.
The value for this key corresponds to a trtext
ID.
UserLanguageID |
trtext ID |
Language |
---|---|---|
1041 | 0 | PATCH_STR_LANG_JAPANESE_Z |
1033 | 1 | PATCH_STR_LANG_ENGLISH_Z |
1036 | 2 | PATCH_STR_LANG_FRENCH_Z |
1034 | 3 | PATCH_STR_LANG_SPANISH_Z |
1031 | 4 | PATCH_STR_LANG_GERMAN_Z |
1040 | 5 | PATCH_STR_LANG_ITALIAN_Z |
1043 | 6 | PATCH_STR_LANG_DUTCH_Z |
1044 | 7 | PATCH_STR_LANG_NORWEGIAN_Z |
1045 | 8 | PATCH_STR_LANG_POLISH_Z |
1042 | 9 | PATCH_STR_LANG_KOREAN_Z |
2057 | 10 | PATCH_STR_LANG_ENGLISH_UK_Z |
1029 | 11 | PATCH_STR_LANG_CZECH_Z |
1030 | 12 | PATCH_STR_LANG_DANISH_Z |
1053 | 13 | PATCH_STR_LANG_SWEDISH_Z |
1046 | 14 | PATCH_STR_LANG_BRAZIL_Z |
1032 | 15 | PATCH_STR_LANG_GREEK_Z |
1037 | 16 | PATCH_STR_LANG_FINLANDAIS_Z |
1049 | 17 | PATCH_STR_LANG_RUSSIAN_Z |
2070 | 18 | PATCH_STR_LANG_PORTUGESE_Z |
3084 | 19 | PATCH_STR_LANG_FRENCH_US_Z |
20 | PATCH_STR_LANG_SPANISH_US_Z | |
21 | PATCH_STR_LANG_TCHINESE_Z | |
22 | PATCH_STR_LANG_SCHINESE_Z |
There is no corresponding UserLanguageID
for the trtext
IDs 20, 21, and 22.
It is unclear how the Version
key's value is determined. The value does not appear to have changed between FUEL and Up.
The value for this key is the index in the Video Adapter
drop-down selection in GameSetup.exe
.
The value for this key is the Anisotropic Level
selected in GameSetup.exe
. Disabled
is 1
, 2x
is 2
, 4x
is 4
, 8x
is 8
, and 16x
is 16
.
If the value of this key is 0
then the same flags variable as VideoShadowMap
is bitwise or'd with 0x40000
. This flag appears to never be tested by the game. I cannot notice a difference between having this set or not.
This value is a boolean that cannot be set using GameSetup.exe
. The game looks normal with the default value of 1
. With a value of 0
, the game looks overexposed and several meshes are invisible. Recompiling shaders with the value of 0
does not seem to help. Clicking Play
or Quit
in GameSetup.exe
sets this value to 1
.
The value for this key is the index in the Resolution
drop-down in GameSetup.exe
. However, the VideoResolution
key is what is actually used to determine the resolution the game runs at. Clicking Play
or Quit
in GameSetup.exe
sets the value of VideoResolution
to the corresponding resolution for the selected index in the Resolution
drop-down, overwriting any custom resolution set in VideoResolution
.
The value for this key is the Antialiasing
selected in GameSetup.exe
. Disabled
is 0
, 1x
is 1
, 2x
is 2
, 4x
is 4
, and 8x
is 8
.
The value for this key is the index in the Performance
drop-down in the Advanced
window in GameSetup.exe
. Low
is 0
, Medium
is 1
, and High
is 2
. This value by itself is only used to store the preset and has no effect outside of setting the checkboxes that control BitmapEnable
and VideoShadowMap
on selection. The checkboxes themselves are what determine the values of BitmapEnable
and VideoShadowMap
regardless of the preset selected.
The VideoResolution
registry key is encoded as (height << 16) | width
, that is, the height component is the upper 16 bits of the 32-bit REG_DWORD
value and the width component is the lower 16 bits. So width=1920=0x0780, height=1080=0x0438
becomes VideoResolution=0x04380780
.
See also: Custom Resolution & Shader Tweak
This key is read by the game but is not editable in GameSetup.exe
. After the game reads the value, it is immediately discarded.
The value for this key is the checkbox Enable Shadow Maps
in the Advanced
window in GameSetup.exe
. Unchecked is 0
and checked is 1
. The same flags variable as VideoCubeMap
is or'd with 0x20000
if VideoShadowMap
is 0
. As expected, unchecking this disables shadows in the game.
The value for this key is the index in the Texture Filtering
drop-down in GameSetup.exe
. Bilinear
is 0
, Trilinear
is 1
, and Anisotropic
is 2
.
The value for this key is the index in the Texture Quality
drop-down in GameSetup.exe
. HIGH
is 0
and LOW
is 1
.
Note that while by default the registry for FUEL contains these subkeys, they have no effect since the controls are loaded from the save file. The game contains all the logic to load the controls from the registry as described below but does not. Other games allow the controls to be changed using GameSetup.exe
, FUEL only allows the controls to be changed via an in-game menu. NbPlayer
can be set to 0
and Controls00
deleted without effect.
The subkey ControlsZZ
, where ZZ
is in the range [0, NbPlayer)
, has a number of subkeys matching the pattern Control.XX.YY.Primary/Secondary
where XX
is in the range [0, NbContext)
and YY
is in the range [0, 32)
. By default NbPlayer
has a value of 1
and NbContext
has a value of 3
. Not all possible permutations are used by default.
The value of each of these keys is encoded as (data << 16) | type
, that is, the data
component is the upper 16 bits of the 32-bit REG_DWORD
value and the type
component is the lower 16 bits. There are four possible type
values, each type uses the data
component differently.
Conventionally, the Primary
keys are for mouse and keyboard controls while the Secondary
keys are for joystick controls.
See also: Custom Gamepad Control Mapping
A type
component with a value less than or equal to -3
represents no selected input for that control. The data component is unused and 0
by default.
A type
component with a value equal to -2
represents something. Potentially mouse buttons.
A type
component with a value equal to -1
represents a DirectInput KeyCode input for that control. In this case, the data component is a DIK KeyCode.
A type
component with a value greater than or equal to 0
represents a DirectInput joystick, where the exact value is the index of the Joystick. In this case, the data component is encoded as (data_type << 8) | data_data
, that is, the data_type
component is the upper 8 bits of the 16-bit WORD
value and the data_data
component is the lower 8 bits. There are 5 possible values for data_type
, each type uses the data_data
component differently.
A data_type
component with a value equal to 0
represents a joystick button. In this case, the data_data
component represents the button index.
A data_type
component with a value equal to 1
represents a joystick POV button, a DPad button. In this case, the data_data
component represents the POV button index. A data_data
component with a value of 0
, 1
, 2
, or 3
corresponds to up, right, down, and left respectively.
A data_type
component with a value equal to 2
represents something. Possibly controller trigger inputs?
A data_type
component with a value equal to 3
represents a joystick rotation. In this case, the data_data
component is encoded as (data_data_axis << 4) | data_data_sign
, that is, the data_data_axis
component is the upper 4 bits of the 8-bit BYTE
value and the data_data_sign
component is the lower 4 bits. A data_data_axis
component with a value of 0
, 1
, or 2
corresponds to X, Y, or Z respectively. A data_data_sign
component with a value of 0 or 1 corresponds to negative or positive respectively.
A data_type
component with a value equal to 4
represents a joystick axis. In this case, the data_data
component is encoded as (data_data_axis << 4) | data_data_sign
, that is, the data_data_axis
component is the upper 4 bits of the 8-bit byte
value and the data_data_sign
component is the lower 4 bits. A data_data_axis
component with a value of 0
, 1
, or 2
corresponds to X, Y, or Z respectively. A data_data_sign
component with a value of 0 or 1 corresponds to negative or positive respectively.
The X and Y axis correspond to the left stick while the Z axis and Z rotation correspond to the right stick.
The following table describes the default registry values for the Controls00
subkeys and their decoding according to the scheme described above. DIK KeyCodes in the table are given assuming a QWERTY keyboard layout.
Key | Value | Data | Type |
---|---|---|---|
Control.00.00.Primary | 0x1effff | DIK_A | DirectInput KeyCode |
Control.00.00.Secondary | 0xfffd | 0 | Disabled |
Control.00.01.Primary | 0x20ffff | DIK_D | DirectInput KeyCode |
Control.00.01.Secondary | 0xfffd | 0 | Disabled |
Control.00.02.Primary | 0x11ffff | DIK_W | DirectInput KeyCode |
Control.00.02.Secondary | 0xfffd | 0 | Disabled |
Control.00.03.Primary | 0x1fffff | DIK_S | DirectInput KeyCode |
Control.00.03.Secondary | 0xfffd | 0 | Disabled |
Control.00.04.Primary | 0xcbffff | DIK_LEFT | DirectInput KeyCode |
Control.00.04.Secondary | 0xfffd | 0 | Disabled |
Control.00.05.Primary | 0xcdffff | DIK_RIGHT | DirectInput KeyCode |
Control.00.05.Secondary | 0xfffd | 0 | Disabled |
Control.00.06.Primary | 0xc8ffff | DIK_UP | DirectInput KeyCode |
Control.00.06.Secondary | 0xfffd | 0 | Disabled |
Control.00.07.Primary | 0xd0ffff | DIK_DOWN | DirectInput KeyCode |
Control.00.07.Secondary | 0xfffd | 0 | Disabled |
Control.00.08.Primary | 0x4fffff | DIK_NUMPAD1 | DirectInput KeyCode |
Control.00.08.Secondary | 0xfffd | 0 | Disabled |
Control.00.09.Primary | 0x1ffff | DIK_ESCAPE | DirectInput KeyCode |
Control.00.09.Secondary | 0xfffd | 0 | Disabled |
Control.00.10.Primary | 0x13ffff | DIK_R | DirectInput KeyCode |
Control.00.10.Secondary | 0xfffd | 0 | Disabled |
Control.00.11.Primary | 0x1cffff | DIK_RETURN | DirectInput KeyCode |
Control.00.11.Secondary | 0xfffd | 0 | Disabled |
Control.00.12.Primary | 0x39ffff | DIK_SPACE | DirectInput KeyCode |
Control.00.12.Secondary | 0xfffd | 0 | Disabled |
Control.00.13.Primary | 0x1dffff | DIK_LCONTROL | DirectInput KeyCode |
Control.00.13.Secondary | 0xfffd | 0 | Disabled |
Control.00.14.Primary | 0x52ffff | DIK_NUMPAD0 | DirectInput KeyCode |
Control.00.14.Secondary | 0xfffd | 0 | Disabled |
Control.00.15.Primary | 0x21ffff | DIK_F | DirectInput KeyCode |
Control.00.15.Secondary | 0xfffd | 0 | Disabled |
Control.00.16.Primary | 0x12ffff | DIK_E | DirectInput KeyCode |
Control.00.16.Secondary | 0xfffd | 0 | Disabled |
Control.01.00.Primary | 0x1fffff | DIK_S | DirectInput KeyCode |
Control.01.00.Secondary | 0xfffd | 0 | Disabled |
Control.01.01.Primary | 0x1effff | DIK_A | DirectInput KeyCode |
Control.01.01.Secondary | 0xfffd | 0 | Disabled |
Control.01.02.Primary | 0x11ffff | DIK_W | DirectInput KeyCode |
Control.01.02.Secondary | 0xfffd | 0 | Disabled |
Control.01.03.Primary | 0x20ffff | DIK_D | DirectInput KeyCode |
Control.01.03.Secondary | 0xfffd | 0 | Disabled |
Control.01.04.Primary | 0x14ffff | DIK_T | DirectInput KeyCode |
Control.01.04.Secondary | 0xfffd | 0 | Disabled |
Control.01.05.Primary | 0x15ffff | DIK_Y | DirectInput KeyCode |
Control.01.05.Secondary | 0xfffd | 0 | Disabled |
Control.01.06.Primary | 0x16ffff | DIK_U | DirectInput KeyCode |
Control.01.06.Secondary | 0xfffd | 0 | Disabled |
Control.01.07.Primary | 0x17ffff | DIK_I | DirectInput KeyCode |
Control.01.07.Secondary | 0xfffd | 0 | Disabled |
Control.02.00.Primary | 0xc8ffff | DIK_UP | DirectInput KeyCode |
Control.02.00.Secondary | 0xfffd | 0 | Disabled |
Control.02.01.Primary | 0xd0ffff | DIK_DOWN | DirectInput KeyCode |
Control.02.01.Secondary | 0xfffd | 0 | Disabled |
Control.02.02.Primary | 0xcdffff | DIK_RIGHT | DirectInput KeyCode |
Control.02.02.Secondary | 0xfffd | 0 | Disabled |
Control.02.03.Primary | 0xcbffff | DIK_LEFT | DirectInput KeyCode |
Control.02.03.Secondary | 0xfffd | 0 | Disabled |
Control.02.04.Primary | 0x1cffff | DIK_RETURN | DirectInput KeyCode |
Control.02.04.Secondary | 0xfffd | 0 | Disabled |
Control.02.05.Primary | 0x12ffff | DIK_E | DirectInput KeyCode |
Control.02.05.Secondary | 0xfffd | 0 | Disabled |
Control.02.06.Primary | 0x1ffff | DIK_ESCAPE | DirectInput KeyCode |
Control.02.06.Secondary | 0xfffd | 0 | Disabled |
Control.02.07.Primary | 0x14ffff | DIK_T | DirectInput KeyCode |
Control.02.07.Secondary | 0xfffd | 0 | Disabled |
Control.02.08.Primary | 0x15ffff | DIK_Y | DirectInput KeyCode |
Control.02.08.Secondary | 0xfffd | 0 | Disabled |
Control.02.09.Primary | 0x16ffff | DIK_U | DirectInput KeyCode |
Control.02.09.Secondary | 0xfffd | 0 | Disabled |
Control.02.10.Primary | 0x17ffff | DIK_I | DirectInput KeyCode |
Control.02.10.Secondary | 0xfffd | 0 | Disabled |
Control.02.11.Primary | 0x2cffff | DIK_Z | DirectInput KeyCode |
Control.02.11.Secondary | 0xfffd | 0 | Disabled |
Control.02.12.Primary | 0x2dffff | DIK_X | DirectInput KeyCode |
Control.02.12.Secondary | 0xfffd | 0 | Disabled |
Control.02.13.Primary | 0x23ffff | DIK_H | DirectInput KeyCode |
Control.02.13.Secondary | 0xfffd | 0 | Disabled |
Control.02.14.Primary | 0x2effff | DIK_C | DirectInput KeyCode |
Control.02.14.Secondary | 0xfffd | 0 | Disabled |
Control.02.15.Primary | 0xeffff | DIK_BACK | DirectInput KeyCode |
Control.02.15.Secondary | 0xfffd | 0 | Disabled |
Control.02.16.Primary | 0x13ffff | DIK_R | DirectInput KeyCode |
Control.02.16.Secondary | 0xfffd | 0 | Disabled |
Notably, the F1
key does not appear in the registry despite being used to show the Immediate Mode Popup Menu.
A formatted dump of the result of running reg query HKEY_CURRENT_USER\SOFTWARE\FUEL /s
follows.
HKEY_CURRENT_USER\SOFTWARE\FUEL
Version REG_DWORD 0x5887c8ac
VideoMode REG_DWORD 0x0
VideoResolution REG_DWORD 0x4380780
VideoAdapter REG_DWORD 0x0
VideoPref REG_DWORD 0x2
VideoMultisample REG_DWORD 0x8
VideoAnisotropic REG_DWORD 0x10
VideoHDRI REG_DWORD 0x1
VideoSFX REG_DWORD 0x0
VideoShadowMap REG_DWORD 0x1
BitmapEnable REG_DWORD 0x0
VideoCubeMap REG_DWORD 0x1
VideoTextureQuality REG_DWORD 0x0
VideoTextureFiltering REG_DWORD 0x2
InvertYAxis REG_DWORD 0x0
MouseSensitivity REG_DWORD 0x32
PadsSensitivity REG_DWORD 0x32
NbPlayer REG_DWORD 0x1
UserLanguageID REG_SZ 1033
HKEY_CURRENT_USER\SOFTWARE\FUEL\Controls00
NbContext REG_DWORD 0x3
Control.00.00.Primary REG_DWORD 0x1effff
Control.00.00.Secondary REG_DWORD 0xfffd
Control.00.01.Primary REG_DWORD 0x20ffff
Control.00.01.Secondary REG_DWORD 0xfffd
Control.00.02.Primary REG_DWORD 0x11ffff
Control.00.02.Secondary REG_DWORD 0xfffd
Control.00.03.Primary REG_DWORD 0x1fffff
Control.00.03.Secondary REG_DWORD 0xfffd
Control.00.04.Primary REG_DWORD 0xcbffff
Control.00.04.Secondary REG_DWORD 0xfffd
Control.00.05.Primary REG_DWORD 0xcdffff
Control.00.05.Secondary REG_DWORD 0xfffd
Control.00.06.Primary REG_DWORD 0xc8ffff
Control.00.06.Secondary REG_DWORD 0xfffd
Control.00.07.Primary REG_DWORD 0xd0ffff
Control.00.07.Secondary REG_DWORD 0xfffd
Control.00.08.Primary REG_DWORD 0x4fffff
Control.00.08.Secondary REG_DWORD 0xfffd
Control.00.09.Primary REG_DWORD 0x1ffff
Control.00.09.Secondary REG_DWORD 0xfffd
Control.00.10.Primary REG_DWORD 0x13ffff
Control.00.10.Secondary REG_DWORD 0xfffd
Control.00.11.Primary REG_DWORD 0x1cffff
Control.00.11.Secondary REG_DWORD 0xfffd
Control.00.12.Primary REG_DWORD 0x39ffff
Control.00.12.Secondary REG_DWORD 0xfffd
Control.00.13.Primary REG_DWORD 0x1dffff
Control.00.13.Secondary REG_DWORD 0xfffd
Control.00.14.Primary REG_DWORD 0x52ffff
Control.00.14.Secondary REG_DWORD 0xfffd
Control.00.15.Primary REG_DWORD 0x21ffff
Control.00.15.Secondary REG_DWORD 0xfffd
Control.00.16.Primary REG_DWORD 0x12ffff
Control.00.16.Secondary REG_DWORD 0xfffd
Control.01.00.Primary REG_DWORD 0x1fffff
Control.01.00.Secondary REG_DWORD 0xfffd
Control.01.01.Primary REG_DWORD 0x1effff
Control.01.01.Secondary REG_DWORD 0xfffd
Control.01.02.Primary REG_DWORD 0x11ffff
Control.01.02.Secondary REG_DWORD 0xfffd
Control.01.03.Primary REG_DWORD 0x20ffff
Control.01.03.Secondary REG_DWORD 0xfffd
Control.01.04.Primary REG_DWORD 0x14ffff
Control.01.04.Secondary REG_DWORD 0xfffd
Control.01.05.Primary REG_DWORD 0x15ffff
Control.01.05.Secondary REG_DWORD 0xfffd
Control.01.06.Primary REG_DWORD 0x16ffff
Control.01.06.Secondary REG_DWORD 0xfffd
Control.01.07.Primary REG_DWORD 0x17ffff
Control.01.07.Secondary REG_DWORD 0xfffd
Control.02.00.Primary REG_DWORD 0xc8ffff
Control.02.00.Secondary REG_DWORD 0xfffd
Control.02.01.Primary REG_DWORD 0xd0ffff
Control.02.01.Secondary REG_DWORD 0xfffd
Control.02.02.Primary REG_DWORD 0xcdffff
Control.02.02.Secondary REG_DWORD 0xfffd
Control.02.03.Primary REG_DWORD 0xcbffff
Control.02.03.Secondary REG_DWORD 0xfffd
Control.02.04.Primary REG_DWORD 0x1cffff
Control.02.04.Secondary REG_DWORD 0xfffd
Control.02.05.Primary REG_DWORD 0x12ffff
Control.02.05.Secondary REG_DWORD 0xfffd
Control.02.06.Primary REG_DWORD 0x1ffff
Control.02.06.Secondary REG_DWORD 0xfffd
Control.02.07.Primary REG_DWORD 0x14ffff
Control.02.07.Secondary REG_DWORD 0xfffd
Control.02.08.Primary REG_DWORD 0x15ffff
Control.02.08.Secondary REG_DWORD 0xfffd
Control.02.09.Primary REG_DWORD 0x16ffff
Control.02.09.Secondary REG_DWORD 0xfffd
Control.02.10.Primary REG_DWORD 0x17ffff
Control.02.10.Secondary REG_DWORD 0xfffd
Control.02.11.Primary REG_DWORD 0x2cffff
Control.02.11.Secondary REG_DWORD 0xfffd
Control.02.12.Primary REG_DWORD 0x2dffff
Control.02.12.Secondary REG_DWORD 0xfffd
Control.02.13.Primary REG_DWORD 0x23ffff
Control.02.13.Secondary REG_DWORD 0xfffd
Control.02.14.Primary REG_DWORD 0x2effff
Control.02.14.Secondary REG_DWORD 0xfffd
Control.02.15.Primary REG_DWORD 0xeffff
Control.02.15.Secondary REG_DWORD 0xfffd
Control.02.16.Primary REG_DWORD 0x13ffff
Control.02.16.Secondary REG_DWORD 0xfffd
For FMTK Users and Mod Developers
For FMTK Developers
Asobo BigFile Format Specification
Asobo Classes
Animation_Z
Binary_Z
Bitmap_Z
Camera_Z
CollisionVol_Z
Fonts_Z
GameObj_Z
GenWorld_Z
GwRoad_Z
Keyframer*_Z
Light_Z
LightData_Z
Lod_Z
LodData_Z
Material_Z
MaterialAnim_Z
MaterialObj_Z
Mesh_Z
MeshData_Z
Node_Z
Omni_Z
Particles_Z
ParticlesData_Z
RotShape_Z
RotShapeData_Z
Rtc_Z
Skel_Z
Skin_Z
Sound_Z
Spline_Z
SplineGraph_Z
Surface_Z
SurfaceDatas_Z
UserDefine_Z
Warp_Z
World_Z
WorldRef_Z
Asobo File Format Idioms
Asobo CRC32
Asobo LZ Compression
Asobo Arithmetic Coding Compression
Asobo Save Game File Format Specification
Asobo Audio Formats
TotemTech/ToonTech/Zouna/ACE/BSSTech/Opal Timeline
Zouna Modding Resources
Miscellaneous