Before anything, I'm sorry for this late response. The game runs fine under any Linux and if someone wants to see how to run the game I'll post the exact instructions and try to explain why the problem occured. I should've posted these faster, maybe someone needed them..
So there are basically two ways of getting things done, one safe (which uses winetricks) and one not so safe (but works without requiring an internet connection and may be faster) which uses the GdiPlus.dll file found in the BOtE root directory.
The "safe" method:
- Run "sh winetricks gdiplus" (do this before installing the game)
- Install the game normally through wine (if something goes wrong make sure you have the privileges and the game setup can be executed)
- For fullscreen mode, enter Wine Configuration > Graphics > Check "Allow DirectX apps to stop..." and Uncheck the rest of the checkboxes.
- For windowed mode, in Wine Config > Graphics > Check "Emulate a virtual desktop" and select a resolution if you want
The offline and faster method:
- Install the game normally thorugh wine
- Go to Wine config > Libraries > Enter "gdiplus" without the quotes in the New Override for lib field. Click Add. Click Ok.
- If you are having display problems (like the GUI not showing fully) then select either one of the options presented for fullscreen or windowed mode above.
The problem is with Wine's implementation of GDI+; some guys at wine are currently working at creating wrappers for GDI, but there are a lot of functions which remain to be implemented. This is why GDI+ support is so shady for the majority of applications which are a bit more complex, like BOtE... Since BOtE already has gdiplus.dll in its root, you just need to tell wine to override that library. The paths of interest to us are checked in this order for gdiplus.dll (asuming native is selected in config): app folder, current folder, ~/.wine/drive_c/windows/system32.
So if you just make that setting in wine config, it will work out of the box. There is just one problem though, and this is why I call this method unsafer than the first: You install BOtE first and the built in lib is used. Some functions needed by the installer are stubs.. Those are not critical, but in the future who knows how the installer will be modified and what functions it will need from the wine lib to make it unusable? After the installation, the *good* library will be used, because the app folder is checked first. One may bypass this problem if the good gdiplus.dll is in ~/.wine/drive_c/windows/system32 and native overriding is selected (this is what the winetricks command above does).
I''ve tried to find other alternatives, like mono's implementation, libgdiplus, but they implement only a basic set of functions they need for drawing. There have been attempts to make wine work with libgdiplus, but they all have been abandoned because, honestly, it isn't worth it. Better than wrapping libgdiplus to work under wine one could implement some of the missing stubs in wine's GDI+.
So, in the end, the best (and only, to my knowledge) way to get BOtE running in Linux is using the native library as you've said above, Malvoisin.
Hope this helps... The game runs fine.