VOGONS


First post, by paradigital

User metadata
Rank Oldbie
Rank
Oldbie

So I've recently picked up an Olivetti PCS 33 machine (386SX-25) and the first thing I wanted to try was Commander Keen, specifically Keen4 as this was my favorite episode back in the day.

The PC itself appears to be ok, stable, everything seems to work just fine. It's booting into what looks to be an Olivetti branded version of MS-DOS 5.00 from the internal Conner 40MB HDD, and the little testing I've done suggests that it's stable when running the few bits of software that were present on the HDD (wordstar, qbasic/nibbles/gorillas). I've even had my Iomega ZIP100 disk connected up to transfer files onto the system.

So onto Keen4. I've copied this over onto the HDD, but when launching keen4e.exe it gets no further than the launch screen. In the lower right quadrant of the screen where it shows "Memory Available to Game" I see xxxxx Kbytes for everything (Standard, Expanded, Extended, Total). I'm assuming this is an issue with memory management? It's been that long since I played with DOS that I've forgotten all about the quirks of extended memory managers.

The BIOS shows I have 640k base, 384k expanded and 3072k extended memory (which I find odd as the board has 1MB built in and 4MB in 2x30pin SIMMS).

I think there's an EMM being loaded in config.sys in the form of EMMBOX3.SYS being loaded, no idea if this is messing me up or not!

Any help appreciated.

Edited to add: I've REM'd EMMBOX3.sys and now the game sees 339Kbytes total. So I definitely need to do something with my memory management!

Reply 2 of 18, by K1n9_Duk3

User metadata
Rank Member
Rank
Member

Setting up that startup text screen is the first thing the Keen 4-6 games do when you start them. This is done by copying a block of data into video memory. That block of data has all the memory numbers replaced with xxxxx initially, then the game proceeds to start up its memory manager, input and sound routines. After that, the memory part is updated with the correct values for your system (and the detected graphics card, sound card and input devices are also highlighted).

If your system hangs while the memory is still showing xxxxx (and the text at the bottom says "Initializing"), then something went wrong while setting up the memory manager or the sound- or input manager. If disabling EMMBOX3.SYS fixed that, then it probably was an EMS memory issue. The memory manager was probably trying to quit with an error message, but there's a bug in the Keen games that causes them to make the system hang whenever they try to quit with an error message before they entered graphics mode (the bug causes them to set the first 64k of your system's memory to 0, erasing the entire interrupt vecor table and the BIOS data area).

Keen 4-6 can only make use of up to 1 Meg of memory, so they can only use up to 64k of EMS (if present) and up to 200k of XMS (if present and not used by DOS). If you have your CONFIG.SYS set up to allow DOS to use UMBs (DOS=HIGH,UMB or DOS=UMB), then the Keen games won't be able to use XMS at all. Also, you absolutely need to have UMB support for the Keen games to use XMS, which means you need to load EMM386 or a similar tool that provides UMBs. I recommend using the DOS=HIGH,NOUMB setting for Keen 4-6 if you want to squeeze the maximum amount of memory out of your system. By the way, if you ever do manage to make the game use XMS (Extended) memory, the startup screen may show less XMS memory than what's actually used by the game. You may have 64k or 128k more than whatever the game tells you.

All that being said, 339k of "Total" memory on the startup screen should be enough for playing the original Keen 4.

Reply 3 of 18, by paradigital

User metadata
Rank Oldbie
Rank
Oldbie

So whilst I was indeed able to run the game once I'd removed the EMMBOX3.SYS driver, now I've installed the Opti sound card drivers I'm down to 226k, with which the game no longer loads.

I've tried using DOS 6.22's built in memmaker, but that's still not freed up enough conventional memory to run the game.

Reply 4 of 18, by keenmaster486

User metadata
Rank l33t
Rank
l33t

Opti sound card drivers?

What sound card is this?

A 386 should have an SB 2.0 or SB Pro, or whatever cheap SB Pro clone you can get to put in there. No drivers required.

World's foremost 486 enjoyer.

Reply 5 of 18, by paradigital

User metadata
Rank Oldbie
Rank
Oldbie
keenmaster486 wrote on 2021-07-12, 15:00:

Opti sound card drivers?

What sound card is this?

A 386 should have an SB 2.0 or SB Pro, or whatever cheap SB Pro clone you can get to put in there. No drivers required.

It's an Opti 82C933 chipset card that is SBPro compatible. Before I installed the driver diskette Keen would only show PC Speaker available. Now it's installed I get a checkmark against Sound Blaster/AdLib.

I've actually managed to get the game to report 335Kbytes free now so it runs again, but the latest issue is checkerboarding across the bottom half of the screen. Scrolling is still smooth however and the game runs as normal besides the glitching.

Other games (such as WCLB) don't glitch out so I don't believe it's the video card at fault.

Reply 6 of 18, by keenmaster486

User metadata
Rank l33t
Rank
l33t

Okay -- use this project here: UNISOUND - Universal ISA PnP Sound Card Driver for DOS v0.81b to initialize the card without leaving drivers loaded in memory. That will free up some for you. As for the video card, probably worth it to remove it, clean the terminals, and reseat.

World's foremost 486 enjoyer.

Reply 7 of 18, by paradigital

User metadata
Rank Oldbie
Rank
Oldbie

Thanks, that's solved the sound card and memory issue.

I've cleaned the ISA slots twice now, and the video card. The issue remains.

Here's a video of the PC happily playing Bumpy's Arcade Fantasy:

https://www.oldpc.co.uk/vogons/bumpy.mp4

And here's a video showing the corruption on Keen4:

https://www.oldpc.co.uk/vogons/keen4.mp4

If it were a hardware failure on the part of the video card (memory usually causes checkerboarding from what I remember), then I'd not expect the checkerboard area to change in screen area as I scroll vertically.

Reply 10 of 18, by keenmaster486

User metadata
Rank l33t
Rank
l33t

Ahhhhhh.

So the Tseng cards do not like Commander Keen. It's unfortunate, but true.

Check this chart for compatibility across several games checked vs several cards: https://gona.mactar.hu/DOS_TESTS/

World's foremost 486 enjoyer.

Reply 11 of 18, by paradigital

User metadata
Rank Oldbie
Rank
Oldbie

Ah, that would explain it. I was aware of (was it Matrox?) issues with scrolling, but not Tseng cards having graphical problems 🙁

Guess I need to source a different ISA VGA card then. Any suggestions?

Reply 13 of 18, by maxtherabbit

User metadata
Rank l33t
Rank
l33t
keenmaster486 wrote on 2021-07-13, 15:38:

Ahhhhhh.

So the Tseng cards do not like Commander Keen. It's unfortunate, but true.

Check this chart for compatibility across several games checked vs several cards: https://gona.mactar.hu/DOS_TESTS/

My ET4000 works perfect in keen4/5/6 with "SVGA compatibility" turned on

Reply 14 of 18, by paradigital

User metadata
Rank Oldbie
Rank
Oldbie
maxtherabbit wrote on 2021-07-13, 16:01:
keenmaster486 wrote on 2021-07-13, 15:38:

Ahhhhhh.

So the Tseng cards do not like Commander Keen. It's unfortunate, but true.

Check this chart for compatibility across several games checked vs several cards: https://gona.mactar.hu/DOS_TESTS/

My ET4000 works perfect in keen4/5/6 with "SVGA compatibility" turned on

Could you elaborate please? I don’t recall an SVGA compatibility setting for Keen itself, is it a command line switch, or are we talking something loaded during boot?

Reply 15 of 18, by keenmaster486

User metadata
Rank l33t
Rank
l33t

SVGA compatibility setting (along with "fix jerky motion") is in the config settings somewhere. There's an (undocumented?) command line switch for it too.

However, with my ET4000 I was never able to get that setting to fix anything.

World's foremost 486 enjoyer.