Skip to content

Instantly share code, notes, and snippets.

@ahungry
Last active March 14, 2024 00:37
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save ahungry/b6427ebe04dc6dfbfb0e2122bad0cdab to your computer and use it in GitHub Desktop.
Save ahungry/b6427ebe04dc6dfbfb0e2122bad0cdab to your computer and use it in GitHub Desktop.
Everquest Quarm (TAKP client) Setup

General Notes

Original reference: https://wiki.takp.info/index.php/Getting_Started_on_Linux_(v3)_Wine-Staging_6.0,_vulkan_%26_dxvk

Arch Linux with wine-8.13 and setup_dxvk

EQ Game Files

Download the game files hosted here: https://www.dropbox.com/s/bppy4ebt7vl7hwk/TAKP%20PC%20V2.1c.zip?dl=0

Found via this link: https://wiki.takp.info/index.php/Getting_Started_on_Windows

Compatability files

Download dgvoodoo2 via: http://dege.freeweb.hu/dgVoodoo2/dgVoodoo2/ Using version: v2.81.1

Setup commands (build prefix, add dgvoodoo2 etc.)

mkdir -p ~/.quarm  # Your new main area
cd ~/.quarm
mkdir QUARM                       # Hold game files here (so unzip the TAKP zip contents)
mkdir dgvoodoo                    # Hold the dgvoodoo2 files here
ls -l projectquarm_08_05_2023.zip # Ensure you have this from Discord #server-files

# Set up the prefix (these are important for the active shell session - prefix each command
# with these if you don't retain the export in your active env).
export WINEARCH=win32
export WINEPREFIX=~/.quarm/take1
wineboot
setup_dxvk install

# Copy your dgvoodoo2 d3d8.dll and d3d9.dll to the game file directory
cp dgvoodoo/MS/x86/D3D8.dll ./QUARM/d3d8.dll
cp dgvoodoo/MS/x86/D3D9.dll ./QUARM/d3d9.dll
rm QUARM/D3D8.dll QUARM/D3D9.dll                # Incase they were leftover from main unzip

# Tell your wine prefix to use those files sitting in the game file directory
wine reg add 'HKEY_CURRENT_USER\Software\Wine\DllOverrides' /v d3d8 /d native /f >/dev/null 2>&1
wine reg add 'HKEY_CURRENT_USER\Software\Wine\DllOverrides' /v d3d9 /d native /f >/dev/null 2>&1

# Add the quarm specific file(s):
cp projectquarm_08_05_2023.zip QUARM/
cd QUARM && unzip projectquarm_08_05_2023.zip # Overwrite (A) - see eqgame.dll replaced

# Try it out and confirm it works:
wine eqgame.exe # Or if using nvidia discrete on a laptop: 'prime-run wine eqgame.exe'

MIDI Support

For MIDI to work, you need to run something like this prior to starting the game (otherwise most town/vendor music is missing):

fluidsynth -s --audio-driver=pulseaudio -m alsa_seq /usr/share/soundfonts/freepats-general-midi.sf2

After ensuring the MIDI server and sound files are installed:

sudo pacman -S fluidsynth freepats-general-midi

Single install command via Lutris

If you don’t like doing things manually (beyond acquiring the files), you can use this installer for Lutris.

# Step 1: Get the game files (see earlier in this gist)
# Step 2: Run the command on the next line
#     lutris -i $(realpath ./eq-quarm.yml)
# Step 3: Enjoy Project Quarm
id: 0
game_id: 0
game_slug: eq-quarm
name: Everquest Quarm
year: 2023
user: ahungry
runner: wine
slug: everquest-quarm
version: Quarm
description: EQ Quarm Installer
notes: Installs EQ Quarm
created_at: 2023-08-08T18:00Z
updated_at: 2023-08-08T18:00Z
draft: true
published: false
steamid: null
gogid: null
gogslug:
humbleid:
humblestoreid:
humblestoreid_real:

script:
  wine:
    # https://github.com/lutris/docs/blob/master/WineBuilds.md
    # version: lutris-fshack-7.2-x86_64
    version: lutris-GE-Proton8-7-x86_64
    dxvk: true
    esync: true

  # With this as single, the EULA never loads - 2+ cpu will work - locally I
  # taskset to 2 when running game manually, but multi seems ok for
  # TAKP client.
  # system:
  #   single_cpu: false

  files:
    # https://www.dropbox.com/s/bppy4ebt7vl7hwk/TAKP%20PC%20V2.1c.zip?dl=0
  - client_zip: N/A:Please select your TAKP client zip file (TAKP PC V2.1c.zip)
  - dgvoodoo2_zip: N/A:Please select your dgvoodoo2 zip file/download (dgVoodoo2_81_1.zip).
  - quarm_zip: N/A:Please select your Quarm zip file from Discord (projectquarm_08_05_2023.zip)

  game:
    prefix: $GAMEDIR
    arch: win32
    exe: $GAMEDIR/client/eqgame.exe
    working_dir: $GAMEDIR/client

  installer:
  - task:
      description: Creating Wine prefix
      name: create_prefix
      prefix: $GAMEDIR
      install_mono: false
      install_gecko: false
  - extract:
      dst: $GAMEDIR/client
      file: client_zip
  - extract:
      dst: $GAMEDIR/dgvoodoo
      file: dgvoodoo2_zip
  - extract:
      dst: $GAMEDIR/quarm
      file: quarm_zip
  - move:
      src: $GAMEDIR/dgvoodoo/MS/x86/D3D8.dll
      dst: $GAMEDIR/client/d3d8.dll
  - move:
      src: $GAMEDIR/dgvoodoo/MS/x86/D3D9.dll
      dst: $GAMEDIR/client/d3d9.dll
  - move:
      src: $GAMEDIR/quarm/eqgame.dll
      dst: $GAMEDIR/client/eqgame.dll
  - task:
      description: Edit registry to set it to use dgvoodoo2 d3d8
      prefix: $GAMEDIR
      name: set_regedit
      path: HKEY_CURRENT_USER\Software\Wine\DllOverrides
      key: d3d8
      value: native
      type: REG_SZ
  - task:
      description: Edit registry to set it to use dgvoodoo2 d3d9
      prefix: $GAMEDIR
      name: set_regedit
      path: HKEY_CURRENT_USER\Software\Wine\DllOverrides
      key: d3d9
      value: native
      type: REG_SZ
@dull4h4n
Copy link

Failed on the wine part at getting lutris GE. Could just take that out and let user get their own. Without the Wine part, it worked flawlessly.

@ahungry
Copy link
Author

ahungry commented Sep 23, 2023

Oh, strange - like, it failed to fetch that version of wine?

I'm not really a lutris expert - if the wine version isn't specified, are you still playing it via lutris? Just manually choosing an installed wine through lutris at script install, or game launch time?

Unlike some lutris scripts I've used that really depended on a specific wine version (a special GE build for diablo 4 for instance), I don't think Quarm really requires this particular version - it just happened to be the first one I chose + tested with.

@FrostWolf86
Copy link

@ahungry
Copy link
Author

ahungry commented Oct 1, 2023

Nice! Thanks for the video (or linking to it if not yours) 😄

@Dubbbish
Copy link

Having trouble installing on my steam deck. Following all of the steps exactly from the youtube video and no matter what I do or try I get an error during they dgvoodoo step of the yml script. It fails at that point and says, "VaueError( not enough values to unpack (excpected 2, got 0}"

Any help or insight to why i would get this error would be much appreciated. Thanks

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