Blog
Feed Archives-
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 usesfinalize
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