Users browsing this thread: 2 Guest(s)
ZPS File Format

#1
Posts: 614
Threads: 49
Thanks Received: 0
Thanks Given: 4
Joined: Feb 2017
Reputation: 25
Status
None
I have been playing through the Mana series, and as I've been preparing for playing through Secret of Mana again, I've come across the "Secret of Mana Turbo" project (project page). I'm really interested in their ZPS patching system. It appears to be just a massive ASM file, with the ability to check things on and off. However, I can't find any actual information on this file format. It just kind of appeared for this project. Does anyone know anything about it?

I could see a ZPS file being a REALLY good format for FF6 Hacking. I've been unable to use C.V.Reynold's bugfix compilation because of the changes it makes to compressed graphics, text, and event data. A format like this could have saved all of that though. There could be a second ZPS file for gameplay improvements.


Projects:
FFVI: Divergent Paths (Completed) - a complete storyline and gameplay hack of FF6 that adds Leo as a playable character
  Find
Quote  

#2
Posts: 3,966
Threads: 279
Thanks Received: 234
Thanks Given: 56
Joined: Oct 2011
Reputation: 65
Status
Tissue-aware
It's likely a custom patcher and format. But it's a great idea and obviously a better way to do things than a huge IPS that has no customization..
  Find
Quote  

#3
Posts: 208
Threads: 3
Thanks Received: 0
Thanks Given: 8
Joined: May 2013
Reputation: 0
Status
None
It looks like a custom ZIP file with IPS files in it.



  Find
Quote  

#4
Posts: 51
Threads: 5
Thanks Received: 2
Thanks Given: 0
Joined: Apr 2018
Reputation: 8
Status
Shell
I opened the .zps in a text editor, and it's basically just asm with some annotations about which parts to enable/disable depending on the options selected.
  Find
Quote  

#5
Posts: 377
Threads: 34
Thanks Received: 10
Thanks Given: 7
Joined: Dec 2018
Reputation: 18
Status
Moog
PowerPanda, you never tried the CV to C3 hex grab I prepared for you in this thread about selective bug fixes.  You should give it a shot on a copy of your project and see if it works; it should transfer all of the combat fixes without any event or text meddling.

If you don't want to do that, you have a few other options: if the patches in the compilation haven't been moved (not sure if it's documented, doesn't seem to be in that thread), you can create corresponding anti-patches for them and remove them.  You apply the CV compilation to a vanilla FF6, then the event antipatches, and then make a new patch of the compilation minus the conflicting changes and apply that to a copy of your project.

As for patch file formats, I think a few of the other rom hacking communities are venturing away from IPS.  For instance, the super mario hackers use a BPS file format which checks if the rom you're patching matches the rom the patch actually wants... if they don't, it doesn't patch the file.  Some of the gameboy advance hackers use another different patch format too, UPS file format (applied by a program called NUPS if I recall correctly).  Not sure what the difference is there, though.
  Find
Quote  

#6
Posts: 614
Threads: 49
Thanks Received: 0
Thanks Given: 4
Joined: Feb 2017
Reputation: 25
Status
None
(07-25-2019, 02:17 AM)C-Dude Wrote: PowerPanda, you never tried the CV to C3 hex grab I prepared for you in this thread about selective bug fixes.  You should give it a shot on a copy of your project and see if it works; it should transfer all of the combat fixes without any event or text meddling.

Correct. I have made so many changes in the C0-C3 banks already that I had conflict concerns. But you're right; I should have tried it. I will do that sometime today.


Projects:
FFVI: Divergent Paths (Completed) - a complete storyline and gameplay hack of FF6 that adds Leo as a playable character
  Find
Quote  

#7
Posts: 676
Threads: 44
Thanks Received: 26
Thanks Given: 21
Joined: Jan 2015
Reputation: 11
Status
Zombie
I've said before (and several people didn't agree) that the IPS patching system is a "stupid" patcher.

Not stupid as in a bad or ignorant method, but stupid as in it blindly paste data, no ifs, ands, or exceptions. The fact this method has stuck around so long shows it has been effective, and even in some limited examples ideal, shows it is/was an  awesome creation.

My point being, any "inteligent" or selective patching method, that is functional, would be an advancement. I know alot of the patches I used to attempt could have benefited from selective patching options instead of the "choose your IPS" method used. However, sometimes... Simple is good.

Remember K.I.S.S. (Keep It Simple, Stupid) is often less problematic at the end of the day. New fancy techniques are cool to see though, and it is great to know that advancements have been made to the methods even this late in the game.


The only true wisdom is knowing you know nothing.
  Find
Quote  
[-] The following 1 user says Thank You to Catone for this post:
  • Turbotastic (07-26-2019)

#8
Posts: 3,966
Threads: 279
Thanks Received: 234
Thanks Given: 56
Joined: Oct 2011
Reputation: 65
Status
Tissue-aware
For a simple hack that does one thing a few IPS or BPS patches selection are a good option but for something like a compilation patch the ZPS method is a lot more appropriate for compatibility reasons. The ZPS method is not really a good option if your patch has a single feature, at that point it's just an ASM file with the one feature or bugfix you added.
  Find
Quote  

#9
Posts: 676
Threads: 44
Thanks Received: 26
Thanks Given: 21
Joined: Jan 2015
Reputation: 11
Status
Zombie
Yeah, that's my thoughts on it as well. Even on a simple bug fix though, maybe use a modular patching for compatibility. Not for some small obscure edit that's only a few bytes, but some bug fix that may have conflicts with other popular patches. Like option A if its being applied to a clean rom, options B if you have installed this other patch and so on. Least if I'm understanding the concept of "fancy smart patching". I seem to remember someone doing that for alot of small bug fixes for FF6, maybe, but I don't know if it was a custom program or just an advanced patcher with a compilation of fixes. Or I could be imagining things.

I actually get the feeling I could have used something like this on that last patch I was working on for the portrait side of things. One for using sprites for all portraits, one for all custom in a different style, one for a mix of original and only the extra characters would have custom... You get the idea, anyway, that way the rest of the patch and core features would only be one patch, with options.

I'm just typing a wall of text to repeat the statement of "useful for large complicated patches, but not simple stuff. I'm going to have to mark this thread, think I could have used these ideas on my auction house now that I think of it. Yeah, I did catch that comment about it being "to random". Never thought of it being described that way, but yes I think advanced patching techniques could have covered that if I had thought about it.


The only true wisdom is knowing you know nothing.
  Find
Quote  



Forum Jump:

Users browsing this thread: 2 Guest(s)


Theme by Madsiur2017Custom Graphics by JamesWhite