You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
(Note: the following two paragraphs are an introduction) After a long time using nightlies, I wanted to test YAPP. So, after installing and configuring everything, I started to compile trunk. Being happy that succeeded (I had several compile errors a few years ago), I started the program. But when running OpenTTD, I got a warning about the used font and several sprites were missing (the red question mark).
It took me nearly two hours to figure out that it couldn't be the data files (as they worked with the nightlies), nor the Windows SDK (I reinstalled it). Compiling OpenTTD in a virtual machine running XP Home (x86) worked on the other hand: the question marks were gone. So, I started to recompile trunk on my host os (XP Pro x64), where I got the same problems as before.
I noticed one difference though: the x64 version didn't have a revision.
(real bug report starts here ;) determineversion.vbs, the file that checks the revision for Windows, doesn't work on Windows XP x64 (and supposedly on Vista x64) in combination with MSVC (i've tested only VC 9, but it should be the same with VC 8) and the x64 version of TortoiseSVN. The script tries to find Tortoise by looking in the registry for the Key "HKLMSOFTWARETortoiseSVNDirectory". The problem isn't the script itself, but the script in combination with MSVC.
On Windows x64, 32-bit programs aren't allowed to read and write in "HKLMSOFTWARE". Instead they perform there actions in "HKLMSOFTWAREWow6432Node". When running the determineversion.vbs from explorer, it gets executed by a 64-bit instance of the interpreter, and it executes normally. But, when you run the script via MSVC, which is the default, it gets executed by the 32-bit instance of the interpreter, because MSVC is 32-bit. Thus, it the TortoiseSVN entry in "HKLMSOFTWAREWow6432NodeTortoiseSVNDirectory". That key does not exist when the 64-bit version of TortoiseSVN is installed, I assume it does exist when the 32-bit version is installed.
What struck me the most, were the errors OpenTTD gives when the version is unknown ("norev000"). I don't know much about Visual Basic, so I don't know if there are functions to check for this. Perhaps this should be fixed, or else stated in the readme?