Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
Sign in to follow this  
Blastfrog

What's the difference between Final Doom 1.9 and Linux Doom 1.10?

Recommended Posts

You mean, aside from the fact that one is for DOS and one is for Linux?

  • Linux Doom 1.10 is based on Ultimate Doom 1.9, not Final Doom 1.9 (yes, they're actually completely different versions (and so is Doom II 1.9), to the point where some demos will desync when played back with a different version 1.9 EXE, even if identical IWADs are used). The only difference between Ultimate Doom 1.9 and Final Doom 1.9 that I can remember is that teleporters don't set your z-coordinate in Final Doom, causing you to be teleported into the air if departure point is higher than the arrival point.
  • The sky never changing in Doom II is fixed.
  • A different sound library was used since the DOS one used a proprietary license. A bunch of sound code got rewritten for the new library, which introduced a new bug into the special sound handling on level 8. In vanilla, the effect is simply that sounds are never cut off as a result of extreme distance (or even from setting the sound volume to zero), instead they become very quiet instead of completely silent. In Linux Doom, sounds actually get louder with distance, unless the sound volume is at maximum, in which case sounds are played at full volume regardless of distance.
  • Some movement functions use floating point instead of fixed point calculations, which in some cases can cause demo desyncing.
They're all the differences that I know about.

Share this post


Link to post
chungy said:

Not definitive but: http://doomwiki.org/wiki/Versions_of_Doom_and_Doom_II#Source_release

Probably the easiest way to figure out is to look at the Chocolate Doom commit history. You'll have to sort out changes related to registered/Doom 2 and Ultimate Doom compatibility and Final Doom itself.

This is a pretty good list. In case it's not common knowledge: the source code was "cleaned up" before release by Bernd Kremeier, who made a number of changes to the code. You can see the effect of this in this page - there were several files that were excised from the source code entirely before release, due either to refactoring work or the fact that they were DOS code that wasn't needed. Some of the missing files can be found in the Raven sources, while I managed to get the "automap asteroids" stub files from Romero himself.

The most apparent change is the change to the sky handling, and I'm not certain it was even a deliberate fix. There's also this bug, which appears to have been caused by one of Bernd's changes.

Foxpup said:

Linux Doom 1.10 is based on Ultimate Doom 1.9, not Final Doom 1.9 (yes, they're actually completely different versions (and so is Doom II 1.9), to the point where some demos will desync when played back with a different version 1.9 EXE, even if identical IWADs are used). The only difference between Ultimate Doom 1.9 and Final Doom 1.9 that I can remember is that teleporters don't set your z-coordinate in Final Doom, causing you to be teleported into the air if departure point is higher than the arrival point.

Completely untrue. The LinuxDoom source release is absolutely based on Final Doom it includes all the Final Doom string changes for example.


A different sound library was used since the DOS one used a proprietary license. A bunch of sound code got rewritten for the new library, which introduced a new bug into the special sound handling on level 8. In vanilla, the effect is simply that sounds are never cut off as a result of extreme distance (or even from setting the sound volume to zero), instead they become very quiet instead of completely silent. In Linux Doom, sounds actually get louder with distance, unless the sound volume is at maximum, in which case sounds are played at full volume regardless of distance.

Um, sort of. It's not really the proprietary license that was the reason - DOS Vanilla Doom used the DMX sound library, which didn't run on Linux. So the sound code had to be replaced for the Linux port. Id released the source to the Linux port because Carmack wanted to release something that was functional, rather than releasing the DOS source with all the backend code ripped out.

Sound effects do not get louder with distance, I have no idea where you got that from.


  • Some movement functions use floating point instead of fixed point calculations, which in some cases can cause demo desyncing.

  • Also untrue. Where on earth are you getting this stuff?

    Share this post


    Link to post
    fraggle said:

    Sound effects do not get louder with distance, I have no idea where you got that from.


    I think he's referring to the ApproxDist function overflow. Due to limitations of fixed_t numbers, differences greater than 32K units will wrap around, possibly resulting in such an effect. In practice, I've never noticed it.

    fraggle said:

    Also untrue [floating point code]. Where on earth are you getting this stuff?


    I think he's referring to the FixedDiv function in the source release -indeed, that one uses a cast to float as an intermediate calculation. This is even mentioned on the wiki page.

    In any case, even if the source release is based off Final Doom, a lot of the code needed to properly support it -or even to properly support e.g. correct switch initialization in episode 4 of UD) is missing, so anyone starting from the "bare metal" will have to fill-in for these missing parts.

    Share this post


    Link to post
    Maes said:

    I think he's referring to the ApproxDist function overflow. Due to limitations of fixed_t numbers, differences greater than 32K units will wrap around, possibly resulting in such an effect. In practice, I've never noticed it.

    Assuming you mean the code from S_AdjustSoundParams, it seems like Chocolate Doom is still using the same logic. Nobody seems to have complained. Other than that I can only speculate about there possibly being some bug in the low level sound code.

    I think he's referring to the FixedDiv function in the source release -indeed, that one uses a cast to float as an intermediate calculation. This is even mentioned on the wiki page.

    Ah, forgot about this. That was certainly a weird change, I never understood why it was made. In any case, it's not "Some movement functions" that have been changed - it's the single function that does the fixed point calculations.

    In any case, even if the source release is based off Final Doom, a lot of the code needed to properly support it -or even to properly support e.g. correct switch initialization in episode 4 of UD) is missing, so anyone starting from the "bare metal" will have to fill-in for these missing parts.

    Has it been so long that I've forgotten about this? I don't remember doing these.

    Share this post


    Link to post
    fraggle said:

    Completely untrue. The LinuxDoom source release is absolutely based on Final Doom it includes all the Final Doom string changes for example.

    It does have the Final Doom string changes, but behaviour-wise, it acts in most if not all respects like Ultimate Doom 1.9, unless I'm very badly mistaken.

    fraggle said:

    Sound effects do not get louder with distance, I have no idea where you got that from.

    It's been a long time since I've played Linux Doom, but I do specifically recall this happening, and wondering what the Hell was wrong with the sound, and the wiki says it happens, so... But just to humour me, start up Linux Doom, warp to level 8 (doesn't matter what game or episode), and tell me what you hear with the sound volume on various settings.

    fraggle said:

    Also untrue. Where on earth are you getting this stuff?

    Maes said:

    I think he's referring to the FixedDiv function in the source release -indeed, that one uses a cast to float as an intermediate calculation. This is even mentioned on the wiki page.

    In any case, even if the source release is based off Final Doom, a lot of the code needed to properly support it -or even to properly support e.g. correct switch initialization in episode 4 of UD) is missing, so anyone starting from the "bare metal" will have to fill-in for these missing parts.

    Correct on both points.

    Share this post


    Link to post
    Foxpup said:

    It's been a long time since I've played Linux Doom, but I do specifically recall this happening, and wondering what the Hell was wrong with the sound, and the wiki says it happens, so... But just to humour me, start up Linux Doom, warp to level 8 (doesn't matter what game or episode), and tell me what you hear with the sound volume on various settings.

    Okay, you're right. Seems like it was actually me who investigated this stuff in the first place. I stand corrected.

    Share this post


    Link to post
    fraggle said:

    Has it been so long that I've forgotten about this? I don't remember doing these.


    Some versions like SDL Doom that built directly on top of Linux Doom did fix them (so if you used that one as a base, you might have not noticed), but many others started really at square zero. Check out e.g. how different the handling of the Finale is in prBoom, MBF, etc.

    I had made a thread some time ago especially for these issues.

    Share this post


    Link to post

    Create an account or sign in to comment

    You need to be a member in order to leave a comment

    Create an account

    Sign up for a new account in our community. It's easy!

    Register a new account

    Sign in

    Already have an account? Sign in here.

    Sign In Now
    Sign in to follow this  
    ×