RetroArch icon indicating copy to clipboard operation
RetroArch copied to clipboard

[Feature Request] Softpatching in Archives

Open RuiNtD opened this issue 4 years ago • 2 comments

Softpatching should work within archives if the original ROM and patch file are together in the same archive.

RuiNtD avatar Dec 13 '21 11:12 RuiNtD

I would extend this request a bit: if an archive contains patch files and a rom, all the patches in the archive should be applied to the rom regardless of filename (maybe in alphabetical order, or using the existing .?ps, .?ps1 etc pattern?).

This would allow for the archive to just be named after the game but contain multiple patches with arbitrary file names clearly defining what each patch is. The ability to do this would be extremely useful for e.g. romhacks with optional components, or discontinued hacks with third-party fixes available, where one might end up with three, four or even more patch files which are impossible to distinguish using the current "file names must match ROM file" pattern.

so, e.g.

Game Name.zip
-- Game Name (U) [!] (PRG0).nes
-- game [Redux v1.1].bps
-- game_name [Redux v1.1 No Low Health Beep Addon].bps1
-- Unofficial Boss Door Glitch Fix for Game Name Redux v1.1.ips2
-- GameName [Graphics Overhaul v3].xdelta3

would, in an ideal world, load the ROM with the patches applied in the order indicated by the suffix; or something like

Game Name.zip
-- Game Name (U) [!] (PRG0).nes
-- 000-game [Redux v1.1].bps
-- 001-game_name [Redux v1.1 No Low Health Beep Addon].bps
-- 002-Unofficial Boss Door Glitch Fix for Game Name Redux v1.1.ips
-- 003-GameName [Graphics Overhaul v3].xdelta

using the numeric prefix on the patch files.

fpiesche avatar May 07 '23 19:05 fpiesche

I'll try to give my two cents contribution: perhaps it might be worth putting the patches in a nested directory with the same name as the rom

i.e.

Final Fantasy VI Swag Edition.zip
├── Final Fantasy VI Advance (Europe) (En,Fr,De,Es,It).gba
└── Final Fantasy VI Advance (Europe) (En,Fr,De,Es,It)
    ├── auction_chocobo_fix_gba_e.ips1
    ├── FF6A-LeveledOut-E.ips2
    ├── ff6a_original_font.ips3
    ├── ff6a_parry_block_dodge_bits_e_u.ips4
    ├── ff6_gba_e_color_restoration.ips5
    ├── ff6_gba_e_violence.ips6
    ├── ff6_gba_jue_color_restoration_animation.ips7
    ├── ff6_gba_jue_color_restoration_lightning.ips8
    ├── ff6_gba_jue_color_restoration_monster.ips9
    ├── FFVIA_Worthwhile_v100-EU.ips10
    ├── ragefix gba europe v1.0.ips11
    ├── stray_flash_e.ips12
    ├── tritoch_anim_fix_je.ips13
    └── wrong_way_idiot_gba.ips14

this structure could also be useful with traditional softpatching (without archives/as is)

Betacentury avatar Jun 16 '25 08:06 Betacentury