FF6 Hacking
pyIPS - An all-in-one IPS tool - Printable Version

+- FF6 Hacking (https://www.ff6hacking.com/forums)
+-- Forum: Discussion Forums (https://www.ff6hacking.com/forums/forum-5.html)
+--- Forum: Magitek Research Facility (https://www.ff6hacking.com/forums/forum-9.html)
+---- Forum: Other Rom Hacking (https://www.ff6hacking.com/forums/forum-64.html)
+---- Thread: pyIPS - An all-in-one IPS tool (/thread-3592.html)



pyIPS - An all-in-one IPS tool - NPCnextdoor - 12-31-2017

Hello,

I wrote a IPS patch creator script in Python 3. Currently in beta, this allow to create IPS patch on any OS, as long as Python 3 is installed. I intend to add more functionalities in the future, such as:

x. Applying an IPS patch (duh!) (Done)
x. Removing headers (why would I want to add this nightmare fuel?!) Tongue (Done)
x. Combining patches that aren't conflicting
x. Creating patches and anti-patches for both headered and unheadered ROMs in one step (Done)
x. Creating an IPS patch out of a disassembly file
x. Creating a patch from specific offset ranges

It does compress the patch using the RLE compression formats whenever possible.

There is no GUI, this is a good ol' command-line interface, the best kind of interface! (READ: I don't know how to create a GUI yet and this is not a priority at the moment).

I will create a git repository (along with a readme and all that jazz) for the project most probably next week. It is New Year's Eve after all. You will be more than welcome to do a pull request as it is my very first Python script and the actual script might look amateurish to a pro. Or if you want to help in general.

You may ask "why another IPS tool?!" Well, most of the tools used to mod ROMs are only usable only on Windows with a few exceptions available on MacOS. Tools compatible with Linux are almost non existant. Also, the format is so simple yet can cause headaches.

Any feedback is appreciated.

EDIT: Version 0.8 is out.


RE: IPS patch creator with Python - madsiur - 12-31-2017

Hey this is pretty cool! I'll give it a try when I need to deal with patches! I could also add it to the general utility page of the wiki.


RE: IPS patch creator with Python - NPCnextdoor - 12-31-2017

Oh, thanks! In this case, I will remove the version number in the filename so that you don't have to change it everytime I update the script.


RE: IPS patch creator with Python - NPCnextdoor - 01-12-2018

(Sorry for double-posting)

Hello, everyone! Version 0.8 is now out on my website. The script does now more than creating an IPS patch. It can:

x. Apply an IPS patch (with auto-expansion if needed).
x. Create an anti-patch alongside the normal patch.
x. Create a patch for headered ROMs and unheadered ROMs simultaneously (creating effectively 4 files in one step when used with the anti-patch option).
x. Add/remove a SNES header.
x. Convert a patch intended for headered ROMs into one for unheadered ROMs and vice-versa.
x. Expand a ROM up to 16 MiB.

To use it, you must have python3 installed on your computer (no executable yet, sorry) and open pyips.py:

In command-line:
Code:
python3 pyips.py <create|apply|convert|expand|help> <options>

I will create a guide next week. In the meantime, please make use of the "help" subcommand. For example:

Code:
python3 pyips.py help create
will print the options and arguments allowed for the "create" subcommand.

Next on the list, the guide and the git repository. If you want to test, it will be greatly appreciated. As already mentioned, this is my first python script and it screams "OPTIMIZE ME"


RE: IPS patch creator with Python - SSJ Rick - 01-13-2018

nice work, that's quite an improvement, good job