protonscr

SpellForce 3

protonopen appid 311290Game compatibility - Unofficial
ValveSoftware/Proton#1033 · opened 2018-08-30 by lieff · updated 2025-07-03 · 19 comments · github · game page · search this game
1 matching comments, n / p to jump
Llieff 2018-08-30 github

Distro: Ubuntu 18.04
GPU: GTX 980, Nvidia proprietary driver 390.48
Resolution: 2560x1440
RAM: 16GB
Proton 3.7-5 Beta

JJoinyy 2018-11-15 github

Distro: Arch (Linux 4.19.1)
GPU: GTX 1050 Ti, Nvidia driver 410.xx
Resolution: 1920x1080
RAM: 16 GB (DDR4)
Proton 3.16 Beta

It crashes on start, throwing an error message with a coredump. I sent this to the dev's already, but maybe there is someone who can narrow the issue down to something more specific.

Kkisak-valve maintainer 2018-11-15 github

Hello @lieff, @Joinyy, can one of you please add PROTON_LOG=1 %command% to the game's launch options and drag and drop the generated $HOME/steam-$APPID.log into the comment box.

Llieff 2018-11-15 github
Zzzhiyi 2019-04-02 github

DXVK missing D3D10StateBlockMaskEnableAll implementation and then D3D10CreateStateBlock.

Switch to wined3d goes a bit further but still shows a black screen:
0026:fixme:dxgi:dxgi_output_GetDisplayModeList iface 0x12f8610, format DXGI_FORMAT_B8G8R8A8_UNORM, flags 0, mode_count 0x22f788, desc 0x12f7740 partial stub!
0026:fixme:dxgi:DXGID3D10CreateDevice Ignoring flags 0x20.
0026:fixme:dxgi:wined3d_bind_flags_from_dxgi_usage Unhandled DXGI usage 0x40.
0026:fixme:dxgi:dxgi_factory_MakeWindowAssociation iface 0x12ec960, window 0x1005c, flags 0x1 stub!
0026:fixme:d3d11:wined3d_depth_stencil_view_desc_from_d3d11 Unhandled depth stencil view flags 0x3.
0026:fixme:dwrite:get_name_record_codepage encoding 20 not handled, platform 1.
0026:fixme:dwrite:dwritefactory_CreateMonitorRenderingParams (0x1): monitor setting ignored
0026:fixme:d3d11:d3d11_device_CheckFormatSupport iface 0x12f7788, format 34, format_support 0x22faf0 partial-stub!
0026:fixme:dwrite:get_name_record_codepage encoding 20 not handled, platform 1.

Mmozo78 2019-04-26 github

This bug is resolved in vanilla Wine:
https://bugs.winehq.org/show_bug.cgi?id=44340

Ddoitsujin 2019-05-03 github

doitsujin/dxvk@81821414b0dfd0e429fc506167415ad8c4ca7d01 implements D3D10 state blocks, which are needed by Wine's Direct2D implementation (yes, this game actually uses that). There are more rendering-related issues, I'm working on it.

Edit: @mozo78 doitsujin/dxvk@53aa27336bb6ee3b04f38a4e7d60016c7a4785fa should fix the rendering issues, except the UI font. The UI font is still broken due to Direct2D/DWrite issues.

Mmozo78 2019-05-04 github

Thank you very much doitsujin! I'll try it and I'll report you back.

Mmozo78 2019-05-04 github

Yes it's working fine now. Thank you so much!!!

Eelfefe 2019-05-29 github

Hey ! I meet the same issue here ! Where do you find the files to modify ?

Kkisak-valve maintainer 2021-05-04 github

Spellforce 3 - broken fonts rendering

Issue transferred from https://github.com/ValveSoftware/Proton/issues/4802.
@nadrolinux posted on 2021-05-04T12:30:45:

Compatibility Report

  • Name of the game with compatibility issues: Spellforce 3
  • Steam AppID of the game: 311290

System Information

I confirm:

  • [x] that I haven't found an existing compatibility report for this game.
  • [x] that I have checked whether there are updates for my system available.

Symptoms

Fonts rendering is broken (I attached print screen) regardless of chosen language.

Reproduction

Just run a game.

broken_fonts
steam-311290.log

Aalosarjos 2021-12-07 github

Fonts rendering issue still happening with Reforged update

Ttgurr 2021-12-12 github

doitsujin/dxvk@8182141 implements D3D10 state blocks, which are needed by Wine's Direct2D implementation (yes, this game actually uses that). There are more rendering-related issues, I'm working on it.

Edit: @mozo78 doitsujin/dxvk@53aa273 should fix the rendering issues, except the UI font. The UI font is still broken due to Direct2D/DWrite issues.

@doitsujin hope it's okay to ask directly - I'm just wondering since you've already had a look at the game and fixed some of the issues, the remaning font rendering issue, is it an issue of the game itself (like @alosarjos stated sadly still present in the recent reforced update) or is it an issue of dxvk that might still get addressed? Did it maybe just get forgotten, a quick search on the dxvk issues didn't came up with a bug still open in regards to spellforce, should we report one about the remaining font rendering issue?

Mmozo78 2021-12-12 github

It's a Wine bug but they will not fix it for different reasons. Apply this patch and start the game with FullHD resolution:
https://bugs.winehq.org/attachment.cgi?id=64384
It's almost perfect:
https://i.imgur.com/xjf9iq6.png

Ttgurr 2021-12-13 github

@mozo78 thanks for the information, I guess you're talking about https://bugs.winehq.org/show_bug.cgi?id=47085 then? I didn't find any followup upstream bug(s) for the remaining issue(s) though. Huge thanks for the patch I'll see if I can give it a try. Sad that things didn't improve since wine 4.9 in this regard.

Mmozo78 2021-12-13 github

Yes, i filed this bug but I have been told the patch will not find place in the main code. You can read the posts for more info :)

Ttgurr 2021-12-17 github

For anyone interested, I've created a Proton version with the patch mentioned above included, you can download it here. Unpack to compatibilitytools.d, restart Steam for it to pick it up and select Proton-spellforce as a game specific Proton version for running Spellforce 3. While font rendering is not perfect even with the patch at least fonts are much more readable and don't hurt the eyes anymore like without it.

Mmozo78 2021-12-17 github

At FullHD it's almost perfect :)

Nninaran 2025-06-02 github

For anyone interested, I've created a Proton version with the patch mentioned above included, you can download it here. Unpack to compatibilitytools.d, restart Steam for it to pick it up and select Proton-spellforce as a game specific Proton version for running Spellforce 3. While font rendering is not perfect even with the patch at least fonts are much more readable and don't hurt the eyes anymore like without it.

3.5 years later and via Google you still get to this reply and download which fixes the issue. Thank you so much, I hope that download stays available for future users too. :)

Ttgurr 2025-06-30 github

For anyone interested, I've created a Proton version with the patch mentioned above included, you can download it here: Proton-spellforce.tar.gz. Unpack to compatibilitytools.d, restart Steam for it to pick it up and select Proton-spellforce as a game specific Proton version for running Spellforce 3. While font rendering is not perfect even with the patch at least fonts are much more readable and don't hurt the eyes anymore like without it.

It's really sad that this still hasn't been fixed by the Spellforce upstream developers in the meantime. Since some time passed I've rolled a new Proton build with the patch included based on the recent Proton 10 so we're not stuck on using a legacy Proton version. You can download it here: proton_10.0-spellforce.tar.gz. I gave it a short test run with SpellForce 3 Soul Harvest. Like stated above the fonts still have some issues even with the patch with the r and t letters being a bit dislocated but it doesn't hurt that much for the eyes like without the patch.

Nowadays the Proton build can be easily done via Podman (or Docker), here's basically a short walkthrough from how I created the new build:

Prerequisite: Install (rootless) Podman. I'd suggest doing this under a dedicated user, especially if you use Podman for other stuff as well.

  1. clean podman - dangerous if not done under a dedicated user as it basically cleans everything podman related under the current user
    $ podman system reset

  2. git checkout

$ git clone --recurse-submodules https://github.com/ValveSoftware/Proton.git proton
$ cd proton
  1. patch wine in the proton directory/checkout
diff --git a/wine/dlls/d2d1/device.c b/wine/dlls/d2d1/device.c
index 7c398962d6..5077c9e999 100644
--- a/wine/dlls/d2d1/device.c
+++ b/wine/dlls/d2d1/device.c
@@ -2146,6 +2146,8 @@ static void STDMETHODCALLTYPE d2d_device_context_ID2D1DeviceContext_DrawGlyphRun
         }
     }

+    rendering_mode = DWRITE_RENDERING_MODE_NATURAL_SYMMETRIC;
+
     if (rendering_mode == DWRITE_RENDERING_MODE_OUTLINE)
         d2d_device_context_draw_glyph_run_outline(context, baseline_origin, glyph_run, brush);
     else
  1. build custom proton
    $ build_name=proton_10.0-spellforce make redist
  2. create tarball
$ cd build
$ tar czvf proton_10.0-spellforce.tar.gz --owner=65534 --group=65534 --no-same-owner --no-same-permissions proton_10.0-spellforce
  1. clean podman - dangerous if not done under a dedicated user as it basically cleans everything podman related under the current user
    $ podman system reset

For a more complete documentation please see the official Proton README.md

Proton versions

Launch options

Upstream links