VOGONS

Common searches


First post, by Yottabit

User metadata
Rank Newbie
Rank
Newbie

Hi all,

First post here. This forum is awesome

I have a Pentium 200 MMx, 64 MB RAM, no 3d accelerator yet (s3 stealth 64 4 mb pci graphics card) Win 95 OSR 2.1

I thought it’d be fun to try OG Half Life (specifically the Uplink demo) in software render mode.

I distinctly remember playing that demo in software render on a laptop back in the day (233 mmx) so I know it should be possible.

However, the software render tab of video modes only shows 640x480, 800x600, 1024x768. Even 640x480 is too high to run

I see all kinds of old posts saying 320x240 should be available on the software renderer. I see it available under D3D, but I can’t run that without an accelerator (right?)

I thought maybe it had to do with my windows monitor settings so I tried a few different ones there. No luck

I also tried WON / retail and saw the same behavior there. Any tips?

Can anyone confirm they have access to 320x240 software? Or should my PC be able to run 640x480 software (I doubt it, Quake also runs smoothest at 320x240) - currently its sub 1 fps and unplayable

Reply 1 of 9, by Yottabit

User metadata
Rank Newbie
Rank
Newbie

So minor update, I actually installed a slightly newer version of HL1 from a retail GOTY edition disc (1.1.0.6) I have

This actually had much better performance in 640x480 software and is SOMEWHAT playable, though I had to guess the framerates are in single digits. The Half Life Uplink demo I had was more like seconds per frame.

Even better though, on the Video Modes tab it has the option to run in a window. If I do this it lets me select resolutions down to 400x300.
400x300 is actually pretty playable on the P5-200 MMx (I'm guessing low double digit framerates), albeit it's a small window to play in. Still, progress.

This PC also seems to be paging about 30 MB of virtual memory, so I'm guessing that's hurting the software render performance a lot. I'd be interested to see how upgrading to 96 or 128 MB helps if at all for software render.

I think I will try 1.1.1 patch and see if that adds anything else

Reply 2 of 9, by auron

User metadata
Rank Oldbie
Rank
Oldbie

last time i looked into this i was under the impression that 320x240 was removed in 1.1.0.1, but can't find a source for that info now unfortunately. but look for the oldest possible CD retail version. as for newer patches, half-life's version history was really all over the place even pre-steam, see the infamous crowbar bug...

i'm very certain i had uplink running in 320x240 at one point though, either there are multiple versions of that demo around or it's a driver issue on your side. i'm pretty sure i used a matrox millennium when i did that.

also, if you're running an intel chipset, it will only cache 64 MB of RAM so adding more would cause a performance penalty. the game will run very slow either way on such a machine though: https://www.youtube.com/watch?v=P-DfQ05OACU

best thing you can do for performance is run the 3dfx miniGL on a voodoo card, but even then low teens and even single digit FPS are expected at choke points.

Reply 3 of 9, by Yottabit

User metadata
Rank Newbie
Rank
Newbie
auron wrote on 2023-07-24, 18:54:
last time i looked into this i was under the impression that 320x240 was removed in 1.1.0.1, but can't find a source for that in […]
Show full quote

last time i looked into this i was under the impression that 320x240 was removed in 1.1.0.1, but can't find a source for that info now unfortunately. but look for the oldest possible CD retail version. as for newer patches, half-life's version history was really all over the place even pre-steam, see the infamous crowbar bug...

i'm very certain i had uplink running in 320x240 at one point though, either there are multiple versions of that demo around or it's a driver issue on your side. i'm pretty sure i used a matrox millennium when i did that.

also, if you're running an intel chipset, it will only cache 64 MB of RAM so adding more would cause a performance penalty. the game will run very slow either way on such a machine though: https://www.youtube.com/watch?v=P-DfQ05OACU

best thing you can do for performance is run the 3dfx miniGL on a voodoo card, but even then low teens and even single digit FPS are expected at choke points.

Thanks. I did try 1.1.0.1, the settings available were the same but performance was somewhat worse. I noticed 90 mb virtual memory paging. I rolled back to 1.0.6 GOTY and it was back down to 30 mb paging. So far that seems to be the best performer for me.

It’d be weird that video card drivers would remove a software rendering option, but maybe you’re right. The fact that it lets me run those resolutions in windowed but not fullscreen still makes me think its some kind of Windows adapter/monitor issue

I do have a Voodoo2 coming so this is really just an attempt to set the best “baseline” I can with software render

Reply 4 of 9, by auron

User metadata
Rank Oldbie
Rank
Oldbie
Yottabit wrote on 2023-07-25, 12:00:

It’d be weird that video card drivers would remove a software rendering option, but maybe you’re right. The fact that it lets me run those resolutions in windowed but not fullscreen still makes me think its some kind of Windows adapter/monitor issue

check if this driver differs from what you are using now: https://web.archive.org/web/19990224114522/ht … 68drv/index.htm

low-res software rendering support was very commonplace in shooters of the day, even in win95, you may check if something like unreal/hexen2/outlaws shows those modes. half-life was really a unique case in terms of patching those modes out, which made that p133 minimum requirement on the box even more bizarre than it already was.

Reply 5 of 9, by UCyborg

User metadata
Rank Member
Rank
Member

For HL retail 1.0.0.9 and 1.1.1.0 at least, resolution list for windowed mode (Software, OpenGL or Direct3D) is hardcoded. The same list is also hardcoded for fullscreen OpenGL, but for Software and D3D fullscreen, resolution list is enumerated from the system, but the resolution must pass few checks for it to show up on the list:

  • Aspect ratio not greater than 4:3 (the same floating point comparison that I'm not sure how was expressed in C /C++ also filters out 1280x1024).
  • Height not greater than 1024.
  • One of the patches added additional check for width not below 400, this filters out 320x240. I haven't checked all intermediate versions, but I'm guessing the same patch probably replaces 320x240 with 1600x1200 in the hardcoded list mentioned earlier.

From a very quick test, HL 1.1.1.0 doesn't seem to have an issue running at 320x240 in software mode after removing that check for width below 400, though when the game outputs white text on the lower portion of the screen, in Hazard Course for instance, multiple lines tend to overlap. Perhaps the resolution enumeration also takes color depth into account as old HL runs at 16-bit color depth by default.

Given the state of the software renderer in those old WON versions, I think only aspect ratio check and height not above 1024 makes sense for software rendering specifically, hardware accelerated rendering should be fine for the most part in greater resolutions.

Arthur Schopenhauer wrote:

A man can be himself only so long as he is alone; and if he does not love solitude, he will not love freedom; for it is only when he is alone that he is really free.

Reply 6 of 9, by Yottabit

User metadata
Rank Newbie
Rank
Newbie
UCyborg wrote on 2023-07-29, 15:43:
For HL retail 1.0.0.9 and 1.1.1.0 at least, resolution list for windowed mode (Software, OpenGL or Direct3D) is hardcoded. The s […]
Show full quote

For HL retail 1.0.0.9 and 1.1.1.0 at least, resolution list for windowed mode (Software, OpenGL or Direct3D) is hardcoded. The same list is also hardcoded for fullscreen OpenGL, but for Software and D3D fullscreen, resolution list is enumerated from the system, but the resolution must pass few checks for it to show up on the list:

  • Aspect ratio not greater than 4:3 (the same floating point comparison that I'm not sure how was expressed in C /C++ also filters out 1280x1024).
  • Height not greater than 1024.
  • One of the patches added additional check for width not below 400, this filters out 320x240. I haven't checked all intermediate versions, but I'm guessing the same patch probably replaces 320x240 with 1600x1200 in the hardcoded list mentioned earlier.

From a very quick test, HL 1.1.1.0 doesn't seem to have an issue running at 320x240 in software mode after removing that check for width below 400, though when the game outputs white text on the lower portion of the screen, in Hazard Course for instance, multiple lines tend to overlap. Perhaps the resolution enumeration also takes color depth into account as old HL runs at 16-bit color depth by default.

Given the state of the software renderer in those old WON versions, I think only aspect ratio check and height not above 1024 makes sense for software rendering specifically, hardware accelerated rendering should be fine for the most part in greater resolutions.

That’s some interesting insight, thanks! Was there a specific method you used to “remove that check for width below 400” ? Or is it just a matter of using the correct version. I looked through the CFG files and didn’t see anything.

Reply 7 of 9, by UCyborg

User metadata
Rank Member
Rank
Member

hl.exe needs to be patched with OllyDbg or similar debugger. Both versions 1.1.1.0 and 1.0.1.6 at least have unique CMP EBP,190 command inside that may be found when using search (CTRL + F), the code must be modified in the way that this comparison instruction along with a jump instruction afterwards are removed, easiest is just using the context menu option to fill that space with NOPs, then use the right-context menu option to save changes back to disk.

When I was still working on these things few years back, I went out of the way to remove the gaps in such places to make the code cleaner, though obviously that sometimes, depending on number of changes in a particular part of code, it may give appearance if someone is comparing original and modded executable with a hex editor that there's more changes than there really are. I have hl.exe version 1.1.1.0 (the one from my patch here) currently at my fingertips, so here's the version with that check removed.

rp7kQlX.png

So since it's based on that patch, stock 1.1.1.0 is a prerequisite, there's no hardcoded resolution list anymore, resolutions are taken from the system and it has a couple of other fixes mentioned on the patch's ModDB page, at least those that are in hl.exe. If I remember correctly, hw.dll only has D3D mode related fixes while the separate .asi files are for MP3 and FOV fixes.

If you tell me your exact version of hl.exe, I can check if the procedure applies there.

Arthur Schopenhauer wrote:

A man can be himself only so long as he is alone; and if he does not love solitude, he will not love freedom; for it is only when he is alone that he is really free.

Reply 8 of 9, by Yottabit

User metadata
Rank Newbie
Rank
Newbie
UCyborg wrote on 2023-08-05, 14:10:
hl.exe needs to be patched with OllyDbg or similar debugger. Both versions 1.1.1.0 and 1.0.1.6 at least have unique CMP EBP,190 […]
Show full quote

hl.exe needs to be patched with OllyDbg or similar debugger. Both versions 1.1.1.0 and 1.0.1.6 at least have unique CMP EBP,190 command inside that may be found when using search (CTRL + F), the code must be modified in the way that this comparison instruction along with a jump instruction afterwards are removed, easiest is just using the context menu option to fill that space with NOPs, then use the right-context menu option to save changes back to disk.

When I was still working on these things few years back, I went out of the way to remove the gaps in such places to make the code cleaner, though obviously that sometimes, depending on number of changes in a particular part of code, it may give appearance if someone is comparing original and modded executable with a hex editor that there's more changes than there really are. I have hl.exe version 1.1.1.0 (the one from my patch here) currently at my fingertips, so here's the version with that check removed.

rp7kQlX.png

So since it's based on that patch, stock 1.1.1.0 is a prerequisite, there's no hardcoded resolution list anymore, resolutions are taken from the system and it has a couple of other fixes mentioned on the patch's ModDB page, at least those that are in hl.exe. If I remember correctly, hw.dll only has D3D mode related fixes while the separate .asi files are for MP3 and FOV fixes.

If you tell me your exact version of hl.exe, I can check if the procedure applies there.

Oh awesome! It’s nice to finally get to the bottom of this I really appreciate it. V43 / 1.1.0.6 is what I have installed at the moment and was hoping to use, but I could upgrade to 1.1.1.0 again if its too much trouble.

Reply 9 of 9, by UCyborg

User metadata
Rank Member
Rank
Member

OK, here's the modified hl.exe of version 1.1.0.6.

hl1106_no_min_res.zip

Arthur Schopenhauer wrote:

A man can be himself only so long as he is alone; and if he does not love solitude, he will not love freedom; for it is only when he is alone that he is really free.