TerminalFury - An OpenGL Terminal Velocity, Fury3, and Hellbender source port.

mtm2 and other sensible chat
Post Reply
User avatar
StrikerTheHedgefox
Member
Posts: 20
Joined: Sun Aug 11, 2024 11:59 am
Location: Canada
Contact:

TerminalFury - An OpenGL Terminal Velocity, Fury3, and Hellbender source port.

Post by StrikerTheHedgefox »

I'm here to announce the release of Alpha 0.0.1 of TerminalFury, my source port of Terminal Velocity, Fury3, and Hellbender.

It's still very much an early alpha build, so keep your expectations low. But, I'm getting this out here so people can give this thing a try.

Link: https://shadowmavericks.com/#/projects/terminalfury.php

After 10 years of development, hopefully this will be worth it. It's a little bittersweet this release, because I didn't get everything done I wanted to get done before it. I desperately need help with this project and would love to form a team at some point, especially people with graphics programming skills (OpenGL specifically). Hopefully getting this thing out as-is will keep some time pressure off of me at least.

Image
User avatar
Kmaster
Member
Posts: 1379
Joined: Fri Oct 10, 2003 6:19 pm
Location: Valparaíso, Chile.
Contact:

Re: TerminalFury - An OpenGL Terminal Velocity, Fury3, and Hellbender source port.

Post by Kmaster »

Good job!
The screenshots looks amazing! Always nice to see that 90s TRI games still get some love. Def will try it
User avatar
Fila
Member
Posts: 1480
Joined: Mon Jul 02, 2001 2:01 pm
Location: Lost in Translation
Contact:

Re: TerminalFury - An OpenGL Terminal Velocity, Fury3, and Hellbender source port.

Post by Fila »

Hey look at that. Congrats

Gonna give this a try once I'm done with the website migration.
User avatar
Kmaster
Member
Posts: 1379
Joined: Fri Oct 10, 2003 6:19 pm
Location: Valparaíso, Chile.
Contact:

Re: TerminalFury - An OpenGL Terminal Velocity, Fury3, and Hellbender source port.

Post by Kmaster »

so i went ahead and tried TF. Installation is a short process, you just move the POD files and movies of each game that you want to play to each respective game folder. i don't know why its version 0.0.1, because it already feels very complete, and it looks amazing. I couldn't get window mode to work, other than that it's an excellent port and if it's truly only an alpha i can't wait to see what the beta would look like.
User avatar
StrikerTheHedgefox
Member
Posts: 20
Joined: Sun Aug 11, 2024 11:59 am
Location: Canada
Contact:

Re: TerminalFury - An OpenGL Terminal Velocity, Fury3, and Hellbender source port.

Post by StrikerTheHedgefox »

0.2 Alpha is out now, with some minor fixes, and a conversion of all code from C to C++, which will be important in the future.
Shockwave_S08
Member
Posts: 9
Joined: Thu Jan 15, 2026 12:53 am

Re: TerminalFury - An OpenGL Terminal Velocity, Fury3, and Hellbender source port.

Post by Shockwave_S08 »

Just wanted to say you've done an awesome job with reviving TRI's classic shooters! I'd like to offer some feedback for future versions.

On Steam Deck, some external configuration is required to get the inputs properly recognized. I copied the Xbox One profile and relabeled the filename and second-line joystickName variable to "Steam Deck Controller", and it worked buttery-smooth afterward. File's attached within a ZIP archive.
TerminalFury - Steam Deck Controller.zip
Any way to add an option to swap the pitch and throttle axes, like there already is for roll and yaw?

Will a 3D cockpit and joystick-in-hand model be added to Hellbender later on, like there already is for Terminal Velocity and Fury3?

If and when multiplayer is added, will there be an alphanumerical room-code system in use? Plenty of indie and fan games use these in lieu of dedicated servers.

Will it be possible to allow for a button to back out of menus with a single press (i.e. B button on Xbox and Steam Deck)?

Are local leaderboards and post-mortem messages planned, like in the original Terminal Velocity?

I saw that Fury3's HUD was quite cleanly upscaled, especially with the red font. Any plans to do the same for TV (and to a lesser extent Hellbender)?
You do not have the required permissions to view the files attached to this post.
User avatar
Fila
Member
Posts: 1480
Joined: Mon Jul 02, 2001 2:01 pm
Location: Lost in Translation
Contact:

Re: TerminalFury - An OpenGL Terminal Velocity, Fury3, and Hellbender source port.

Post by Fila »

Tried Terminal Velocity because it turns out I have it, very very smooth!
Shockwave_S08
Member
Posts: 9
Joined: Thu Jan 15, 2026 12:53 am

Re: TerminalFury - An OpenGL Terminal Velocity, Fury3, and Hellbender source port.

Post by Shockwave_S08 »

Saw that a new Linux build is available with v0.3 Alpha, but it instacrashes on my Steam Deck since the required dependencies aren't baked into the AppImage itself. The error I got is listed below:

Code: Select all

/usr/lib/libm.so.6: version `GLIBC_2.43' not found (required by tfury-linux_x86_64)
UPDATE: The current maximum version of GLIBC my hardware supports is 2.41. At least the Windows build still works via Wine/Proton.
User avatar
StrikerTheHedgefox
Member
Posts: 20
Joined: Sun Aug 11, 2024 11:59 am
Location: Canada
Contact:

Re: TerminalFury - An OpenGL Terminal Velocity, Fury3, and Hellbender source port.

Post by StrikerTheHedgefox »

*beep*. Not much I can do about that without installing an old distro.
User avatar
StrikerTheHedgefox
Member
Posts: 20
Joined: Sun Aug 11, 2024 11:59 am
Location: Canada
Contact:

Re: TerminalFury - An OpenGL Terminal Velocity, Fury3, and Hellbender source port.

Post by StrikerTheHedgefox »

Shockwave_S08 wrote: Thu May 14, 2026 4:30 am Saw that a new Linux build is available with v0.3 Alpha, but it instacrashes on my Steam Deck since the required dependencies aren't baked into the AppImage itself. The error I got is listed below:

Code: Select all

/usr/lib/libm.so.6: version `GLIBC_2.43' not found (required by tfury-linux_x86_64)
UPDATE: The current maximum version of GLIBC my hardware supports is 2.41. At least the Windows build still works via Wine/Proton.
Try re-downloading 0.3. I recompiled it in WSL, which is based on Ubuntu LTS 24.04, which should have a low enough GLIBC version.
Shockwave_S08
Member
Posts: 9
Joined: Thu Jan 15, 2026 12:53 am

Re: TerminalFury - An OpenGL Terminal Velocity, Fury3, and Hellbender source port.

Post by Shockwave_S08 »

No dice, got this error instead:

Code: Select all

execv error: No such file or directory
User avatar
StrikerTheHedgefox
Member
Posts: 20
Joined: Sun Aug 11, 2024 11:59 am
Location: Canada
Contact:

Re: TerminalFury - An OpenGL Terminal Velocity, Fury3, and Hellbender source port.

Post by StrikerTheHedgefox »

*beep* *beep* *beep*.

Stupid *beep* windows changed the line endings *beep* it up.

Redownload it again...

I swear trying to deploy anything on Linux is like trying to pry my fingernails up with plyers.
Shockwave_S08
Member
Posts: 9
Joined: Thu Jan 15, 2026 12:53 am

Re: TerminalFury - An OpenGL Terminal Velocity, Fury3, and Hellbender source port.

Post by Shockwave_S08 »

While the Linux build mostly works now, there are a few glaring flaws holding it back:

Selecting a controller preset doesn't work; everything must be manually rebinded.

Xbox One Controller (Linux) preset is incomplete, and once again I had to build a Steam Deck Controller (Linux) preset. Both are fixed up and attached to this post.
TerminalFury Linux - Fixed Presets.zip
Loading saves from the Windows build can result in entity placements getting severely messed up, resulting in missing terrain, absent tunnels, misplaced destructibles, and MIA enemies.

Objective description text in Hellbender doesn't show up at all, only showing the objective status as incomplete or complete.

Message display in Hellbender is delayed for several seconds, long after E.V.E. stops talking.

Destroyed reactors in Hellbender don't go up in flames as they should, seen in Planet 1-1. The bouncing debris still behaves normally.
You do not have the required permissions to view the files attached to this post.
User avatar
StrikerTheHedgefox
Member
Posts: 20
Joined: Sun Aug 11, 2024 11:59 am
Location: Canada
Contact:

Re: TerminalFury - An OpenGL Terminal Velocity, Fury3, and Hellbender source port.

Post by StrikerTheHedgefox »

Probably compiler related issues on the older base, because none of those issues occur when compiled on 26.04.
Shockwave_S08
Member
Posts: 9
Joined: Thu Jan 15, 2026 12:53 am

Re: TerminalFury - An OpenGL Terminal Velocity, Fury3, and Hellbender source port.

Post by Shockwave_S08 »

So stick with Windows version on Steam Deck, until Valve ever gets around to upgrading GLIBC in SteamOS?
User avatar
StrikerTheHedgefox
Member
Posts: 20
Joined: Sun Aug 11, 2024 11:59 am
Location: Canada
Contact:

Re: TerminalFury - An OpenGL Terminal Velocity, Fury3, and Hellbender source port.

Post by StrikerTheHedgefox »

Yeah, most likely.
User avatar
StrikerTheHedgefox
Member
Posts: 20
Joined: Sun Aug 11, 2024 11:59 am
Location: Canada
Contact:

Re: TerminalFury - An OpenGL Terminal Velocity, Fury3, and Hellbender source port.

Post by StrikerTheHedgefox »

Try redownloading one last time. It's got a hail-mary attempt to get this *stuff* fixed.
Shockwave_S08
Member
Posts: 9
Joined: Thu Jan 15, 2026 12:53 am

Re: TerminalFury - An OpenGL Terminal Velocity, Fury3, and Hellbender source port.

Post by Shockwave_S08 »

That hail-mary definitely worked, everything's behaving as it should!
Shockwave_S08
Member
Posts: 9
Joined: Thu Jan 15, 2026 12:53 am

Re: TerminalFury - An OpenGL Terminal Velocity, Fury3, and Hellbender source port.

Post by Shockwave_S08 »

Here's the fixed controller configs in text form, for ease of access. I would like to add a suggestion though: Any way to assign multiple joystickNames to a single profile in the engine, given that not only does the current system only work if a controller with a matching name is detected, but also that Steam Deck's inputs are an exact match to Xbox One?

Xbox One Controller (Linux).ini

Code: Select all

[Control]
joystickName=Xbox One Controller 
rudderAxis=4
throttleAxis=5
mapZoomAxis=0
leftTriggerAxis=3
rightTriggerAxis=6
throttleType=2
XYDeadzone=1024
ThrottleDeadzone=2048
RudderDeadzone=2048
axisSmooth=1

[Bindings]
Left Trigger=INPUT_AFTERBURNER
Right Trigger=INPUT_FIRE
Joystick 0=INPUT_BEACON
Joystick 1=INPUT_MAP
Joystick 2=INPUT_NAV
Joystick 3=INPUT_MISSILE_LOCK
Joystick 4=INPUT_MODIFIER
Joystick 5=INPUT_QUICK_MISSILE
Joystick 6=INPUT_CAMERA
Joystick 7=INPUT_OPEN_MENU
Joystick 8=INPUT_NONE
Joystick 9=INPUT_CLOAK
Hat Up=INPUT_WEAPON_PREV
Hat Down=INPUT_WEAPON_NEXT
Hat Left=INPUT_ENERGY_WEAPON
Hat Right=INPUT_ENERGY_SHIELD
Modified Hat Up=INPUT_LOOK_FORWARD
Modified Hat Down=INPUT_LOOK_BACKWARD
Modified Hat Left=INPUT_LOOK_LEFT
Modified Hat Right=INPUT_LOOK_RIGHT
Modified Joystick 0=INPUT_NAV_NEXT
Modified Joystick 1=INPUT_MAP_ZOOM_IN
Modified Joystick 2=INPUT_NAV_PREV
Modified Joystick 3=INPUT_MAP_ZOOM_OUT
Modified Joystick 6=INPUT_HUD
Modified Joystick 7=INPUT_PAUSE
Modified Joystick 9=INPUT_HEADLIGHT
Steam Deck Controller.ini (for Windows build)

Code: Select all

[Control] 
joystickName=Steam Deck Controller
rudderAxis=3
throttleAxis=4
mapZoomAxis=0
throttleType=2
XYDeadzone=1024
ThrottleDeadzone=2048
RudderDeadzone=2048
axisSmooth=1

[Bindings]
Left Trigger=INPUT_AFTERBURNER
Right Trigger=INPUT_FIRE
Joystick 0=INPUT_BEACON
Joystick 1=INPUT_MAP
Joystick 2=INPUT_NAV
Joystick 3=INPUT_MISSILE_LOCK
Joystick 4=INPUT_MODIFIER
Joystick 5=INPUT_QUICK_MISSILE
Joystick 6=INPUT_CAMERA
Joystick 7=INPUT_OPEN_MENU
Joystick 8=INPUT_NONE
Joystick 9=INPUT_CLOAK
Hat Up=INPUT_WEAPON_PREV
Hat Down=INPUT_WEAPON_NEXT
Hat Left=INPUT_ENERGY_WEAPON
Hat Right=INPUT_ENERGY_SHIELD
Modified Hat Up=INPUT_LOOK_FORWARD
Modified Hat Down=INPUT_LOOK_BACKWARD
Modified Hat Left=INPUT_LOOK_LEFT
Modified Hat Right=INPUT_LOOK_RIGHT
Modified Joystick 0=INPUT_NAV_NEXT
Modified Joystick 1=INPUT_MAP_ZOOM_IN
Modified Joystick 2=INPUT_NAV_PREV
Modified Joystick 3=INPUT_MAP_ZOOM_OUT
Modified Joystick 6=INPUT_HUD
Modified Joystick 7=INPUT_PAUSE
Modified Joystick 9=INPUT_HEADLIGHT
Steam Deck Controller (Linux).ini

Code: Select all

[Control]
joystickName=Steam Deck Controller 
rudderAxis=4
throttleAxis=5
mapZoomAxis=0
leftTriggerAxis=3
rightTriggerAxis=6
throttleType=2
XYDeadzone=1024
ThrottleDeadzone=2048
RudderDeadzone=2048
axisSmooth=1

[Bindings]
Left Trigger=INPUT_AFTERBURNER
Right Trigger=INPUT_FIRE
Joystick 0=INPUT_BEACON
Joystick 1=INPUT_MAP
Joystick 2=INPUT_NAV
Joystick 3=INPUT_MISSILE_LOCK
Joystick 4=INPUT_MODIFIER
Joystick 5=INPUT_QUICK_MISSILE
Joystick 6=INPUT_CAMERA
Joystick 7=INPUT_OPEN_MENU
Joystick 8=INPUT_NONE
Joystick 9=INPUT_CLOAK
Hat Up=INPUT_WEAPON_PREV
Hat Down=INPUT_WEAPON_NEXT
Hat Left=INPUT_ENERGY_WEAPON
Hat Right=INPUT_ENERGY_SHIELD
Modified Hat Up=INPUT_LOOK_FORWARD
Modified Hat Down=INPUT_LOOK_BACKWARD
Modified Hat Left=INPUT_LOOK_LEFT
Modified Hat Right=INPUT_LOOK_RIGHT
Modified Joystick 0=INPUT_NAV_NEXT
Modified Joystick 1=INPUT_MAP_ZOOM_IN
Modified Joystick 2=INPUT_NAV_PREV
Modified Joystick 3=INPUT_MAP_ZOOM_OUT
Modified Joystick 6=INPUT_HUD
Modified Joystick 7=INPUT_PAUSE
Modified Joystick 9=INPUT_HEADLIGHT
Post Reply