Jump to content
IGNORED

Joystick Problem Specific to Towering Inferno


TheGhost

Recommended Posts

I recently procured a rather clean copy of Towering Inferno. The game starts normally, but the fire fighter will not move. With out changing anything else (other than putting a different cart in), the system and joystick work fine with every other game I own. I've tried everything I can think of, but it just doesn't respond to any joystick input - movement or fire button.

 

Any ideas?

 

Thanks!

- Mark

Link to comment
Share on other sites

Just like Wizard of Wor, READ THE CARTRIDGE.

It don't say nuthin' on da cartridge about dat:

 

http://www.atariage.com/cart_page.html?SoftwareLabelID=565

 

 

And good luck finding it in the instructions:

 

http://www.atariage.com/manual_html_page.html?SoftwareLabelID=565

Link to comment
Share on other sites

Since the program is already (usually) doing a LDA SWCHA, you'd just need 4xLSR (or ASL...depending if the program is using the value low or high), AND SWCHA to merge both sticks. That's 7 added bytes. The button is AND INPT5 below the INPT4 read (another 2 bytes).

 

Is it really bad practice to do multiple reads in this manner? I've yet to see evidence that it is.

Link to comment
Share on other sites

Since the program is already (usually) doing a LDA SWCHA, you'd just need 4xLSR (or ASL...depending if the program is using the value low or high), AND SWCHA to merge both sticks. That's 7 added bytes. The button is AND INPT5 below the INPT4 read (another 2 bytes).

Yes, that's it. I just woke up and didn't have my thinking cap on yet. :D

 

 

Is it really bad practice to do multiple reads in this manner? I've yet to see evidence that it is.

Should be fine.

Link to comment
Share on other sites

Hmmm I was having this exact problem and didn't think about using the other controller port. That is an odd thing, and my cart doesn't say anything about it either. I'll have to try this again, I just thought the game was a little screwy. I got it in a lot off Craigslist so anything is possible from there.

Link to comment
Share on other sites

Programmer Paul Allen Newell explains...I think...

 

Towering Inferno was resurrected from the archives and a couple more game play passes were done. This one went out to kid testing as well. I remember clearly that I made the deadline for the game and it got shipped, but Jay Smith's son discovered that the left player's score was on the right side of the screen and vice versa. We were too far along the mastering process to redo it at WT, so I had to call up the folks making the PROMs and tell them to change one byte from "do on carry" to "don't do on carry" (or the other way, I can't remember). That is still one of the riskiest things I've done since they couldn't test and we just had to cross our fingers that I got it right (luckily, I did).
Edited by CRV
  • Like 1
Link to comment
Share on other sites

Sure. The clearest example is looking at the fire button code (because the stick is just a carry-status branch switch).

 

LB2CA: jsr  LB052   ;6 get player#
      eor  #$01    ;2 switch to next player??
      tax          ;2 use as index
      LDA  $83     ;3
      STA  HMP1    ;3
      LDY  INPT4,x ;4 read that player's button

That looks pretty straightforward (except the EOR...which might make more sense by looking at the subroutine).

 

But looking at the "get player#" subroutine reveals...

 

LB052: lda  $EB     ;3 Get current player (bit0)
      and  #$01    ;2 trim to use only values 0 and 1
      tax          ;2 pass to the X index
      rts          ;6 return

 

So the program wastes 5 bytes of ROM and 14 cycles just to decide which of the 2 buttons to use (the JSR instruction, superfluous TAX, and ending RTS). The EOR at that point in the program makes little sense. But now it does, since the program was originally checking the wrong controller :)

Link to comment
Share on other sites

Okay, that makes sence, thanks.

 

So, bottom line here is: a bug was found late in the development cycle that had the players scores on the wrong side of the screen. To fix it, they make a small last-minute change to get the scores displaying properly -- but it introduced another bug, that required Player #1 to use the joystick in Port #2. And it was too late to mention this in either the instructions or the box. Hence confusing players back in the day (and even now). Curious. :)

Link to comment
Share on other sites

Finally had the opportunity to bring the 2600 out. Put in my "nonworking" Inferno, plugged the joystick in port 2, and voila! It works! I can see no reason to require a player to use port 2 instead of port 1. Wonder how many Inferno games got returned on this stupidity?

Link to comment
Share on other sites

  • 4 years later...

I'm bringing this back from the dead cause I forgot all about this and meant to mention it to Ferg who recently covered this game, but I was on vacation when he did so and I spaced it. :ponder: Oh well. I'll let him know about this so he can include it in a later episode if he wants. No, I don't think anything about this joystick error was included AT ALL on the cart, instructions, OR box due to the last minute change of it nor was a insert included. Again, I'm sure Ferg would have mentioned it as part of the package when he discussed contents. Sure would have been nice to have a quick insert made up and included, though. :)

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...