A simple converter for Retroarch's Mupen64Plus core save files; from eep, mpk*, sra or fla to srm (or viceversa).
When a SRM file is split into its contents, only those contents with data will be created.
sh
$ ra_mp64_srm_convert A.srm B.mpk B.eep C.fla C.srm D.srm D.fla F.mpk1 F.mpk3
Output:
- A.eep, A.sra or A.fla, and/or A.mpk1, A.mpk2, A.mpk3, A.mpk4 (all new)
- B.srm (new)
- C.srm (updated if exists and --overwrite
is set)
- D.eep (overwritten if --overwrite
), D.sra and/or D.fla; D.mpk1 D.mpk2 D.mpk3 D.mpk4 (all new)
- F.srm (new)
Note: This program will only overwrite existing files if --overwrite
is given.
sh
$ ra_mp64_srm_convert -c B.mpk B.eep C.fla F.mpk3
Output: - B.srm
sh
$ ra_mp64_srm_convert -c B.mpk B.eep C.fla F.mpk3 C.srm
Output: - C.srm
sh
$ ra_mp64_srm_convert -s A.srm
Output: - A.eep A.sra A.fla A.mpk1 A.mpk2 A.mpk3 A.mpk4
sh
$ ra_mp64_srm_convert -s B.mpk B.eep C.fla F.mpk3 A.srm
Output: - A.eep A.sra A.fla A.mpk1 A.mpk2 A.mpk3 A.mpk4
Given a set of input files, the program will:
-c
or -s
flags: Convert them based on the first file of the group:
--overwrite
is setWithout arguments, the program will group all files based on their names (same names), and then proceed to create SRM or split based on the type of the first file of the group.
For example
sh
$ ra_mp64_srm_convert A.srm B.mpk B.eep C.fla C.srm D.srm D.sra F.mpk1 F.mpk3
will output the following:
* A.srm -> A.eep, A.mpk1, A.mpk2, A.mpk3, A.mpk4, A.sra, A.fla (provided that there is actual data in each of the saves)
* B.mpk, B.eep -> B.srm (srm created)
* C.fla, C.srm -> C.srm (srm created/updated with C.fla) (needs --overwrite to update C.srm)
* D.srm, D.sra -> D.sra (sra created/updated from D.srm) (needs --overwrite to update D.sra)
* F.mpk1 F.mpk2 -> F.srm (srm created)
An *.mpk file will always be assigned to the first player controller pack.
If one of the arguments -c
or -s
is passed, then the program will force a Creation or a
Split, respectively. It will consider all files, irrespective of their names as inputs or outputs
depending in their save type.
This will only operate for a single SRM file.
Use -c
or --create-srm
Inputs: *.eep, *.fla, *.sra and/or *.mpk(1-4)
Output: *.srm
For example
sh
$ ra_mp64_srm_convert -c A.srm B.mpk B.eep C.fla C.srm D.srm D.fla F.mpk1 F.mpk3
will create a SRM at D.srm using B.eep, D.fla, F.mpk1, F.mpk3
Use -s
or --split-srm
Input: *.srm
Outputs: *.eep, *.fla, *.sra and/or *.mpk(1-4)
For example
sh
$ ra_mp64_srm_convert -s A.srm B.mpk B.eep C.fla C.srm D.srm D.fla F.mpk1 F.mpk3
will split D.srm into D.sra, B.eep, D.fla, F.mpk1, D.mpk2, F.mpk3 and/or D.mpk4
--merge-mempacks
was set, and the checksum fails, then the program will
assume that the file is a SRM save.| Save type | Extension(s) | Size(s) | |-----------|-----------------------|----------------| | EEPROM | *.eep | 512 B, 2 KiB | | SRAM | *.sra | 32 KiB | | FlashRAM | *.fla | 128 KiB | | Mempack | *.mpk, *.mpk(1,2,3,4) | 32 KiB |
~~~~~~~ A simple converter for Retroarch's Mupen64Plus core save files
Usage: ramp64srm_convert.exe [OPTIONS] [FILE]...
Arguments: [FILE]... The input file(s)
Options:
-v, --verbosity
Requirements: * rust >= 1.68
Simply use cargo
to build:
sh
$ cargo build --release
MIT