M3U and disk control support for classic computers (Amiga, CPC, ...)

Hi everyone,

In recent weeks, I have added m3u and disk control support from within RetroArch for several classic computers cores.

For now, it’s done for:

  • Amiga (p-uae), available in nightly repo,
  • Amstrad CPC (cap32), available in nightly repo,
  • Atari ST (hatari), available in nightly repo,
  • Commodore 64, 128, … (vice), available in nightly repo.

I tested all the core myself with several games and had no problem.

Several other peoples tried it from a personnal windows build of p-uae (see UAE core for Retroarch).

I would be glad if you could give them a try and tell me if it work for you.

Over time, I plan to add it to classic computers cores whenever it’s possible as it greatly enhance their usability.

Of course, other devs can use my helper functions (retro_disk_control, retro_files, retro_strings) and take example on what was done to implement this for other cores (it’s not that difficult).

For information, other classic computers cores already supports m3u and disk control interface:

  • MSX (blueMSX), done by @msheehan79, available in nightly repo.

Usage

When you have a multi disk game, you can use a m3u file to specify each disk of the game and change them from the RetroArch Disk control interface.

A M3U file is a simple text file with one disk per line (see https://en.wikipedia.org/wiki/M3U).

Example (for Hatari):

Simpsons, The - Bart vs. The Space Mutants.m3u

Simpsons, The - Bart vs. The Space Mutants_Disk1.st
Simpsons, The - Bart vs. The Space Mutants_Disk2.st

Path can be absolute or relative to the location of the M3U file.

When a game ask for it, you can change the current disk in the RetroArch ‘Disk Control’ menu :

  • Eject the current disk with ‘Disk Cycle Tray Status’.
  • Select the right disk index.
  • Insert the new disk with ‘Disk Cycle Tray Status’.

Note : zip support is provided by RetroArch and is done before passing the game to the core. So, when using a m3u file, the specified disk images must be in uncompressed form.

1 Like

This is amazing work!

Any chance you could make a personal build of the VICE core like you did with Amiga until the pull request gets accepted?

Any chance you could make a personal build of the VICE core like you did with Amiga until the pull request gets accepted?

I’ve only built the c64 version of the core.

Here it is if you want to give it a try.

EDIT: Link removed, the core is available in nightly repo.

Hi @DamsRoxxx

Thank you for implementing this, great stuff!

Awesome that you will be working on implementing this for other classic computers also.

If possible please implement this for BlueMSX, then finally we can play SD Snatcher through Retroarch!

Hi @rafan,

If possible please implement this for BlueMSX, then finally we can play SD Snatcher through Retroarch!

Seems that was already done by @msheehan79 for BlueMSX :

It’s also documented into the wiki (see https://docs.libretro.com/library/bluemsx/)

Will update my first post.

Must have missed that one, great that it’s already in there, thanks for the pointer!

Will be trying the C64 core also and report back if I find any issues.

M3U support for vice was merged into master.

The core is now available in nightly repo and can be updated with retroarch core updater.

Edited first post and removed my personnal build.

M3U support for puae was merged into master.

The core is now available in nightly repo and can be updated with retroarch core updater.

Edited first post and removed my personnal build.

I still have to test it on these platforms, but I can confirm it works on NEC PC-91 and Sharp X68000 emulators.

BTW I found a problem. I have each game in a ZIP archive, containing the floppy images (two for this example) and one m3u file.

If I point retroarch to the archive, the first floppy image is selected and mounted instead of the m3u file.

If I use Launchbox and activate the the “extract archive before launching ROM” option then Retroarch picks the m3u file and mounts the two floppy images on the disk drives of the emulator as intended.

thank you!

with ATR - All Terrain Racing doesn’t work: when it says “please insert disk2” i select the disk 2 but nothing happens. can i solve?