News: 11 March 2016 - Forum Rules

Author Topic: Eagleheardt\'s EWingIPSPatcher - Graphical Utility for Linux  (Read 2409 times)

eagleheardt

  • Jr. Member
  • **
  • Posts: 2
    • View Profile
Eagleheardt\'s EWingIPSPatcher - Graphical Utility for Linux
« on: April 28, 2017, 04:44:29 pm »
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!
« Last Edit: May 03, 2017, 10:51:12 am by eagleheardt »

andrewclunn

  • Sr. Member
  • ****
  • Posts: 288
    • View Profile
Re: Eagleheardt\'s EWingIPSPatcher - Graphical Utility for Linux
« Reply #1 on: April 30, 2017, 11:19:28 pm »
Wait, do you still need help?

eagleheardt

  • Jr. Member
  • **
  • Posts: 2
    • View Profile
Re: Eagleheardt\'s EWingIPSPatcher - Graphical Utility for Linux
« Reply #2 on: May 01, 2017, 12:30:44 pm »
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.