PS1 Multi-Disc RetroArch Guide: .CHD Compression, .M3U Playlists & Disc Swapping Without Losing Saves
Quick Answer
To play a multi-disc PS1 game in RetroArch without losing your Disc 1 save, compress each disc's .bin/.cue into a lossless .chd, list the discs in a plain-text .m3u playlist, and always launch the .m3u. Every disc then shares one Memory Card file on ArkOS 2.0 (R36S) and Batocera.
Fifteen hours into Midgar or Shadow Moses is a bad time to find out Disc 2 can't see your save. This guide compares the four PS1 disc formats, batch-converts .bin/.cue dumps with chdman, clears duplicate menu entries, and walks through a clean disc swap in RetroArch's Disc Control menu.
1. .CHD vs. .BIN/.CUE vs. .PBP: Which Disc Format Saves Space Without Breaking RetroAchievements?
Use .CHD. It packs each disc's .cue and .bin tracks into one lossless file, keeps RetroAchievements working, and runs on ArkOS 2.0 on the 2Bluebox R36S ($79.99) and Batocera on the 2Bluebox 500GB HDD ($64.99).
A raw .bin stores every 2,352-byte sector exactly as it sits on the disc, padding and all. Games with CD audio soundtracks, such as Tomb Raider or Wipeout XL, add a separate Track 02.bin, Track 03.bin file for each song, so one disc can turn into a pile of files inside your psx/ folder.
The Batocera wiki's disc image guide and the Libretro Beetle PSX documentation cover the four formats you'll run into. Here's how they differ:
-
.BIN+.CUE(uncompressed baseline): The.binholds raw sector data, and the plain-text.cuetells the emulator where each data and audio track starts. A four-disc RPG like Final Fantasy VIII or The Legend of Dragoon needs at least eight files before you add a playlist. -
.CHD+.M3U(lossless standard): CHD started life as MAME's archive format. MAME'schdmantool folds a.cueand all of its.bintracks into one.chdper disc, using LZMA, zlib, and FLAC compression without throwing any data away. How much you save depends on the game: discs padded with empty or dummy sectors shrink a lot, while discs packed with already-compressed FMV shrink less. A.chdholds only one disc, so multi-disc games still need a small.m3utext file to tie the discs together. -
.PBP(PSX2PSP EBOOT): This PSP-era format packs several discs into one file, so it shares saves without an.m3u. Beetle PSX and PCSX ReARMed load it. The trade-offs are RetroAchievements, which Batocera doesn't support for PS1.pbpfiles, and the conversion itself, which runs through PSX2PSP, an old Windows tool. -
.ISO(data-only trap):.isoworks well for DVD-based consoles like the PlayStation 2. A PS1.isokeeps only one data track, though, so games that stream their music as CD audio tracks lose the soundtrack.
Check your BIOS folder before you convert anything. Beetle PSX can fall back to the open-source OpenBIOS, but the Libretro docs list the region file (scph5501.bin for US games) as the one to use, and psxonpsp660.bin only kicks in after you enable Beetle's Override BIOS option. The folder layout is in our Batocera HDD BIOS folder guide and our PS1 BIOS files guide (scph5501.bin & psxonpsp660.bin).
Table 1: PS1 disc formats compared (.CHD + .M3U vs. .BIN/.CUE vs. .PBP vs. .ISO)
"Tested on our unit" means we checked it on a device we own. "Manufacturer spec" means the maker states it and we haven't verified it ourselves. "Community reports" means players report it, and results can vary.
| Disc Format | Files for a 4-Disc Game | Compression | RetroAchievements (PS1) | Shared Save Across Discs | RetroArch PS1 Cores | Evidence |
|---|---|---|---|---|---|---|
.CHD + .M3U (recommended) |
4 .chd + 1 .m3u
|
Lossless (chdman: LZMA, zlib, FLAC) |
Yes | Yes, when you launch the .m3u
|
SwanStation, PCSX ReARMed, Beetle PSX | Manufacturer spec |
.BIN + .CUE |
8 or more (one .cue plus a .bin per track) |
None (raw 2,352-byte sectors) | Yes | Only with an .m3u
|
SwanStation, PCSX ReARMed, Beetle PSX | Manufacturer spec |
.PBP (PSX2PSP EBOOT) |
1 file holding every disc | Compressed PSP container | No (not on Batocera's supported list) | Yes, inside the one file | Beetle PSX, PCSX ReARMed | Community reports |
.ISO |
4 .iso
|
None, single data track only | No (not on Batocera's supported list) | Only with an .m3u
|
Avoid for games with CD audio | Community reports |
Once you see how many files .CHD folds away without dropping a single audio track, the next step is converting your folders and linking the discs with an .m3u.
2. How to Batch-Convert .BIN/.CUE to .CHD Using chdman & Build Clean .M3U Playlists
Run chdman createcd on each .cue to get one .chd per disc, then list those discs, one per line, in a plain-text .m3u. Launching that playlist makes RetroArch use a single Memory Card for the whole game.
Why does RetroArch lose your save when you switch discs without a playlist? PS1 cores name the virtual Memory Card (.srm, or .mcr on some setups) after the exact file you launch, which is why the RetroAchievements multi-disc tutorial has you build an .m3u first.
Launch Final Fantasy VII (USA) (Disc 1).chd and your progress lands in Final Fantasy VII (USA) (Disc 1).srm. Boot Final Fantasy VII (USA) (Disc 2).chd later and RetroArch opens a separate, empty (Disc 2).srm. Boot Final Fantasy VII (USA).m3u instead, and the card is named Final Fantasy VII (USA).srm and stays loaded across all three discs.
If I were converting a PS1 shelf today, I'd run the whole process on one game, boot it on the handheld, and only then batch the rest. Here's the four-step workflow on a Windows PC:
-
Put
chdman.exein your PS1 folder:chdman.exeships inside the official MAME release for Windows. Copy it into the folder that holds your.cueand.binfiles, open Command Prompt there, and runfor %i in (*.cue) do chdman createcd -i "%i" -o "%~ni.chd". Inside a.batfile, double the percent signs (%%i,%%~ni), and keep the originals until each.chdboots. -
Create a plain-text file in Notepad: Right-click inside the folder, choose
New → Text Document, and open it in Notepad (or TextEdit in plain-text mode on a Mac). Turn onFile name extensionsunder File Explorer'sViewtab first, so the file doesn't end up as.m3u.txt. -
List each
.chdfilename in disc order, one per line: Type or paste the exact names with no extra spaces or quotation marks: Line 1:Final Fantasy VII (USA) (Disc 1).chd· Line 2:Final Fantasy VII (USA) (Disc 2).chd· Line 3:Final Fantasy VII (USA) (Disc 3).chd. -
Save it as
.m3uand launch only that entry: Save the file asFinal Fantasy VII (USA).m3uwith plain UTF-8 encoding (not "UTF-8 with BOM"), then copy it and the three.chddiscs into your console'spsx/folder. Always start the game from the.m3u, so RetroArch loads all three discs into its Disc Control list.
One catch for PAL collections: games with LibCrypt copy protection need their .sbi file sitting next to the .chd with a matching name, because chdman doesn't pack .sbi files in.
The same chdman plus .m3u pattern carries over to Sega's disc-based consoles: Night Trap on Sega CD, Panzer Dragoon Saga on Saturn, and Shenmue or Resident Evil Code: Veronica on Dreamcast (point chdman createcd -i at the .gdi file). The BIOS side of those systems is covered in our Sega CD, Saturn, and Dreamcast BIOS guide.
Converting a whole PS1 shelf with chdman, checking every .cue, and typing playlists by hand can eat a weekend before you fight a single battle. If you'd rather skip the prep, plug the 2Bluebox 500GB Batocera Portable HDD ($64.99) into a Windows PC or laptop's USB 3.0 port. It boots Batocera Linux straight from the drive, leaves your Windows files alone, and comes with 110,686 games you can search before you buy.
Your PC's CPU and GPU also open up PS2 (PCSX2), GameCube and Wii (Dolphin), Dreamcast, and PSP on the same drive. Skip it if your only computer is an Apple Silicon Mac, or if you want to plug straight into a TV with no PC:
3. How to Hide Duplicate Disc Entries in ArkOS (R36S) & Batocera Menus
On Batocera (2Bluebox 500GB HDD), keep the .m3u and its discs together in psx/ with bare filenames, and duplicates hide automatically. On ArkOS 2.0 (2Bluebox R36S), build the playlists, then show only .m3u files or move discs into .hidden/.
Copy Final Fantasy VII (USA).m3u and its three .chd discs into /roms/psx/ and your saves will work, but the menu can still look messy. EmulationStation lists every file with a PS1 extension, so one game can show up four times: the playlist plus Disc 1, Disc 2, and Disc 3. Pick Disc 1 by mistake and your progress goes onto the wrong Memory Card.
Three fixes work, depending on your system:
-
Method A: Let Batocera hide them (2Bluebox 500GB HDD): The Batocera wiki says Batocera automatically hides duplicate disc entries when the playlist lists bare filenames. Keep the
.m3uand its.chddiscs side by side inpsx/, write each line as just the filename, and don't split the discs into separate subfolders, which the wiki warns brings the duplicates back. -
Method B: ArkOS playlist tool plus an extension filter (2Bluebox R36S): The official ArkOS FAQ lists a
PS1 - Generate m3u filesoption in the EmulationStationOptionssection, plusPS1 - Delete m3u filesfor when you add more games. To hide the loose discs, open the PS1 list, press START, go toUI Settings → Theme Configuration → File Extensions, and tick only.m3u. Do this only once every PS1 game has its own.m3u, or single-disc games vanish from the list, and check yourOptionslist first because menu names can differ between ArkOS builds. -
Method C: The
.hidden/subfolder (manual, any ArkOS card): Make a subfolder that starts with a period, such aspsx/.hidden/. EmulationStation on Linux treats dot-folders as hidden and normally skips them, so the discs drop out of the list while the.m3ustays visible. Move the.chdfiles inside and point each playlist line at the subfolder (.hidden/Final Fantasy VII (USA) (Disc 1).chd,.hidden/Final Fantasy VII (USA) (Disc 2).chd,.hidden/Final Fantasy VII (USA) (Disc 3).chd).
Test Method C with one game before you move a whole collection. On Batocera, stick with Method A, since the wiki ties automatic hiding to bare filenames.
Duplicate clutter shows up on full cards too. When I exported the full game list from our R36S unit's microSD card, the card held 15,768 games, and filtering out duplicates and broken files left 12,805 unique playable titles. That filtered list is what you can search at /pages/r36s-games-list, and the 500GB HDD has its own 110,686-game Batocera list, so you can look up a specific PS1 RPG before you buy.
Table 2: Preloaded PS1 libraries: 2Bluebox (2bluebox.com) vs. generic marketplace listings
| What to Check Before You Buy | 2Bluebox (2bluebox.com): R36S ($79.99) & 500GB Batocera HDD ($64.99) | Generic Listings (Amazon / AliExpress / TikTok Shop) |
|---|---|---|
| Public game list before you pay | R36S: 15,768 games (12,805 unique playable) at /pages/r36s-games-list · HDD: 110,686 games at /pages/hdd-super-console-game-list |
Usually a headline game count with no searchable list |
| Board check against clones | R36S on the Dual-RAM RK3326 board (1GB DDR3L) running ArkOS 2.0 · HDD is the clear, blue-cassette 500GB drive booting Batocera over USB 3.0 |
Batches can mix in single-RAM clones running copied EmuELEC, and listings rarely say which board ships |
| Stock & shipping | In stock · Free tracked shipping on orders from $50 USD to the US, UK, Canada, Australia & EU |
Varies by seller and warehouse |
| Seller & guarantee | 2Bluebox LLC, Denver, Colorado, USA · 30-Day Hardware & MicroSD Replacement Guarantee (/policies/refund-policy) |
Return terms depend on the storefront and the country it ships from |
| Skip it if | You want TV output from the R36S (its OTG port has no HDMI-out), or your only computer is an Apple Silicon Mac (HDD). For 2-player TV games, the 2Bluebox Retro Game Stick 4K Pro ($59.98) fits better. |
You want to see the game list and the board type before checkout |
With your discs compressed, your .m3u built, and the duplicates out of sight, here's the exact button sequence for the "Please insert Disc 2" screen, plus how to rescue a save you already made on a loose disc.
4. How to Swap to Disc 2 in RetroArch Disc Control & Rescue Missing .SRM Save Files
At the Disc 2 prompt, stay in the game. Open the RetroArch Quick Menu, choose Disc Control, select Eject Disc, set Current Disc Index to 2, then select Insert Disc. Loading the Disc 2 file from the main menu starts a blank Memory Card.
At the end of Disc 1 in Final Fantasy VII, Chrono Cross, Parasite Eve, or Metal Gear Solid, the game keeps running and waits for the console lid to open and close. Choose Close Content or Load Content and RetroArch shuts the virtual PlayStation down before that swap can happen.
The Disc Control menu follows the line order of your .m3u (index 1 is Disc 1, index 2 is Disc 2). Older RetroArch builds call it Disk Control and use Disk Cycle Tray Status and Disk Index instead of separate eject and insert options. Whether you run PCSX ReARMed on the R36S or SwanStation and Beetle PSX on a Batocera PC (core settings live in our best RetroArch cores per system guide), keep this cheat sheet handy:
| 1. Open the Quick Menu at the "Insert Disc 2" screen (Pauses the game without closing it) | FN + X on R36S · Hotkey + South button on Batocera (B on SNES pads, A on Xbox, Cross on PS) |
| 2. Open the virtual tray (Tells the game the lid is open) | Quick Menu → Disc Control → Eject Disc |
| 3. Pick the next disc (Switches from Disc 1 to Disc 2, 3, or 4) |
Current Disc Index → choose 2 (the filename from line 2 of your .m3u) |
| 4. Close the tray (Tells the game a new disc is in) |
Insert Disc, then close the menu or select Resume
|
| Metal Gear Solid ignores the swap (Some games need to see an empty tray first) | Set the disc index to No Disk, close the menu, wait about half a second, then reopen it and pick the right disc (Libretro disc-swapping guide) |
Save rescue: you beat Disc 1 without an .m3u (Lets Disc 2 find your existing Memory Card) |
Build Game Name.m3u first, then copy Game Name (Disc 1).srm in psx/ (or saves/psx/ on Batocera) and rename the copy Game Name.srm
|
I've often had to explain to my seven-year-old daughter why 1990s games won't let you save anywhere you like, and to her, Save States feel like magic. A disc swap is where that magic runs out.
A Save State (.state) is a snapshot of the whole console, so it stays tied to the disc and file you made it on. Boot your old Disc 1 file one last time, load the Save State, and save at an in-game Memory Card prompt to write the .srm. Then do the rename from the table above, and your new .m3u picks up right where you left off.
Debugging .srm filenames on a Friday night is nobody's idea of fun. If you'd rather just play, the 2Bluebox R36S Handheld ($79.99) puts 15,768 preloaded games (12,805 unique, listed at /pages/r36s-games-list) on a Dual-RAM RK3326 board running ArkOS 2.0, with a 3.5-inch IPS screen sized for flights and commutes.
For the living room, the 2Bluebox Retro Game Stick 4K Pro ($59.98) pairs a white SEGAM-M8-V5.0 HDMI stick with two 2.4GHz wireless controllers and 14,755 playable games listed at /pages/all-games. Its 13 preinstalled PS1 games are single-disc fighters, brawlers, and racers like Tekken and Ridge Racer, so treat it as the couch co-op pick and leave multi-disc RPGs to the R36S or the HDD. Orders from $50 USD ship free with tracking:
Frequently Asked Questions (FAQ)
How do I play multi-disc PS1 games on RetroArch without losing my save file on Disc 2?
Put your .chd (or .cue) discs in a plain-text .m3u playlist, one filename per line, and always launch the game from the .m3u so every disc shares one Memory Card file. At the Disc 2 prompt, open the RetroArch Quick Menu (FN + X on the R36S), go to Disc Control, select Eject Disc, set Current Disc Index to 2, and select Insert Disc. Already finished Disc 1 without a playlist? Create the .m3u, then copy Game Name (Disc 1).srm and rename the copy Game Name.srm to match.
Should I use .CHD or .PBP for PS1 multi-disc games on R36S and Batocera?
Use .CHD with an .m3u playlist on both the R36S (ArkOS 2.0) and Batocera. A .pbp built with PSX2PSP does pack every disc into one file and keeps saves together, and Beetle PSX and PCSX ReARMed both load it. The catch is RetroAchievements: the Batocera wiki lists only .cue/.bin and .chd as PS1 formats that work with it. .CHD is lossless, shrinks most discs, and runs in PCSX ReARMed, SwanStation, and Beetle PSX.
How do I hide duplicate Disc 1, Disc 2, and Disc 3 entries in EmulationStation?
On Batocera, keep the .m3u and its discs together in psx/ with bare filenames in the playlist, and Batocera hides the duplicates on its own. On ArkOS, run PS1 - Generate m3u files from the Options section if your build has it, then set the PS1 list to show only .m3u files under UI Settings → Theme Configuration → File Extensions. The manual alternative is moving the discs into /roms/psx/.hidden/ and writing each playlist line as .hidden/Game Name (Disc 1).chd.
Can I check which multi-disc PS1 RPGs are on the 2Bluebox 500GB Batocera HDD and R36S before buying?
Yes. Search the title on the 110,686-game HDD list at /pages/hdd-super-console-game-list or the R36S list at /pages/r36s-games-list (15,768 games, 12,805 unique playable). The 2Bluebox 500GB Batocera Portable HDD ($64.99) boots Batocera from a Windows PC's USB 3.0 port, and the 2Bluebox R36S Handheld ($79.99) runs ArkOS 2.0 on a Dual-RAM RK3326 board. Generic marketplace listings usually skip the searchable list, while every 2Bluebox order ships from 2Bluebox LLC (Denver, Colorado) with free tracked shipping on orders from $50 USD and a 30-Day Hardware & MicroSD Replacement Guarantee (/policies/refund-policy).
Conclusion
Multi-disc PS1 RPGs on ArkOS 2.0 and Batocera come down to three habits. Compress .bin/.cue dumps into lossless .chd files with chdman. Tie each game's discs together in a plain-text .m3u and keep the loose discs out of sight. Swap discs only through Quick Menu → Disc Control, so your .srm Memory Card stays with you from Disc 1 to the final boss.
Whether you're playing Final Fantasy VII on a handheld during your commute or booting a 500GB Batocera drive on your laptop, set up .chd and .m3u once and the Disc 2 screen stops being a gamble.
Pack your discs into .CHD, launch from .M3U, and Press Start.
Further Reading & Resources
- Multi-disc .m3u playlists and save renaming: RetroAchievements Multi-Disc Games Tutorial (RetroAchievements Docs)
- Disc image formats, .m3u playlists, and automatic duplicate hiding: Batocera Wiki: Disc Image Formats & Multi-Disc (Batocera.linux Wiki)
- PS1 file extensions, BIOS files, Memory Card naming, and chdman: Libretro Beetle PSX Core Documentation (Libretro Docs)
- Disc Control menu and the Metal Gear Solid workaround: Libretro Disc Swapping Guide (Libretro Docs)
- ArkOS PS1 - Generate m3u files and duplicate PS1 entries: ArkOS Frequently Asked Questions (ArkOS GitHub Wiki)
- CD-based systems, .pbp vs. .chd, on Linux handhelds: Guide: CD-Based Systems on Retro Handhelds (Retro Game Corps)