TESPort   - Bridging Worlds

TESPort is a free utility to help you port (convert) the essential features of any mod written for Morrowind to Oblivion. Essentially it is an ESM/ESP convertor from TES3 to TES4 and will create an Oblivion compatible copy of the original mod including all the external cells, landmass, vertex colour shading, Oblivionized landscape textures, all NPCs, common Oblivionized inventory for those NPCs, Books, Quests, Journal entries and Global Variables. The output is put in a file called TESPORT.ESP; an Oblivion (TES4) compatible plugin file and the landmass is put into a new worldspace called TESPORT, which you may later rename in the Oblivion TES Construction Set (TESCS).

Since this is a complete reverse-engineering job without assistance, not every feature of TES3 will be imported (indeed some TES3 features simply aren't supported in TES4).
Please note this is presently a Console application only, though it is trivial to use.

To see screenshots of Morrowind and Ynys Mon automatically 'Oblivion-ized' - Click here!

How to use TESPort:

Download and unzip the program from the link below and copy it in to the same directory as the Morrowind master/plugin you want to import. Then open up a console window and type:

tesport myfile.esp

where myfile.esp is the name of the Morrowind file you want to import. When TESport has finished, you should find a file called TESPORT.ESP in the same directory. You should copy this TESPORT.ESP file to your Oblivion Data directory (where all the usual Oblivion esm and esp files are stored). You may then load the landmass in to the TES Construction Set or in to the game directly. You may also rename the worldspace from TESPort to whatever you like. Presently no master is required for the landmass, so you can quickly load up TESPORT.ESP in the TESCS without needing to load Oblivion.esm.

The Future Goals of TESPort:

  • To import the complete landmass (without specific textures). (Completed)
  • To import the NPCs. Specifically the race, gender, vital stats and skills. (Completed).
  • Automatically convert most major armour, weapons and clothing to their Oblivion equivalents using a lookup file, so NPCs are clothed and equipped.(Completed).
  • Place those NPCs in their correct cell positions (turning FRMR->ACHR records). (Completed).
  • Also place Morrowind-Oblivion compatible creatures (such as skeletons, rats, Daedra etc).
  • Import global variables. (Completed).
  • Import Books. (Completed).
  • Import Oblivion equivalent landscape textures. (Completed).
  • Import Dialogue entries.
  • Import Quest and Journal entries. (Completed).
  • Import script text. Due to several differences between TES3 and TES4 script capabilities, editing for compatibility and recompilation will have to be carried out in the TESCS.
  • STATics (buildings/furniture/crockery etc) may be included as an option (I've already written in the code), but due to potential copyright issues and simple compatibility issues between NIFs in Oblivion and Morrowind, these feature will probably only remain an option for users who want it.

    Download TESPort:

    Downloads File
    TESPort (Current development version - 0.25) - 22-February 2007 TESPort-0.25.zip

    Some notes: A rough outline of how TESPort works.

    TESPort parses each record in a selected TES3 (Morrowind) master or plugin file looking for specific records, GLOBs (global variables), NPC_s (Non Player Character statistics, including inventory), external CELLs and LAND (the former contains details for each point on the world-grid including placed items and NPCs, the latter contains the land-height, vertex normals and applied texture settings) and BOOKs (obvious!) and writes a TES4 version of each record with a group header. For NPC_ and LAND records, Oblivion expects the data to be compressed with ZLIB. DIAL and quest INFO records are accumulated into QUST records.

    Since each TES4:Oblivion cell contains only 32x32 grid points - that's 4 times smaller than TES3:Morrowind's 64x64 cell format, TESPort generates 4 cell records for later use; as a result, for example, a cell at co-ords (5, 6) in Morrowind will cover 4 cells in Oblivion: (10, 12), (10, 13), (11, 12) and (11, 13). TESPort then looks for the LAND record. Each LAND record has to be split up in to 4 records containing the vertex normals (VNML), vertex height gradients (VHGT), vertex colour shading (VCLR) and vertex texture (VTEX) data. The VNML and VCLR data is re-arranged in to 4 smaller grids. The VHGT data is also arranged in to 4 smaller grids, but 3 of the cells have recalculated cell offsets and the edges of these cells are recalculated so there are no join gaps. The TES3 VTEX data (a 16x16 grid, arranged in sets of 4x4) is arranged in to a logical (X-Y) 16x16 grid, blown up to 34x34, then 4 sets of 17x17 texture points are processed for each cell. Each TES3 texture number is matched to a TES4 FormID number via a lookup file and a sequence of TES4 compatible ATXT-VTXT records is created. 4 LAND records are then generated, compressed with ZLIB format into an Oblivion compatible LAND record and for each of the 4 CELL-LAND combination; a cell record, 2 cell child group records and a LAND record are written to TESPORT.ESP.

    Paul Halliday (aka Lightwave): November 2006