Finger info for

10 Years

On April 12, 2012, I received access to the Waveform source code, for the purpose of bringing the game to Linux and macOS. Classes were ending soon and my summer job was already underway.

That summer job hit its 10th anniversary today.

A few random numbers:

Thanks to everyone who has enabled me to be a full-time independent developer for a decade, especially those who continued to support native developers this past year. Native developers and specialists can give small games the attention they deserve, something that no monolithic superpower can ever provide, no matter how much they might claim otherwise.

See you at my next native release!

Bill's Hat

Turn a minimal Fedora installation into a SteamOS box!

1. Write Fedora Workstation NetInstall ISO to a USB drive
2. Boot USB image, install Minimal configuration
3. Set root password, create a user called 'steam', set a password for it
4. Reboot, log in as root
5. A whole bunch of commands:

dnf group install hardware-support
dnf install Xorg xorg-x11-drv-evdev libglvnd-egl vulkan-loader.x86_64 vulkan-loader.i686 lightdm flatpak NetworkManager-wifi kernel-modules-extra bluez
dnf config-manager --add-repo=
dnf install steam
setsebool -P allow_execheap 1
systemctl enable sshd.service
systemctl enable lightdm.service
systemctl set-default

6. Edit /etc/lightdm/lightdm.conf:


7. Create /var/lib/AccountsService/users/steam:


8. Create /usr/share/xsessions/steamos.desktop:

[Desktop Entry]
Comment=SteamOS (Gamescope)

9. Steam Deck UI

dnf builddep gamescope
dnf install git xorg-x11-server-Xwayland-devel
Build/Install gamescope:
echo steampal_stable_9a24a2bf68596b860cb6710d9ea307a76c29a04d > ~/.steam/steam/package/beta
STEAM_MULTIPLE_XWAYLANDS=1 gamescope --xwayland-count 2 -e -W 1280 -H 800 -- steam -gamepadui -steamdeck -steamos3

10. Additional steps for NVIDIA users:

dnf config-manager --add-repo=
dnf install kernel-devel dkms-nvidia nvidia-driver-libs.x86_64 nvidia-driver-libs.i686
reboot # Should be using the NVIDIA driver now!


Want to replicate my build machine? Grab CentOS 7 and have a look...

# Update base install before doing anything else
yum update
# Add EPEL
yum install
# Add SCL
yum install centos-release-scl
# All the base build tools!
yum install bzip2 bzip2-devel chrpath cmake cmake3 freetype-devel gcc-c++ \
    git gtk3-devel hg libcxx-devel libstdc++-static libusbx-devel \
    libuuid-devel libvorbis-devel libxml2-devel lzma-sdk-devel meson \
    ocl-icd-devel openal-soft-devel opencl-headers openssl-devel patch \
    perl-IPC-Cmd svn unix2dos yum-utils yum-plugin-copr zlib-static
# SDL2 dependencies
yum-builddep SDL2
# Coprs for MinGW as well as GCC 10, needed to build Clang/LLVM/osxcross
yum copr enable mlampe/devtoolset-10
yum copr enable alonid/mingw-epel7
yum install devtoolset-10 mingw32-* mingw64-*

# CMake3 by default
alternatives --install /usr/local/bin/cmake cmake /usr/bin/cmake 10 \
    --slave /usr/local/bin/ctest ctest /usr/bin/ctest \
    --slave /usr/local/bin/cpack cpack /usr/bin/cpack \
    --slave /usr/local/bin/ccmake ccmake /usr/bin/ccmake \
    --family cmake
alternatives --install /usr/local/bin/cmake cmake /usr/bin/cmake3 20 \
    --slave /usr/local/bin/ctest ctest /usr/bin/ctest3 \
    --slave /usr/local/bin/cpack cpack /usr/bin/cpack3 \
    --slave /usr/local/bin/ccmake ccmake /usr/bin/ccmake3 \
    --family cmake

# Wayland updates
su -c 'yum remove wayland-devel wayland-protocols-devel'
curl -O
curl -O
curl -O
tar xvfj wayland-1.19.0.tar.bz2
tar xvfj wayland-protocols-1.25.tar.bz2
tar xvfj libdecor-0.1.0.tar.bz2
mkdir wayland-1.19.0/flibitBuild
mkdir wayland-protocols-1.25/flibitBuild
mkdir libdecor-0.1.0/flibitBuild
cd wayland-1.19.0/flibitBuild
meson .. --libdir=lib -Ddocumentation=false
su -c 'ninja install'
cd ../../wayland-protocols-1.25/flibitBuild
PKG_CONFIG_PATH="/usr/local/lib/pkgconfig:/usr/local/share/pkgconfig" meson .. --libdir=lib
su -c 'ninja install'
cd ../../libdecor-0.1.0/flibitBuild
PKG_CONFIG_PATH="/usr/local/lib/pkgconfig:/usr/local/share/pkgconfig" meson .. --libdir=lib -Ddemo=false
su -c 'ninja install'

# PipeWire 0.3.42 (Highest version usable with meson)
curl -O
tar xvfj pipewire-0.3.42.tar.bz2
mkdir pipewire-0.3.42/flibitBuild
cd pipewire-0.3.42/flibitBuild
meson setup .. --libdir=lib -Dsession-managers= -Dpipewire-v4l2=disabled -Dv4l2=disabled -Draop=disabled

# Also:
# Configure SDL with PKG_CONFIG_PATH=/usr/local/lib/pkgconfig ./configure
# Modify unistd.h to change __block to anything but __block
# The CMake config provided by SDL2-mingw is terrible, delete the block
#  that starts with "if(NOT TARGET SDL2::SDL2)".
# Be prepared to pass -std=gnu99 manually. A LOT.

# To enter Mac building mode (and to build osxcross itself):
# scl enable devtoolset-10 bash

Wait, a "plan"?

Well, this is a .plan file, so here's my TODO. Expect nothing from it, ever.

In Progress
    Codename BlackBook
    Blossom Tales 2 EOS

Waiting Room (2022)
    Codename DanishBootleg
        - Port is done, content is not
    Super Hexagon Neo Part 2
        - Merge happened, cleanup happening later
    Coding History
        - On call throughout development
Waiting Room (2023)
        - Building up sponsor time, part of 3.0 discussion
        - Licensing blockage, might get cancelled
    VVVVVV 2.4
        - Giving the localization project as much time as it wants
Waiting Room (Heat Death)
    ScoreRush PC
        - Need AppAdmin for publish, crosshair for mouse
    Proteus "Neo" Rewrite
        - Retirement project
    Anodyne 1
        - Retirement project

When this .plan was written: 2022-08-25 18:34:10
.plan archives for this user are here (RSS here).
Powered by IcculusFinger v2.1.27
You could be playing Pringles for Genesis but instead you're here?