[comp.sources.games.bugs] NetHack 3 strange abort

kayvan@mrspoc.Transact.COM (Kayvan Sylvan) (09/01/89)

I hope that someone has seen this one before, because I am stumped.

I'm running NetHackl 3 at patch level 2 on a Xenix 386 system running SCO
Xenix 2.3.2. Sometimes, and it *always* happens while fighting a monster,
I'm simply thrown back out to the shell. No core dump, no message, no nothing.

This is exceedingly annoying, to say the least.

If you have an answer for me, I would *sure* love to hear it!!

			---Kayvan
-- 
Kayvan Sylvan @ Transact Software, Inc. -*-  Los Altos, CA (415) 961-6112
Internet: kayvan@Transact.COM -*- UUCP: ...!{apple,pyramid,mips}!mrspoc!kayvan

keithh@atreus.uucp (Keith Hanlan) (09/02/89)

In article <KAYVAN.89Aug31212322@mrspoc.Transact.COM> kayvan@mrspoc.Transact.COM (Kayvan Sylvan) writes:
>I'm running NetHackl 3 at patch level 2 on a Xenix 386 system running SCO
>Xenix 2.3.2. Sometimes, and it *always* happens while fighting a monster,
>I'm simply thrown back out to the shell. No core dump, no message, no nothing.
>
>This is exceedingly annoying, to say the least.
>
>If you have an answer for me, I would *sure* love to hear it!!

	I'd put good money that you are an exuberant fighter...

	You're hitting ! (exclamation mark) - it is a design feature. You
	are not being thrown "back" to the shell. You are nesting "into" a
	shell. Simply exit from the shell and you will be back in the game.

	Since the fighting isn't in realtime you might want to slow down the
	combat (and hence the keystrokes)...

	Fun time waster eh?

scott@clmqt.marquette.Mi.US (Scott Reynolds) (09/02/89)

keithh@atreus.uucp (Keith Hanlan) writes:

>In article <KAYVAN.89Aug31212322@mrspoc.Transact.COM> kayvan@mrspoc.Transact.COM (Kayvan Sylvan) writes:
>> [problem with attacking:  on Xenix 386, nh3 sometimes dies with no message.]
>>
>	I'd put good money that you are an exuberant fighter...
>
>	You're hitting ! (exclamation mark) - it is a design feature. You
>	are not being thrown "back" to the shell. You are nesting "into" a
>	shell. Simply exit from the shell and you will be back in the game.

Sorry, but that really isn't the case.  I have the same problem;
sometimes I don't even have to actually attack, just wait to _be_ attacked
and I'm dumped out.  We're talking bug here, not OE (operator error).
Besides, when was the last time anyone accidentally hit the ! key?

I'd also love to hear of a fix for this one.
-- 
Scott Reynolds				rutgers!mailrus!clip!clmqt!scott
Enterprise Information System		scott@clmqt.marquette.Mi.US
	"Insufficient facts always invite danger." -- Spock

kayvan@mrspoc.Transact.COM (Kayvan Sylvan) (09/03/89)

In article <178@bmers58.UUCP> keithh@atreus.uucp (Keith Hanlan) writes:

> In article <KAYVAN.89Aug31212322@mrspoc.Transact.COM> kayvan@mrspoc.Transact.COM (Kayvan Sylvan) writes:
> 
> [ my text about aborts while fighting deleted ]
> 
> 	I'd put good money that you are an exuberant fighter...

Truth.

> 	You're hitting ! (exclamation mark) - it is a design feature. You
> 	are not being thrown "back" to the shell. You are nesting "into" a
> 	shell. Simply exit from the shell and you will be back in the game.

No. That was one of the first things I thought of. It simply dies. The prompt
appears in the middle of the screen (it does not clear the screen like when I
hit the '!' key) and I do a ps to find that this is indeed my login shell.

Thanks for trying.

			---Kayvan
-- 
Kayvan Sylvan @ Transact Software, Inc. -*-  Los Altos, CA (415) 961-6112
Internet: kayvan@Transact.COM -*- UUCP: ...!{apple,pyramid,mips}!mrspoc!kayvan

edb_thorsten@tor.nhh.no (Thorsten Lockert) (09/05/89)

In article <KAYVAN.89Sep2121750@mrspoc.Transact.COM>, kayvan@mrspoc.Transact.COM (Kayvan Sylvan) writes:
> No. That was one of the first things I thought of. It simply dies. The prompt
> appears in the middle of the screen (it does not clear the screen like when I
> hit the '!' key) and I do a ps to find that this is indeed my login shell.

I've seen similar behaviour, except that Xenix says 'Illegal
instruction'.  Again, it happens only during fights.  Anyone?

-- 
Thorsten Lockert                        thorsten@bbb.uu.no
Bergen By Byte A/S                      thorsten@bbb.UUCP
Mollesmauet 1C                          edb_thorsten@nhh.no
N-5017 Bergen
Norway                                  MeSs-DOS?  Just say NO!

karl@ddsw1.MCS.COM (Karl Denninger) (09/05/89)

In article <74@tor.nhh.no> edb_thorsten@tor.nhh.no (Thorsten Lockert) writes:
>In article <KAYVAN.89Sep2121750@mrspoc.Transact.COM>, kayvan@mrspoc.Transact.COM (Kayvan Sylvan) writes:
>> No. That was one of the first things I thought of. It simply dies. The prompt
>> appears in the middle of the screen (it does not clear the screen like when I
>> hit the '!' key) and I do a ps to find that this is indeed my login shell.
>
>I've seen similar behaviour, except that Xenix says 'Illegal
>instruction'.  Again, it happens only during fights.  Anyone?

I used to see this all the time on Nethack 3, but it has disappeared with
Patch 2.  At least I think it has; after several hours of play by myself and a
couple of other players, no one has reported it.

--
Karl Denninger (karl@ddsw1.MCS.COM, <well-connected>!ddsw1!karl)
Public Access Data Line: [+1 312 566-8911], Voice: [+1 312 566-8910]
Macro Computer Solutions, Inc.		"Quality Solutions at a Fair Price"

beng@microsoft.UUCP (Samurai Cat) (09/06/89)

In article <74@tor.nhh.no> edb_thorsten@tor.nhh.no (Thorsten Lockert) writes:
| 
| I've seen similar behaviour, except that Xenix says 'Illegal
| instruction'.  Again, it happens only during fights.  Anyone?

Happens in fights right after a hit which would have killed
your opponent and given you (the player) a new experience level.
This arises from a bug resulting in incorrect object code for
the sequence

	MOVSX esi, al.

It instead emits the sequence for a different destination register,
then proceeds as if ESI had been loaded; eventually IDIV esi
results in a division-by-zero exception.  Cf exper.c:newexplevel
where the character receives increased spell energy.

--
Ben Goetter			microsoft!beng
blah blah blah blah disclaimer blah blah blah

gordon@sneaky.UUCP (Gordon Burditt) (09/06/89)

>> No. That was one of the first things I thought of. It simply dies. The prompt
>> appears in the middle of the screen (it does not clear the screen like when I
>> hit the '!' key) and I do a ps to find that this is indeed my login shell.
>
>I've seen similar behaviour, except that Xenix says 'Illegal
>instruction'.  Again, it happens only during fights.  Anyone?

I partly tracked this down on a friend's 386 Xenix machine.
The illegal instruction is really "mod by zero" in rnd(), because
rnd(0) was called from newexplevel().  It (almost) always happens in
fights because killing a monster is the primary way of gaining experience
to go up a level.

This doesn't make any sense, though, because for rnd(0) to be called,
SPELLS has to be configured, and WIS has to be negative.  As shown on the
screen, it wasn't even close to negative, and the game isn't supposed
to allow it below 3.  There may be wisdom-draining monsters, but not this
early in the dungeon.

I stuck code into rnd() similar to:

	if (x == 0)
	{
		pline("Some bozo code called rnd(0) again");
		return 1;
	}

along with some debugging code to print WIS.  This prevents crashing
the game but doesn't hide the problem.  Debug printouts of WIS before
and after indicate it's perfectly normal.

Versions & other stuff:

It bombs on 386 Xenix (not sure which version), Nethack 3.0, patchlevels
0, 1, and 2, and generally takes less than 20 minutes for my friend to
demonstrate on request.

It does NOT bomb on 68000 Xenix (int = 32 bits, if that's relevant), 
Nethack 3.0, patchlevels 0, 1, and 2, in spite of too much time playing the
game.

Minimal changes were made to the source on both systems.  The special features
that take memory were left in.  Both systems are more-or-less "System V".
About the most serious change was taking out the declaration of sprintf(), 
since it conflicted with include files, and changing the suffix assumed to
be used by compress to match the version on my system.

						Gordon L. Burditt
						...!texbell!sneaky!gordon