logo
 drop

Main

Community

Submissions

Help

81854078 visitors

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - uNsane

Pages: [1]
1
Programming / Re: multips
« on: March 21, 2012, 02:19:54 pm »
1. To me, the non-existing issue seemed the need for checksums at all. This could well be a result of the hacking community in which I spend the most time; Super Metroid pretty much only has header issues to worry about, and it's easy to explain which type a patch targets and just as easy to tell whether you have a header. Since ZP has a lot of freedom in its design, it's easy to place a checksum in the metadata or after the EOF marker. I'll consider doing so later, if this does survive.
2. Writing IPS isn't currently the top priority, but I'll get to it.
3. Valid. There's nothing really new in ZP. I considered making a format with more power, with things like loops and multiple write types, but what would be gained from that? Simplicity is important. I see a format that takes half an hour and 75 sloc to fully implement applying and writing as a good format. That's what I tried to achieve with ZP. The good ideas were already there, so I adapted the ones that fit my goals.

But I made ZP for multips, not the other way around. It doesn't even require use of the ZP format at all; any comma-separated list of files on the command line is treated as a patch via diff. ZP is just a convenience around having to do that every time. multips is effectively a basic version control system. I don't know any other binary patch applier that is aware of conflicts, except perhaps Just F Patch in a sense. I've seen a lot of community projects flop, and I wanted to do something about it. multips is my attempt at that.

2
Programming / Re: multips
« on: March 20, 2012, 07:24:43 pm »
I can see the argument for writing IPS, but it's not the top priority at the moment.

Checksums have more issues than just what I mentioned in the rationale. Two important reasons why I excluded them are the rise in implementation complexity and the slowdown they introduce. I'm not saying that, for example, Adler32 is slow, but it takes a lot more time to read the entire target and calculate the hash than it does just to go ahead and apply the patch. Another problem with checksums is that I don't always have the input files available for hashing, like when creating ZP from IPS. I did notice the JFP format, which is a modified UPS that hashes only changed sections of data, but this is very insecure with small patches (especially since Adler32 would be my checksum of choice). It wouldn't add much, and adding a note in the patch metadata explaining the intended target file would be more helpful anyway.

3
Programming / multips
« on: March 20, 2012, 02:32:34 am »
Multips is a binary patch applier designed to apply multiple patches at once. It explains any conflicts found between patches and refuses to apply patches that conflict. Its intended use is collaboration, but it is by no means thus limited.

https://github.com/zephyrtronium/multips/downloads

Currently, multips is a command-line tool supporting reading of IPS patches and reading/writing its custom ZP format. The future of multips includes a GUI.

Applying a patch:
Code: [Select]
multips -a target.file patch.fileCreating a patch:
Code: [Select]
multips -merge patch.zp old.file,new.fileConvert IPS to ZP:
Code: [Select]
multips -merge patch.zp patch.ips
For additional invocation help, try multips -help.

See also the rationale behind ZP and the format specification.

(Just as a note, I don't plan to submit this as a utility to the main site. I have my reasons for this, but it's currently nearly three in the morning, so I can't re,e,ner tje.)

4
Newcomer's Board / Re: Introduction Topic
« on: July 04, 2008, 01:20:11 pm »
Hello.

I'm uNsane (not to be confused with Unsane, some crappy noise rock band). I basically hack Metroid Zero Mission exclusively, but I've also done some work on Metroid Fusion in the past. I joined because I made a hack modifying Rinka AI and wanted to submit it, even though it's not entirely complete. It seems it's been rejected or something (probably because I hosted it on MediaFire), but I still have the zip for anyone who wants it.

I hope to be a member of this community for a long time.

Also, if anyone wants help with hacking GBA games, let me know. I'm pretty good at that kind of stuff. Not translations, though, unless you want a game to be in Latin.

Pages: [1]