[comp.sources.d] NetHack runs under Turbo C

ralf@b.gp.cs.cmu.edu (Ralf Brown) (08/01/87)

I have gotten NetHack running with Turbo C and the DOS linker (TLINK can't
handle it due to the bug confusing classes and groups of segments).  I suspect
the problem with linking mentioned in the README stems from the case-
insensitivity of the DOS linker (the original makefile has a /NOIG switch 
which I assume turns on case-sensitivity with the linker that comes with MSC).
I have added an #ifdef to #define the clashing names to append an underscore
to the uppercase name of each clashing pair.

Diffs (non-context) in a uuencoded ARC file follow.  The diff I have does not
do context diffs or multiple files at once.

Each of the files in HACKDIFF.ARC is the diff between the original and working
versions of the source file with the same name.  Note that I have renamed
MAKE.INI to BUILTINS.MAK (for the Turbo Make), and MAKEFILE.PC to PC.MAK.

You will need plenty of disk space and at least 500K free memory for the 
linker; the .EXE file is 381,548 bytes.


begin 644 hackdiff.arc
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
0%O2!4"%#AR"05(%2L"`:``9U
`
end

-- 
-=-=-=-=-=-=-=-= {harvard,seismo,ucbvax}!b.gp.cs.cmu.edu!ralf =-=-=-=-=-=-=-=-
ARPAnet: RALF@B.GP.CS.CMU.EDU            BITnet: RALF%B.GP.CS.CMU.EDU@CMUCCVMA
AT&Tnet: (412) 268-3053 (school)         FIDOnet: Ralf Brown at 129/31
	        DISCLAIMER?  Who ever said I claimed anything? 
"I do not fear computers.  I fear the lack of them..." -- Isaac Asimov

ralf@b.gp.cs.cmu.edu (Ralf Brown) (08/02/87)

Oops! Somehow I managed to overwrite PCMAIN.C with a slightly older copy, so
when I remade NetHack to incorporate the addition that follows, it aborted
right at the beginning.

In the call to gethdate() in PCMAIN.C, change the argument to
	argv[0] ? argv[0] : "hack.exe"
so that it can find itself to determine whether save files are outdated by a 
new version of the program.

Also, in the makefile, add the rule
	tcc -c $(CFLAGS) -d- $*
to the dependency for RIP.C.  Without the "-d-" flag, the compiler will merge
the strings forming the center of the tombstone, so the tombstone will contain
four lines of the same jumbled-together characters from the four lines that
should be written.  (the implicit rule is the same as the above explicit rule,
but without the -d-)

-- 
-=-=-=-=-=-=-=-= {harvard,seismo,ucbvax}!b.gp.cs.cmu.edu!ralf =-=-=-=-=-=-=-=-
ARPAnet: RALF@B.GP.CS.CMU.EDU            BITnet: RALF%B.GP.CS.CMU.EDU@CMUCCVMA
AT&Tnet: (412) 268-3053 (school)         FIDOnet: Ralf Brown at 129/31
	        DISCLAIMER?  Who ever said I claimed anything? 
"I do not fear computers.  I fear the lack of them..." -- Isaac Asimov

moranw@unioncs.UUCP (William Moran) (08/05/87)

I too got nethack working on a PC using Turbo C (I used a slightly different
set of mods), but I have noticed that when I save and then restore, I lose
all of the monsters on the saved level. They show up on the display, but when
I move onto them, they just vanish. This also happens to my dog. So, I tried
using the diffs posted, and I get the same result. Any clues anyone?
				Bill Moran