Hello, Synthesia Forum! Sure haven't posted here in a long time.
I have been using the 8.5 beta for a long time, and I noted this bug was still not fixed.
If I recall correctly, the builds of begin-2012 worked just fine on Wine 1.4.0. All the fonts now in the scores in the library, in the in-game titles, on the keys and on the falling notes are remarkably off-set.
Using r2368, on Debian x64 using Wine 1.4.1 stable.
[Solved] Font rendering on Linux
When describing problems, always mention your OS and game version (shown at the bottom of the title screen).
If your keyboard has USB or MIDI ports, there is a tremendously high chance (>99%) it will work with Synthesia. See what you'll need on the keyboards page.
If your keyboard has USB or MIDI ports, there is a tremendously high chance (>99%) it will work with Synthesia. See what you'll need on the keyboards page.
Last edited by aria1121 on 09-18-13 9:42 am, edited 1 time in total.
Which renderer are you using? DirectX 9 or OpenGL? Try switching to the other one using the Synthesia Configuration utility. Does that improve the situation?
I know the Wine folks actually like to have bugs reported to them instead of the original software developers, because their philosophy is that Wine should transparently work exactly the same. If a software developer has to include workarounds for them, they would describe that as a failure on their part. If the other renderer doesn't fix the problem, this might be something to ask them about instead.
If the renderer changed doesn't fix things, my guess is it's a GDI+ bug in Wine. The following might be useful information for the Wine folks. It's a little technical though:
The difference between Synthesia 8.5 and 8.6 in terms of that title bar text is that now it uses a combination GraphicsPath::AddString/FillPath instead of a simple DrawString. That new solution is only used for text with outlines (like that in the title bar and note labels in your screenshot). The reason for the change: Windows 8 renders text a little differently than previous versions of the OS. Historically I could use DrawPath for the outlines and DrawString for the foreground text... but suddenly in Win8, those two didn't match up perfectly anymore. One would end up a little wider than the other. So now I use DrawPath and FillPath for outlined text.
I wanted to use it for everything (FillPath's text is much higher quality in Win8 than DrawString) but then my text-measurements were off by the same amount whenever you interacted with a textbox (cursor, clicking in the middle of the text, etc.) so I had to use a split solution: DrawPath/FillPath for outlined text (which luckily never occurs in a text box) and plain DrawString everywhere else.
So the TL;DR for the Wine bug report: it looks like GDI+'s GraphicsPath::AddString is misbehaving.
If you use the real GDI+ DLLs instead, does that fix the problem? I don't know how exactly to use native DLLs with Wine, but I know it can be done. Grab that download, run it to extract, and use the gdiplus.dll you can find in the \asms\10\msft\windows\gdiplus\ extracted folder.
I know the Wine folks actually like to have bugs reported to them instead of the original software developers, because their philosophy is that Wine should transparently work exactly the same. If a software developer has to include workarounds for them, they would describe that as a failure on their part. If the other renderer doesn't fix the problem, this might be something to ask them about instead.
If the renderer changed doesn't fix things, my guess is it's a GDI+ bug in Wine. The following might be useful information for the Wine folks. It's a little technical though:
The difference between Synthesia 8.5 and 8.6 in terms of that title bar text is that now it uses a combination GraphicsPath::AddString/FillPath instead of a simple DrawString. That new solution is only used for text with outlines (like that in the title bar and note labels in your screenshot). The reason for the change: Windows 8 renders text a little differently than previous versions of the OS. Historically I could use DrawPath for the outlines and DrawString for the foreground text... but suddenly in Win8, those two didn't match up perfectly anymore. One would end up a little wider than the other. So now I use DrawPath and FillPath for outlined text.
I wanted to use it for everything (FillPath's text is much higher quality in Win8 than DrawString) but then my text-measurements were off by the same amount whenever you interacted with a textbox (cursor, clicking in the middle of the text, etc.) so I had to use a split solution: DrawPath/FillPath for outlined text (which luckily never occurs in a text box) and plain DrawString everywhere else.
So the TL;DR for the Wine bug report: it looks like GDI+'s GraphicsPath::AddString is misbehaving.
If you use the real GDI+ DLLs instead, does that fix the problem? I don't know how exactly to use native DLLs with Wine, but I know it can be done. Grab that download, run it to extract, and use the gdiplus.dll you can find in the \asms\10\msft\windows\gdiplus\ extracted folder.
Thanks, that fixed the problem. This is what I did:Nicholas wrote:If you use the real GDI+ DLLs instead, does that fix the problem? I don't know how exactly to use native DLLs with Wine, but I know it can be done. Grab that download, run it to extract, and use the gdiplus.dll you can find in the \asms\10\msft\windows\gdiplus\ extracted folder.
- Download the executable you linked to
- Run and extract
- Copy DLL to ~/.wine/drive_c/windows/system32/
- Run winecfg and go to Libraries tab
- new entry 'gdiplus' > Add > Edit > Load order 'Native (Windows)'
Using OpenGL.
Good to hear! This is optional at this point, but the Wine folks would probably really like to hear about the problem. Here is their process. If they can fix it on their end, this workaround won't be needed.