If a patch doesn't change the header, it's possible to turn a ips patch for a headered rom into a patch to a non-headered rom.
I normally use ipsbehead for this, but it seems very unknown, and it has the limitation that you have to know ahead of type the size of the header (in short, it applies to SNES and PC-engine ips patches that were supposed to apply to ROMs that have the 512 bytes header).
So there are a few opportunities here. If it's possible to validate a ips patch needs a header. I'm not sure that is possible, even passing the rom, with a header or not.
Otherwise the operation might be 'destructive' if applied to a patch that already is to a no-header ROM. Anyway, even destructive, i think it's a switch worth supporting, with a few warnings if the patch can't be ascertained to apply to a header version because ipsbehead is very unknown and it's sort of in the wheelhouse of this program.
I don't know if there are other consoles where the ROM dumps have header and non-header versions that could apply. I know that redump xmls have these { '.nes' : 16, '.fds' : 16, '.lnx' : 64, '.a78' : 128 } as the number of bytes to skip for the roms that 'require' a header to check checksums* (note, SNES sfc is not there because redump only distributes no-header versions because it doesn't 'require' a header).
So basically i know those 4 don't count because even no-intro gave up on not requiring headers on them.
* of note, this is completely idiotic because nearly all the patches to nes on romhacking.net for instance, say they apply to 'crc something' and the crc something was lifted from redump and .... the patch also counts the header and applies to a completely different rom than the redump dump because the header is different. Great fucking job redump. Or maybe the fault is with the patch uploaders.