Skip to content

twstokes/doom-matrix

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

doom-matrix

doom_led.mov

Note: Flickering isn't seen with human eyes. 👀

Runs Doom on LED matrices connected to a Raspberry Pi.

Made possible thanks to these libraries:

For best performance it's recommended to run an OS like DietPi.

Hardware

Setup tooling and libraries

  1. Install C and C++ compilers + make for your OS
  2. Fetch the dependency submodules with git submodule update --init --recursive --depth=1

Audio

Audio should be decently turn-key, but can take a little more work. It's not recommended to use the on-board audio on the Pi while driving the matrix for performance reasons, so it's best to disable it on boot. I used an inexpensive USB adapter and made it the default for ALSA.

Because I built the libraries locally I needed to install:

  • Sounds
    • libasound2-dev
  • Music
    • fluid-soundfont-gm
    • freepats
    • timidity
    • fluidsynth

And built SDL and SDL Mixer in the libs/SDL and libs/SDL_mixer paths respectively. See build and installation instructions for more info.

In libs/SDL and libs/SDL_mixer you should only have to run:

./configure
make
make install (as root)

Note:

  • It can take a while to compile these on a Pi! You can also consider cross-compiling from a faster machine.
  • If your distro has SDL packages you can install them instead.
  • Even if running doom-matrix as root, you'll probably need to add your user to the appropriate audio group.

Building the project

make

Cleaning

make clean

Running

The binary accepts arguments for both rpi-rgb-led-matrix and doomgeneric, e.g.:

./doom_matrix --led-gpio-mapping=adafruit-hat -iwad doom1.wad --led-rows=64 --led-cols=64

See those libraries for information on what arguments are available.