FBZX
A ZX Spectrum emulator for FrameBuffer


DISCLAIMER

FBZX is distributed under the GPL license, which means that is distributed "as is", without warraty of any kind. To know more details, read the file COPYING.

This doesn't apply completely to the Z80 core, which is copyrighted by Marat Fayzullin. For details about distribution of this part, please, visit Marat's homepage (http://fms.komkon.org/EMUL8). The terms for the Z80 code (copied and pasted from Marat's homepage) are:

    * You can use this software for any non-profit purposes, as long as you make a proper reference to me (Marat) in the documentation, or the program itself.
    * You can't use any of this software to gain profit. This includes selling it, using it for commercial projects, putting it onto CDROMs, etc. If you want to use my (Marat's) code for a commercial project, please, contact me (Marat) to negotiate the terms.
    * You can't distribute this software yourself, by putting it onto your own WWW or FTP sites, even if they are non-profit. It is ok to have it as a part of another project though, such as an emulator or utility program.
* If you use any of my (Marat's) code for your own project, please, let me (Marat) know about it: it is always nice to know that your work is needed. 


WHAT IS FBZX?

FBZX is a Sinclair ZX Spectrum emulator, designed to work in FrameBuffer under Linux. It uses the SDL library, so it should be easily ported to other architectures. Please, read the file PORTS to know more details about this.

FBZX is based in the great Z80 emulator created by Marat Fayzullin (http://fms.komkon.org), but with some little modifications. Is possible that theses modifications will be added in new versions of this emulator, but to avoid problems, I strongly recomend to use only the files supplied in FBZX.

To work with FBZX you need:

	-A FrameBuffer-capable graphic card
	-A Linux system with FrameBuffer configured
	-Sound Card (it's a must, sorry).

In order to get the maximum performance, your FrameBuffer driver must allow to change to 640x480 resolution in 8 bits. Only the VESAFB driver can have problems with this fact, so if you use this driver, be sure to boot your Linux box in 640x480 in 8 bits. If you don't do this, SDL will emulate that mode, resulting in a high performance penalty. If you use an specific Framebuffer driver, just don't worry: FBZX will automagically change the graphic mode when starts.


WHAT CAPABILITIES HAVE FBZX?

FBZX can emulate the original 48K spectrum (issue 2 and issue 3), the original 128K, the Amstrad +2 and the Amstrad +2A.

The screen and the sound are emulated in a very acuracy way, so nearly all the sound and screen effects should work in this emulator.

128K sound is emulated too, and can be disabled in 128K mode in order to save CPU time procesing, if your computer is slow.

FBZX can handle Z80 snapshots (both load and save). In a future, more snapshot formats will be supported.

FBZX can handle TAP files (load only), and have a fast-load mode that allows to load in milliseconds a TAP file. This fast-load mode is enabled by default, but can be disabled.

FBZX can emulate the Kempston, Cursor, Sinclair 1 and Sinclair 2 joysticks, with the cursor keys. Fire is emulated with ALT key.


HOW DO I USE FBZX?

To run FBZX just type

	fbzx

from a console.

FBZX should work in X too, but it would run slower due to the penalty of the X Window System. So preferently run always FBZX from a console.

The PC keyboard works exactly like the Spectrum keyboard (but only numbers and letters). ENTER key is Return, CAPS SHIFT is in both Shift keys, and SYMBOL SHIFT is in both Control keys.

Whit ESC you exit FBZX.

F1 shows a help page with all the available keys.

F2 sends you to a menu where you can load and save snapshots.

F3 sends you to a menu where you can choose a TAP file, rewind it, and choose if you want normal speed or fast speed for loading.

F4 send you to a menu where you can choose the emulation type you want (48K, 128K, +2 or +2A), the joystick and enable or disable the AY emulation.

F5 stops the tape when normal speed is selected. With fast speed, it does nothing.

F6 palys the tape when normal speed is selected. With fast speed, it does nothing.

F10 resets the spectrum.

F11 is volume down.

F12 is volume up.


HOW DO I CHOOSE A FILE WITH THE TAP OR Z80 SELECTOR?

You can choose a file just by moving the white bar with the cursor keys. You can use also the RePag and AvPag to jump over 12 positions.

The files are in white ink, the directories in green ink, and the upper directory are the two red dots.


HOW WORKS THE FAST SPEED LOAD FOR TAP FILES?

Just type LOAD "" in the emulator (or choose the TAPE LOADER option in the 128K menu) and the tape will automagically load. This only works with programs that uses the ROM to load all the blocks. If you have a TAP file with a program that uses a custom routine to load the blocks, then you must use the NORMAL SPEED. To do this, press F3 to go to the TAP menu and choose NORMAL SPEED. Then return to the emulation (with ESC) and use LOAD "" (or the TAPE LOADER option). Finally, put the tape in Play with F6. You can stop the tape with F5 and start it again with F6 as many times you want.

When the tape ends, is automatically stoped and rewinded. You can rewind the tape when you want with the right option in the TAP menu (F3 key).

In a near future a block manager will be added, in order to allow the user to choose a block into the TAP file (thinking in multistage games).
