Disco Elysium Touch Overlay

Disco Elysium is a seriously unique role playing game.

You’re a detective with a deep skill system at your disposal and a whole city to carve your path across. It's very artsy, humorous and grim.

Playing the game feels almost like reading a book, so it's only natural to want to sit in a comfy armchair while doing so! Disco Elysium has pretty good touch support except for a few critical features, such as zooming and pausing the game... So I implemented them myself!

Disco Elysium Touch Overlay is an AutoHotkey script (and standalone application) that adds the missing touch functionality to Disco Elysium by overlaying windows that seamlessly blend in with the game's UI.

It's free on GitHub!

GPU Particles for Unity

Millions of particles

Particles are visual effects. They should not consume your CPU resources. Unity's built-in particle system runs on the CPU and is therefore very limited in terms of particle count. GPUs, on the other hand, are designed for parallelization and can compute and visualize extremely large amounts of data. That's why I programmed a GPU particle system for Unity that is capable of processing millions of particles per system and providing amazing visual effects. It also comes with a fancy custom editor to quickly change its many parameters.

It's free on GitHub!

Cassie: A custom POS System

A POS (Point Of Sale) system is a computer system that is used to sell products or services in a store. One day I decided to build one myself:

Cassie Hydration Systems©℗®™ is a fancy unneccessarily over-engineered soft- & hardware replacement for a paper based split bill. It runs on an old POSBANK Imprex D5 and has been in daily use in my dorm since 2019.

Users have a balance and can purchase items by selecting them on screen or scanning them. The system features a touch interface, liquid crystal customer display & usb barcode scanner. It stores all past transactions, allows for reimbusements, can handle variying users & items and works 100% offline.

It uses VueSocketIOFlask and stores data as JSON files.

Using AI to generate voicelines for Deep Rock Galactic

The Deep Rock Galactic modding scene is pretty crazy. If you come up with some wild idea for a mod, chances are it has already been built. There was only one significant element missing: Custom voicelines! Sure, you could replace the game’s voicelines with GLaDOS for example, but what if you wanted the Dwarves or Mission Control to say something you made up?

Introducing: xVATrainer & xVASynth!

I spent over 200 hours training neural networks to imitate the characters from Deep Rock Galactic, all voiced by the magnificent Robert Friis ❤ The trained models are freely available at your disposal! Keep reading or watch the tutorial to find out how ⛏

[sonaar_audioplayer playlist_type=”predefined” albums=”722″ artwork_id=”” player_layout=”skin_float_tracklist” show_skip_bt=”false” show_shuffle_bt=”false” show_speed_bt=”false” show_volume_bt=”false” show_publish_date=”false” show_tracks_count=”false” show_meta_duration=”false” hide_progressbar=”default” display_control_artwork=”false” hide_artwork=”true” show_playlist=”true” show_track_market=”false” show_album_market=”false” hide_timeline=”false” track_artwork=”true” scrollbar=”false” shuffle=”false” sticky_player=”false”][/sonaar_audioplayer]

Download the voice models

1. Download .zip with voice models

2. Install xVASynth

3. Go to xVASynth folder

4. Copy the resources folder from the .zip into the xVASynth folder

5. Launch xVASynth

6. Click ‘ae’ and enable all words from CMUDict

7. Dip your balls in liquid morkite 👍


We've been working on a full VR mod for Deep Rock Galactic, it's in open beta now!

Related rechts

How to play Lego Star Wars: The Skywalker Saga Co-op on two monitors

Lego Star Wars: The Skywalker Saga is a great game for those looking to relive their nostalgic Lego Star Wars memories. It’s best experienced in co-op. Here’s how to play local co-op with each player on a different screen:

  1. Download & install Windowed Borderless Gaming
  2. With WBG running, click it’s tray icon and choose “Add window (F3)”
  3. Launch Lego Star Wars
  4. Press F3 to associate the game window with WBG
  5. Open WBG again using the tray icon and navigate to “Settings” > “Game Settings”
  6. Adjust the resolution and offset for Lego Star Wars to match your setup (screenshot is for two 1920×1080 monitors)

Enjoy! 😊

The best OctoPrint plugins 2022

OctoPrint adds a web interface to any 3D printer and allows remote printing and monitoring. It can easily be extended with plugins to be even more useful. But finding good ones in the public plugin repository is like looking for a needle in a haystack.

I spent a lot of time trying out different plugins and getting them to work together.

To make your life a little easier, here are my favorite OctoPrint plugins:

Print Time Genius
& Display Layer Progress

PrintTimeGenius generates highly accurate printing time estimations by utilizing the GCode and previous prints. In my experience it estimated ~10 hour prints with an error of a few minutes. That is way better than OctoPrint’s estimations. An absolute must-have. DisplayLayerProgress extracts layer/height information from the GCode and displays it in the web interface and on your printer’s LCD screen.

Print Time GeniusDisplay Layer Progress

Detailed Progress & M73 Progress

Detailed Progress displays the job’s progress in percent, estimated time left and estimated time of completion on your printer’s LCD screen. M73 Progress requires Marlin firmware and causes the LCD’s progress bar to show the correct value instead of 0%.

Detailed ProgressM73 ProgressHint


This plugin can display your OctoPrint interface in a touch-friendly and compact way. Since it is web based, it’s completely dynamic and works (almost) flawlessly with most plugins. I use it to monitor and control my printer from my phone. I recommend traiting it as an app on android. It is also somewhat customizable.

TouchUIMy Settings


Themeify offers a selection of themes to spice up the web interface. It also enables you to apply custom CSS rules and display tab icons. It can reduce eye strain with a dark theme and distracts less from the webcam image. Combining it with TouchUI allows for a consistent style.

ThemeifyMy Settings

Firmware Updater

This plugin allows you to flash precompiled firmware to your printer by simply uploading it in the browser. Very useful and time-saving!

Firmware UpdaterHint


Octolapse is designed to make stabilized timelapses of your prints with as little hassle as possible, and it’s extremely configurable. It usually produces stunning results (like the one on the right), but also adds a fair amount of time to your print duration. I recommend only using it with interesting models and filament that contrasts your bed or background.


Fullscreen Webcam

With this plugin installed, double clicking the webcam image will enlarge it to fullscreen and display temperature and progress information. Useful to see the print in detail and spot fails.

Fullscreen Webcam

Custom Background

This plugin allows you to change the temperature graph’s background image by simply uploading it. You can even use GIFs!

Custom BackgroundMy GIF

GCODE System Commands
& Custom Control Editor

I’m using Custom Control Editor to add buttons to the Control tab. They send custom GCODE commands when clicked. GCODE System Commands then turns these into system commands. From there, you can control pretty much anything. I installed mosquitto on the Pi running OctoPrint and use MQTT to control lights pointed at the printer.

GCODE System CommandsCustom Control Editor


Autoscroll simply adds a button below the terminal to toggle autoscrolling. Without it, the terminal is just a pain in the ass to use.



Autoselect will automatically select newly uploaded files for printing if there is an active connection to a printer and currently no print job running. Convenient.


Heater Timeout

Ever accidentally preheated your hotend or bed and then forgotten to start a print? This plugin will automatically disable your printer’s heaters after a specified timeout if no print has been started.

Heater Timeout

Bed Level Visualizer & BLTouch

The perfect first layer is one of the most important factors to getting high quality prints. That’s why I highly recommend equipping your printer with some sort of auto bed leveling. Using a BLTouch (or clone) for example. Bed Level Visualizer provides a fancy 3D render of the gathered mesh data. The BLTouch plugin simply adds some BLTouch related controls. Both can be very useful from time to time.

Bed Level VisualizerBLTouch

Test Post for Testing Purposes

This is indeed a test post. I simply needed something to fill some spaces all over the website. I might be spending some more time on the blog over the next few days, but I wanted to share with you one of the many ways you can help me:

As of right now I have more than 75 supporters and my goal is to raise at least $15,000 to pay for the software that will help ensure my accuracy, license and maintenance costs for the time I will be able to post on behalf of Press for Change (as it looks like there may be other filing deadlines pending from my research). I have no idea if I'll be able to make that goal, but it's important to be realistic when dealing with non-profit organisations like this one.

Thank you so much for taking the time to read the story of Spicy Pizza King and his journey back. Let me know if you’d like to hear more about his amazing journey, as well as hear from him when he returns home!

That weird post image is from gratisography by the way. Cool people, check 'em out!

Reverse engineering Unity's dark mode

TL;DR: Get Unity dark mode for free by following the steps below

Unity is one of the most popular game engines out there. Up until version 2019.4 the software’s dark theme was only available to users with a Pro subscription, costing 1,800$ a year. This is absolutely ridiculous. Making the dark theme available to all users was the most upvoted request in Unity’s own feedback forum. The dark theme is so much better to look at than the light theme that it could be considered an accessibility feature. Nevertheless, it took them 14 years.

Many projects still rely on older versions of the engine, partially because the recent releases turned out to be rather unstable. Of course they still have the dark theme locked away 💩

Here’s how I reverse engineered Unity to get the dark theme without spending 1.8k a year:
(I’m not saying you SHOULD follow these steps one by one but you probably COULD…)

Note: this should work for every Unity version < 2019.4!

  • Get x64dbg
  • Create a copy of Unity.exe
  • Open the original .exe in x64dbg
  • Navigate to the symbols tab an select unity.exe in the left list
  • Enter getskinidx into the right bottom search bar and double-click the first result
  • Look for the line je (or jne) unity.XXXX... followed by xor eax, eax and jmp unity.XXXX... This jne or je instruction (depending on your version) checks if you have the dark theme enabled.
  • Right-click the line > Binary > Edit
  • At the bottom change the first number from a 74 to a 75 or the other way around and click OK
  • Click the Bandaid Icon at the top to open the Patches dialog and hit Patch File
  • Select the copy of Unity.exe
  • Close x64dbg and replace the original .exe with the copy (maybe make a backup)
  • Enjoy a life without eye strain and bad UX decisions

Hope this helps! If you’re left with any remaining questions, feel free to comment or contact me directly.