[FAQ]
[Frequently Asked Questions] [Resources] [Emulators] [Where Is...?] [File Formats] [Technical Information] [Pinouts] [Acknowledgements]

SPECCY EMULATOR BENCHMARKS

This page last updated on 14 August 2001

[DOS] [Windows] [UNIX/Linux] [OS/2] [Mac] [Archie] [Amiga] [Psion 5] [Windows CE] [ST/TT] [Java] [Playstation] [Dreamcast] [QL] [Other Platforms]
[Benchmarks]

In order to gauge the speed of various emulators, the following tests have been carried out:

  1. 10 FOR I=16384 TO 23295
    20 POKE I,255
    30 NEXT I

    This is test of video access and the BASIC interpreter: note the remarkable influence of page swapping in 128K modes, especially if there is no EMS (eg Z80 and UKV).

    SimCoupe failed the test due to different video memory, and Sinbas gave 'B Integer out of range' because POKE is not implemented.

  2. 10 FOR I=16384 TO 23295
    30 NEXT I

    Removing the writes to video memory from the first test will give the speed of BASIC interpretation. As expected, Sinbas is the fastest here.

    SpectrEm-Dr failed due to a bug (it does not finish the FOR loop), whilst ZX Spectrum Simulator does not respond to the keyboard in BASIC.

  3. BEEP 10,0

    This is test of the intensive I/O operations required by BEEP. Nuclear ZX has an option to remap BEEP to PC timing. The sound is clean if the emulator is fast enough and nothing disturbs the tone. The emulators which produced a clean sound were ASp, Nuclear ZX, Roman ZX, SP, Spec32, Spectrum, Warajevo, WinZ80, ZX (Orro), ZX (Rindt & Brukner) and ZX32. ZX32 and ZX (Orro) have a significant delay before the start of the sound.

    Once again, ZX Spectrum Simulator does not respond to the keyboard in BASIC.

  4. PAUSE 500

    This is test of interrupt system. If the result is close to 10 seconds, even if other results are not correct, then emulator is using hardware interrupts.

    ZX Spectrum Simulator agains fails because of a lack of keyboard input. Spectrum fails when in 'no screen' mode because it is impossible to determine when the test is over. SpectrEm-Dr quits too fast in overclock mode to be measured.

  5. Start the first level of Manic Miner and time how long it takes for Willy to lose all his air.

    This is the only non-BASIC test. Note the influence of fast LDIR on Z80 and Sinclair. There is no difference between 128 and 128/48 modes here.

    Various emulators failed this test as they do not provide sufficient facilities for loading games, whilst Sinbas and Spectrum 48 do not do Z80 emulation, and Spectrum in 'no screen' mode again provides no clue that the test is over.

The various modes used are:

Many emulators have options that may impact on perfomance, of which some combinations have been tested.

RESULTS

Note: All tests are done with a hand watch, so the results could be shorter by up to 0.3s.

Emulator Test machine
Mode Options Video FOR BEEP PAUSE Manic Miner
  ZX Spectrum
128/48   00:51.0 00:30.2 00:10.0 00:10.0 N/A
ASp v0.69 68060 64MHz not scaled
48   00:49.5 00:29.0 00:10.0 N/A N/A
E++ v1.03 486SX 33MHz
48   04:59.8 02:56.1 00:58.2 00:40.5 10:17.0
Finspe 1.10 486SX 33MHz
48   02:50.1 01:39.5 00:34.3 00:32.0 07:13.0
JASPE 990918 486SX 33MHz
48   01:30.0 00:52.3 00:19.9 00:29.5 02:53.1
JPP 486SX 33MHz
48 Default JPP 00:13.1 00:07.5 00:03.1 00:10.4 00:16.6
48 PJPP 100% 00:49.9 00:29.5 00:10.3 00:10.3 02:07.7
MAZE 0.23 486SX 33MHz
48   02:02.3 01:20.0 00:27.8 00:21.7 N/A
MultiMachine v1.3b 486SX 33MHz
48 1x1 screen, low rendering 05:04.0 03:00.2 00:50.0 00:56.0 12:12.3
128 1x1 screen, low rendering 07:41.5 04:26.0 00:51.0 00:57.0 12:06.3
48 1x1 screen, high rendering 10:42.8 06:15.0 01:55.3 02:01.5 27:52.5
Nuclear ZX v3.69 486SX 33MHz
48 Standard mode 00:13.0 00:07.8 00:03.0 00:10.3 00:32.4
48 R Register emulation 00:17.8 00:10.5 00:03.9 00:10.2 00:34.9
48 Slow factor 21 00:50.4 00:29.4 00:11.5 00:10.3 00:58.1
48 Hercules graphic mode 8 00:48.7 00:28.3 00:11.5 00:10.3 00:56.2
48 BEEP PC Mode 00:13.0 00:07.8 00:10.3 00:10.3 00:32.4
PASMulator 0.22 486SX 33MHz
48   06:21.0 03:47.7 01:02.1 01:29.8 N/A
R80 v0.21 486SX 33MHz
48 9 frames 04:13.8 02:33.2 00:37.8 00:36.9 10:06.8
128 9 frames 06:47.9 03:57.4 00:39.7 00:39.8 11:36.2
128/48 9 frames 04:30.2 02:40.7 00:39.1 00:39.5 11:36.2
Roman ZX 486SX 33MHz
48   00:21.0 00:12.3 00:04.0 00:10.3 01:50.4
SimCoupe 0.78 486SX 33MHz
Coupé   N/A 00:54.9 01:56.0 03:15.0 N/A
Sinbas 1.1 486SX 33MHz
BASIC   N/A 00:02.1 00:10.3 00:10.2 N/A
Sinclair v3.00 486SX 33MHz
48 Retardo 45 00:50.8 00:29.0 00:10.6 00:10.6 01:32.4
48 Retardo 0 00:22.7 00:13.2 00:04.5 00:10.4 00:49.3
48 Fast LDIR, retardo 0 00:22.2 00:13.0 00:04.5 00:10.4 00:12.0
128 Retardo 0 01:35.0 00:53.4 00:04.5 00:10.4 00:56.0
128/48 Retardo 0 00:22.7 00:13.3 00:04.5 00:10.5 00:55.6
SP 486SX 33MHz
48 CGA Screen 00:13.1 00:07.8 00:03.0 00:10.3 00:46.2
SP48 486SX 33MHz
48   00:30.1 00:17.8 00:05.8 00:02.8 01:10.3
SPEC v1.4 486SX 33MHz
48 100% 03:46.6 02:13.0 00:48.7 00:41.2 09:16.3
Spec256 v1.2 486SX 33MHz
48 100% original color 03:24.2 02:04.0 00:33.2 00:12.0 04:16.7
Spec32 486SX 33MHz
48   01:11.8 00:37.7 00:14.0 00:18.7 02:33.3
Speccy v0.21 486SX 33MHz
48 Delay 7 01:11.7 00:41.5 00:15.4 00:15.3 02:18.9
48 Delay 0 00:46.0 00:26.8 00:09.8 00:09.4 01:42.3
Speccyal v0.67 Scaled from Pentium 100
48   09:52.0 05:35.0 01:41.0 02:12.0 14:28.0
Spectre v0.4 486SX 33MHz
48 Max speed SoundBlaster 07:57.3 04:19.0 01:31.5 01:44.3 15:07.0
SpecX v1.12 486SX 33MHz
48 Max speed with sound 03:44.7 02:11.2 00:47.8 00:40.7 09:20.3
48 Max speed without sound 03:18.0 01:55.7 00:41.9 00:35.9 08:04.0
SpectrEm v0.9 486SX 33MHz
48 Default speed 05:51.7 03:23.9 01:10.2 00:29.0 13:21.3
SpectrEm Dr-v0.7 486SX 33MHz
48 Overclock 3.5x20 00:55.3 N/A 00:13.5 N/A 01:30.0
48 Overclock 3.5x1 03:04.0 N/A 00:30.5 00:28.5 06:36.0
SPECTRUM 486SX 33MHz
48 Spectrum 00:28.1 00:16.5 00:06.0 00:10.2 01:11.6
48 Spec386 00:27.0 00:15.8 00:05.7 00:10.2 01:09.0
48 VGASPEC 00:23.7 00:14.0 00:04.8 00:07.6 01:02.0
Spectrum 48 C64
48   01:23.0 00:51.0 00:10.0 00:10.0 N/A
Spectrum v1.7 68030 50MHz
48   00:40.0 00:20.0 00:10.0 N/A N/A
Spectrum128 Scaled from 68030 40MHz
128   08:32.0 04:17.0 N/A N/A N/A
The Spectrum Emulator 486SX 33MHz
48 Default 00:43.1 00:24.5 00:10.4 00:05.3 00:34.9
48 No attributes, no registers 00:33.6 00:19.4 00:08.0 00:03.1 00:29.3
48 No screen, no attr, no regs 00:22.0 00:13.6 00:05.6 N/A N/A
Speculator 68030 50MHz
48   00:35.2 00:20.0 00:10.0 N/A N/A
SPM v1.03 486SX 33MHz
128/48   00:28.0 00:16.8 00:05.5 00:10.7 N/A
Suzanne's Emulator v0.01 486SX 33MHz
48   19:32.4 11:27.2 03:25.5 00:43.9 33:15.0
UKV v1.2 fix 2 486SX 33MHz
128/48 No matter for real delay 00:18.5 00:10.5 00:02.9 00:10.2 02:49.0
128 Without EMS 14:13.8 07:50.0 00:03.0 00:10.6 02:49.0
128 With EMS (DOS prompt) 01:26.9 00:48.7 00:03.0 00:10.3 02:58
Warajevo v2.51 486SX 33MHz
48 Max speed mode 00:22.7 00:11.2 00:04.2 00:05.0 00:56.0
48 800% speed 00:26.3 00:13.5 00:04.8 00:05.8 01:04.7
48 100% with high color resolution 00:50.2 00:29.6 00:10.3 00:10.1 02:14.7
48 100% without HCR 00:50.4 00:29.4 00:10.3 00:10.2 02:09.1
48 800% using Hercules card 00:26.5 00:13.5 00:04.9 00:05.9 01:06.2
48 Max speed fast BASIC 00:21.0 00:10.5 00:04.2 00:05.0 00:55.7
128 800% 00:30.2 00:16.2 00:05.0 00:06.1 01:09.2
128/48 800% 00:26.9 00:14.2 00:04.9 00:05.8 01:09.2
2068 800% 00:29.8 00:17.3 00:05.0 00:05.6 01:08.0
48 (Version 1.5) 00:14.7 00:08.1 00:03.0 00:10.2 00:21.5
128 100%, HCR, digital sound 01:13.5 00:42.5 00:10.3 00:11.0 02:12.1
WinXZX v2.1.3 beta 486SX 33MHz
48 Spectrum speed 02:17.4 01:20.6 00:28.1 00:28.0 05:53.3
48 Fastest speed, refresh rate 2 01:51.2 01:02.2 00:17.7 00:26.1 03:47.2
48 Fastest speed, refresh rate 20 01:48.0 01:01.8 00:18.1 00:26.4 03:25.3
128 Fastest speed, refresh rate 2 02:37.4 01:26.8 00:17.9 00:26.4 03:44.4
+3 Fastest speed, refresh rate 2 02:39.2 01:27.7 00:17.4 00:26.0 N/A
WinZ80 v4.00 486SX 33MHz
48 100% speed, normal video 00:50.1 00:29.4 00:10.5 00:10.1 02:09.0
48 Maximum speed, no coppering 00:21.0 00:11.0 00:07.3 00:02.4 01:31.1
128 100% speed, normal video 03:02.2 01:41.0 00:10.9 00:10.3 02:25.7
128/48 100% speed, normal video 00:50.9 00:29.5 00:10.4 00:10.3 02:25.7
WSpecEm v1.31/v1.4b 486SX 33MHz
48 1x1 screen size, frame rate 3 02:22.5 00:42.5 00:11.5 00:11.0 07:25.0
48 2x2 screen size, frame rate 3 02:11.0 00:42.5 00:11.3 00:11.0 06:57.0
48 1x1 screen size, frame rate 50 01:16.2 00:44.0 00:11.5 00:11.5 04:40.0
48 Size 1x1, rate 3, delay 200 03:06.2 01:07.6 00:20.7 00:11.7 09:20.0
x128 v0.92 486SX 33MHz
48 Adlib, 100% speed 01:11.0 00:42.0 00:11.7 00:09.5 02:43.1
48 Adlib, 180%, skip 7, slow 0, delay 0 00:47.8 00:28.3 00:07.5 00:05.0 01:42.7
128 Adlib, 100% 01:48.0 01:02.4 00:11.7 00:09.7 02:41.7
128/48 Adlib, 100% 01:11.6 00:42.1 00:11.7 00:09.7 02:41.7
+3 Adlib, 100% 01:51.9 01:04.2 00:11.7 00:09.8 N/A
128 SAOM, 100% 03:04.3 01:46.7 00:21.3 00:18.6 04:49.0
48 Adlib, overclock 10, 6 MHz 00:48.9 00:29.0 00:07.6 00:15.0 01:46.3
48 Adlib, XMode 01:24.4 00:49.7 00:14.5 00:12.4 03:18.0
xz80 Sparc 2
48 Full speed 00:40.4 00:22.3 00:07.9 N/A N/A
48 Normal speed 00:49.7 00:29.6 00:10.6 N/A N/A
YaSE v0.6 486SX 33MHz
128/48   05:44.0 03:30.2 00:45.4 01:04.3 N/A
Z80 v4.00 486SX 33MHz
128 EMS, max speed, fast VGA 01:52.0 01:02.5 00:04.7 00:08.6 00:21.8
48 Max speed, VGA mode 0x13 00:20.0 00:11.7 00:03.3 00:02.7 00:50.9
48 Max speed, fast VGA 00:18.6 00:11.2 00:03.0 00:02.7 00:47.6
48 Max speed, Hercules 00:19.6 00:11.7 00:03.5 00:03.1 00:50.4
48 Max speed, R register on 00:21.8 00:13.0 00:03.5 00:03.4 00:49.4
48 Max speed, Fast LDIR 00:18.1 00:10.7 00:03.1 00:02.8 00:17.3
48 Max speed, R register, high colour 00:30.3 00:17.9 00:05.7 00:10.4 01:09.2
128 Max speed, no EMS 07:40.9 04:36.0 00:03.3 00:02.8 00:47.8
128/48 Max speed, no EMS 00:18.7 00:11.1 00:03.0 00:02.8 00:47.8
48 100%, R register, high colour 00:49.3 00:28.9 00:09.8 00:14.3 02:02.3
48 100%, no R, no high colour res 00:49.6 00:29.2 00:09.8 00:10.2 02:15.7
Z80Stealth v0.079 486SX 33MHz
128/48 Z80Adlib 06:32.0 03:47.1 01:15.1 01:58.0 10:40.0
128/48 Z80SB 05:46.0 03:22.5 00:54.5 01:04.6 10:09.0
128 Z80SB 08:08.0 04:40.0 00:55.0 01:05.0 10:09.0
Z80 TR DOS 2.02 486SX 33MHz
128 Max speed EMS 02:02.0 01:08.6 00:06.7 00:13.1 00:24.2
ZX v0.51 Beta 486SX 33MHz
48 25 Hz 1x1 Std Sound 100% 03:50.6 02:17.7 00:43.5 00:56.5 07:43.3
48 25 Hz 1x1 No Sound 100% 03:34.9 02:05.8 00:39.8 00:53.3 07:33.0
48 25 Hz 1x1 StdSnd 100% HiSync 03:48.3 02:13.4 00:42.2 00:56.4 08:04.6
48 25 Hz 1x1 Std Sound MaxSpeed 02:04.9 01:13.2 00:38.6 00:41.2 04:08.0
ZX 486SX 33MHz
48   00:16.8 00:10.2 00:02.3 00:10.3 00:22.2
ZXAM 68030 50MHz
48 Full speed 00:37.8 00:22.0 00:00.4 N/A N/A
48 Normal speed 00:48.5 00:28.0 00:10.0 N/A N/A
ZX32 v1.03.98.0622 486SX 33MHz
48 Normal size, fast, no sound 01:16.6 00:45.6 00:11.2 00:10.2 02:09.0
48 Normal size, fast, sound 01:30.2 00:53.8 00:14.6 00:12.3 02:35.2
48 Full screen, fast, no sound 02:23.1 01:24.4 00:25.7 00:32.3 06:02.5
128 Normal size, fast, no sound 02:06.2 01:16.4 00:16.5 00:11.1 02:40.6
128/48 Normal size, fast, no sound 01:33.2 00:58.1 00:13.5 00:11.4 02:40.6
+3 Normal size, fast, no sound 02:09.5 01:20.5 00:14.8 00:13.1 N/A
ZX Emulator v0.33 486SX 33MHz
128/48   05:45.0 03:16.5 01:02.5 01:16.5 11:24.6
ZX Jam v1.12 486SX 33MHz
48 51Hz smooth 12:21.5 07:15.5 02:30.9 01:40.0 30:11.6
ZXSpectr 2.0 486SX 33MHz
128/48 100% 01:08.6 00:40.4 00:13.8 00:25.5 02:05.0
48 100% 01:06.6 00:39.1 00:13.9 00:25.2 02:05.0
+3 100% 08:53.2 04:67.7 00:14.5 00:29.2 N/A
ZX Spectrum 128K v3.05 486SX 33MHz
128/48 Normal speed 00:39.3 00:24.3 00:07.5 00:10.3 02:18.2
128/48 Max speed 00:33.4 00:19.8 00:06.6 00:10.3 02:18.5
128 Normal speed 00:59.6 00:34.3 00:07.8 00:10.4 02:18.2
128/48 Slow delay 35 00:50.1 00:29.0 00:10.0 00:10.3 02:41.2
ZX Spectrum Emulator v1.0s 486SX 33MHz
48   01:14.8 00:43.0 00:18.7 00:07.5 03:20.5
ZX Spectrum Simulator v1.02 486SX 33MHz
48 Max speed, small screen 00:54.4 N/A N/A N/A 00:45.1
48 Max speed, large screen 03:04.1 N/A N/A N/A 02:34.1


HARDWARE USED

All DOS/Windows emulators were tested on a 33MHz U5 486SX with 16Mb RAM and a Trident TVGA 8900 video card running Windows 95 OSR 2 with Direct X 6.1 and WinG. All DOS and DOS/32 emulators were tested by rebooting into DOS mode without drivers (except if they required EMS) and then started from the command prompt. The only exception to this is Speccyal, which required a more powerful video card. This was tested on a Pentium 100, and the results scaled to the 486 speed. R80 and Spectre both required a coprocessor emulator.

Most of the Amiga emulators were tested on an A1200 with a 50MHz 68030 and 10Mb of RAM. The exceptions are Spectrum128 which was tested on a 40MHz 68030 with 10Mb of RAM, and then scaled (simply by a factor of 0.8), and ASp which was run on a 64MHz 68060 and has not been scaled.

xz80 was tested on a Sparc 2.

No attempt has been made to scale results between different machines tested.

The 486 is obsolete, but was chosen for the following reasons:

MACHINE SPEEDS

To see influence of the target machine on speed, Z80 v4.00 and Warajevo 2.51 were tested on a variety of machines. These emulators were chosen as they are two of the best emulators for clean DOS and executable on all machines. The results for other emulators can be extrapolated, and you can see if your computer can reach true Spectrum speed. Z80 is tested using the -xt -z8000 options (make it as fast as possible and reduce RAM requirement); Warajevo is tested with SPEC48 /%MAX option. The estimated speed reported by Z80 is given in brackets.

Test machine Emulator Video FOR BEEP PAUSE Manic Miner
286-16 TSENG VGAZ80 (82%)
Warajevo
01:07.4
01:42.2
00:38.8
00:54.3
00:16.4
00:22.1
00:17.0
00:29.1
03:28.8
04:56.9
386SX-25
Chicony laptop NB 5625
Z80 (117%)
Warajevo
00:47.1
01:18.0
00:27.5
00:40.6
00:11.4
00:16.0
00:11.3
00:20.7
02:30.0
03:59.8
486SX-33 Trident VGA 8900Z80 (387%)
Warajevo
00:18.6
00:22.7
00:11.2
00:11.2
00:03.0
00:04.2
00:02.7
00:05.0
00:47.6
00:56.0
486DX4-100
 
Z80 (1059%)
Warajevo
00:06.0
00:08.4
00:03.6
00:04.2
00:01.4
00:01.9
N/A
N/A
00:22.1
00:28.1
Pentium-100 Cirrus VGA 5446Z80 (1891%)
Warajevo
00:05.8
00:06.2
00:03.6
00:03.3
00:00.8
00:01.2
N/A
N/A
00:11.1
00:15.8
PentiumPro-233
Compaq Deskpro 6000
Z80 (3301%)
Warajevo
00:02.6
00:02.9
00:01.6
00:01.7
00:00.6
00:00.7
N/A
N/A
00:05.8
00:06.6
Pentium MMX 200
Micron Millenia LXE
Z80 (3737%)
Warajevo
00:02.8
00:03.0
00:01.8
00:01.6
00:00.4
00:00.6
N/A
N/A
00:05.6
00:08.1
Pentium II 266
Micron Netframe LV 2000
Z80 (3670%)
Warajevo
00:02.5
00:02.7
00:01.6
00:01.4
00:00.5
00:00.6
N/A
N/A
00:05.7
00:05.9
Pentium Celeron 400
Compaq Deskpro
Z80 (5825%)
Warajevo
00:01.4
00:01.8
00:01.0
00:01.0
00:00.3
00:00.4
N/A
N/A
00:03.9
00:04.4
Pentium III 500
Viper AGP 770
Micron Millenia
Z80 (6914%)
Warajevo
00:01.3
00:01.5
00:00.8
00:00.8
00:00.2
00:00.3
N/A
N/A
00:03.4
00:03.5

Results for an XT, a 386DX and a 486DX would be appreciated.

INFLUENCES ON EMULATOR SPEED

Thanks for this page should be sent to Samir Ribic, who tested all the DOS/Windows emulators, all the PCs and wrote most of the text. Credit is also due to Ian Collier, Rob Darke, Joe Mackay and Chris Young.

-----

This FAQ is maintained by the Cabal; distribution is permitted only under the conditions specified in the copyright notice.
Primary site for this FAQ: http://www.srcf.ucam.org/~pak21/cssfaq/index.html.