SPECCYAL readme & FAQ (rev. 0.20)
zx-hline.gif (1458 octets)

What is Speccyal ?

Speccyal is a 48k Spectrum emulator. It can play (almost) all your favorites games, providing they are in .sna, .z80 or .tap format.

It has been exclusively written for Windows, and it uses DirectX (DirectDraw, DirectSound and DirectInput). It was my first step into the emulation world (and into the windows programming world) and I'm happy with it ! It all started as a personnal challenge, and I decided that everyone should benefit from my work. I hope everyone will be pleased with it!

zx-hline.gif (1458 octets)

What does it have to offer compared to other emulators ?

Yeah, you are right, there are lotsa other speccy emulators out there. Why would you use mine ?

What I intended to do when I first created this program was to offer an easy to use and straightforward 48 k Spectrum only emulator. This is by no means the best spectrum emulator and I know that but just read below ...

Until now (version 0.72b), it can do the following things :

zx-hline.gif (1458 octets)

What are these menu options used for ?

Well, I think it's so straightforward I don't need to help you about this.

zx-hline.gif (1458 octets)

What are the requirements to run Speccyal ?

zx-hline.gif (1458 octets)

Known bugs/limitations

These are not really handicaping but I could reach one of the best Spectrum emulation levels if I could fix all these problems (no one can claim his emulator is 100% bugsfree).

zx-hline.gif (1458 octets)

Is it free ?

Yes it is completely free !

zx-hline.gif (1458 octets)

Where can I get the source code ?

The source code WILL be available, as soon as I feel the code is clean.

The Z80 cpu core is available on my homepage (version V0.1). Just head to http://user.online.be/~ota105875/ to grab it !

zx-hline.gif (1458 octets)

Who is the Author ?

My name is Stephane Schmitz, this is my first contribution to the emulation world. If you want to send me comments (they are welcome), email me to :

stephane.schmitz@online.be.

http://user.online.be/~ota105875/

Or if you are happy with it and want to contribute to future enhancements, you can motive me by sending a beautiful postal card to the following address :

Stephane Schmitz Rue des Vergers, 6/bis 4801 Stembert BELGIUM

zx-hline.gif (1458 octets)

Versions history


 
 
Version V0.72b / 29-02-2000

I just fixed the quick load option that I added in the last version. It was not running at all to say the least ... again, sorry about this.

- Fixed a bug which could help the "quick load" option from correctly working (and even crashing) on some precise configurations (if you had selected in windows explorer the option to view files extensions, because I was using a system dependent file function, which was implicitly using this
option)
Version V0.72 / 26-02-2000

What's new in V0.72:

In summary, all the previously addressed issues have been (completely or at worst partially) fixed.
I mean slow speed in windowed mode, wrong palette and unfinished z80 cpu core (some bugs remain to be discovered). The next weeks will be spent rewriting the whole thing, so that the code is clean, in preparation for a source release ! Plus, there are other enhancements, read below ... This release will be the last one for a long time.

- Z80 cpu core has been enhanced (better stability, compatibility, added undocumented opcodes, flags 5 and 3 partial emulation (80% complete)). Some more games are running now (GreenBeret, Marble Madness, Imask2, Spindizzy ...) bringing the compatibility to a high level, in fact more than 95%. Out of 230 games I have tested, only 9-10 had problems, mainly graphics bugs, but none of them refused to work

- Palette routine has been rewritten for the nth time... this should be the last version and it should work on 99% graphics cards now). As a counterpart, it's not possible to switch colors (dark, light...) anymore but I think it's more important to have a perfect colors palette. Also, the colors are a bit more realistic (technically, I'm using an hardware independent pixel plotting function)
(thanks to Fabian Schmied and John Leather)

- Fixed a bug that caused the emulator to crash if an error message was displayed

- Fixed a bug that caused the emulator to crash if the spectrum rom file could not be found

- The cursor blinks a bit faster ;) almost like the real thing

- The 6 last loaded games are saved and can be quickly selected in the file menu (not deeply tested, may lead) to unexpected errors ...). You can even (unofficially :)) quick load games in fullscreen mode by pressing alt-f.

- Preliminary support for 24 bits desktop mode (sluggish and tested on one card only, try to avoid it!)

- The DirectDraw primary surface was created in video memory. Now, it's created in system memory and windowed mode speed is now on par with fullscreen speed :) (tested on a Matrox Mystic 170 graphics card, which was previously lagging in windowed mode, now it's perfect, at
least on my test machine) (thanks to Fabian Schmied)

- New logo :)

Version V0.71 beta / 04-02-2000

What's new in V0.71 beta:

In summary, I added fullscreen support and fixed the purple/blue palette problem on some graphics cards
in 16 bits colors mode.

- Fullscreen mode, at last :) It is *considerably* faster than windowed mode.
For example, on my office PC, the windowed mode lags between 20 et 25 fps where fullscreen
mode is running at a top notch 86 fps. You can consider the emulator is running at least
at twice the windowed speed. Press ALT-ENTER to switch between fullscreen / windowed mode.
Be warned tough that it should be considered a beta implementation.

- 2 joysticks emulation. I don't have two joysticks so I haven't been
able to test this feature but it should work. Choose Kempston for player 1 and
either Sinclair1, Sinclair2 or Cursor for player 2. The new "2 joysticks emulation" checkbox
in the joysticks options windows just tell the emulator if Sinclair1, Sinclair2 and
Kempston joysticks emulations should be usable only with the second joystick.
Be warned that it has not been tested at all and will certainly exhibit weird behavior at some
moment. For example, I don't event test that two different joysticks are selected. I added this
functionnality as a gift :)

- I rewrote my palette routine. All I can say is that it perfectly works now !
Peoples who had "mauvish colors" problems should be pleased with it. I haven't been to find a
computer here at my office which have problem with it (some tested graphics cards: Nvidia TNT1,
TNT2 M64, Matrox Mystique 170, Intel i740, S3 Virge DX). Arghhh this damn RGB 555 colors mode ! The next version should include a new hardware independant pixel plotting function.

- Added a new option ("Blit attributes"). This option can help some games to go faster. For example, in Silkworm, I went from 80 to 95 fps simply by switching this option on. Hopefully, the fullscreen option is there if you have speed problems.

- Switched from MSVC++4 to MSVC++6. Perhaps the generated code is now compatible with k6-2
processors (I know my emulator wasn't running on these "compatible" chips). Just tell
me if it's working now, I'm curious to know about it.
- Fixed keyboard input problems, which happened from time to time when the emulator
was launched.
- Fixed the "continuously playing sound" problem when entering some menu options. Now the
sound is off when loading a snapshot, diplaying the joystick options or keyboard layout...
- Better border emulation ! Now the border lines are almost completely synchronized with
the emulation (Vectron is my test game, and the border is always slighty out of sync,
but it's *much* better than previous border emulations).
- Fixed several opcodes cycles, mainly the undocumented ones.
- Fixed some bugs in my z80 core and in the debugger (the side effect of switching
to a newer compiler enabled me to find these bugs). I don't even know how the old version
was running because after having recompiled my emu with the new compiler version, it wasn't working at all !
- Added a status bar (windowed mode), with the current fps, screen and cpu speeds. Better
than the previous OSD.
- Added support for .TAP files. To make it work, start from BASIC, load the game and
type LOAD "" (altough, there's always a bug that causes a crash when pressing the F4/RESET
key :( , due to some opcodes overwriting the rom).

- Other minor bugs fixed

- HTMLized the doc (readme.htm)


In the following releases, I'll intend to implement the following features:

- Better cpu core (flags 3 and 5 emulation, bugfixes ...), maybe I'll switch to another z80 cpu core (mz80?raze?)
- Support for ZIP files
- AY-3-8910 emulation (I'm not sure if I have the required knowledge to include it, so if you can help me, you're more than welcome). I saw that MAME supports the soundchip but how can I include it in my DirectSound code ?

And in the (far) future, I could also add this:

- Plugins architecture
- Mutliple computers/consoles (z80 based) support
- Network support (first speccy emulator to support newtork play?)

Since I'm alone to code this emulator, I could spend some time to achieve these tasks.
So I'm searching for good win32/c++ programmers who have knowledge in the emulation developpment
process. Together, we could make out of Speccyal one of the best windows emulators.

Cu!

Stephane
 
 
Version V0.70 / 02-01-2000

Version V0.68 beta/ 02-11-1999
Version V0.67/ 31-10-1999

UPDATE

I didn't want to make a new version, so I included this bugfix in the current V0.67 version.

Planned in the next version: better z80 debugger support, and maybe a scanline emulation (your favorite border :) ), but I'm not sure at all if I'll be able to implement it, as all my efforts to do so had previously resulted in crashs.
 
Version V0.67/ 31-10-1999

Version V0.66/ 30-10-1999
Version V0.64b/27-09-1999
Version V0.64/ 26-09-1999
Version V0.63/ 26-09-1999
Version V0.62/ 26-09-1999
Version V0.61/ 2-09-1999
Version V0.6/ 31-08-1999
Version V0.55b/ 27-08-1999
Version V0.55 / 27-08-1999
Version V0.54 / 24-08-1999
Version V0.53b/ 23-08-1999

- First public release