A while back while looking for old Rogue source, and resources I came across this page, which includes a lot of old versions, and source code, and the file rog11src.zip.Â But looking at the source in this directory the file rogue.h reveals that it is actually 1.48!
#define REV 1
#define VER 48
And the source is all timestamped from late 1984, and throughout 1985. Â Well isn’t that exciting! Â Also on the same site isÂ rogue-1.48.zip, a binary distribution of Rogue 1.48. Â So I thought I’d give it a shot to build it. Â The source mentions needing the MANX C compiler, which of course a quick google search yields an ad:
Which has all kinds of fascinating information, such as the ability to cross compile from VAX BSD, or PDP-11 BSD, the Amiga, CP/M etc but they don’t actually give any information about versions.
There is, however an Aztec C museum, that hosts several versions. Â And they do have the versions, along with the years to show that the C86 compiler that they had for 1985 would be 3.4b
Compiler Aztec C 8086 3.40a 7-3-86
(C) 1982,83,84,85 by Manx Software Systems, Inc.
And conveniently, they do have a download linkÂ for the comiler here:Â az8634b.zip
Now, since I’m on Windows 10 x64 I can’t easily run MS-DOS based compilers from 1985 at my native CLI, without a tool, and I choseÂ TakedaÂ Toshiya’s MSDOS. Â I was able to ‘bind’ the azmake utility which then could call the needed compiler, assembler, and linker to build an executable without too much work. Â I just created a command file, ‘build.cmd’ in the src directory, to setup the paths and needed variables to quickly compile Rogue from the command line. Â And a quick attempt at playing it showed that although it does compile, it is unplayable!
Well isn’t that great. Â There is a copy protection scheme. Â But wait, we have source so can’t we just by pass it? Â Yes we can! Â In the file dos.asm there is some checks for the variables hit_mul & goodchk. Â So I did the logical thing, which is before it checks them I just set them to good values.
; fake copy protection
mov hit_mul_, 1
mov goodchk_, 0D0DH
And the good news is that I would no longer get killed by the Mafia, but I couldn’t progress down any levels. Â So in the fileÂ oprotec.asm, I saw there is some disk check routine called protect, that I went ahead and bypassed by having it immediately jump down to the ‘good’ label. Everything compiles but it still locks up going down a level. Â So finally I check rogue.h and commend the #define PROTECT statement, and now it’ll run!
I don’t know if anyone would even care, but I added the PDF manual and all the zip files that I used to source this version. Â You can download it here:
If you don’t want to run it under MS-DOS, or something like DOSBox, you can use msdos to run it. Â The title screen is garbled as it doesn’t emulate CGA, but as the rest is just text mode, it’ll run just fine.