Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
Redneckerz

New source port: Altair (SDL with OpenGL backend, Boom stuff, and more)

Recommended Posts

.... Well it started in 2019, but still.

 

Introduction:

 

fetch.php?cache=&w=642&h=507&tok=6f9e4a&

 

Altair is a new source port, created by csnxs, the alias of Sean Baggaley. Altair includes various bits from Boom together with a Quake like console, Chex Quest support and much, much more.

 

Features at a glance:

  • Quake-like console
  • High resolution support
  • Various Boom features (Patch translation, Scrolling floors, sector friction and sector pushers, Fake sector support)
  • Hexen-like jumping support
  • New IWAD detector
  • Uses FMOD Studio as sound system instead of MIDAS
  • Uses SDL (with OpenGL) as video backend
  • DirectX9 based video backend for software renderer
  • Uses a new demo format
  • Support for Chex Quest
  • Vertical looking, from Heretic
  • Mouselook support
  • Rewritten cheats code
  • Can run on Windows and Linux

 

Changelog:

Spoiler

Altair v1.02a

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

* Removed as much Windows-specific code as possible, meaning SDL is used

everywhere now.

* Added back mouse support, toggleable with the mouse_enable CVar.

* Improvements to how default bindings are handled.

* Rewrote cheats code. This removes idclev and idmus, but the code is now much

nicer. In-game cheat sequences can be toggled via cheat_enablesequences.

Altair v1.01a

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

* Reworked patch drawing code

* Various BOOM features:

* Patch translation

* Scrolling floors

* Sector friction

* Sector pushers

* Fake sector support

* New IWAD detector

* Hexen-like jumping support

* The game will no longer fatally error if FMOD fails to initialise. This

also re-enables the -nosound parameter

* New reworked compressed save format

* Sound pitch randomisation can now be toggled by the snd_randompitch CVar

* Support for Chex Quest

* Added always run support (via cl_run cvar)

* Added 3D sound

* SDL video backend was rewritten to use OpenGL. This is much faster and is

resource efficient.

Altair v1.00a (17/07/2019)

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

* New Direct3D 9 backend for the software renderer.

* New FMOD Studio-based sound backend.

* Added a console.

* Added proper Quake-like keybindings

* New demo format that is much more future-proof

* Vertical looking, backported from Heretic

* Support for higher resolutions than 320x200

* Main menu is now stretched on non 320x200 displays

* Some internal rewiring and bug fixes

 

Detailed Changes:

Spoiler

09/06/2020

* Fix default binds for vertical look

* Player weapon sprite no longer moves when looking up/down

* hginfo is now gitinfo

04/06/2020

* Added vid_fullscreen support

* Fixed a crash on high resolutions

* Fixed the header comment not being written to the config

* Removed unused MD5 code

03/06/2020

* multires.c/.h are now gone

02/06/2020

* Cheat sequences can be toggled via cheat_enablesequences

* Win32 manifest now actually works properly

* Rewrote the cheats code. This allows them to be used as console commands

and in-game key sequences using the same code. Unfortunately it sacrifices

idmus and idclev, but I plan to re-implement those as console commands at

some point.

* Fixed a couple of possible crashes in the console code

* The bundled lz4 is now gone; use your system version instead

19/05/2020

* Added a bunch of functions providing hginfo.h data, which reduces the

number of files that must be recompiled with each commit

30/04/2020

* Added mouselook support via mouse_freelook. It's not very well implemented.

20/04/2020

* Netplay now works (I don't know if it's stable though)

* Improved default binding behaviour. Default bindings are no longer re-bound

every time the game starts.

* Added back mouse support. It can be toggled with the mouse_enable CVar.

* Removed the Visual Studio 2005 projects

* Removed as much Win32-specific code as possible.

The SDL and OpenGL backend is now used for all platforms as much as

possible.

05/03/2020

* Fixed a segfault when shutting down SDL after an error while starting up

* Further adjustments to CMake install stuff

03/03/2020

* Some CMake changes for easier Debian package building

19/01/2020

* Fixed crashing on exit after a startup error

* Slight adjustment to jumping code

* Another port from Boom, hopefully to fix crash issue with headsecnode

when switching maps

05/01/2020

* Fixed crashes in release builds

26/12/2019

* SDL video backend rewritten to use OpenGL

25/12/2019

* Some missing Boom backports

09/12/2019

* Added 3D sound support

08/12/2019

* Moved DX9 shader source to /wad/

* Moved cmake module stuff to /cmake/

* Moved to hg, instead of svn.

* svninfo is now hginfo

* Compiles under MinGW now

11/11/2019

* Ported over Boom's random number generator

22/10/2019

* Added snd_status command and snd_drawoverlay variable

21/10/2019

* An error in loading music/sounds will no longer kill the sound system

entirely

* Sound now properly initialises on SDL

* A myriad of SDL input fixes

20/10/2019

* Added snd_ignorepadding

18/10/2019

* Added snd_device convar and snd_listdevices concmd

17/10/2019

* Added the missing CMakeLists.txt in lz4/

15/10/2019

* Add cl_run

* I haven't worked on this for a while - I want to get back into it,

though...

25/08/2019

* Fixed console input under SDL

* Fixed crash when loading a level on a 64-bit system

* Add con_staytime

* Fix thinker removal crashing, backported from Boom

* The console now has a proper input cursor

* The console now supports up to 32 lines of history

23/08/2019

* Replaced console font with Proggy

21/08/2019

* Added Chex Quest IWAD detection

20/08/2019

* Relicensed from the GPLv3 to the 3-clause BSD license. This is to avoid

license issues with FMOD and any other potential conflicts.

07/08/2019

* Doom secret sectors are now mapped to Boom generalised secrets

* A message is now displayed and a sound is played when a secret is

discovered

* The game now errors out if the player mobj fails to spawn

04/08/2019

* Added save support for Boom features

03/08/2019

* The save format is now compressed with LZ4

* Removed WAD reload functionality, as it was pretty useless

02/08/2019

* The name of the game currently being played is displayed in the window

title

* Removed detection of IWADs via MD5 (it was unnecessarily slow,

unsurprisingly)

01/08/2019

* Added Boom fake sectors support

* Added W_MergeBlocks, allowing PWADs to properly define anything that goes

between markers (sprites, flats)

28/07/2019

* Removed d_french.h, clean up dstrings.h

* Removed -statcopy

* Reworked input a bit, should be less buggy under Win32

* toggleconsole now bound to ` by default

* Added actual MT_PUSH/MT_PULL support

27/07/2019

* Fixed up GCC warnings

26/07/2019

* Console will use CONBACK as the background if available, and falls back to

TITLEPIC

* Some more screen code adjustments

* Started recording an actual per-version changelog

* Reworked the save format. Currently it's essentially a Doom format save in

a fancier header - but it's futureproof.

* Sound pitch randomisation can now be toggled by the snd_randompitch CVar

25/07/2019

* The game no longer fatally errors if FMOD fails to initialise.

* Added back -nosound

* Some fixed for SDL backend again

* m_stream should now be endianness-aware. Untested, of course (who the fuck

has a big-endian machine nowadays) but should work.

* Altair now compiles as C++. For some reason wall texture drawing horribly

breaks when you do so, though...

24/07/2019

* Re-worked patch drawing code

* Added patch translation, like Boom.

* Added Hexen-like jumping, and enabled movement midair. However you can now

move at ridiculous speeds by holding jump...

23/07/2019

* Started work on porting some Boom features:

* Ported line scroll actions

* Ported sector scroll, pusher, and friction actions

* I started (and essentially finished) work on these on the 19th, but

ran into a bug with sector scrollers that took me an embarrasingly long

time to figure out: a test map would just throw the player at the wall,

even though none of the scrollers were fast enough to do that. Turns out I

forgot to copy some code for P_UnsetThingPosition and it was applying the

scroll effects for *all* scrolling sectors in the map at the same time.

Oops...

* Greatly sped up console background generation

22/07/2019

* Very basic untested support for CMake's install stuff

21/07/2019

* A tiny bit of cleanup in d_iwad.c

* Fixed building under Linux

18/07/2019

* IWAD detector now checks the EXE directory and $DOOMWADDIR

17/07/2019

* Rewrote the sound system. Now uses FMOD Studio, instead of shitty old

MIDAS.

* Added snd_reinit command

* Removed those startup headers

* Some more various tweaks...

* Added a new IWAD detection mechanism.

16/07/2019

* Console background is now a dimmed version of the titlepic

* Reworked v_video to use screen_t *s instead of of screen numbers

* V_DrawPatch reworked a bit

* Moved I_*Screen functions to i_video.h, where they belong

* Removed useless redness parameter in I_SetPalette

* Added V_DrawStretchedPatch

* V_DrawPatchInDirect uses V_DrawStretchedPatch to scale a patch on

non-320x200 resolutions.

* Fixed title screen crashing on WADs without a HELP2 lump

* Now explicitly warns about playing vanilla Doom demos

13/07/2019

* Some code cleanup again

* M_Malloc and co use _malloc_dbg etc on win32 debug builds

* All remaining uses of gamekeydown are now console commands

(slot, demo_stop)

* Fixed gamma being 0 on first run

12/07/2019

* New demo format, incompatible with old original Doom demos however

07/07/2019

* Added new gamma correction code

04/07/2019

* Added an SDL backend and Linux support. Currently doesn't work very well

on 64-bit systems, and crashes when loading a map.

03/07/2019

* Display the version in console

* Added endgame, toggleconsole ccmds

* Added a warning comment header to altair.cfg

* Fix binds double-pressing

* Added Heretic vertical looking

02/07/2019

* Fixed the +speed action

* Added an SVN revision information generator

23/06/2019

* Removed the modified game warning

22/06/2019

* Ported all Doom defaults options to CVars

* Moved M_Malloc and friends to m_alloc.c/h

* Replaces all usages of malloc and friends with M_Malloc

21/06/2019

* Added proper keybindings

* Ported some options to CVars (showmessages kinda broke right now)

20/06/2019

* Start work on actions/keybinding code

19/06/2019

* Added semi-functioning fullscreen

* Added vsync

* Added new commands dumpheap and error

18/06/2019

* Added CVars.

* Added proper text input handling, which respects keyboard layouts and

actually handles modifiers correctly

* New console font

17/06/2019

* Added command parsing, and some basic commands.

16/06/2019

* Screen wipe time is now faster on larger screens

* Added screenshot function

* Removed more useless rcs stuff

14/06/2019

* Removed useless #pragma interface/implementation directives

* Now licensed under GPLv3. Updated file copyright headers accordingly

08/06/2019

* Added a Direct3D 9 renderering backend, for putting stuff on the screen.

Currently only supports 8-bit video. One day it'll support 24/32-bit.

05/06/2019

* Started work a console, ported from Quake 2

 

Downloads:

Edited by Redneckerz : I.R Dumb: I do not know for certain if its based on Linux Doom or ZDoom.

Share this post


Link to post
1 hour ago, Redneckerz said:

Uses FMOD Studio as sound system instead of MIDAS

What, is it based on ZDoom 1.12?

Share this post


Link to post
5 minutes ago, Gez said:

What, is it based on ZDoom 1.12?

I can't find evidence of that, other then that the author switched to FMOD.

 

That said, i can't find any specific reference to Linux Doom either - I did some digging in the source code on GitHub but obviously that's where my familarity ends. Ill edit the OP because i simply can't be sure after my initial assumption.

Share this post


Link to post

It's just that early ZDoom is the only port I know of that used MIDAS. The released source code had its sound system gutted out. Boom used Allegro. I haven't looked into what DOSDoom used, though.

Share this post


Link to post
21 minutes ago, Gez said:

It's just that early ZDoom is the only port I know of that used MIDAS. The released source code had its sound system gutted out. Boom used Allegro. I haven't looked into what DOSDoom used, though.

Found some stuff in the readme, it specifically mentions Vanilla Doom and not ZDoom. It does pull a lot of code from Quake 2.
 

Spoiler

Differences to vanilla Doom:
 * New Direct3D 9 backend for the software renderer.
 * New FMOD Studio-based sound backend.
 * Added a console.
 * Added proper Quake-like keybindings
 * New demo format that is much more future-proof
 * Vertical looking, backported from Heretic
 * Support for higher resolutions than 320x200
 * Main menu is now stretched on non 320x200 displays
 * Some internal rewiring and bug fixes
 * Various modding features from Boom: patch translations, scrolling floors,
   sector friction, sector pushers, fake sector support
 * Hexen-like jumping
 * New save format, with compression
 * Chex Quest support
 * Support for always run, via cl_run CVar
 * 3D sound

Credits:
 Sean Baggaley          Developer of Altair and its additional features
 id Software               Developed the original Doom and released its source code. Also developed Quake 2 which Altair adapts many bits of code from.
 Raven Software         Developed Heretic, from which Altair adapts some features.
 Firelight Technologies Developed FMOD Studio, which Altair uses as its sound and music library.
                
 And anyone else I may have forgotten.

 

Share this post


Link to post

Update:

Ive tested 1.01a out:

  • Its surprisingly smooth and solid using the DX9 software (shader based) backend on my infamously lame rig. At highest resolutions, i was definitely at 60 fps.
  • Feels rather stable. Not a single issue so far.
  • It needs a specific DX9 dll to start.
  • It definitely has a charm all of its own when playing.

Altair definitely has some potential with its alternative feature set compared to other lesser known ports out there.

Share this post


Link to post

What bothers me most with this port is the copyright attribution. Not only did he swap out the GPL header with a BSD 3-clause one, only mentioning the GPL in a global license file, he also used one that only gives credit to himself and id software, but there's clearly code in there from other sources, like Boom and some minor things from older ZDoom versions. But thanks to his blanket erasure of copyrights and credits nothing can be traced to its origin.

And then he combines this with FMod which is a library that most definitely cannot be combined with the GPL.

Share this post


Link to post
3 hours ago, Graf Zahl said:

What bothers me most with this port is the copyright attribution. Not only did he swap out the GPL header with a BSD 3-clause one, only mentioning the GPL in a global license file, he also used one that only gives credit to himself and id software, but there's clearly code in there from other sources, like Boom and some minor things from older ZDoom versions. But thanks to his blanket erasure of copyrights and credits nothing can be traced to its origin.

And then he combines this with FMod which is a library that most definitely cannot be combined with the GPL.

 

Hence why GZDoom also swapped it back when it transitioned to GPL.

 

According to an opened issue by the author in the Git repo, he wants to swap it out for something else in the future, but doesn't seem to be aware that until then, FMod is still incompatible with GPL - and there's the other issues. Maybe we should just inform him?

Share this post


Link to post

This is how the author presents his source port on his GitHub repository. Now, what should I think about it?

 

image.png.aff96077995a43db12031d029ab0d70a.png

Share this post


Link to post
On 7/18/2020 at 3:01 AM, Graf Zahl said:

What bothers me most with this port is the copyright attribution. Not only did he swap out the GPL header with a BSD 3-clause one, only mentioning the GPL in a global license file, he also used one that only gives credit to himself and id software, but there's clearly code in there from other sources, like Boom and some minor things from older ZDoom versions. But thanks to his blanket erasure of copyrights and credits nothing can be traced to its origin.

And then he combines this with FMod which is a library that most definitely cannot be combined with the GPL.

I've filed a bug about this. Probably it's just an innocent mistake - most people just don't know about all the intricacies of software licensing.

Share this post


Link to post

Hi, I'm the fool behind Altair. I would rather not have my barely functional side project that I barely ever work on announced to the world right now, and I'd have preferred it stay a dumb joke between friends...

 

This topic makes it seem like Altair has a GL renderer, it doesn't; it only uses GL to throw the output of the software renderer on the screen.

 

On 7/9/2020 at 11:00 AM, Gez said:

What, is it based on ZDoom 1.12?

They're both based on the archaic NTDOOM (I wanted a base that was vanilla and original as possible but I could compile without screwing about too much), barely any code remains of it tho

 

On 7/18/2020 at 8:01 AM, Graf Zahl said:

What bothers me most with this port is the copyright attribution. Not only did he swap out the GPL header with a BSD 3-clause one, only mentioning the GPL in a global license file, he also used one that only gives credit to himself and id software, but there's clearly code in there from other sources, like Boom and some minor things from older ZDoom versions. But thanks to his blanket erasure of copyrights and credits nothing can be traced to its origin.

Licensing is certainly a clusterfuck that needs to be resolved, I will have to have a look at solving this whenever I next decide I'm interested in working on this (as I mentioned, this is just a dumb side project I barely ever work on)

 

On 7/18/2020 at 8:01 AM, Graf Zahl said:

And then he combines this with FMod which is a library that most definitely cannot be combined with the GPL.

FMOD is just a temporary thing until I can be arsed to implement something better, I am well aware of how much of a licensing nightmare it can be

 

But yeah, I would rather I had been able to announce this port on my own accord when it was ready, if ever, instead of someone announcing it for me - perhaps it would've been in a more presentable state...

Share this post


Link to post
40 minutes ago, AOSP said:

Hi, I'm the fool behind Altair. I would rather not have my barely functional side project that I barely ever work on announced to the world right now, and I'd have preferred it stay a dumb joke between friends...

 

This topic makes it seem like Altair has a GL renderer, it doesn't; it only uses GL to throw the output of the software renderer on the screen.

Its a bit crappy worded but i figured it was a backend, not a full on renderer.

40 minutes ago, AOSP said:

They're both based on the archaic NTDOOM (I wanted a base that was vanilla and original as possible but I could compile without screwing about too much), barely any code remains of it tho

 

Licensing is certainly a clusterfuck that needs to be resolved, I will have to have a look at solving this whenever I next decide I'm interested in working on this (as I mentioned, this is just a dumb side project I barely ever work on)

 

FMOD is just a temporary thing until I can be arsed to implement something better, I am well aware of how much of a licensing nightmare it can be

So it is definitely NTDoom/ZDoom 1.12 based. Interesting :)

40 minutes ago, AOSP said:

But yeah, I would rather I had been able to announce this port on my own accord when it was ready, if ever, instead of someone announcing it for me - perhaps it would've been in a more presentable state...

I mean, i would not have reported on this if it was not interesting - There is a lot of ports on Github i simply don't bother mentioning because they either are a port to unique platform but it is Linux Doom, or its simply a fork to add one simply feature that could be pushed as a commit instead.

Excusing myself for reporting, i have to say i covered it because your port does enough new things to warrant coverage. And, for what it is worth, when i tested it, i found it rather stable and high performing. 

 

So whether it is a joke or not, It still has an interesting premise, despite the legalese cheese. It is worth covering, and that's why i made the thread :)

Share this post


Link to post

TBH, I think you should learn a little lesson from it. While I definitely can see your enthusiasm behind this, I really think you should *ASK* first, before announcing someone else's project to the world. This should be up to the project's maintainer to decide. Not everything that is publicly available is meant to be presented without the author's agreement.

 

 

 

Share this post


Link to post

It's also a lesson to learn for @AOSP: Once you push your project to Github, it *is* public - the mere fact that nobody has yet *discovered* it makes no difference. And removing or changing the license of copyrighted code at will is not a joke!

Share this post


Link to post
23 minutes ago, fabian said:

Once you push your project to Github, it *is* public - the mere fact that nobody has yet *discovered* it makes no difference.

Indeed, but I think unexpectedly announcing it for me on Doomworld upon discovering it is a bit much!

 

26 minutes ago, fabian said:

And removing or changing the license of copyrighted code at will is not a joke!

I didn't mean to, honest! Just an unfortunate side effect of my naivety D: I'll sort it out at some point.

Share this post


Link to post
32 minutes ago, Graf Zahl said:

TBH, I think you should learn a little lesson from it. While I definitely can see your enthusiasm behind this, I really think you should *ASK* first, before announcing someone else's project to the world. This should be up to the project's maintainer to decide. Not everything that is publicly available is meant to be presented without the author's agreement.

Thing is i didn't really announce anything. But yeah due to the title i can see why this is thought.

That being said, i also agree with @fabian - This was public, it was in development since 2019, so i thought it was atleast somewhere in terms of development. When a port is brand new, i would obviously think twice.

Ultimately, yeah, it should have been asked prior - Or even better, i should have filed a report similar to Fraggles concerning licensing issues. This is not usual conduct on my end, i simply assumed that public = elligible for coverage. Especially when there was also a seperate website :P 

But assumptions are the worst of all fuck ups, after all.
 

10 minutes ago, AOSP said:

Indeed, but I think unexpectedly announcing it for me on Doomworld upon discovering it is a bit much!

Consider it a compliment - Your port was interesting enough to announce :P Whatever you are doing with this work, just know that atleast one user was/is enthusiastic about it :) Its not often to find out about a new port that seeks its own way in terms of features, if you know what i mean.

10 minutes ago, AOSP said:

 

I didn't mean to, honest! Just an unfortunate side effect of my naivety D: I'll sort it out at some point.

Thank you in advance for the good standing and noting here :) 

Ill see if i can get this topic locked.

Share this post


Link to post
Guest
This topic is now closed to further replies.
×