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

  • #16
    your compare ...
    E207:9D 38 07 STA $0738,X @ $0739 = #$D0 E207
    $985F:E9 01 SBC #$01 9860
    can be right next to the address or it can be further away using gauntlet as an example it all depends on what you want to change all the compare does
    is say when the value at the address is equal to what ever change it to the value

    as for which value to use it all depends on what you are doing in the above examples
    changing E207 from 9D to BD changes
    E207:9D 38 07 STA $0738,X @ $0739 = #$D0
    to
    E207:BD 38 07 LDA $0738,X @ $0738 = #$00

    changing 9860 from 01 to 00 changes
    $985F:E9 01 SBC #$01
    to
    $985F:E9 00 SBC #$00

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

    Comment


    • #17
      Good news: i tried with a couple of games to make Game Genie code, and i finally succeed in making my very first Game Genie code
      With the game Bio Miracle Bokutte Upa, i wanted to make a cheat that would make infinite life.
      I found Address: 0034 Value: 04 would give permanently 4 life, so it's basically infinite life.
      I added a write breakpoint, and lost a life in the game, and it brings me to:
      >06:AC70:C6 34 DEC $0034 = #$04
      So i had my address: AC70, my Compare C6, and my value 34.
      I tried my cheat and it seem to work in both Easy&Normal difficulty mode (permanent 2 life in Normal mode and permanent 4 in Easy mode). However i'm still unsure about the fact there's already a cheat on gamehacking that is SGNZEGVG very similar to my cheat, but it contain a different value C5 instead of my 34 value.

      Very glad of finally made a working Game Genie code, i think there's still some things i may not understand, because using the same method to make other cheats doesn't always work. I think it may have something to do with the things like BEQ, STA, JSR, BNE, LSR, etc... since i don't really understand what they're used for, or if they're even something important when it comes to make Genie Code. And i also never know what to write in the breakpoint condition, things like K==#00 i just always erase them before adding a breakpoint. I think these things may be responsible of my mistakes when the cheat i'm trying to do doesn't works. The debugger is still confusing for these few things, but i think it's almost there, as i succeed in making a cheat.

      In the same game, there's a cheat code you can do using both controllers, to unlock a level selector to appear on the main menu screen. I found that 001D:00 becomes 001D:01 when the level select option is activated. So i've done the same method to try to find the Game Genie code. The level select was not activated, i added a breakpoint to 001D, and i activated the level selector with the controllers, it brings me to:
      >04:8540:85 1D STA $001D = #$00
      So i tried many possibilities but none of them worked to activate the level selector. Address: 8540 Compare: 85 Value: 1D Failed, And Compare: 1D Value: 85 also failed, Cmp: 85 Val: 01 failed too, and also tried other combinations using these 4 numbers i had 85,1D,00,01 but all failed, i couldn't do it.
      Last edited by panda; 07-02-2016, 02:09:29 PM.

      Comment


      • #18
        Originally posted by panda View Post
        Good news: i tried with a couple of games to make Game Genie code, and i finally succeed in making my very first Game Genie code
        With the game Bio Miracle Bokutte Upa, i wanted to make a cheat that would make infinite life.
        I found Address: 0034 Value: 04 would give permanently 4 life, so it's basically infinite life.
        I added a write breakpoint, and lost a life in the game, and it brings me to:
        >06:AC70:C6 34 DEC $0034 = #$04
        So i had my address: AC70, my Compare C6, and my value 34.
        I tried my cheat and it seem to work in both Easy&Normal difficulty mode (permanent 2 life in Normal mode and permanent 4 in Easy mode). However i'm still unsure about the fact there's already a cheat on gamehacking that is SGNZEGVG very similar to my cheat, but it contain a different value C5 instead of my 34 value.
        ok i don't know why you try to use the par address as a value there is no opcode 34
        that results in this
        Code:
        $AC70:34        UNDEFINED
        $AC71:34        UNDEFINED
        the given code is also wrong but c5 changes it to a compare
        Code:
        $AC70:C5 34     CMP $0034 = #$02
        the correct value is A5
        Code:
        $AC70:A5 34     LDA $0034 = #$02
        the important thing is to change the write in the case a DEC (c6) to the correct load

        Originally posted by panda View Post
        Very glad of finally made a working Game Genie code, i think there's still some things i may not understand, because using the same method to make other cheats doesn't always work. I think it may have something to do with the things like BEQ, STA, JSR, BNE, LSR, etc... since i don't really understand what they're used for, or if they're even something important when it comes to make Genie Code. And i also never know what to write in the breakpoint condition, things like K==#00 i just always erase them before adding a breakpoint. I think these things may be responsible of my mistakes when the cheat i'm trying to do doesn't works. The debugger is still confusing for these few things, but i think it's almost there, as i succeed in making a cheat.

        In the same game, there's a cheat code you can do using both controllers, to unlock a level selector to appear on the main menu screen. I found that 001D:00 becomes 001D:01 when the level select option is activated. So i've done the same method to try to find the Game Genie code. The level select was not activated, i added a breakpoint to 001D, and i activated the level selector with the controllers, it brings me to:
        >04:8540:85 1D STA $001D = #$00
        So i tried many possibilities but none of them worked to activate the level selector. Address: 8540 Compare: 85 Value: 1D Failed, And Compare: 1D Value: 85 also failed, Cmp: 85 Val: 01 failed too, and also tried other combinations using these 4 numbers i had 85,1D,00,01 but all failed, i couldn't do it.
        the main reason why changing the area of memory you did doesn't work is because its only acessable when the buttons are pressed
        this code was a bit of a pain but it was hacked by using a read breakpoint and is in fact three codes long using a read break point on 1D results in two breaks from the title screen.
        Code:
        $8542:A5 1D     LDA $001D = #$00
        $8544:F0 25     BEQ $856B
        changing the BEQ (branch if equal to) to its opposite BNE (branch if not equal to)EIKAGIEY
        Code:
        $8542:A5 1D     LDA $001D = #$00
        $8544:D0 25     BNE $856B
        makes it break on another point
        Code:
        $8554:A5 1D     LDA $001D = #$00
        $8556:F0 13     BEQ $856B
        doing the same EISATIEY
        Code:
        $8554:A5 1D     LDA $001D = #$00
        $8556:D0 13     BNE $856B
        now these two will constantly break on the debugger i was able to find the other one by turning on the Par code 01D:01 (with the two other codes off)
        and getting the level section modifier which is 022 and using a write breakpoint on that which broke here

        $A2F7:E6 22 INC $0022 = #$05
        scrolling up just a bit from that point
        Code:
        $A2EC:F0 14     BEQ $A302
        $A2EE:A5 1D     LDA $001D = #$01
        $A2F0:F0 10     BEQ $A302
        $A2F2:A9 0C     LDA #$0C
        $A2F4:20 1D F8  JSR $F81D
        $A2F7:E6 22     INC $0022 = #$06
        $A2F9:A9 14     LDA #$14
        theres our last read point for 01D
        and once again change the BEQ below the 01D to BNE ESNZAZEY
        Code:
        $A2EE:A5 1D     LDA $001D = #$01
        $A2F0:D0 10     BNE $A302

        heres a bonus it opens up the last level on the level select screen
        IONXZZGP

        I added the Raw code you came up with to the page
        http://gamehacking.org/game/29105

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

        Comment


        • #19
          Since you said i was using the par address 34, it made me realise a mistake i was doing since the beginning. I used to think it was a different number, and i was not thinking it could be anything related to the RAW cheat. It makes me learn something more to the debugger.

          About this wrong code SGNZEGVG, it was took from this page http://gamehacking.org/game/29105 and because the code was similar to mine, that's why i was confident that i succeed to do it. But now i tried with A5, and you're right, it works perfectly. If i understand that the 34 was the par address (from the RAW code), that mean i only need to use AC70:A5, the code doesn't have a Compare. With this i have the Game Genie SZYZEG that is working fine.
          When i found this in the debugger: >06:AC70:C6 34 DEC $0034 = #$04
          My mistake was to think C6 was the compare, but i had to do some more things to get the A5. I will practice on this to be able to do it, to change the write so i can get A5.

          For the other code (level select), that was a lot more difficult than i would have expected. I'm surprised it is a 3 game genie codes. I knew that usually the level selector appear when controller 1 press A+up, and controller 2 press B+down, and pressing select with controller 1 while other buttons are still pressed. But once all these buttons are released, the level selector is still there, so i wouldn't have expected it to be a difficult code. I thought it looks more simple to just use the RAW code rather than 2 controllers to do all this. Since the RAW code was simple and worked, i think it was like an "on-off" switch that value from 00 to 01. And that why i was expecting the game genie code to be as simple to find as the RAW code was. But now it looks it was very hard. Thanks, many useful informations, and also for the bonus cheat IONXZZGP that add the level 7-3 to the level selector. I wanted to have this level added in the level selector, but since i couldn't find how to add this with RAW codes, i was thinking it may not be possible. I do really appreciate your help.

          I wasn't able to do my first game genie code yet, but it's good to know my RAW code was useful, and even added to the site. I will practice and try to make a new cheat, i want to learn to be able to do Game Genie codes.

          Comment


          • #20
            Originally posted by panda View Post
            Since you said i was using the par address 34, it made me realise a mistake i was doing since the beginning. I used to think it was a different number, and i was not thinking it could be anything related to the RAW cheat. It makes me learn something more to the debugger.

            About this wrong code SGNZEGVG, it was took from this page http://gamehacking.org/game/29105 and because the code was similar to mine, that's why i was confident that i succeed to do it. But now i tried with A5, and you're right, it works perfectly. If i understand that the 34 was the par address (from the RAW code), that mean i only need to use AC70:A5, the code doesn't have a Compare. With this i have the Game Genie SZYZEG that is working fine.
            When i found this in the debugger: >06:AC70:C6 34 DEC $0034 = #$04
            My mistake was to think C6 was the compare, but i had to do some more things to get the A5. I will practice on this to be able to do it, to change the write so i can get A5.
            c6 was the compare for the game genie code you had that right .
            the compare i was referring was the command CMP which stands for compare

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

            Comment


            • #21
              So the code is: Address: AC70 Value: A5 Compare: C6 Game Genie: SZNZEGVG
              I can find the Address and the Compare.
              >06:AC70:C6 34 DEC $0034 = #$04
              That mean i succeed to find the compare, but the thing i can't find is the how to find the (A5) value

              Comment


              • #22
                FE2F:A5 0F LDA $000F = #$40



                FDB7:AD 03 20 LDA $2003 = #$00



                FDE3:B5 00 LDA $00,X @ $0000 = #$00

                FA4A:BD 00 02 LDA $0200.,X @$0204 = #$BF

                here are some various LDA's see how the DEC matches with the LDA
                AC70:C6 34 DEC $0034 = #$04
                FE2F:A5 0F LDA $000F = #$40

                it takes the same amount of code (ignore the different raw codes i'm only using this as an example)
                for example if we used AD

                Code:
                $AC70:C6 34     DEC $0034 = #$02
                $AC72:A9 00     LDA #$00
                $AC74:4C 25 AC  JMP $AC25
                $AC77:4C D6 A0  JMP $A0D6
                $AC7A:A6 31     LDX $0031 = #$01
                $AC7C:D0 74     BNE $ACF2
                $AC7E:A9 23     LDA #$23
                would become

                Code:
                $AC70:AD 34 A9  LDA $A934 = #$04
                $AC73:00        BRK
                $AC74:4C 25 AC  JMP $AC25
                $AC77:4C D6 A0  JMP $A0D6
                $AC7A:A6 31     LDX $0031 = #$01
                $AC7C:D0 74     BNE $ACF2
                $AC7E:A9 23     LDA #$23
                that change results in a game over after you die once its important that you use the proper LDA

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

                Comment


                • #23
                  Originally posted by Hybrid View Post
                  Code:
                  $AC70:C6 34     DEC $0034 = #$02
                  $AC72:A9 00     LDA #$00
                  $AC74:4C 25 AC  JMP $AC25
                  $AC77:4C D6 A0  JMP $A0D6
                  $AC7A:A6 31     LDX $0031 = #$01
                  $AC7C:D0 74     BNE $ACF2
                  $AC7E:A9 23     LDA #$23
                  Let me attempt to explain. Look at the first line.
                  Code:
                  $AC70:C6 34     DEC $0034 = #$02
                  • $AC70 - This is the address
                  • C6 34 - Then you have the instruction in machine code. This particular instruction requires two bytes, the instruction itself (C6) and the address to manipulate (34).
                  • DEC $0034 - Then you have the translation of the instruction in assembly. C6, which in assembly is DEC or decrease, decreases the value in the defined address by 1. $0034 is the address whose value it's going to decrease. Simply, DECrease the value in address $0034.
                  • = #$02 Finally, you have the new value after the instruction. As you might have figured out, $ denotes an address and #$ denotes a value. This is a nice feature of the debugger to help out a little with the interpretation.


                  A lot of GG codes reverse storing instructions. So when you see LDA, which is LoaD into register A (the accumulator), it is pulling a value from memory. And when you see STA, or STore register A into memory, it is taking what is in A and putting it into the address specified. What I mean by reversing storing, is that you change the STA to an LDA.

                  So when dealing with lives or energy, generally a game pulls a value from memory, decreases it or something and stores it back. When you change the store to another load, the new value is never written and the old value stays the same. It's important when making codes to not interfere with any other aspect of the game, so loading the value again instead of writing it is usually safe.

                  When you make a game genie code, you are manipulating the game's code to do what you want. You can become a great code maker by using a reference for the 6502's instruction set. Then you can start to see what the game is doing, and change it to your liking to make great codes.
                  Please put all complaints in writing and submit them here.

                  Above link not working? Try here.

                  Comment


                  • #24
                    Since my previous message, i practiced a lot to make Game Genie codes. I think i succeed to make some cheats, and it is obviously due to all your help if i was able to do this, and i'm thankful for it.

                    I remembered that when i was young, i had a strange NES cart with 10 NES games on it (it was a blue screen with 10 games that i could choose). I don't think it was a legit cart as i never heard or found any info about this cart anywhere on internet. Strangely, the games on this cart were mostly games released in Japan only, such as Bio Miracle Bokutte Upa. I remember there was also a game of Mickey Mouse, and i realised i had the Japanese version of the game. I didn't had Mickey Mousecapade, but it was really Mickey Mouse Fushigi no Kuni no Daibouken, that Japanese version of the game has some differences (monsters and more). I found that the Game Genie codes i could find on internet for this game was obviously not working on the Japanese version of the game, and since i'm more familiar with this version, i had to create the cheats myself.

                    These are the cheats i made. I tried everyone of my codes, and i think they works (only for Mickey Mouse Fushigi no Kuni no Daibouken):
                    Invincibility: OTVPLTSV (no hit points are lost when you get hit)
                    Start with:
                    No Extra Life: AEKPIPGA. 1 Extra life: PEKPIPGA. 2 Extra life: ZEKPIPGA. 3 Extra life: LEKPIPGA. 4 Extra life: GEKPIPGA (useless, you already start with 4). 5 Extra life: IEKPIPGA. 6 Extra life: TEKPIPGA. 7 Extra life: YEKPIPGA. 8 Extra life: AEKPIPGE. 9 Extra life: PEKPIPGE
                    Infinite life: SZUPLZVG

                    I also found a secret about this game (and then i had to make one more cheat). On the title screen, there's a way to select the level in which you want to start (i found the cheat somewhere). But there's a problem with this secret.
                    In the Mickey Mousecapade (US) version of the game, if you decide to start on a specific level (let's say on the second level), as soon as you finish this level, the game bring you back to the title screen instead of making you continue to the next level. And if you choose to start to the last level, after the level you'll not even see the end of the game as the game bring you back to the title screen. In the Japanese version of the game (Mickey Mouse Fushigi no Kuni no Daibouken), the problem is almost the same: The game let you continue to the next level, but if you choose to play the last level, you'll not see the ending of the game and again, you'll be back to the title screen. So, this level selector has a flaw in both versions of the game.

                    I found that to fix this problem, in both versions of the game, you can use this cheat Address: 07FE Value: 00
                    With this cheat activated, even if you select the level in which you start, you'll continue to the next level, and you'll see the ending of the game after you complete the last one. I also tried to make a Game Genie version of this cheat for both versions of the game. I'm not completely sure if they are valid codes, but they seem to works when i try them. Here they are:
                    For Mickey Mousecapade (US) AANIXTPA, and for the Japanese version of the game; Mickey Mouse Fushigi no Kuni no Daibouken, it is AASSKTPA

                    Anyway, i think i still have to learn things because i was unable to make a cheat for the Japanese version of the game, to have the weapon for Mickey and Minnie. I found the cheat Address: 00BC Value: 03 but this was more difficult with this one. Anyway, i'll still be happy if my other cheats are good.

                    Comment


                    • #25
                      correct codes
                      Start with 0 lives: AEKPIPGA.
                      Start with 1 lives: PEKPIPGA.
                      Start with 2 lives: ZEKPIPGA.
                      Start with 3 lives: LEKPIPGA.
                      Start with 5 lives: IEKPIPGA.
                      Start with 6 lives: TEKPIPGA.
                      Start with 7 lives: YEKPIPGA.
                      Start with 8 lives: AEKPIPGE.
                      Start with 9 lives: PEKPIPGE
                      Infinite lives: SZUPLZVG

                      For Mickey Mousecapade (US) AANIXTPA
                      Mickey Mouse Fushigi no Kuni no Daibouken, it is AASSKTPA

                      all these codes seem to be correct above the only one that seems abit off is your infinite energy OTVPLTSV
                      good going the infinite energy should be this SZVPLTST use a value of A5 instead of E9

                      now as for a bonus here's a few codes
                      Start on the Ocean invincible and able to shoot
                      PEUSUIAA
                      Start on Woods Land invincible and able to shoot
                      ZEUSUIAA
                      Start on Never Land invincible and able to shoot
                      LEUSUIAA
                      Start on Queen's Palace invincible and able to shoot
                      GEUSUIAA

                      Invincibility
                      EYSOTTEI
                      Invincibility
                      00F1:01

                      here's for Mickey Mousecapades
                      Start on The Ocean invincible and able to shoot
                      PEKSOIAA
                      Start on The Woods invincible and able to shoot
                      ZEKSOIAA
                      Start on The Pirate Ship invincible and able to shoot
                      LEKSOIAA
                      Start on The Castle invincible and able to shoot
                      GEKSOIAA

                      Invincible
                      ENEOGTEI

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

                      Comment


                      • #26
                        I'm happy that i was able to make valid Game Genie codes I'll continue to practice with other games.

                        About the infinite energy code, i tried SZVPLTST (with a value of A5 instead of E9) and, it works, but there's something i noticed: When i get hit, my hit points could drop until it reach 1 hit point left, and then, this remaining hit point was infinite. With OTVPLTSV, my hit point are not dropping at all. I don't really know the technical details behind this, but i think that SZVPLTST is indeed the good code, as you have a lot more knowledge than me about making codes.

                        Thanks for the bonus codes. I found 2 things about the codes to start at X level invincible and able to shoot, these are details but i think i should share these infos:
                        1. These codes make the following code not working: AASSKTPA. So, if you want to start at the last stage with the code GEUSUIAA, you should use the RAW code 07FE:00 if you want to see the ending of the game instead of return to the title screen (RAW code works in this case, but not AASSKTPA).
                        2. These codes to start invincible and able to shoot, it's to note that while Mickey is able to shoot, Minnie can't. If you want to have all weapons, this code should also be used: 00BC:03.

                        In case anyone is interested, i just found a code to deactivate all music of the game (works for both versions of the game): 018C:00
                        So you can play with only the sound effect and listen to another music while playing.

                        Comment


                        • #27
                          ooh that is interesting there might be a flaw in what i did wow even Galoob used E9 on mickey mouscapade you out hacked me on that one
                          ok i see now what i did
                          the coding starts out like this
                          Code:
                          $9663:E5 00     SBC $0000 = #$01
                          $9665:85 C2     STA $00C2 = #$01
                          (this coding subtracts the value at address 0000 (in this case 01) from c2)
                          my mistake was changing it to this
                          Code:
                          $9663:A5 00     LDA $0000 = #$01
                          $9665:85 C2     STA $00C2 = #$01
                          (this code loads the value at address 0000 and stores it to c2)

                          the correct way
                          Code:
                          $9663:E9 00     SBC #$00
                          $9665:85 C2     STA $00C2 = #$01
                          (changes the type of SBC where it subtracts 00 instead of using it as an address ) kudos to you very well done


                          to fix the ending thing use this
                          SXKIXSSE

                          and for mickey mousecapade
                          SXSIESSE

                          also level 03 is the only level where both of them shoot (pirate ship/never never land )

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

                          Comment


                          • #28
                            I'm glad to hear the code was good for Mickey Mouse
                            I practiced with other games, and i tried to make more codes. With the game Bomberman (the first one), i noticed there is a cheat from Galoob already available on gamehacking, the code GXEKLGSA to "Never lose remote controller after pick-up" is a good code. But i noticed there was no similar code for the 3 other powerups (flamepass, wallpass, and bombpass), so when you pick these powerups, you will lose them if you die. I decided to make a code for each one of these, so you never lose them after pick-up. These new codes are:
                            Never lose wallpass after pick-up: GXEGYGSA
                            Never lose bombpass after pick-up: GXEKPGSA
                            Never lose flamepass after pick-up: GXEKIGSA

                            I was also trying some already existing codes on gamehacking (to add in my .cht file), i noticed 2 things that should be noted: The code PEEGTGAA by Whipon has a flaw, it says "Don't Loose Items When You Die", but you can start a new game, get hit by an enemy or an explosion, and you'll receive all 4 powerups, even if you didn't had them before getting hit. So this code should be described as "Receive and keep all powerups when you die" for a more accurate description. Another thing, the "Start on level" code ??LGY? by Iceboxman has a mistake for "Level 14", it should say "Level 14 - TE,U" instead of "Level 14 - ZO,U", as "ZO,U" is for Level 26.

                            I also made 1 code for the game "Jackie Chan Action Kung Fu". Usually, you start with 5 continues (the continues are like the Life in this game, since you get the Game Over screen everytime you die). I wanted a code that would allow me to decide the number of continues i start with. I tried the code YUZELK from Brian Johnson, but for me this code was not working (no effect?). That's when i thought i had a new challenge, trying to make this code. For some reason, i found it difficult to find this one while i think it shouldn't be that hard, but i finally made it: LTLIGA to start with 99 continues (Addr: D034 Val: 63). On the title screen, there's already a secret-code you can do with the controllers to start with 99 continues, but it's easier and faster to simply activate a code, and more importantly, there's no way to start with a different amount of continues with the secret-code of the controllers; it's always 99. While the game genie code allow you to choose any amount of continues only by changing the value, so let's say you want to start with 10 continues, you can use the value 0A (game genie = ZALIGE).

                            I think these new codes should be correct but if there's a mistake, it would be in the Jackie Chan code, as i had more difficulty to make it, but i tried it and it seem to works. I will practice more, there were more codes i wanted to do but i didn't succeed for now.

                            Comment


                            • #29
                              it may not be necessary but its always best to use the compare digit in the code it will stop glitches

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

                              Comment


                              • #30
                                Thanks for the info, i added the compare 05, and i get LTUIGAIA to start with 99 continues, the code works perfectly. I didn't knew it was best to always use the compare, i thought it was optional. There seems to be some codes that doesn't work when i add the compare. For example, i'm currently making some codes for the puzzle game called Banana, (because codes for this game are almost non-existent). At this time, i made these:
                                Start with 255 bombs NNGKGS (Also found 002E:FF to have infinite)
                                Start with 255 ladders NNGKAS (Also found 002D:FF to have infinite)
                                Start with 255 ropes NNGKZS (Also found 002F:FF to have infinite)
                                Start with 255 boulders NNGGTS (Also found 002C:FF to have infinite)
                                Adding a compare of 00 to these codes makes them not working, if my codes only work without the compare, does that mean these codes have a mistake?

                                I was trying to make a similar code for "Start with 9 lives" (Found 002A:09 to have infinite), i think the address for making this code should be C5CE or C5CD, i tried with both, and i get the same strange results with both of them; if i use a compare, the code do nothing, and if i doesn't put a compare, i start with 0 life, and this 0 is not really 0, as it is an unknown glitch number when i lose (by pressing A+B).
                                Edit: Maximum lives in the game is 8, not 9.
                                Last edited by panda; 08-17-2016, 12:32:20 PM.

                                Comment

                                Working...
                                X