Email or username:

Password:

Forgot your password?
199 posts total
a1batross
Xash3D engine supported movie playback for a long time, but it utilizes Video for Windows API, which has downsides from obviously being closed source and Windows exclusive and requiring the user to install third-party software. It also sometimes just outright doesn't work for an unknown reason.

This time I have implemented video player using ffmpeg to the Xash3D FWGS engine, which actually was in the plan for a whopping eight years already.

The obvious improvement of using ffmpeg is a wide variety of codecs. It successfully worked with movie intros from Half-Life, Opposing Force and Paranoia mod.

But very VFW specific internal engine logic, bites me. Instead of normal playback, the engine tracks frames by itself and tries to seek over the movie stream. Seeking itself is harmless, but it makes playback very suboptimal, and some frames may be lost, which doesn't make the decoder happy. A random Bink file my friend found for me works, but it absolutely fails on VP9 streams, from refusing playing them at all or just showing random artifacts.
Xash3D engine supported movie playback for a long time, but it utilizes Video for Windows API, which has downsides from obviously being closed source and Windows exclusive and requiring the user to install third-party software. It also sometimes just outright doesn't work for an unknown reason.
a1batross
Some pretty --help output... :dopeswim:
a1batross
Did somebody ever preserve (or was it ever published?) the SVN repository of Fitzquake?

Asking for historical purposes.
a1batross
*sparkles*

This is as far as I go.
a1batross
-#define MAX_LIGHTSTYLES 64 // original quake limit
+#define MAX_LIGHTSTYLES 256 // a1ba: increased from 64 to 256, protocol limit


There is no such thing as too many lightstyles.
a1batross
On this April Fools' Day, I found myself a fool.

A few months ago, I wrote a simple program. It scans game servers list and reports anything suspicious, unexpected or if someone just tries to flood the list with curses or shady links. ;)

Despite the protocol isn't really defined, I decided to make validator especially strict. No extensions allowed! Or so I thought...

Unless our friends who maintain engine fork on old unsupported protocol suddenly decided to add an extension. And it broke validator. And validator automatically banned everyone who used that fork.
On this April Fools' Day, I found myself a fool.

A few months ago, I wrote a simple program. It scans game servers list and reports anything suspicious, unexpected or if someone just tries to flood the list with curses or shady links. ;)
a1batross
Half-Life: MMod was released just few hours ago.

Of course, I wouldn't be myself if I wasn't tried to run this mod under Xash. Moreover, mod author released a Linux port, so I don't even need to reboot to Windows or play with Wine.

First run was... almost fine if there wasn't a RED RECTANGLE OVER MY WHOLE SCREEN. I know that this can happen because of invalid HUD sprites drawing. My beloved GDB showed me a NULL pointer instead of sprite model pointer due to invalid HUD sprite index.

So I checked hud.txt, it was fine. I checked how mod runs under GoldSrc, it was fine. I ran GoldSrc under GDB and invalid index was there as well.

So I fired up Ghidra, found a function that's used to set HUD sprite model, and found out that it checks for valid index before sprite model pointer is set. I implemented similar check in Xash and BIG RED RECTANGLE was gone.

=================

But the red rectangle wasn't the only bug I fixed this night. This mod loves to showcase custom animations and cool particle effects and dlights. One of such features: our character legs in first person, was just gone.

I switched back to Ghidra and GoldSrc I left under GDB, traced all "hl1mmod_visuals_drawlegs" variable checks and after quick GDB session I found it's unusual technique to draw these legs: it's third person mode! But not actually.

The engine, before adding our player to the render list, checks if we're in third person mode. So mod author added a temporary variable, that's set to true at the beginning of each frame, and depending on its value in CL_IsThirdPerson it "lies" to the engine that we're in third person mode so our player model should be drawn but in the AddEntity call, it checks if engine was tricked and sets the variable to zero, so further Is Third Person checks are actually false.

In Xash the order of calling AddEntity and IsThirdPerson was swapped. I swapped it back and removed an additional check in the renderer, and was able to see the legs.

Thus, the current "master" version of Xash3D FWGS now runs this mod almost perfectly.
Half-Life: MMod was released just few hours ago.

Of course, I wouldn't be myself if I wasn't tried to run this mod under Xash. Moreover, mod author released a Linux port, so I don't even need to reboot to Windows or play with Wine.
a1batross
fgsfdsfgs, who previously upstreamed xash3d-fwgs Switch port, now upstreamed Vita support as well. 🥳
a1batross
Announcing clean-er re-implementation of original Valve's GUI library from Half-Life 1 under the work title `freevgui`. I'm working on it since last year in my free time of free time of free time. :)

This implementation is intended to be used within Xash3D FWGS as a drop-in FOSS and cross-platform alternative to the proprietary vgui.dll library, but potentially can be used as a replacement in Half-Life mods as well, as it's both API and ABI compatible.

Unlike Nagist's implementation, this library specifically hasn't been derived from HLSDK code, and every line of code has been carefully restored from DWARF debug information and decompilation using Ghidra.

Source code will be published as soon as I finish implementing the controls library and when I decide on licensing. For now, it has dependency on 3-clause BSD licensed C++ templates library, and C utilities library from Xash3D FWGS which is GPLv2 licensed. I'll probably drop GPL dependency to allow it included in Half-Life mods as a bug fixed replacement of original vgui code, when it will have bug fixes in the first place.
Announcing clean-er re-implementation of original Valve's GUI library from Half-Life 1 under the work title `freevgui`. I'm working on it since last year in my free time of free time of free time. :)

a1batross
So did anybody ever use walking with mouse (i.e. disabled mouse look) in Quake or Doom unironically?
a1batross
few screenshots

I don't have an RT capable card so copied it from discord channel
a1batross
So apparently you can now play Half-Life 1 with ray tracing, which isn't exactly the version I waited for with a true Vulkan renderer, but hey, it's an incredible job by a very skilled developer.

And also it's a xash3d-fwgs, I'm glad to see what people can do with our open source engine.

Download: https://github.com/sultim-t/xash-rt/releases/tag/1.0.4

(edited to reupload video with working audio)
So apparently you can now play Half-Life 1 with ray tracing, which isn't exactly the version I waited for with a true Vulkan renderer, but hey, it's an incredible job by a very skilled developer.

And also it's a xash3d-fwgs, I'm glad to see what people can do with our open source engine.
a1batross
🎉 xash3d-fwgs port for Nintendo Switch landed in upstream 🎉
a1batross
xash3d-fwgs with raytraced ref_vk runs on steamdeck... kinda

video isn't mine
a1batross
Debugging a sound canceling issue turned out to be yet another half life misused channel bug

(try to hit something with crowbar with crackling geiger counter)
a1batross
https://www.moddb.com/mods/school-2-in-novy-urengoy-recreated-on-xash3d

School building recreation demo, made in PrimeXT & Xash3D FWGS. As author says:

"This is a school project, required for admission to the 9th grade exams. Every real place has been thoroughly transferred to the game, using tons of photographic materials. Demo shows pretty impressive graphic capabilities of Xash3D FWGS engine with PrimeXT toolkit. "

For an unfinished school project, this really looks nice. Detail level is fine, although corridors feel a bit lifeless. But high chances they are empty IRL too, without kids and teachers roaming around. :)
https://www.moddb.com/mods/school-2-in-novy-urengoy-recreated-on-xash3d

School building recreation demo, made in PrimeXT & Xash3D FWGS. As author says:
a1batross
Few more screenshots. Can see how much work was put to make all these textures from photos.
a1batross
I don't know what happened here but the bug reporter guy just said it doesn't reproduce anymore
a1batross
Few another screenshots of work done using PrimeXT, running on Xash3D FWGS

Courtesy of CASPERX69X
a1batross
Merged enttools patch to new engine branch.

In old Xash fork we had a feature, which helps on debugging mods and experiment with entities called enttools.

This is basically an analogue of Source's ent_create & ent_fire, but it also has a function to query entity information back to client.

Some of our users combined it with cvar expansion extension and customizable touchscreen controls to have very basic and generic sandbox mode for every game.
Merged enttools patch to new engine branch.

In old Xash fork we had a feature, which helps on debugging mods and experiment with entities called enttools.
Go Up