Baldur’s Gate Enhanced Edition – Local save folder

Make Baldur’s Gate Enhanced edition portable.

The following batch file will create symbolic links to set your save folder to the game folder instead of “My Documents”. This is useful if you intend to play the game portable. For example from a USB stick if you intend to be moving between different computers.

In the original Baldur’s Gate you had your save files in your local path, this is a workaround to make the enhanced edition act the same way.

Instructions

  1. Move the following files from your “My Documents\Baldur’s Gate – Enhanced Edition” folder into the “Baldur’s Gate – Enhanced Edition” install folder
    • Baldur.lua
    • characters
    • mpsave
    • portraits
    • save
  2. Copy the following code into your favourite plain text editor or notepad or download it directly by right clicking the following link and selecting “Save link as”

    @ECHO OFF
    FOR /F "tokens=3 delims= " %%G IN ('REG QUERY "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v "Personal"') DO (SET MYDOCUMENTS=%%G)
    mkdir "%MYDOCUMENTS%\Baldur's Gate - Enhanced Edition"
    rmdir "%MYDOCUMENTS%\Baldur's Gate - Enhanced Edition\portraits"
    rmdir "%MYDOCUMENTS%\Baldur's Gate - Enhanced Edition\save"
    rmdir "%MYDOCUMENTS%\Baldur's Gate - Enhanced Edition\characters"
    rmdir "%MYDOCUMENTS%\Baldur's Gate - Enhanced Edition\mpsave"
    del "%MYDOCUMENTS%\Baldur's Gate - Enhanced Edition\Baldur.lua"
    pause
    mklink /d "%MYDOCUMENTS%\Baldur's Gate - Enhanced Edition\portraits" "%~dp0\portraits"
    mklink /d "%MYDOCUMENTS%\Baldur's Gate - Enhanced Edition\save" "%~dp0\save"
    mklink /d "%MYDOCUMENTS%\Baldur's Gate - Enhanced Edition\characters" "%~dp0\characters"
    mklink /d "%MYDOCUMENTS%\Baldur's Gate - Enhanced Edition\mpsave" "%~dp0\mpsave"
    mklink "%MYDOCUMENTS%\Baldur's Gate - Enhanced Edition\Baldur.lua" "%~dp0\Baldur.lua"
    pause
  3. Save it as anything.bat in your Baldur’s Gate Enhanced edition install folder.
  4. Run anything.bat when the black window says press any key to continue, do so until the window disappears.
  5. Check that the folders in your “My Documents\Baldur’s Gate – Enhanced Edition” now have a little arrow on their icons. This indicates that they are not the actual files/folders but symbolic links.
  6. When you move to a new computer run anything.bat again and start the game!

Baldur’s Gate 2 Enhanced editon

Repeat the same steps as above but for the folder “Baldur’s Gate II – Enhanced Edition” and instead copy and paste the following  or right click this and select “Save link as”.

@ECHO OFF
FOR /F "tokens=3 delims= " %%G IN ('REG QUERY "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v "Personal"') DO (SET MYDOCUMENTS=%%G)
mkdir "%MYDOCUMENTS%\Baldur's Gate II - Enhanced Edition"
rmdir "%MYDOCUMENTS%\Baldur's Gate II - Enhanced Edition\portraits"
rmdir "%MYDOCUMENTS%\Baldur's Gate II - Enhanced Edition\save"
rmdir "%MYDOCUMENTS%\Baldur's Gate II - Enhanced Edition\characters"
rmdir "%MYDOCUMENTS%\Baldur's Gate II - Enhanced Edition\mpsave"
del "%MYDOCUMENTS%\Baldur's Gate II - Enhanced Edition\Baldur.lua"
pause
mklink /d "%MYDOCUMENTS%\Baldur's Gate II - Enhanced Edition\portraits" "%~dp0\portraits"
mklink /d "%MYDOCUMENTS%\Baldur's Gate II - Enhanced Edition\save" "%~dp0\save"
mklink /d "%MYDOCUMENTS%\Baldur's Gate II - Enhanced Edition\characters" "%~dp0\characters"
mklink /d "%MYDOCUMENTS%\Baldur's Gate II - Enhanced Edition\mpsave" "%~dp0\mpsave"
mklink "%MYDOCUMENTS%\Baldur's Gate II - Enhanced Edition\Baldur.lua" "%~dp0\Baldur.lua"
pause

Caveats

May require administrative rights on the computer you’re on.

After moving to another computer you may have to run the installer for the OpenAL codec once.

Advertisements

Baldur’s Gate 2 Enhanced Edition – Voices from BG1EE

I noticed that the voice packs included in Baldur’s Gate Enhanced edition (BG1EE) wasn’t included in Baldur’s Gate II Enhanced edition (BG2EE) for some reason.

Here is how to fix it:

Alternative A – Renamed files

  1. Download this zip file with the voice files already renamed.
  2. Extract it into your install directory BG2EE\lang\en_US\sounds
  3. Start the game!

Alternative B – Manually rename and copy files

  1. Make a temporary folder anywhere. For example on your desktop named “work”
  2. Go into your install directory BG1EE\lang\en_US\sounds
  3. Copy the files beginning with the following names to your work folder:
    • Female4Y.wav
    • Female5Y.wav
    • Female6Y.wav
    • Male4Y.wav
    • Male5Y.wav
    • Male6Y.wav
  4. Rename the files as follows; (if you copy them directly you will get conflicts)
    Naming syntax explanation
    • Here you will notices files named with the syntax FemaleXY.wav and MaleXY.wav
    • The filenames can’t exceed 8 characters. 12345678.wav is OK. 123456789.wav is NOT.
    • The AnyX is just a name identifier and can be anything.
    • The Y represents the type of situation the sound will be played. The situations for Y are listed alphabetically a to m.
    Explanatory Image:
  5. Rename the red characters Female4 to BGEFem1Y.wav (keep the blue character)
  6. Rename the red characters Female5 to BGEFem2Y.wav (keep the blue character)
  7. Rename the red characters Female6 to BGEFem3Y.wav (keep the blue character)
  8. Rename the red characters Male4 to BGEMal1Y.wav (keep the blue character)
  9. Rename the red characters Male5 to BGEMal2Y.wav (keep the blue character)
  10. Rename the red characters Male6 to BGEMal3Y.wav (keep the blue character)
  11. Copy all the files from your work folder to your install directory BG2EE\lang\en_US\sounds
  12. Now when you start the game you should have the new voice sets in the voice list!

NVidia OpenGL display driver lost connection error troubleshooting

In recent operating systems and more recent games you may have encountered the following message every now and then.

Sometimes the message won’t show at all depending on your windows settings and or game.

“The NVIDIA OpenGL driver lost connection with the display driver due to exceeding the Windows Time-Out limit and is unable to continue. The application must now close.
Error code: 7″

nvidia_opengl_lost_connection_error

This is actually a good thing which prevents freezes of your whole operating system. In some cases however we want to workaround it by increasing the time before timeout. You can read more about this on Microsoft Support.

We do this by editing a key in the windows registry. For example I have to change this to 8 seconds or so in order to take high resolution screenshots in SpaceEngine.

Warning! Before proceeding you should know that setting this to a bad value could mess up things on your computer. Create a system restore point and backup your data!

NOTE! This affects all graphics programs and games on your computer. I recommend restoring the value after you’re done testing.

Proceed on your own risk!

Option 1: Right and select save as on any of the registry patches. Double click on them in explorer to install

TdrDelay-8sec.reg – TdrDelay set to 8 seconds (this should be enough for SpaceEngine)
TdrDelay-32sec.reg – TdrDelay set to 32 seconds (try this if error still shows)
TdrDelay-uninstall.reg – This removes the registry value which will use windows default. (Windows default is 2 seconds)

Option 2: Manually edit the registry

Open regedit.exe and navigate to:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers

Create a new key DWORD32 and name it exactly TdrDelay
I tried 64 but it wouldn’t work for me even though I use a 64 bit OS.
Remember that this key name is cAsE sEnSiTiVe.

Double click on the key, choose decimal value and set it to the delay that you want.
I recommend trying 8 to 32. Delete the key when you’re done.

Here is a tiny gif animation. Please excuse the Swedish 🙂

TdrDelay

If you have any additional information to add or if I got anything wrong, please don’t hesitate to leave a comment!
Cheers


Robocopy sync multiple folders – to one location – batch script

From Wikipedia:

Robocopy, or “Robust File Copy“, is a command-line directory and/or file replication command. Robocopy functionally replaces Xcopy, with more options. It has been available as part of the Windows Resource Kit starting with Windows NT 4.0, and was first introduced as a standard feature in Windows Vista and Windows Server 2008.

This makes it a very useful simple syncing tool. The following is the script that I use to sync my laptop documents when I’m leaving the office. There are a lot of applications and tools for this but sometimes you just want a portable script.

Please note that this is a one-direction sync. It will not change or remove anything from the source folder.

robocopy-sync-unicode-folders

Instructions

  1. Copy and paste the following batch (*.bat) script into your favourite text editor of choice or notepad. (Not Microsoft word) You can also download it directly from here or here mirror. (You might have to right click and select save destination as)
    @echo off
    ::Unicode
    CHCP 1252
    echo %~dp0
    ::Remove old log file
    if exist "%~dp0\robocopylog.txt" del "%~dp0\robocopylog.txt"
    ::Ignore the following file types. You can add more separated by space
    set exclude=*.bak *.backup
    ::Go through each line in the folders.txt file
    for /f "skip=2 delims=" %%f in ('find /v "" %~dp0\folders.txt') do (
      ::Check if the relative path from current directory works 
      if exist "%~dp0\%%f" (
        ::Sync relative path
    		robocopy "%%f" "%~dp0\%%f" /v /xf %exclude% /mir /tee /fft /log+:robocopylog.txt
    	) else (
    	::Sync absolute path if relative didnt work
    		robocopy "%%f" "%~dp0\%%~nf" /v /xf %exclude% /mir /tee /fft /log+:robocopylog.txt
    	)
    )
    ::Wait for keyboard input before closing the window. Remove pause if you want it to close
    pause
    
  2. Save it where you want your backups to be stored (destination). Use whichever name you like. For example robocopy sync unicode folders.bat
  3. Create a new text file named folders.txt using any text editor and enter each folder that you want to make a backup off separated by a line break. (sources) Save the text file in the same folder as the batch script. Relative paths work too. Example:
  4. Run the script! The black window will stay open when it’s completed.
    With the above example the result would look something like this:

Notes

  • If source folders share the same name, they will be merged. Keep this in mind.
  • This is a one-direction only sync. It will not move or remove anything from the source folder.
  • If you don’t want the window to stay open when it’s complete remove the last line “pause” from the script.
  • A log file is saved for each operation in robocopylog.txt
  • You can add more files to exclude if you want, example: exclude=*.bak *.backup *.mp4 *.avi

VBScript Map Network Drives

This script will silently map specified network drives in the background and retry for a specified number of times with a specified delay before giving up. (Default: 10 retries per second for 120 retries)
You can change this by editing the script and changing:
delay = delay between each retry
timeout = number of retries

Using a batch command would also work but then you would see a black window popping up, hence the vb script.

Why?

In Windows 7 when you’ve mapped persistent network drives they can give error messages depending on different booting priority issues. This is a fairly common problem that doesn’t overall affect the functionality, it just adds an annoying pop up message on startup marking drives over with a red cross.

There are other workarounds that delay network before login or some such but that can cause other issues with services and this workaround was just simpler and quicker for me. This is just one example and with this simple script you can easily get rid of the message.

network drives error

Instructions

If you already have mapped drives (persistent) you need to disconnect them.

1. First step  – Download the file or save the script manually

Right click this link and select save as / save link and download the script (mirror) directly.

OR

Manually copy and paste the following text into your favorite plain text editor or windows notepad (not Microsoft Word) and save the file as MapNetworkDrives.vbs

'This script will silently attempt to map network drives of your chosing and retry doing so for 120 seconds
'If drive letters are already mapped the script will exit
'nirklars.wordpress.com
set shell = wscript.createobject("WScript.shell")
set filesys = CreateObject("Scripting.FileSystemObject")

'Change this to the number of retries you want before giving up
timeout = 120
'Change this to the delay between retries, in milliseconds 1000=1 second
delay = 100

function MapDrive(pathNetwork, driveLetter,loginCred)
	count = 0
	do
		if filesys.DriveExists(driveLetter) or count > timeout then 
			'msgbox "Drive exists"
			exit do
		end if
		commandString = shell.ExpandEnvironmentStrings("%WINDIR%") & "\system32\net.exe use " & driveLetter & ": " & pathNetwork & " /p:no " & loginCred
		'InputBox " "," ",commandString
		shell.run(commandString), 0, true
		WScript.Sleep delay
		count = count + 1
	loop
end function

'Copy and paste for each network drive to map
MapDrive "\\netgear\test1","Y","/USER:guest" 
MapDrive "\\netgear\test2","Z","/USER:guest" 
MapDrive "\\netgear\test3","W","/USER:guest" 

2. Second step – Edit the file

Edit the bottom of the file where it says MapDrive. Each line adds another network drive mapping so copy and paste for each drive you want mapped. Example:

MapDrive “\\netgear\test1“,”Y“,”/USER:guest

This example will map the folder test1 on a NAS server with the network name netgear with the drive letter Y.

3. Third step – Set it to start automatically when booting windows

If you’re on Windows 7 you can most probably just place it in your start menu startup folder.
Hold down the windows button and press R and type shell:startup and press enter to quickly open it.

shell-startup

On Windows 8 or more recent you can’t do that. Instead you must schedule a task to run on start up and login to launch the script. See instructions here.


AutoCAD font overrides

Here is how to properly override (replace) font’s globally in Autodesk AutoCAD.

Why replace?

Unicode fonts

Depending on your version of AutoCAD the nordic characters for ÅÄÖÆØ might not be working properly. This is usually caused by different versions of the same font’s. For some reason it seems, the characters ÅÄÖÆØ were removed from iso.shx

Fortunately they’re still available in isocp.shx and it’s perfectly fine to replace each font one by one in every drawing. This gets tedious though if you have hundreds of drawings to plot.

Better performance

Another reason might be to get rid of demanding true type fonts commonly used in drawings. If someone uses advanced font’s in drawings this will use up a lot more graphics memory slowing down performance.

demanding fonts

How to replace

Start by locating the file acad.fmp in your AutoCAD support folder. Depending on your version and the user account in Windows this will be stored in different paths.

acad_fmp_path

To quickly find your windows account profile folder you can copy and paste this into the explorer address bar and press enter:

%appdata%\Autodesk\

Check the year release version of Autocad you have installed. Is it 2010, 2014, 2016 or some other year? If you’ve got an AutoCAD subscription you might have several versions installed. If you have 2016 you can copy and paste this into the explorer address bar and press enter:

%appdata%\Autodesk\AutoCAD 2016\R20.1\enu\Support

If you’re hopelessly lost attempting to locate this folder you can use a shortcut built into AutoCAD by clicking File -> Plot Style Manager. This will open the adjacent path where your plot styles are stored.

plot style path

Editing acad.fmp

Before proceeding, once you’ve located acad.fmp make a backup copy of it, just in case. Call it Copy of acad.fmp or something similar.

Open it using Notepad or any other plain text editor. (Not Microsoft Word). Once open it should look something like this:

acad.fmpACAD2016 original: acad.fmp (mirror)

Each new line in this file means one font replacement operation. The syntax for instructing which font to replace is separated by a semicolon ;

The original source font;The font which to replace it with

For example if we want to replace iso with isocp we add the following line. (This is the workaround for nordic characters to work.)

iso;isocp.shx

acad.fmp_edit Edited: acad.fmp (mirror)

For this to have any effect you need to restart AutoCAD completely. All done!

Resource intensive fonts

Consider adding more resource intensive fonts.

And don’t forget the pesky Comic Sans MS! We don’t want that in our drawings do we? 😉

acad.fmp_edit2 Edited 2: acad.fmp (mirror)

End notes

Please keep in mind that replacing font’s will cause external references XREF fonts to change as well. This will cause formatting issues, especially if the new font is larger than the original.

This is important to note in case something goes wrong and you’ve been accidentally messing with someone else’s drawing. To avoid this then restore the original acad.fmp file and restart AutoCAD before plotting.