Font Fallback Stack Emoji Rendering in foobar2000

Open forum for end-user questions about Wine. Before asking questions, check out the Wiki as a first step.
Forum Rules
Post Reply
User avatar
Shampagen
Newbie
Newbie
Posts: 2
Joined: Sun Dec 15, 2024 4:08 pm

Font Fallback Stack Emoji Rendering in foobar2000

Post by Shampagen »

Hello all,

I would like to render emoji fonts using a specific font's font fallback stack in the registry. My specific problem is that I have a particular album downloaded whose name is the "fingers-crossed emoji". Under foobar2000, when I change the font under

Code: Select all

File>Preferences>Display>Columns UI>Colours and Fonts
to "Segoe UI Emoji" the character renders correctly, but with any other character it is displayed as a simple box. Please note I have installed the fonts to (prefixpath\windows\Fonts\).

Initially, I believed this problem to have to do with the font fallback stack, which is a registry key defined for a given font to be referred to when that font does not have a certain character in its set. I followed the instructions on these Hydrogenaud.io forum posts: Topic 1, Topic 2, as well as this help page from the Playlist Tools Spider Monkey Panel github. I did achieve success in changing the font called when Japanese text needs to be loaded when using a font without a Japanese character set, but I did not achieve any success in loading emoji characters using neither "Segoe UI Emoji", "Noto Emoji", nor "Twemoji" as fallback fonts. I repeated this method using two other programs (Wine's notepad and PKHeX (which my gut tells me might not be the best test subjects but idk why they would behave differently)) with the same results. They showed the font fallback stack does indeed work, but for some reason emoji fonts were not being loaded, likely caused by some sort of character (the error(?) box) being chosen before the stack reaches seguiemj.ttf (Segoe UI Emoji).

If it helps, I have made used these winetricks: fontsmooth=rgb, gdiplus, allfonts, cjkfonts. However, this problem does persist in the same manner in a fresh prefix with the emoji font(s) installed.

Additionally, here is the log when I run foobar2000:

Code: Select all

002c:fixme:winediag:loader_init wine-staging 10.0-rc2 is a testing version containing experimental patches.
002c:fixme:winediag:loader_init Please mention your exact version when filing bug reports on winehq.org.
012c:err:winediag:ntlm_check_version ntlm_auth was not found. Make sure that ntlm_auth >= 3.0.25 is in your path. Usually, you can find it in the winbind package of your distribution.
012c:err:ntlm:ntlm_LsaApInitializePackage no NTLM support, expect problems
012c:fixme:msvcrt:_set_abort_behavior _WRITE_CALL_REPORTFAULT unhandled
012c:fixme:volume:GetVolumeNameForVolumeMountPointW Mounted Folders are not yet supported
012c:err:winediag:wined3d_dll_init Setting multithreaded command stream to 0x1.
012c:fixme:file:NtLockFile I/O completion on lock not implemented yet
012c:fixme:dwrite:dwritefactory_GetSystemFontCollection checking for system font updates not implemented
012c:fixme:combase:RoGetActivationFactory (L"Windows.UI.ViewManagement.UISettings", {00000035-0000-0000-c000-000000000046}, 000000000011E428): semi-stub
012c:fixme:ui:factory_QueryInterface {94ea2b94-e9cc-49e0-c0ff-ee64ca8f5b90} not implemented, returning E_NOINTERFACE.
012c:fixme:ui:uisettings3_add_ColorValuesChanged iface 000000000072F3D0, handler 000000000072F3F0, cookie 000000000011E508 stub!
012c:fixme:combase:RoOriginateLanguageException 0x80004001, L"", 0000000000000000: stub
012c:fixme:dwmapi:DwmSetWindowAttribute (000000000002008C, 14, 000000000011EEA0, 4) stub
012c:fixme:uxtheme:SetPreferredAppMode 3: stub
012c:fixme:uxtheme:FlushMenuThemes stub
012c:fixme:ntdll:EtwRegisterTraceGuidsW   register trace class {72b14a7d-704c-423e-92f8-7e6d64bcb92a}
012c:fixme:ntdll:EtwRegisterTraceGuidsW   register trace class {e2091f8a-1e0a-4731-84a2-0dd57c8a5261}
012c:fixme:ntdll:EtwRegisterTraceGuidsW   register trace class {e8a3bf1f-a86b-4390-9c60-5390b969d22c}
012c:fixme:ntdll:EtwRegisterTraceGuidsW   register trace class {5727a00f-50be-4519-8256-f7699871fecb}
012c:fixme:ntdll:EtwRegisterTraceGuidsW   register trace class {7e854ec7-cdc4-405a-b5b2-aaf7c9e7d40c}
012c:fixme:ntdll:EtwRegisterTraceGuidsW   register trace class {79a60dc6-5fc8-4952-a41c-1163aeec5eb8}
012c:fixme:ntdll:EtwRegisterTraceGuidsW   register trace class {2718d25b-5bf5-4479-8e88-babc64bdbfca}
012c:fixme:heap:GetNumaHighestNodeNumber semi-stub: 000000000011A4A0
018c:fixme:virtual:NtFlushProcessWriteBuffers stub
012c:fixme:win:SetGestureConfig handle 00000000000F0102, reserved 0, count 1, config 0000000000119AB0, size 12 stub!
012c:fixme:win:SetGestureConfig handle 000000000001010C, reserved 0, count 1, config 0000000000119AB0, size 12 stub!
012c:fixme:win:SetGestureConfig handle 0000000000010112, reserved 0, count 1, config 0000000000119AB0, size 12 stub!
012c:fixme:uxtheme:AllowDarkModeForWindow 000000000001011C 0: stub
012c:fixme:win:SetGestureConfig handle 000000000001011C, reserved 0, count 1, config 0000000000119270, size 12 stub!
0220:fixme:kernelbase:AppPolicyGetThreadInitializationType FFFFFFFFFFFFFFFA, 000000000337FF50
012c:fixme:msvcrt:_SetWinRTOutOfMemoryExceptionCallback (00006FFFF4636850): stub
012c:fixme:combase:RoGetActivationFactory (L"Windows.Media.Playback.BackgroundMediaPlayer", {00000035-0000-0000-c000-000000000046}, 000000000011F7D8): semi-stub
012c:err:combase:RoGetActivationFactory Failed to find library for L"Windows.Media.Playback.BackgroundMediaPlayer"
012c:fixme:combase:GetRestrictedErrorInfo (000000000011F7A8)
012c:fixme:combase:RoOriginateError 0x80040154, L"": stub
Attachments
render_segoe_ui_emoji.png
render_fontstack.png
fontstack.png
fontstack.png (18.4 KiB) Viewed 6847 times
Post Reply