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

Help ma PrBoom!!

Recommended Posts

When I try to run PrBoom at my native resolution (1280x1024), it runs at only around 20-25 fps and jerks horribly during the screen melt! Is there any fixes to this problem? I don't like running PrBoom at 640x400, it's too blurry, and 640x480 makes everything wrong and blocky! I don't understand, ZDoom runs fine at this res!

Share this post


Link to post

In PrBoom-Plus (like in Chocolate-Doom) you can multiply the screen output. For instance, set PrBoom-Plus to 640x400 and set render_screen_multiply in the config to 2. The game is only outputting at half the resolution and up scaling it to 1280x800 for a sharper look.

In your case you might try 640x512 and multiply by 2.

For that super classic look on my 1280x800 laptop I like to set 320x200 and multiply by 2 (less blurry) or 4 (no blur). I can hardly stand much blur myself.

Share this post


Link to post

I tried setting to 640x400 and multiplying by 2 but then my monitor just displays it really stretched and all blocky and retarded and crap. It says the resolution is 1150x750 or something.

I tried 640x512 and multiplying it by 2, but it was only a partial success. Everything appears all wrong and the text is all blocky:



What's going on?!

Share this post


Link to post

That's because PrBoom is correcting the aspect ratio of the images. Due to technical limitations, Doom had to run at 320x200 instead of 320x240. Monitors stretched this image out to 4:3, and to correct this id had to draw sprites "fatter" than usual to compensate. Now modern sourceports have to do this stretching out to 4:3 by themselves, and without linear filtering(blurry GL filtering) this looks really shoddy on letters and other things that stay still(like the statusbar at 320x240.) This gets worse as you use lower resolutions, so if you were using 1280x1024(but you can't :( ) this would be basically unnoticeable.

tl;dr: use GL filtering or a higher resolution

Share this post


Link to post

arrrgh said:
Due to technical limitations, Doom had to run at 320x200 instead of 320x240.

I think it just runs in that resolution because it was common back then, rather than for having technical limitations. I believe 320x400 was available (this would make pixels flatter than in a desktop resolution, instead of a bit taller.) To avoid low frame rates, they cut vertical resolution in half. If you use the low detail mode in Doom, it also cuts horizontal resolution in half for ingame rendering, but not the interface (status bar and so on).

Share this post


Link to post

I thought they used it because the Mode X hack hadn't been discovered then, but the Wiki article says that Abrash published it in 1991. From what I remember 320x240 was actually faster than 320x200.

Share this post


Link to post
david_a said:

From what I remember 320x240 was actually faster than 320x200.

320*240 = 76800 > 64k(pixel<->byte) -> slow

Share this post


Link to post

Sadly the screen multiplying isn't as robust as Choco-Doom. For a clean look in PrBoom+ you have to keep it in even multiples of 320x200, 640x400 or 1280x800 etc. Although the higher resolutions do clean up better, for instance 800x600 starts looking pretty good.

You might try tinkering with your video drivers and look for screen options like Center, Full Screen while maintaining aspect (black bars) or Full Screen Stretch (can lead to distortion but no black bars).

As a side note, don't set PrBoom+ to 32bit 320x200 as it looks horrible. However 8bit 320x200 is nice and clean. Anyway, it sounds like you are trying to stay at or above 640x400 so that doesn't really concern you but it might be worth your while to try some things in 8bit mode. Again I doubt it as my tests haven't shown any odd behavior at 640x400 or higher.

Share this post


Link to post
david_a said:

I thought they used it because the Mode X hack hadn't been discovered then, but the Wiki article says that Abrash published it in 1991. From what I remember 320x240 was actually faster than 320x200.


It was, but sadly some VGA clone cards didn't take the mode very well. It was used in a few educational games by The Learning Company, and on some Tandy boxes the games would (eventually) hang. other anomalies were fickering text, jitter, and many other nasties. Then again, some cards couldnt even handle mode13h without freaking out. I wonder how that was even allowed.

entryway said:

320*240 = 76800 > 64k(pixel<->byte) -> slow


Mode X doesnt work like that, I'm afraid. Remember, with Mode X we are planar. We have 4 planes, and one byte for each pixel can go in any plane, which means 4 pixels per plane per write.

edit: Graf beat me to it :p

Share this post


Link to post
entryway said:

320*240 = 76800 > 64k(pixel<->byte) -> slow

That's right, 320x200 was faster because it didn't need mode X and therefore didn't need any plane switching.

Share this post


Link to post
HackNeyed said:

32bit 320x200 as it looks horrible

32bit color makes sense only with linear filtering.

320x200 multiplying by 2 + 32bit:



But patches are bad in 32bit - my fault

Share this post


Link to post
entryway said:

320*240 = 76800 > 64k(pixel<->byte) -> slow


That won't apply here. ModeX didn't use a linear frame buffer but an interleaved one with 4 planes.

BTW, didn't Doom use 320x200 ModeX? I can distinctly remember it crashing leaving the screen at something that was the remnants of a corrupted interleaved frame buffer.

Share this post


Link to post
Graf Zahl said:

BTW, didn't Doom use 320x200 ModeX? I can distinctly remember it crashing leaving the screen at something that was the remnants of a corrupted interleaved frame buffer.


You are correct. DOSEMU calls it "Mode X, non-chain 4 mode".

Share this post


Link to post

Graf Zahl said:
BTW, didn't Doom use 320x200 ModeX? I can distinctly remember it crashing leaving the screen at something that was the remnants of a corrupted interleaved frame buffer.

Carmack says both Wolf3D and Doom use Mode X here (scroll about two-thirds of the way down, or just search for "mode-X")...

Doesn't Doom draw by vertical columns? If so, then it would make sense to use planar mode since you could draw a single column all at once and only have to switch planes at most 320 times per frame (or as little as four times per frame, if you draw every fourth column in the same plane at the same time). And with Mode X you could always use double-buffering.

This doesn't explain why they didn't just use 320x240, though...

Share this post


Link to post

Maybe shoddy clone VGA cards didn't properly support 320x240 because it wasn't used much back then? I'm not sure.

Share this post


Link to post

Aside from that possibility, it would have implied 20% more pixels drawn on the screen, regardless of any overall rendering benefits in the mode, and many people were already going to have to run the game with reduced screen blocks or low detail mode...

I'm wondering whether the "screen splitting" feature of Mode X described in the Wikipedia article was exploited for the status bar and HUD text in DOOM. Doesn't it explain how the engine can reduce the detail mode in the game action stuff but leave the interface at the usual detail?

Share this post


Link to post
HackNeyed said:

You might try tinkering with your video drivers and look for screen options like Center, Full Screen while maintaining aspect (black bars) or Full Screen Stretch (can lead to distortion but no black bars).


I would love to have those options on my computer. My Eee PC has them, and if I found them on my main computer I wouldn't post this. It stops all distorion, especially Center mode, as it only scales in exact amounts.

Alas no, my computer seems stuck at Full Screen Stratch mode. Bugger.

Share this post


Link to post

Hmm, what computer do you have? I have intel in my netbook, ati in my laptop and (before the house fire) my desktop has nvidia. To the extent of my knowledge all 3 companies offer those options in their resent-ish driver packages.

For years and various reasons I kept getting ati for my desktop and I used to curse the absence of such driver features. However ati have recently come around. Though I guess you are out of luck if your chipset doesn't have any driver updates anymore.

Share this post


Link to post
myk said:

I'm wondering whether the "screen splitting" feature of Mode X described in the Wikipedia article was exploited for the status bar and HUD text in DOOM. Doesn't it explain how the engine can reduce the detail mode in the game action stuff but leave the interface at the usual detail?

No. The reduction made by low detail mode is just a right shift on the x coordinates for everything being rendered through R_RenderPlayerView, resulting in half the number of columns as usual. Then special versions of R_DrawColumn* are called which draw the same column twice to fill up the entire screen.

The graphics mode which vanilla DOOM uses isn't normal ModeX. It's a tweaked Mode 13h 320x200 in which planar addressing is turned on to enable page flipping (a virtual screen 320x400, with the second page at 0xA4000). This can be seen in the original EXE by viewing the code in a disassembler (this is from Strife, but it is the same as in vanilla):

cseg01:0001044E                 mov     edx, 13h
cseg01:00010453                 mov     eax, 10h
cseg01:00010458                 mov     ecx, 0A0000h
cseg01:0001045D                 mov     word ptr regs, dx
cseg01:00010464                 mov     edx, offset regs
cseg01:00010469                 mov     grmode, ebx
cseg01:0001046F                 mov     ebx, edx
cseg01:00010471                 mov     edi, 0A4000h
cseg01:00010476                 call    int386_
The int386 call is given argument 13h to interrupt 10h (set video mode). A long series of inline assembly instructions follow which manipulate the EGA/VGA registers to set planar mode and do some other voodoo such as clear the screen.

Oddly all of this was removed in Heretic and Hexen, which just use plain Mode 13h, and thus this would be deceptive to anybody looking to their code to find out how vanilla DOOM worked.

Lee Killough restored support for this particular video mode in MBF. BOOM also only used 13h directly.

Share this post


Link to post

I see! With your description in mind it does seem Carmack is referring specifically to that in his blog. And yeah, I remember that "page-flipping" option (re)introduced in MBF.

Share this post


Link to post
HackNeyed said:

Hmm, what computer do you have? I have intel in my netbook, ati in my laptop and (before the house fire) my desktop has nvidia. To the extent of my knowledge all 3 companies offer those options in their resent-ish driver packages.

For years and various reasons I kept getting ati for my desktop and I used to curse the absence of such driver features. However ati have recently come around. Though I guess you are out of luck if your chipset doesn't have any driver updates anymore.


My graphics card is an ATI Radeon HD 3800.

Share this post


Link to post
arrrgh said:

Maybe shoddy clone VGA cards didn't properly support 320x240 because it wasn't used much back then? I'm not sure.


It was considered an unofficial hack, although one that could safely work in most VGA cards of the day. It did have certain advantages, that's why demosceners used it, but they were mostly important for scrolling and 2D effects, and maybe polygon-based 3D graphics, not so for texture mapped ones.

This is what precluded its use in games such as Doom, where it would give no inherent advantage and introduce the need to render 40 extra lines per frame.

@entryway: memory wasn't an issue, as most VGA cards had at least 256K of onboard memory to play with, except the very first VGA cards with 64K or 128K, those sucked ass anyway.

Share this post


Link to post
Nixot said:

My graphics card is an ATI Radeon HD 3800.


All I can say at this point is try updating the drivers and poke around for the option. In my laptop here is a Radeon Xpress 1250 integrated with Catalyst 9.3 drivers and I see 9.7 are out now. Anyway, years ago when my desktop was running ATI it didn't have these options. Maybe ATI only enables them for laptops? If that is true then I still don't have one less thing to be pissed off at ATI about.

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  
×