Announcement

Collapse
No announcement yet.

NES battletoads help

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • NES battletoads help

    Hey, I play my NES games on a Tristar for the super nintendo and it works great but it's based on Famicom hardware so Player 2's start/select buttons don't work meaning no multiplayer battletoads since player 2's join in button is unresponsive.

    Is there any way I can use a game genie or some other cheat device to force the game to run in two player mode?

    Edit: Fiddling around with FCEUX I've noticed changing the memory address 000D to 01 Does indeed force the game to run in two player mode but has the unfortunate side effect of triggering a level 2 mega warp. Anyone know how to remove the secondary effect?

    EDIT 2: NVM, it only triggers the mega warp cutscene, not the mega warp. Now how do I turn it into a game genie code? Putting it into a compile results in PAAEIA but when I actually try to use it it doesn't work.
    Last edited by agentwd40; 05-25-2012, 04:05:22 AM.

  • #2
    Figured it out myself with some help from a fellow redditor, so never mind :OZOTGISX

    It has the strange side effect of starting the game at level two though.
    Last edited by agentwd40; 05-25-2012, 06:26:11 PM.

    Comment


    • #3
      Originally posted by agentwd40 View Post
      Edit: Fiddling around with FCEUX I've noticed changing the memory address 000D to 01 Does indeed force the game to run in two player mode but has the unfortunate side effect of triggering a level 2 mega warp.
      In my experience, any address starting with three zeros is usually used for more than one thing, so it's no wonder it has secondary effects

      It has the strange side effect of starting the game at level two though.
      Try this out:

      Code:
      Battletoads - NES
      
      Force Two Player Mode
      AENTAIPL

      Comment


      • #4
        I spent an entire day trying to get that code to work and now it's obselete... oh well, guess it's part of being a coding n00b. Thanks.

        BTW, how did you figure it out so fast? Any special technique?
        Last edited by agentwd40; 05-25-2012, 10:03:23 PM.

        Comment


        • #5
          Originally posted by agentwd40 View Post
          I spent an entire day trying to get that code to work and now it's obselete... oh well, guess it's part of being a coding n00b. Thanks.
          Hehehe, NP.

          BTW, how did you figure it out so fast? Any special technique?
          Using FCEUX's cheat search, I first located player two's game pad address, which, for the record is at $002A. Its value changes to #$10 when pressing start. Then, using the trace logger, I made a full trace log of player 2 pressing START when the ship is dropping the first toad. That recorded the event of player 2 joining the game. (A full log allows you to see a lot of code at once, but most hackers would prefer to use the debugger in a case like this.) I then opened up the trace log in Firefox, which makes searching for addresses very easy. So I just searched for $002A and found this:

          Code:
          $E611:B5 29     LDA $29,X @ $002A = #$10   A:60 X:01 Y:00 S:FD P:nvUBdIzC
          $E613:C9 D4     CMP #$D4                   A:10 X:01 Y:00 S:FD P:nvUBdIzC
          $E615:D0 0B     BNE $E622                  A:10 X:01 Y:00 S:FD P:nvUBdIzc
          $E622:CA        DEX                        A:10 X:01 Y:00 S:FD P:nvUBdIzc
          $E623:10 C4     BPL $E5E9                  A:10 X:00 Y:00 S:FD P:nvUBdIZc
          $E5E9:86 8D     STX $008D = #$01           A:10 X:00 Y:00 S:FD P:nvUBdIZc
          $E5EB:B5 2B     LDA $2B,X @ $002B = #$00   A:10 X:00 Y:00 S:FD P:nvUBdIZc
          $E5ED:29 10     AND #$10                   A:00 X:00 Y:00 S:FD P:nvUBdIZc
          $E5EF:F0 31     BEQ $E622                  A:00 X:00 Y:00 S:FD P:nvUBdIZc
          As you can see, at $E611 player two's game pad is loading a value of #$10, which means that the start button is being pressed. Down from there at $E5ED, we see "AND #$10," which is the code testing whether or not start is being pressed. After that, it was just a matter of changing the branch statement. In this case, I changed $E5F0=31 to $E5F0=00 to nullify the branch. To generate the Game Genie code, I used FCEUX's Game Genie Encode/Decoder, placing E5F0 into the Address field, 31 into the Compare field, and 00 into the Value field. Hope this helps

          Comment


          • #6
            Nice, I could use this same method to make a force code in simaler games right?

            Comment


            • #7
              ^It would be a good starting point, but keep in mind that another game might have a different solution. This kind of cheat is generally solved by changing a branch statement, so wish for that but keep your eyes open for other twists and turns. Good luck, and don't fail to post somewhere if you become stuck

              Comment


              • #8
                I don't actually own any other games that require a push start for player two to join in, but if I ever get any more I'm sure that guide will be quite helpful.

                Comment

                Working...
                X