Announcement

Collapse
No announcement yet.

Need Help Making A Nes Game Genie Code With Fceux

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

  • Need Help Making A Nes Game Genie Code With Fceux

    the cheat code i want to make is 0676:23 from Super Mario Bros 3 which makes a card star come out of the mushroom blocks, so i open fceux debugger write to the address of 0676 start the game hit a mushroom block the debug pops up gives me the code A587:99 71 06 now this is where i need help how do i find the exact value of 23 from the old code i tried all different kind of numbers but im still learning and everytime i get nothing

    i get what to do with the cheat where you open game genie encoder/decoder and put 3 different times it should look like this

    Address > A587
    Compare > 99

    Address > A587
    Compare > 71

    Address > A587
    Compare > 06

    but i dont know the value or how to find it any help at all is appreciated

  • #2
    When you use a Write breakpoint, you need to scroll up to see what happened before writing.



    The address with the > is storing 'A' into your RAM address.
    Directly above that is where 'A' is coming from (RAM address 0000).
    Above that, you can see that the value 0D (mushroom) is being wrote into the RAM address 0000.
    And finally the top line in the image, is showing where the value 0D is coming from (ROM address A4F1)

    -------------------

    Looking at ROM address A4F1, you can confirm the value is 0D



    -------------------

    In a hex editor, and using the No-Intro ROM, the address is 0x2501



    -------------------

    (I NEVER use the Decoder/Encoder by the way).
    In the Tools->Cheats... menu, enter your code [Replace the 0D at address A4F1 with 23].
    Address is self explanatory, Compare is the value you want to replace, and Value is your new value.



    -------------------

    So your Game Genie code is:
    A4F1?0D:23 or encrypted would be LXNZPKIA

    You could also patch the ROM, with the .ips file below [patch with Lunar IPS].
    Attached Files
    http://OldGameHacking.com/
    http://www.youtube.com/user/DreamcastVideos

    Comment


    • #3
      Originally posted by dominater01 View Post
      Address > A587
      Compare > 99

      Address > A587
      Compare > 71

      Address > A587
      Compare > 06
      Just to elaborate a little more, look at the first image I posted once again.
      The address A587 has a value of 99 like you posted.

      But the other two are incorrect.

      A588 = 71

      and

      A589 = 06
      http://OldGameHacking.com/
      http://www.youtube.com/user/DreamcastVideos

      Comment


      • #4
        im just not understanding how you found out what the mushroom code was without anything telling you that 0D was it

        heres another example, i found a code for dirty harry for level 2 0526 with a value of 2 and when i search for that number in debugger i get E49E

        which looks like 0F:E49E:8D 26 05 STA $0526 = #$00 what do i search for to find my value?

        can you try to dumb it down i having a hard time understanding what you mean

        Comment


        • #5
          When you see '$' it means an address.
          And when you see '#$' it means a value.

          Once again, in the very first image I posted of the debugger, it shows the value of 0D at RAM address 0000 (the next to last line in the image).

          Just remember that LDA means Load A (Read).
          And STA means Store A (Write).

          Edit:
          Originally posted by dominater01 View Post
          heres another example, i found a code for dirty harry for level 2 0526 with a value of 2 and when i search for that number in debugger i get E49E

          which looks like 0F:E49E:8D 26 05 STA $0526 = #$00 what do i search for to find my value?
          Without loading the game yet, it look like that line of code would translate to this:

          STA $0526 = #$00
          Store (write) the value 00 into address 0526.

          You just need to scroll up further from that write to see where that value of 00 came from.
          Last edited by Mezmorize; 03-19-2015, 02:32:03 AM.
          http://OldGameHacking.com/
          http://www.youtube.com/user/DreamcastVideos

          Comment


          • #6
            Dirty Harry (USA).nes

            After setting a write breakpoint on the RAM address 0x0526, the debugger snaps just where you posted that it did.



            The '>' is the end if you use a write break point.
            You always need to scroll up if you are trying to change what value gets written.

            Remember that ST stands for STore (write) and LD stands for LoaD (read).

            You can see that the value (remember that a # means value instead of address) of 00 is loaded and then written into 4 different addresses, including 0526.

            To make the code, just change that 00 to 02.

            Your code:
            E494?00:02 AKA ZEOTGGAA

            Edit:

            Here's basically what it's saying

            0F:E493:A9 00 LDA #$00 (Load the value of 00 into 'A')
            0F:E495:8D 31 05 STA $0531 = #$00 (Write 'A' into 0531)
            0F:E498:8D E1 07 STA $07E1 = #$00 (Write 'A' into 07E1)
            0F:E49B:8D 27 05 STA $0527 = #$00 (Write 'A' into 0527)
            >0F:E49E:8D 26 05 STA $0526 = #$00 (Write 'A' into 0526)

            Remember that one address holds one byte.
            So:
            E493:A9 00

            The A9 is address E493
            But the 00 is address E494
            Last edited by Mezmorize; 03-19-2015, 02:57:38 AM.
            http://OldGameHacking.com/
            http://www.youtube.com/user/DreamcastVideos

            Comment


            • #7
              Click image for larger version

Name:	NES.jpg
Views:	1
Size:	157.1 KB
ID:	162677

              i now understand what you mean for value and compare but how did you find the address of E494 when LDA is showing as E468?

              Edit: is it cuz it sez BRK?

              this bottom image wont go away lol the top image is what i ment
              Attached Files
              Last edited by dominater01; 03-19-2015, 03:21:14 AM.

              Comment


              • #8
                Hmm, I see what you mean.
                There appears to be a bug or something.

                Close out the emulator and start over again with the same steps.
                BUT this time, don't scroll up so far, just click the up arrow very few times and you will properly see the
                0F:E493:A9 00 LDA #$00

                Edit:
                Here you can see it starts off showing properly, but the further you scroll up it displays incorrectly:
                Last edited by Mezmorize; 03-19-2015, 03:30:25 AM.
                http://OldGameHacking.com/
                http://www.youtube.com/user/DreamcastVideos

                Comment


                • #9
                  stupid bug threw me off lol i think i'll get it with the next cheat thanks for helping me i've never done hex editing b4 so learning might be slow but i love making cheats

                  Comment


                  • #10
                    well i learned something cuz i had to find the lda number for infinite bombs for dirty harry and did a value of FF and it worked

                    i didnt need a compare value so i left it as a 6 digit code

                    Comment


                    • #11
                      The examples before were for changing a value.
                      If you want to change the way the game works, such as stopping a value decreasing, you need to learn more about opcodes.

                      For example, with Dirty Harry once again, lets say you wanted to stop your bullets from decreasing each time you shoot the gun.

                      http://gamehacking.org/?game=29380
                      Infinite Ammo Rune RAW 06D2:63

                      Set a watch break point on the RAM address 06D2 and shoot your gun.

                      ---------------------------

                      This will be where the debugger stopped the game from running:
                      >0E:B368:CE D2 06 DEC $06D2



                      The 'instruction' simply says DECrease the value inside of RAM address 0x06D2.

                      You have a few different ways to stop that from happening.

                      ---------------------------

                      You could use the NOP instruction (EA) that simply means No Operation [aka do nothing], but you will have to do it to all 3 bytes.



                      ---------------------------

                      You could change the DECrease to INCrease, that will make your bullet count increase by one instead of decrease by one, each time you shoot the gun. BUT, that can cause graphical glitches in games that do not check if the value is too high. For instance, if the game allows you to have two digit values (99) and you get 100+ bullets, the counter will appear corrupt.



                      ---------------------------

                      Or you can change the DEC to something else, such as a CoMPare instruction:



                      ---------------------------

                      So here's the different possible codes (I personally would use the CMP over INC to avoid graphical issues and I would use the CMP over NOP because it takes 2 less lines of codes):
                      NOP:
                      B368?CE:EA
                      B369?D2:EA
                      B36A?06:EA

                      Encrypted NOP Version
                      XTVUAUVK
                      XTVUPLXS
                      XTVUZLTE

                      INC:
                      B368?CE:EE

                      Encrypted INCrease Version
                      VTVUAUVK

                      CMP:
                      B368?CE:CD

                      Encrypted CoMPare Version
                      SGVUAUVK

                      ---------------------------

                      A good starter list of the different opcodes are in the library section of this site:
                      http://gamehacking.org/library/169
                      http://OldGameHacking.com/
                      http://www.youtube.com/user/DreamcastVideos

                      Comment


                      • #12
                        this site

                        http://romhack.wikia.com/wiki/NES_Ga..._code_tutorial

                        is where i learned about the hacking of dec time for a star powerup, i thought this was for every cheat at first thats why i put those line like that on first post

                        but your guide is helpful to so thanks
                        Last edited by dominater01; 03-19-2015, 05:41:37 AM.

                        Comment


                        • #13
                          some codes still kick my butt ive tried everything i learned and still nothing maybe im looking in the wrong spot idk

                          so i want a cheat for dirty harry so that i start the game with a flashlight the code for it is 06DA with a value of 1 then i goto the debugger and write the code and it comes up with 0F:|D5FF:8D DA 06 STA $06DA = #$00 and a lda of 0F:|D5FD:A9 01 LDA #$01

                          so in the Game genie Coder/Encoder Program i put lda which is D5FD With a value of 01 and a compare of 01

                          i think thats how its done but the code isnt working i think im looking at when you get the flash light you have 1 insted of starting the game with one how would i go about looking for that?
                          Last edited by dominater01; 03-19-2015, 11:40:51 PM.

                          Comment


                          • #14
                            I'll take a look here soon, but right off the bat I see a problem.

                            First, your Compare and Value can not match.
                            If they're the same than the code will NEVER do anything.

                            If you read it like this, you can see why:
                            If the compare value at address D5FD is equal to 01, then make it 01.

                            If I were you, I would not use the encoder/decoder, you can do everything with the Cheats menu.
                            Last edited by Mezmorize; 03-20-2015, 01:01:59 AM. Reason: Didn't read post above very good >.<
                            http://OldGameHacking.com/
                            http://www.youtube.com/user/DreamcastVideos

                            Comment


                            • #15
                              Dirty Harry (USA).nes

                              I set a write break point of the RAM address 06DA and scrolled up.



                              Here's where it broke and a few lines before it:
                              0F: D558:A9 00 LDA #$00 [Load the value of 00 into A]
                              0F: D55A:8D D0 06 STA $06D0 = #$00 [Write A]
                              0F: D55D:8D D5 06 STA $06D5 = #$00 [Write A]
                              0F: D560:8D D1 06 STA $06D1 = #$00 [Write A]
                              0F: D563:8D D6 06 STA $06D6 = #$00 [Write A]
                              0F: D566:8D D8 06 STA $06D8 = #$00 [Write A]
                              >0F: D569:8D DA 06 STA $06DA = #$00 [Write A]

                              You can see that it wrote a value of 00 into 6 different addresses.

                              -------------------------------

                              In the cheat menu I replace the 00 that is loaded to a 01.



                              -------------------------------

                              After starting the game with the code enabled, you can see why it was writing to 6 different addresses:

                              Last edited by Mezmorize; 03-20-2015, 01:23:10 AM. Reason: Edited to remove the auto-smiles
                              http://OldGameHacking.com/
                              http://www.youtube.com/user/DreamcastVideos

                              Comment

                              Working...
                              X