Beatmania IIDX 30 Resident on Wine

The following guide was tested on wine-vanilla-7.22, wine-vanilla-8.0.1 and wine-proton-8.0.3c on Gentoo Linux.

The Guide

  1. Grab game data files, spice and asphyxia
  2. Patch your bm2dx.dll with WASAPI Shared Mode (with 44100Hz) (the default Exclusive Mode is not implemented in Wine yet)
  3. Before playing we need to apply some fixes
    1. Make sure your user can issue pings, for example ping 127.0.0.1.
      If ping exits immediately or returns operation not permitted then run sysctl net.ipv4.ping_group_range="0 2147483647" as root.
      To persist between reboots add a line net.ipv4.ping_group_range = 0 2147483647 to /etc/sysctl.d/local.conf
    2. Give cap_net_raw capability to wineserver executable: setcap cap_net_raw+eip /path/to/your/winebin/wineserver
    3. dsdmo.dll fix
      1. Grab 64bit dsdmo.dll from a copy of Windows (C:\Windows\System32\dsdmo.dll, you can use someones PC or a virtual machine), or download it from here:
        wget 'https://files.catbox.moe/sez8b5.dll' -O dsdmo.dll
        
      2. Copy it to your wineprefix:
        cp dsdmo.dll /path/to/your/wineprefix/drive_c/windows/system32
        
      3. Register the DLL
        WINEPREFIX=/path/to/your/wineprefix /path/to/your/winebin/wine64 regsvr32 dsdmo
        
    4. In winecfg under Audio tab check if selected driver is winealsa.drv. If not, apply the following winetrick:
      WINEPREFIX=/path/to/your/wineprefix winetricks sound=alsa
      
    5. Kill pulseaudio before running the game:
      pulseaudio -k
      
    6. Run asphyxia-core and spice64.exe

Once the game is working correctly you can patch your bm2dx.dll again for higher refresh rate and other fixes.

Room for improvements

Audio can experience slight crackling and distortion, it is adviced to close other programs, or even better run Wine straight from X without any window manager.
I've tested the alternative setup of running JACK on Linux host, WineASIO in Wine and configuring spice for ASIO output. The game runs and successfully connects to JACK, but produces no audio output. WineASIO works fine in other software such as foobar2000 and Reaper.

Edit

Pub: 13 Dec 2022 21:16 UTC

Edit: 30 Sep 2023 23:55 UTC

Views: 2228