Redneckerz Posted July 9, 2020 (edited) .... Well it started in 2019, but still. Introduction: 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: Latest version available: 1.01a, 32 bit Source code Directory with additional files Settings page Github page Edited July 9, 2020 by Redneckerz : I.R Dumb: I do not know for certain if its based on Linux Doom or ZDoom. 7 Share this post Link to post
Gez Posted July 9, 2020 1 hour ago, Redneckerz said: Uses FMOD Studio as sound system instead of MIDAS What, is it based on ZDoom 1.12? 0 Share this post Link to post
Redneckerz Posted July 9, 2020 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. 0 Share this post Link to post
Gez Posted July 9, 2020 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. 0 Share this post Link to post
Redneckerz Posted July 9, 2020 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. 0 Share this post Link to post
Redneckerz Posted July 17, 2020 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. 0 Share this post Link to post
Kronecker–Capelli Posted July 17, 2020 On 7/9/2020 at 11:48 AM, Redneckerz said: Quake-like console What? 0 Share this post Link to post
Redneckerz Posted July 18, 2020 2 hours ago, Kronecker–Capelli said: What? A console prompt similar to the one found in Quake. 0 Share this post Link to post
Graf Zahl Posted July 18, 2020 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. 0 Share this post Link to post
seed Posted July 18, 2020 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? 0 Share this post Link to post
axdoomer Posted July 19, 2020 (edited) This is how the author presents his source port on his GitHub repository. Now, what should I think about it? 1 Share this post Link to post
fraggle Posted July 20, 2020 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. 5 Share this post Link to post
AOSP Posted July 20, 2020 (edited) 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... 3 Share this post Link to post
Redneckerz Posted July 20, 2020 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 :) 0 Share this post Link to post
Graf Zahl Posted July 20, 2020 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. 4 Share this post Link to post
fabian Posted July 20, 2020 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! 9 Share this post Link to post
AOSP Posted July 20, 2020 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. 1 Share this post Link to post
Redneckerz Posted July 20, 2020 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. 0 Share this post Link to post