/dev/urandom's dev site

Thoughts on differences between Western and Japanese home computer markets

Okay, so last month (December of 2025), I saw a few screenshots of PC-98 games and went wondering: “in comparison, why do Western home computer games of the same era (the kind that you’d see on an Amiga or Atari ST) tend to be so ‘meh’-looking?”, in comparison to both console games of the same era and PC games that would come out shortly after games like DOOM would prove the PC was actually a viable mainstream gaming platform?".


on OS user interfaces

A lot of the time, our preferences for what an OS user interface should look like come down, ultimately, to either nostalgia or past experiences. Someone gets annoyed at a UI change and their instinctive reaction is to assume that whatever “the old way” was, was inherently better.

This especially applies to people who use Linux (or any of the BSDs, but for purposes of this page, I’ll refer to any of the “free desktops” as Linux), since it is rarely ever their first operating system – usually they started off with either Windows or macOS, and picked up habits and assumptions from that.


gxter, a GXT file utility

I have recently developed a small library and command-line utility in Rust that opens and creates GXT files from older Grand Theft Auto games. GXT files (description of format) are binary-based lists of localizable text strings that are used both by the game’s executable and all the game/mission scripts. Since the games are meant to be released in different languages, using a separate format for storing strings makes sense.

The program supports, and was tested on, files from GTA III, Vice City and San Andreas, and should also work with the “Stories” games, which are based on Vice City’s engine.


shogi move parser

I’ve decided to write a little script using JS that reads a Japanese notation for a move in shogi and tries to convert it into English.


ascii table

A table describing the ASCII character set.

midnight commander subshell bug

After updating Alpine Linux on my VPS to version 3.14, I noticed that Midnight Commander (mc) crashed with a segmentation fault around 90% of the time, and at other times it ran, but refused to accept any input.

At first, I thought that it had to do with the OS update itself and something was wrong with the version of mc or some other package built in Alpine, so I tried building mc with ncurses instead of slang as it was before, but to no effect. To make matters worse, the bug disappeared when I tried to trace it in strace or valgrind.


rnd's doom page

Out of all PC games that have been around for decades, id Software’s DOOM is probably one with the largest longevity. People still make new levels for it, write new engines and modifications for it, and do speedruns for it under a variety of conditions, with new records still being broken every now and then. For almost every piece of hardware which can output graphics and run code, there have been attempts to port or clone DOOM, with “It runs Doom” becoming a popular internet meme.


linux framebuffer palette switching

Just like graphical terminals such as urxvt, the Linux framebuffer has an option to change the built-in palette. Distributions like Ubuntu use it to make the palette look nicer during bootup.


cuda debugging notes

So, turns out, when you run a program that uses CUDA, either directly or indirectly (my program runs on CUDA, but uses OpenCL instead), there are issues preventing libasan from working. More specifically, if you run a program with libasan, the CUDA libraries will not work, and the OpenCL ones will not display an NVIDIA platform as available in the first place.

From my experience, seems like there are similar issues preventing Valgrind from working, either.


irssi tips and tricks

Recently found myself using irssi on a setup that’s slightly unusual, so I’m recording the information I found useful for posterity.

  • To switch windows, use Alt + number keys for windows 1-10, or Alt + top row (qwertyuiop) for windows 11-20.

  • Alt+Left / Ctrl+p and Alt+Right / Ctrl+n switches to the previous or next window respectively. It loops around from first to last or vice versa.

  • The script revolve is useful, since it compresses consecutive joins/leaves onto a single line. Useful for channels where there’s not a lot of activity.