Skip to content

Commit

Permalink
Initial implementation for niftools#69
Browse files Browse the repository at this point in the history
Made `<version>` mean distinct combination of header values which produce identical block layouts.  This meant splitting up several main Versions into many based on User Version or Bethesda  Version.

id = Used to uniquely identify this collection of NIF versions. Can also be used for enum generation, map/dictionary keys.

user = List of User Versions which are functionally equivalent

bsver = List of Bethesda Versions which are functionally equivalent

custom = If user/bsver are default but the Version is actually specific to a developer and not an official Gamebryo version

supported = Whether or not the XML fully supports reading/writing of this version.

ext = List of custom file extensions associated with this version.
  • Loading branch information
hexabits committed May 18, 2018
1 parent af2a5b8 commit eb4dfe6
Showing 1 changed file with 75 additions and 43 deletions.
118 changes: 75 additions & 43 deletions nif.xml
Original file line number Diff line number Diff line change
@@ -1,49 +1,81 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE niftoolsxml>
<niftoolsxml version="0.9.1.0">
<!--These are the version numbers marked as supported by NifSkope.
The num argument is the numeric representation created by storing
each part of the version in a byte. For example, 4.0.0.2 is
0x04000002 and 10.1.0.0 is 0x0A010000.-->

<version num="2.3">Dark Age of Camelot</version>
<version num="3.0">Star Trek: Bridge Commander</version>
<version num="3.03">Dark Age of Camelot</version>
<version num="3.1">Dark Age of Camelot, Star Trek: Bridge Commander</version>
<version num="3.3.0.13">Oblivion</version>
<version num="4.0.0.0">Freedom Force</version>
<version num="4.0.0.2">Morrowind, Freedom Force</version>
<version num="4.1.0.12">Dark Age of Camelot</version>
<version num="4.2.0.2">Civilization IV</version>
<version num="4.2.1.0">Dark Age of Camelot, Civilization IV</version>
<version num="4.2.2.0">Dark Age of Camelot, Civilization IV, Empire Earth II, Culpa Innata</version>
<version num="10.0.1.0">Zoo Tycoon 2, Civilization IV, Oblivion</version>
<version num="10.0.1.2">Oblivion</version>
<version num="10.0.1.3">?</version>
<version num="10.1.0.0">Dark Age of Camelot, Civilization IV, Freedom Force vs. the 3rd Reich, Axis and Allies, Kohan 2, Entropia Universe, Wildlife Park 2, The Guild 2, NeoSteam, Empire Earth II</version>
<version num="10.1.0.101">Oblivion</version>
<version num="10.1.0.106">Oblivion</version>
<version num="10.2.0.0">Civilization IV, Oblivion, Loki, Pro Cycling Manager, Prison Tycoon, Red Ocean, Wildlife Park 2</version>
<version num="10.2.0.1">Worldshift</version>
<version num="10.4.0.1">Worldshift</version>
<version num="20.0.0.4">Civilization IV, Oblivion, Sid Meier's Railroads</version>
<version num="20.0.0.5">Oblivion</version>
<version num="20.1.0.3">Megami Tensei: Imagine</version>
<version num="20.2.0.7">Emerge, Empire Earth III, Fallout 3, Skyrim, Fallout 4</version>
<version num="20.2.0.8">Emerge, Empire Earth III, Atlantica</version>
<!-- version 20.3.0.1 is found in Props/GDCLargeContainer.nif-->
<version num="20.3.0.1">Emerge</version>
<!-- version 20.3.0.2 is found in PFX/fx_muzzle_flash_example.nif -->
<version num="20.3.0.2">Emerge</version>
<version num="20.3.0.3">Emerge</version>
<version num="20.3.0.6">Emerge</version>
<version num="20.3.0.9">Warhammer, Lazeska, Divinity 2, Howling Sword, Bully SE</version>
<version num="20.5.0.0">KrazyRain</version>
<version num="20.6.0.0">KrazyRain</version>
<version num="20.6.5.0">Epic Mickey</version>
<version num="30.0.0.2">Emerge</version>
<version num="30.1.0.3">Rocksmith, Rocksmith 2014</version>
<version num="30.2.0.3">Ghost In The Shell: First Assault, MapleStory 2</version>
<!-- The versions found in use by the engine which have any amount of decoding or support from nif.xml
NOTE: Hypothetical versions such as those used in version conditions must NOT receive version tags.
id = "VX_X_X_X": The unique identifier for this version. Can be used to generate C-style enums, etc.
num = "X.X.X.X": The numeric representation created by storing each part of the version in a byte.
Example: 4.0.0.2 == 0x04000002
10.1.0.0 == 0x0A010000.
supported = "<boolean>": False if the XML does not fully support reading of this version.
user = "<List[integer]>": The custom User Version(s) for a specific Version from a game/developer.
Note: Grouping multiple user in a list means that these user produce identical NIF layout.
Example: user="12"
user="0x20000 0x30000"
bsver = "<List[integer]>": The custom Bethesda Version(s) for a specific Version and User Version.
Note: Grouping multiple bsver in a list means that these bsver produce identical NIF layout.
Example: bsver="34"
bsver="30 31 32 33"
custom = "<boolean>": True when version contains extensions to the format not originating from Gamebryo.
Note: A user or bsver of non-zero implies custom="true" and is not necessary.
ext = "<List[string]>": Any custom NIF extensions associated with this version.
Example: ext="bto btr"
-->

<version id="V2_3" num="2.3" supported="false">Dark Age of Camelot</version>
<version id="V3_0" num="3.0" supported="false">Star Trek: Bridge Commander</version>
<version id="V3_03" num="3.03" supported="false">Dark Age of Camelot</version>
<version id="V3_1" num="3.1" supported="false">Dark Age of Camelot, Star Trek: Bridge Commander</version>
<version id="V3_3_0_13" num="3.3.0.13">Oblivion, Munch's Oddysee</version>
<version id="V4_0_0_0" num="4.0.0.0">Freedom Force</version>
<version id="V4_0_0_2" num="4.0.0.2">Morrowind, Freedom Force</version>
<version id="V4_1_0_12" num="4.1.0.12">Dark Age of Camelot</version>
<version id="V4_2_0_2" num="4.2.0.2">Civilization IV</version>
<version id="V4_2_1_0" num="4.2.1.0">Dark Age of Camelot, Civilization IV</version>
<version id="V4_2_2_0" num="4.2.2.0">Dark Age of Camelot, Civilization IV, Empire Earth II, Culpa Innata</version>
<version id="V10_0_1_0" num="10.0.1.0">Zoo Tycoon 2, Civilization IV, Oblivion</version>
<version id="V10_0_1_2" num="10.0.1.2" bsver="1 3">Oblivion</version>
<version id="V10_1_0_0" num="10.1.0.0">Dark Age of Camelot, Civilization IV, Freedom Force vs. the 3rd Reich, Axis and Allies, Kohan 2, Wildlife Park 2, The Guild 2, NeoSteam, Empire Earth II</version>
<version id="V10_1_0_101" num="10.1.0.101" user="10" bsver="4">Oblivion</version>
<version id="V10_1_0_106" num="10.1.0.106" user="10" bsver="5">Oblivion</version>
<version id="V10_2_0_0" num="10.2.0.0" user="0">Civilization IV, Loki, Pro Cycling Manager, Prison Tycoon, Red Ocean, Wildlife Park 2</version>
<version id="V10_2_0_0__10" num="10.2.0.0" user="10" bsver="6 7 8 9">Oblivion</version>
<version id="V10_2_0_1" num="10.2.0.1" custom="true">Worldshift</version>
<version id="V10_3_0_1" num="10.3.0.1" custom="true">Worldshift</version>
<version id="V10_4_0_1" num="10.4.0.1" custom="true">Worldshift</version>
<version id="V20_0_0_4" num="20.0.0.4" user="0">Civilization IV, Sid Meier's Railroads, Florensia, Ragnarok Online 2, IRIS Online</version>
<version id="V20_0_0_4__10" num="20.0.0.4" user="10" bsver="11">Oblivion</version>
<version id="V20_0_0_4__11" num="20.0.0.4" user="11" bsver="11">Fallout 3 (few KF files, used, 1 NIF file, unused?)</version>
<version id="V20_0_0_5_OBL" num="20.0.0.5" user="10" bsver="11">Oblivion</version>
<version id="V20_1_0_3" num="20.1.0.3">Shin Megami Tensei: Imagine</version>
<version id="V20_2_0_7" num="20.2.0.7" user="0">Empire Earth III, Atlantica Online, Florensia, IRIS Online, Wizard101</version>
<version id="V20_2_0_7__11_1" num="20.2.0.7" user="11" bsver="14">Fallout 3, Fallout NV</version>
<version id="V20_2_0_7__11_2" num="20.2.0.7" user="11" bsver="16" ext="rdt">Fallout 3</version>
<version id="V20_2_0_7__11_3" num="20.2.0.7" user="11" bsver="21">Fallout 3, Fallout NV</version>
<version id="V20_2_0_7__11_4" num="20.2.0.7" user="11" bsver="24">Fallout 3, Fallout NV</version>
<version id="V20_2_0_7__11_5" num="20.2.0.7" user="11" bsver="25">Fallout 3, Fallout NV</version>
<version id="V20_2_0_7__11_6" num="20.2.0.7" user="11" bsver="26">Fallout 3, Fallout NV</version>
<version id="V20_2_0_7__11_7" num="20.2.0.7" user="11" bsver="27 28">Fallout 3, Fallout NV</version>
<version id="V20_2_0_7__11_8" num="20.2.0.7" user="11" bsver="30 31 32 33">Fallout 3, Fallout NV</version>
<version id="V20_2_0_7_FO3" num="20.2.0.7" user="11" bsver="34" ext="rdt">Fallout 3, Fallout NV</version>
<version id="V20_2_0_7_SKY" num="20.2.0.7" user="12" bsver="83" ext="bto btr">Skyrim</version>
<version id="V20_2_0_7_SSE" num="20.2.0.7" user="12" bsver="100" ext="bto btr">Skyrim SE</version>
<version id="V20_2_0_7_FO4" num="20.2.0.7" user="12" bsver="130" ext="bto btr">Fallout 4</version>
<version id="V20_2_0_8" num="20.2.0.8" ext="nifcache">Empire Earth III, Atlantica Online, FFT Online, IRIS Online, Wizard101</version>
<version id="V20_3_0_1" num="20.3.0.1">Emerge</version>
<version id="V20_3_0_2" num="20.3.0.2">Emerge</version>
<version id="V20_3_0_3" num="20.3.0.3">Emerge</version>
<version id="V20_3_0_6" num="20.3.0.6">Emerge</version>
<version id="V20_3_0_9" num="20.3.0.9" user="0 0x10000" ext="nft item">Warhammer, Lazeska, Howling Sword, Bully SE, Divinity 2 (0x10000)</version>
<version id="V20_3_0_9_DIV2" num="20.3.0.9" user="0x20000 0x30000" ext="item">Divinity 2</version>
<version id="V20_5_0_0" num="20.5.0.0">MicroVolts, KrazyRain</version>
<version id="V20_6_0_0" num="20.6.0.0">MicroVolts, KrazyRain, Ragnarok Online 2, Atlantica Online, IRIS Online, Wizard101</version>
<version id="V20_6_5_0_DEM" num="20.6.5.0" user="17" supported="false">Epic Mickey 2</version>
<version id="V30_0_0_2" num="30.0.0.2">Emerge</version>
<version id="V30_1_0_1" num="30.1.0.1">Emerge</version>
<version id="V30_1_0_3" num="30.1.0.3">Rocksmith, Rocksmith 2014</version>
<version id="V30_2_0_3" num="30.2.0.3">Ghost In The Shell: First Assault, MapleStory 2</version>

<!--Basic Types-->

Expand Down

0 comments on commit eb4dfe6

Please sign in to comment.