More actions
ZXDS | |
---|---|
[[1]] | |
General | |
Author | Patrik Rak |
Type | Computer |
Version | 2.1.1 |
Last Updated | 2020/12/24 |
Links | |
Download | |
Website | |
ZXDS is an emulator of Sinclair ZX Spectrum for Nintendo DS and 3DS, written by Patrik Rak. It accurately emulates Spectrum 48k, 128k, +2/+2A/+3, and Pentagon, and supports SNA/Z80/SZX snapshots, TAP/TZX/PZX tape files, TRD/SCL/DSK disk files and RZX replay files. It has some other noteworthy features, like the ability to download all these files online over WiFi, peer-to-peer WiFi multiplayer, or Kempston mouse emulation.
3DS users
Unpack the downloaded archive, remove the SD card from your handheld, insert it into your computer, and copy only the entire ZXDS directory (not just its content, but the directory itself) to the root of the SD card. Make sure that even the empty subdirectories are copied properly (in particular, make sure the /ZXDS/Saves directory is created, otherwise the save slots won't be saved permanently to your card). Then copy the ZXDS.3dsx to the /3ds directory on your SD card (or whichever place you run the homebrew applications from).
If you have used ZXDS on a DS before, note that you may copy your entire ZXDS directory from your DS card to this SD card, too. All the files are compatible, with the only exception of files in /ZXDS/Graphics, which are now 320x240 instead of 256x192.
Note that in order to run properly and generate audio, ZXDS needs the DSP firmware installed. It's quite likely you have it already, but if you haven't done so yet, ZXDS will let you know. In such case I suggest you google for "3DS guide DSP setup" and follow the steps regarding DSP firmware installation which should create the /3ds/dspfirm.cdc file on your SD card.
Screenshots
Everyone
Other directories in the archive contain optional extras, so check the README files in each and install their content to the right place only if you want to. For example, you may want to copy the custom keyboard examples to /ZXDS/Data/Keyboards.
You should also copy some tape, disk, snapshot or replay files to your card. Either TAP/TZX/PZX tape files, TRD/SCL/DSK disk files, SNA/Z80/SZX snapshots or RZX replay files are supported. You can place them anywhere you want, however the /ZXDS/Data directory is looked up first by default. For your convenience, I have included few Spectrum games and demos in the archive itself, so you can at least give it a go. And you can find pointers to much more software further down this page. In particular, don't miss my list of the recommended games.
Alternatively, if you have WiFi access, you can just rely on the /ZXDS/Data/Online directory and browse the plethora of files available online. If you want that, read the online.txt included in the ZXDS archive for more info.
Using the emulator
Simply run ZXDS the same way you run any other application.
Upon startup, just follow the builtin online help which shall provide you with all the instructions you will need (remember to turn the help off once you get familiar with individual icons and menus, it would only slow you down otherwise). You will basically need to load some file via Load File screen of I/O menu (pressing START gets you there quickly by default), then perhaps adjust controls via the Controls screen, and you are all set.
The control mapping can really make a difference, so make sure you customize it the way you like it most for any serious gaming. For example, in case you have problems pressing the diagonals, it helps to map the up direction to the B button as well. This way you can jump sideways with ease. And mapping the quick save and quick load actions to the shoulder buttons gives you an instant save and load at the touch of the button, priceless feature for the hardest parts of the game you are playing. And for even more complex game controls or for text adventure typing, the custom keyboard feature is a godsend, too. Make sure to check the bundled custom keyboard examples, and don't hesitate to create your own.
Please do NOT contact me regarding if some games do or do not work. The emulation itself should be near perfect, so it's much more likely you are either loading the game using wrong model (48k vs 128k vs Pentagon vs +2 vs +2A/+3) or in wrong mode (Tape loader vs USR 0), or you have broken copy of the game, and I can't afford to waste my time helping you with issues like this. Only if you have the knowledge to diagnose what exactly might be buggy and you can prove that, preferably with a piece of Z80 code, I would like to hear from you. So let me repeat that once again, please don't waste my time contacting me regarding game compatibility, unless you can pinpoint the actual bugs. Thanks.
Software for the emulator
To download more games and other software for use with the emulator, the first thing to check out is definitely the huge World of Spectrum Classic archive collection. Note that it already includes the content of another major source, the TZX Vault. If you are looking for newer production, you may have better luck at Spectrum Computing. This Czech ZX Spectrum site is very well worth visiting, too. And if you want a suggestion of which games are worth trying, here is my list of recommended games.
In case you are interested in some demos, check out the ZX AAA Demo, Demotopia, Pouët.net, or Virtual TR-DOS sites. You won't regret it, as it is really amazing to see and hear what some people have achieved to do on the Spectrum.
The RZX replay files can be obtained from the RZX Archive. Best way to check out the games you always liked but never managed to finish.
And if there is something else you are looking for, it never hurts to ask on the friendly World of Spectrum or Spectrum Computing forums.
Features
There are quite a few features already implemented, and some still ahead of me. Please do not bother me asking for features, though. I still have some which might be implemented before I will reconsider what next. Thanks.
Features already implemented:
- Solid Z80 core - the Z80 emulation includes all documented and undocumented instructions, each modifying both documented and undocumented flags as a real Zilog Z80 CPU. Each instruction modifies the T state counter properly as well, including delays caused by memory and I/O contention. The emulator also implements all other subtle details of Z80 I know of, including authentic SCF/CCF behavior, MEMPTR, proper IRQ sampling and blocking (missed/double IRQ, delayed EI, IX/IY prefix blocking) and P/V fix for interrupted
LD A,I/R
instruction. - Full 128k paging support - the memory paging of ZX Spectrum 128k is fully implemented. This includes both ROM and RAM bank paging and shadow screen support, as well as all-RAM mode of +2A/+3 models.
- Accurate 48k and 128k sound emulation - both 48k speaker and 128k AY-3-8912 chip are emulated, including ABC and ACB stereo modes. The emulation is pretty much exact, and the speaker even uses accurate synthesis instead of discrete sampling.
- Precise screen emulation - the screen display code renders color, bright and flash as expected. The screen is sampled with T state accuracy, so even the most timing-sensitive multicolor effects work like on real machines. Finally, the LCD refresh rate is synchronized to match the 50Hz screen update, resulting in amazingly smooth and tearing-free display.
- ULA+ emulation - The ULA+ 64 color mode extension is supported, too, including ULA+ screenshot saving and loading and instant ULA+ palette switching.
- Proper border emulation - The 3DS models feature accurate border emulation, so you can enjoy all the games and demos using fancy border effects. On DS, the border color is simply mapped to the background color of the touch screen.
- Accurate +2/+2A/+3 emulation - in addition to the original Sinclair 48k and 128k models, the newer Amstrad models are fully emulated, including +3DOS and both 3″ and 3.5″ disk drives.
- Reasonable Pentagon emulation - the Pentagon is fairly accurately emulated, too, including TR-DOS and disk drive.
- Custom ROM and IF2 ROM support - it is possible to emulate even some other Spectrum clones, such as TK90X and TK95, simply by replacing the standard ROMs with the right custom ones. Both custom ROMs and Interface 2 ROMs can be also easily loaded and switched at runtime.
- Good 48k/128k snapshot support - the emulator supports all SNA, Z80, and SZX snapshots, including compression and button config settings.
- Virtual tape deck - the emulator features a virtual tape deck with both manual and automatic control and convenient tape browser for precise tape positioning. The tape recording is supported, too. And you can even listen to the tape sound if you wish.
- Full TAP support - TAP files are fully supported, and loaded at high speed whenever possible.
- Reasonable TZX support - apart from few flow control blocks (call, jump, select) and CSW and GDB data blocks, the TZX files are fully supported. Loading at high speeds is used whenever possible as well.
- Full PZX support - PZX tape files are fully supported, too. You can find more about this format here.
- Beta 48/128 emulation - the Beta Disk is usable even with standard 48k and 128k models, not Pentagon only. Both Beta 48 and Beta 128 variants are supported in 48k mode.
- Good TRD/SCL support - both TRD and SCL TR-DOS disk files can be loaded and saved. Formatting of all four possible TR-DOS disk types is supported. The autoboot feature is included, too.
- Good DSK/EDSK support - +3DOS DSK and EDSK disk images can be loaded, saved, and formatted, too. All advanced features such as random/weak sectors and jumbo sectors are supported, so even the copy protected disks work just fine. The autoboot and side flipping features are included, too.
- Builtin disk browser - you can examine the content of the TR-DOS and +3DOS disk images, including both the disk directory as well as the individual sectors.
- Good RZX support - it is possible to play back the RZX recordings now. No recording support yet, though.
- POK files support - cheating is easy thanks to the use of the POK files. And whenever you load a game, if present, the associated POK file is conveniently loaded as well.
- ZIP archives support - no need to unpack ZIP archives anymore. Browsing and reading everything directly from ZIP archives is supported.
- Online WiFi access - builtin HTTP and FTP client allows getting files from major Spectrum sites over WiFi. It ties in seamlessly thanks to the virtual directory system, which allows browsing of arbitrary listings of both local and remote files.
- Peer-to-peer WiFi multiplayer - playing 2 player games was never this good. Grab a mate, tap the WiFi host/join icons, and you can play the game together, each using your own DS. Simple like that.
- Save slot support - there are sixteen (nine on DS) builtin save slots for storing the save state in SZX snapshot format, each featuring miniature screenshot thumbnail. One additional save slot is used for both recovering the previous state and preserving the state across sessions after shut down. The associated disk/tape file is saved to its own file if needed, too, meaning you can really stop and resume your game session whenever, wherever.
- Rollback history - in addition to those save slots, the 3DS version includes the rollback feature which automatically captures up to 5 minutes of history at 1 second intervals. This allows you to conveniently rewind time whenever you decide to do so.
- Save requester - of course, you are not limited to those builtin save slots only - you can save any amount of SZX and Z80 snapshots using the save requester, too, as well as any of the other supported file types. The save requester also supports basic file and directory management operations. The option of alternating two directories and the handy prefix/substring based file name search are available in both save and load requester.
- Screenshot support - you can save SCR and BMP screenshots anytime you wish, either from the save requester or by simple press of the screenshot action button. You can even load the SCR files back for viewing.
- Configurable input - all buttons can be configured to simulate any keyboard key or joystick movement as well as any of the actions accessible via menus.
- Fully customizable keyboard - complex game and application controls are no longer a problem with the ability to define a custom keyboard of 60 custom keys and action buttons.
- Kempston mouse emulation - the Kempston mouse interface is emulated, featuring both relative and absolute mouse modes. During WiFi multiplayer it even supports dual master/slave mouse interfaces.
- Memory viewer and disassembler - you can explore the content of the Spectrum memory, shown as bytes, words, characters, BASIC tokens, text or Z80 disassembly. You can also use it to enter POKEs manually.
- Text and binary file viewer - you can use the builtin file viewer to examine the content of any file available locally or online. Handy for reading the instructions or walkthroughs of the game you are playing.
- Statistics tracking - the system keeps track of various usage statistics and the games and applications launched. Ever wanted to know how much time you spent doing something? Now you can.
- Favorite/recent files tracking - the collected game and application statistics are also used to generate a list of 500 of both most and last used files.
- Battery friendly - the CPUs enter a sleep mode whenever possible to minimize the consumption, and when not in use, the backlight of the bottom screen is also turned off to preserve more battery power. And when the lid is closed, the handheld enters a deep sleep mode which can last for many hours. Note that the current state is automatically saved in this case, too, so you can relax, knowing you won't loose anything even if the battery would run out.
- Skinning support - it is possible to change graphics and color of every UI element with custom backgrounds, icon sets and style configs.
- Builtin help system - the builtin help system explains in detail the functionality of each UI element, ensuring comfortable and friendly user experience.
Features which might be eventually implemented:
- RZX recording - RZX recording might be a nice feature to have. Not sure if it really pays off to spend the time on this, though.
Features unlikely to be implemented:
- Complete TZX support - I am not really eager to implement the missing TZX 1.20 features, they are just too much pain and little gain. Simply use PZX tools and convert any problematic TZX to PZX if you want to use it.
- ZX Printer support - I just have no idea how this would be useful.
- Interface I and Microdrive emulation - although I own one IF 1 myself, I don't think it is really necessary for anything you would want to do on a DS.
- Multiface/other peripherals support - why bother.
- Timex and other clones emulation - I have no intention to extend the list of supported models any further.