published on

Ultrastar Deluxe on Raspberry Pi

Ultrastar Deluxe is an open source alternative for the once popular (but now dead) SingStar franchise on the PS 2/3/4. Ultrastar Deluxe runs on Windows, Mac and Linux and lets you add and create your own songs.

My goal was to create an easy solution to play Ultrastar Deluxe on my TV. Therefore I choose one of my spare Raspberry Pi’s 3b+.
It is possible to play Ultrastar Deluxe, but there are some limitation which are not worth it for me.

Limitations

  • Output is limited to Full HD (no 4K), since the Raspberry PI does not support this (HDMI wise and performance wise)
  • H.264/MPEG4-AVC videos will have severe performance issues while singing and even in the ‘song selection’ menu while playing the preview video. H.264 videos must be removed entirely to get decent performance.
    I tried different resolutions (720x576, 1920x1090) and different AVC profiles (Main@L3.1, High@L4). Lower profiles and lower resolutions worked better, but the framerate was no where near 30fps.
  • I did not test H.265 videos, but I expect them to perform even worse.
  • I did not add autostart for Ultrastar, nor test controller support (which would obviously nice on a TV).

Installation

  1. Preparation
    You need a Raspberry Pi 3b+, an internet connection (LAN or WLAN), a USB mouse and keyboard, a monitor, a MicroSD-Card, a PC with an card reader and a USB-microphone. I used the original wireless Singstar mic, which worked just fine.
    Connect the card reader to your PC and everything else to the Raspi.
  2. OS installation
    1. Download Raspbian (I used Raspbian Buster with Desktop)
    2. Flash it to an MicroSD-Card with balenaEtcher
    3. Install Raspbian
    4. Open terminal and run sudo apt-get update and sudo apt-get upgrade
  3. Compile Ultrastar Deluxe
    (Following the instructions on the GitHub repo)
    1. Open terminal and run the following commands

       1
       2
       3
       4
       5
       6
       7
       8
       9
      10
      
      sudo apt-get install git automake make gcc fpc \
       libsdl2-image-dev libavformat-dev libswscale-dev \
       libsqlite3-dev libfreetype6-dev portaudio19-dev \
       libportmidi-dev liblua5.3-dev libopencv-highgui-dev
      git clone https://github.com/UltraStar-Deluxe/USDX
      cd USDX
      ./autogen.sh
      ./configure
      make
      sudo make install
      
    2. After that you can already start Ultrastar by typing ultrastardx

  4. Performance tuning
    (This is needed to get the Ultrastar UI run smoothly)
    1. Run sudo raspi-config in terminal
    2. Go to 7 Advanced Options
    3. Choose A3 Memory Split and set it to 256 to give the GPU a little bit more memory
    4. Also under 7 Advanced Options go to A7 GL Driver and choose G3 GL (Full KMS) OpenGL desktop driver with full KMS
  5. Copying songs Copy your songs directly to the MicroSD card or via USB-Stick and place them in the /home/pi/.ultrastardx/songs directory

You can now start Ultrastar Deluxe by typing ultrastardx into a terminal.

Sources