Blog

  • Patching between every possible combination of IWAD versions as fast as possible

    Not too long ago I added an automatic test suite to Omniscient, my graphical Doom IWAD patching utility. This test suite performs every single permutation of patches, and outputs the results in a JUnit XML file. Wired up to my Jenkins instance this allows me to spot when I break stuff pretty quickly, and is especially useful in determining when specific patches break.

  • Back from the dead

    Here’s one of my favourite Java tricks when working with native libraries with manual memory management. To free native resources in tandem with the garbage collector you can use finalize(), but finalizers run on a separate thread owned by the GC, which is problematic for some libraries like OpenGL where a context can be used by one thread at a time and it’s annoying. So this trick uses finalize to revive the object just so it can have its native resources deleted on the main thread before letting the GC actually take it:

  • Meta Quest Move Overlay

    By just pressing one button, you too can turn your Quest 2 into an unusable laggy mess:

  • Some Linux woes

    I’ve been playing with Linux on my main machine again, because Windows as a development environment annoys me and my MacBook Pro, while I love it, won’t be replacing my big machine any time soon for a number of reasons. I discovered recently that Ubuntu 22.10’s latest kernel breaks my sound card. This is my /proc/asound/cards on 5.19.0-31-generic:

  • Wii U update

    USB storage

  • I bought a Wii U

    Mario Kart 8 not included, unfortunately

  • 1
  • 2