Eagleheardt\'s EWingIPSPatcher - Graphical Utility for Linux

Started by eagleheardt, April 28, 2017, 04:44:29 PM

Previous topic - Next topic

eagleheardt

Hello World!

I am a Linux user and love ROM hacks. A few weeks ago, I found a CLI utility to hard patch ROMS, made by Xezlec, and I thought "I can put a front end on that!"

Here's a screen shot of the main interface, for now, and it will change.

http://imgur.com/a/YPQIB

I need a bit of help, if anyone could lend me some IPS expertise. The code was originally written in Python 2.0, with spaces, and I rewrote most of the important parts in Python 3.5, with tabs. Now, I'm not 100% sure on how the code works when it comes to applying the patch to the ROM. The program works, almost, but it gets trapped in an infinite loop when trying to write to the ROM.

Below is a link to my github, where the source code is, as well as the code by Xezlec, on which it's based. I tried to make sure to give him credit at all areas, because I'm just trying to make it graphical.

https://github.com/Eagleheardt/EWingIPSPatcher

Well, it's finished. I'll be uploading the alpha version later today for approval :)

EDIT:
May 3, 2017, the download link works properly now.
Original IPS patcher here: http://www.romhacking.net/utilities/1297/

Future IPS MAKER feature in progress!
Future BPS patcher in progress!


eagleheardt

Hey!

I will need a little help with the BPS file structure, as I think I'd like to try to add that functionality onto my little patcher.

I've been pouring over byuu's documentation on the file and I'm just a little confused.

Since this is python, I'm reading the information as 'bytes' instead of a bitstream (right now).

First, when the documentation says it 'shifts out' the first 7 bits of a 'number' and the 8th bit is a flag, does that mean:

example first 3 bytes:
0001 0000
0111 1111
1010 0010

does this mean the first byte, since it has no flag, should return as
1. 0000 1000
or does it return itself exactly as
2. 0001 0000
or did I go the wrong way and it's
3. 0010 0000
???

I figure I can just read as a bitstream, or convert from hex to bits easily enough. I just am unsure as to what I'll be returning.
There will be several questions about the BPS structure here in the future. But, the IPS system works and is done.