Ffzap

- 3 mins read

Introduction

Recently, I had a lot of videos to re-encode to save storage space. After some googling, I found that there isn’t a good way to run multiple FFmpeg processes in parallel or even perform batch processing efficiently.

Most solutions involved batch and shell scripts. Having to copy, paste, and potentially debug them didn’t satisfy me. Additionally, controlling output options like filenames, extensions, and directory structures is theoretically simple, but it often requires adjusting the script every time. Thus, the idea of ffzap was born. Initially called MTC (Multithreaded Transcoding CLI), I later settled on ffzap to highlight the two most important aspects of the tool: using FFmpeg under the hood and emphasizing zap (as in speed or quickness).

It ain't stupid if it works

- 6 mins read

How I somewhat got around my shitty DSL download speeds

Recently I reset my computer because it was unbearibly slow from time to time. I wiped all my harddrives and re-installed Windows 11. When I re-installed the first game from my Steam library, Baldur’s Gate 3 which clocks in at around 150 GB download size, it hit me: my internet sucks. With a measly 70 Mbps download, it would take me almost 5 hours to download the game and that is just one of the many games I wanted to install.

How to remove the Statement / Theme Banners from YouTube

YouTube banner in question

After years of these super annoying YouTube banners, I hacked together a little script that removes them from the DOM upon finding one.

To run this, you need to install something like Tampermonkey (available for Firefox and Chrome) and create a new userscript with the following code:

// ==UserScript==
// @name         Fuck YouTube Theme banners
// @namespace    https://codef0x.dev
// @version      1.0
// @description  Removes YouTube Theme banners
// @author       Tobias "CodeF0x" Oettl
// @match        *://*.youtube.com/*
// @grant        none
// ==/UserScript==

(() => {
    // remove on initial page load
    removeBanner();

    const target = document.querySelector('#content');

    const config = { attributes: false, childList: true, subtree: true };

    const callback = (mutationList, observer) => {
        removeBanner();
    }

    const observer = new MutationObserver(callback);
    observer.observe(target, config);
})();

function removeBanner() {
    const banner = document.querySelector('ytd-statement-banner-renderer');
        if (banner) {
            banner.parentElement.removeChild(banner);
        }
}

If you found an issue or a way to make it not run a thousend times when you just hover your mouse about something, add a comment on GitHub. You can also add a comment if the script stopped working due to YouTube doing some breaking changes.

Import Witcher 3 save games from GOG to Steam in Linux Proton

I recently bought Witcher 3: The Wild Hunt on Steam and wanted to import my savegames from the GOG version. In Windows, that’s easy: install the Witcher 3 on Steam, boot it up and press continue; your savegames will be there, as they’re saved in Users\you\Documents\The Witcher 3 and both games use that location to store their savegames at.

Fix Lagging Darksouls3 Linux

- 1 min read

The issue

Dark Souls 3 can be pretty laggy when running with Proton on Linux. According to my FPS counter, it would run at a constant 60 FPS (it’s locked to 60 by the game), but it didn’t feel like 60 FPS at all. Sometimes I even had very noticable lag spikes.

The solution

To fix this issue, create a file called dxvk.conf in the root directory of your Dark Souls 3 installation.

Fix Ark Proton Stuttering

- 1 min read

Foreword

If you have an NVIDIA GPU, you can try my other fix for stuttering games under Linux Proton. Maybe that fixes it. If that didn’t fix it or you have an AMD GPU, keep on reading.

Editing ARK’s launch options via Steam

Inside your Steam library, do the following:

  • right-click on ARK: Survival Evolved
  • click on “Properties”
  • paste RADV_PERFTEST=aco %COMMAND% in the input field below “Launch Options”
  • close out the window with the x-button

That should be it.

Steam Proton Shader Cashing

- 1 min read

Disclaimer: This only works for NVIDIA cards!

When I first tried out Steam’s Proton support, I noticed that DOOM Eternal wasn’t running smooth at all. I would be at a constant 75 FPS according to my FPS counter, but I still experienced a lot of stutters / micro lags while playing.

How I fixed the stuttering issue

  • create a directory for the games to cache their shaders, e. g. /home/you/Shaders
  • declare the following environment variables:
    • __GL_SHADER_DISK_CACHE_SKIP_CLEANUP and set it to 1
    • __GL_SHADER_DISK_CACHE_PATH and set it to the path of your earlier created shaders directory

However, this only fixes it for your current session. To make the fix persistent throughout system reboots, add these two lines to your /etc/profile file, respectively the file your shell uses.