Using SD card as a ZX Spectrum cart is already possible

Y'know, other stuff, Sinclair related.
Post Reply
User avatar
Uto
Drutt
Posts: 24
Joined: Wed Nov 15, 2017 10:28 am

Using SD card as a ZX Spectrum cart is already possible

Post by Uto »

Hi all,

Recently, in a Telegram group, we were thinking why SD cards can't be used as carts for the ZX Spectrum, specially considering how many users have real hardware ready to use with DivMMC or DivIDE interfaces. Of course DivIDE needs a SD2CF adapter,

The idea was inserting the SD card in the DivMMC/IDE, then turn on the Spectrum, and have the game starting automatically.

The main reason that was not possible, was ESXDOS, the OS present in all DivMMCs and most DivIDEs, it's configured so part of it it's in the flash ROM of the device, and the other part in files in the SD. Also, the files in the SD card should match the flashed version, so it was impossible to make a SD card working in all DivMMC/IDE interfaces. Also, ESXDOS has a autoexec feature, but it was only added recently.

Ok, we have somehow "hacked" ESXDOS and we found a way to make autostart work for all versions of ESXDOS.

You can see it working here:

https://www.youtube.com/watch?v=fkUoQY4nX9A

Here, there is a longer and technical explanation:

https://github.com/Utodev/utoboot/blob/main/README.md

There you can see how it technically works, and there is also three simple sample loaders: one for games loaded at 32768, one for AGD games, and one for DAAD Aventure Write games.

The idea is being able to distribute games just like others are doing for the Spectrum Next:

Image

On the other hand, while playing with this, I found I could make the SD be shareable for a Spectrum and an Amstrad CPC game, if the Amstrad CPC has a M4 interface. So if your game has been ported from or to Amstrad CPC, you can make a CPC/Spectrum SD, and it works on both of them.

Advantages from a "real" cart?

- SD cards, or microSD+adapter are cheap and easy to obtain
- Unlike Interface II and other kind of carts, a high percentage of users using real hardware already have a DivMMC or DivIDE. Most clones like ZX-Uno or Omni include a DivMMC too. Even Spectrum Next, has a ROM to boot with ESXDOS, so it would work too.
- Is still possible to use ESXDOS to read or load files, and is really easy, so you can make utilities, save the game, or even have room for different game stages, sprites, loading screens, etc.
- The smaller SD card is huge in terms of space for a Spectrum, it's even possible to make a single "SDCart" with the whole free distribution pack of Spectrum games.



Acknowledges:

- Mcleod_ideafix: while not involved, a previous idea of him was the seed that started this.
- Andrew Owen: his knowledge of ESXDOS is high, and he lead us thorugh the right path more than once.
- Antonio Villena: he managed to create a previous version, which was usable in any DivMMC, although you had to press the NMI button to start the game.
- Finally, myself, that found the way to avoid the NMI button thing, and documented, tested, etc.
http://uto.speccy.org
Follow me at @uto_dev
Post Reply