Lu

USBODE: An ODE for DOS and Newer PC’s

USBODE is an WIP open source project that turns an Raspberry Pi Zero W into an optical disk emulator. When connecting the raspberry Pi to a computer, it will appear as a CD-ROM drive. Then you can mount CDROM images stored on an SD Card to mount on the computer.

It can work with a Raspberry Pi alone, or if you want some additional features, you can attach a supported Pi Hat. These hat’s provide features like on-device browsing and mounting of CD-ROM images and CD Audio playback in DOS.

Setup

Since the project is still in development, there is only a test build for USBODE available on the projects Discord server. The GitHub has detailed installation instructions, but I will summarize the process here.

To setup USBODE, install the software onto a micro SD Card. On the SD Card, there will be a file (wpa_supplicant.conf) that will let you configure your wifi network settings to get the web interface working. Another file(config.txt) let’s you configure the optional Pi Hat’s you can use. On the SD Card, there is a directory (/images) where you can load your CD images to (ISO or BIN/CUE).

You then take a micro USB cable to plug in the PC and Raspberry Pi together. Make sure to plug in the cable to the Pi Zero’s USB data port. One port is only for power. The data port provides both power and data.

Then boot up your computer. Depending on the OS you use, some driver installation may be required. For DOS, one of the developers, danifunker, has the drivers and sample config.sys and autoexec.bat files on thier GitHub (links below).

Once the OS is configured, the USBODE will be available on your computer as a standard CD-ROM drive. You can then install software from the mounted CD image or run software directly form the image.

Web Interface

The web interface is pretty simple. It lists the ISO and BIN/CUE files you loaded on the SD card. You mount an ISO by just clicking on one. Then when you refresh the CD-ROM drive on your PC, the new file contents will appear.

Optional Hardware

If you want to bypass the web interface and mount CD images from the USBODE itself, then you will need one of the supported Pi Hats. The two currently support hats are:

  • waveshare 1.3inch OLED Display HAT: Provides on-device CD image mounting
  • Pirate Audio Line-out: Provides on-device CD image mounting and CD Audio playback in DOS

Testing

This project really shines with retro PC’s running DOS. I’ve used DOS programs to load up CDROM images, but none of them supported CD Audio. Now with the USBODE, I can finally listen to the CD Audio supported in many DOS games. My retro PC does not have room for a CDROM drive, so USBODE is an excellent alternative. I’ve tested this on my Retro PC that uses an ITX-Llama motherboard and was able to mount and install a Quake 1 CD image and also Screamer CD image. Both were in the BIN/CUE format and had CD Audio. CD Audio played back just fine while playing the games.

I haven’t tested Windows 98, because I use Deamon Tools instead, but in Windows 98 it is possible that the USBODE may automatically be detected. If not you may need to install the nUSB drivers available at Phil’s Computer Lab.

This project also works on modern computers. I tested it on my Windows 11 PC and I saw a CD-ROM appear on my list of drives. CD Audio also worked. The Pirate Audio DAC is not required to get CD Audio playback on Windows 2000 and later.

The test build version of USBODE I tried did not work on my M1 Macbook Air.

Limitations

There are some things you need to be aware of with the USBODE project.

  • Multi-file BIN’s do not work. There is software to merge these into one file called CDFix (link in GitHub)
  • Some forms of copy protection will not work
  • Still a work-in-progress project so expect bugs.
  • Only works with computers with USB ports. Older PC’s without USB ports will have to look at a device like the ZuluIDE

Final Thoughts

The USBODE project is great for those wanting to use CD images in DOS and Windows 3.1 without losing the ability to play CD Audio. While it can work with newer operating systems, there are already solutions to achieve that for them. So I feel DOS and Windows 3.1 are the best use case for the USBODE. If you want to see it in action, check out the video I linked in this article.

 

Relevant Links:

Hardware (Amazon links are affiliate links)