SugarDS - An Amstrad CPC Emulator for the DS/DSi/XL/LL

  • Thread starter Thread starter wavemotion
  • Start date Start date
  • Views Views 9,231
  • Replies Replies 135
  • Likes Likes 29
https://github.com/wavemotion-dave/SugarDS

Version 1.4 - 19-Nov-2025 by wavemotion-dave
  • DSi now double-buffers LCD rendering for smoother performance and syncs to true 50Hz refresh.
  • Added Favorites system - use SELECT when loading games to toggle between like/love.
  • Added new 130% rendering speed as a per-game option.
  • Improved key map handling - all virtual Amstrad CPC keys are now mappable to the NDS keys.
  • Added vertical jitter handling - improves look of vertical compression making games like Tempest look much improved when scaled.
  • Improved save state support - AY music is properly restored when loading an old save state.
  • Added instructions for use on first boot of the emulator.
  • Switched to O3 optimization for a few more frames of performance.
  • Lots of other small improvements and cleanups under the hood as time permitted.

The readme.md file at the github site has been significantly updated - please read it :)
 
Just for fun, is possible to run xddos210.rom:tpi:
Anything is possible.
But CPM already boots when you enable PARADOS in the global config. Some games are on CPM disks (and you can boot those via |CPM as usual).

I have just checked in 1.4b with some improvements.

  • DSi now had a full 1024K of extra CPC emulated RAM that does not interfere with the Disk/ROM memory area. DS-Lite still only has 512K of expanded CPC RAM. Not much takes advantage of this.
  • Improved disk swap so the 'ready' signal is delayed a bit which seems to improve Infocom games when swapping in/out the save disk.
  • Improved Dandanator support for poor-man 'ROMBOX' functionality. Most game compilation packs now work.
  • Added DIAGONALS as a d-pad option in configuration.
  • Switched to ParaDOS 1.2 (was using v1.1)

Not sure what more I can do here... better CRTC emulation will be a bitch of a hill to climb and doesn't provide much additional game playability. This emulator came out nicely but the poor DS little screen just can't cope with the overscan possibilities of the CPC.
 
https://github.com/wavemotion-dave/SugarDS

Version 1.5 - 29-Nov-2025 by wavemotion-dave
  • DSi now has a full 1024K of extra CPC emulated RAM that does not interfere with the Disk/ROM memory area. DS-Lite still only has 512K of expanded CPC RAM.
  • Improved Z80 CPU timing - good enough now that I no longer need the old 'CPU Adjust' configuration option which has been removed.
  • Improved Dandanator support for poor-man 'ROMBOX' functionality. Most game compilation packs now work.
  • Improved disk swap so the 'ready' signal is delayed a bit which seems to improve Infocom games when swapping in/out the save disk.
  • Support for a single 16K Extended Upper ROM - name as Sugar06.ROM and place in /roms/bios or in the same directory as the emulator.
  • Added DIAGONALS as a d-pad option in configuration. General configuration cleanup.
  • Switched to ParaDOS 1.2 (was using v1.1)
This is probably it on the Amstrad side for a while... not ready to tackle enhanced CRTC support.
 
Thank you for this new update. I wanted to ask how I can insert a disc into slot A-B, as I have tried SymbOS and want to select a disc.
Yeah... that's a problem now that I think about it. While you can boot the cart version of SymbOS, swapping in a disk removes the cart from memory.

I'll have to think about this a bit... and add it to the list of things to work on :)
 
https://github.com/wavemotion-dave/SugarDS

Version 1.5 - 29-Nov-2025 by wavemotion-dave
  • DSi now has a full 1024K of extra CPC emulated RAM that does not interfere with the Disk/ROM memory area. DS-Lite still only has 512K of expanded CPC RAM.
  • Improved Z80 CPU timing - good enough now that I no longer need the old 'CPU Adjust' configuration option which has been removed.
  • Improved Dandanator support for poor-man 'ROMBOX' functionality. Most game compilation packs now work.
  • Improved disk swap so the 'ready' signal is delayed a bit which seems to improve Infocom games when swapping in/out the save disk.
  • Support for a single 16K Extended Upper ROM - name as Sugar06.ROM and place in /roms/bios or in the same directory as the emulator.
  • Added DIAGONALS as a d-pad option in configuration. General configuration cleanup.
  • Switched to ParaDOS 1.2 (was using v1.1)
This is probably it on the Amstrad side for a while... not ready to tackle enhanced CRTC support.
Hi Dave, SugarDS 1.5 is broken on my side, tested only on DSlite : the emu freezes just after loading a game. V1.4 works.
 
Hi Dave, SugarDS 1.5 is broken on my side, tested only on DSlite : the emu freezes just after loading a game. V1.4 works.
Good catch! I broke it for the DS-Lite on 1.4c ... I was allocating a big memory buffer for the DSi and clearing it but on the DS-Lite there isn't enough memory to do that :)

Anyway, fixed and just published 1.5a on my github.
 
Hello @wavemotion
Thanks for this nice emulator.
I try english translation of La abadia del crimen from here https://archive.org/details/theabbeyofcrime with version 1.5a of SugarDS but I only get scrambled screen after |CPM command.
What I'm doing wrong ?
I can confirm that it does not load correctly. I did try to debug it a bit a couple of months back... got nowhere. If I load the .dsk file it throws an unhandled OP exception.

I did manage to load it on a PC emulator and create a .SNA snapshot past the loading screen and that snapshot will load and run... so it's definitely a problem with the actual disk loading.

I've added it to the 'known issues' for now.
 

Site & Scene News

Popular threads in this forum