Qaop – ZX Spectrum emulator

This is homepage of Qaop, a ZX Spectrum emulator. Qaop is a Java applet which can be embedded on a page, but can also be run as a simple application.

Qaop applet running Starquake. RUN

Qaop has been ported to JavaScript.
Play Manic Miner, Lode Runner, Blow Out, Chuckie Egg, 3D Tanx.


Binary: qaop.jar (45k)
Source: qaop-1.4.tar.gz ()

Qaop/Java is released under the GNU GPL licence. If you modify it, don't forget to put the sources on the web. It would be also nice if you link back to this page.


Shift,[Caps Shift caps shift
Ctrl,Alt,]Symbol Shift symbol shift
TabCaps ShiftSymbol Shift extended mode
EscCaps Shift1 edit
CtrlDelreset Spectrum
PgUp,PgDnchange sound volume
Pausetoggle pause

HTML example:

<applet name=qaop archive=qaop.jar code=Qaop width=320 height=256>
<param name=load value=demo.tap>
<param name=ay value=1>

(Don't forget to upload qaop.jar on the server)


You can customize emulator adding following parameters to applet tag:

loadsnapshot (Z80, SNA) or cartridge (ROM) to run, tape (TAP) to autoload.
tapetape image (TAP).
romalternative ROM image.
if1romInterface 1 ROM image. Device itself is not emulated.
focusgrab focus on start (default 1).
ayenable AY (default 0).
mutedno sound on start (default 0).
volumevolume level (0..100, default 40).
maskoverlay image (eg. tv.png).
arrowsredefine arrow keys.

You may specify file within ZIP using fragment identifier (eg. Otherwise first suitable file will be selected.

The "arrows" parameter consists of up to four chars representing keys (in LRUD order). Use lowercase letters for alpha keys, C [Caps Shift], S [Symbol Shift], _ [Space], E [Enter].


Applet element is extended with following methods accessible from JavaScript:

reset()reset Spectrum.
pause(y)pause (true or false).
load(file)load snapshot or tape.
tape(file)insert tape. (null to remove)
save()return data URL to current state (Z80 snapshot).
mute(y)silence (true or false).
get/set volume level (0..100).
state()emulator state
bit 0:paused, 1:loading, 2:muted.
mask(file)change overlay. (pass null to clear)

Mime types

Qaop recognizes following MIME types:

application/zipZIP archive
application/x.zx.romROM image
application/x.zx.tapTAP file
application/x.zx.snaSNA snapshot
application/x.zx.z80Z80 snapshot
(append .gz for gzipped variants; Content-Encoding is also recognized)

As a fallback, type recognition based on filename extension is used.