Repository navigation
[🐧] GNU+Linux compatibility progress #1430
Description
Activity
Issues with EmuHawk
Startup issues:
Gtk not found (missing LD_LIBRARY_PATH to libgtk-x11-2.0.so.0?), using built-in colorscheme—see ignored GTK theme below.Unable to locate theme engine in module_path: "adwaita"seems to be a harmless error, but can be resolved by installinggnome-themes-extra.
Misc. issues:
- Mono seemingly ignores the GTK theme... on my machine >:( (Others have reported mono/mono#20078 dark theme being inconsistently applied). As a result, everything is an ugly beige, and some icons in e.g. open file dialogs are missing. Hope you remember which is the parent directory button!
- THEMING UPDATE 2024-09: Some work has been put into making the default not so ugly, but hopefully the "correct" light theme can be installed and coerced to load as was done for NixOS in 9a2c163. Users who were affected by mixed dark/light theme have had success with the
GTK_DATA_PREFIX='' ./EmuHawkMono.shworkaround, so perhaps that could be applied by default.GTK_DATA_PREFIXseems to have no effect on Ubuntu 24.04 (GNOME).- Apparently affected by some commit to Mono between 6.8.0.105 and 6.12.0.206. [🐧] Open [anything] in Browser button does not work, instead closing the app. #4379 (comment)
- There was a tiny amount of work put into making the mixed dark/light theme usable (b967e60), but EmuHawk was designed for a light theme. Please report if you're affected by the mixed dark/light theme, but don't report individual instances of illegible text for example—those are wontfix.
- THEMING UPDATE 2024-09: Some work has been put into making the default not so ugly, but hopefully the "correct" light theme can be installed and coerced to load as was done for NixOS in 9a2c163. Users who were affected by mixed dark/light theme have had success with the
I think file extensions are case-sensitive on Mono. The rom loader dialog doesn't recognise myfixed in f8a688d.32Xfile as a rom.(unthrottled) FPS triples when window unfocused. Is input slowing it down? who knows--yoshiactually I can't repro this--yoshi at 25a5449- dwango repro'd this on stream. still no idea why it happens. --yoshi
Still can't repro, no change when swapping out--yoshi at 24f69ebOpenTKInputAdapterfor aDummyInputAdapter- Repro'd on NixOS, both on 2.9.1 and at ebe3cad, though it's a very small difference in Release config. --yoshi
- It's just defocusing
MainForm, by the way, you can have the Lua Console or Virtual Pad focused to get the speedup
Keyboard shortcuts in RAM Watch don't work.ToolStripMenuItem.ShortcutKeysisn't working at all.- Just looked into this again with TAStudo and
ProcessCmdKeyisn't even being called. --yoshi at 681ef72
- Just looked into this again with TAStudo and
Menubar mnemonics are disabled.Past me did it to prevent a crash, needs retesting. --yoshi at 03d10ce- Some file open dialogs cause a
ArgumentOutOfRangeExceptioninSystem.DateTimeOffset.FromUnixTimeSeconds(long). --yoshi at 03d10ce- tracked as [WinForms] Unable to browse using
OpenFileDialogwithout crashing where subdir has "out-of-range" timestamp mono/mono#21213 - note Paths config uses
FolderBrowserDialogwhich seems to crash regardless of the timestamps' validity
- tracked as [WinForms] Unable to browse using
In--yoshi at 03d10ceIToolFormAutoConfigs,Settings>Stay on Topcorrectly writesWindow.KeepAbove = !item.Checked, but does not read the actual value i.e. toggling keep-above via the WM does not change the checkbox's state. I suggest this menu item be disabled on Linux (and macOS?).- Fixed in 329a7de (by hiding the menu item).
- Defaults for
Config>Paths...could be changed to standards like$XDG_CONFIG_HOME. Making this change to system-global dirs would break from the "portable app" precedent. --yoshi- Sorta done in NixHawk
- Users with only an Intel iGPU (i.e. no discrete GPU) may get
i965: Failed to submit batchbuffer: Invalid argument. TryLIBGL_ALWAYS_SOFTWARE=1 ./EmuHawkMono.shor otherwise setting that environment variable. (workaround found by @InfamousKnight) - Dialogs which pause emulation should cause the current frame to be redrawn to MainForm, but instead drawing stops and you get the solitaire effect. --yoshi at 268ab96
- Possibly related, under Plasma Wayland on NixOS: "open file" dialogs sometimes result in empty black windows, which then become "infectious" and result in even the main window only showing black, which persists until user logout / compositor shutdown. --bugQ
- Dropdowns not closing: WinForms - ToolStrip dropdowns do not close properly mono/mono#12644 --yoshi at 42fc895
- workaround added in 653844e (sorry I didn't do that sooner --yoshi)
Controls in--yoshi at 9e60927RecordMovie(dialog asking for filename and author for new movie) are misplaced, making keyboard navigation a requirement for recording movies (without TAStudio)- Fixed in d32f734.
- If you get an error like "GDI+ status: InvalidParameter" at
System.Drawing.Image.get_FrameDimensionsList, try updatinglibgdiplus. - Hard crash when clicking+dragging scrollbar in
OpenFileDialog. Nothing in stdout or stderr. ¯\_(ツ)_/¯- Similarly, random hard crashes when clicking+dragging scrollbar in core settings dialogs, then moving cursor over the button of a dropdown menu without releasing the mouse button.
- In Hex Editor, opening context menu causes scroll wheel and arrow keys to have no effect until the window is unfocused and refocused.
- Log Window threading is fragile, see LogWindow something causes crash on Mono #2741.
- Starting Mono while the solution is being rebuild will, rather than hitting the version check in
EmuHawk.Program, cause Mono to segfault. (Not before init'ing GTK, though. I swear it's taunting me.) - May be NixOS-specific, but it seems idling with Lua scripts running+drawing but emulation paused causes the Lua Console (possible all WinForms UI?) to freeze, and unpausing emulation fixes it immediately...
- It also seems to unpause for no reason? Does it think I closed a menu and it was only temp. paused?
- RetroAchievements dialogs aren't great, but they are technically usable
- From 2.10, SDL2 handles sleep prevention, but while it's implemented for Linux (X11), it's not working in practice. See BizHawk does not inhibit display or system sleep while running #3644 (comment).
PictureBoxapplies anti-aliasing/interpolation to pixel graphics: [🐧] NES PPU Viewer's "zoom box" shouldn't be anti-aliased #3764- Buttons in some windows and dialogs are missing their labels. Possibly related to Japanese locale. Initially reported by @miyakut on Discord, running Mint. 404f28f didn't work and was reverted.
- Lua Console REPL, and possibly elsewhere, doesn't accept numpad input. Repro'd on Ubuntu 22.04 but not NixOS.
Cores
Issues with TI83Hawk
IndexOutOfRangeExceptionatBizHawk.Emulation.Cores.Calculators.TI83.ReadMemory(ushort)--yoshi at 25a5449
Building and packaging
Dependencies are being recorded (so build scripts can be made) in the GitLab mirror's snippets. On multi-arch distros, target x86_64/amd64.
For the record I've mostly focused on Manjaro, Nix/NixOS (which I use), Linux Mint, and Ubuntu. --yoshi
Bus error (core dumped)when building may be because you're out of disk space.libblip_bufworks as intended on both OSes, but the Makefile for Linux builds was hacked together (see libblip_buf issue tracker) and using the library in BizHawk was intended to be a temporary hack. The library has been rewritten as noted in #1312. Sappharad has previously attempted moving it to managed C#.It may be possible to usethey serve different purposes according to #3207 (comment) --yoshilibspeexinstead.Don't know where else to leave these:
- Debug P/Invokes (
.dll/.soloading) withMONO_LOG_LEVEL=debug MONO_LOG_MASK=dll ./EmuHawkMono.sh --mono-no-redirect. - It seems
libgdiplus.sodoesn't support whatever the "PNG 256x256" mode of.icos is.
YoshiRulz commented
on Jan 8, 2019 on Jan 8, 2019 · Hidden as resolvedAuthorshow commentMore actionsYoshiRulz commented
on Jan 8, 2019 on Jan 8, 2019 · Hidden as outdatedAuthorshow commentMore actionsYoshiRulz commented
on Jan 10, 2019 on Jan 10, 2019 · Hidden as resolvedAuthorshow commentMore actions327 remaining items
Load more actionsAlright now I have real errors.
Trying to launch Pokemon Red using SGB2 on the bsnes core. It gets through the SGB2 intro animation and right after loading the GB game the emulator crashes.
In the terminal:
================================================================= Native Crash Reporting ================================================================= Got a SIGSEGV while executing native code. This usually indicates a fatal error in the mono runtime or one of the native libraries used by your application. ================================================================= ================================================================= Native stacktrace: ================================================================= 0x55e1a7ab5ee7 - mono : 0x55e1a7ab60fd - mono : 0x55e1a7a63949 - mono : 0x55e1a7aaf505 - mono : 0x36f001866eb - Unknown ================================================================= Basic Fault Address Reporting ================================================================= Memory around native instruction pointer (0x36f001866eb):0x36f001866db b6 84 37 00 93 02 00 31 c0 45 84 c0 41 0f 45 c1 ..7....1.E..A.E. 0x36f001866eb 80 bc 37 00 94 02 00 00 0f 84 d0 00 00 00 0f b6 ..7............. 0x36f001866fb d2 80 bc 17 f0 00 00 00 00 0f 84 bf 00 00 00 80 ................ 0x36f0018670b bf f8 00 00 00 00 0f b7 d0 74 43 89 ce c1 ee 10 .........tC..... ================================================================= Managed Stacktrace: ================================================================= ================================================================= Aborted (core dumped)In
EmuHawkMono_laststderr.txt:snes_init was called! name "ipl.rom" was requested rom size: 524288 loaded game manifest: " game sha256: c172498a23d1176672931bab33b629c7d28f914a43dca9e540b8af1b37ccf2c6 label: name: title: Super GAMEBOY2 region: NTSC revision: SHVC-042J-16 board: GB-LOROM memory type: ROM size: 0x80000 content: Program memory type: ROM size: 0x100 content: Boot manufacturer: Nintendo architecture: LR35902 identifier: SGB2 oscillator frequency: 20971520 " name "manifest.bml" was requested name "boards.bml" was requested name "program.rom" was requested name "msu1/data.rom" was requested name "manifest.bml" was requested name "program.rom" was requested name "save.ram" was requested name "sgb2" was requestedUnfortunately none of that is helpful, since it's crashing in unmanaged code and there are no debugging symbols. There might be a way to compile for debugging but it's not something that we've streamlined.
Does it only crash with that core and that rom?Unfortunately none of that is helpful, since it's crashing in unmanaged code and there are no debugging symbols. There might be a way to compile for debugging but it's not something that we've streamlined. Does it only crash with that core and that rom?
Seems to happen when loading any game with SGB2 or SGB1.
Using the new cosmic DE, input doesn't register at all. Not on keyboard nor gamepad.
But mouse inputs do. To fix these issues, go to config - customize - accept background input. This magically makes it functional!
Heads up for anyone having problems with Lua drawing fonts:
It seems that if your copy of libgdiplus was built with Pango support instead of Cairo, you'll get tofu (boxes) withpixelText.

(Though as you can see,drawStringis horribly aliased for me with Cairo.)
If your package manager doesn't tell you the dependencies of libgdiplus, you can check withldd /path/to/libgdiplus.so. Or, you know, try using the drawing APIs.test script
while true do emu.yield(); gui.cleartext(); gui.clearGraphics(); gui.use_surface("client"); gui.text(20, 40, "gui.text"); gui.pixelText(20, 80, "gui.pixelText(..., nil)", nil, nil, nil); gui.pixelText(20, 100, "gui.pixelText(..., 'gens')", nil, nil, "gens"); gui.pixelText(20, 120, "gui.pixelText(..., 'fceux')", nil, nil, "fceux"); gui.drawString(20, 160, "gui.drawString(..., nil)", nil, nil, nil, nil); gui.drawString(20, 180, "gui.drawString(..., 'Arial')", nil, nil, nil, "Arial"); gui.drawString(20, 200, "gui.drawString(..., 'Noto Sans')", nil, nil, nil, "Noto Sans"); end
Having a weird issue with some text not showing up, the issue only seems to affect menus that pop out of the application. Text properly shows in most places except descriptors of options. Is there a specific font it calls for? If there is it's not called during the AUR based install
OS: Arch Linux x86_64 Kernel: Linux 6.18.13-arch1-1 WM: i3 4.25.1 (X11) CPU: AMD Ryzen 7 9800X3D (8) @ 5.27 GHz GPU: AMD Radeon RX 9070 XT [Discrete]

Realized that this is already being discussed with the autoscaler issue. Is there a way to set a launch option for legacy text scaling or is that something that requires a full rebuild?
(re: #4469) There is no such option, but it was mostly fixed already so you can grab a dev build.
Trying to launch Pokemon Red using SGB2 on the bsnes core. It gets through the SGB2 intro animation and right after loading the GB game the emulator crashes.
[...] Does it only crash with that core and that rom?
Seems to happen when loading any game with SGB2 or SGB1.
Late, but repro'd on 2.11, but only with the old BSNES core and it's inconsistent. So just stick to the BSNESv115+ core. @Noxillio
Using the new odyssey void linux beta5, for some reason long movies won't complete. And by long, I mean like 15 minutes.
I tried to playback my need for speed most wanted ds movie and it stops about 70% in for some reason.
But it is in beta still so maybe once July 25th comes around it will be fixed. I tried using konsole as well and it doesnt work there either..
- locked as resolved and limited conversation to collaborators
on Jul 19, 2026


edit 2026-07-20: Locking this thread so no-one can ping 50 users at once. There aren't many new Linux-only bugs anyway, and you can always open a new issue.
jump to known bugs
Overview:
DllNotFoundException:libbizhashwhen opening any rom on Linux AArch64 #3687. Contributions welcome.Dist/BuildRelease.sh.output/EmuHawkMono.sh.EmuHawkMono.share passed through as expected. The single exception is if you pass--mono-no-redirectas the first flag, which disables redirecting stdout/stderr toEmuHawkMono_last*.txt(the default behaviour is to write to disk instead of the terminal).EmuHawkMono_last*.txt, some appear in dialog boxes, some both. Most of these error dialogs will either have a "Copy" button, or will allow Ctrl+C.As of 2.10.1, the following systems can be emulated: