Higgins ZX Spectrum Emulator Home Page
Spectrum 48K/128K/+2 emulator is dedicated to provide you
the sense of a real Spectrum machine, as it was (and still is)
in real life. The stoutness and precision are our major objectives,
just like in Snooker.
We do not like lots of options, at least until implementation
is free from sensible deviations.
The emulator provides complete and precise emulation of:
- Z80 instruction set,
including undocumented instructions;
- Flags, including undocumented flags 3 and 5;
- MEMPTR internal register;
- Instruction timings;
- Memory and port access contentions,
including IR contentions;
- Floating bus for both odd and even ports;
- The snow effect;
- Multicolor border and screen-area effects;
- Issue 3 EAR socket fall delay at port 0xfe;
- 128K AY sound and screen switching;
- Unrefreshed memory discharge (48K only);
- Sound, keyboard and tape loading.
Known deviations are:
- The output method does not experience a TV interlace;
- There is currently no support for tape saving;
- It's not yet known if the R register got incremented
before or after ULA fetch subsequent video cell so
there may be a technical deviation from a
real machine while the visible matter of the snow effect
This software is a subject to the BSD-like binary license terms:
Copyright (C) 2008, Someone Higgins (firstname.lastname@example.org)
Redistribution and use without modification is
permitted provided that the following conditions are met:
- Redistributions must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
- Neither the name Someone Higgins nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.
This software is provided by the copyright holders and contributors
"as is" and any express or implied warranties, including, but not limited
to, the implied warranties of merchantability and fitness for a particular
purpose are disclaimed. In no event shall the foundation or contributors
be liable for any direct, indirect, incidental, special, exemplary, or
consequential damages (including, but not limited to, procurement of
substitute goods or services; loss of use, data, or profits; or business
interruption) however caused and on any theory of liability, whether in
contract, strict liability, or tort (including negligence or otherwise)
arising in any way out of the use of this software, even if advised of
the possibility of such damage.
Currently, only the Linux* binary versions available.
higgins810a3.tgz (140KB, 8.10 alpha 3)
To run the emulator just type
in command line and be sure the 48.rom
files are in the same directory. The program ignores any command-line options.
Generally, the emulator mimics the
user interface with that difference that Higgins use its own communication
console. The control keys recognized are the following:
- ESC Shows or hides the console
- F1 Produces a brief summary on console commands syntax
- F2 Saves current state to an (uncompressed) .z80 snapshot
- F3 Restores current state from a .z80 snapshot
- F4 Selects a .tzx file to be the current tape
- F5 Resets the machine
- Ctrl-F5 Changes machine model (also causes machine reset)
- F6 Pauses or unpauses the tape
- F10 Quits the emulator
When using the emulator please keep in mind that all these points are
powered by the Not Designed for Game Cheating(TM)* technology.
All letter and digit keys match their PC keyboard equivalents.
ENTER and SPACE work for themselves, left SHIFT works for CAPS SHIFT and
right SHIFT works for SYMBOL SHIFT.
- Some kinds of TZX blocks are not yet supported;
- The emulator uses video facilities intensively and thus makes
the host machine working under somewhat stress conditions.
We would like to thank people whose great work help us
make this software work properly (sometimes):
- Sean Young for his excellent "The
Undocumented Z80 Documented" paper,
which gave us a lot of information about how the processor
- Patrik Rak, Philip Kendall and Chris Smith for their
of internal ULA operation;
- Boo-Boo and Vladimir Kladov for their brave experiments
with the MEMPTR internal register.
Higgins 8.10 alpha 3:
- 128K/+2 machines supported, including shadow screen, AY sound, floating bus and
precise screen timings and contentions. There is the console command
"mode" introduced to control switching between the machines;
- Complete support for .z80 snapshot formats provided;
- The keyboard repetition state now only affects the emulator window itself;
- "Close window" event and SIGINT and SIGKILL signals handling added;
- Plain scan codes handling eliminated so preferred system layout should work properly;
- Machine reset now does not affect tape and console.
Higgins 8.10 alpha 2:
- Sound supported;
- Video refresh rate doubled;
- User console implemented;
- Unrefreshed memory discharge implemented;
- Issue 3 EAR socket fall delay (port 0xfe) implemented.
Higgins 8.10 alpha 1:
This page last updated 16 May, 2008.
* All trademarks are property of their owners.