SpeccyDS v0.3 26/08/2007 http://speccyds.wordpress.com craigt.mail@googlemail.com Thank you for downloading SpeccyDS. Please note that SpeccyDS is still in an early stage of development. Therefore, many features may not work as expected. SpeccyDS is donationware. You are free to distribute it as you wish as long as this readme.txt file is included in the archive. SpeccyDS is a rapidly growing project which takes up a large portion of my spare time. If you have enjoyed using SpeccyDS, please consider making a donation to encourage me to continue my work. Donations can be made by visiting http://speccyds.wordpress.com/donate/ Thank you. SpeccyDS includes the original Spectrum 48K ROM. Amstrad have kindly given their permission for the redistribution of their copyrighted material but retain that copyright. 1. Overview ----------- SpeccyDS is a Sinclair ZX Spectrum emulator for the Nintendo DS/DS Lite. The emulation is based on a ZX Spectrum 48K. 128K emulation is currently unsupported. This version of SpeccyDS has been successfully tested on real hardware using a SuperCard CF and a DS-Xtreme. I cannot guarantee that it will work using other homebrew methods, but I am interested in any problems that people may have. 2. Known Issues and Missing Features ------------------------------------ - Currently, only the 48K Spectrum is emulated. - Only memory snapshot files are supported (.SNA and .Z80). Tape images (.TAP, .TZX, .PZX etc) are currently not supported. - Even though compatibility is now very good, there will be software that does not run correctly under emulation. Please report any compatibility problems on the 'Compatibility' page on my blog. 3. Usage -------- This archive contains both a .gba.nds and a .nds file. There are many guides available on the internet which explain how to use these files in an emulator or on real hardware. SpeccyDS is compiled with DLDI support to allow it to work on hardware that has a compatible DLDI driver. For more information and driver downloads, please visit Chishm's DLDI page - http://chishm.drunkencoders.com/DLDI/ 3. Operation ------------ 3.1 Top Screen -------------- This screen displays the main Spectrum display. Borders are not currently displayed. 3.2 Touch Screen ---------------- This screen will change depending on the current operation. The screen will display one of the following: 3.3 Keyboard ------------ The keyboard image displayed is dependant on the current setting selected on the Options screen. The keyboard can be used in the same way as a normal Spectrum 48K spectrum. However, due to the nature of the touch screen, only one key can be pressed at once. The Caps Shift and Symbol Shift keys are 'sticky'. If selected, they will stay depressed until they are selected again. As on a Spectrum 48K, delete is located on the shifted 0 key. The ‘Reset’ button performs a hard reset of the Spectrum. 3.4 Load -------- This screen is displayed after selecting the 'Load' button on the keyboard screen. The current folder ('/' by default) is displayed, followed by a list of folders and Spectrum snapshot files (extension .SNA and .Z80) that are contained in the current folder on the homebrew media. All other files are hidden. Only .SNA and .Z80 snapshot files are supported at this time. If you are having problems finding snapshot files, it is possible to convert other spectrum file types to snapshots using any of the many Windows Spectrum emulators that are available. The file list can be scrolled by using the up, down, page up and page down buttons to the right of the file list display or by using up and down on the d-pad. Selecting a folder using the touch screen or ‘A’ will enter the folder. Selecting a snapshot file will load the file into memory, return to the keyboard screen and continue the emulation. Selecting the ‘Exit’ button or pressing ‘B’ will exit the screen. 3.4.1 Quick Load ---------------- Selecting the 'Q' to the right of the 'Load' button will perform a quick load. This will load the last .Z80 file saved using the Quick Save option 3.5 Save -------- This screen is displayed after selecting the ‘Save’ button on the keyboard screen. Entering a new filename using the touch screen keyboard and pressing ‘Save’ will save the snapshot. Snapshots are saved in standard .Z80 format and are compatible with other Spectrum emulators. A .Z80 extension is added to the saved file if one is not already specified. 3.5.1 Quick Save ---------------- Selecting the 'Q' to the right of the 'Save' button will perform a quick save. This will perform a save to the pre-defined filename 'SpeccyDS_QuickSave.Z80'. This file will be loaded using the Quick Load function. 3.6 Settings ------------ This screen is displayed after selecting the 'Settings' button on the keyboard screen. Selecting Exit will save the current settings and exit the screen. The current settings are saved in the file 'SpeccyDS.cfg', and are loaded when SpeccyDS restarts. 3.6.1 Controls -------------- Kempston, Cursor, Sinclair 1 and Sinclair 2 joystick assignments can be used by selecting the relevant button. Selecting the Define button allows you to assign a keyboard key to each button on the Nintendo DS. These defined keys are used when the Keyboard option is selected. 3.6.1.1 Define -------------- This screen allows you to assign a keyboard key to each button on the Nintendo DS. To assign a key, press the button you want to define or select it from the touch screen. Then select the key from the keyboard that should be represented by that button. The Spectrum keyboard displayed is dependant on the current 'Keyboard Gfx' setting. Therefore, you can assign buttons to normally inaccessible keys (such as the cursors) by selecting the Spectrum +2 keyboard. The 'Exit' button saves the current assignments and returns to the 'Settings' screen. 3.6.2 Keyboard Gfx ------------------ This option defines the keyboard displayed on the main screen. Spectrum 48K and +2 keyboards are currently available. 3.6.3 Border Size ----------------- This option controls the size of the Spectrum border. 4. Revision History ------------------- 0.3 26/08/2007 Complete re-write of the GUI. Improved the touch screen accuracy on some Nintendo DS systems. Added Quick Save and Quick Load functionality Added two new keyboard images. A Save keyboard and a Spectrum +2 keyboard. Added a new global settings screen to replace the old Controls screen. Added re-definable keyboard controls. Added border size control. Removed the maximim file limit on the Load screen. There is now no fixed limit. Implemented several Z80 undocumented features, fixing the crash in Ghosts 'n' Goblins. Fixed the flags on the Z80 CPI command, fixing the odd behaviour in Scrabble. 0.2a 05/02/2006 Upgraded to libfat, which inludes the DLDI driver. Fixed .z80 loading routine. More .Z80 snapshots will now be accepted. Fixed flag behaviour in DAA instruction to fix problems in Head over Heels. Fixed HALT instruction (again!) to fix crash in Starquake. Implemented a few undocumented instructions. Optomised display routines. Hooked up X and Y buttons. Corrected Sinclair 1 and 2 joystick assignments. Added border emulation (currently disabled). 0.2 19/11/2006 Fixed ARM7/ARM9 synchronisation to prevent sound corruption. Altered ADD IX,SP and ADD IY,SP instructions to fix crash in Bubble Bobble. Altered ROM protection to fix crashes in Megabucks and others. Altered HALT instruction to fix crashes in Chaos, Critical Mass and others. Corrected S flag behaviour in BIT instructions to fix Sabre Wulf. Added button support to the file browser. Files can now be selected using the d-pad and A buttons. Added auto scrolling to the file browser. Display can now be scrolled by holding down the buttons. Filenames are now displayed in the correct case in the file browser. Added .Z80 loading support. Added .Z80 saving support. Implemented REIN fat library to increase hardware compatibility. The following games which did not work in the previous version are now working: Arkanoid Asterix and the Magic Cauldron Bubble Bobble Chaos (Some graphical corruption remains) Critical Mass MegaBucks Sabre Wulf (Fixed rhino behaviour) Uridium Zynaps 0.1a 19/10/2006 Enabled support for SD Cards. Tested on both SuperCard CF and SD. 0.1 18/10/2006 Initial Revision.