Platform Conversion Utility (PCU)

Release Candidate 1

Author: Ascension64

 

WARNING!

This utility was made for modders. Although this utility will not damage your Baldur’s Gate or Baldur’s Gate II installation in any way, if you do not understand how this program works, refrain from using it.

 

DISCLAIMER

The author of this utility is not responsible for any public releases of modifications in which the development has relied partly or solely on any aspect of this utility, except in cases where the author has formally agreed to be an author of the modification.

 

Please give credit if this utility has been used in the development of a publicly released modification.

 

A. REQUIREMENTS

B. USAGE

C. FUNCTION

D. CAPABILITIES

E. LIMITATIONS

F. DATA FIELDS

G. VERSION HISTORY

H. APPENDIX

 

A. REQUIREMENTS

- A full installation of Baldur’s Gate (and Tales of the Sword Coast), and/or Baldur’s Gate II (either Shadows of Amn or Throne of Bhaal)

- Windows 95 or newer (use of xcopy /E /L)

 

Back To Top

 

B. USAGE

1. Extract this archive to either your Baldur’s Gate (and Tales of the Sword Coast), or Baldur’s Gate II (either Shadows of Amn or Throne of Bhaal) installation directory, depending on what ruleset you would like to use to parse script and dialogue files.

2. Extract the modification that you would like to convert to <IE game installation directory>\PCU\Input.

3. Run <IE game installation directory>\Setup-PCU.exe.

4. Select the appropriate conversion type when prompted. If you choose a custom conversion, make sure a dictionary named Custom.tph is present in <IE game installation directory>\PCU\Dict.

6. Wait patiently till the conversion is complete.

7. The program automatically uninstalls without affecting the output.

8. The output files can be found in <IE game installation directory>\Output.

 

Back To Top

 

C. FUNCTION

The purpose of this utility is to allow batch conversion of resource names, as file and within file types, from one naming convention to another. This utility, previously known as the Tutu2BGT converter utility, first allowed the conversion of BG1Tutu naming conventions to BGT naming conventions.

 

Be wary of the efficacy of this utility. See the Limitations section for details.

 

The utility works in an iterative, step-wise manner. Details of the conversion mechanism are described below:

a.      The dictionary, containing source names and target names, is loaded depending on the subcomponent selection made by the user.

b.      Filelist.txt is generated via MakeList.bat, which runs an xcopy /E /L >> Filelist.txt command. The /L switch prevents actual copying of files, but will generate a list of files that will be saved into Filelist.txt.

c.      Filelist.txt is modified by PCU in a complex fashion to allow entire rows to be read.

d.      For each entry in Filelist.txt, PCU determines the full path, extension, file name length, and directory path, of the entry and stores them into variables

e.      If the directory path is a new directory, then that directory will be created

f.       The file is copied to the output directory, and then the file type is determined under the following parameters in the following priority:

file size is 0 bytes (ignore file)

file header is AREAV1.0 (ARE file)

file has extension "BAF" (script source file)

file header is SC\nCR\nCO (BCS file) - where \n means 'new line'

file header is CRE V1.0 (CRE file)

file has extension "D" (dialogue source file)

file header is DLG V1.0 (DLG file)

file header is EFF V2.0 (EFF file)

file header is ITM V1 (ITM file)

file header is SPL V1 (SPL file)

file header is STORV1.0 (STO file)

file has extension "TRA" (TRA file)

file has extension "TP2" or "TPH" or "TPP" (TP2 file)

file header is VVC V1.0 (VVC file)

file header is WED V1.3 (WED file)

file header is WMAPV1.0 (WMP file)

 

g.      If the file type has been successfully identified, and the file size has been verified to be valid for the identified file type, appropriate data fields in that file, or the entire textual file, undergoes a one-to-one dictionary conversion of resource names by reading the input, checking the input against a list of source names, and then converting to a target name if a source name matches the input name. The type of source name used is restricted to the type of data field, if applicable. For example, if the data field requires specification of a CRE ResRef, then the input is checked against only CRE source names.

h.      In the case of a Tutu->BGT partial dictionary conversion only, if no source-to-input match is found, the data field or the entire textual file is checked for the presence of a "_" (underscore) in the prefix, and if such a prefix is present, it is removed and hex offsets are restored.

i.        By this stage, if no change is made, the data field is simply left alone.

j.        PCU now determines whether the current file needs to be renamed. In patching of entire textual files, especially in .tp2 files, references to files are renamed. For example, COPY ~_TASIGHT.BCS~ becomes COPY ~WTASIGHT.BCS~. The actual files themselves will also need to be renamed if references have been altered in such a manner. A one-to-one dictionary conversion of file names is attempted with a mechanism similar to that described for changing ResRefs in data fields or entire textual files.

k.      In the case of a Tutu->BGT partial dictionary conversion only, renaming of files is restricted to resources with a "_" (underscore) in the prefix or is prefixed with "FW". A one-to-one dictionary conversion is attempted first. If no source-to-input match is found, a "_" (underscore) in the prefix is simply removed.

l.        If the file type has not been detected and the file has not been renamed, then the file is ignored, but still copied into output.

m.    At the end of the installation, statistics are displayed on the number and types of files processed, number of files ignored, and number of files renamed.

n.      On exit, Rename.bat is executed. If a file has been renamed, the original file is copied into <IE game installation the directory>\PCU\Output\Renamed directory. Renamed.txt, found in the same directory, lists the full paths of files renamed.

 

Back To Top

 

D. CAPABILITIES

The types of conversions possible are limited by the availability of a dictionary. Dictionaries are found as .tph files in <IE game installation directory>\PCU\Dict. Currently, the following dictionaries are available:

1. Tutu->BGT (partial dictionary) – all conversions involving simple removal of a "_" (underscore) do not appear in the dictionary

2. Tutu->BGT (full dictionary) – all conversions appear in the dictionary

3. BG->BGT

4. BG->Tutu

5. BGT->BG

6. BGT->Tutu

7. Custom – make your own dictionary. A template is provided as CustomTemplate.tph. To use the custom dictionary, make sure the dictionary is named Custom.tph.

 

Dictionaries currently define source and target names for:

1. ARE/MOS/WED/height table BMP/light map BMP/search region BMP

2. Door names

3. Entrance names

4. BAM

5. BCS

6. BMP

7. CRE

8. Death variables

9. DLG

10.  ITM

11.  MOS

12.  MVE

13.  SPL

14.  STO

15. TIS/TIZ

16.  WAV

 

Back To Top

 

E. LIMITATIONS

Although PCU has the capacity to make tedious resource name conversions, thereby saving a lot of time, there are many things that cannot be batch converted in such a way. This utility relies heavily on textual replacements, and thus it is highly likely that plain non-reference text is erroneously converted. Therefore, it is of utmost importance that the output from PCU be checked and tested thoroughly to ensure that errors in the conversion process are corrected.

 

In terms of the actual conversion process, PCU has the following limitations:

1.      All. PCU cannot convert file types of versions not used in the Baldur’s Gate series (e.g. IWD2 files are not supported)

2.      2DA/IDS. PCU cannot patch 2DA or IDS files

3.      BAF/D/TP2/TPH/TPP. PCU cannot convert BAF, D, TP2, TPH, or TPP code if the file extension is not one of these

4.      Batch files. PCU cannot convert references within BAT files

5.      D. PCU cannot convert the exitFilename field within the CHAIN2 command

6.      TP2/TPH/TPP. PCU cannot maintain file type specificity when converting type-less patches (e.g. a script change from MINSC->BGMINSC will occur even if MINSC was referenced as a .CRE; however, MINSC.CRE remains MINSC.CRE)

7.      TP2/TPH/TPP. When using the BGT->Tutu or BG->Tutu dictionaries, conversion of BELT->_BELT will cross-convert the ADD/REPLACE_CRE_ITEM function when the item slot specified is ~BELT~

 

Back To Top

 

F. DATA FIELDS

The data fields checked by PCU, sorted by file type, are listed below:

 

ARE (Areas)

0x8 WED resref

0x18 north ARE resref

0x24 east ARE resref

0x30 south ARE resref

0x3c west ARE resref

0x94 BCS resref

 

Actors

0x48 area-specific creature DLG resref

0x50 area-specific creature override BCS resref

0x58 area-specific creature class BCS resref

0x60 area-specific creature race BCS resref

0x68 area-specific creature general BCS resref

0x70 area-specific creature default BCS resref

0x78 area-specific creature specific BCS resref

0x80 CRE resref

 

Info points, trigger points, and exit

0x0 trigger name (may contain area numbers for doors, required for TriggerActivation() commands)

0x38 destination ARE resref

0x40 entrance of destination ARE char array - currently ignored

0x7c region BCS resref

0xbc trigger DLG resref for prox triggers

 

Entrances

0x0 entrance name (contains area numbers)

 

Spawn points

0x24 spawn CRE resref 1

0x2c spawn CRE resref 2

0x34 spawn CRE resref 3

0x3c spawn CRE resref 4

0x44 spawn CRE resref 5

0x4c spawn CRE resref 6

0x54 spawn CRE resref 7

0x5c spawn CRE resref 8

0x64 spawn CRE resref 9

0x6c spawn CRE resref 10

 

Containers

0x48 trap BCS resref

0x58 creature CRE resref

0x78 key ITM resref

 

Items

0x0 ITM resref

 

Ambient

0x30 ambient WAV resref 1

0x38 ambient WAV resref 2

0x40 ambient WAV resref 3

0x48 ambient WAV resref 4

0x50 ambient WAV resref 5

0x58 ambient WAV resref 6

0x60 ambient WAV resref 7

0x68 ambient WAV resref 8

0x70 ambient WAV resref 9

0x78 ambient WAV resref 10

 

Doors

0x58 door open WAV resref

0x60 door close WAV resref

0x78 key ITM resref

0x80 open BCS resref

0xb8 open DLG resref

 

Animations

0x28 BAM resref

 

Songs

0x28 area ambient WAV resref

0x30 area ambient WAV resref

0x3c area ambient WAV resref

0x44 area ambient WAV resref

 

Rest interruption

0x48 CRE resref 1

0x50 CRE resref 2

0x58 CRE resref 3

0x60 CRE resref 4

0x68 CRE resref 5

0x70 CRE resref 6

0x78 CRE resref 7

0x80 CRE resref 8

0x88 CRE resref 9

0x90 CRE resref 10

 

BAF (Script source)

Textual replace of input when a match is found with the appropriate trigger/action and the correct parameter position

ARE references

TRIGGER.IDS

Global 2

GlobalGT 2

GlobalLT 2

GlobalTimerExact 2

GlobalTimerExpired 2

GlobalTimerNotExpired 2

AreaCheck 1

AreaCheckObject 1

 

ACTION.IDS

SetGlobal 2

LeaveArea 1

IncrementGlobal 2

SetGlobalTimer 2

AddexperiencePartyGlobal 2

RevealAreaOnMap 1

SetMasterArea 1

MoveGlobal 1

MoveBetweenAreas 1

EscapeAreaMove 1

SaveLocation 1

SaveObjectLocation 1

HideAreaOnMap 1

CopyGroundPilesTo 1

RealSetGlobalTimer 2

EscapeAreaObjectMove 1

MoveToSavedLocationn 2

MoveToSavedLocation 2

DeathMatchPositionGlobal 1

DeathMatchPositionArea 1

DeathMatchPositionLocal 1

MoveGlobalsTo 1

MoveGlobalsTo 2

SetTokenGlobal 2

SetEncounterProbability 1

SetEncounterProbability 2

LeaveAreaLUAEntry 1

LeaveAreaLUAPanicEntry 1

CreateCreatureAtLocation 2

CreateItemGlobal 2

LeaveAreaLUA 1

LeaveAreaLUAPanic 1

MoveBetweenAreasEffect 1

 

BAM references

ACTION.IDS

CreateVisualEffect 1

CreateVisualEffectObject 1

CreateCreatureObjectEffect 2

CreateCreatureObjectCopyEffect 2

LeaveAreaLUA 2

LeaveAreaLUAPanic 2

MoveBetweenAreasEffect 2

 

BCS references

ACTION.IDS

ChangeAIScript 1

StartCutscene 1

 

BAM references

ACTION.IDS

StaticPalette 1

 

CRE references

ACTION.IDS

CreateCreature 1

ChangeAnimation 1

ChangeAnimationNoEffect 1

CreateCreatureObject 1

CreateCreatureImpassable 1

CreateCreatureDoor 1

CreateCreatureObjectDoor 1

CreateCreatureObjectOffScreen 1

CreateCreatureOffScreen 1

CreateCreatureObjectCopy 1

CreateCreatureObjectOffset 1

CreateCreatureCopyPoint 1

CreateCreatureImpassableAllowOverlap 1

CreateCreatureAtLocation 3

CreateCreatureObjectEffect 1

CreateCreatureObjectCopyEffect 1

 

Death variable references

ACTION.IDS

ActionOverride 1

Attack 1

BackStab 1

Dialogue 1

Dialog 1

GetItem 2

GiveItem 2

GiveOrder 1

LayHands 1

MoveToObject 1

PickPockets 1

RunAwayFrom 1

Spell 1

UseItem 2

UseItemSlot 1

Formation 1

MoveViewObject 1

ClickLButtonObject 1

ClickRButtonObject 1

DoubleClickLButtonObject 1

DoubleClickRButtonObject 1

SendTrigger 1

CallLightning 1

ProtectObject 1

GroupAttack 1

AttackNoSound 1

MoraleSet 1

MoraleInc 1

MoraleDec 1

AttackOneRound 1

ForceSpell 1

Deactivate 1

Activate 1

CutSceneId 1

Kill 1

VerbalConstant 1

ClearActions 1

AttackReevaluate 1

StartDialog 2

StartDialogue 2

PlayerDialog 1

PlayerDialogue 1

GiveItemCreate 2

StartStore 2

DisplayString 1

ChangeAIType 1

ChangeEnemyAlly 1

ChangeGeneral 1

ChangeRace 1

ChangeClass 1

ChangeSpecifics 1

ChangeGender 1

ChangeAlignment 1

ApplySpell 1

Interact 1

MoveToObjectFollow 1

ReallyForceSpell 1

RunAwayFromNoInterrupt 1

SpellNoDec 1

MoveGlobal 2

StartDialogueNoSet 1

StartDialogNoSet 1

MoveToObjectNoInterrupt 1

FollowObjectFormation 1

FaceObject 1

MoveGlobalObjectOffScreen 1

MoveGlobalObjectOffScreen 2

ReallyForceSpellDead 1

Calm 1

SaveObjectLocation 3

SetTokenObject 2

SetGabber 1

CreateCreatureObjectCopy 2

CreateCreatureObjectOffset 2

AddXPObject 1

DisplayStringNoName 1

DialogueForceInterrupt 1

DialogForceInterrupt 1

StartDialogInterrupt 2

StartDialogueInterrupt 2

StartDialogueNoSetInterrupt 1

StartDialogNoSetInterrupt 1

DisplayStringHead 1

PolymorphCopy 1

VerbalConstantHead 1

CreateVisualEffectObject 2

CreateCreatureObjectEffect 3

CreateCreatureObjectCopyEffect 3

EscapeAreaObject 1

EscapeAreaObjectMove 2

TakeItemReplace 3

PolymorphCopyBase 1

MoveGlobalObject 1

MoveGlobalObject 2

StartDialogOverride 2

StartDialogOverrideInterrupt 2

CreateCreatureCopyPoint 2

ApplyDamage 1

ApplyDamagePercent 1

DisplayStringWait 1

ForceSpellRange 1

SetPlayerSound 1

FakeEffectExpiryCheck 1

StartDialogNoName 2

SpellRES 2

ForceSpellRES 2

ApplySpellRES 2

ReallyForceSpellRES 2

SpellNoDecRES 2

ReallyForceSpellDeadRES 2

ForceSpellRangeRES 2

DisplayStringHeadDead 1

DisplayStringNoNameHead 1

 

TRIGGER.IDS

AttackedBy 1

Help 1

Joins 1

Leaves 1

ReceivedOrder 1

Said 1

TurnedBy 1

Alignment 1

Allegiance 1

Class 1

Exists 1

General 1

HP 1

HPGT 1

HPLT 1

LOS 1

Morale 1

MoraleGT 1

MoraleLT 1

Race 1

Range 1

Reputation 1

ReputationGT 1

ReputationLT 1

See 1

Specifics 1

HitBy 1

TargetUnreachable 1

NumCreature 1

NumCreatureLT 1

NumCreatureGT 1

HPPercent 1

HPPercentLT 1

HPPercentGT 1

Heard 1

StateCheck 1

NotStateCheck 1

Reaction 1

ReactionGT 1

ReactionLT 1

InParty 1

CheckStat 1

CheckStatGT 1

CheckStatLT 1

Died 1

Killed 1

Entered 1

Gender 1

Dead 1

Opened 1

Closed 1

Detected 1

Reset 1

Disarmed 1

Unlocked 1

NumTimesInteracted 1

NumTimesInteractedGT 1

NumTimesInteractedLT 1

PickPocketFailed 1

StealFailed 1

DisarmFailed 1

PickLockFailed 1

HasItem 2

InteractingWith 1

InWeaponRange 1

HasWeaponEquiped 1

Happiness 1

HappinessGT 1

HappinessLT 1

Clicked 1

NumDead 1

NumDeadGT 1

NumDeadLT 1

Detect 1

NumItems 2

NumItemsGT 2

NumItemsLT 2

IsOverMe 1

HasItemEquiped 2

NumCreatureVsParty 1

NumCreatureVsPartyLT 1

NumCreatureVsPartyGT 1

PartyMemberDied 1

InPartySlot 1

SpellCast 1

InLine 1

InLine 2

Level 1

LevelGT 1

LevelLT 1

Summoned 1

ObjectActionListEmpty 1

OnScreen 1

InActiveArea 1

SpellCastOnMe 1

Name 1

Name 2

SpellCastPriest 1

SpellCastInnate 1

IsValidForPartyDialog 1

IfValidForPartyDialog 1

IsValidForPartyDialogue 1

IfValidForPartyDialogue 1

HasBounceEffects 1

HasImmunityEffects 1

HasItemSlot 1

PersonalSpaceDistance 1

InMyGroup 1

Kit 1

IsGabber 1

IsActive 1

CharName 1

CharName 2

FallenRanger 1

FallenPaladin 1

InventoryFull 1

HasItemEquipedReal 2

XP 1

XPGT 1

XPLT 1

InMyArea 1

InPartyAllowDead 1

AreaCheckObject 2

WalkedToTrigger 1

 

DLG references

ACTION.IDS

StartDialog 1

StartDialogue 1

SetDialog 1

SetDialogue 1

StartDialogInterrupt 1

StartDialogueInterrupt 1

StartDialogOverride 1

StartDialogOverrideInterrupt 1

StartDialogNoName 1

 

ITM references

ACTION.IDS

DropItem 1

EquipItem 1

CreateItem 1

GetItem 1

GiveItem 1

UseItem 1

UseItemSlot 1

UseItemPoint 1

TakePartyItem 1

GiveItemCreate 1

DestroyItem 1

TakePartyItemAll 1

TakePartyItemRange 1

TakePartyItemNum 1

PickUpItem 1

TakeItemReplace 1

TakeItemReplace 2

DisplayStringHeadOwner 1

CreateItemGlobal 3

 

TRIGGER.IDS

Acquired 1

Unusable 1

PartyHasItem1

HasItem 1

Contains 1

NumItems 1

NumItemsGT 1

NumItemsLT 1

NumItemsParty 1

NumItemsPartyGT 1

NumItemsPartyLT 1

HasItemEquiped 1

PartyHasItemIdentified 1

HasItemEquipedReal 1

 

SPL references

TRIGGER.IDS

HaveSpellRES 1

 

ACTION.IDS

AddSpecialAbility 1

SpellRES 1

SpellPointRES 1

ForceSpellRES 1

ForceSpellPointRES 1

ApplySpellRES 1

ReallyForceSpellRES 1

SpellNoDecRES 1

SpellPointNoDecRES 1

ReallyForceSpellDeadRES 1

ForceSpellRangeRES 1

ForceSpellPointRangeRES 1

ReallyForceSpellPointRES 1

 

STO references

ACTION.IDS

StartStore 1

 

WAV references

ACTION.IDS

PlaySound 1

 

BCS (Scripts)

Decompiled and treated like a BAF (Script source)

 

CRE (Creatures)

0x34 small portrait BMP resref

0x3c large portrait BMP resref

0x248 override BCS resref

0x250 class BCS resref

0x258 race BCS resref

0x260 general BCS resref

0x268 default BCS resref

0x2cc DLG resref

 

Known Spells

0x0 SPL resref

 

Memorized Spells

0x0 SPL resref

 

Items

0x0 ITM resref

 

D (Dialog source)

Textual replace of input when a match is found with the appropriate WeiDU D file function

See BAF conversions above

 

WeiDU D file functions

(NOTE: exitFilename for CHAIN2 cannot be corrected using this method)

BEGIN

APPEND

APPEND_EARLY

EXTEND_TOP

EXTEND_BOTTOM

ADD_STATE_TRIGGER

ADD_TRANS_TRIGGER

ADD_TRANS_ACTION

REPLACE

SET_WEIGHT

REPLACE_SAY

REPLACE_STATE_TRIGGER

REPLACE_TRIGGER_TEXT

REPLACE_TRIGGER_TEXT_REGEXP

REPLACE_ACTION_TEXT

REPLACE_ACTION_TEXT_REGEXP

REPLACE_ACTION_TEXT_PROCESS

REPLACE_ACTION_TEXT_PROCESS_REGEXP

INTERJECT

INTERJECT_COPY_TRANS

INTERJECT_COPY_TRANS2

I_C_T

I_C_T2

END

EXTERN

COPY_TRANS

APPENDI

==

CHAIN

THEN

CHAIN2

 

DLG (Dialogues)

Decompiled and treated like a D (Dialog source), except for a single data field shown below

Transition Table

0x14 next dialogue DLG resref

 

EFF (Effects)

0x30 effect resref

0x78 effect resref2

 

0x94 source spell SPL resref

 

ITM (Items)

0x10 replacement ITM resref

0x3a inventory icon BAM resref

0x44 ground icon BAM resref

0x58 description icon BAM resref

 

Extended Header (Ability)

0x4 use icon BAM resref

 

Feature Block

0x14 resource resref

BAM – 0xd7 Play 3D Effect

BMP – 0x6b Change Portrait

BCS – 0x52 Set AI Script

CRE – 0x43 Summon Creature, 0x87 Polymorph into Specific, 0x97 Replace Creature, 0xa8 Remove Creature

ITM – 0x6f Create Item in Magical Weapon Slot, 0x70 Remove Item, 0x7a Create Inventory Item, 0x7b Remove Inventory Item, 0x8f Create Item in Slot, 0xb4 Cannot Use Item, 0xff Create Inventory Item (days)

MVE – 0x98 Play Movie

SPL – 0x92 Cast Spell (at Creature), 0x93 Learn Spell, 0x94 Cast Spell (at Point), 0xab Give Innate Ability, 0xac Remove Spell, 0xb7 Apply Effect Itemtype (SPL ResRef?), 0xce Protection from Spell, 0xcf Bounce Specified Spell, 0xe8 Cast Spell on Condition, 0xfb Change Bard Song Effect, 0xfc Set Trap, 0x100 Spell Sequencer Active (SPL ResRef?), 0x102 Spell Sequencer Activation, 0x139 HLA Denotation

WAV – 0xae Play Sound

 

SPL (Spells)

0x10 casting sound WAV resref

0x3a spellbook icon BAM resref

 

Extended Header (ability)

0x4 memorised icon BAM resref

 

Feature Block

0x14 resource resref (see similar block in ITM file type patching for specific features detected)

 

STO (Stores)

0x44 tavern rumours DLG resref

0x54 temple rumours DLG resref

 

Items for Sale

0x0 ITM resref

 

Drinks for Sale

0x0 rumour DLG resref

 

Cures for Sale

0x0 SPL resref

 

TRA (Translation file)

WAV resref in []

 

TP2/TPH/TPP (WeiDU installation file)

Treated as a D (Dialog source) without checking for WeiDU functions

 

TIS

Overlay

0x4 tileset TIS resref

 

VVC

0x8 animation BAM resref

 

0x78 starting sound WAV resref

0x80 duration sound WAV resref

0x94 ending sound WAV resref (?) – not confirmed in IESDP

 

WMP (Worldmap)

Map entry

0x0 map resource MOS resref

0x30 map icons BAM resref

 

->Area entry

0x0 area short name

0x8 area content ARE resref

0x10 area long name

0x48 loading screen MOS resref

 

->Area link

0x4 entrance name (contains area numbers)

0x2c random encounter ARE resref 1

0x34 random encounter ARE resref 2

0x3c random encounter ARE resref 3

0x44 random encounter ARE resref 4

0x4c random encounter ARE resref 5 

 

Back To Top

 

G. VERSION HISTORY

Release Candidate 1 (10 Nov 2007)

-Added support for .TIS/.TIZ conversions

-Added support for patching of .TPP and .WED files

-Dictionaries added for specific BG1 Unfinished Business conversions (BG1UB->Tutu, Tutu->BG1UB); these need to be renamed to Custom.tph to work

-Updated relevant dictionaries to reflect ITM ResRef changes in BGT-WeiDU v1.05a

-Updated to BiggDU v201

 

PCU Internal Release 4 (Use upon request from 14 November 2006)

-Corrected various mistakes in all dictionaries

-Rename.txt now marked with PCU version and subcomponent chosen for identification purposes

-TP2: Added limited support for type-less patches (no file type specificity can be maintained)

-TP2: Added support for files referenced in ALLOW_MISSING

 

PCU Internal Release 3 (Use upon request from 21 October 2006)

-Added support for death variable, .MOS, and .MVE conversions

-Added support for patching of .EFF, .TPH, .TRA, .VVC, and .WMP files

-Dictionaries added for Tutu->BGT (complete), BG->Tutu, BGT->BG, BGT->Tutu, and Custom Template

-Enhanced file type specificity in patching of .BAF, .BCS, .D, .DLG, and .TP2 files

-Fixed a bug where checking of abilities and effects in .SPL files could result in read out-of-bounds errors due to typo in ability block size

-Integrated BG1 to BGT-WeiDU conversions as sub-component

-Major overhaul of conversion process

-Refined existing dictionaries for Tutu->BGT (partial), and BG->BGT

-Updated to BiggDU v196

 

Tutu2BGT Internal Release 2 (Development Only)

-Added ability to rename .BMP files with FW prefix, for height, light, and search map replacements

-Fixed a bug where renaming files that have a dictionary match would rename parts of filenames if a match was found inside that filename

-Fixed a bug where renaming files with a ResRef of eight characters would have their extension truncated by one character

-Fixed a bug where renaming files would use the dictionary for the incorrect filetype

-Fixed a bug where renaming of area files fitting the wildcard FW*.ARE and having eight characters in the resource name would output a .AR file

-Support for BGT-WeiDU v1.01 naming conventions

-Support for BG1 to BGT-WeiDU conversions, use Setup-BGvBGT.exe

 

Tutu2BGT Internal Release 1 (10 November 2005)

-First internal release

 

Back To Top

 

H. APPENDIX

In general, BG1Tutu modifies the naming of BG1 resources in the following manner:

ARE -> area information has AR changed to FW

BAM -> prepended with _

BCS -> prepended with _ (including area scripts)

BMP -> area information has AR changed to FW

CRE -> prepended with _

DLG -> prepended with _

ITM -> prepended with _

MVE -> prepended with _

NPC portraits (BMP) -> prepended with _

STO -> prepended with _

TIS -> prepended with _

WAV -> prepended with _

WED -> area information has AR changed to FW

WORLDMAP.MOS -> prepended with _

 

Back To Top