Announcement

Collapse
No announcement yet.

i'm missing something to be able to make NES cheat

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

  • i'm missing something to be able to make NES cheat

    hello.
    i'm having a problem to understand how to make nintendo NES codes.
    i found on internet a cheat code EYSEYAEI for River City Ransom and it works fine in game.
    in FCEUX emulator, this cheat is: Address: 805F Compare: D0 Value: F0.
    so i tried to find the same with Cheat Engine, and i found the RAW address was 00DF00B0 with a value of 2 to active the same cheat.

    with this information in hand, i tried to make a new cheat, and i found with Cheat Engine the RAW address i was looking for my new cheat is:
    00DF06C4 with a value of 0 to activate the cheat.

    to convert my new cheat, i made these calculations (and i'm sure it's where i fail): 00DF00B0 - 805FD0 = 5EA0E0 + 00DF06C4 = 13DA7A4
    weird result, so i tried 805FD0F0 - 00DF00B0 = 7F80D040 + 00DF06C4 = 805FD704 and it looks more like a real code.
    i tried to enter my new code in FCEUX like this: Address: 805F Compare: D7 Value: 00 (i replace 04 by 00 because the value must be to 0 for the cheat to work). the cheat do nothing. i can't figure out what is my mistake?

  • #2
    In your calculation, you are mixing addresses and values together. The Game genie cheat you found, with the decoded address provided by fceux, is relative to the NES' own CPU memory. Your cheat engine address is relative to your computer's RAM.

    In addition, you likely found the RAM equivalent with cheat engine, which in the NES is a different address in a different memory space. So if you know the starting address of NES' cpu memory in your RAM, you can subtract it from the address you found to find the NES RAM address. Once you close and restart your emulator, the addresses will change.

    It's easier to start at the beginning and guide you through. What is the code you are trying to make?
    Please put all complaints in writing and submit them here.

    Above link not working? Try here.

    Comment


    • #3
      Thanks for the reply. In the Japanese version of River City Ransom, called Downtown Nekketsu Monogatari, there was a choice of 3 difficulty (Easy, Normal, and Difficult). In River City Ransom, they removed the possibility to select the Easy mode. They renamed Normal to Novice, and Difficult to Advanced, but there's no equivalent to play the Easy mode. With Cheat Engine i found the value that was choosing the difficulty. And if i lock the value to 0, it force the game to play the Easy mode even if i can't select this difficulty in the game. So it's basically a code to restore something that was in the original game. It's not as good as having a patch version of River City Ransom where this possibility would be restored, but creating patch is beyond my knowledge and i think it's still an interesting code that allow the player to play in a mode that should have been included in the game. Just like the Game Genie code EYSEYAEI i found on internet, that one was to force the game to play in the multiplayer "Game B" Mode, a mode that allow the 2 players to avoid hitting each others, that was removed from the River City Ransom game too.

      Today i tried to use the fceux Tools>Cheat to do the same thing that i was able to do with Cheat Engine, and as a result, i just found that the code i want to make is Address: 064C Value: 00. However, i'm unable to convert it to Game Genie code, and i wish i was able to understand better this part. It's quite strange that i can use Cheat Engine or fceux to create cheat quite easily, but unable to convert it to actual Game Genie cheat code. So when i use Cheat Engine, it seems i can't do anything with my result as i can't convert it, and when i use fceux Tools>Cheat, i can use it but it's still not a Game Genie code.

      Comment


      • #4
        You found the area in RAM where the value is stored, that's a good start. Now you need to use the debugger to figure out how to manipulate the ROM, the game's code, to write 0 to that address.

        Set a write breakpoint on that address (064C) and restart the game. When you select the difficulty and start a new game, eventually the debugger will stop the game and show you the instruction that writes the value to that address. If you can manipulate the code around that instruction to write a 0 instead of 1 or 2, you'll have your code.

        To make the final genie code, you'll need the address, value, and compare (the original value). Then you can use the tool in fceux or the page here to encode it to a genie code.

        I will attempt to find a way myself, but I'm curious to see what you can come up with on your own. Also, the code to select the easy mode may still exist but be unused. That kind of code making is fun as well, to add missing functionality to a game. I did this by finding the gas tank in Top Gear 2 for SNES.
        Please put all complaints in writing and submit them here.

        Above link not working? Try here.

        Comment


        • #5
          So you know, I was able to make level 0 selectable with the code APSUELEI. However, the game doesn't care and friendly fire still exists. I'm not sure if the game is any easier or not.
          Please put all complaints in writing and submit them here.

          Above link not working? Try here.

          Comment


          • #6
            The cheat APSUELEI doesn't seem to work. I tried new game on advanced difficulty and activate the cheat APSUELEI, but the ennemis were still playing on advanced mode. I also notice that with the cheat activated, it was still possible to select the difficulty level, while it is impossible to choose a difficulty when 064C:00 is an active cheat. If i start a new game on advanced mode, and after that i activate the cheat 064C:00 i can notice the game difficulty decrease.

            I also tried to do something, but i think i fail somewhere because i never touched the Debugger before, but i want to learn, so i wanted to try it.

            First things i have done is open the game, then, open the debugger and search for 064C, just like this:
            Click image for larger version

Name:	628190Step01.jpg
Views:	1
Size:	94.4 KB
ID:	162856

            Then, i double click on it to add breakpoint i activated "Write" and i added 00 because the value of the cheat is 00, it was what it looks like at that point:
            Click image for larger version

Name:	170427Step02.jpg
Views:	1
Size:	38.8 KB
ID:	162857

            But the game never seems to break or to freeze, even when selecting the difficulty level, so i tried to ask the debugger to "break when it exceed 0", and it pointed me directly to a new address and value:
            Click image for larger version

Name:	969667Step03.jpg
Views:	1
Size:	339.9 KB
ID:	162858

            So i tried to enter this new address and value FC73 D0 FE in fceux, and i got a Game Genie code VYNYUGES, but it only makes the game freeze, this cheat is not good:
            Click image for larger version

Name:	403100Step04.jpg
Views:	1
Size:	37.0 KB
ID:	162859

            Comment


            • #7
              heres something that makes the player to mode b selectable as for the difficuly rimsky's code works fine as far as i can see (any enemies still on screen when you change difficulty retain their original difficulty)
              2 player mode b selectable
              LEXNGIZA

              scroll down 1 past 2 player game your cursor will disappear

              RIP MOM 6-27-52 - 12-25-10

              Comment


              • #8
                I sent a message that will probably appear soon (my messages must be validated by moderator, probably because i'm still a new user here). No problem about it, that's fine, but i just wanted to add something, so here it is (at the time i write this message, i don't know if both of my messages will be validate in a way that will makes both of them to appear like 2 consecutive messages, i'm sorry if this happens, i would have prefered to edit my previous message if i could):

                Anyway, i wanted to say that since "that" previous message, i've just read the new message from Hybrid.
                And it made me realised that i was wrong in my message;; the code APSUELEI really works.

                At first, i was thinking this cheat code was forcing the game to play at Easy Mode, and it was not doing that, so i used to think the code didn't work. But now i found that this cheat is used to actually add an invisible option to recover the possibility to select the Easy Mode. It's even better than my cheat 064C:00 that used to force the game to always play in the Easy Mode. APSUELEI can be activate all the time, while 064C:00 had to be deactivate to select the other difficulty, and re-active to play easy mode. My cheat was less convenient. Anyway, i confirm, both codes APSUELEI & LEXNGIZA works. Thanks for these 2 codes. I wish that i was able to make some cheat like these.

                Well, if i knew how to hack a rom, i would modify the menu in the game to always have these options visible and making these options no more invisible, but i don't have the knowledge, i'm still trying to understand how to make Game Genie codes ^^

                Comment


                • #9
                  your best bet to learning how to make codes is start with the easier codes. get used to how to use the debugger and what it's pointing to . as for getting to the
                  the text show up thats a bit beyond me too but now they are at least available.

                  as for my code it happened like this setting a write breakpoint on 0544 and pressing down lead me here
                  Code:
                  $F5A5:EE 44 05  INC $0544 = #$00
                  $F5A8:AD 44 05  LDA $0544 = #$00
                  $F5AB:C9 02     CMP #$02
                  by changing the CMP value from 02 03 i was able to make it reach beyond the normal place where it stopped
                  (changing F5AC from 02 to 03)

                  as i said earlier start out with some easier codes first get a hang on how to use the debugger

                  RIP MOM 6-27-52 - 12-25-10

                  Comment


                  • #10
                    Debugger tip- In your second picture, the add breakpoint screen, you put a 00 in the range thinking it was for a value. It's required if you want the breakpoint to break on an address between a range, like 064C-064F.

                    Also, your K==#00 condition is another thing that will cause it to never break. IIRC, K is PC, which is the current address being executed. So you told the breakpoint to break when PC is 0, which won't happen since in the NES execution starts at $8000 and is rarely, if ever, less than $7000.

                    You don't need the Execute box ticked either, because 064C is RAM and won't be executed.

                    Keep playing with it though, you'll start to understand more as you go along.
                    Please put all complaints in writing and submit them here.

                    Above link not working? Try here.

                    Comment


                    • #11
                      Since a couple of days, i tried to make Game Genie codes with your advises, and also by searching a little more, and trying to learn more about the debugger. I tried to make an easy codes with a simple game too (for infinite hit points). As a result, i was able to make my very first Game Genie code
                      So, i tried to use the same method to create another code in River City Ransom, but it didn't work...

                      For the new cheat i was able to do, this is how i've done:
                      For the game Happily Ever After, i found that to be invincible, the cheat was Address:000A Value:05
                      So i searched for 000A and i added a Write Breakpoint: http://img15.hostingpics.net/pics/498207Step01.jpg

                      Then, in the game i lost a hit point and the debugger bring me to that line: 07:E542:C6 0A
                      http://img15.hostingpics.net/pics/579576Step02.jpg

                      I just guessed that E542 was the address, C6 was the Compare, and 0A was the Value. I tried it and i got the code ZAKTZIVK
                      http://img15.hostingpics.net/pics/315397Step03.jpg

                      That new code worked!!! that was the first time i could do a Game Genie code.

                      So i wanted to practice this and make more codes, then i use the same technique with River City Ransom to create a code that would allow the player 1 to have all special techniques. I found Address: 04DF Value: 3F was the code for it. So i just added a Write breakpoint for 04DF (exactly the same way i did with Happily Ever After game). Then, in the game i removed a technique. And the debugger bring me to a new line 02:BF89:99 DF 04
                      http://img15.hostingpics.net/pics/162384Step04.jpg
                      So i thought the Address was: BF89, Compare: 99, and Value: DF. I tried it, but it didn't worked this time.

                      It is strange that i was able to make a cheat, and that i can't make another one by using the same method. It's a good thing that i was able to make my first Game Genie code, it's an improvement, but i don't understand why i can't do another code with this method.

                      Comment


                      • #12
                        heres a quick tip
                        http://gamehacking.org/game/116295

                        Infinite Lives

                        hybrid

                        GENIE

                        SXEVIIVG E58D?C6:A5
                        SZKTZIVG E542?C6:A5

                        you want to use the proper load command when dealing with a write
                        $E542:A5 0A LDA $000A = #$01
                        vs
                        $E542:0A ASL
                        $E543:0A ASL

                        here ya go as long as you don't get the techniques you should be fine with this code
                        ESEIZPEY

                        RIP MOM 6-27-52 - 12-25-10

                        Comment


                        • #13
                          I'm not sure if i'm able to do it, maybe i need to learn another thing before learning how to convert cheat code to Game Genie, because i think there's some things i didn't properly learned about the debugger. I say this only because it looks more difficult, so that probably mean i miss some basic.

                          Anyway, for now i tried to make more cheats (not Game Genie, but only using address and value), and while i'm able to do cheats for many games, i found there's some cheats i just can't manage to do. For instance, in the game "Gremlins 2 the new batch", i tried to make a cheat that make the player to always have the extra power (the one you can buy in stores, like the one on sale in level 2-1). I found the address that was changing value according to "if i have or not the extra power". When i don't have the extra power, the address:value is 00CC:00, and as soon as i buy the extra power, it change for 00CC:E0. But the cheat doesn't work, because even if i activate the cheat 00CC:E0, the game still have 00CC:00 until i buy the extra power. I was expecting my cheat to force the game to use the value E0, but the game ignore my cheat, just like this: http://img15.hostingpics.net/pics/86...tgremlins2.jpg

                          So i searched to see if i could find another address that was changing it's value accordingly, but i couldn't find. So now i'm wondering if this is really impossible to make this cheat, or if i simply make a mistake.

                          Another example of cheat i couldn't do; it's in both Gauntlet games. I'm so bad at playing these games, because the timer always decrease by itself, not only when you're hit by enemies but it decrease non-stop, as a result i always get game over at about level 20. I wanted to make a cheat that makes the time to stop decreasing by itself, and only decrease when hit by ennemy. So i started with Gauntlet 2, i found 0739 : D0 freeze the timer to 2000. But the problem with that cheat is that you are also invincible when you get hit by ennemies. Strangely, the timer is not really stuck at 2000, because it increase when you take food (health items). Since there is a cheat OTXSSYSV to make the player invincible against the ennemies but the timer still decrease, i thought that mean the address that makes the timer to decrease all the time is a different address than the one that makes you lose time when an ennemy hit you. But since the time always decrease in each level of the game, i don't know how i could find an address that it's value is never changing, and even if i find it, would it be possible to change the value in a way that would makes the timer to no longer decrease? I tried to find a value that was different in the screen between the levels than the one in the levels, because the timer can't really decrease between 2 levels. But none of them worked to stop the timer, maybe i found the address but the same problem than in the game Gremlins 2 occured, it's a possibility.

                          Other than these cheats i couldn't succeed to do, i've done a couple of working cheats for few games

                          Comment


                          • #14
                            for the gauntlet the RAM code you are looking for is

                            00B2

                            now setting a breakpoint write on 00B2 breaks on this set of commands
                            $985F:E9 01 SBC #$01
                            $9861:95 B2 STA $B2,X @ $00B2 = #$F9
                            $9863:B5 B4 LDA $B4,X @ $00B4 = #$02

                            there's two ways you can handle this

                            AAVPEAPA
                            9860?01:00
                            this one changes the subtract value to 00
                            or
                            SLVPOASP
                            9861?95:B5
                            which changes the write to a load


                            739 is correct for the RAM of gauntlet II

                            RIP MOM 6-27-52 - 12-25-10

                            Comment


                            • #15
                              Thanks, both cheats works perfectly for Gauntlet. I tried to find the one for Gauntlet 2.
                              I found on http://gamehacking.org/game/29678 that SLETYXSO E207?BD:9D is the cheat for Gauntlet 2
                              But i have to understand how this result was found if i want to be able to do cheats by myself.
                              With a write breakpoint on 739, i found this:
                              >07:E207:9D 38 07 STA $0738,X @ $0739 = #$D0
                              And it is where i get stuck. The Address seem to be obvious as these seem to always be the first 4 numbers (in this case E207). Next to it, there's the Compare, but i'm not sure the compare is always next to the address. And about the value, i don't know how the value was found.

                              Comment

                              Working...
                              X