Problem:
If we load directly a 7z goodmerged rom package in a console emulator, it will play the 1st rom inside the archive in alphabetical order. We don't want to unzip them all to save space.
Example:
we have banjo-kazooie.7z that contais the following nintendo64 roms:
Banjo to Kazooie no Daibouken (J) [!].z64
Banjo to Kazooie no Daibouken (J) [f1].z64
Banjo to Kazooie no Daibouken (J) [f2].z64
Banjo to Kazooie no Daibouken (J) [f3].z64
Banjo-Kazooie (E) (M3) [!].z64
Banjo-Kazooie (E) (M3) [f1].z64
Banjo-Kazooie (E) (M3) [f2].z64
Banjo-Kazooie (U) (V1.0) [!].z64
Banjo-Kazooie (U) (V1.0) [b1].z64
Banjo-Kazooie (U) (V1.0) [b2].z64
Banjo-Kazooie (U) (V1.0) [b3].z64
Banjo-Kazooie (U) (V1.0) [b4].z64
Banjo-Kazooie (U) (V1.0) [b5].z64
Banjo-Kazooie (U) (V1.0) [b6].z64
Banjo-Kazooie (U) (V1.0) [b7].z64
Banjo-Kazooie (U) (V1.0) [f1].z64
Banjo-Kazooie (U) (V1.0) [t1].z64
Banjo-Kazooie (U) (V1.1) [!].z64
if we try to load the 7z package directly in "Project64" (the nintendo 64 emulator) it will play the Jap version: Banjo to Kazooie no Daibouken (J) [!].z64
Solution:
We have to unzip, mark the rom which we want to be the 1st in alphabetical order, 7zip the roms again.
I wrote the following software that it will do this for us recursively for all roms found in a source folder:
Here you have to specify the source directory, the temp directory where the 7z package will be temporary unzipped, the 7za executable downloadable from 7zip website, the destination directory where "fixed" packages will go (should be different from source), flag if you want to remove the original package from source directory.
Then specify the priority order, in this example the software will pick up: (I) [!] as 1st, if not found will try (E) [!] then (U)[!] then (I), (E),(U), then any [!] and will rename the rom chosen prepending "001." in the filename.
In this example we don't have any italian version but EU, so, after clickin FIX! button, Banjo-Kazooie (E) (M3) [!].z64 will became 001.Banjo-Kazooie (E) (M3) [!].z64 and then, with other roms, 7zipped again in banjo-kazooie.7z
This way if we load the package in project64 it will play the EU version.
while running you will see the progress window:
Tested with gb gbc gba sms smg gg nes snes n64 romsets.
Do not use folders with spaces in the name.