Releases · Erik-JS/masseffect-binkw32 (original) (raw)

OK, so... huh, 7 months since last release?

The new log file scheme attempts to write the log file to the current user's Documents folder first, where write rights are normally available to anyone (well... I mean anyone who is a "current user" anyway). With #8, it came to my attention that people may install the game to (or run it from) a protected folder like Program Files.

A WinAPI function called SHGetKnownFolderPath is used to get the user's Document folder. If it fails, then the game's folder will be used instead. And as that is an already proven minefield, I coded the log writing function in a way where no crash may occur if the log file hasn't been properly created.

I mentioned PathCombine in #8, but I figured it wouldn't be needed as the documentation for SHGetKnownFolderPath explicitly says the returned string doesn't contain a trailing backslash. I was in doubt about the case where the user has mapped his/hers Documents to the drive root... well, who the hell would map Documents to the drive root?

SHGetKnownFolderPath works only on Windows Vista or above, so XP purists will have to resort to r1 if they want compatible binkw32 patches.

The binkw32 projects are now under VS2015, and require the VC++ 2015 runtimes. The target platform version is "8.1", but according to MSDN Windows 8.1 SDK is backward compatible to Vista and 7. The WINVER and _WIN32_WINNT macros are defined as 0x0601 (Windows 7), reflecting my decision of not supporting older versions of Windows.

I don't know if this is worth mentioning, but the reason why files in this release are .zip instead of .7z is because I still haven't installed a dedicated file packager/compactor on my new PC. Maybe I should keep the future releases like this, .zip works "out of the box" on Windows anyway.