Posts

  1. Ultima Underworld PSX outside a PlayStation: AbyssX

    I’ve been working on AbyssX, a C++20 reimplementation of the PlayStation version of Ultima Underworld. It is still incomplete, but it has reached a …

  2. Reverse Engineering DOS Games on FM Towns

    I’ve been reverse engineering old DOS games, and one of the biggest headaches is segmented memory. Real-mode x86 is painful to work with in Ghidra - …

  3. Infinity FM-Towns Driver

    INFINITY Co.,Ltd., a studio that ported games to the FMTowns system, used a small FMTowns graphics wrapper to assist with this. I’m actually not sure …

  4. Ghidra Lessons

    I’ve been doing a lot of reversing lately and learning a ton while doing it, I’m going to try to document and maybe share some knowledge. Segmented …

  5. MicroRules: A Tiny Expression Language for C#

    Building a domain-specific language that compiles string expressions into strongly-typed C# functions at runtime

  6. When lerp isn't linear

    You will frequently come across code in the wild that vaguely resembles this: // Most engines will provide a lerp for you T lerp(T a, T b, float t) { …

  7. Godot Plugin Tool Script Type Detection

    When you have a tool script attached to a node in Godot’s editor, it will run both while you are editing the scene, and when it is attached to the …

  8. Blender Tip 1

    In my spare time I do some hard edge modeling & level design in Blender. As anyone who has used Blender is aware, Blender is rather difficult to …

  9. Texture Blending 2(With Godot)

    This is a direct continuation of the previous post. I created a plane mesh instance which I exported to Blender for subdividing and UV coloring. We …

  10. Texture Blending(With Godot)

    We’re going to start by obtaining two textures that will showcase blending well, one texture will be approximately average height, and the other will …