This script will convert the dsv save from drastic emulator to a melonDS save file.
This also works for desmume to MelonDS save files since desmume also seems to add padding to the end of the file.
usage: dr2mds.py [-h] [-o OUTPUT] [-f] file
positional arguments:
file The drastic save file
optional arguments:
-h, --help show this help message and exit
-o OUTPUT, --output OUTPUT
Specify the output file
-f, --force Overwrite the output file if it exists
Add it to a folder in your $PATH
install -Dm755 dr2mds.py ~/.local/bin/dr2mds
For windows users just run the script from the folder
You need python 3 installed.
Specify the input save file
./dr2mds.py "Pokemon Black.dsv"
This will make a "Pokemon Black.sav" file as output You can also specify the output like
./dr2mds.py "Pokemon Black.dsv" -o "PKMN.sav"
MelonDS determines the type of save using exact byte count in the save file
Which needs to be a power of 2 as mentioned here.
In Importing a savefile from another emulator part under How to section
This script calculates the closest power of 2 to the save file and removes the padding.
This can be done manually by removing the padding using a hex editor. Or using dd like this (on linux/macos)
dd if=Pokemon.dsv of=Pokemon.sav bs=1 count=524288
This will make a 4KiB EEPROM save from drastic to melonDS save.
Run wc -c file
in terminal to count the number of bytes in the file
wc -c Pokemon\ Black.dsv
which will output something like
524410 Pokemon Black.dsv
Now calculate log(524410)/log(2) which equates to 19.000335671081253
Take its floor i.e. 19 and calculate the power of 2 to the number ie 219 which equates to 524288
The resulting number is the number of blocks to put in dd count=
if you are manually making the save.