New version of emulator ASCD 1.2 has been released!
After almost 10 years since the first and only release of ASCD emulator for Windows, I decided to do some improvements for flat displays and Windows 10. So here it is. :-)
Honestly, this emulator does not have as precise CPU timing as SimCoupe, but it has some nice features like the support of snapshots, printers, joysticks or DAC digital sound. And now also these new display routines. :-) And it emulates also ZX Spectrum 48/128 with various peripherals.
ASCD was originally written as a Sam Coupé emulator. Later, ZX Spectrum and ZX Spectrum 128 support was added. The CPU timings aren't 100% perfect, as those computers are different, but here they share the common Z80 CPU emulation core. You can select emulation mode with generic command line switch -zxmode, with specific command line switches -zx, -128 or -sam or in the main menu.
Sam Coupé mode
You can select Sam Coupé mode with -zxmode 0 or -sam switch or in the main menu. Emulated features are:
- Main memory 256 KB or 512 KB (-sam512/-nosam512)
- External memory 0-4 MB (-extmem 0/1/2/3/4)
- All graphics modes are supported in all known bitdepths and bit combinations of Windows desktop from 1 to 4 bytes per pixel
- Graphics is emulated per scanline, so text in border and similar effects are not visible
- SAA1099 sound (always on, output is 44100 Hz 16-bit stereo)
- Beeper bit audio with line accuracy (15625 Hz 1-bit mono)
- Sam mouse (-mouse 0/1/2 - the number 1 or 2 selects horizontal resolution of mouse)
- Two floppy disk drives (always on)
- Loading files from tape files (.tap and .tzx files are supported - can be selected from menu or entered on command line without switch)
- Saving files to tape file (-tape <file> selects filename where to write)
- Printer on parallel port (-printer <file> selects filename where to write printer output)
- Joystick is emulated using cursor keys and Ctrl key on PC keyboard, kempston joystick also supported
Note that ASCD supports digital speech on beeper bit and also external DAC with the scanline accuracy 15625 Hz. Also, both SAA1099 and ZX Spectrum's AY8910 audio can be used in Sam Coupé mode, but not all together. See more details below (or just go and try it).
ZX Spectrum mode
You can select ZX Spectrum mode with -zxmode 1 or -zx switch or in the main menu. Emulated features are:
- Always 48 KB memory (16 KB model not supported)
- Beeper bit audio with line accuracy (15625 Hz 1-bit mono)
- AY-3-8910 is always enabled even in 48 KB mode
- Fuller Box AY audio (always enabled, until program starts to use DAC on the same port)
- 3x8bit DAC audio using IC8255 (15625 Hz 8-bit stereo)
- Sinclair ZX Printer (graphics printing to printout.bmp file)
- Kempston/Sinclair/Cursor/Fuller joysticks are emulated using cursor keys and Ctrl key on PC keyboard
Note that the Fullerbox AY and 3x8bit DAC use the same output ports. This means that these two devices can't be used together. ASCD always starts in Fullerbox mode, and switches to DAC as soon as it detects that the running program uses the shared ports for DAC output. The emulation is switched back to Fullerbox mode on next reset. This way users can use both Fullerbox and DAC and don't need any manual configuration.
ZX Spectrum 128 mode
ZX Spectrum 128 is very similar to the original ZX Spectrum. The emulation is very similar as well, there are just a few new features in 128K mode. You can select this extended ZX Spectrum 128 mode with -zxmode 2 or -128 switch or in the main menu. Emulated features are the same as in ZX Spectrum mode, plus the following:
- CPU runs a bit faster and video synchronization is little bit different too
- 128 KB memory and paging, including video paging
Many games provide nice AY music even in 48 KB mode. That's why the AY emulation is always on even in 48 KB mode. Also, the paging disable bit of ZXS128 is ignored, and paging is always enabled when you run the emulator in ZXS128 mode. When you switch the emulator to ZXS48 mode (-zxmode 1 or -zx), then paging register is not available, memory is fixed to 48 KB, but AY audio is still available.
Note that ASCD supports digital speech on beeper bit and also external DAC, but not on AY-3-8910. AY's output is updated 50x per second, beeper bit and DAC are updated 15625x per second. (You can try MQM5 demo to hear the difference.)
Emulation of ZX80 and ZX81
ASCD does not emulate ZX80 or ZX81, but a sister project called Alyx81 exists which does exactly that.
ASCD supports several fileformats, and also brings some new fileformats where no standard fileformats do exist.
- .ZIP archives - other files (see below) can be inside ZIP archives (all ZIP-compressed files are read-only)
- .Z80 snapshots - all versions can be loaded (48 KB / 128 KB mode, compressed or uncompressed), 48 KB version can be saved
- .SNA snapshots both 48 KB and 128 KB versions can be loaded and saved
- .TAP tape files in both ZXS and Sam Coupé mode, both loading and saving (emulated using ROM hooks)
- .FUX snapshots from Fuxoft Emulator on Sam Coupé (you can load them and convert them to a standard .Z80/.SNA file)
- .DSK/.MGT disk image in Sam Coupé mode, both read and write
- .SAD disk images in Sam Coupé mode, both read and write, can be .GZ packed
- .SCS snapshots in all emulation modes (this is a new snapshot file format of ASCD)
- .AIR keyboard input recordings can be written and played back (ASCD 0.98 uses a new OpenAir library with a new .AIR file format version)
- .BMP SCREEN$ files can be saved from the emulator in all modes
Note about TAP files on Sam Coupé: Sam Coupé has very advanced tape routines in ROM which support some features not present on ZX Spectrum. In order to keep the standard TAP file format on Sam Coupé, I had to solve one particular problem: Sam Coupé can have files larger than 48 KB in one uninterrupted tape block, but this is not possible in a regular TAP file. ASCD currently limits the file size on a tape to 65533 bytes, which is the maximum size possible in a standard TAP file. The resulting file is still a 100% standard TAP file and can be loaded on ZX Spectrum 128 using some 128KB copiers with paging support. You can test TAP files in Mr.Copy+ copier program, which is directly supported in ASCD (there is a special Mr.Copy+ hack in ASCD which make it work even without any low level EAR/MIC bit emulation).