billw@killer.UUCP (12/07/87)
When, when, oh when will someone finally make nethack REALLY work on a System
V machine?
At 1.4, I hacked on nethack to try to get it running on killer, a 3B2 that
at the time was on system V release 2.0.5 (we've since upgraded to 3.1).
At the time, I beat up mercilessly on termcap.c for an hour or so and the
program pretty much worked.
termcap.c is still a mess. Whomever claimed that the program does, indeed
function if TERMINFO is defined has rocks in his head. I have to go through
the file and change half of the tgetwhatever calls because the wrong 2-letter
ID codes are used. The delay_output is a joke (1.4 just printed the string
$<50> instead of padding) which should not even be there for System V users:
terminfo has a delay_output built in.
Well, I have actually gotten it do compile. I have to manually set the value
of XD to a linefeed, since cursor down doesn't work (seems to do a return
instead) and xd isn't even known to terminfo. Let's give nethack a try.
Looks fine for about ten seconds. Then you start to REALLY abuse the program:
you try to move. Forget about a nicely-formatted screen. And I seem to know
what all of my objects are. Identify? Who needs it? I rather strongly doubt
that this is a new 'feature' in 2.2.
My next bitch, pardon my Francais, may be a perfectly legitimate bug. When
I walk into my dog, I see "You stop to avoid hitting ." Certainly not the
most meaningful output in such a situation.
Well, I'm done ranting at the various people who's put their two cents worth
into the game. I'm sure all the new mods are quite nice, but I'm damned if I
can use them.
A plea to Mike Stephenson: please, PLEASE! get a real, working compile-time
option for System V.
A plea to anyone who has compiled this monster on a 3B2: hello, friend.. let's
talk. Really. My address will be right beneath the dotted line --
-- 
Bill Wisner, HASA "A" Division		..{codas,ihnp4}!killer!billw
"I am not an economist. I am an honest man."brothers@who.rutgers.edu (Laurence R. Brothers) (12/08/87)
I've noticed the dogname bug too, but I'm running Sun Unix 4.2, which
is pretty much BSD. Furthermore, whether or not TERMINFO is defined,
vt52 and visual 200 terminals cause a crash in termcap.c with a null
pointer (SO, to be exact). Fortunately the program otherwise works
well on vt100 and the sun consoles (!). 
By the way, have you noticed a bug in HACKOPTIONS? Segmentation error
if dogname is in the variable.... It seems the dogs code is kind of
screwed up in addition to termcap....
-- 
			 Laurence R. Brothers
		      brothers@paul.rutgers.edu
            {anywhere}!rutgers!paul.rutgers.edu!brothers
 "Whistling in the dark is not the method of true philosophy. - W. v. O. Quine"roynh@ihlpg.ATT.COM (Harkness) (12/08/87)
In article <2361@killer.UUCP> billw@killer.UUCP (Bill Wisner) writes: >When, when, oh when will someone finally make nethack REALLY work on a System >V machine? A good question. I am reletively new to the new and having just recently picked up a 3b1 in the fire sale, I was happy when I say nethack with a Makefile "for the AT&T Unix PC using shared libraries". A good joke. after making normal adjustments to the makefile so that it would fit on my system, I tried a 'make all'. it got down to makedefs in the complile and then hung. for over an hour. I have 50k of ouput from 'make lint'. It will be a while before I decide to wade through it. >A plea to Mike Stephenson: please, PLEASE! get a real, working compile-time >option for System V. This would be welcome by me too. I was curious as to what nethack was like as a game - I've never played any version of it, not even rogue - I guess I will be curious for a while. > >A plea to anyone who has compiled this monster on a 3B2: hello, friend.. let's >talk. Really. My address will be right beneath the dotted line -- >-- >Bill Wisner, HASA "A" Division ..{codas,ihnp4}!killer!billw >"I am not an economist. I am an honest man." I am not familier with a 3b2, but maybe it is close enough to a 3b1 for us to talk Roy Harkness ihnp4!ihlpg!roynh AT&T Bell Labs --------------------------------------- Naperville Il. a version of unix called SYSTEM V
ericb@hplsla.HP.COM (Eric Backus) (12/09/87)
I just can't let this complaint go by.
My machine  runs HP-UX,  which is System V with some added  features.  I
was  thoroughly  impressed  by how easy it was to get  NetHack  running.
There is over a  megabyte  of source  code  here,  designed  on  various
different  computers,  and the  designers  probably have never even seen
HP-UX!  Mike and the rest have done an outstanding job.
I, too, ran into the '$<50>'  problem.  I don't know what the  'correct'
solution  should be, but I have a nap routine which is like sleep except
it does millisecond delays.  I put this instead of the old stuff:
	fflush(stdout);
	nap(50);
and now it works fine.  If anyone out there want this nap  routine,  let
me know.  Other than the  '$<50>'  problem,  my screen  looks just fine.
Note that even if you leave the code as-is, you can define  'nonull'  in
your HACKOPTIONS to avoid the messy output.
I had to comment out the 'extern' part of the declaration of 'ospeed' in
termcap.c.  I don't  know  why, but it  works.  This is the  ONLY  other
change I had to make to termcap.c.
I ran into the 'You stop to avoid hitting .'  problem, too.  I solved it
by removing  the block of code that stops you from  hitting your dog.  I
believe that this code should be removed anyway, since immediately after
it there is some code that will ASK you if you  really  want to do that.
I don't like being  absolutely  prevented  from  hitting my dog, even if
it's unlucky to do it.  Here's a context diff if anyone's interested:
*** fight.c.orig	Mon Dec  7 02:11:10 1987
--- fight.c	Mon Dec  7 02:12:07 1987
***************
*** 460,465
  	 * There is protection only if you're not blind, confused or
  	 * invisible.
  	 */
  	/*  changes by wwp 5/16/85 */
  	if (!Blind && !Confusion && !Hallucination
  	    && mdat->mlet == 'd' && mtmp->mtame) {
--- 460,466 -----
  	 * There is protection only if you're not blind, confused or
  	 * invisible.
  	 */
+ #ifdef	unused
  	/*  changes by wwp 5/16/85 */
  	if (!Blind && !Confusion && !Hallucination
  	    && mdat->mlet == 'd' && mtmp->mtame) {
***************
*** 472,477
  		    pline("You stop to avoid hitting your dog.");
  		return(TRUE);
  	}
  	if (flags.confirm && (mtmp->mpeaceful || mtmp->mtame) && ! Confusion
  	    && !Hallucination && !Invisible)
  
--- 473,479 -----
  		    pline("You stop to avoid hitting your dog.");
  		return(TRUE);
  	}
+ #endif	unused
  	if (flags.confirm && (mtmp->mpeaceful || mtmp->mtame) && ! Confusion
  	    && !Hallucination && !Invisible)
I also had a problem with rnd.c.  It uses 'random()' rather than 'rand()',
which I believe is a bug.  The file config.h sets up a definition of 'rand()'
appropriate for whatever version of UNIX you have.  Here's a context diff
if anyone's interested:
*** rnd.c.orig	Mon Dec  7 01:06:33 1987
--- rnd.c	Mon Dec  7 01:06:48 1987
***************
*** 2,8
   */
  #include	"config.h"
  #ifdef UNIX
! #define RND(x)	(random() % (x))
  #else
  /* Good luck: the bottom order bits are cyclic. */
  #define RND(x)	((rand()>>3) % (x))
--- 2,8 -----
   */
  #include	"config.h"
  #ifdef UNIX
! #define RND(x)	(rand() % (x))
  #else
  /* Good luck: the bottom order bits are cyclic. */
  #define RND(x)	((rand()>>3) % (x))
Finally, I have a couple minor bug reports/enhancement requests:
1)  Currently, the Makefile sets up the nethack directory as readable by
    anyone.  This seems like it encourages people to copy save files, to
    read the rumors  file, and to do a 'strings  nethack'  to figure out
    what's  going on.  On my machine, I make the nethack  directory  and
    all files in it unreadable.  The file  /usr/games/nethack,  which is
    the shell  script  that  starts  the game, must then be given  04755
    mode, and /usr/games/lib/nethack/nethack needs only 0750 mode.
2)  When a shell escape is done, or when an external  pager is called to
    look at the help files, SIGQUIT is left ignored.  This is minor, but
    it's  incorrect.  When the  mailer  is called  for a scroll of mail,
    SIGHUP and SIGINT are left ignored.  This, too, is incorrect.
3)  When I ask  nethack  what an 'r' is, it says it's a  rockmole.  It's
    also a rat sometimes.  The same may be true for kobolds also.
4)  The code that  absolutely  prevents you from hitting your dog should
    be removed,  leaving the code that asks for  confirmation  (and uses
    the HACKOPTION confirm).
			      - Eric Backus
				ihnp4!{hplabs|harpo}!hp-pcd!hplsla!ericb
				(206) 335-2495alex@umbc3.UMD.EDU (Alex S. Crain) (12/09/87)
In article <4435@ihlpg.ATT.COM> roynh@ihlpg.UUCP (55315-Harkness,R.N.) writes: >In article <2361@killer.UUCP> billw@killer.UUCP (Bill Wisner) writes: >>When, when, oh when will someone finally make nethack REALLY work on a System >>V machine? >A good question. I am reletively new to the new and having just recently >picked up a 3b1 in the fire sale, I was happy when I say nethack with >a Makefile "for the AT&T Unix PC using shared libraries". A good joke. Umm...Forgive me for my lack of sympathy but...I configured the config.h file, used the Makefile.unix, ran make, took the optimizer off of three files that had long-branch assembly errors, added extern to a variable to termcap.c (ospeed, it was ifndefed TERMINFO, and I declared TERMINFO in config.h, and it made without a hitch. all on a 3b1 running sys5.31. If you like I can send or post the config.h and Makefile. :alex. alex@umbc3.umd.edu
billw@killer.UUCP (Bill Wisner) (12/10/87)
Let me clarify. When I said System V machines, I meant non-3B1s. Those are
obviously supported; but has anybody goten it running on a 3B2? 3B5? 3B20?
-- 
Bill Wisner, HASA "A" Division		..{codas,ihnp4}!killer!billw
"This novel is not to be tossed lightly aside, but to be hurled with great
force." -- Dorothy Parkerbillw@killer.UUCP (Bill Wisner) (12/10/87)
System V's curses package ahs its own delay_character routine, making the one
in termcap.c redundant. I just hid the entire routine and it seems to work.
I still have big problems with cursor movement, though..
-- 
Bill Wisner, HASA "A" Division		..{codas,ihnp4}!killer!billw
"This novel is not to be tossed lightly aside, but to be hurled with great
force." -- Dorothy Parkergrubin@tramp.Colorado.EDU (Rick Grubin) (12/11/87)
In article <2394@killer.UUCP> billw@killer.UUCP (Bill Wisner) writes: >Let me clarify. When I said System V machines, I meant non-3B1s. Those are >obviously supported; but has anybody goten it running on a 3B2? 3B5? 3B20? >-- >Bill Wisner, HASA "A" Division ..{codas,ihnp4}!killer!billw Yes, we have it running on a 3B2 with SysV r3.1. As an earlier post by my friend said, it took us 3 people and two nights to fix some bugs and to make a Berkeley-esque termcap work (contrary to the Makefile, curses will NOT work) with this thing. But it is working. Just a few more bugs to fix (like why zapping wands leave trails of `L' on the screen) and all will be OK. I (we) would suggest that you look at the config.h file very closely, as clues in there will help you fix most problems. And if you name your dog, you will see the message "You stop to avoid hitting dog-name" instead of the ".", even without the fix to fight.c. Rick Grubin, Academic Computing Services, University of Colorado, Boulder grubin@tramp.Colorado.EDU ...{nbires,hao,seismo,ihnp4}!boulder!tramp!grubin
rdj@ttrdf.UUCP (Robert D. Jackson) (12/11/87)
In article <2394@killer.UUCP> billw@killer.UUCP (Bill Wisner) writes: >Let me clarify. When I said System V machines, I meant non-3B1s. Those are >obviously supported; but has anybody goten it running on a 3B2? 3B5? 3B20? How about an Amdahl running System V Release 2? I got it to compile, but it core dumps right after you select your character! -- Bob Jackson (rdj@ttrdf) 312-982-3578 AT&T Information Systems Computer Systems Division, 5555 Touhy Ave., Skokie, IL 60077 PATH: ...!ihnp4!ttrdf!rdj
rapin@bnrmtv.UUCP (Eric Rapin) (12/15/87)
In article <313@ttrdf.UUCP>, rdj@ttrdf.UUCP (Robert D. Jackson) writes: > How about an Amdahl running System V Release 2? I got it to > compile, but it core dumps right after you select your character! > > Bob Jackson (rdj@ttrdf) 312-982-3578 > AT&T Information Systems > Computer Systems Division, 5555 Touhy Ave., Skokie, IL 60077 > PATH: ...!ihnp4!ttrdf!rdj I had the same thing happen to me after I made the simple change of deleting the "external" part of the "ospeed" declaration, it core dumps after selecting the character. Still haven't played hack since March...oh woe is me :') -- Eric B. Rapin UUCP: {3comvax,amdahl,ames,csi,hplabs}!bnrmtv!rapin Bell-Northern Research, Inc. ARPA: bnrmtv!rapin@ames.arpa Mountain View, California Work: 415-940-2826 - can leave messages at both Home: 408-737-2171 - numbers
allbery@ncoast.UUCP (Brandon Allbery) (12/15/87)
As quoted from <4435@ihlpg.ATT.COM> by roynh@ihlpg.ATT.COM (Harkness): +--------------- | In article <2361@killer.UUCP> billw@killer.UUCP (Bill Wisner) writes: | >When, when, oh when will someone finally make nethack REALLY work on a System | >V machine? | A good question. I am reletively new to the new and having just recently | picked up a 3b1 in the fire sale, I was happy when I say nethack with | a Makefile "for the AT&T Unix PC using shared libraries". A good joke. +--------------- I would suspect you botched the changes; the Makefile ran perfectly on my system. The only problems were apply.c and shknam.c, both of which were bitten by an apparent bug in the 3B1 C compiler; I had to cc -S both these files and change a "br.b" instruction to a "br.w" for them to assemble. The executable works fine. (I may send out diffs for GRAPHICS under Unix, via the alternate character set support in terminfo; of course, the diffs will include diffs to get it working under System V....) +--------------- | >A plea to anyone who has compiled this monster on a 3B2: hello, friend.. let's | >talk. Really. My address will be right beneath the dotted line -- | | I am not familier with a 3b2, but maybe it is close enough to a 3b1 for us | to talk +--------------- They aren't; believe me, they aren't. I just helped a friend get a 3B2/310 going and 3B1 experience helped not one bit. -- Brandon S. Allbery necntc!ncoast!allbery@harvard.harvard.edu {hoptoad,harvard!necntc,cbosgd,sun!mandrill!hal,uunet!hnsurg3}!ncoast!allbery Moderator of comp.sources.misc
still@usceast.UUCP (Bert Still) (12/16/87)
In article <2394@killer.UUCP> billw@killer.UUCP (Bill Wisner) writes: >Let me clarify. When I said System V machines, I meant non-3B1s. Those are >obviously supported; but has anybody goten it running on a 3B2? 3B5? 3B20? >-- >Bill Wisner, HASA "A" Division ..{codas,ihnp4}!killer!billw I didn't have much of a problem. It took me about 20 minutes to take care of a problem in the case when TERMINFO is defined. At least under System V release 2, the termcap routines are in the curses library. So, I modified the config.h files to define TERMINFO, removed the #ifndef TERMINFO clause around the definition of ospeed in termcap.c, and changed the "bs" attribute to read "kb" which is the attribute in the System V terminfo database. The thing compiled and runs without a hitch on my 3B2/300. Incidentally, the "You stop to avoid hitting ." problem occurs because the dog has not been given a name (somebody forgot to initialize a field); if you 'C' the little dog something (Spot, for example :-) then the message will read "You stop to avaoid hitting Spot." As soon as I figure out what I need to initialize, I'll post the answer. Bert UUCP: ...seismo!ncr-sd!ncrcae!usceast!still CSNET: still@cs.scarolina.edu BITNET: T410119@UNIVSCVM (truncates things at column 80) Bert Still, Dept of Math, University of South Carolina, Columbia, SC 29208
ronald@csuchico.EDU (Ronald Cole) (12/17/87)
In article <2394@killer.UUCP> billw@killer.UUCP (Bill Wisner) writes: >Let me clarify. When I said System V machines, I meant non-3B1s. Those are >obviously supported; but has anybody goten it running on a 3B2? 3B5? 3B20? I have gotten it to compile on an AT&T 3B5 and it runs fine!! Wish I could say the same for NetQuest... Send me Email if you want context diffs, if I get enough requests, I'll post to the net. -- Ronald Cole | uucp: ihnp4!csun!csuchico!ronald AT&T 3B5 System Manager | PhoneNet: ronald@csuchico.edu California State University, Chico | voice (916) 895-4635 "... and if you don't like it, you must lump it." -Joseph Smith
brian@bucc2.UUCP (12/17/87)
> Let me clarify. When I said System V machines, I meant non-3B1s. Those are > obviously supported; but has anybody goten it running on a 3B2? 3B5? 3B20? I got it running at both the 3B15 and the 3B5 here at Bradley University with almost no problems at all... of course on the 3B5 the linker dies if I try to compile with the -g option... ............................................................................... When the going gets weird, the weird turn pro. { bucs1!brian Brian Michael Wendt {uiucdcs,cepu,ihnp4}!bradley! { brian { bucc2!brian
idall@augean.OZ (Ian Dall) (12/22/87)
In article <3394@sigi.Colorado.EDU> grubin@tramp.Colorado.EDU (Rick Grubin) writes: >Just a few more >bugs to fix (like why zapping wands leave trails of `L' on the screen) >and all will be OK. > I had a similar problem porting Hack (NOT NetHack) to SysV. The problem was that even using the termcap compatibility functions, padding characters are specified differently with terminfo. Consequently characters which would specify padding characters just get sent to the screen when using terminfo. The padding characters are used to cause flights of arrows, blazes of fire, bolts of cold etc to take a definite time (50ms per space I think). I don't have the sources or the documentation to hand but I seem to recall it involved putting angle brackets round some digits in a character string argument to "tputs". -- Ian Dall "In any argument there will be people on your side who you wish were on the other side." idall@augean.oz
apc@cblpe.ATT.COM (Alan Curtis) (12/22/87)
In article <630@umbc3.UMD.EDU> alex@umbc3.UMD.EDU (Alex S. Crain) writes: >In article <4435@ihlpg.ATT.COM> roynh@ihlpg.UUCP (55315-Harkness,R.N.) writes: >>In article <2361@killer.UUCP> billw@killer.UUCP (Bill Wisner) writes: >>>When, when, oh when will someone finally make nethack REALLY work on a System >>>V machine? >>A good question. I am reletively new to the new and having just recently >>picked up a 3b1 in the fire sale, I was happy when I say nethack with >>a Makefile "for the AT&T Unix PC using shared libraries". A good joke. > >Umm...Forgive me for my lack of sympathy but...I configured the config.h file, >used the Makefile.unix, ran make, took the optimizer off of three files that >had long-branch assembly errors, added extern to a variable to termcap.c >(ospeed, it was ifndefed TERMINFO, and I declared TERMINFO in config.h, and >it made without a hitch. all on a 3b1 running sys5.31. If you like I can send >or post the config.h and Makefile. > > :alex. >alex@umbc3.umd.edu The in the next article which I don't know how to read in to THIS followup someone states that "of course you could do that on a 3b1, but what about ....." I have done exactly the mentioned above things and nethack works for me (and my distracted group) on a 3b20 and an amdahl-big_thing. Save I din't have to remove the optimization of any file. I was quite impressed by how well it did compile on these machines. I even have a new-make makefile if anyone out there wants that... -- This space intentionally left | Alan P. Curtis blank | AT&T,BTL,CB | +1 614 860 4749 -----------------------------------------------| apc@cblpe.ATT.COM Kudos to stargate for redistribution rights | !cbosgd!cblpe!apc