(Unofficial) RetroPie DVD Support - Release & Tutorial
-
Hey there!
You may know me as someone who tried to bring DVDs to RetroPie a loooong time ago. Only problem was that I was incredibly dumb when it came to Linux stuff. Now that i've worked with it for a bit, I decided to give it another go, and successfully created a method to use (burned) DVDs with games on them with RetroPie! This can be helpful if you want an authentic experience with physical game media from way back when, but don't have the money to do so. This is, by no means, the "cure for cancer" of RetroPie, just a little fun project I did with the help of some clever folks from yonder. Now, I will tell you how to install it.All you need is:
-A RetroPie 4.8 (at the time of writing) machine with Pixel Desktop enabled
-A DVD drive of your choosing
-One or several blank DVDs (they are really cheap, at least here in Canada)
-Knowledge of what you are doingLet's begin setting it up, shall we?
First off, get your keyboard & mouse, and plug 'em in. Start Pixel Desktop, then open up your terminal. You will want to determine the/dev/
location of your DVD drive (for example /dev/sd0/.) You should be able to put in any 'ol DVD into the drive for it to successfully detect it.Once in the terminal, with the disc in the drive, type
lsblk
. This will list all of the drives hooked up to the device. Pixel Desktop should auto-mount your DVD, so try and find anything mounted in the/media/
folder. If you do, then voila! There's your DVD! Now, you will need to take note of the "NAME" of your drive. An example would besr0
. Here's where we get into the meat (or lettuce, if you're a vegan) of the tutorial.Open up
fstab
in your preferred text editor. It should be in the/etc/
folder at the root of the filesystem. You'll want to add an entry for your DVD drive.
Example:
/dev/sr0 /mnt/disc auto ro,user,auto,nofail 0 0
/dev/sr0
is your DVD drive's location, as specified before.
/mnt/disc
is your desired mounting location for the drive.
auto
is the filesystem type. I'd recommend using it as it is the most foolproof, but you do you I guess.
The 4 words you see afterward are options. You must use these, as without them you could get some unwanted behavior from RetroPie.
Finally, the two numbers at the end are defaults for this project. They are processed by fsck, which is completely irrelevant to this project.If you have done everything correctly, then congratulations! Your DVD should automatically mount on boot to the specified location on your filesystem! However, we aren't out of the woods yet. We still need to do a few more things before we call it a day.
Next, we need to edit
es_systems.cfg
to add a new system for our games. This one is very straightforward. Just open upes_systems.cfg
in/opt/retropie/configs/all/emulationstation
, and add this entry to the bottom, just before</systemList>
:<system> <name>Load From Game Disc</name> <path>/mnt/disc</path> <extension>.chd .bin .md .nes .smc .sfc .z64 .gba .gb .gbc .fds .nds .zip .CHD .BIN .MD .NES .SMC .SFC .Z64 .GBA .GB .GBC .FDS .NDS .ZIP</extension> <command>/opt/retropie/supplementary/runcommand/loadfromdisc.sh %ROM%</command> <theme>disc</theme> </system>
Set
<path>
to your mounting location as specified in fstab, but don't change anything else. Now, EmulationStation can read and recognise the files (with the defined extensions in<extension>
) from your DVD!We're in the homestretch now, don't give up! Only two more things! You'll need to download these two scripts:
Reload Disc.sh and loadfromdisc.sh.Put the first script in
/home/pi/RetroPie/roms/ports
, and the second in/opt/retropie/supplementary/runcommand
.The first script lets you remount the disc after swapping it with the power on, and the second determines the file extension of the loaded file, and boots up the corresponding emulator.
After you've placed the scripts in their folders, you're pretty much done! Burn one of your DVDs with some ROMs (you should probably start with PSX .chd files) and enjoy!
Thanks to @Folly, @sleve_mcdichael some randos over on Stack Overflow and the RetroPie Forums in general for the amazing help and support! This project would not exist without you.
Have a good day, and...
Have fun!
-
@RetroFloppy08 Ok... Through all your posts and threads about that topic... I Think here is my place to ask about it: Optical Medias are Read Only ones... So what about save states and other meta-stuff, which is AFAIK saved on the path of the started game/rom/file ?
I understand the need for ES to rebuild its database once a data on a connected path is changed and such, but what about/how are you handling the write-backs to the path the game/rom/whatsoeveritmaybecalled was started from? -
@Ashpool From my experimentation, extra Metadata isn't stored in the rom folder. It's stored somewhere else. This, of course, may only be me.
-
@RetroFloppy08 Have you tried to save/reload a gamestate? At least for the emulators I use, they end up next to the rom/game-files... and if they may be stored somewhere else - how can the system/os identify them from media to media changes??? CRCs??? UIDs??? Sorry, I am really curious about it, how are save states handled in your case? Or are they impossible (which for arcade/retro-sentiment is exactly what we experienced in the old days)?
[Edit]
P.S.: Maybe my words may sound like your aim/goal is a nogo... but that is not my intention! I only wonder/are puzzled about the "write back"-moments... and that, if you really want to get a guide up going, you may have to consider all circumstances involved ;> -
@Ashpool Hmm. You are correct. I will start drafting up a guide soon, with these circumstances in mind. Perhaps there's a way to set the location of save states?
-
@RetroFloppy08 said in (Unofficial) RetroPie DVD Support - Release & Tutorial:
Perhaps there's a way to set the location of save states?
As I had no need for it so far, that is beyond my knowledge - if you research it, keep in mind that there are more then one form of save|save-state/memory-dump: once the saves done via the libretro-functionality, then the saves done by none-lr emulators which offer such a feature and (maybe last) saves done from within the games themself (whether that means to insert a writable-image (save-disk, tape-file, whatsoever) or if it will be written next to the game-file may be dependend on the emulator/context (home-computer/console).
Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.
Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.