SidecarTridge Multi-device Oric Computer Emulator
Source code CHANGELOG Report BUG v2.0.0
![]()
This microfirmware app for the SidecarTridge Multi-device platform emulates an Oric-1 and Oric Atmos computer on the Atari ST, STE, MegaST, and MegaSTE.
This emulator is based on the Reload Emulator project by Veselin Sladkov. Huge thanks for his great work!
The floppy disk controller (a WD1793 with a Microdisc around it) is ported from Oricutron by Peter Gordon and contributors, used with his specific permission (oricutron#216). Thanks to Pete and the Oricutron team.
Table of contents
⚠️ Attention
This emulator is designed only for low-resolution monitors. It will not work in high-resolution modes.
🚀 Installation
To install the Emulator app on your SidecarTridge Multi-device:
- Launch the Booster App on your SidecarTridge.
- Open the Booster web interface in your browser.
- Go to the Apps tab and select Oric Emulator from the list.
- Click Download to install the app to your SidecarTridge’s microSD card.
- Once installed, select the app and click Launch.
After installation, the Oric Emulator will start automatically every time your Atari is powered on.
🕹️ Usage
Setting up the microSD card
Everything lives in the /oric directory on the SidecarTridge microSD card.
ROMs. Copy one or more Oric ROM images there with a .rom extension. They must be 16 KB. 6502Nerd’s dflat repository carries the usual ones in a public Git tree:
| File | What it is |
|---|---|
basic11b.rom | Oric Atmos BASIC 1.1b, the one to start with |
basic10.rom | Oric-1 BASIC 1.0, for software that needs the older machine |
dflat.rom | dflat, 6502Nerd’s own language ROM |
MICRODIS.ROM | the Microdisc EPROM. Not a BASIC ROM. See Disks below |
The other .rom files in that folder are EPROMs for disk controllers this emulator does not emulate (Jasmin, Byte Drive 500, Cumana). They are smaller than 16 KB, so the menu will not offer them.
Tapes. Copy .tap files to the same directory. Any filename works, since you pick them from a menu rather than by name.
Disks (optional, experimental). To use disk images you need the Oric Microdisc ROM: an 8 KB file, copied to the same directory as microdisc.rom or microdis.rom, the name it is usually distributed under. Case does not matter, so MICRODIS.ROM works as downloaded. It is deliberately not shown in the ROM menu: it is the disk controller’s EPROM, not a BASIC ROM. Then copy .dsk images alongside it. They must be in the MFM_DISK format used by Oricutron and Euphoric (the common format on oric.org); other .dsk flavours are refused with a message.
The emulated machine is an Atmos with a Microdisc, so the disk must carry a Microdisc-bootable DOS, which in practice means Sedoric. Telestrat disks (Stratsed; oric.org often labels them Telestrat) boot only on a Telestrat, and the Microdisc ROM answers them with NO OPERATING SYSTEM. Most titles exist in an Atmos/Sedoric version as well, so look for that one.
That is all the setup there is. Subdirectories, hidden files and system files are ignored, so a card written from macOS or Windows will not show stray entries.
First run
On the first boot the emulator needs to know which ROM to use:
- If the card holds exactly one
.romfile, it is installed automatically and the emulator starts. - If it holds several, a list appears and you choose one.
- If it holds none, the screen tells you what to copy where, with a QR code to this setup guide.
Installing a ROM copies it into place and reboots the Multi-device, which takes a couple of seconds. The choice is remembered, so later boots go straight to the Oric.
With no microSD card at all the emulator cannot run: it says so and hands back to GEM. Insert a card and reset, and it starts normally.
While the Oric is booting, Press F1 for config menu appears over the screen for a few seconds, then gets out of the way.
The menu
Press F1 at any time to open the menu:
| Entry | What it does |
|---|---|
| SELECT ROM | Choose a different ROM and restart with it |
| SELECT TAPE | Insert a .tap into the virtual cassette drive |
| EJECT TAPE | Remove the current tape (shown only while one is inserted) |
| SELECT DISK (EXPERIMENTAL) | Insert a .dsk and boot it. The Oric resets with the Microdisc ROM active, the way a real one boots with a disk in the drive |
| EJECT DISK (EXPERIMENTAL) | Remove the current disk; the Oric keeps running (shown only while one is inserted) |
| RESET ORIC | A power cycle: memory is cleared, then the disk boots if one is inserted, otherwise BASIC starts fresh. (HELP is the soft reset that keeps memory.) |
| STATUS | Version, current ROM, tape and disk, and emulator timing |
| HELP | The keys and how to load a tape or change the ROM, on screen |
| RETURN TO BOOSTER | Leave the emulator and cold-boot the ST into the Booster app |
| RESUME | Back to the Oric |
Use the arrow keys to move, Return to choose, and ESC to go back a level or close the menu. Lists longer than one page scroll with up/down, and left/right jump a page at a time.
After inserting a tape, type CLOAD"" at the Oric BASIC prompt to load it. A green progress bar along the bottom of the screen shows how far through the tape you are, and TAPE FINISHED appears briefly when it reaches the end, so you can tell a load that is working from one that has stalled. You can find plenty of Oric software online in places like Oric.org.
Other keys
| Key | Action |
|---|---|
| F1 | Open the menu |
| ESC | Go back a level, or close the menu. With the menu closed it is the Oric’s own ESC |
| HELP | Soft reset of the Oric (memory kept) |
| UNDO | Non-maskable interrupt (break) |
| HOME | Show screen-conversion timing without opening the menu |
Every other key goes to the Oric, including F2-F10. The Atari ST layout is mapped to the Oric’s keyboard, so a few symbols sit where the Oric expects them rather than where the ST key cap says.
⏏️ Exiting to Booster
Choose RETURN TO BOOSTER from the menu. The screen goes black, the Atari ST cold-boots, and the Booster app comes up. The old route still works too: power cycle the Atari ST while holding the SELECT button on the SidecarTridge, which interrupts the normal boot and launches the Booster app instead.
🔄 Power Cycling
After a power cycle, the emulator auto-launches.
🛠️ Under the hood
The Oric Emulator is built using the Reload Emulator core, adapted to run on the SidecarTridge Multi-device platform.
The RP2040 does nearly all the work. One core runs the Oric at 1 MHz (the 6502, the 6522 VIA, the AY-3-8912 and the memory map). The other converts the Oric’s 240×224 screen into the Atari’s planar format about 50 times a second. The Atari copies that ready-made screen into video memory each frame, forwards keystrokes back over the cartridge bus, and replays the Oric’s sound-chip writes on its own YM2149. The floppy controller is a WD1793 with a Microdisc around it, reading one track of the disk image at a time from the card.
What’s next
Maintaining and improving this emulator is a hobby project for me. If you have any suggestions or find any issues, please feel free to open an issue on the GitHub repository.
Missing features, future roadmap
Done since the first release:
- TAP file load menu. Tapes are chosen from an on-screen list instead of function keys.
- Direct TAP file load.
.tapfiles play as they are read, with no conversion step and nothing written to your card. - Faster framebuffer build. The Oric-to-Atari screen conversion is about 30% cheaper per frame.
- Better framebuffer. Dropped frames and tearing are gone. One frame of latency remains and is inherent, because the Atari has to copy the screen before it can show it.
- Floppy disk support. A Microdisc with a WD1793, so standard
.dskimages boot. One drive, read a track at a time from the card. Experimental in this release. - An on-screen menu for choosing ROMs, tapes and disks, and for resetting the Oric.
- A keyboard that keeps up. No lost keystrokes, and no keys stuck down.
Still open:
- Joystick/gamepad support.
- A second disk drive, and disk write-protect from the menu.
- Further performance improvements.
License
This project is released under the GNU General Public License v3.0. See the LICENSE file for details.
Note: the original Reload Emulator repository does not display a license, so I do not know what license to attribute for that upstream code.
The disk controller code is ported from Oricutron, which is GPL version 2 only. It is used here under a specific permission from its author, Peter Gordon (oricutron#216); his copyright notice and the list of contributors are kept in the source file.
🤝 Contributing
Made with ❤️ by SidecarTridge