-
October 24, 2025
The more I work in various programming projects, the more I see that the majority of issues are resolved with hours of debugging resulting in one- or two-line changes. I have fixed the bug that brought me back to compiling Birthright last month. Around this time last year, I was hard at work documenting how to create and play community1 adventures in Birthright when I noticed a very disheartening issue: picking up the quest item in any community adventure would crash the game to desktop.
-
October 17, 2025
Now that we’ve released our first build, I’ve done some thinking about improvements we can make to the build process and the builds themselves to make them more useful to not only me, but also anyone downloading and using them. During my conversation with juanitogan, we touched on binary reproducibility. In theory, compiling source code should be deterministic. This means that the compilation process will produce the same output for the same input; every time.
-
October 14, 2025
The No CD Fix When I briefly looked at removing the CD requirement before my last post, it seemed fairly straight forward until I noticed there was a InstallationType variable that changed a bit of behavior in a few places. I figured this could be a source of issues if the CD were suddenly no longer available. To explain why, let’s cover a bit of video game history. If you’re not interested, feel free to skip to the next section.
-
October 12, 2025
Now that we’ve compiled Birthright: The Gorgon’s Alliance, it’s time to get everything of consequence into version control so we can manage and update the code effectively. Based on some of the batch files included in the source leak, it seems likely that Synergistic saved changes in ZIP files. While that was potentially a reasonable approach at the time, based on the tools available, it’s definitely not a good idea today.
-
September 30, 2025
Somehow, it’s been over a year since we started Rebuilding Birthright. In that time, I’ve almost finished BRUT, the Birthright Resource Utility for viewing, modifying, and extracting files from Birthright’s resource files. I’ve also done enough research to put together the beginnings of a Birthright Modding Reference for creating custom adventures.
Unfortunately, I’ve run into a bug. The game crashes when picking up the quest item (the item that marks the adventure complete) in custom adventures.
-
October 11, 2024
In my last post, I mentioned that the main Doom map editors don’t have any way of loading Birthright textures. This can be fixed by creating a PWAD with all of the textures from TEXTURES.RES. As I shared in The Case of the Missing PCX Palettes, we’re able to submit PCX files to Birthright’s resource files, but we’re not able to get them back out in their original state. A lot of information is lost when RESUTIL or BRUT convert the PCX files into Birthright’s internal bitmap format.
-
October 7, 2024
Implementing LZSS compression in BRUT is still on my task list. I’ve written out a first draft of the algorithm, which is giving me some trouble. I hope to get that implemented soon. Since I’ve been staring at assembly language far too much, I decided to dig deeper into what we know about Birthright’s adventures, especially how they’re defined, referenced, and loaded. In the future, I’ll build a reference page to make finding some of the technical information necessary for proper level building easier.
-
September 15, 2024
The BRUT project is now nearing feature parity with the original RESUTIL application, which feels fantastic. So far, the changes made by BRUT are identical to those made by RESUTIL on a binary level. The only missing feature is LZSS compression. As the test below demonstrates, overriding resources without LZSS compression is still possible.
The video is a little choppy, but that really shouldn’t be related to the compression since the game would need to decompress the images to display them anyway.
-
September 2, 2024
Today, I learned that I am not only much closer to a working decompression algorithm than I thought, but I also made a very bad assumption when starting this project—one that I could have avoided with a little more preparation.
When I start a project from scratch or start working on something at work, I plan things out beforehand. I make sure I understand the scope of the work as fully as I can before I write any code.
-
August 29, 2024
I’ve made far less progress than I was hoping. Part of the delay is just being busy with life. The algorithm isn’t really that complicated. There are some technical things about assembly language that I’ve had to relearn, like how the EFLAGS register works with bitshifting. (Specifically, the carry flag (CF) is relevant to this algorithm.) I also watched a great lecture on LZSS to understand the basics of what the algorithm was likely to do.
-
August 19, 2024
I’ve spent two or three days working on the Birthright Resource Utility (BRUt) and have managed to implement displaying the file index and exporting uncompressed files. Unfortunately, I’ve run into a bit of a problem with extracting compressed files.
For context, the resource files on the Birthright CD contain a total of 9427 files, of which 125 files (1.3%) are uncompressed. This leaves 98.7% of files unextractable. This makes the tool effectively useless.
-
August 14, 2024
For several years there has been a thread on the Birthright.net forums talking about modding Birthright: The Gorgon’s Alliance. The posts have been few and far between, but there does seem to be some interest into adding new adventures to the game.
The work that’s been done there has discovered that Birthright adventures are pieced together through a combination of resource files (.RES) in the RESFILES directory, descriptions in the TEXT directory, and level information in the WADS directory.
-
May 29, 2024
The first day involved mostly figuring out which dependencies were needed where and how to get them installed. You can read about that here.
We’re going to take advantage of the developer’s (theoretical) wisdom in building their own project and use their make command, MAKE.BAT dos:
Building RELEASE NOVA.EXE for DOS makefile(795): Error(F46): Illegal character value 1aH in file Error(E02): Make execution terminated 'grep' is not recognized as an internal or external command, operable program or batch file.
-
May 28, 2024
What? For the last few years, I’ve been hosting and updating instructions for installing a game called Birthright: The Gorgon’s Alliance. Birthright came out in 1997 and was published by Sierra On-Line, which dominated the PC game market at the time. The game was a PC adaptation of the fantasy world Birthright. Birthright was a campaign setting for Dungeons & Dragons, meaning it provided a world, lore, and some extra rules and creatures for players to roleplay in.