Re: [stella] Combat programming

Subject: Re: [stella] Combat programming
From: jimn8@xxxxxxxxxx (Jim Nitchals)
Date: Tue, 4 Mar 1997 09:29:39 -0800 (PST)
> I noticed first and foremost that the code examples you provide have
> better variable/label names than any of my files.  What file are you
> using, or is it your own creation, or a hybrid of yours and someone
> else's, or what?

I started from an anonymous disassembly that was quite old, and fixed it
up myself.  Distributing it would violate Atari's copyright *and* that
of whoever did the first pass at it  :(

> I still think that it sets a data direction register of some kind.
> There is a reason you can't control the tanks while the game is over,
> and it's a different reason than the reason why you can't control them
> when your opponent is exploding.  When Player 0 explodes, Player 1's
> forward velocity remains at whatever joystick position it had before,
> but when the game ends, both joysticks are frozen to a centered position.

Nope.  The boot code sets the data direction register bit 4 to output, 
and it stays that way.  Bit 4 isn't used for joystick data.

The joysticks are frozen by testing whether the game is playing.  See
the code at $F316.  It replaces the joystick data with $FF if the game
is not active.  You already caught this.

But more significantly, the code to handle the joysticks isn't even
branched to if a player is doing the death thing.  Location $8A is the
"DoingDeath" flag, and it's tested before joysticks are handled.  That's
probably where you got lost.  See $F2DA.  If doing death, the dead
player is rotated (bit 0 of DoingDeath says which player died), his
player color is set so he's not invisible, and the death sound is
updated.  The joystick handler, just below that, is not executed.



--
To unsubscribe, send the word UNSUBSCRIBE in the body of a message to
stella-request@xxxxxxxxxxx

Current Thread