Robert Sundling

@robertsundling.bsky.social

Solo game dev and retro enthusiast, making indie games since the DOS days. Currently working on RASDAN, a DOS/VGA game I started in 1996 and never finished. It's still for DOS! Why not? Madison, Wisconsin, USA, Earth, Sol System, Milky Way, The Universe.

Introducing Mocha! He’d been at our local Humane Society for three months without being adopted before we found him. He’s 11, super cuddly, and loves people so much. Every morning he wakes up SO HAPPY to find we’re still here and runs to us with his tail wagging and thumping against anything nearby.

Bild

Bumped up GCC to 16.0.1 for my DOS game engine today; making sure I'm reading for the impending release of GCC 16.1. To get the cross compiler built, I only needed one minor new patch (adding "struct timespec" to time.h) for this to work over GCC 15.2.

DOS command prompt showing the output of rasdan --info. It reports “RASDAN: Build 6312 (05 Apr 2026 03:50:27 PM CDT), 32 bits,” compiled with GCC 16.0.1 (experimental, C++26/C23) and NASM 3.01. CPU is identified as “GenuineIntel,” family 5, model 4, stepping 3, with FPU, TSC, and MMX support. Memory shows 15,200,440 bytes available, largest block 14,712,832 bytes, base address 00400000h, page size 4096 bytes, FAT DS hack conventional memory mapping, and a 65,024-byte transfer buffer. Prompt returns to D:\RASDAN>.

I feel like maybe 10% of my life is now spent charging batteries. It increases every year. It didn't used to be this way. Remember when you didn't have to charge your game controller or your mouse or your flashlight or your snowblower or your book? I'm not sure if this is better or worse.

Well, that was short lived. 😢 The second time I went to power on my Commodore 64 Ultimate, my monitor insists there‘s no HDMI signal detected. Tried multiple monitors, TVs, and a receiver; all say the same thing. Tried the Commodore+N trick while booting; no difference. Anyone have any tips?

I finally gave in and upgraded to the new Alexa so that we could turn multiple lights on or off with one command. For some reason, after every response she now adds “Don’t worry, Bob. Everything is under control.” It’s quite disconcerting. I’m definitely feeling that things are NOT under control.

My wife and I had a fun time playing Utopia on our new “Intellivision Sprint” this weekend. I hadn’t played it in almost 40 years; she hadn’t played it ever. Unlike many other Intellivision games, it really still holds up as-is! I have a feeling we’ll become evenly matched pretty soon.

Screenshot from Mattel Intellivision game “Utopia” where the game is over. The player on the left has won (with 3665 points to 2611 points) and also has a ridiculous number of fishing boats.

@patbiosteamist.bsky.social Did you see that Walgreens has a Respiratory Illness Index Tracker again? It says it's updated once a week. The last update was November 8. It's different from their old one. Don't know if it's useful or not. It's *something*.

Respiratory Illness Index | Walgreens

Track flu and COVID-19 with our Respiratory Illness Index map. Get local updates and find links to virtual care, and vaccines and testing at a Walgreens near you.

walgreens.com

In 1998, I wrote a NewtonScript bytecode disassembler and package dumper for my own use, so that I could create patches for Apple Newton software. Today, I dusted it off, built a shiny new Makefile for it for modern systems, and am releasing it as open source on GitHub. Enjoy!

GitHub - RobertSundling/Newton-PKGDUMP: Apple Newton Package Dumper and NewtonScript Bytecode Disassembler

Apple Newton Package Dumper and NewtonScript Bytecode Disassembler - RobertSundling/Newton-PKGDUMP

github.com

Throwback Thursday: The first thing I did when I got a car with a USB port was see if I could connect a floppy drive to it to play music. I could! Granted, I did have to build a custom disk image by hand, since the floppy disk had to be formatted as if it were an SD card and not a floppy.

A hand holding a black external USB floppy disk drive inside a modern car. The car’s infotainment screen shows the song “Making Flippy Floppy” by Talking Heads from the album Speaking in Tongues playing, with the source labeled “FLOPPY.” The screen displays the album art and playback controls, while the lower console shows a message indicating the climate control is switched off.

It's time! After 33 years, I'm adding Gravis UltraSound support to my DOS game engine. 😄 I never owned a GUS back in the day, so it never happened. Now I've got a PicoGUS from @polpo.org (and a great emulator from @86box.net). So off we go! Step 1A: I mirrored the final GUS SDK (v2.22) on GitHub.

GitHub - RobertSundling/GUSDK222: Gravis UltraSound, PC GamePad, and Analog Pro SDK V2.22 (GUSDK222.ZIP)

Gravis UltraSound, PC GamePad, and Analog Pro SDK V2.22 (GUSDK222.ZIP) - RobertSundling/GUSDK222

github.com

I'm testing GCC 15.2 today. I just used it to build the various test programs for my game engine for all available platforms, including DOS and Windows. Success! But it's always hilarious to me to see a test that runs at 60 fps in DOS on a 486 with a VGA run at 13,000+ fps on a modern machine.

Screenshot of a simple test of a game engine, showing 13,745 frames per second.

GCC 15.2 drops tomorrow. Got a head start today and built a cross-compiler for my 32-bit DOS apps from the 15.2 RC. It's working well so far! (It reports as 15.1.1, but that's fine. I didn't touch gcc/BASE-VER or gcc/DATESTAMP, where I could have bumped it up to "15.2.0 20250808" had I wanted.)

Screenshot snipped from a DOS application, showing:

Build target: DOS (DOS32, VGA) 32-bit
C++ compiler: GCC 15.1.1 20250801 (C++26/C23)
Assembler: NASM 2.16.03

I always end up so many levels away from what I'm actually working on. I was thinking it'd be great to remotely control my various vintage PCs from my main workstation, with them all in little windows. Now I'm investigating custom SVGA + PS/2 keyboard/mouse + power control KVM-over-IP solutions...

Making decent progress on my 640x480 to 320x240 linear mode SVGA project. I first wrote a CRTC register dumper, then examined values on a card with a 320x240 linear mode. It's pretty clear how this card does it. Next step will be to take an SVGA card without the mode and apply these same changes.

Screenshot comparing CRTC register values for a 640x480 256-color mode to a 320x240 256-color mode.
Robert Sundling@robertsundling.bsky.social · last yr.

My challenge this week is to take SVGA cards with linear VBE 640x480x256 color modes and tweak CRTC registers to turn those into linear 320x240x256 color modes. Some cards expose such a mode already, but not all. The performance gain over Mode X is worthwhile. I’ll open source what I find.

My challenge this week is to take SVGA cards with linear VBE 640x480x256 color modes and tweak CRTC registers to turn those into linear 320x240x256 color modes. Some cards expose such a mode already, but not all. The performance gain over Mode X is worthwhile. I’ll open source what I find.

"The deal is the latest development in a saga involving some of the video game industry’s lowest-paid workers. It comes after Microsoft purchased Activision Blizzard, Raven Software’s parent company, leaving the roughly two dozen testers to negotiate with one of the world’s largest tech companies."

These Wisconsin video game workers were first to unionize at a major U.S. studio. Three years later, they have a contract.

The deal at Raven Software in Middleton affects quality assurance testers, some of the video game industry’s lowest-paid workers. It caps a saga that included a strike and a purchase by Micro…

wisconsinwatch.org

Ullrich von Bassewitz's BGI drivers are excellent SVGA reference code. The comments are in German. As English alternatives exist, human translation may not be worth the effort, but I used GitHub Copilot to translate the comments to English for my own use. Someone else may find this useful as well.

GitHub - RobertSundling/uvb-svga-bgi-english: English language translation of Ullrich von Bassewitz's SVGA BGI drivers

English language translation of Ullrich von Bassewitz's SVGA BGI drivers - RobertSundling/uvb-svga-bgi-english

github.com