Skip to content

Instantly share code, notes, and snippets.

@archeYR
Last active December 16, 2025 20:24
Show Gist options
  • Select an option

  • Save archeYR/d687de5e484ce7b45d6a94415a04f3dc to your computer and use it in GitHub Desktop.

Select an option

Save archeYR/d687de5e484ce7b45d6a94415a04f3dc to your computer and use it in GitHub Desktop.
8BitDo Firmware Updater in Wine

This is about running 8BitDo's Firmware Update tool for Windows in Wine. It can be used for updating newer 8BitDo devices that may not be supported by fwupd on Linux. This tool uses .NET Framework, so it will need Wine Mono to be installed (dotnet48 wintericks verb was tested to work as well).

This tool needs Segoe UI Symbol font, on Arch this font is provided by ttf-ms-win10-auto package. For other distributions there is install script.

You will have to let Wine access device's HID interface for updating the firmware. Most importantly it should be a boot HID interface (exposed when device is in bootloader mode, often referred to as "manual update mode" or "advanced mode"). It is also worth adding the Product IDs for HID interfaces that are exposed under different conditions (for example, Ultimate Bluetooth Controller's receiver exposes a HID interface when controller is not connected), so the upgrade tool can detect it and automatically put it in bootloader mode for upgrading the firmware. You can use lsusb tool to get the Vendor and Product IDs. Here's an example for 8BitDo Ultimate Bluetooth Controller and its USB receiver, which you can adapt for your devices by modifying the Product IDs as needed:

sudo nano /etc/udev/rules.d/71-8bitdo-boot.rules

# 8BitDo Ultimate Bluetooth Controller's boot HID interface (seems to be shared by multiple 8BitDo devices)
# Change it only if lsusb prints different Product ID when device is in bootloader mode.
SUBSYSTEM=="hidraw", ATTRS{idProduct}=="3208", ATTRS{idVendor}=="2dc8", TAG+="uaccess"

# 8BitDo Ultimate Bluetooth Controller receiver's HID interface (exposed when the controller is not connected)
# When it is exposed, the upgrade tool can detect the receiver and automatically put in in bootloader mode.
SUBSYSTEM=="hidraw", ATTRS{idProduct}=="3109", ATTRS{idVendor}=="2dc8", TAG+="uaccess"

Now it is needed to reload the udev rules.

sudo udevadm control --reload-rules && sudo udevadm trigger

Disable SDL mode in winebus because it prevents firmware updater from accessing the device, can be done through Wine registry (seems like it is not needed to be done on recent Wine versions).

wine regedit

add DWORD value of 0 named "Enable SDL" at HKLM\System\CurrentControlSet\Services\winebus

Can be re-enabled after updating firmware (set the "Enable SDL" value to 1 or just remove it).

Shutdown wine server to save and apply registry changes: wineserver -k

Updating the Ultimate Bluetooth Controller works only in manual mode (press LB+RB and connect the controller through USB cable, then select appropriate device). This is (probably) because the Linux xpad driver doesn't expose additional HID interface that could be used by upgrade tool to detect the device (unlike Windows' XUSB driver, which does).

USB wireless dongle should be detected by the tool when controller is not connected.

@archeYR
Copy link
Author

archeYR commented May 26, 2025

Can you run sudo dmesg -w, connect the controller while holding buttons and put the output here? Not necessarily whole dmesg, just the messages that appear when you connect the controller.

[493185.683296] usb 1-8: new full-speed USB device number 28 using xhci_hcd
[493186.062140] usb 1-8: New USB device found, idVendor=2dc8, idProduct=3208, bcdDevice= 2.00
[493186.062151] usb 1-8: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[493186.062157] usb 1-8: Product: 8BitDo Boot
[493186.062161] usb 1-8: Manufacturer: 8BitDo
[493186.062165] usb 1-8: SerialNumber: 000000000002

[493186.062480] No Local Variables are initialized for Method [_PLD]

[493186.062487] No Arguments are initialized for method [_PLD]

[493186.062496] ACPI Error: Aborting method \_SB.PCI0.GPP2.PTXH.RHUB.PO12._PLD due to previous error (AE_AML_UNINITIALIZED_ELEMENT) (20230628/psparse-529)

[493186.071095] No Local Variables are initialized for Method [_PLD]

[493186.071102] No Arguments are initialized for method [_PLD]

[493186.071111] ACPI Error: Aborting method \_SB.PCI0.GPP2.PTXH.RHUB.PO12._PLD due to previous error (AE_AML_UNINITIALIZED_ELEMENT) (20230628/psparse-529)
[493186.081283] hid-generic 0003:2DC8:3208.002A: hiddev2,hidraw5: USB HID v1.10 Device [8BitDo 8BitDo Boot] on usb-0000:01:00.0-8/input0

Alright, I can see that the controller is in bootloader mode now and updater can access it. However I am afraid I cannot reproduce that crash, and those logs aren't really helpful either. It may not help but maybe try doing it on a clean Wine prefix or different version (for me Wine staging git works fine).

@GarThor
Copy link

GarThor commented May 26, 2025

I tried fiddling with the runner settings in lutris, and I think I got it to work...

Started initial process 210638 from gamemoderun /usr/bin/wine /home/GarThor/Downloads/8BitDo_Firmware_Updater_Win/8BitDo Firmware Updater.exe
Start monitoring process.
ERROR: ld.so: object 'libgamemodeauto.so.0' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
ERROR: ld.so: object 'libgamemodeauto.so.0' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
gamemodeauto: 
0120:err:ole:CoGetContextToken apartment not initialised
Autoupdate_tmp.exe?????
serviceUrl : http://dl.8bitdo.com:8080/firmware/loadNewToolUpdateVersion
type : 33
gamep:8BitDo Pro 2
serviceUrl : http://dl.8bitdo.com:8080/firmware/select

 e: The request was aborted: The operation has timed out. 
?????
serviceUrl : http://dl.8bitdo.com:8080/firmware/select

 e: The operation has timed out 
?????
serviceUrl : http://dl.8bitdo.com:8080/firmware/select
version : 0
startUpdateFirmware
startUpdateFirmware: gamepad: Vid:2dc8 Pid:6003 Version:0 Beta:0 IsChangeBoot:True to---> firmware type: 33 version:3.04 beta: fileSize:253496
startUpdate
??????!
 MD5 :37c1607c58a24a8c44ed4bbb7176b837   37c1607c58a24a8c44ed4bbb7176b837
fileSteam : 253496   filesize: 253496
????
??? 0 
wine: Read access denied for device L"\\??\\Z:\\", FS volume label and serial are not available.
<reprints several times>
??????
??????
wine: Read access denied for device L"\\??\\Z:\\", FS volume label and serial are not available.
<reprints several times>
??????
wine: Read access denied for device L"\\??\\Z:\\", FS volume label and serial are not available.
<reprints several times>
??????
wine: Read access denied for device L"\\??\\Z:\\", FS volume label and serial are not available.
<reprints several times>
??????
wine: Read access denied for device L"\\??\\Z:\\", FS volume label and serial are not available.
<reprints several times>
??????
wine: Read access denied for device L"\\??\\Z:\\", FS volume label and serial are not available.
<reprints several times>
??????
wine: Read access denied for device L"\\??\\Z:\\", FS volume label and serial are not available.
<reprints several times>
??????
wine: Read access denied for device L"\\??\\Z:\\", FS volume label and serial are not available.
<reprints several times>
??????
wine: Read access denied for device L"\\??\\Z:\\", FS volume label and serial are not available.
<reprints several times>
??????
wine: Read access denied for device L"\\??\\Z:\\", FS volume label and serial are not available.
<reprints several times>
??????
wine: Read access denied for device L"\\??\\Z:\\", FS volume label and serial are not available.
<reprints several times>
??????
wine: Read access denied for device L"\\??\\Z:\\", FS volume label and serial are not available.
<reprints several times>
??????
wine: Read access denied for device L"\\??\\Z:\\", FS volume label and serial are not available.
<reprints 2x more times>
????
version : 0
00a0:err:hid:set_report_from_event TODO: Process Report (18213, 7698)
<reprints several times>
wine: Read access denied for device L"\\??\\Z:\\", FS volume label and serial are not available.
startUpdateFirmware

Eventually I got a green button that says update complete, and after clicking it the controller shut off... Is there a way to verify the firmware version it's on now?

The settings I used for anyone curious
image
^ prefix is the same one I created in the previous step

image

image

If I try to run it again, it looks like it gets timeout errors

 e: The operation has timed out 
?????
type : 33
gamep:8BitDo Pro 2
serviceUrl : http://dl.8bitdo.com:8080/firmware/select

 e: The operation has timed out 
?????
serviceUrl : http://dl.8bitdo.com:8080/firmware/select

 e: The operation has timed out 
?????

When clicking reload...
image

@archeYR
Copy link
Author

archeYR commented May 27, 2025

Eventually I got a green button that says update complete, and after clicking it the controller shut off... Is there a way to verify the firmware version it's on now?

Unfortunately not, unless you can switch it to some input mode (d-input? switch?) which exposes a HID device. However if it the update completed and the controller rebooted itself, it is on the firmware that you have updated it with (if the update had failed, it would boot back to the bootloader mode).

If I try to run it again, it looks like it gets timeout errors

That is (probably) because the controller is in x-input mode, and the Linux' xpad driver doesn't expose a HID device that this tool could detect.

@GarThor
Copy link

GarThor commented May 27, 2025

Bleh... this doesn't seem to have solved the issue I was having...

Doing a little more research, it looks like the realtek BT/wifi adapter that's installed on my laptop is only partially supported under linux,,,

https://linux-hardware.org/?id=pci:10ec-b723-103c-2231

It says it's "supported", but when I open blueman the signal strength never goes over 50%... and drops to half that by the time I get to the couch... ;_;

@thvdburgt
Copy link

My laptop originally came with a Realtek Wi-Fi card a couple of years ago. I replaced it with an Intel AX200/AX201, which you can usually find for under $20. There may be better, more current options available now, I haven’t looked into it recently.

@GarThor
Copy link

GarThor commented May 27, 2025

Idk that this laptop is worth an upgrade.... Was considering a USB dongle instead, but I need to do more research on what's compatible...

@arghness
Copy link

arghness commented Aug 8, 2025

I've got a couple of issues running on Ubuntu 22.04

  1. When I start the tool, I get an error box, which causes the tool to exit when I click "OK". If I don't click "OK", the tool appears to work, though. The error message is:
[ERROR] FATAL UNHANDLED EXCEPTION: System.Management.ManagementException: Error code: 0x80041002
  at System.Management.ManagementException.ThrowWithExtendedInfo (System.Management.ManagementStatus errorCode) [0x0003f] in <dd58760ffffd428cbd3bccac87756551>:0 
  at System.Management.PropertyData.RefreshPropertyInfo () [0x00046] in <dd58760ffffd428cbd3bccac87756551>:0 
  at System.Management.PropertyData..ctor (System.Management.ManagementBaseObject parent, System.String propName) [0x0001b] in <dd58760ffffd428cbd3bccac87756551>:0 
  at System.Management.PropertyDataCollection.get_Item (System.String propertyName) [0x0000e] in <dd58760ffffd428cbd3bccac87756551>:0 
  at System.Management.ManagementBaseObject.GetPropertyValue (System.String propertyName) [0x00034] in <dd58760ffffd428cbd3bccac87756551>:0 
  at System.Management.ManagementBaseObject.get_Item (System.String propertyName) [0x00000] in <dd58760ffffd428cbd3bccac87756551>:0 
  at (wrapper remoting-invoke-with-check) System.Management.ManagementBaseObject.get_Item(string)
  at _8BitDoFirmwareUpdater.View.HomeController.checkToolUpdate () [0x000db] in <fb5a0ce3452f4df5b4f6ffbbba8fbc84>:0 
  at System.Threading.ThreadHelper.ThreadStart_Context (System.Object state) [0x00014] in <006aeda5450e44e2a7c0b3f3e62d74fd>:0 
  at System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) [0x00071] in <006aeda5450e44e2a7c0b3f3e62d74fd>:0 
  at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) [0x00000] in <006aeda5450e44e2a7c0b3f3e62d74fd>:0 
  at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state) [0x0002b] in <006aeda5450e44e2a7c0b3f3e62d74fd>:0 
  1. When I plug in my controller (Pro 2), the list of devices comes up in the tool. Whenever I press any of them, I get an error on the console, and a "Reload" button in the UI. The firmware is not updated. I've tried wget for the URL and it resolves (returns an empty document, but likely because I'm not passing any parameters) :
type : 33
gamep:8BitDo Pro 2
serviceUrl : http://dl.8bitdo.com:8080/firmware/select

 e: Error: NameResolutionFailure 
?????

@ngmoviedo
Copy link

ngmoviedo commented Aug 8, 2025

It works for me... for the most part. An error window opens when starting the update executable, and the program runs a bit choppy, although it gets the work done.
Probably some dependency, although not sure which one. Any idea?
imagen

I'm running Manjaro and the screenshot was taken with system's Wine. Although the same thing happens when using Proton-GE.

@archeYR
Copy link
Author

archeYR commented Aug 9, 2025

I've got a couple of issues running on Ubuntu 22.04

  1. When I start the tool, I get an error box, which causes the tool to exit when I click "OK". If I don't click "OK", the tool appears to work, though...

It works for me... for the most part. An error window opens when starting the update executable, and the program runs a bit choppy, although it gets the work done. Probably some dependency, although not sure which one. Any idea?

Seems like there was an update for the firmware update tool (2.48 --> 2.52), which caused this to start happening. The tool now makes multiple calls of WBEM methods during startup, for which Wine returns WBEM_E_NOT_FOUND (0x80041002) for one of the calls, which ultimately causes the Mono/.NET code to throw an exception. This unfortunately needs more debugging and probably some fixing of appropriate Wine code, however from my testing (with Ultimate BT Controller and its receiver), it does not seem to affect the functionality of the tool as long as the exception dialog is simply ignored.

  1. When I plug in my controller (Pro 2), the list of devices comes up in the tool. Whenever I press any of them, I get an error on the console, and a "Reload" button in the UI. The firmware is not updated. I've tried wget for the URL and it resolves (returns an empty document, but likely because I'm not passing any parameters)...

I can reproduce that when I disconnect from my network, maybe there's some problem with network access from your Wine prefix?

@arghness
Copy link

  1. When I plug in my controller (Pro 2), the list of devices comes up in the tool. Whenever I press any of them, I get an error on the console, and a "Reload" button in the UI. The firmware is not updated. I've tried wget for the URL and it resolves (returns an empty document, but likely because I'm not passing any parameters)...

I can reproduce that when I disconnect from my network, maybe there's some problem with network access from your Wine prefix?

Connectivity seems fine -- I can run "wine iexplore" and visit various sites, including http://dl.8bitdo.com:8080/firmware/select (blank page). This is all from a from-scratch wine prefix, I just installed wine-mono-9.0.0 and wine-gecko-2.47.4 (for testing iexplore), and made the changes from your original post -- exactly the same udev rules (although I'm using a Pro 2), and "Enable SDL" set to 0.

@archeYR
Copy link
Author

archeYR commented Aug 14, 2025

Connectivity seems fine -- I can run "wine iexplore" and visit various sites, including http://dl.8bitdo.com:8080/firmware/select (blank page). This is all from a from-scratch wine prefix, I just installed wine-mono-9.0.0 and wine-gecko-2.47.4 (for testing iexplore), and made the changes from your original post -- exactly the same udev rules (although I'm using a Pro 2), and "Enable SDL" set to 0.

Are you certain that the controller remains in bootloader mode when trying to update the firmware? Also this is really only tested on recent Wine builds, maybe try a newer version?

@arghness
Copy link

Connectivity seems fine -- I can run "wine iexplore" and visit various sites, including http://dl.8bitdo.com:8080/firmware/select (blank page). This is all from a from-scratch wine prefix, I just installed wine-mono-9.0.0 and wine-gecko-2.47.4 (for testing iexplore), and made the changes from your original post -- exactly the same udev rules (although I'm using a Pro 2), and "Enable SDL" set to 0.

Are you certain that the controller remains in bootloader mode when trying to update the firmware? Also this is really only tested on recent Wine builds, maybe try a newer version?

It's definitely staying in bootloader mode (if it's not in bootloader mode, when I connect it, it isn't recognised and the app keeps asking me to connect it).

I had tried enabling some Wine debug and got to where it was resolving the host, but wasn't familiar enough with the debug output to understand what might be wrong.

I'll try a newer Wine version (I just realised I said I was on Ubuntu 22.04 -- I'm actually on 24.04, so Wine 9.0 from the Ubuntu repo, but I'll try a 10.x version), thanks for the suggestion and I appreciate your original post and followup help!

@archeYR
Copy link
Author

archeYR commented Aug 14, 2025

I had tried enabling some Wine debug and got to where it was resolving the host, but wasn't familiar enough with the debug output to understand what might be wrong.

Feel free to put the log from recent Wine here if the problem persists.

I'll try a newer Wine version (I just realised I said I was on Ubuntu 22.04 -- I'm actually on 24.04, so Wine 9.0 from the Ubuntu repo, but I'll try a 10.x version), thanks for the suggestion and I appreciate your original post and followup help!

Unfortunately I can't exactly reproduce that problem and I don't have any Ubuntu system either, so I can only guess at best. However, another Ubuntu (24.04 as well, perhaps?) user left a detailed post with getting it to work with Lutris runner, maybe that's also something worth looking into. You can also try version 2.48 of the tool that was known to work on Ubuntu with 8BitDo Pro 2.

@arghness
Copy link

Thanks, Wine 9 was the issue for me. I updated to 10 and it worked immediately.

@algtan
Copy link

algtan commented Sep 6, 2025

I have an SN30 Pro +, and this is what worked for me using Ubuntu 24.04.3 LTS and Wine 10.0

  1. Follow the instructions above, but I used a product ID of 5750. This is what my /etc/udev/rules.d/71-8bitdo-boot.rules looks like:
    # 8BitDo SN30 Pro Plus Controller's boot HID interface
    # Change it only if lsusb prints different Product ID when device is in bootloader mode.
    SUBSYSTEM=="hidraw", ATTRS{idProduct}=="5750", ATTRS{idVendor}=="2dc8", TAG+="uaccess"
    
  2. Restart my computer
  3. Plug in the USB cable into the controller, but do not plug it into the PC yet
  4. Start the firmware updater in wine: wine <filename>.exe
  5. Hold L1 + R1 on the controller for 3 seconds, and continue holding while plugging in the USB cable into the PC
  6. A list of controllers should show up once your controller is detected. If not, you may need to go to "Update Manually" from the menu
  7. Select the controller, select the firmware, then click the "Update" button
  8. I was able to monitor the progress through the terminal, and the UI said it was complete/successful once it was done

@soaresluciano
Copy link

I have an SN30 Pro +, and this is what worked for me using Ubuntu 24.04.3 LTS and Wine 10.0

1. Follow the instructions above, but I used a product ID of `5750`. This is what my `/etc/udev/rules.d/71-8bitdo-boot.rules` looks like:
   ```
   # 8BitDo SN30 Pro Plus Controller's boot HID interface
   # Change it only if lsusb prints different Product ID when device is in bootloader mode.
   SUBSYSTEM=="hidraw", ATTRS{idProduct}=="5750", ATTRS{idVendor}=="2dc8", TAG+="uaccess"
   ```

2. Restart my computer

3. Plug in the USB cable into the controller, but do not plug it into the PC yet

4. Start the firmware updater in wine: `wine <filename>.exe`

5. Hold L1 + R1 on the controller for 3 seconds, and continue holding while plugging in the USB cable into the PC

6. A list of controllers should show up once your controller is detected. If not, you may need to go to "Update Manually" from the menu

7. Select the controller, select the firmware, then click the "Update" button

8. I was able to monitor the progress through the terminal, and the UI said it was complete/successful once it was done

Thank you very much! After many days I managed to make it work following your steps.
My problem was the .NET installed on the prefix. It only works with Mono.

@purplebar0
Copy link

purplebar0 commented Sep 30, 2025

I was able to update my Retro Receiver for NGC (PID 3208) with this method, but had no luck with Mod Kit for Original NGC Controller (PID 5750).

I appended the same udev rule with the product ID changed to 5750 (same vendor ID) to no avail. Neither "Firmware Updater" or an updater provided with beta firmware specifically for the NGC Mod Kit detected the device. I made sure that it is in bootloader mode (hold Z while powering on), and that's where I got the PID from.

Also, I didn't fully test with Mono because the error message felt like using it in that state would be risky, so instead I used dotnet48 and it worked fine. (Pro tip, do winetricks -q -f dotnet48 to avoid installer dialogues and let it install automatically. Might be faster too!)

@archeYR
Copy link
Author

archeYR commented Oct 2, 2025

I appended the same udev rule with the product ID changed to 5750 (same vendor ID) to no avail. Neither "Firmware Updater" or an updater provided with beta firmware specifically for the NGC Mod Kit detected the device. I made sure that it is in bootloader mode (hold Z while powering on), and that's where I got the PID from.

Did you reload udev rules and restart the Wine server afterwards? If so, does this device bring up a HID interface in bootloader mode?

@purplebar0
Copy link

I appended the same udev rule with the product ID changed to 5750 (same vendor ID) to no avail. Neither "Firmware Updater" or an updater provided with beta firmware specifically for the NGC Mod Kit detected the device. I made sure that it is in bootloader mode (hold Z while powering on), and that's where I got the PID from.

Did you reload udev rules and restart the Wine server afterwards? If so, does this device bring up a HID interface in bootloader mode?

I reloaded udev rules. I had to restart Wine server as reloading udev rules crashed Wine anyway, though I can make sure the next time I test. As for whether a HID interface appears, where do I check that? lsusb -v?

@archeYR
Copy link
Author

archeYR commented Oct 2, 2025

As for whether a HID interface appears, where do I check that? lsusb -v?

A dmesg fragment that appears after connecting the device in bootloader mode would be interesting.

@ngmoviedo
Copy link

Has anybody managed to run this inside a Flatpak? I can run it using system Wine, with no major problem, but I wanted to install it as a program using Bottles, which I installed using Flatpak. The updater runs, but is unable to detect the controller in boot mode or the receiver. I suppose it might be related with some access restrictions to the devices.
Has anybody experimented with this option?

@nickalcock
Copy link

Looks like this doesn't work for the Ultimate 3-mode :( the updater simply doesn't appear to support it at all, insofar as I can tell from their horrific naming schemes. The only thing that does support it is only available on the Microsoft Store, so I guess I'm still totally out of luck.

@archeYR
Copy link
Author

archeYR commented Oct 20, 2025

Looks like this doesn't work for the Ultimate 3-mode :( the updater simply doesn't appear to support it at all, insofar as I can tell from their horrific naming schemes.

That seems to be a case indeed.

The only thing that does support it is only available on the Microsoft Store, so I guess I'm still totally out of luck.

Unfortunately Wine's support for WinRT/UWP applications is still poor. From my testing the Ultimate Software X just crashes on startup.

@parkerlreed
Copy link

parkerlreed commented Dec 7, 2025

Wine Mono 10.20 WOW64 I get the error screen but nothing ever happens. Slowly downloading dotnet48 in winetricks now.

EDIT: Keeps crashing on non WOW64 10.20 as well. dotnet48 didnt help. What version do I need???

image

OH I see this mentioned in the first post. Trying to get it installed now.

EDIT: Ok tip DONT hit okay on that crash. It will hard crash the program. Leaving it open works.

image

@TL-4319
Copy link

TL-4319 commented Dec 16, 2025

The software was working for me very well on CachyOS and wine (I believe it was wine 10.18 but not 100% sure). I was able to flash firmware and do all the configurations I needed to the controller.

I recently did a system update and now the software just crashes. I tested wine with a different windows app and that still works. Not sure if anyone might be able to point me to the right direction. The error message is below.

Unhandled exception: 0xe0434352 in wow64 32-bit code (0x7b5c98f7).
Register dump:
 CS:0023 SS:002b DS:002b ES:002b FS:0063 GS:002b
 EIP:7b5c98f7 ESP:002aea34 EBP:002aea88 EFLAGS:00000246(   - --  I  Z- -P- )
 EAX:002aea34 EBX:00000000 ECX:002aeaf8 EDX:00000010
 ESI:e0434352 EDI:002aeaf8
Stack dump:
0x002aea34:  e0434352 00000001 00000000 7b5c98f7
0x002aea44:  00000005 80131534 00000000 00000000
0x002aea54:  00000000 792f0000 002af2c8 00000001
0x002aea64:  002aeabc 202aeab4 002aea3c 00000000
0x002aea74:  002aea20 00000000 002aea50 0099e798
0x002aea84:  00000005 002aeb2c 793a750a e0434352
Backtrace:
=>0 0x7b5c98f7 RaiseException+0x42(code=<is not available>, flags=<is not available>, count=<is not available>, args=<is not available>) [/startdir/src/wine-64-build/../wine/dlls/kernelbase/debug.c:407] in kernelbase (0x002aea88)
  1 0x793a750a in coreclr (+0xb750a) (0x002aeb2c)
  2 0x794cdc66 in coreclr (+0x1ddc66) (0x002aeb54)
  3 0x794cd14a in coreclr (+0x1dd14a) (0x002aeb90)
  4 0x79477ba7 in coreclr (+0x187ba7) (0x002af090)
  5 0x7936b3bb in coreclr (+0x7b3bb) (0x002af0c0)
  6 0x79369b46 in coreclr (+0x79b46) (0x002af294)
  7 0x79369258 in coreclr (+0x79258) (0x002af338)
  8 0x793f76f6 in coreclr (+0x1076f6) (0x002af368)
  9 0x10cb0695 (0x002af398)
  10 0x0979562f (0x002af3a4)
  11 0x097955f6 (0x002af3b0)
  12 0x793f734f in coreclr (+0x10734f) (0x002af3bc)
  13 0x793623e6 in coreclr (+0x723e6) (0x002af3e8)
  14 0x79362356 in coreclr (+0x72356) (0x002af454)
  15 0x793a9d03 in coreclr (+0xb9d03) (0x002af568)
  16 0x793a9b65 in coreclr (+0xb9b65) (0x002af5d8)
  17 0x793a995f in coreclr (+0xb995f) (0x002af83c)
  18 0x792f3e30 in coreclr (+0x3e30) (0x002af90c)
  19 0x793e0906 in coreclr (+0xf0906) (0x002af960)
  20 0x004208f1 in 8bitdo ultimate software v2 (+0x208f1) (0x002afa04)
  21 0x00420a83 in 8bitdo ultimate software v2 (+0x20a83) (0x002afa38)
  22 0x0042100b in 8bitdo ultimate software v2 (+0x2100b) (0x002afb48)
  23 0x0040f67f in 8bitdo ultimate software v2 (+0xf67f) (0x002afbc0)
  24 0x00410c37 in 8bitdo ultimate software v2 (+0x10c37) (0x002afc18)
  25 0x00411d25 in 8bitdo ultimate software v2 (+0x11d25) (0x002afc74)
  26 0x00410d63 in 8bitdo ultimate software v2 (+0x10d63) (0x002afd10)
  27 0x0040e46d in 8bitdo ultimate software v2 (+0xe46d) (0x002afdac)
  28 0x0040bb4f in 8bitdo ultimate software v2 (+0xbb4f) (0x002afef8)
  29 0x0040bdf1 in 8bitdo ultimate software v2 (+0xbdf1) (0x002aff08)
  30 0x0042f85c in 8bitdo ultimate software v2 (+0x2f85c) (0x002aff50)
  31 0x7baffb58 in kernel32 (+0xfb58) (0x002aff68)
  32 0x7bcbe1f7 in ntdll (+0xe1f7) (0x002aff80)
  33 0x7bcf4dd5 in ntdll (+0x44dd5) (0x002affec)
0x7b5c98f7 RaiseException+0x42 [/startdir/src/wine-64-build/../wine/dlls/kernelbase/debug.c:407] in kernelbase: movl -4(%ebp), %ebx
Unable to access file '/startdir/src/wine-64-build/../wine/dlls/kernelbase/debug.c'
Modules:
Module  Address                 Debug info      Name (27 modules)
PE        400000-  560000       --none--        8bitdo ultimate software v2
PE-Wine 785f0000-7860b000       Deferred        version
PE-Wine 78620000-78657000       Deferred        icu
PE-Wine 78670000-7871b000       Deferred        uxtheme
PE-Wine 78730000-78740000       Deferred        winex11
PE      78750000-7885b000       Deferred        clrjit
PE-Wine 78870000-78b41000       Deferred        oleaut32
PE-Wine 78b60000-78bad000       Deferred        coml2
PE-Wine 78bc0000-78bdf000       Deferred        cryptbase
PE-Wine 78bf0000-78e26000       Deferred        rpcrt4
PE-Wine 78e40000-78f97000       Deferred        combase
PE-Wine 78fb0000-792d3000       Deferred        ole32
PE      792f0000-79709000       --none--        coreclr
PE-Wine 79720000-79788000       Deferred        imm32
PE-Wine 797a0000-797e7000       Deferred        shcore
PE-Wine 79800000-798f2000       Deferred        shlwapi
PE-Wine 79910000-7a5de000       Deferred        shell32
PE-Wine 7a5f0000-7a634000       Deferred        win32u
PE-Wine 7a650000-7a878000       Deferred        gdi32
PE-Wine 7a890000-7ada1000       Deferred        user32
PE-Wine 7adc0000-7b10b000       Deferred        ucrtbase
PE-Wine 7b120000-7b190000       Deferred        sechost
PE-Wine 7b1a0000-7b46c000       Deferred        msvcrt
PE-Wine 7b480000-7b566000       Deferred        advapi32
PE-Wine 7b580000-7badc000       Dwarf-4-5       kernelbase
PE-Wine 7baf0000-7bc6c000       Dwarf-4-5       kernel32
PE-Wine 7bcb0000-7bfe1000       Dwarf-4-5       ntdll
Threads:
process  tid      prio    name (all IDs are in hex)
00000020 start.exe
	00000024    0     
00000038 services.exe
	0000003c    0     
	00000040    0     wine_rpcrt4_server
	0000004c    0     wine_rpcrt4_io
	00000050    0     wine_threadpool_worker
	00000078    0     wine_rpcrt4_io
	00000090    0     wine_rpcrt4_io
	000000b4    0     wine_rpcrt4_io
	000000b8    0     wine_rpcrt4_io
	000000c0    0     wine_threadpool_worker
	000000c8    0     wine_rpcrt4_io
	000000f4    0     
	00000100    0     wine_rpcrt4_io
00000044 winedevice.exe
	00000048    0     
	00000054    0     
	00000058    0     wine_sechost_service
	0000005c    0     
	00000060    0     
	00000064    0     
	0000009c    0     wine_nsi_notification
00000068 plugplay.exe
	0000006c    0     
	0000007c    0     
	00000080    0     wine_sechost_service
	00000084    0     wine_rpcrt4_server
	000000dc    0     wine_rpcrt4_io
	000000e0    0     wine_threadpool_worker
00000070 explorer.exe
	00000074    0     
	000000a8    0     
	000000ac    0     wine_explorer_display_settings_restorer
	000000b0    0     wine_rpcrt4_server
00000088 svchost.exe
	0000008c    0     
	00000094    0     
	00000098    0     wine_sechost_service
000000a0 winedevice.exe
	000000a4    0     
	000000bc    0     
	000000c4    0     wine_sechost_service
	000000cc    0     
	000000d0    0     
	000000d4    0     
	000000d8    0     
	000000e4    0     
	000000ec    0     
	000000f0    0     
000000f8 rpcss.exe
	000000fc    0     
	00000104    0     
	00000108    0     wine_sechost_service
	0000010c    0     wine_rpcrt4_server
	00000110    0     wine_rpcrt4_server
	00000114    0     wine_rpcrt4_io
	00000118    0     wine_threadpool_worker
0000011c (D) Z:\home\tuan\Downloads\8BitDo_Ultimate_Software_V2_V1.27\8BitDo Ultimate Software V2.exe
	00000120    0 <== 
	00000124    0     
	00000128    0     
	0000012c    2     .NET Finalizer
	00000130    0     .NET Timer
	00000140    0     .NET ThreadPool Worker
	00000144    0     .NET ThreadPool Gate
	00000150    0     
00000148 conhost.exe
	0000014c    0     
System information:
    Wine build: wine-10.20
    Platform: x86_64 (guest: i386)
    Version: Windows 10
    Host system: Linux
    Host version: 6.18.1-2-cachyos

@archeYR
Copy link
Author

archeYR commented Dec 16, 2025

The software was working for me very well on CachyOS and wine (I believe it was wine 10.18 but not 100% sure). I was able to flash firmware and do all the configurations I needed to the controller.

I recently did a system update and now the software just crashes. I tested wine with a different windows app and that still works. Not sure if anyone might be able to point me to the right direction. The error message is below.

Does disabling icu, icuin and icuuc libraries in winecfg help?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment