Ci-dessous un petit script python trouvé sur cette page permettant de faire un backup d’un jeu du MegaCD de Sega.

Un CD est coupé en deux, il contient une partie donnée + une partie audio. Il faut donc ripper séparément les musiques et les datas. Certains jeux comme SonicCD ne peuvent fonctionner sans la  musique.

Pour y jouer sur PC, il suffit ensuite d’utiliser un émulateur comme Gens.

#!/usr/bin/python

import os
import commands
from sys import argv

# programs
SOURCE_DRIVE = "/dev/cdrom"
DD_COMMAND = "/bin/dd"
CDPARANOIA_COMMAND = "/usr/bin/cdparanoia --quiet"
LAME_COMMAND = "/usr/bin/lame --quiet --preset insane"
RM_COMMAND = "/bin/rm"

if (len(argv) <2):
    print "USAGE: rip-sega-cd.py "
else:
    title = argv[1]
    print "ripping " + title

    # rip ISO-9660 filesystem in the first track
    data_rip_command = DD_COMMAND + " if=" + SOURCE_DRIVE + " of=\"" + title + ".iso\""

    print "ripping data track..."
    print data_rip_command

    commands.getstatusoutput(data_rip_command)

    print

    # rip CD audio tracks -> MP3 files until cdparanoia reports an error
    print "ripping audio tracks..."
    n = 2
    error = 0
    rm_command = RM_COMMAND + " cdda.wav"

    while (error == 0):
    # rip
    audio_rip_command = '%s %d' % (CDPARANOIA_COMMAND, n)

    print audio_rip_command
    commands.getstatusoutput(audio_rip_command)

    # encode
    audio_encode_command = '%s cdda.wav "%s %02d.mp3"' % (LAME_COMMAND, title, n)

    print audio_encode_command
    if (commands.getstatusoutput(audio_encode_command)[0]):
        error = 1

    # cleanup
    print rm_command

    commands.getstatusoutput(rm_command)
    n = n + 1

    print