Getting Started on Linux (v2)

From The Al`Kabor Project Wiki
Jump to navigation Jump to search

This is a work in progress. Please send questions or comments to @meriadoc on TAKP discord, or the #peer_help topic.

tl;dr[edit]

  1. wine (version 6.0 or later, WINEARCH=win32)
  2. vulkan (i386)
  3. winetricks (dinput8 cmst=on)
  4. dgvoodoo (d3d8 -> d3d11)
  5. dxvk (d3d11 -> vulkan)
  6. freethemouse (3.5.3)

Easiest way to install TAKP EQ on Linux[edit]

You can use Meriadoc's takp launcher script to automate everything except installing wine and 32bit vulkan, since these are best done using your system's package manager.

  1. Download the launcher
    1. curl -o takp_launcher.sh https://raw.githubusercontent.com/kai4785/takp/master/launcher.sh
    2. chmod +x ./takp_launcher.sh
  2. Install the client. The first time the script runs, it tells you it creates a takp_launcher.conf file. We'll get to more of that in the next steps.
    1. ./takp_launcher.sh install
  3. Optionally disable the dgVoodoo watermark
    1. ./takp_launcher.sh disable_dgVoodoo_watermark
  4. Configure your boxes
    1. ./takp_launcher.sh play

Additionally, the launcher script can launch your 3 box for you, and automatically log into your game accounts. The first time running the script should create your $HOME/.takp_launcher.conf. Open this file in your favorite editor, and you should see an example of how your passwords can be saved. If you suffer from password re-use, just set your "accounts" and "default_password", and startup the 3boxes.

./takp_launcher.sh startup

Feedback on this script is also welcome (especially in the form of a pull request on github).

Example manual process to install TAKP EQ on Linux[edit]

I would love to see this process adapted to Lutris or PlayOnLinux, but I am not familiar with scripting either of those tools. It would make it easier to setup for individuals with less familiarity with the commandline.

Thanks to tragedie37, he got it working on PlayOnLinux!

  1. Install Wine.
    1. Try your system's package manager ie:
      1. sudo apt install wine
      2. sudo dnf install wine
    2. Or try a GloriosEggroll release
  2. Install vulkan 32bit libraries
    1. This is also best done by your system's package manager. Other articles do a great job explaining how. Just make sure you (also) install the 32bit (i386 or i686) packages. EQ is a 32bit application.
  3. Download the TAKP v2.0 client. It has everything you need, and very little that you don't.
    1. The EQ Client can run from any folder.
  4. Initialize your wineprefix, and install the default TAKP client
    1. In this tutorial we will setup an 'E:' drive in Wine, with a single TAKP folder in it.
      1. export WINEARCH=win32 WINEPREFIX=$HOME/.takp/wineprefix/system
      2. takp_prefix=$HOME/.takp
      3. drive_e=${takp_prefix}/drive_e
      4. takp_dir=${drive_e}/TAKP
      5. mkdir ${takp_dir} $WINEPREFIX/dosdevices
      6. ln -sf ${takp_dir} ${WINEPREFIX}/dosdevices
      7. wine wineboot -u
      8. wineserver -k -w
      9. unzip -d ${drive_e} <path to TAKP.zip>
  5. Download and run winetricks to initialize your wineprefix. The winetricks verbs you need are:
    1. dinput8
      1. This fixes wacky keyboard and mouse behavior, like keys getting stuck down, or mouse mouse look not working, even though you've hit F12.
    2. csmt=on
      1. This may not be strictly necessary anymore, but I have not done enough testing with out it enabled. CMST is a feature of Wine to process OpenGL calls in a separate thread to improve efficiency. Not only are we on Vulkan instead of OpenGL, but it may be enabled by default anyway. I would appreciate any feedback you have on cmst.
    3. The resulting commands can look like this:
      1. curl -o ${takp_prefix}/winetricks https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks
      2. chmod +x ${takp_prefix}/winetricks
      3. ${takp_prefix}/winetricks dinput8 cmst=on
  6. Install freethemouse
    1. The freethemouse patch is a custom fix for the old TAKP client that helps the TAKP client release the mouse when using Alt+Tab. We'll rename the original dll just incase.
      1. curl -L -o ${takp_prefix}/freethemouse.zip 'https://www.dropbox.com/s/zbha7dxydsr92w0/eqgame_dll%20v3.5.3%20for%20ftm.zip?dl=0'
      2. mv ${takp_dir}/eqgame.dll ${takp_dir}/eqgame.dll.dist
      3. unzip -d ${takp_dir} ${takp_prefix}/freethemouse.zip eqgame.dll
  7. Install dgVoodoo, and tell Wine to use the local (native) version of the library.
    1. dgVoodoo is a sort of graphics API translator from old DirectX (in our case version 8), to the latest DirectX version (11).
      1. curl -L -o ${takp_prefix}/dgVoodoo2_73.zip "http://dege.freeweb.hu/dgVoodoo2/bin/dgVoodoo2_73.zip"
      2. unzip -d ${takp_dir} ${takp_prefix}/dgVoodoo2_73.zip "MS/x86*"
      3. mv ${takp_dir}/MS/x86/D3D8.dll ${takp_dir}/d3d8.dll
      4. mv ${takp_dir}/MS/x86/D3D9.dll ${takp_dir}/d3d9.dll
      5. wine reg add 'HKEY_CURRENT_USER\Software\Wine\DllOverrides' /v d3d8 /d native /f >/dev/null 2>&1
      6. wine reg add 'HKEY_CURRENT_USER\Software\Wine\DllOverrides' /v d3d9 /d native /f >/dev/null 2>&1
    2. Optionally, you can remove the dgVoodoo watermark in the bottom right hand corner with a dgVoodoo.conf
      1. echo -en "[DirectX]\ndgVoodooWatermark = false\n" > ${takp_dir}/dgVoodoo.conf
  8. Install dxvk
    1. dxvk is a sort of graphics API translator from DirectX 11 to vulkan.
      1. curl -L -o ${takp_prefix}/dxvk-1.8.1.tar.gz "https://github.com/doitsujin/dxvk/releases/download/v1.8.1/dxvk-1.8.1.tar.gz"
      2. tar -C ${takp_dir} -xf ${takp_prefix}/dxvk-1.8.1.tar.gz "dxvk-1.8.1/x32"
      3. mv ${takp_dir}/dxvk-1.8.1/x32/d3d10.dll ${takp_dir}/d3d10.dll
      4. mv ${takp_dir}/dxvk-1.8.1/x32/d3d11.dll ${takp_dir}/d3d11.dll
      5. ${wine_bin} reg add 'HKEY_CURRENT_USER\Software\Wine\DllOverrides' /v d3d10 /d native /f >/dev/null 2>&1
      6. ${wine_bin} reg add 'HKEY_CURRENT_USER\Software\Wine\DllOverrides' /v d3d11 /d native /f >/dev/null 2>&1

Troubleshooting tips[edit]

If you crash after clicking the "Enter" button, but before the loading bar appears, then dgVoodoo didn't install properly, so it's not converting d3d8 calls to d3d11.

If you get a black screen with the loading bar that seems to progress, then dxvk didn't install properly, so it's not converting d3d11 -> vulkan.

If your keyboard or mouse inputs get wacky, like every key stroke acts like the button stays pressed down, or the mouse jumps around on the screen, then dinput8 is probably not installed.