djcev.com

//


Adding airsteps to Ironwail 0.8.1

The Quake game engine does not distinguish between stair steps and walls. If the player runs into a wall (or a step) the movement code will re-try the move with the starting position one stepheight up then move the player one stepheight down to put them back on the floor. Quake 1 as shipped in 1996 only attempts this stepped move if the player is on the ground. This means that if you jump into a set of stairs and hit the vertical part of a step without landing on ground first you lose your momentum.

Later Quake games allow the player to step up even if they're in the air. Some Quake 1 sourceports implement this feature as well, often disabled by default. The feature is called an "airstep" in these engines and is typically enabled by setting the pm_airstep cvar to 1. The Quakespasm lineage of Quake engines (notably: Ironwail) do not, from what I can tell, implement airsteps.

That's an issue for me because I'd like to play the new cool singleplayer Quake mods but I don't want to get stuck on stairs. Fortunately this is easy to fix. Ironwail is used for most of these new mods & it's just a couple lines of code. Here's a quick patch for Ironwail 0.8.1 that adds rudimentary good-enough airsteps:


ironwail-0.8.1-airsteps.patch

diff --exclude Makefile -Nru ironwail-0.8.1-orig/Quake/sv_phys.c ironwail-0.8.1-hacked/Quake/sv_phys.c
--- ironwail-0.8.1-orig/Quake/sv_phys.c 2026-01-01 13:04:04.000000000 -0800
+++ ironwail-0.8.1-hacked/Quake/sv_phys.c   2026-01-20 19:17:37.866332969 -0800
@@ -865,9 +865,6 @@
    if ( !(clip & 2) )
        return;     // move didn't block on a step

-   if (!oldonground && ent->v.waterlevel == 0)
-       return;     // don't stair up while jumping
-
    if (ent->v.movetype != MOVETYPE_WALK)
        return;     // gibbed by a trigger

@@ -888,7 +885,6 @@
    VectorCopy (vec3_origin, upmove);
    VectorCopy (vec3_origin, downmove);
    upmove[2] = STEPSIZE;
-   downmove[2] = -STEPSIZE + oldvel[2]*host_frametime;

 // move up
    SV_PushEntity (ent, upmove);    // FIXME: don't link?
@@ -914,16 +910,26 @@
    if ( clip & 2 )
        SV_WallFriction (ent, &steptrace);

+   downmove[2] -= ent->v.origin[2] - oldorg[2];
+
 // move down
    downtrace = SV_PushEntity (ent, downmove);  // FIXME: don't link?

-   if (downtrace.plane.normal[2] > 0.7)
+   if (downtrace.allsolid)
+   {
+       VectorCopy (nosteporg, ent->v.origin);
+       VectorCopy (nostepvel, ent->v.velocity);
+   }
+   else if (downtrace.plane.normal[2] > 0.7)
    {
        if (ent->v.solid == SOLID_BSP)
        {
            ent->v.flags =  (int)ent->v.flags | FL_ONGROUND;
            ent->v.groundentity = EDICT_TO_PROG(downtrace.ent);
        }
+
+       if (oldvel[2] > 0)
+           ent->v.velocity[2] = oldvel[2];
    }
    else
    {



2025 Morrowind Mod List

After about 6 (!) months I recently finished a streamed playthrough of Morrowind. As finished as TES III can get anyway - the main quests of the base game and the two expansions complete. I played with around 85 mods, mostly sourced from the lists on Modding OpenMW.

After the cut you'll find a list of the mods I used with links back to nexusmods where they can be downloaded. Like the other modded game I played in 2025 I don't recommend this list. It's a better idea to pick one from modding-openmw.com and start from there.




bsd.network/@cev/115878072340415426

@cev@bsd.network's avatar image

@cev@bsd.network // / 115878072340415426 Origin link. Source file.
Tags: , .

got my second amdgpu driver "flip_done timed out" crash last night. Same behavior as before, the graphics driver goes into an unrecoverable state requiring the system to be powered off and back on. No video until the power is cycled. The system can still be accessed via SSH though and seems to be fine outside of the lack of video.

It's definitely a known issue at this point judging by the volume of reports on the freedesktop gitlab. Here's hoping there'll be a good fix for it soon.



bsd.network/@cev/115843113866528182

@cev@bsd.network's avatar image

@cev@bsd.network // / 115843113866528182 Origin link. Source file.
Tags: , , .

Picking up my Morrowind (PC, 2002) save again today at twitch.tv/andreaen. I'll be doing quests on the island of Solstheim (in the second expansion, Bloodmoon).

an island to the north (modded Morrowind pt. 26)

Bloodmoon quests up to Skaal test of wisdom

Twitch


bsd.network/@cev/115837034240940713

@cev@bsd.network's avatar image

@cev@bsd.network // / 115837034240940713 Origin link. Source file.
Tags: , , .

I'm starting to run out of disk space so I spent a few hours combining multiple Wine prefixes into one. An empty Wine 10 prefix, it turns out, takes around 800 megs on my system. So keeping a small program (say a 300 meg game) in its own prefix adds up pretty fast.

New policy, only programs that need special configuration get their own Wine prefix.



bsd.network/@cev/115818786703202775

@cev@bsd.network's avatar image

@cev@bsd.network // / 115818786703202775 Origin link. Source file.

Happy New Year!