Announcement

Collapse
No announcement yet.

GHTool - A Collaborative Rom Hacking Tool

Collapse
This is a sticky topic.
X
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • GHTool - A Collaborative Rom Hacking Tool

    GHTool v1.0.0.6
    by rimsky82, Abystus, Demonic722

    A collaborative rom hacking tool, merging different applications into one.

    Click image for larger version

Name:	MassConvert.png
Views:	1
Size:	85.5 KB
ID:	163565Click image for larger version

Name:	RoutineBuilder.png
Views:	1
Size:	74.5 KB
ID:	163566Click image for larger version

Name:	NesTools.png
Views:	1
Size:	84.6 KB
ID:	163567

    New in v1.0.0.6
    Still a WIP release, can't guarantee full stability.
    • Added ROM utilities for SNES and GB/C (SNES ASM not yet supported)
    • Other things here and there

    New in v1.0.0.5

    Kind of a lazy release, in the spirit of releasing something before too much time goes by to keep interest.

    • Merged in Demonic722's NDS Pointer, slide code, and button activator tools.
    • Gave the Game Genie converter a new window to hold conversion info.
    • Gives info on the Genie changed bytes (sug. by helder, currently NES only)
    • The raw Genie format is now customizable using format strings
    • (NES tab) Preliminary Save As... for exporting the cheat list to files. (Currently supports fceux)

    Features:
    • Supports mass conversion and routine builder for NES, SNES, GB/C, Genesis, and GameGear
    • Mass detects raw codes and encrypts them into the selected format
    • Ignores and copies lines that are not codes
    • Verifies address and value for range according to the system selected
    • Ports codes according to an offset
    • Aids in building routines by serially formatting address/value combos
    • Opens a NES rom and detects it by using a no-intro dat file
    • Displays info on the loaded rom
    • Browse the rom's assembly
    • Enter Game Genie codes, and it searches the assembly for matches
    • Patch the rom with the Game Genie codes, and save it do disk

    This is a WIP, there is still much to do.

    Requires .NET Framework 4, and the included
    Ionic.Zip.Reduced.dll.

    To enter raw codes, use the format "A:V:C" (Without the quotes). All numbers are treated as hex.

    This is considered a collaborative effort by the devs involved with gamehacking.org. If you have C# experience, and want to help develop this tool for the current and upcoming systems, you can send me a PM (rimsky82), or visit me in IRC.
    Attached Files
    Please put all complaints in writing and submit them here.

    Above link not working? Try here.


  • #2
    Awesome work!
    Spoiler Alert! Click to view...

    THE BAD GUY!!!!!!

    Comment


    • #3
      Wow, nice! That takes care of almost all I planned to do with Majestic Porter

      You should consider adding PSX code crypt routines (XPloder/XPlorer, GameShark, Action Replay, CodeBreaker), as well as PS2 and other Last Gen stuff, down the road.

      Looking forward to seeing this in action.
      I may be lazy, but I can...zzzZZZzzzZZZzzzZZZ...

      Comment


      • #4
        Originally posted by Lazy Bastard View Post
        You should consider adding PSX code crypt routines (XPloder/XPlorer, GameShark, Action Replay, CodeBreaker), as well as PS2 and other Last Gen stuff, down the road.
        We have already considered adding support for more systems, and have it on the todo list.
        Please put all complaints in writing and submit them here.

        Above link not working? Try here.

        Comment


        • #5
          After doing a little more testing after trying to explain in a post how to modify some ASM to do what we want I discovered a bug in the NES GG encryption. Normally the older GGconverter uses this format C717:91:B1 which is address followed by the compare and then new value, but on the GHTool it gives us a wrong formatted code unless I reverse the compare and new value so the code is as follows: C717:B1:91 .Maybe this will be fixed in the next revision?
          Spoiler Alert! Click to view...

          THE BAD GUY!!!!!!

          Comment


          • #6
            Originally posted by helder View Post
            After doing a little more testing after trying to explain in a post how to modify some ASM to do what we want I discovered a bug in the NES GG encryption. Normally the older GGconverter uses this format C717:91:B1 which is address followed by the compare and then new value, but on the GHTool it gives us a wrong formatted code unless I reverse the compare and new value so the code is as follows: C717:B1:91 .Maybe this will be fixed in the next revision?
            The format for all systems supporting a compare value is A:V:C as stated in the original post by rimsky82. Are you just comparing the input format between the 2 applications, or is there something else I'm missing? I don't really see this as a bug, but more of a different input format from the older application. If there is enough interest for a change in input format, then we may look into swapping input formats from A:V:C to A:C:V. Thanks for the feedback.
            Not taking any requests at this time.

            Bored? Watch some of my hacks here.

            Comment


            • #7
              FYI, GG codes on NES are in the format AAAAVV or AAAACCVV. You do want to support the real NES GG, right?



              Comment


              • #8
                Originally posted by Parasyte View Post
                FYI, GG codes on NES are in the format AAAAVV or AAAACCVV. You do want to support the real NES GG, right?
                Now I see what it takes to make Parasyte come out of hiding . It's a simple change in code to make it happen, so the next update of the application should include this change. Thanks for the input Parasyte.
                Not taking any requests at this time.

                Bored? Watch some of my hacks here.

                Comment


                • #9
                  Wow Parasyte shows up! I guess I didn't read that part of the post that explained that but as the other GGConvert programs were setup that way I assumed this was as well but good to hear it will be in the next update.
                  Spoiler Alert! Click to view...

                  THE BAD GUY!!!!!!

                  Comment


                  • #10
                    It appears I spoke too soon (or rather, hit "submit" without fact-checking). The GG code itself is encrypted (by means of a scramble and substitution cypher) so the "AAAAVV/AAAACCVV" format means nothing in the actual GG code format. The clearest "raw" format I've seen is AAAA:VV and AAAA?CC:VV (the latter looks a lot like the C ternary operator!) See below:


                    Credits: Game Genie Code Converter, by Zazer

                    Comment


                    • #11
                      Actually, The NES GG codes are VVAAAACC. Similar to gb/gg that are VVA-AAA-CXC (X is one of the compare bytes NOT'd or something).

                      Code:
                      aB524 v10 c76 = APZLGITY
                      aB524 v10     = APZLGI
                      aB524 v76     = TYZLGI
                      aB524 v76 c10 = TYZLGIAP
                      Honestly, I don't care who's right. What I do care about, is making this tool as cool as possible, so I'll make it an option how you want it outputted. I was never set on the format, and since other programs have it a certain way, I want to be able to accomodate that.

                      By the way, I think it's great to have you at least somewhat interested in this Parasyte, since you've been so active in figuring out a lot of these encryptions yourself. You will be credited in this app as we keep going adding more systems. Let us know if you want any involvement in this project at all.

                      As I write this, I see you replied again ^^.

                      ___
                      Edit - I was wrong too, I just got lucky with that example, but it's close to that. You were right in your second post.
                      Please put all complaints in writing and submit them here.

                      Above link not working? Try here.

                      Comment


                      • #12
                        Another feature I would love to be added is the instructions that are at the bottom of the GGConverter mentioned by Parasyte, I use that very often to find out what hex value is for the instruction I'm trying to change to. It doesn't have to be setup like that program but if it had its own tab with the same radio buttons for the systems that would be awesome and if it had a little plain English line of what it did like for example LDA would be Load the Value in register A.
                        Spoiler Alert! Click to view...

                        THE BAD GUY!!!!!!

                        Comment


                        • #13
                          No problem, Helder, that should be simple enough for NES since I already have a 6502 class. I'll just need to make a class for the other cpus and add the functionality.
                          Please put all complaints in writing and submit them here.

                          Above link not working? Try here.

                          Comment


                          • #14
                            Released v1.0.0.5.

                            Updated original post.
                            Please put all complaints in writing and submit them here.

                            Above link not working? Try here.

                            Comment


                            • #15
                              Nice, I was having issues with the previous build but this fixed em all but one question what is that middle block in the encryption part of the program for? its the one in between the Decrypted and Encrypted area.
                              Spoiler Alert! Click to view...

                              THE BAD GUY!!!!!!

                              Comment

                              Working...
                              X