Running Hotline Miami on 64-bit Linux (“amd64″) 2013-06-28

Contents

  • On Debian (using 32-bit chroot)
  • On Gentoo (using a mix of multilib and emul-linux-x86-* packages)

I recently had trouble getting (the 32-bit binaries of) PC game Hotline Miami to run on a amd64 Debian machine. In the end I got it to work using a 32-bit chroot. That’s what the post is about, mainly. If you know a non-chroot way to achieve this on amd64 Debian, please share your solution in the comment section. Thanks!

On Debian

One way is to use a 32-bit chroot built by debootstrap:

# Build 32-bit chroot
sudo debootstrap --arch i386 testing debian_testing_i386_root

# Make chroot enterable
sudo mount -o bind /dev/ debian_testing_i386_root/dev/
sudo mount -t proc PROC debian_testing_i386_root/proc/
sudo mount -t sysfs SYS debian_testing_i386_root/sys/

# Ensure that /dev/dsp exists
sudo modprobe snd_pcm_oss

# Copy .deb package into chroot
sudo cp hotline-miami_1.0.9a-0ubuntu6_i386.deb debian_testing_i386_root/root/

# Enter chroot
sudo chroot debian_testing_i386_root/ /bin/bash

# Install Hotline Miami, its dependencies and PulseAudio
dpkg -i hotline-miami_1.0.9a-0ubuntu6_i386.deb
apt-get -f install
apt-get install pulseaudio

# Add a dedicated user to not be gaming as root
adduser hotline
addgroup hotline audio  # for access to /dev/dsp

# Switch to that user
su hotline

# Start PulseAudio user process so we actually hear something
# We're using "&" over "--start" since user "hotline" might have
# the same user ID as another user running PulseAudio outside
# of the chroot already
pulseaudio --log-target=syslog &

# Launch Hotline Miami, done!
( cd /opt/hotline-miami/ && ./Hotline )

On Gentoo

Emerge these direct dependencies:

  • app-emulation/emul-linux-x86-opengl
  • app-emulation/emul-linux-x86-soundlibs
  • media-libs/fontconfig[abi_x86_32]
  • media-libs/freetype[abi_x86_32]
  • x11-libs/libX11[abi_x86_32]
  • x11-libs/libxcb[abi_x86_32]
  • x11-libs/libXext[abi_x86_32]
  • x11-libs/libXrender[abi_x86_32]
  • x11-libs/libXrandr[abi_x86_32]

.. or use my ebuild off betagarden:

sudo layman -a betagarden
sudo emerge -av games-action/hotline-miami-bin

Creative Commons License
The Running Hotline Miami on 64-bit Linux (“amd64″) by Sebastian Pipping, unless otherwise expressly stated, is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.

One Comments
rs3 July 6th, 2013

I managed to get it running by just enabling multiarch…but my present dilemma is that I have no sound.

To enable multiarch:

http://wiki.debian.org/Multiarch/HOWTO

In a nutshell, you’ll do this as root or with sudo:

# dpkg –add-architecture i386

Then update your sources.list by inserting a multiarch identifier between the “deb” and URL, like so:

deb [arch=amd64,i386] http://mirrors.kernel.org/debian/ wheezy main

I then updated aptitude and installed the deb (dpkg -i). This lists a myriad of unmet 32-bit dependencies, which is resolved like so:

# apt-get -f install

The game runs after that but currently without sound…I’m running Wheezy amd64 with KDE. If I figure out what’s going on, I’d be happy to share. Thanks.

Leave a Reply