Language…
9 users online: 35TCB77, cletus_deletus, Danik2343, Hammerer, howardadam1126, KoJi, Oskise, pnaha, tOaO - Guests: 219 - Bots: 368
Users: 64,795 (2,377 active)
Latest user: mathew

Patch tool or something

Patch Manager


This is a tool that I totally didn't finish like 15 minutes ago and should probably not upload yet because it has a ton of bugs.....
It's supposed to manage patches.


I originally made this to keep a list of patches in one place and eventually build it out with a couple of probably useful features.
I then continued with hating the way I wrote it a and abandoning it couple of times for that reason... I'm still not really happy with the way some of it is coded but w/e I'll probably never finish this otherwise.


So anyway, here's a list of features it currently has:
  • A terrible GUI
  • Untested features™
  • Keyboard shoftcuts
  • ROM Conflict detection
  • RAM Conflict detection*
  • Ability to reapply or remove patches
  • Share defines, macros or labels across patches
  • Search feature so you can quickly find if a patch changed a rom address
  • Logs changes in .extmod files so Lunar Magic can describe restore points
  • Works if given a path to a rom or ptmngr file so you can rightclick open with to open it

*Poorly implemented, if it can find a ram address, it'll always assume it uses 1 byte. I believe randomdude is working on something related to freeram so I don't really care for this feature too much right now.

Also keyboard shortcuts:
Code
 Main Window:
    Ctrl + O     - Open ROM
    Ctrl + S     - Save ROM 
    Ctrl + N     - New Patch
    Ctrl + G     - View Global Data
 Edit Patch Dialog:
    Escape       - Close Window/Cancel name editing
 Patch Error/Warning Dialog:
    Ctrl + Enter - Apply Anyway
    Escape       - Close without applying
 Global Data Dialog:
    Ctrl + E     - Export to file
    Escape       - Close Window
 Macro Editor:
    Ctrl + S     - Save macro
    Escape       - Close without saving


Yeah... here're some screenshots:





And if anyone wants to try it:
Download

Feel free to try it and give feedback or report bugs
I didn't know I needed this. I'm gonna mess around with this for sure but I already know it's gonna be incredibly useful for me.
Originally posted by TheBiob
Poorly implemented, if it can find a ram address, it'll always assume it uses 1 byte. I believe randomdude is working on something related to freeram so I don't really care for this feature too much right now.

Yes that's correct, I hope to show that off during this C3 too.

Other than that, looks nice
I wonder how well this will support the powerups patch, I have to do some testings at some point!

Looks nice tho.
This looks really really useful. Wish I could've used it for my hack.
Amazing job, I'll may try it in future.
A tool to organise patches? You surprise me again and again with your ideas, but i really appreciate this one. Even if i don´t use too many patches for my hack, this could definitely be quite handy #smw{:TUP:}








So far there's 1 thing that's sort of bugging me. Since I have a patch list that's long enough to enable scrolling on the window I noticed that applying a patch resets it to the top so I have to scroll down repeatedly to apply the next patch in the list and so on. Can you make the window not reset after that?

Edit: 1 other thing. I'm not entirely sure about this but it seems like the .ptmngr files don't just have the list of patches but also the freespace area it used on a rom prior so you can't apply the same patches to a clean rom without issues. For example, if I use a clean rom with the same name the .ptmngr file treats it like the same rom used before. Hopefully I explained that well enough. Anyway if this is indeed the case could it be possible to have it export just the list of patches for easier reinsertion when porting to another rom?
Quote
So far there's 1 thing that's sort of bugging me. Since I have a patch list that's long enough to enable scrolling on the window I noticed that applying a patch resets it to the top so I have to scroll down repeatedly to apply the next patch in the list and so on. Can you make the window not reset after that?


Yeah, I didn't really know what I was doing when I coded that part so it just always reloads the entire list... I need to rework that anyway.


Quote
Edit: 1 other thing. I'm not entirely sure about this but it seems like the .ptmngr files don't just have the list of patches but also the freespace area it used on a rom prior so you can't apply the same patches to a clean rom without issues. For example, if I use a clean rom with the same name the .ptmngr file treats it like the same rom used before. Hopefully I explained that well enough. Anyway if this is indeed the case could it be possible to have it export just the list of patches for easier reinsertion when porting to another rom?


The file has all the data you can see in the edit dialog with the exception of freeram as it determines that on the fly, yes.
I think it actually warns you about that when you use the "Load Patches" option inside the tool.
I should probably make that button import the file as a list of patches rather than assuming the file the user chooses is intended for the ROM.



Anyway, thanks for the replies, I'll try to get some stuff on this done soon(ish).
Oh this is long over do, this can save even advanced users a headache. I hope you continue with this even if you hate it lol.
Alrighty, that was much worse than I expected lmao.


Anyway, it now only reloads the patch you're currently editing.

New Features:
  • Edit Patch Names
  • Fixed List Updating
  • Now allows you to add patches from a file without the other information
  • Probably some fixes I already forgot because I'm good at writing down what I'm doing
  • Also added more keyboard shortcuts


Oh btw this tool has keyboard shortcuts:
Code
 Main Window:
    Ctrl + O     - Open ROM
    Ctrl + S     - Save ROM 
    Ctrl + N     - New Patch
    Ctrl + G     - View Global Data
 Edit Patch Dialog:
    Escape       - Close Window/Cancel name editing
 Patch Error/Warning Dialog:
    Ctrl + Enter - Apply Anyway
    Escape       - Close without applying
 Global Data Dialog:
    Ctrl + E     - Export to file
    Escape       - Close Window
 Macro Editor:
    Ctrl + S     - Save macro
    Escape       - Close without saving



Download (same link as before)