Jump to content

Play No rest for the Living in DOS (or DOSBox)!


xttl

Recommended Posts

Here's something I made back in 2011 (when No Rest for the Living was still supposed to be Xbox 360 exclusive, heh) but never released: nr4tl.exe. It's a hacked Final Doom (id Anthology version so teleports work properly) binary that plays No Rest for the Living with proper music, level names, secret exit, par times and ending text in DOS. Use doom2.wad or doom2f.wad as your IWAD, load No Rest for the Living manually using -file.

It's probably not that useful for most people but thought I'd post it anyway. Well, actually just for the heck of it, I also added support for both regular v1.9 and "v1.91" longtics demos in the same binary back then, which I think no other vanilla EXE hack still has (but I haven't been following the Doom scene actively for a while now). Too bad that it doesn't support playing anything besides No Rest for the Living anymore. :) Shoulda have made it just another gamemode/gamemission...

Share this post


Link to post

Just checked it out, pretty good :D

NRFTL is playable under DOS using doom2-plus but there are many caveats with that approach.

Share this post


Link to post

Well since someone is really using it I just fixed a minor bug, now the intermission screen doesn't claim you're entering the secret level after completing MAP08, before going to the final text screen. Also I changed it to not play DEMO1-DEMO4 at all since there are no demos included in No Rest for the Living's WAD anyway, instead it just keeps displaying the titlepic forever if you don't start a game.

(actually it's displayed for 2147483647 gametics, a little over 710 days)

Share this post


Link to post
xttl said:

Well since someone is really using it I just fixed a minor bug, now the intermission screen doesn't claim you're entering the secret level after completing MAP08, before going to the final text screen. Also I changed it to not play DEMO1-DEMO4 at all since there are no demos included in No Rest for the Living's WAD anyway, instead it just keeps displaying the titlepic forever if you don't start a game.

(actually it's displayed for 2147483647 gametics, a little over 710 days)

Cool. What about the limits? Is it the same as with doom-plus?

Also, this is a hexedited version of the legit Final Doom executable in id Anthology? So I guess Dehacked doesn't support it, right?

Share this post


Link to post

Heh, I wonder how that would perform on the 486DX/50 with 8 MB that I finished Doom, Doom II and Final Doom on :-)

Share this post


Link to post
Maes said:

Heh, I wonder how that would perform on the 486DX/50 with 8 MB that I finished Doom, Doom II and Final Doom on :-)

Crazy to think we used to run 50 MHz chips huh.

Share this post


Link to post
xttl said:

Here's something I made back in 2011 (when No Rest for the Living was still supposed to be Xbox 360 exclusive, heh) but never released: nr4tl.exe. It's a hacked Final Doom (id Anthology version so teleports work properly) binary that plays No Rest for the Living with proper music, level names, secret exit, par times and ending text in DOS. Use doom2.wad or doom2f.wad as your IWAD, load No Rest for the Living manually using -file.

It's probably not that useful for most people but thought I'd post it anyway. Well, actually just for the heck of it, I also added support for both regular v1.9 and "v1.91" longtics demos in the same binary back then, which I think no other vanilla EXE hack still has (but I haven't been following the Doom scene actively for a while now). Too bad that it doesn't support playing anything besides No Rest for the Living anymore. :) Shoulda have made it just another gamemode/gamemission...

No, it's useful, and nice! Do you have any documentation on the patches? I'd love to see patch addresses, disassembled patch source, and a small description. (Please don't go out of your way to write docs, if you don't already have them. I'm just curious to see them, that's all :)

vadrig4r said:

Crazy to think we used to run 50 MHz chips huh.

Heh, yeah I paid way too much for my first system, just to make Doom run well! It's a 486 DX50 (straight 50, not that doubled crap :), with a local-bus motherboard and video card. The video card made a huge difference. Only problem was that local bus runs at 40Mhz, and the CPU ran at 50Mhz, so I would get "snow" (incorrectly painted pixels). It didn't cause enough of a problem to offset the coolness of getting a constant 35 fps! Yay!

I wrote a menu program that, upon choosing Doom, would rewrite autoexec.cfg and config.sys (startup files for you kiddies :). Then it would reboot the box "clean", with just the sound driver, and mouse driver loaded into "high memory". Then it launched Doom. Once you quit Doom, it reversed the process. Good times.

So, yes, xttl, your modified .exe is useful, cause I still have that box, so it'd be nice to try your .exe on it.

Share this post


Link to post

@xttl

Can you release a hacked final doom executable with raised limits and longtics support?

Share this post


Link to post

also a hacked final doom executable that supports dehacked. For some strange reason longtics-patched exes don't support dehacked.

Share this post


Link to post
VGA said:

Cool. What about the limits? Is it the same as with doom-plus?

Also, this is a hexedited version of the legit Final Doom executable in id Anthology? So I guess Dehacked doesn't support it, right?


It's been sitting on my HD for a few years now and I only have the executable anymore (not my notes and .asm/.inc files for generating patched functions with NASM) but yes, IIRC it has exactly the same limits as Doom+ and yes, the base executable is the id anthology version of Final Doom. (definitely teleports work at least, it doesn't crash looking for a DEMO4, and it has way too many differences compared to the regular Final Doom exe, don't have an unmodified anthology exe handy right now unfortunately so I could do a compare to it...)

kb1 said:

No, it's useful, and nice! Do you have any documentation on the patches? I'd love to see patch addresses, disassembled patch source, and a small description. (Please don't go out of your way to write docs, if you don't already have them. I'm just curious to see them, that's all :)


No, not anymore. See above. I'll write what I remember: limit extension is done the same way as Doom+, patching the LE header to extend uninitialized data section ("bss") size, then pointing all functions that use fixed size arrays to use newly available space at the end of that section in memory (the space that was reserved for the original arrays will still be sitting there unused). Shorttics and longtics in same executable was IIRC implemented by patching code on the fly. If you're recording and you specified -longtics on command line, or a demo is played that has "version 191" in its header, code that handles angleturn as 16-bit is patched in (and IIRC I also made it patch 8-bit angleturn code back in if a demo "version 109" is played so that it doesn't break if you have internal demos in both formats but I'm not sure anymore...). There is enough wasted space in the executable to add something like this without extending the code (or "text") section due to compiler inlining and some totally unused functions (like DDT's linked lists). For map names I just overwrote the regular Doom 2 map names and patched a related list of pointers (and the LE relocation records, or maybe only them) so that it correctly points to the beginning of each string even though the lengths do not match the originals. Secret exit and ending map handling are very simple patches if you know where the related functions from g_game.c are in the EXE.

If you want to know the location of some function, variable or array from the source in any particular EXE, just ask. If I had made a mapfile or something for them I'd gladly post them here but unfortunately I didn't.

VGA said:

@xttl

Can you release a hacked final doom executable with raised limits and longtics support?


Yeah sure, later. Right now I just opened my umm friday bottle a while ago.

Danfun64 said:

also a hacked final doom executable that supports dehacked. For some strange reason longtics-patched exes don't support dehacked.


You mean it doesn't work even if you use the old 1.91 patcher on a regular Doom 2 or Ultimate Doom exe? That's strange since it doesn't move any data around at all and Doom 2 / Ultimate Doom are definitely supported by DHE. I haven't used DOS DeHackEd myself for maybe 10 years now but I would have thought it doesn't care about that patch at all.

Share this post


Link to post
VGA said:

There are some executables here:
http://doomgate.de/content/files/ladopato/index_en.html

I don't know if it's the better Final Doom exe or not...


It seems to be not but fortunately https://www.doomworld.com/vb/everything-else/49837-id-anthology-patches/ the links in this thread still work. So I'll be getting back to you later when I get over the hangover.

edit: except now for some reason it's saying my old Final Doom EXE file (size 722629 bytes, date 10.6.1996, md5 f006de4fd282ba61d7d0af41a993f9ba) isn't correct :( I remember getting this patch to work just fine previously. Well, maybe someone can give me the unmodified anthology EXE?

Share this post


Link to post
kb1 said:

Heh, yeah I paid way too much for my first system, just to make Doom run well! It's a 486 DX50 (straight 50, not that doubled crap :), with a local-bus motherboard and video card. The video card made a huge difference. Only problem was that local bus runs at 40Mhz, and the CPU ran at 50Mhz, so I would get "snow" (incorrectly painted pixels). It didn't cause enough of a problem to offset the coolness of getting a constant 35 fps! Yay!


May I ask at what screen size and what conditions? I remember my 486DX/50 (Cyrix DX/40 overclocked to DX/50, also no crap doubling), also with a VLB video card (some weird Cirrus Logic "all in one" affair) was struggling with 20-something framerates on most vanilla levels, with the status bar visible and no windowing. Most of the time I had to reduce the view window one step below that, and switch between hi/low detail all the time to maintain acceptable frame rates.

Now, for several reasons, I'm convinced that the video card wasn't exactly the best ever, but I don't know if simply swapping it for another would've made that much of a difference at those CPU performance levels. I'm not even sure that Doom in particular (or VGA mode games without special Cirrus/VLB drivers) took advantage of the VLB bus, either, or it was constrained by the ISA bus.

In any case, VLB was a dying breed at the time. I think that 50, not 40 MHz was actually the highest limit for it , but in practice it was unstable at those speeds, one more reason why the "slower" 33 MHz PCI took over it.

Speaking of VGA cards and ISA/VLB buses, some time ago there was a post here over how vanilla benchmarks even on grossly overpowered systems, e.g. Pentium 4s or Core Duos, seem to hit a performance brickwall, with none measurably going beyond 250-260 fps, suggesting that vanilla Doom isn't just CPU bound, but that the bandwidth of the (legacy) ISA bus has something to do with it.

Share this post


Link to post
Maes said:

May I ask at what screen size and what conditions? I remember my 486DX/50 (Cyrix DX/40 overclocked to DX/50, also no crap doubling), also with a VLB video card (some weird Cirrus Logic "all in one" affair) was struggling with 20-something framerates on most vanilla levels, with the status bar visible and no windowing. Most of the time I had to reduce the view window one step below that, and switch between hi/low detail all the time to maintain acceptable frame rates.

Now, for several reasons, I'm convinced that the video card wasn't exactly the best ever, but I don't know if simply swapping it for another would've made that much of a difference at those CPU performance levels. I'm not even sure that Doom in particular (or VGA mode games without special Cirrus/VLB drivers) took advantage of the VLB bus, either, or it was constrained by the ISA bus.

In any case, VLB was a dying breed at the time. I think that 50, not 40 MHz was actually the highest limit for it , but in practice it was unstable at those speeds, one more reason why the "slower" 33 MHz PCI took over it.

Speaking of VGA cards and ISA/VLB buses, some time ago there was a post here over how vanilla benchmarks even on grossly overpowered systems, e.g. Pentium 4s or Core Duos, seem to hit a performance brickwall, with none measurably going beyond 250-260 fps, suggesting that vanilla Doom isn't just CPU bound, but that the bandwidth of the (legacy) ISA bus has something to do with it.

I don't feel like pulling out of the closet right now, but here's what I remember:
. 486/50
. Diamond Stealth VLB
. VLB motherboard
. Beefed up Soundblaster (better than standard, but definitely a SoundBlaster)
. 8Mb memory
. Dos 6.22 with something like 618Kb free DOS memory
. Lots of fudging with the BIOS settings, like memory wait states
. It was standard vanilla DOS Doom at 320x200 w/status bar

I am sure it was the fast VLB video card that made the difference, cause I bought the VLB motherboard after damaging my first motherboard, and then I added the VLB video card to it later. This was when I noticed the "holes" in the video, which were very minor. This is also when I noticed the improved frame rate. That box was dedicated to running Doom!

Share this post


Link to post

Your video card was definitively better than mine, but I'm not convinced that the VLB was used under all conditions. There was an utility called vide which supposedly "activated" the VLB, but I'm not sure if it actually made any/much of a difference. Now that's something I'd like to x-check...

Share this post


Link to post
  • 1 year later...
On 24/2/2016 at 0:44 PM, xttl said:

Here's something I made back in 2011 (when No Rest for the Living was still supposed to be Xbox 360 exclusive, heh) but never released: nr4tl.exe.

Sorry about gravedigging this old post again but... Do you know where is it possible to download nr4tl.exe again? Thanks in advance, really nice stuff.

Share this post


Link to post
  • 1 year later...
  • 2 years later...
16 hours ago, Chaingun Nationalism said:

Very nice, I just wish it would be selectable episode in the menu, first there would be hell on earth, then No Rest for the Living. But still, thank you for the work 

 

It *could* have been done, but it'd have been a lot of work for very little gain.

 

(then, on the other hand, same applies to pretty much all of this hacking of DOS binaries of games that have been open sourced for over 20 years...)

 

With kgsws' tools which allow patching with C code it'd be a lot less work, so maybe one day...

Share this post


Link to post
  • 2 weeks later...

you can just download nr4tl in th unity version but that isnt dos/dosbox but still like vanilla. But still being able to play this expansion in pure vanilla is really nice

Edited by Dyshoria
typo

Share this post


Link to post
11 hours ago, Dyshoria said:

you can just download nr4tl in th unity version but that isnt dos/dosbox but still like vanilla. But still being able to play this expansion in pure vanilla is really nice

One problem with using the unity version with this EXE is that it uses widescreen assets, which causes errors in vanilla. If you take the TITLEPIC and INTERPIC images and crop them to 320x200 in Photoshop or something, then it works fine.

Share this post


Link to post

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...