Is your feature request related to a problem?
No response
Describe the solution you'd like
Many ROMs have addendum patches that have patch dependencies; they assume the core ROM has already been patched. It seems that igir will produce a unique ROM for each patch file it finds, and does not combine them. Also for some patches, order of being applied matters.
Examples:
Kaeru no Tame ni Kane wa Naru: (order matters)
Translation: https://www.romhacking.net/translations/1623/
Addendum (fix title screen): https://www.romhacking.net/translations/6517/
Final Fantasy II: (order doesn't matter)
Ultima (contains multiple optional patches): https://www.romhacking.net/hacks/4134/
Additional context
For ips patches I've tried adding the CRC32 checksum of the dependency ROM for each successive patch, but it didn't make a difference. It only lead to the later patches failing to be applied because igir seems to be unaware of the matching checksum of a new ROM it generated after applying a patch.
Example
> ls $INPUT
Kaeru no Tame ni Kane wa Naru (Japan).gb
> ls $PATCHES
"Frog_v1.0.ips"
"The Frog for Whom the Bell Tolls.ips"
> crc32 $INPUT/"Kaeru no Tame ni Kane wa Naru (Japan).gb"
c18cd57a
> mv $PATCHES/"Frog_v1.0.ips" $PATCHES/"Frog_v1.0 c18cd57a.ips"
> crc32 Frog_v1.0.gb (obtained after manually patching)
630193e8
> mv $PATCHES/"The Frog for Whom the Bell Tolls.ips" $PATCHES/"The Frog for Whom the Bell Tolls 630193e8.ips"
> ls $PATCHES
"Frog_v1.0 c18cd57a.ips"
"The Frog for Whom the Bell Tolls 630193e8.ips"
> npx igir@latest copy --input $INPUT --output $OUTPUT --patch $PATCHES
...
> ls $OUTPUT/Kaeru no Tame ni Kane wa Naru (Japan)/
"Frog_v1.0.gb"
"Kaeru no Tame ni Kane wa Naru (Japan).gb"
(no "The Frog for Whom the Bell Tolls.gb")
Is your feature request related to a problem?
No response
Describe the solution you'd like
Many ROMs have addendum patches that have patch dependencies; they assume the core ROM has already been patched. It seems that
igirwill produce a unique ROM for each patch file it finds, and does not combine them. Also for some patches, order of being applied matters.Examples:
Kaeru no Tame ni Kane wa Naru: (order matters)
Translation: https://www.romhacking.net/translations/1623/
Addendum (fix title screen): https://www.romhacking.net/translations/6517/
Final Fantasy II: (order doesn't matter)
Ultima (contains multiple optional patches): https://www.romhacking.net/hacks/4134/
Additional context
For
ipspatches I've tried adding the CRC32 checksum of the dependency ROM for each successive patch, but it didn't make a difference. It only lead to the later patches failing to be applied becauseigirseems to be unaware of the matching checksum of a new ROM it generated after applying a patch.Example