Terminator Rampage.

terminator rampage front

Terminator Rampage

Back in October of 1993, this cool looking game, The Terminator Rampage was released.

But sadly I had a lowly 4MB 386sx-16 with CGA, so things like this game with it’s awesome VGA graphics were an impossibility.

Even more sad at the time was that ‘primitive’ 3d games like wolfenstein 3d also required VGA.

But as we all know a few short months later, DOOM was released, and then Terminator Rampage was quickly swept off the face of the earth.

I recently came across this page,  and I thought I’d give it a shot.  The requirements are pretty ‘minimal’:

  • Minimal 386DX-25 with 4MB of Ram, VGA & 18MB of disk space
  •  Recommended 386DX-33 or 486DX-33

So I was thinking Qemu could easily run this game.  Long story short, it doesn’t work.  Turns out Rampage needs EMS.  And for whatever reasons, running emm386.exe on Qemu (I tried a handful of versions) just crash on Qemu after initialization.  Failing with stock Microsoft EMM386, I tried JEMM, which loaded, and ran it’s built in EMS diagnostics OK, but trying to run Rampage resulted in a nice crash.

Qemu crash

Qemu crash

So giving up on Qemu, I tried it on DOSBox.  It runs but it is incredibly jerky.  So I thought I’d try PCem, and see how it runs there.

So the plus side is that PCem, is able to run MS-DOS & EMM386.EXE without issues.  It only took a few minutes to install MS-DOS 5.0 and Rampage on my ‘virtual’ 486DX2/66 with 8MB, of ram, and load up Rampage to be greeted with it’s jerky motion.

Thinking its something with emulation in general I fire up Norton SI to get some PCem scores how it benches against known good samples.

pcem 8.1 386DX33 Norton SI score

386DX-33Mhz 37.4

pcem 8.1 486DX2-66 Norton SI score

486DX/2-66Mhz 136.8

pcem 8.1 WinChip90 Norton SI score

WinChip-90 186

Then comparing the scores to this handy (if not ancient) Norton Si benchmark spread we see:

Pentium 60mhz
=============
IBM Clone               P5/60              256k              187.2
w/ Premiere MB

486 DX2/66mhz
=============
Elitegroup (ECS)       iDX2/66             256k              147.3
SA486P AIO-II
INTEL CDC,SIO&DPU

386 DX 33mhz
=============
Forex 36C100 iDX/33 128k 35.9

Well now that interesting, so at a ‘raw’ CPU level, PCem is delivering on what would be classical performance.  So for the heck of it, I load up DOOM, and it runs a bit choppy on the 386, but flies on the 486 & Winchip emulation.  Now that is strange.  And just to confirm…

Terminator Rampage Box (back)

Terminator Rampage Box (back)

They really thought this would be playable on a 486 @ 33Mhz.

So how does it choke?  While going straight is ‘ok’ turning around is so utterly sluggish that there is no feeling of immersion.  It feels like you are driving an incredibly slow tank.  At the same time, the more realistic sprites, and textures serve to make it look even more unrealistic.

So what am I talking about?

Well here is a screenshot of Wolfenstein 3d on the 386DX-33 (and more than playable).

Wolfenstein 3d

Wolfenstein 3d

As you can see, there is no ceiling, and no floor textures.  The walls are all uniform height, and the textures were clearly drawn by hand, giving it a very fake and ’16bit’ feeling.  I should also add on a capable 286, this game is playable.

Terminator Rampage

Terminator Rampage

Now at first it looks like it has a lot in common with the soon to be release DOOM, with textured ceilings and floors.

Doom

Doom

Now as you can see the difference in DOOM is the 2.5D effect of there being lower areas so you can go up and down stairs (while you cannot go under them).  Also Doom introduces dynamic lighting, and better sound rendering.

While I do like Rampage’s upfront map, as you can see thought, it is very square. In a small effort to ‘speed’ up Rampage you can turn off the ceilings and floors revealing a very Wolf3d like environment.  Unfortunately the more they tried to give the world  detail, the more it well just looks flat.

No ceilings, No floors.

No ceilings, No floors.

Which kind of kills the whole thing.  Maybe they should have left out things like water fountains.

High detail sprites

High detail sprites

Then you get things like this computer setup (one of the programmers? The accountant’s lamp is a nice touch) but it’s a sprite, so as you rotate around it, you always see the same face.

Ironically it’s these high resolution background sprites that make the environment feel less real, as they make the rooms feel too open, and too sparse.

Too open, and yet too sparse

Too open, and yet too sparse

It is the real paradox that in a good shooter you have lots of room, and things to duck behind, but the rooms feel too large, and look bizarre with the massive open spaces.  But it is more so a limitation of the time, with the engine being more of an improved Wolf3d engine, than taking a larger leap into being something more 2.5d or 3d like Doom (or the distant Quake).

Another thing that really bugged me was the doors.

Doom door

Doom door

In doom, the doors felt more ‘natural’ in that they weren’t super wide.

Screen Shot 2014-04-28 at 10.44.09 PM

Generic office door in Rampage

But in rampage they are stretched wide giving the impression of why you can’t turn is you are incredibly wide..

Screen Shot 2014-04-28 at 10.43.16 PM

Rampage ‘exit’ door

Even the ‘exit’ door texture still feels too wide.

I could probably get by the empty spaces, but it takes so long to turn around, and the controls feel so unnatural (they don’t even try to be a Wolf3d control-a-like) that it really feels klunky.  No matter what speed you play it at.

It really was an exercise in frustration.

In a surprise move, Microsoft opens up the source to MS-DOS & Word for Windows.

I couldn’t believe it!  You can find the official announcement here.

So this is MS-DOS 1.1 & 2.0 source code.  Pitty it’s not 3.x but heck, it’s a start!

Also the Word in question is 1.1a however it does seem to include the OS/2 bits which was a big surprise.

I haven’t tried to build any of it, as I just got up but I know what I’ll be doing today!

Blackthorne is now freeware!

From DOS ain’t dead: the game was added to battle.net as a free download (1,2).  But you don’t need a battle.net account to download it, just get the ‘executable’ here.

Then unpack with 7zip and rename some files:

$ mv _7770311E01264484BDC66FB81E4EF650 blthorn.exe
$ mv _126448A72F4442D39DCD600746EE09F7 data.dat
$ mv _C987F762EF304955BB86AB432FF6F847 manual.pdf

I set DOSBox to run about 20,000 cycles so it’s not tooo bad.

Blackthorne

Blackthorne

So I was playing with Watcom C/386 8.5 today

This was the first version of Watcom that included the much beloved DOS4/GW dos extender.  Funny enough it doesn’t bind in a stub for running DOS4/GW by itself, you have to do it manually or I guess write the stub for yourself.  Another fun feature of Watcom C/386 8.5 is that it includes the win386 windows extender.

Basically it does to Windows 3.0 what DOS4/GW does to MS-DOS.  Now I’ve never messed around with win386 that much because by the time I did have a 386sx processor with more than 1MB of ram, Win32s & OS/2 2.1 were all the rage.  But in the world of VM’s I thought I’d give it a shot.

The default example is the game of life.  It compiles trivially, but the moment you got to run it you get this fine error:

Ooops!

Ooops!

It turns out that it is a timing loop error, and effects of all things Microsoft FoxPro!  The solution is provided by Microsoft, in the form of IPatchFP.exe. Naturally it is a console Win32 executable.  But with enough of the HX DOS Extender‘s runtime I can run the patch inside of MS-DOS.

With my executable all patched up, I can now run the game of life!

Conway's game of life

Conway’s game of life

Which is all very exciting.

Win386 was very cool for the time, taking the Win16 API and making their own Win32 set out of it. Another cool thing is that there wasn’t a separate runtime to repackage, as Win386 was just bound to the executable. I’m sure it didn’t fall on deaf ears at Redmond with the disillusion of Cruiser, that Win16 could have a brave new future in Win32.

And I should mention I’ve gone over a lot of the Win32s versions here.

Building Descent 1 from source

Descent I

Descent I

I never was good at this game.

As a matter of fact, I was terrible.

Apparently I get lost in 3d worlds like this, and I get dizzy and need to lie down.  Something about these kinds of 3d virtual worlds.  At least it doesn’t pertain to virtual machines.

While browsing around, I came across the source code.  From their notes they built the thing using:

  • Watcom C/C++, version 9.5
  • Microsoft Macro Assembler, version 6.1x
  • Opus Make, version 6.01

 

I was unable to find Opus Make, however with a little bit of tweaking, Microsoft nmake can happily read the makefiles.  The other small snag largely was due to MS-DOS not being able to process massive commandlines, and having to build response files to the librarian and linker in various parts.  But all in all it was thankfully a trivial amount of work to get a working executable.

I only tested it for a few minutes until I was feeling out of it again.  I guess it isn’t surprising, I had issues when it was full screen back in 1994, but in a tiny window in 2013 it is unbearable.

For the two or three people who care, here is my VMDK that I used.  It works fine with Qemu probably other emulators that can read VMDK’s.

 

Public Domain Operating System

So, I came across this project from some random google search on Watcom the other day.  Simply put it is a MS-DOS API that is supported in both a 16bit real mode operating system, and a 32bit operating system.  It is quite sparse but very interesting all the same.  Using the ancient EMX port of GCC you can build 32bit (simple) programs, and run them in the 32bit DOS like Operating System.  What makes this even more interesting is that there is a port to the IBM 370, and 390 based hardware, along with the fictional 380.

Screen Shot 2013-09-16 at 6.40.03 PM

PDOS-16 booting in Qemu 1.6

Screen Shot 2013-09-16 at 6.39.47 PM

PDOS-32 booting in Qemu 1.6

You can download my diskimages, (VMDK & floppy disk) that I’ve used with Qemu to build & boot PDOS both 16bit and 32bit.

The included libc & system libraries are lacking compared to real MS-DOS, but this is public domain code, and with a bit of TLC it could be made into something much more.

Kali

My friend, Mara’akate is working on locating all the versions of Kali, and it’s precursor iDoom/iFrag.  His collection is available here.

Briefly this software let you play Doom (and other Doom variants) with other people over the internet.

I’ll have to write something up about this later on, but before I head out this Friday evening I thought I should at least give him a quick shout out, and hope that anyone out there has anything further to contribute could do so.

I wonder how hard it’d be to organize a Doom match in 2013…. probably just as hard as it was in 1993 if not more difficult.  Although the main issue today would be time, not finding a capable machine like it was back then.

Blake Stone source code released!

Blake Stone!

Blake Stone!

 

Honestly I never played Blake Stone, because as the wikipedia entry says DOOM came out a week later.  Blake is a Wolf3d variant, so I would imagine that the same build environment that can build Wolf3d can build Blake (Borland C 3.1 & TASM 3.1).

For those of you interested in this 20+ year old artifact, you can download the source code here.  And as mentioned Blake can be purchased through steam as part of the Apogee Throwback Pack.

An update to the whole thing, Marakaate has fixed the source well enough to compile!  You can read about his adventure here, and download his updated source here.  He’s also asked me to plug his BBS, marabbs.no-ip.org .. You can just telnet to the IP address.  There is some palette issues as they are compiled into the game, not read from the data files (wtf?) and have been extracted from an exe, however the starting logo is all wrong.. But the game works.

So, enjoy!

European MS-DOS 4.00 aka multitasking DOS

DOS 4.00M

DOS 4.00M

 

So this gem popped into my mailbox as everyone over at os2museum was whipped into a frenzy over the apparence of the predecessor to OS/2 making a showing!

So what is this, where did it come from?

To quote the excellent book, Inside OS/2 here is what this version is all about:

Microsoft started work on a multitasking version of MS-DOS in January 1983. At the time, it was internally called MS-DOS version 3.0. When a new version of the single-tasking MS-DOS was shipped under the name MS-DOS version 3.0, the multitasking version was renamed, internally, to MS-DOS version 4.0. A version of this product–a multitasking, real-mode only MS- DOS–was shipped as MS-DOS version 4.0. Because MS-DOS version 4.0 runs only in real mode, it can run on 8088 and 8086 machines as well as on 80286 machines. The limitations of the real mode environment make MS-DOS version 4.0 a specialized product. Although MS-DOS version 4.0 supports full preemptive multitasking, system memory is limited to the 640 KB available in real mode, with no swapping.

It is not feasible to support general purpose swapping without memory management hardware that is unavailable in 8086 real mode. This means that all processes have to fit into the single 640 KB memory area. Only one MS-DOS version 3.x compatible real mode application can be run; the other processes must be special MS-DOS version 4.0 processes that understand their environment and cooperate with the operating system to coexist peacefully with the single MS-DOS version 3.x real mode application.

Because of these restrictions, MS-DOS version 4.0 was not intended for general release, but as a platform for specific OEMs to support extended PC architectures. For example, a powerful telephone management system could be built into a PC by using special MS-DOS version 4.0 background processes to control the telephone equipment. The resulting machine could then be marketed as a “compatible MS-DOS 3 PC with a built-in superphone.”

Although MS-DOS version 4.0 was released as a special OEM product, the project–now called MS-DOS version 5.0–continued. The goal was to take advantage of the protected mode of the 80286 to provide full general purpose multitasking without the limitations–as seen in MS-DOS version 4.0–of a real-mode only environment. Soon, Microsoft and IBM signed a Joint Development Agreement that provided for the design and development of MS-DOS version 5.0 (now called CP/DOS). The agreement is complex, but it basically provides for joint development and then subsequent joint ownership, with both companies holding full rights to the resulting product.

As the project neared completion, the marketing staffs looked at CP/DOS, nee DOS 5, nee DOS 4, nee DOS 3, and decided that it needed…you guessed it…a name change. As a result, the remainder of this book will discuss the design and function of an operating system called OS/2.

So there you have it, OS/2 started out as a multitasking version of MS-DOS, one can even tell from some of the information on LINK4, that its architecture was also contributed to Windows, and much of how the original Windows 1.x and 2.x ‘wanted to be run from 286 protected mode, well I’d venture a guess that as OS/2 was being ‘born’ there were a lot of plans for this common architecture.  Of course I have no proof but it would seem to fit.. From Saving Windows from the OS/2 Bulldozer:

Thanks to Steve Wood’s original memory-allocation design, many of the changes involved bypassing real-mode code that served only to emulate the protected mode of the 286.

It would make sense at the time both multitasking DOS, being used for parts of early Windows, as both would be fighting the same problems regarding trying to live in the 640kb dos memory area.  While going with a protected mode in OS/2 there would be no need to maintain this, and they could start with a new memory model, Windows 3.0 went with an in house DOS Extender, and fleshed out more of its memory handling to be more 286 native.

Its a shame they didn’t go straight to 32bit stuff on the 386, bypassing the 286 but IBM was the proverbial elephant demanding 286 support.

For anyone wanting to try out this ancient OS, I was able to find out that it does run on DOSBox! So that means if you have a java capable machine you can quickly boot it up! The left alt key brings up the task switcher, and you can use the arrow keys to navigate.

DOOM runs.  I’m really still amazed at this, but it does crash on exit.  I think it was more so geared to small text mode stuff, much like what Windows 1.x or 2.x is capable of on a 286.