Skip to content

A small script to convert game saves from Drastic To MelonDS

Notifications You must be signed in to change notification settings

uttarayan21/drastic2melonDS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 

Repository files navigation

Drastic to MelonDS

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

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

Install

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

How to use

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"

How does this work ?

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.

Other ways of doing this

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.

How to calculate the save size

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.

About

A small script to convert game saves from Drastic To MelonDS

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages