Ramsoft's RealSpectrum

BETA release 8

Version 0.70.19 (October 21st 2000)


Summary:


  1. Introduction
  2. Features
  3. Requirements
  4. General usage (keyboard, fileselector, etc)
  5. Snapshots
  6. Tapes
  7. Disks and Cartridges
  8. Video
  9. Audio
  10. Pokes (cheats) and memory options
  11. Internet Networking (TCP/IP)
  12. DemoMode
  13. Frequently Asked Questions (FAQ)
  14. License, credits and contact info
  15. Revision history


1. Introduction

Welcome to RealSpectrum, a high-fidelity ZX Spectrum emulator with no compromises. It reproduces the Spectrum hardware with a previousely unseen accuracy and it has been designed to support the most advanced features for the most realistic audiovisual experience.
It is the world's first emulator offering 100% exact reproduction of all the multicolor effects commonly seen in demos and some games, not only on the screen but also in the border. It has faithful AY38912/YM2149 emulation for a great sound quality, with stereo and surround effects. It can instantaneousely flashload many turbo-recorded tapes (including commercial games) thanks to a new loading technique, treating TZX files just like snapshots or disk images. It can load and save real Spectrum tapes and disks, respectively using the soundcard and the PC drive. It emulates the Sinclair Network over the Internet and provides a live chat system to facilitate the communication. Besides, it has many other interesting features that make RealSpectrum the ideal demoscene emulator.

2. Features

This is the list of the currently implemented features, but more will follow.
  • World's first 100% exact multicolor renderer! We have digged out all the ULA secrets (pant!), so we are now able to show all the amazing raster effects like on the real Spectrum!
  • Super-fine MCR. The multicolor renderer is clock-precise, so it reproduces all the horizontal raster effects exactly (see the border in DOE and MDA for example).
  • Selectable resolution. RealSpectrum can run at any (S)VGA resolution and supports all VESA1/2/3 modes and tweaked X-Mode. Depending on the screen size, the number of upper/lower and lateral border lines is automatically adjusted.
  • Scanlines. At high resolutions we enable scanlines rendering to make the image more similar to the TV output.
  • Graphic interface. All user interaction happens through a graphic windowing system which we are currently developing.
We put a special interest into audio quality:
  • Digital mixing AY38912 and YM2149 emulator. Very close to the real thing! Good envelopes reproduction. All the digital modplayers (such as DigiSynth, Morpheus, Soundtracker 2 and so on) are working well.
  • Mono/Stereo and 8/16-bit sound output. If your soundcard supports stereo playback, RealSPECTRUM can work in stereo mode enabling some amazing effects.
  • 256-steps stereo panning. Each channel can be panned independently to 256 positions ranging from extreme left to extreme right. There are three presets: NONE (centered), ABC and ACB stereo modes, plus you can define your own custom settings.
  • Surround sound! The surround effect enhances the sound depth very nicely, even when the channels are all panned to center! Surround is obviousely available on stereo soundcards only.
  • Beeper vs AY loudness balancement. You can choose the relative power of the AY respect to the beeper's volume (256 steps), so you can boost your favourite AY songs! :-)
  • Sound recorder. You can dump the audio to a WAV, AZX or YM file for your Speccy tunes CD :-)
  • AY-LPT circuit support. With just a few ICs and resistors you can connect a real AY-38912/10 chip to any LPT port of your PC and get the perfect sound quality of the "real thing"! (To do: 4-bit speech quality improvements).
The CPU emulation is very accurate, every aspect of the Z80 microprocessor has been faithfully reproduced:
  • Undocumented features. Not only all the unofficial instructions are emulated, but we have also reproduced the undocumented behaviour of the flag register in all circumstances.
  • Clock-precise emulation. Everything happens at the exact moment when the real Z80 does it (hopefully :-)); the bus lines accesses, interrupt sensing and processing, data transfers and so on are perfectly calibrated and distributed into the various internal machine states.
This is the list of the currently emulated hardware:
  • ZX Spectrum models: 16K, 48K, 128K, +2, +2A, +3, Pentagon 128K and Scorpion 256K.
  • Multiface 128: if you have the rom, it can also load Genie automatically
  • DISCiPLE/+D: full implementation of the MGT disk interfaces, supporting GDOS, G+DOS and UNIDOS for both boards. RealSpectrum can read/write real MGT floppies inserted into the PC disk drive.
  • Beta 128: the standard disk interface for the russian Spectrum clones such as Pentagon, running the TRDOS operating system. Can also be enabled with the normal 128K, though.
  • ZX Interface I: the most popular mass storage interface for the Spectrum, supporting up to 8 microdrives.
  • Kempston mouse: for use with russians utils and classic tools like Art Studio.
  • Sound interfaces: Covox, Stereo Covox, Soundrive and Music Machine (digital output only).
RealSpectrum supports the following file formats:
  • Tapes: TZX, TAP, WAV, CSW and real tapes with a tape recorder connected to the soundcard, both reading and writing. TZX and TAP are supported both in the standard way and through the cool Ramsoft FlashLoad which allows to load instantaneousely even commercial games recorded at turbo speeds! RealSpectrum allows you to save turbo speed tapes too.
  • Snapshots: Z80 and SNA, all versions and both read/write. The Z80 format supports the +2A/+3 and Scorpion extensions.
  • Disks: MGT and IMG for DISCiPLE/+D, TRD and SCL for TRDOS, DSK for +3. Real floppy disk support for MGT and TRDOS systems.
  • Cartridges: MDR for Microdrive cartridges.
  • Others: WAV, AZX and YM for audio recording. AY for music playing. POK for trainers (cheats). BMP, SCR, PCX and TGA for screenshot saving.
Other features:
  • FlashLoading: RealSpectrum can load instantaneousely (zero time) not only the old TAP files, but also many turbo TZX tapes, including all the most popular loading schemes used in commercial games.
  • Real Tape support: Very reliable loading and saving to/from a tape recorder connected to the soundcard.
  • Network emulation via TCP/IP: the Sinclair Network (found in the Interface I and DISCiPLE devices) is fully emulated over the Internet. Additional goodies are the integrated live chat system and the file exchange service.
  • DemoMode: a special visualization mode which replaces the Spectrum screen with selectable graphic effects inspired by the background music. Also includes a .AY music player to reproduce .AY files.
  • Real Disk support: RealSpectrum can read and write real DISCiPLE/+D and TRDOS disks inserted into the PC's floppy disk drive.
  • Parallel port emulation: The Centronics port of DISCiPLE, +D, +2A/+3 and Scorpion can be redirected either to the PC printer port or to a file.

3. Requirements

System

The high detail of emulation offered by RealSpectrum requires intensive computations and memory accesses, so you'll probably need a 200 MHz Pentium class CPU (K6's are also fine, of course) to run smooth at any resolution with all features on. Yes we know that it's quite slow for a Spectrum emulator, but that's the price for the best quality possible. Recommended at least 8MB of RAM.
To run under plain DOS (i.e. not within a Windows95 DOS box) you need the DPMI extender CWSDPMI.EXE.
To enhance disk performance when running RealSpectrum under pure MSDOS, we strongly suggest you to activate a disk cache program such as SMARTDRIVE (this is particularly needed when the WAV writer is active).

Video

RealSpectrum will run on any VGA card, but a VESA2 compliant video card is HIGHLY recommended. Depending on the selected video mode, RealSpectrum will choose the best driver amongst standard VGA, X-Mode and VESA1/2/3. VESA2/3 resolutions dramatically improve the performance. Video speed is really determinant for overall efficiency. If the BIOS of your video card does not support low-resolution VESA2 modes (320x240, etc), please download some of the extenders available such as Scitech's Display Doctor (or GX00VBE.EXE for Matrox G200/G400 cards).

Soundcards

The sound library used by RealSpectrum supports all the Soundblaster brand, ESS1688 and Windows Sound System (all cards based on AD1848/CS4231 chipsets). If you want to run under plain DOS with sound, you'll probably need an ISA soundcard, since PCI cards like SB Live! or SB PCI64/128 usually have problems running in pure MSDOS; this is not our fault. If you have a PCI card, you'd better run RealSpectrum in a fullscreen DOS box under Windows 95.

ROM files

The freely distributable roms are available in a separate archive which must be downloaded from our website. The package contains the following files:

Computer/Peripheral ROM filename ROM size Notes
Spectrum 16/48K 48.rom 16384 Standard 48K ROM
Spectrum 128K 128.rom 32768 Standard 128K ROM
Spectrum +2 plus2.rom 32768 Standard +2 ROM
Spectrum +2A/+3 plus3.rom 65536 +2A/+3 ROM v4.0
Pentagon 128K pentagon.rom 32768 Standard ROM
trdos.rom 16384 TRDOS v6.04
ZS Scorpion 256K scorpion.rom 65536 Standard ROM
ZX Interface I if1.rom 8192 Standard ROM v2
MGT DISCiPLE gdos.rom 16384 GDOS3 + System 3b
MGT +D gdos-pd.rom 16384 G+DOS + System 2a

RealSpectrum will also work perfectly with different versions of the ROM files, just specify the new filenames in the INI or select them directly from the F3 menu. For example, you may wish to use a v4.1 ROM for +2A/+3 or an old Interface I v1 ROM, special Pentagon/Scorpion systems, and so on.

In order to use UNIDOS (for MGT disk interfaces) and Multiface 128 emulation, you need the appropriate ROM files which are *NOT* included in the ROMs package:

Peripheral ROM filename ROM size Notes
UNIDOS DISCiPLE uni-disc.rom 8192 or 16384 UNIDOS v2 for DISCiPLE
UNIDOS +D uni-pd.rom 8192 or 16384 UNIDOS for +D
Multiface 128 mface128.rom 8192 v87.2 ROM for V36-DIS
genie.rom 16384 Same with pre-loaded Genie

The normal DISCiPLE/+D BIOS files (both GDOS and UNIDOS) are 8K in size, but a 16K interface memory image can be provided; in this case the operating system is pre-loaded and doesn't need to be booted.

Important: Please don't ask us to send you any of these ROMs - we can't, really.

Networking

Please read the "Internet Networking" chapter carefully.

4. General usage (keyboard, fileselector, etc)

RealSpectrum should be quite easy to use, since everything is done through a series of graphic menus. The startup settings are read from the REALSPEC.INI configuration file, a plain text file which can be edited to suite your needs; each option line of the file is commented, so you should be able to understand it clearly once you have read this manual.
RealSpectrum can also accept command line parameters. The list of the available switches can be obtained by typing "REALSPEC -?" (or -h); the parameters entered from the command line take priority over the INI settings.

Once started, RealSpectrum can be controlled through the following keys, which give access to the various GUI menus to change settings and parameters.

F1Show help screen
ALT-F1Tokenizer
F2Generate NMI (Multiface, DISCiPLE/+D, etc.)
ALT-F2Reset Spectrum
F3Hardware configuration menu
ALT-F3Joystick and mouse configuration menu
CTRL-F3Communication ports menu
F5Load snapshot file
ALT-F5Save snapshot file
F6Load disk and cartridge files
ALT-F6Create empty disks and cartridges
F7Open tape file
ALT-F7Tape options menu
CTRL-F7Start/stop tape
SHIFT-F7Tape browser
F8DemoMode
ALT-F8Network Options
CTRL-F8Send chat message (network)
SHIFT-F8Send file (network)
F9Trainer selection menu (pokes)
ALT-F9Memory block operations (load/save chunks)
F10Quit RealSpectrum
ALT-F10Quit immediately
F11Video resolutions menu
ALT-F11Extra video options menu
F12Sound options menu
ALT-F12Extra sound options menu
ESCEnter/leave debugger

The Spectrum keyboard, the Tokenizer and localization

Some special keys which require multiple keypresses on the Spectrum are replicated directly on the PC keyboard: the arithmetic operators on the keypad, ',' and '.'. Besides, the emulator has the following assignements: CTRL = Symbol Shift, CAPS = Caps Lock, BACKSPACE = Delete, TAB = Extend Mode.

The Tokenizer is a special feature to enter BASIC commands and program lines very easily. Now you can type the commands character by character also in the 48K BASIC editor, without having to remember the numberous token assignements of the Spectrum keyboard. The Tokenizer is opened by pressing ALT-F1 and it brings you a multi-line text editor where you can type any sequence of BASIC statements, including full program lines. To provide further help, the editor highlights the BASIC syntax by printing the various elements with different colors: white for valid statements and punctuation, green for line numbers, cyan for text strings, purple for numbers and yellow for variable names and other elements. Once that you have finished typing, close the editor by pressing ENTER and the emulator will automatically generate the proper sequence of keypressed to be passed to the BASIC editor: you will see the commands being autotyped at lightspeed for you!
For an example of use, go to 48K mode with the flashing K cursor, press ALT-F1 and enter some BASIC commands such as '10 BORDER 0: PAPER 0: INK 7: CLS: PRINT "Hello Tokenizer"' using the normal PC keyboard layout. Note the spaces, you must isolate the tokens clearly (watch the syntax highlighting colors to understand if you type the commands in the proper way). To finish, press RETURN and enjoy the show! :-) By the way, in this example you will have to press ENTER again to add the line to the program.

For a comfortable use, you must set the international layout of the keyboard for your country. To do so, use the "Keyboard: IT" line in the configuration file of RealSpectrum (realspec.ini), where "IT" stands for the international code of your country (Italy, in this case). The following codes are recognized: BE, BR, CH, CZ, DE, DK, DVORAK, ES, FI, FR, IT, NO, PT, RU, SE, SK, UK and US. By default (in absence of the "Keyboard:" line), RealSpectrum uses the US layout.

The Fileselector

Some of the menus above will bring you a fileselector where you can choose a file to load or save.
The upper part of fileselector window shows a list of directory and files, sorted by name; the currently selected item is highlighted by a red bar, which you can move up and down using the arrow keys of the PC keyaboard. Only files of the matching types for the context are shown (i.e. SNA and Z80 for snaphots, and so on). You can also use the keys PGUP/PGDN to move faster and HOME/END to go to the first and the last item respectively.
At the bottom of the window there is an edit line where you can type the initials of the file your are looking for to speed up selection. Whenever you press an alphanumeric character, the selection bar is moved automatically to the file with the nearest name to the string appearing into the edit line. You can delete characters with the usual BACKSPACE key.
You can change the working directory and drive by highlighting the desired directory or drive letter and then pressing ENTER.
Once you have highlighted the desired file, press ENTER to confirm selection and quit the fileselector.
When the fileselector is opened for saving, it will only show directories and drives so that you can choose the path where to save the file and you must type in the filename which will appear in the edit field. In some cases you can also choose the file format with the left/right arrow keys; the currently selected format is shown in the "Save as" line. If the edit line looses the focus (i.e. the characters you type don't appear), use the TAB key to set it back.
Please note that RealSpectrum fully supports long filenames if run under Windows 95 and above.

The Hardware Configuration menu (F3)

From this panel you can select the various Spectrum models and interfaces. Use the TAB key to move the cursor focus between the sub-panels. If the model is selected with SHIFT+ENTER, the CPU is not reset.
By pressing SPACE, you can choose and load a custom ROM file for the highlighted Spectrum model or peripheral; use the fileselector to selected the desired ROM image, which will be used from now on for the specified model.

The Joystick and Mouse Configuration menu (ALT-F3)

RealSpectrum supports up to 4 PC joysticks and the PC cursor keys; each of them can be mapped to any supported Spectrum joystick such as Kempston, Sinclair 1 and Sinclair 2. The number of physical joysticks currently connected to the game port of your PC is reported in the last line of the menu. Use the arrow keys to select the various types and to set the assignements. Please remember that the PC cursor keys can be assigned either to a Spectrum joystick or to the Spectrum arrow keys in mutual exclusion; this means that they will act as Spectrum arrow keys only when none of the joystick types listed in ALT-F3 correspond to "Cursor keys".
With the Mouse Type option you can turn on/off the Kempston mouse emulation, which is supported in many many programs for Pentagon and Scorpion (utilities, games, disk loaders, etc) and some classic software like Art Studio.

The Communication Ports menu (CTRL-F3)

At the moment, this control panel lets you configure the parallel port emulation for DISCiPLE, +D, +2A/+3 and Scorpion. The available settings are "OFF", "LPT1" (PC parallel port at address 0x378), "LPT2" (PC parallel port at address 0x278) or a mirror file (in this case, the file name is displayed). To change the dump file, press ENTER when the old file is showed and use the save-to fileselector normally.

5. Snapshots

RealSpectrum supports the most common types of snapshot files, the Z80 and SNA formats which alone represent nearly the totality of the snapshots available worldwide. Several versions of both Z80 and SNA files exist, but RealSpectrum is able to deal with them all transparently.

Using snapshots is very easy, they can be loaded with F5 at any time. In the configuration file, you can specify a default directory where you keep your collection of snapshots. For a design choice, RealSpectrum will not change the hardware model by itself when opening a snapshot saved for a different machine. For example, you can load a 128K snapshot while you are using a Spectrum 48K, but this will probably result in a crash; you will have to manually select a 128K model from F3 before loading it.
Of course you can also save snapshots by pressing ALT-F5 and then typing in the name of the file to be written. Besides the various keys described for all the various fileselectors, with the left/right arrow keys you can choose the format of the snapshot (SNA or Z80). In general, the Z80 format is preferred because it compresses data to reduce disk space occupation, but SNA is more portable to other emulators. RealSpectrum saves the most recent version (v3.xx) of Z80 files.

Snapshots are very handy because they load and save instantaneously, but they have the major disadvantage that they are commonly considered "ugly". They start the program somewhere in the middle, not from the beginning, and something of the original program is lost; besides, they cannot store the data levels for multiload games and so are also incomplete in many cases. Consequently, snapshots should not be used to archive your collection of old games, but only as a temporary form for fast usage. Tapes, and especially TZX files, are the best choice for archiving purposes.

6. Tapes

RealSpectrum supports several types of tapes, including the direct connection of a tape recorder to the soundcard of your PC - both for loading and for saving. Each format has special peculiarities in the way it can be handled by the emulator.
  • WAV files are direct audio samples of the real Spectrum cassettes and can be obtained with any sound recording program; they usually take up a very large amount of space on the hard disk and are not very versatile. Loading a program from a WAV files is pretty much the same thing as doing it on the Spectrum - endless wait... :) RealSpectrum supports only 8-bit, mono, uncompressed WAV files.
  • CSW files are produced by Ramsoft's CSW.EXE utility and are a compressed and digitally preprocessed form of audio data taking much less space.
  • TAP files are a very common way of storing normal speed Spectrum data, i.e. programs and information which has been created by the default ROM tape routines (LOAD/SAVE commands). They load instantaneousely into the various emulators and the contents can be browsed to jump to a specific data block. The main disadvantage is that programs which use custom loading routines such as turbos cannot be stored in TAP files.
  • TZX files are the most advanced way of storing Spectrum tapes on PC. Thanks to a sophisticated structure, they can digitally reproduce any kind of data ranging normal speed programs to the latest turbo-encoded commercial games. They can also include extra information such as instructions, archive records, screenshots, pokes and so on. Ideally, TZX files should completely replace any other type of tape file. Like TAPs, they can be handled in an intelligent way by emulators. TZX files can be obtained with programs such as MakeTZX and Taper. RealSpectrum doesn't currently support Direct Recording Blocks in TZX files.
  • Real Tape is finally the easiest way to load your real Spectrum tapes into the emulator. All you have to do is connect the tape recorder to your soundcard and select "Physical-Device" in the tape fileselector. Loading from real tape is extremely reliable, so don't be afraid to use it. The only requirement is that your CPU is fast enough to run RealSpectrum at full speed (see the system requirements chapter for that).
In RealSpectrum you can load a tape file with the fileselector shown when you press F7. Like with snapshots, there is a setting in the INI file to tell RealSpectrum which directory to use by default when loading tape files. Once you have opened a file, you can start/stop the tape by pressing CTRL-F7; this applies to real tape operations too. The "Scroll Lock" led on the keyboard shows when the tape is running. You can browse the contents of the tape with SHIFT-F7 (TAP and TZX only); to jump to a specific block, select it using the arrow keys and then press ENTER.

Notes about real tape support

If you want to load from a real tape you will probably need an old ISA soundcard, since most modern PCI cards (including SB Live!) fail at sampling in legacy emulation (i.e. using the classic SoundBlaster DSP commands). Sorry, that's MSDOS, guys... :-(
With the current version of the sound library used by RealSpectrum, loading from real tape (sampling) will stop the sound output. This is not a RealSpectrum's limitation. When the authors of the library will enable full-duplex support in their sound drivers, RealSpectrum will automatically benefit from that.
When you open "Physical-Device" in F7, the tape is automatically started. You can still use CTRL-F7 to start and stop the sampling as you need.
Obviousely, realtime loading/saving requires that your computer is fast enough to run RealSpectrum at full frame rate (50 fps, currently achieved with a 166/200 MHz CPU), otherwise some data will be lost causing a loading error. Note that the real tape support is totally independent from general sound emulation, so if you have a slow CPU you can try to turn off sound to gain more speed.

Tape Options

By pressing ALT-F7 you open the Tape Options control panel, where you can alter some settings.
  • The FlashLoading and Tape Saving sections are described in detail in the next paragraphs.
  • Tape Loading Noise determines whether you hear the tape sounds while loading (like on the real Spectrum) or not.
  • AutoRewind is used to control the behaviour when the end of the tape is reached. If it is enabled, the tape is automatically rewinded to start and loading continues from the beginning of the tape; otherwise, the tape is stopped. AutoRewind is enabled by default for TAP files.

FlashLoading

FlashLoading is the ability to load tape data instantaneousely, without having to wait like on the real Spectrum. This is a common feature with TAP files, but we did it even better: RealSpectrum is the first emulator which is able to flashload turbo TZX files too! This means that you can now load games (with levels too!) from their original tapes as if they were snapshots or on disk! Please note the difference from other kinds of so-called "flashloading": we are not just speeding up the emulator while loading, but rather autodetecting the tape routines and loading the data directly into the Spectrum memory as requested. In this way, the full loading of a 128K game happens in zero time! The only pauses that you will see are due to the various decrypters/decrunchers commonly used by games before startup to set up themselves, not really part of the actual loading. This cool feature is possible thanks to the MakeTZX technology which is embedded into RealSpectrum.
  • FlashLoading currently works with the following turbo loaders: Alkatraz, all Speedlocks (1-7), BleepLoad, Paul Owens and Digital Integration. These schemes alone cover the vast majority of games ever produced; of course we will add more schemes in the next releases. You don't have to worry to identify the various loaders, RealSpectrum will do it automatically for you.
  • FlashLoading works with levels too. In this way, it will be pretty much the same as playing the same game on disk - no more waiting between the levels!
  • Of course, FlashLoading requires original versions of programs, preserving the original custom loader. Hacked versions using different loaders will not be recognised.
To enable FlashLoading, turn on the corresponding option in the ALT-F7 control panel. FlashLoading is automatically enabled with TAP files and disabled with CSW and WAV; if you want to load TAPs in the old-fashioned "slow" way, disable the option right after opening the tape file (and remember to start playing with CTRL-F7). With the "FlashLoad Levels" option you can choose to load instantaneousely game levels too.

The "Screen Pause" setting is used to introduce a small pause right after the loading screen to let you see it (otherwise in most cases it would disappear immediately); it is particularly interesting with Alkatraz games, which usually show the loading screen in a very fancy way and we thought that it was nice to give you the ability to replay the screen in the original way. Choosing "NONE" disables the pause/animation at all, while the other three settings ("Slow", "Medium" and "Fast") affect the pause/animation speed. Note that it's only an artificial slowdown, since the real screen is internally loaded instantaneousely :-)

FlashLoading is also useful outside the expected situations. When it is enabled, RealSpectrum loads normal speed blocks found in TZX files just like it does with TAPs, so it can be used to skip any standard block also in unsupported loading schemes. If it stops before a custom turbo block because that particular loader is not directly supported by RealSpectrum, all you have to do is simply press CTRL-F7 and loading will continue normally according to the old-fashioned way; in this case, FlashLoading will be automatically disabled until you open the next tape. In general, you can switch between FlashLoading and conventional "slow" loading at any time from the ALT-F7 menu.
In conclusion, with RealSpectrum's FlashLoading there's no reason to prefer TAP files to TZX archives.

Tape Saving

RealSpectrum can save ZX tapes in all the file formats supported also for reading, that is you can choose amongst TZX, TAP, WAV and CSW. This is an useful capability, since it gives you the absolute freedom to manipulate any kind of data on writing, including turbo and custom loaders.
To initiate tape writing, enter the Tape Options menu with ALT-F7, move the cursor to the "Tape Saving" section and select the "Open tape for saving" menu entry by pressing RETURN. This will open the usual fileselector where you can choose the destination directory and the filename of the tape to save. With the left/right cursors you can choose any desired tape format. When you have done, press RETURN again and tape saving will be activated. What happens then, it depends on the tape format chosen:
  • TZX, TAP: RealSpectrum will trap the normal SAVE routines in ROM and write blocks to tape. This way of operation is ok for normal BASIC commands like SAVE and also for headerless ROM blocks, but it is not suitable for saving turbo-speed (custom) data. Although the TZX format is able to contain non-standard data, at this moment TZX writing is supported only at TAP compatibility level (blocks 0x10). In the next releases, however, RealSpectrum will be able to write turbo TZX files too using an embedded version of MakeTZX's decoding engine.
  • WAV, CSW: RealSpectrum starts recording output data to the sample file; this activity starts right after you open the tape file for writing and stops when you close it; the default sampling rate of the output file is 44100 Hz. This way of operation allows recording of any kind of turbo data and custom loaders and so it is extremely versatile. Typically, you may then wish to translate the WAV or CSW file to the TZX format with a TZX decoder like MakeTZX. CSW files have the main advantage that they are usually 8-10 times (and more) smaller than WAV files.
  • Real Tape: In this case, the beeper output is suppressed and instead you will hear the data saved to tape (any speed, any custom routine). You can connect a tape recorder to your soundcard output connector, or even directly the EAR socket of a Spectrum. Note that the "Device Balance" setting in the sound control panel affects the output level of the signal.
Once you have finished to save the data, close the tape with the "Close tapefile" menu entry in the Tape Options menu (ALT-F7).

7. Disks and cartridges

Currently RealSpectrum implements four disk interfaces: DISCiPLE, +D, Beta 128 and +3. Besides, Interface I microdrives are also emulated, allowing up to 8 cartridges. DISCiPLE and +D are very similar and compatible, so they are often referred to as MGT interfaces (from the name of Miles Gordon Technology, the manufacturer). Beta 128 (a.k.a. TRDOS) is the default disk system for the Russian Spectrum clones such as Pentagon and Scorpion; it is based upon Technology Research's interface. The +3 system is obviousely found in the latest Spectrum model by Amstrad. The ZX Microdrives, attached to the ZX Interface I, were the most popular mass storage peripheral produced by Sinclair itself.
From the F3 menu you can enable one of these interfaces for each Spectrum model. MGT and TRDOS are mutually exclusive because of some port conficts; TRDOS is enabled automatically when you select Pentagon mode, but you can change the disk interface as you like it.

Disk Options

Press F6 to access the disk drives configuration. For each available drive, RealSpectrum shows the disk images currently loaded in that drive and the write protection status of the disk. To insert a new disk, select the desired drive, then press ENTER and choose the disk file to load. To eject a disk, simply select it and then press the DEL key. To toggle the write protection on/off, use the left/right arrow keys. A default directory for disk files can be specified in the INI file.
With ALT-F6 you can instead create empty image files for disks or cartridges. The file type(s) for save is automatically determined from the disk interface currently enabled. Newly created Interface-1 cartridges (MDR) and +3 disks (DSK) must be formatted before you can use them.

Physical disk support

Besides disk image files, RealSpectrum allows you to insert real floppy disks into the disk drive of your PC. To enable real disk mode, just open the special file called "Physical-Device" which is shown at the end of the list in the fileselector.
Note that RealSpectrum uses the motherboard's BIOS routines to access the disk drive. This means that some old BIOSes might not be able to read non-MSDOS disks such as the Spectrum disks. On an Asus P5A, RealSpectrum reads my DISCiPLE disks at the same speed as the real Spectrum does! In case you have an unlucky BIOS, before giving up try to print the directory of a 720K MSDOS disk before starting RealSpectrum, or use a BIOS disk tweaking utility such as FDREAD.EXE. We recommend to use real disks in pure MSDOS, because there could be some problems under Windows.
Also, the problem could be that your PC's drive has a different head alignement from the Spectrum's drive.

DISCiPLE and +D

The MGT interfaces support up to two double density, double face floppy disks (MGT1 and MGT2), usually 80 track x 10 sectors of 512 bytes each (800K total). In order to able to use them, you need the ROM files GDOS.ROM for DISCiPLE and GDOS-PD.ROM for +D, which must be placed in the same directory where RealSpectrum is. Then you need a boot disk containing the DOS (a file called "sys*" or "+sys*" respectively). Please read our DISCiPLE/+D Guide to learn everything you need to get the most from these two wonderful interfaces. The devices are equipped with a magic button (NMI) which freezes the currently running program and lets you save a snapshot to disk, print the screen and many other things.
RealSpectrum supports also UNIDOS, a powerful operating system for both DISCiPLE and +D which is available as an EPROM upgrade for the interfaces; you need UNI-DISC.ROM for DISCiPLE UNIDOS and UNI-PD.ROM for the +D version. You can choose between GDOS and UNIDOS from the F3 menu at any time. If the DISCiPLE/+D ROM file (default or manually specified into realspec.ini) is 16384 bytes long instead of 8192, RealSpectrum assumes that it contains the pre-loaded operating system and so you don't need to boot the DOS with the usual "RUN" command.

Beta 128 (TRDOS)

The Beta 128 interface allows to control up to four disk drives (TRD1-TRD4), usually 80 tracks x 16 sectors of 256 bytes each for a total of 640K. The supported file formats are .TRD and .SCL (FDI coming soon).

+3 Disks

When the +3 model is selected, you have two disk drives available (DSK1 and DSK2) where you can insert .DSK file images. +3 floppies are usually 3" 40 tracks x 9 sectors, single sided disks.

Microdrive cartridges

If the ZX Interface I is enabled from the F3 menu, the Microdrives control panel is shown instead of the usual disk screen. RealSpectrum supports 8 microdrives where you can insert a cartridge image (.MDR files). This panel works pretty much in the same way as the disks menu, with the only difference that the Write Protection info is displayed as an 'R' (Read only) character before the drive info; the write protection status is changed with the left and right arrow keys. All the other keys work as in the disks menu.

8. Video

RealSpectrum can run at several video resolutions, which can be changed on-the-fly from the Video Options menu (F11) by selecting the desired mode and then pressing RETURN. You can also type in the resolution manually in the edit field, e.g. "320 200". If the selected mode is available on your system, RealSpectrum will change the videomode immediately, otherwise the old mode is kept. The emulator automatically uses every single pixel of the available video area to display the largest possible portion of the full ZX Spectrum screen. This means that at 320x200 you will see 4 lines of upper and lower border, while at 376x308 and above the entire picture will be shown (usually beyond the normal TV capabilities).

The list of video modes shown in the F11 panel is only a very small subset of all the available resolutions. RealSpectrum comes with the following built-in modes:

320x200 320x240 256x200 256x224 256x240 256x256
320x100 320x350 320x400 320x480 320x600 360x200
360x240 360x270 360x360 360x400 360x480 360x600
376x282 376x308 376x564 400x150 400x300 400x600

If your enter one of the resolutions listed above, RealSpectrum first tries to see if your BIOS supports it as VESA2 and if it doesn't then it uses X-Mode.

Besides these modes, RealSpectrum supports all the VESA 1/2/3 modes supported by the BIOS of you graphics card. You can use a VESA diagnostic tool to get the full list of your VESA modes. Typical VESA2 modes are 640x480 and 640x400, but many BIOSes implement also some of the low-res modes listed in the table above.
The 376x282 mode has a 50.3 Hz vertical refresh, which is very close to the ZX Spectrum PAL rate. This means that scrollers and animations will be perfectly smooth also on the PC's monitor, a result differently impossible to achieve due to the VGA's refresh rates. Note that some old monitors could not be able to deal with such a low frequency.
The 376x308 resolution (X-Mode) is particularly interesting too because the hardware scanlines make the monitor image very similar to the classic TV screen. The refresh rate in this case is about 86 Hz, which could exceed the capabilities of some monitors.

Important: we strongly recommend you to always use VESA2 or VESA3 whenever possible, since this dramatically improves the speed performance of the emulator. The last line of the F11 control panels shows a text line describing the currently active video mode; you should try to work with resolutions that are reported as "VESA2" or "VESA3".

If the low-res modes such as 320x240 are not available as VESA but only as X-Modes, we recommend you to try the Scitech Display Doctor. If RealSpectrum doesn't run at fullspeed on your machine even in VESA2 modes, then try the good old 320x200. Check that the video driver used is "Standard VGA" (aka mode 13H). You can always force the VGA mode 13H by entering a non-existent resolution into the INI file (e.g. "VideoMode: 333 333").

Extra video preferences

In the ALT-F11 menu some extra options are available.
  • Vsync: this parameter controls vertical retrace synchronization. If it is enabled, RealSpectrum will try to synch the video updates with the VGA's electron beam, resulting in smoother animation and images with no flickering. However, in some cases this may slowdown the emulator excessively; if you hear gaps or repetitions in the audio, try to disable vsync. Also, remember that under Windows 9x it is almost impossible to get 100% sinchronization and so at some intervals some flickering may occur even if vsync is enabled.
  • Gamma: this setting determines the contrast between bright and dark colours of the ZX Spectrum palette. Increasing the value will make the dark colors brighter and vice versa.
  • Save screenshot: this opens the fileselector to save the current Spectrum screen to a graphic file; the available formats are BMP, SCR, PCX and TGA.
  • O.S.D: this is the maximum number of text lines simultaneosely displayed by the On-Screen Display (OSD).
In the realspec.ini configuration file you can alter the frameskip value. RealSpectrum will send a video frame to the VGA only once every frameskip frames; it can be useful on slow graphics cards and the default value is 0 (no frameskip at all).

9. Audio

RealSpectrum has a very rich set of features concerning music and sound, because audio quality is one of its main design goals. You have already learned the capabilities in chapter 2 from the emulation point of view. This chapter explains the user interactions with the sound system. RealSpectrum can produce sound in many configurations: 8 or 16 bit, mono or stereo and at any sample rate supported by your soundcard. The recommended configuration is 8-bit stereo at 44100 Hz (16 bits are usually not necessary).

Sound Options

By pressing F12 you enter the sound options panel where the following controls are available:
  • Master volume: this is the global volume of the sound which comes out of your loudspeakers. For some mathematical considerations concerning sound quality, it is usually better to keep this setting at the maximum value and use the loudspeaker's controls to adjust the volume.
  • AY stereo panning: you can set the stereo position of each of the three channels of the Spectrum 128K soundchip (AY) in 256 steps ranging from full left to full right. This feature gives extremely pleasing results. Many demo musics have been composed to sound better in some stereo configuration (see later).
  • Device balancement: this controls the relative power of the digital channel (i.e. the internal beeper and sound devices such as Covox/Soundrive) against the AY chip. In the original Spectrum 128K the beeper alone sounded as loud as the three AY channels together and this was unpleasant to many users. The default setting of RealSpectrum is that the beeper has the same power of a single AY channel (so each channels has 1/4th of total power). When the cursor is at the full left you hear only the AY and the beeper is muted; when the cursor is at the full right, the AY is muted and the beeper sounds at full loudness. The original Spectrum 128K behaviour is obtained when the cursor is set halfway.
  • Stereo mode: this lets you use some presets for AY panning; "ABC" configuration (channel A on the left, B center and C on the right) is used by Pentagon and many eastern clones and boards; "ACB" was used with many Czech demos (Busy Soft); "NONE" gives monaural output (all channels centered) and "USER" lets you define you own custom stereo panning.
  • Surround FX: this cool feature improves the sound spatiality. Usually, external soundspeakers give better results than headphones. Play with the speakers disposition to achieve the maximum effect.
  • Sound state: toggles sound on/off.
The last line of the control panel shows the playing mode currently used by RealSpectrum: resolution, stereo and sampling rate; these parameters cannot be changed on-the-fly and must be set into the configuration file (realspec.ini).

Extra audio settings

With ALT-F12 some extra audio features are available:
  • Sound recorder: RealSpectrum can record the Spectrum sound (AY and beeper) to a WAV, AZX or YM file for later use. In this way, you can record your favourite Speccy musics and sound effects and play them back with your music player or even record them on CD. The sound recorder can be started/stopped at any time by pressing ENTER when the recorder option is selected; the line will show "Start" or "Stop sound recorder" depending on the current state. When you start a new recording, you must use the fileselector in the usual way to choose the file format (WAV/AZX/YM) and the file name and path.
    Note about YM files: RealSpectrum saves uncompressed YMs type 5; you can compress the files yourself using LHA.EXE (use option "-h0", e.g. "lha -h0 a compressed.lzh uncompressed.ym") and the final .LZH archive can be eventually renamed to have a .YM extension without any further action.
  • AY-LPT circuit: this is a small electronic circuit which allows you to connect a real AY-38910/12 soundchip to the parallel port of your PC. RealSpectrum can play AY music through the AY-LPT device so that you can listen to the "real thing" too besides the digital emulation through the soundcard. To enable AY-LPT, type in the hexadecimal address of the LPT port the device is connected to (usually 378 for LPT1 and 278 for LPT2). To disable AY-LPT enter the value 0 or press ESC.
  • Digital device: here you can select a digital playback interface. The supported devices are Covox (port $FB on Pentagon and $DD on Scorpion), Stereo Covox (ports $0F and $4F), Soundrive and Music Machine. The digital sound output is played through the beeper channel, so you can't hear 48K sound effects while Covox etc. are enabled (but AY music is still played normally). This also means that you can adjust the digital channel volume using the Device Balance setting in the main Audio Controls menu (F12); for example, to hear the digital music with the best quality (maximum volume) you must drag the slider to the full right (AY muted).
Note about PCI soundcards: like all DOS programs, the MSDOS version of RealSpectrum may not work correctly with PCI soundcards. This is not a limitation of RealSpectrum, but a DOS-imposed restriction. PCI soundcards are almost unaccessible from DOS programs due to specific hardware design problems. See the FAQs in this manual.

10. Pokes (cheats) and Memory Options

At the good old times, lots of cheat modes and trainers were available for many games, typically printed as POKES in the magazines. With RealSpectrum there are two ways to enter such pokes: you can enable the Multiface 128 and then use its menu to insert the poke, or you can use the trainer control panel which is accessed with the F9 key.

When you load a tape or a snapshot file, RealSpectrum automatically looks for a file having the same name and the .POK extension. POK files are produced by the popular SGD (Spectrum Games Database) utility by Martijn van der Heide and contain the cheat definitions. When POK files are available, the F9 panel shows a list of the available cheats for the running game; each trainer can be activated and disabled with the left/right cursors. Sometimes it is possible to specify a number as the value of a trainer, for example the number of lives; in this case you can alter the number which is shown when the trainer is active by using the +/- keys on the numeric keypad of the keyboard.

If no POK file is available for the loaded game, you can still enter pokes manually by typing the values in the edit field, e.g. for a POKE 32654,201 you will enter "32654 201" or "32654,201" (use space or comma to separate address and value).

If you prefer, you can keep POK files altogether into a single directory which is pointed to by the "PokesDir: " setting found in REALSPEC.INI.

Memory Options

The Memory Options control panel is activated with ALT-F9 and contains some functions to load and save memory chunks. In the first three lines you can set the block start address, length and RAM page; on the desired line, press the right arrow key and then enter the value in decimal format, using RETURN to confirm the data; you can also enter hexadecimal values by using the "%" prefix, the "H" suffix or even the C-style notation, e.g. valid numbers are "%100", "100H" or "0x100".
Once you have set the source/destination boundaries, select either "Load Memory Block" or "Save Memory Block" and use the fileselector to locate the file to load in or enter a filename for the file to save. Memory blocks are saved with a .BIN file extension.

11. Internet Networking (TCP/IP)

Perhaps one of the most innovative aspects of this emulator is that it can expand your Spectrum experience over the Internet in several ways. Before you try to use these capabilities, however, you need to be familiar with the Internet, the Interface-1/DISCiPLE Sinclair Network architecture and RealSpectrum's networking features; please do read carefully this chapter (including the "special notes" paragraph) and the other documentation required for such knowledge.

System requirements for networking

The following requirements need to be met if (and only if) you want to use the Internet capabilities of RealSpectrum:
  • Windows 3.1 or above. The networking features use the TCP/IP stack of Windows 3.1 or Windows 95/98, so you must run the emulator from a DOS box under Windoze. It won't work from Windows NT and pure MSDOS (e.g. if you use "Restart in DOS mode" or even worse from the old DOS 6.x).
  • SOCKVXD.EXE: Under Windows 95/98, you must have installed this additional module which can be obtained from the RealSpectrum download page; this is a virtual device driver developed for the CODA project which allows a DOS application like RealSpectrum to communicate with the Win32 networking functions. To install the module, double click on the executable and select "Dynamic Loading" when asked about the type of installation; this only needs to be done the first time when you install RealSpectrum. You will be able to safely uninstall the module from the Control Panel at any time.
    You can freely download this module from the RealSpectrum official homepage. The latest version of the module can be found at the CODA homepage: ftp://www.coda.cs.cmu.edu/pub/tools/95/windows-socket-extension.exe
  • TCP/IP connection. This can be you usual Internet access, or a local network such as an Ethernet LAN.

The Network Options menu (making a connection)

First of all you must setup your machine for the communication. This can be done with the Networking Options, which is found in the ALT-F8 menu.
Before enabling the connection, enter your nickname by pressing the right arrow when the cursor is on the "Nick-Name" line, and confirm with ENTER. Your nickname is just an identifier that will appear on your friend's screen when you make some actions. Of course you can leave the default nickname, if you don't want to set your own. You can specify your nickname also in the INI file with the "NickName: your-nick" line.

Now you must enter the IP address of the remote computer. An IP address has the form of four numbers separated by dots, e.g. "192.168.0.1". Of course, you must find a way to know your friend's IP address first, and this must be probably done outside RealSpectrum, for example on IRC or ICQ, with a phone call, and so on.
If you don't know your friend's IP, you can enter "0.0.0.0" as the remote IP (the default choice); in this way, RealSpectrum will wait for a call and determine automatically the remote IP. Note that, doing so, your friend MUST enter your IP address in his Network Panel. The rule is that a remote IP must be known at least at one side.

Once that you are ready, enable Networking and exit the menu with ENTER or ESC. If a connection wasn't already estabilished before, the two computers will try to contact each other. During this phase, RealSpectrum displays "Connecting to..." or "Waiting for a call". You can cancel the connection process by hitting ESC. Note that when your are not connected, RealSpectrum can also accept incoming connections on-the-fly during the normal emulation (provided that both Networking and NetMonitor are enabled in ALT-F8).

Once that the connection is activated, you will see a message like "Sanchez connected from 192.168.0.1" on your screen and now everything is ready. Note that the the bottom line of the Network Option control panel shows your real IP address only after that a connection has been successfully estabilished. Due to technical limitations concerning SOCKVXD, RealSpectrum has no way to know this information before.

The connection status is shown in the penultimate line of the ALT-F8 panel, where it says if someone is connected and if he/she is listening to the chat messages and file sends. Note that, on the local machine, the networking functions will operate indipendently of the remote connection status; for example, this means that you can send chat messages even if your friend is reported as "not in chat", but he won't probably see them.

Sinclair Network (Interface-I and DISCiPLE)

This is the standard network that can be found on the Interface-1 and DISCiPLE devices, which are reciprocally network-compatible. With the real thing, up to 63 Spectrums can be connected together using a normal audio cable with fits into common mono audio jack socket. The ROM software extends the Sinclair BASIC with a set of new commands dedicated to exchanging data and programs via the network. Each Spectrum on the network must be assigned an unique station number ranging from 1 to 63; for example, if you want to be station 10 you must enter FORMAT "n";10 on the Interface-1 or FORMAT n10 on the DISCiPLE. Then you can send data using the normal LOAD and SAVE commands, with all their variants. If you are station 10 and you want to send a screen to station 11, you must enter SAVE *"n";11 SCREEN$ (or SAVE n11 SCREEN$ on the DISCiPLE) and your friend must first listen with LOAD *"n";10 SCREEN$ (or LOAD n10 SCREEN$ for DISCiPLE). Station number 0 is reserved for broadcast, that is you can send/receive data from any station in general (e.g. with LOAD n0 SCREEN$ you expect a screen from anyone who entered SAVE n0 SCREEN$). The Sinclair Network is very powerful and there are several things to know to use it correctly. For a full description of the network commands, please read the Interface-1 manual and our DISCiPLE technical guide which can be found on the tech page of our website.

Now, with RealSpectrum you can connect two virtual Spectrums all over the world thanks to the Internet. When the global "Networking" setting is enabled in the Network Options menu, all the networking routines will act just like as if the remote RealSpectrum would be connected to you with the Sinclair network cable. Please note that Internet is much slower than the original Sinclair Network and it's also very chaotic, so the overall performances are strongly dependant on the traffic conditions in that moment. Please read the "Special notes" paragraph below for some important things to know about this.

NetMonitor

NetMonitor is a special function which enables some additional networking services such as a live chat system and file sharing. The chat lets you talk interactively with your friend while running your Spectrum programs normally. File sharing is used to exchange files over the net. See below for a detailed description of these features.
NetMonitor can be enabled only if the global Networking setting is enabled too. In general, you should keep NetMonitor always enabled because of the cool things it does. However, we give you the ability to disable it in case you are watching your favourite demo and you don't want external interferences :-)
If both users have NetMonitor enabled, RealSpectrum will also try to keep track of the connection status, i.e. it will be able to detect whether you friend is still online on the internet, if he/she is listening to your chat messages and so on.

Internet Chat

While using the network, it is vey useful to talk with your friend. For example, you will probably wish to chat in this way: "I'm station 10, send me a screen", "Ok I'm station 11 instead, here it comes", "Let's restart the connection", "Ready to receive" and so on.
For this reason, RealSpectrum offers a simple but effective chat system. To use it, you must enable the "NetMonitor" feature in the Network Options menu and make sure that you have already Connected to your friend (see above). When you want to say something, just press CTRL-F8, type in your message and press ENTER to send it. Incoming and outgoing messages will appear superimposed on the Spectrum screen for a few seconds (using RealSpectrum's multi-row OSD), while the program continues to run normally. If you don't see your messages echoed on the screen, it means that there's a network communication problem: check the configuration in ALT-F8 and your Internet connection.

File send

With RealSpectrum you can also send and receive files to/from your friend. If you want to send a file, just press SHIFT-F8 and use the fileselector to select any file on your system. The NetMonitor function is required to be enabled in order to be able to see incoming files (but you will be able to send files regardless of it). If RealSpectrum's NetMonitor detects that someone is about to send you a file, an information box will automatically pop up on your Spectrum screen, showing the name and the size of the file and asking you whether to accept or refuse the transmission. If you decide to accept, the fileselector is opened in save mode to let you specify the destination directory and possibly a different name for the incoming file; the fileselector is already preconfigured with the default filename, so if you don't need to change it just press ENTER to confirm. By default, RealSpectrum saves the files in the startup directory, or in the folder specified by the "DownloadFolder:" line of the INI file (if present).
With the "Get Files" option in the ALT-F8 menu you can customize the default behaviour for incoming files: "Never" automatically refuses all files, "Ask me" lets you choose each time by prompting you with the requester described above, and "Always" automatically accepts any file.
During the file transfer, the completion status is constantly showed on the screen with a progress bar. Both the sender and the receiver can stop the transmission at any time by pressing ESC.

Special notes and troubleshooting

The original Spectrum networking protocol is designed for a quiet and fast physical link, while the Internet is instead very chaotic, slow and unpredictable. The Sinclair network protocol itself can explicitly handle any transmission errors (packet loss or corruption), providing a reliable data link also in presence of disturbs.
RealSpectrum's emulation of the Sinclair network is fully software-transparent, so the original error recovery routines (in ROM) still work and provide an error-protected communication also over the internet; a nice modernization, isn't it? ;-) The only difference is that the real IF-1 protocol detects the transmission errors with a timeout of just a few milliseconds, which is a reasonable value for a cable bus like the Sinclair network cable but certainly not for the internet, which is typically much slower and complex, so we have artificially raised the timeout value to 8 seconds.
We are telling you this stuff because it can happen that a data packet goes lost in the internet and so your LOAD or SAVE command blocks. In this case don't worry, because after some seconds (about 8) the transmission will resume automatically! You should BREAK (SHIFT+SPACE) the LOAD/SAVE command only if the transfer remains blocked for a long time, say 20-30 seconds or more. Note that the blocking occurs also with the real Interface-1 (or DISCiPLE), but you don't realize it because the timeout is too short to perceive it.

Also, consider that RealSpectrum is a DOS program and it really needs to do some magics to access the Internet using Windows. There are some technical limitations which cannot be overcome by a DOS program, for example an intense IF-1 network activity could slow down the emulator sometimes (you hear repeated sounds in the audio); this is normal, and it's the small fee to pay for such a cool feature.

If the connection seems definitely broken, i.e. you can't see chat messages and the IF-1 network doesn't work, you can always close the connection by disabling "Networking" and then retry to connect (by re-enabling the setting). Remember that, at any time, you may have a guess about the connection status by looking at the bottom lines of the Networking Panel where it says if your friend is connected and listening for the chat messages.

If you have problems, please don't exhitate to ask us for help: send us an email with a detailed description of the problem and the conditions when it happened.

12. DemoMode

DemoMode is a special visualization mode which transforms RealSpectrum into a music player. When you enter DemoMode, the Spectrum video output is replaced by a graphical screen which shows animations and other effects inspired by the background music. It's a sort of visualization plug-in which runs on top of the Spectrum emulation and that can be used every time you want to see some oscilloscopes, vu-meters and other effects while the Spectrum is playing some music.
When DemoMode is displayed, the Spectrum emulation still continues to run normally in background. You can return to the Spectrum screen at any time with ESC.
The effects shown can be cyclically changed by pressing F1; at the moment there are only a couple of effects implemented (oscilloscope and a Spectrum analyzer), plus the null effect, but expect something cooler soon :-)

AY Player (F5)

In DemoMode, RealSpectrum can also play the popular .AY music files. The .AY file format is the ZX Spectrum equivalent of the famous C64's .SID files, i.e. collections of computer tunes. The most popular Speccy songs have been extracted from games and demos and converted to the AY format. You can find a growing large collection of AY files at the Project AY website.

To play AY files in RealSpectrum, press F5 in DemoMode and select the music file using the usual fileselector. AY files may contain several tunes, and you can use the left/right arrow keys to change the playing song; the down arrow restarts the current song. Note that when you exit DemoMode after playing an AY file, the ZX Spectrum is automatically reset.

Remember that you can start the music recorder before entering DemoMode, so RealSpectrum can also act as a .AY to WAV/YM/AZX converter.

Work in progress!

We didn't have enough time for this release, but in the next versions there will be proper "demoish" effects (a water scope is already done) and loadable skins so that people can draw their own DemoMode graphic screens. Besides, we plan to implement an automatic .AY ripper to create your own .AY files easily.

13. Frequently Asked Questions

  1. RealSpectrum hangs with a black screen at startup.
    Most times it's due to a soundcard initialization problem, especially if you have a PCI card (see the next FAQ). Return to the DOS prompt by pressing CTRL-ALT-DEL, then restart RealSpectrum with the command "realspec -nosound" or set "NoSound: 1" in REALSPEC.INI.

  2. RealSpectrum doesn't work with my PCI soundcard.
    Unfortunately we can't do anything for that. PCI soundcards are almost unaccessible from DOS programs due to specific hardware design problems. Most vendors provide some sort of basic SoundBlaster software emulation (legacy device) but it's often buggy and it must be configured properly. Please use always the latest drivers available for your card and run the emulator in a DOS box under Windows 9x. Only a very few cards can work in pure DOS (e.g. Terratec Canyon 3D). RealSpectrum works with SB Live! only in a DOS box. We recommend that the legacy device is set with the usual SB configuration: I/O 220H, IRQ 5 or 7 and DMA 1 and 5.

  3. Yes, but I want to hear sound anyway!
    Ok, there are a couple of things to check before giving up definitely with the soundcard compatibility issue.
    If your soundcard offers some sort of SoundBlaster emulation, make sure that the BLASTER environment variable is correctly defined. If you type "set" from the command line, you should see a line similar to the following: BLASTER=A220 I7 D1 H5 T6 etc; A220 is the I/O address of the soundcard (220H), I7 is the IRQ line (7), D1 is the 8-bit DMA channel (1), H5 is the 16-bit DMA channel (5) and T6 is a type qualifier (6 means SB16, 4 SBPro and so on). Make sure that the values reported in your BLASTER string correspond exactly to the hardware settings of the soundcard. If the BLASTER variable is missing, you must define it manually.
    If you still have problems, try to force RealSpectrum to use a specific audio driver. To do that, add the following text line at the end of the [sound] section in the ALLEGRO.CFG file: "digi_card = SB20", where "SB20" stands for the SB 2.0 driver; the available drivers are "SB16" (SoundBlaster 16), "SBP" (SoundBlaster Pro), "SB20" (SoundBlaster 2.0), "SB15" (SoundBlaster 1.5) and "SB10" (SoundBlaster 1.0). Maybe your soundcard doesn't work as SB16 but it does as a plain SB 2.0; remember that the various SB models have different capabilities in terms of maximum sampling rate supported, stereo playback and 8/16 bit sample quality.

  4. How can I improve emulation speed?
    The extra-high detail of RealSpectrum requires a faster CPU respect to other emulators. First of all make sure that you are using a VESA2 video mode. Try to disable VSYNC from the ALT-F11 panel (or in the INI file), especially if you hear gaps or repetitions in the audio and you have a slow processor. Use a lower resolution; 320x200 is the fastest. If it is still slow, disable sound. Try increasing the frameskip value into the INI file. You can also gain extra speed by disabling contended memory emulation with the setting "ContendedMemory: 0" in the INI, at the cost of renouncing to 100% perfect multicolor effects (this doesn't affect russian models, which have no contended memory at all).

14. License, credits and contact info

RealSpectrum is freeware. It can be freely used and distributed as long as no money is charged for it and the original package, program and documentation are not altered in any way. Before including RealSpectrum into a commercially sold media (such as a magazine CDROM), please contact us first. You are not allowed to distribute this program together with ZX Spectrum commercial software (such as games snapshots, etc) in any form.

RealSpectrum comes without any kind of warranty, both implied and expressed. By using this program, you accept that the authors are not responsible for any damage or data loss caused directly or indirectly to your system by the emulator. Use it at your own risk solely.

The latest version of RealSpectrum can always be obtained from Ramsoft's official website:

If you want to send your impressions, suggestions or even better bug reports, please write to: Before asking for something, please make sure that your question or your problem isn't already covered in this manual. When sending in bug reports, please describe in detail the encountered problem and the procedure to make it happen again; don't forget to include a description of your system (OS, soundcard, videocard, CPU, memory, etc). This will save us a lot of time, thanks.

Greetings

We would like to thank the following people who contributed useful suggestions or bug reports:

Francesco Piccardo, Davide Barlotti, Rodolfo Edison Guerra,
Miodrag Stancevic, Henk van Leeuwen, Pepa Kokes, Mac Buster,
Raul Gomez Sanchez, Simone Voltolini, Carl Murray, Enrico Maria Giordano.

Credits

The Sinclair and Amstrad roms are distributed with permission of Amstrad plc
The MGT DISCiPLE and +D roms are distributed with explicit permission of Datel

The following technical material was consulted during the creation of RealSpectrum, credits go to the respective authors/maintainers:

Additional thanks to Shawn Hargreaves for the wonderful Allegro programming library.

15. Revision history

New in v0.70.19 (October 21st 2000)
  • Real-tape support: reliable loading and saving of real Spectrum tapes directly through your soundcard. To enable it, select "Physical-Device" in the tape fileselectors. Please read the new dedicated sections in the Tapes chapter.
  • Covox, Stereo Covox, Soundrive and Music Machine emulation: added a digital channel for 4 x 8-bit stereo sound DACs with linear interpolation, providing high quality music and effects. When enabled (ALT-F12), the digital sound devices replace the beeper channel (so they are subject to the "Device Balance" setting in the main sound panel of F12).
  • Empty disk images creation: with ALT-F6 you can create empty IMG, MGT, TRD, DSK and MDR files. Note: DSK disks and MDR cartridges are blank and must be formatted.
  • Parallel port emulation for DISCiPLE, +D, +2A, +3 and Scorpion. Data can be sent to LPT1, LPT2 or a disk file. See the Communication Ports menu (CTRL-F3).
  • Ability to change ROMs also for the various peripherals in F3 (DISCiPLE, +D, TRDOS, IF-1, Multiface).
  • Improved Scorpion emulation: exact multicolor timings, enabled Shadow Monitor (NMI) and fix for "128 TRDOS". Coming next: turbo speed emulation.
  • Better real disk support: improved BIOS compatibility; now it works with TRDOS disks too.
  • Joystick emulation also via PC cursor keys (select "Cursor Keys" as stick in ALT-F3).
  • Updated help pages (F1).
  • Added switch "AY-48K:" in the INI file to enable/disable the AY soundchip for the 16K and 48K Spectrum models; the available settings are: 0=OFF (original 48K), 1=AY38912 and 2=YM2149; the default is 1 (AY enabled).
  • Support for 256K .Z80 snapshots in Scorpion mode (both reading and writing). Improved Z80/SNA snapshot handling with +2A/+3 and Scorpion models.
  • Many bugfixes (+2A/+3 timings, custom ROMs loading, DemoMode, .AY player, Z80 core, FlashLoading, etc).
New in v0.60.42 (August 24th 2000)
  • Interface I emulation with 8 microdrives (MDR files). The IF-1 ROM is now included into the standard ROMs package.
  • Interface I and DISCiPLE network emulation over the Internet (TCP/IP)! You can connect two virtual Spectrums anywhere in the world using the standard DISCiPLE or Interface I networking features (e.g. the channel "n" BASIC commands, but not only)! Requires Windows 3.1 or 95/98 (recommended) and it works on any TCP/IP connection such as Internet or a LAN. Networking options are in the ALT-F8 menu. Please do read the "Networking" chapter very carefully!
  • Integrated chat system for Internet/LAN (TCP/IP): you can talk with other spec-chums while running your favourite games/demos (CTRL-F8). The messages appear directly on the Spectrum screen thanks to the new multi-row on-screen display (OSD).
  • File exchange system for Internet/LAN (TCP/IP): you can send and receive any files from within RealSpectrum (SHIFT-F8).
  • DemoMode screen (F8) with special gfx effects for music playing. Integrated player of .AY files. Still under development.
  • 48K BASIC Tokenizer: also in 48K mode, you type BASIC commands or whole program lines character by character in the Tokenizer editor (ALT-F1) with syntax highlighting, and then it translates everything into the proper sequence of keypresses which are passed to the 48K editor automatically at lightspeed. It's a very nice show, try it! :-)
  • Keyboard localization: you can set the layout of the keyboard to your national standard (line "Keyboard:" in realspec.ini).
  • Multi-row OSD (On-Screen Display) which can show both graphic icons and text messages. The maximum number of text lines displayed simultaneosely can be changed in the ALT-F11 menu. The OSD is currently used only by the network subsystem, but will be used for a complete graphic messaging system for the emulation status (disk/tape leds, special events, etc.).
  • Memory block loading and saving (ALT-F9)
  • Runtime selection of custom ROMs for the various models (press SPACE in F3 on the selected model).
  • Many bugfixes (pokes panel, 48K romfile loading, read-only disk files, +D BetaDos, +2A/+3 address decoding, etc).
New in v0.50.23 (May 14th 2000)
  • New Spectrum models: 16K, +2A, +3 and Scorpion 256. Note: the ROM set archive has changed!
  • Kempston mouse support for Pentagon and Scorpion (ALT-F3).
  • Great speed improvement, over 30% faster in terms of FPS!
  • Heavy Z80 core changes.
  • 48K multicolor timings inserted (based on issue 4S).
  • Ability to disable contended memory emulation to gain extra speed at the cost of a degraded visual quality. Contended memory is required for 100% exact rendering of multicolor effects. This does not affect Pentagon and Scorpion models, which have no contended memory for themselves.
  • DISCiPLE/+D rom files can be specified in the INI file; support for pre-booted (ROM+SYS) rom files (16384 bytes instead of 8192).
  • Default directory customizations in the INI file for snapshot, tapes and disks.
  • Screenshot saving in BMP, SCR, PCX and TGA format (ALT-F11)
  • AZX and YM music recording and new Sound Recorder dialog (ALT-F12)
  • Switch to skip the welcome message ("-nopause" from the command line and "WelcomeMessage" in the INI).
  • Tons of bugfixes (Z80 snapshot loader, UNIDOS saving, Z80 core, etc.)
New in v0.41.06 (March 13th 2000)
  • Kempston/Sinclair joystick support (ALT-F3)
  • Added Digital Integration loading scheme to FlashLoading
  • Z80 core bugfixes (Melange, Kolobok2 and Digital Integration)
  • Other bugfixes
New in v0.40.26 (March 5th 2000)
  • TZX FlashLoading (turbo games, with levels included)
  • Tape saving to TZX, TAP, CSW and WAV
  • Tape Options control panel (ALT-F7)
  • SCL support for TRDOS disks
  • Z80 core bugfix (Dizzy V)
  • POK files automatic support
  • Command line switches
  • Automatic selection of TRDOS in Pentagon mode
  • Help menu (F1)
New in v0.34.21 (January 21st 2000)
  • UNIDOS support enabled (both DISCiPLE and +D)
  • Basic TRDOS support (not widely tested yet)
  • Major speedup (+50% faster!)
  • Z80 core bugfixes and changes
New in v0.32.20 (January 3rd 2000)
  • +D emulation enabled, disk writing enabled
  • Disk selection control panel
  • Speed up and bugfixes
December 31st 1999: Millennium Release (v0.31.999)


RealSpectrum and this manual are © 1999-2000 Ramsoft ZX Spectrum demogroup