Forum:Where to get compiled versions of NetHack 3.0
I played an old version of NetHack 3.0 a long time ago and have been wanting to revisit that early edition of the game. Of course I appreciate the new features and general stability of 3.4.3 but really enjoyed the simplicity and lawlessness of the 3.0 series. Unlimited spellcasting, polypiling mayhem, instadeath fires of the underworld, spellbooks of genocide, heh. I particularly love the way the Endgame level was structured; just a single level with just the right amount of challenge, and artful design as well. It was possibly my favorite level of any Roguelike game ever.
I believe the version I played was either 3.0.3 or 3.0.4, judging from the descriptions on this website's game history. There was color, but rather primitive: All objects of a particular type were the same color. All of the monsters were red, except for yellow lights which were actually yellow. There were some features that had disappeared by version 3.0.10 (also known as 3.0j) such as osquips - a monster from the quadruped class. Anybody else ever see a version like this?
Well, I've been searching the web for hours and have been unable to find a ready-to-use program. This site does have links to Ali's page with the sourcecode to all versions of the 3.0 series... but I wouldn't know how to go about making a working program out of these raw materials. Compiling a DOS program that is more than 20 years old seems a daunting task... do you run an old compiler within a DOS emulator?
If anybody knows where one can find versions of NetHack 3.0 that are ready to use, I would most appreciate it. If not... well, if any experienced folks have advise on how to compile these old versions of NetHack, I'm willing to give it a try...
- If you've got Linux handy, it should be possible to compile on that. You might try your idea of compiling on a DOS emulator; I'd suggest DJGPP for the compiler. Windows wasn't supported until NetHack 3.1.1, but MinGW or Cygwin might give a usable binary.--Ray Chason (talk) 06:41, 4 April 2014 (UTC)
184.108.40.206 15:45, 9 April 2014 (UTC) Ray Chason - I don't have Linux on my machine, unfortunately. I've just got Windows XP. I tried using MinGW (a gigabyte-sized program...!) but don't know how to get it up and running. I'm trying out DJGPP and it seems easier to use. However, I would need guidance, as the instructions that come with the Nethack sourcecode only give you clues for using older compilers from ages past.
Tjr - I second that! It would be great to have playable downloads of old NetHack here. I can't imagine why the DevTeam bothers to have several versions of 3.3 and 3.2 available on their site, when they are basically just inferior versions of 3.4, but then doesn't bother to provide any 3.0 or earlier versions - they are really a different experience than new NetHack, and despite the bugginess, are lots of fun and worth playing.
Anyway, I may succeed in compiling with DJGPP after all, but I would need a little help...
My progress thus far, for those interested: I opted for making a batch file that starts DJGPP, as per the instructions, instead of messing around with my autoexec.bat. I've got DOSBox handy in case I have to run DJGPP within an emulator for proper results, but it seems like DJGPP might actually work in Windows XP through the batch file. I've extracted the NetHack sourcecode and arranged the file/subdir structure as outlined in the "install.dos" instructions.
Now, I must choose a makefile in the src directory and modify it, as well as make.ini, to fit DJGPP's requirements. Install.dos tells you which file(s) and what modifications to make if you are using Microsoft C, Turbo C, and NDMake. But if you are intending to use a different compiler such as DJGPP, the instructions tell you that "you will have to adapt one of the Makefiles and the Make.ini file to your needs. Good luck." Isn't that nice, it even wishes me good luck. Fills me with confidence :-/
Any of you guys capable and willing to lend some assistance? :-)
- If your XP is a 32 bit version, DJGPP should run just fine.
- I sounded off before I reviewed the code. The instructions in Install.dos and Install.ovl are relevant to the 16 bit compilers in use at that time. DJGPP was not officially supported until 3.1. The instructions in Install.unix might be a better starting point. I may have to get this working myself before I can be of further assistance.
- In the current version, MS-DOS and Windows have separate routines, mainly in sys/msdos and sys/winnt, to deal with screen I/O. These were lacking before 3.1; anything you build without significant modification will draw by writing escape sequences to standard output, as a Unix build would. It seems an uphill climb to get that to work with Windows, but with MS-DOS, you can install ANSI.SYS. You might need that DOSBox to get ANSI.SYS to work.