News:

Don't forget to visit the main site! There's lots of helpful docs, patches, and more!

Main Menu

Application of .ips and .asm

Started by personitis, June 06, 2017, 03:29:12 PM

Previous topic - Next topic

personitis

I was originally going to post something similar in response to the message over here, but instead decided that it would not only be out of place there, but could make a small interesting discussion on the subject. My original post was going to read:
Quote
I have a general distaste for .ips files when .asm files could be distributed instead; .ips may be easy to apply but does not easily allow modification of whatever changes the patch may include. I know this is minor, but the "small tile stuff.ips" sounds like something that would be updated as time goes on, yes? So instead of releasing multiple patches over the course of years (I realize how absurd I sound. I'm just trying to make a point), why not release the assembly files instead or write up one quickly?
I think .ips are rather counter-intuitive toward the idea of romhacking where someone reverse-engineers (parts of) the rom, hopefully documents these findings as well, and paves the way for others to make their own specialized changes or build off the previous findings. More specifically and not to single them out, JAM has quite a few patches that are interesting in nature, but all of them being in .ips means you're likely have to go and disassemble them before you could reasonably make any changes yourself. The first one that comes to my mind is the Accel Charge patch where changing the charge timer is tucked away in raw hex. Instead, it'd have been much less work to simply change a number or two in plain text instead then apply the assembly file.

I feel like at this point, I could start rambling, so I'll leave it there for discussion. IPS or ASM y'all?

Quietus

Assuming that people are helpful, and direct users toward easy methods of applying said .asm, I'd go with that, since, as you mentioned, it's more customisable, especially after a project is already underway, and things may not always be in the original position (that the .ips would likely assume) any more.

PHOSPHOTiDYL

Asm so others can do as they please.
Free hijacks, helpful learning experience.

"Paves the way for others to make their own specialized changes or build off the previous findings."

[spoiler]Smalltilestuff.ips is good up until 2020. Then replace the digits.
It's six bytes in hex & compressed gfx.[/spoiler]

benox50

Ofc .ASM is better, that is why .ASM is becoming more popular for recent patch.
I think IPS should be used for a complex final product or a big complex product in general that you must apply first. IPS can be used for security too, but thats all.
Its frustrating to have a IPS only patch not fiting in your ROM because the space is occupied by something else. .ASM lets even novice edit the values and thus not bothering the creator and making thing easier and more flexible. Also, an old patch only in IPS format cannot be updated and you must redo it, so .ASM all the way.  :cool:

Shockwave_S08

.asm is useful for fellow coders who like to modify and/or optimize other's code and point it to empty banks in the ROM so there are no conflicts, but it requires an extensive know-how of the inner workings of the game itself, which is why some coders leave

;a comment like this in the .asm

to provide guidance in modifying certain variables of a given subroutine, to put out a different result within reasonable boundaries.

.ips, on the other hand, is usuallly a "complete package" of a single patch that only needs to be applied once to alter the game as a whole, which is why people "assemble" an IPS with ASM code, so average gamers interested in ROM hacks won't tear their hair out trying to figure out all the many lines of code when they can just run the IPS once and be done with it. However, there's a greater risk in messing something up because all the banks and variable pointers are pre-defined, so trying to mix a bunch of .ips files of wildly-varying material could lead to unwanted effects, like corrupted graphics, in-game glitches aplenty, or a full-on crash if things go real bad.

So basically, .asm is like freely-customizable code, while .ips is akin to a finished product.

squishy_ichigo

That's why you release both.

/thread

PHOSPHOTiDYL

Yeah but how about gfx, ips or bin?

Cpt.Glitch

When it comes to code, I'd prefer ASM for sure. I've had to disassemble ips patches for ZM before (the keep speed patch by RayGun for instance), and it was annoying. Also there is the matter of freespace. Quite a few patches use the same freespace, and if it is in IPS format, good luck repointing it. ASM format makes repointing not only easier, but more user friendly. Finally as said above, ASM files are easily customizable, allowing users to add their own twist to patches, or learn a bit of ASM on the way.