Posts
-
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 …
-
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 - …
-
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 …
-
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 …
-
MicroRules: A Tiny Expression Language for C#
Building a domain-specific language that compiles string expressions into strongly-typed C# functions at runtime
-
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) { …
-
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 …
-
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 …
-
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 …
-
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 …