Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
cd_image_formats [2021/10/08 11:49] – [A subfolder for each multi-disc game] corrections/adjustments to that new section (btw thanks AinsWorth) ataricd_image_formats [2022/10/01 04:15] (current) atari
Line 3: Line 3:
 Disc images/ROMs come in a variety of formats, and over the years many formats have risen and fallen in popularity. This article focuses on the more common ones you may come across. Disc images/ROMs come in a variety of formats, and over the years many formats have risen and fallen in popularity. This article focuses on the more common ones you may come across.
  
-<WRAP center round info 60%>+<WRAP center round info>
 For information on compressed disk images take a look at [[disk_image_compression|Disc image compression]]. For information on compressed disk images take a look at [[disk_image_compression|Disc image compression]].
 </WRAP> </WRAP>
Line 25: Line 25:
   * ''.mdf'' and ''.mds'' (Media disk Image File and Media Descriptor File) - the CD or DVD data is stored inside the ''.mdf'' file, while the header and track information are stored in the ''.mds'' file.   * ''.mdf'' and ''.mds'' (Media disk Image File and Media Descriptor File) - the CD or DVD data is stored inside the ''.mdf'' file, while the header and track information are stored in the ''.mds'' file.
  
-<WRAP center round info 40%>+<WRAP center round info>
 This information has been surmised from https://www.digitalcitizen.life/simple-questions-what-disc-image-file-iso-nrg-bin and https://en.wikipedia.org/wiki/ISO_image This information has been surmised from https://www.digitalcitizen.life/simple-questions-what-disc-image-file-iso-nrg-bin and https://en.wikipedia.org/wiki/ISO_image
 </WRAP> </WRAP>
Line 75: Line 75:
 To automatically load the next disc of a game, you can use a ''.m3u'' playlist file. To automatically load the next disc of a game, you can use a ''.m3u'' playlist file.
  
-<WRAP center round important 60%>+<WRAP center round important>
 Please note that even if ''_info.txt'' says ''.m3u'' is a supported format, not all standalone emulators/Libretro cores support loading discs in this way. Please note that even if ''_info.txt'' says ''.m3u'' is a supported format, not all standalone emulators/Libretro cores support loading discs in this way.
 </WRAP> </WRAP>
  
 To make one, simply create a text file with the same filename as your intended game name (this is what will appear in your game list. It could be anything, really). Within that text file, write the names of the ''.cue''/''.gdi''/''.mdf'' sheets or ''.chd'' files for your game discs. To make one, simply create a text file with the same filename as your intended game name (this is what will appear in your game list. It could be anything, really). Within that text file, write the names of the ''.cue''/''.gdi''/''.mdf'' sheets or ''.chd'' files for your game discs.
 +
 +<WRAP center round important>
 +If creating the playlist file with Windows, be aware of the [[https://wiki.batocera.org/github-desktop#note_for_windows_users|line ending limitations]]. For most systems, this does not matter, but some will only read playlist files if they use Linux-style line terminators.
 +</WRAP>
 +
 +<WRAP center round info>
 +Batocera will automatically hide duplicated entries showing in the gamelist when using playlists to define which discs are a part of a single game. However, this will only work when the playlists are referencing just the filenames; relative pathing will override this behaviour and show all discs. To put it simply:
 +
 +  * ''filename.cue'' -> hide this disc
 +  * ''./filename.cue'' -> don't hide this disc
 +</WRAP>
  
 ==== All the files inside of the applicable ROM folder ==== ==== All the files inside of the applicable ROM folder ====
Line 88: Line 99:
 roms/ roms/
 └─ psx/ └─ psx/
-   ├─ Final Fantasy VII (Disc 1).cue 
    ├─ Final Fantasy VII (Disc 1).bin    ├─ Final Fantasy VII (Disc 1).bin
-   ├─ Final Fantasy VII (Disc 2).cue+   ├─ Final Fantasy VII (Disc 1).cue
    ├─ Final Fantasy VII (Disc 2).bin    ├─ Final Fantasy VII (Disc 2).bin
-   ├─ Final Fantasy VII (Disc 3).cue +   ├─ Final Fantasy VII (Disc 2).cue 
-   ─ Final Fantasy VII (Disc 3).bin+   ─ Final Fantasy VII (Disc 3).bin 
 +   └─ Final Fantasy VII (Disc 3).cue
 </code> </code>
  
Line 110: Line 121:
 └─ psx/ └─ psx/
    ├─ Final Fantasy VII.m3u    ├─ Final Fantasy VII.m3u
-   ├─ Final Fantasy VII (Disc 1).cue 
    ├─ Final Fantasy VII (Disc 1).bin    ├─ Final Fantasy VII (Disc 1).bin
-   ├─ Final Fantasy VII (Disc 2).cue+   ├─ Final Fantasy VII (Disc 1).cue
    ├─ Final Fantasy VII (Disc 2).bin    ├─ Final Fantasy VII (Disc 2).bin
-   ├─ Final Fantasy VII (Disc 3).cue +   ├─ Final Fantasy VII (Disc 2).cue 
-   ─ Final Fantasy VII (Disc 3).bin+   ─ Final Fantasy VII (Disc 3).bin 
 +   └─ Final Fantasy VII (Disc 3).cue
 </code> </code>
  
Line 126: Line 137:
 └─ psx/ └─ psx/
    └─ Final Fantasty VII/    └─ Final Fantasty VII/
-      ├─ Final Fantasy VII (Disc 1).cue 
       ├─ Final Fantasy VII (Disc 1).bin       ├─ Final Fantasy VII (Disc 1).bin
-      ├─ Final Fantasy VII (Disc 2).cue+      ├─ Final Fantasy VII (Disc 1).cue
       ├─ Final Fantasy VII (Disc 2).bin       ├─ Final Fantasy VII (Disc 2).bin
-      ├─ Final Fantasy VII (Disc 3).cue +      ├─ Final Fantasy VII (Disc 2).cue 
-      ─ Final Fantasy VII (Disc 3).bin+      ─ Final Fantasy VII (Disc 3).bin 
 +      └─ Final Fantasy VII (Disc 3).cue
 </code> </code>
  
 <WRAP center round tip> <WRAP center round tip>
-In the case that you've organized your ROMs like this, you can use the follow BAT script to automatically generate the M3U playlists and put them into the appropriate subfolders:+In the case that you've organized your ROMs like this, you can use the following scripts/SSH commands to automatically generate the M3U playlists and put them into the appropriate subfolders:
 --> Click to expand# --> Click to expand#
-Place the script in the ''roms/<system>'' folder and double-click/execute it. If you want to apply this to //all// CUE and/or CHD multi-disc games in all systems, run it from ''roms/'' instead. +  * **[[:access_the_batocera_via_ssh|via SSH]]** <wrap em>TENTATIVE (needs some more testing, run at your own risk!)</wrap>First, change the current directory to the system's ROM folder with ''cd <path/to/folder>''. For example: <code> 
-  * **On Windows**+cd /userdata/roms/psx 
 +</code> 
 +    * For ''.cue'' files: 
 +      * Run the following: <code bash> 
 +for DIR in *; do echo "$(for file in "$DIR"/*.cue; do echo "$(basename "$file")"; done)" > "$DIR"/"$DIR".m3u; done 
 +</code> 
 +    * For ''.chd'' files: 
 +      * Just run the following: <code bash> 
 +for DIR in *; do echo "$(for file in "$DIR"/*.chd; do echo "$(basename "$file")"; done)" > "$DIR"/"$DIR".m3u; done 
 +</code> 
 + 
 +  * **Accessible the drive directly on Windows** Place the script in the ''roms/<system>'' folder and double-click/execute it. If you want to apply this to //all// CUE and/or CHD multi-disc games in all systems, run it from ''roms/'' instead.
     * For NTFS userdata filesystems:     * For NTFS userdata filesystems:
-      * For CUE files: <file - ntfs-generate-m3u-for-cue-in-subfolders.bat>+      * For ''.cue'' files: <file - ntfs-generate-m3u-for-cue-in-subfolders.bat>
 @echo off @echo off
 for /R "%~dp0" %%I in (*.cue) do for %%J in ("%%~dpI.") do echo %%~nxI>>"%%~dpI%%~nxJ.m3u" for /R "%~dp0" %%I in (*.cue) do for %%J in ("%%~dpI.") do echo %%~nxI>>"%%~dpI%%~nxJ.m3u"
 </file> </file>
-      * For CHD files: <file - ntfs-generate-m3u-for-chd-in-subfolders.bat>+      * For ''.chd'' files: <file - ntfs-generate-m3u-for-chd-in-subfolders.bat>
 @echo off @echo off
 for /R "%~dp0" %%I in (*.chd) do for %%J in ("%%~dpI.") do echo %%~nxI>>"%%~dpI%%~nxJ.m3u" for /R "%~dp0" %%I in (*.chd) do for %%J in ("%%~dpI.") do echo %%~nxI>>"%%~dpI%%~nxJ.m3u"
 </file> </file>
     * For FAT userdata filesystems:     * For FAT userdata filesystems:
-      * For CUE files: <file - fat-generate-m3u-for-cue-in-subfolders.bat>+      * For ''.cue'' files: <file - fat-generate-m3u-for-cue-in-subfolders.bat>
 @echo off @echo off
 for /F "eol=| delims=" %%I in ('dir "%~dp0*.cue" /A-D-H /B /ON /S 2^>nul') do for %%J in ("%%~dpI.") do echo %%~nxI>>"%%~dpI%%~nxJ.m3u" for /F "eol=| delims=" %%I in ('dir "%~dp0*.cue" /A-D-H /B /ON /S 2^>nul') do for %%J in ("%%~dpI.") do echo %%~nxI>>"%%~dpI%%~nxJ.m3u"
 </file> </file>
-      * For CHD files: <file - fat-generate-m3u-for-chd-in-subfolders.bat>+      * For ''.chd'' files: <file - fat-generate-m3u-for-chd-in-subfolders.bat>
 @echo off @echo off
 for /F "eol=| delims=" %%I in ('dir "%~dp0*.chd" /A-D-H /B /ON /S 2^>nul') do for %%J in ("%%~dpI.") do echo %%~nxI>>"%%~dpI%%~nxJ.m3u" for /F "eol=| delims=" %%I in ('dir "%~dp0*.chd" /A-D-H /B /ON /S 2^>nul') do for %%J in ("%%~dpI.") do echo %%~nxI>>"%%~dpI%%~nxJ.m3u"
Line 178: Line 200:
    └─ Final Fantasty VII/    └─ Final Fantasty VII/
       ├─ Final Fantasy VII.m3u       ├─ Final Fantasy VII.m3u
-      ├─ Final Fantasy VII (Disc 1).cue 
       ├─ Final Fantasy VII (Disc 1).bin       ├─ Final Fantasy VII (Disc 1).bin
-      ├─ Final Fantasy VII (Disc 2).cue+      ├─ Final Fantasy VII (Disc 1).cue
       ├─ Final Fantasy VII (Disc 2).bin       ├─ Final Fantasy VII (Disc 2).bin
-      ├─ Final Fantasy VII (Disc 3).cue +      ├─ Final Fantasy VII (Disc 2).cue 
-      ─ Final Fantasy VII (Disc 3).bin+      ─ Final Fantasy VII (Disc 3).bin 
 +      └─ Final Fantasy VII (Disc 3).cue
 </code> </code>
  
Line 194: Line 216:
 └─ psx/ └─ psx/
    ├─ Final Fantasy VII (Disc 1)/    ├─ Final Fantasy VII (Disc 1)/
-   │  ├─ sheet.cue +   │  ├─ disc.bin 
-   │  └─ disc.bin+   │  └─ sheet.cue
    ├─ Final Fantasy VII (Disc 2)/    ├─ Final Fantasy VII (Disc 2)/
-   │  ├─ sheet.cue +   │  ├─ disc.bin 
-   │  └─ disc.bin+   │  └─ sheet.cue
    ├─ Final Fantasy VII (Disc 3)/    ├─ Final Fantasy VII (Disc 3)/
-   │  ├─ sheet.cue +   │  ├─ disc.bin 
-   │  └─ disc.bin+   │  └─ sheet.cue
    └─ Final Fantasy VII.m3u    └─ Final Fantasy VII.m3u
 </code> </code>
Line 234: Line 256:
 In case the automatic disc swapping fails, refer to these manual disc swapping instructions below. In case the automatic disc swapping fails, refer to these manual disc swapping instructions below.
  
-=== RetroArch (all libretro cores) ===+=== RetroArch (most libretro cores) ===
  
-You can utilize RetroArch's **Disc Control** menu in the Quick Menu (Hotkey+{{:wiki:south.png?nolink&20|South button (B SNES)}} button in-game). Select **Eject Disc**, then go to **Current Disc Index** and change your disc to the next one. Then, **Insert Disc** to continue the game.+You can utilize RetroArch's **Disc Control** menu in the Quick Menu (''[HOTKEY]'' + {{:wiki:south.png?nolink&20|South button (B SNES)}} button in-game). Select **Eject Disc**, then go to **Current Disc Index** and change your disc to the next one. Then, **Insert Disc** to continue the game.
  
 <WRAP center round alert 60%> <WRAP center round alert 60%>
Line 251: Line 273:
  
 {{:duckstation-swap-disc.png|Screenshot showing the DuckStation UI.}} {{:duckstation-swap-disc.png|Screenshot showing the DuckStation UI.}}
 +
 +=== libretro: Opera (3DO) ===
 +
 +From Batocera **v34**, enable the **NVRAM STORAGE** option from the advanced system settings (''[SELECT]'' in the game list) for the multi-disc game's discs to allow them to automatically use the same save file. Then load the second disc from ES after completing the first one. Do note that this shared storage has the real-world limitations of the 3DO's drive space.
 +
  • cd_image_formats.1633693749.txt.gz
  • Last modified: 5 years ago
  • by atari