1fuse(1) Emulators fuse(1)
2
3
4
6 fuse - Sinclair ZX Spectrum emulator
7
9 fuse [options]
11 Fuse is a Sinclair ZX Spectrum emulator. It supports several models
12 (including the 128), with quite faithful emulation of the display and
13 sound.
14
15 The emulator can load any of the formats supported by libspectrum(3) -
16 this includes Z80, SNA and SZX snapshots, and TAP and TZX virtual-tape
17 files. Saving to SZX, Z80 and SNA snapshots and TZX and TAP tape files
18 is supported. The SLT extension to the Z80 format is partly supported
19 (enough for multi-load games); however, loading of the old DAT-file
20 variant is not. DSK, UDI, FDI, TR0, SDF, MGT, IMG, SAD, TRD, SCL and
21 OPD disk images are supported when a disk interface is being emulated,
22 including the integrated disk drives on +3, Pentagon or Scorpion
23 machines as well as the +D, Opus Discovery and Beta 128 interfaces. DCK
24 cartridge images are supported when emulating a Timex 2068 variant.
25 Interface II ROM cartridges are also supported.
26
27 Finally, there is also support for reading and writing the RZX input
28 recording format.
29
30 See the COMPRESSED FILES section for details on reading files com‐
31 pressed with bzip2(3) or gzip(3).
32
34 --accelerate-loader
35 Specify whether Fuse should attempt to accelerate tape loaders
36 by "short circuiting" the loading loop. This will in general
37 speed up loading, but may cause some loaders to fail. (Enabled
38 by default, but you can use `--no-accelerate-loader' to dis‐
39 able). The same as the General Options dialog's Accelerate load‐
40 ers option.
41
42 --aspect-hint
43 Specify whether the GTK+ and Xlib user interfaces should `hint'
44 to the window manager about the preferred aspect ratio for the
45 graphics window, thus preventing resizing to non-square sizes
46 which lead to Fuse not displaying correctly. This option has
47 been observed to cause problems with some window managers when
48 using the GTK+ UI which can prevent the window from being
49 resized or moved at all. (Enabled by default, but you can use
50 `--no-aspect-hint' to disable). See also the
51 `--strict-aspect-hint' option.
52
53 --autosave-settings
54 Specify whether Fuse's current settings should be automatically
55 saved on exit. The same as the General Options dialog's Auto-
56 save settings option.
57
58 --auto-load
59 Specify whether tape and disk files should be automatically
60 loaded when they are opened using the File, Open... menu
61 option. (Enabled by default, but you can use `--no-auto-load' to
62 disable). Same as the General Options dialog's Auto-load media
63 option.
64
65 --beta128
66 Emulate a Beta 128 interface. Same as the Peripherals Options
67 dialog's Beta 128 interface option.
68
69 --betadisk Specify a Betadisk image to load.
70
71 --bw-tv
72 Specify whether the display should simulate a colour or black
73 and white television. This option is effective under the GTK+,
74 Xlib and SDL user interfaces: the others will always simulate a
75 colour TV. The same as the General Options dialog's Black and
76 white TV option.
77
78 --competition-code code
79 Specify the code to be written to competition mode RZX files.
80 The same as the RZX Options dialog's Competition code option.
81
82 --competition-mode
83 Specify whether input recordings should be made in `competition
84 mode'. The same as the RZX Options dialog's Competition mode
85 option.
86
87 --compress-rzx
88 Specify whether RZX files should be written out compressed.
89 (Enabled by default, but you can use `--no-compress-rzx' to dis‐
90 able). Same as the RZX Options dialog's Compress RZX data
91 option.
92
93 --confirm-actions
94 Specify whether `dangerous' actions (those which could cause
95 data loss, for example resetting the Spectrum) require confirma‐
96 tion before occurring. (Enabled by default, but you can use
97 `--no-confirm-actions' to disable). This option is effective
98 under the GTK+ UI, and is the same as the General Options dia‐
99 log's Confirm actions option.
100
101 --debugger-command string
102 Specify a debugger command to be run before emulator startup.
103 This can be used to set breakpoints or the like. Currently, this
104 is the only method to input multi-line debugger commands. (See
105 the MONITOR/DEBUGGER section for more information).
106
107 --detect-loader
108 Specify whether Fuse should attempt to detect when the tape is
109 being accessed and start and stop the virtual tape playing auto‐
110 matically. (Enabled by default, but you can use
111 `--no-detect-loader' to disable). Same as the General Options
112 dialog's Detect loaders option.
113
114 --divide
115 Emulate the DivIDE interface. The same as the Peripherals
116 Options dialog's DivIDE interface option.
117
118 --divide-masterfile file
119 --divide-slavefile file
120 Specify an IDE image to be loaded into the DivIDE's emulated
121 master and slave drives respectively.
122
123 --divide-write-protect
124 Specify that the emulated DivIDE's write protect jumper should
125 be considered set. The same as the Peripherals Options dialog's
126 DivIDE write protect option.
127
128 --dock file
129 Insert the specified file into the emulated Timex 2068 variant
130 dock; also select the TC2068 on startup if available.
131
132 --doublescan-mode
133 Specify the the framebuffer UI should attempt to use a double
134 scan mode (where each line is displayed twice).
135
136 --embed-snapshot
137 Specify whether a snapshot should be embedded in an RZX file
138 when recording is started from an existing snapshot. (Enabled by
139 default, but you can use `--no-embed-snapshot' to disable). Same
140 as the RZX Options dialog's Always embed snapshot option.
141
142 --fastload
143 Specify whether Fuse should run at the fastest possible speed
144 when the virtual tape is playing. (Enabled by default, but you
145 can use `--no-fastload' to disable). The same as the General
146 Options dialog's Fastloading option.
147
148 -f frequency
149 --sound-freq frequency
150 Specify what frequency Fuse should use for the sound device, the
151 default is 32 kHz, but some devices only support a single fre‐
152 quency or a limited range (e.g. 48 kHz or up to 22 kHz).
153
154 --fuller
155 Emulate a Fuller Box interface. Same as the Peripherals Options
156 dialog's Fuller Box option.
157
158 --full-screen
159 Specify whether Fuse should run in full screen mode. This
160 option is effective only under the SDL UI.
161
162 -g filter
163 --graphics-filter mode
164 Specify which graphics filter to use if available. The default
165 is normal, which uses no filtering. The available options are
166 2x, 2xsai, 3x, advmame2x, advmame3x, dotmatrix, half, halfskip,
167 normal, super2xsai, supereagle, timex15x, timextv, tv2x, paltv,
168 paltv2x, and paltv3x. See the GRAPHICS FILTERS section for more
169 details.
170
171 --graphicsfile file
172 Set the filename used for graphical output from the emulated ZX
173 printer. See the PRINTER EMULATION section for more details.
174
175 -h
176 --help
177 Give brief usage help, listing available options.
178
179 --if2cart file
180 Insert the specified file into the emulated Interface II.
181
182 --interface1
183 Emulate a Sinclair Interface I. Same as the Peripherals Options
184 dialog's Interface I option.
185
186 --interface2
187 Emulate a Sinclair Interface II. (Enabled by default, but you
188 can use `--no-interface2' to disable). Same as the Peripherals
189 Options dialog's Interface II option.
190
191 --issue2
192 Emulate an issue 2 keyboard. Same as the General Options dia‐
193 log's Issue 2 keyboard option.
194
195 -j device
196 --joystick-1 device
197 Read from device to emulate the first joystick. Fuse will use
198 either `/dev/input/js0' or `/dev/js0' by default.
199
200 --joystick-2 device
201 As for --joystick-1 but for the second joystick; the default
202 here is either `/dev/input/js1' or `/dev/js1'.
203
204 --joystick-prompt
205 If this option is specified, Fuse Fuse will prompt you which
206 form of joystick emulation you wish to use when loading a snap‐
207 shot. No prompt will be issued if the configuration in the snap‐
208 shot matches what you are currently using. The same as the Gen‐
209 eral Options dialog's Snap joystick prompt option.
210
211 --kempston
212 Emulate a Kempston joystick. Same as the Peripherals Options
213 dialog's Kempston joystick option.
214
215 --kempston-mouse
216 Emulate a Kempston mouse. Same as the Peripherals Options dia‐
217 log's Kempston mouse option.
218
219 --late-timings
220 It has been observed that some real Spectrums run such that the
221 screen is rendered one tstate later than on other real hardware.
222 This option specifies that Fuse should emulate such a machine.
223 Same as the General Options dialog's Late timings option.
224
225 --loading-sound
226 Specify whether the sound made while tapes are loading should be
227 emulated. (Enabled by default, but you can use `--no-load‐
228 ing-sound' to disable). Same as the Sound Options dialog's Load‐
229 ing sound option.
230
231 -m type
232 --machine type
233 Specify machine type to emulate initially. The default is 48, a
234 48K Spectrum. The available options are 16, 48, 48_ntsc, 128,
235 plus2, plus2a, plus3, 2048, 2068, ts2068, pentagon, pentagon512,
236 pentagon1024, scorpion and se.
237
238 --melodik
239 Emulate a Melodik AY interface for 16/48k Spectums. Same as the
240 Peripherals Options dialog's Melodik option.
241
242 --microdrive-file file
243 --microdrive-2-file file
244 --microdrive-3-file file
245 --microdrive-4-file file
246 --microdrive-5-file file
247 --microdrive-6-file file
248 --microdrive-7-file file
249 --microdrive-8-file file
250 Specify Interface I Microdrive cartridge files to open.
251
252 --opus
253 Emulate a Opus Discovery interface. Same as the Peripherals
254 Options dialog's Opus Discovery interface option.
255
256 --opusdisk file
257 Insert the specified file into the emulated Opus Discovery's
258 drive 1.
259
260 -p file
261 --playback file
262 Specify an RZX file to begin playback from.
263
264 --paltv2x
265 Specify whether the PAL TV 2x and PAL TV 3x scalers should also
266 produce scanlines along the lines of the TV 2x and Timex TV
267 scalers. The same as the General Options dialog's PAL-TV use
268 TV2x effect option.
269
270 --plus3disk file
271 Insert the specified file into the emulated +3's A: drive; also
272 select the +3 on startup if available.
273
274 --plus3-detect-speedlock
275 Specify whether the +3 drives try to detect Speedlock protected
276 disks, and emulate 'weak' sectors. If the disk image file (EDSK
277 or UDI) contains weak sector data, than Speedlock detection is
278 automatically omitted. See also the WEAK DISK DATA section.
279 Same as the Disk Options dialog's +3 Detect Speedlock option.
280
281 --plusd
282 Emulate a +D interface. Same as the Peripherals Options dialog's
283 +D interface option.
284
285 --plusddisk file
286 Insert the specified file into the emulated +D's drive 1.
287
288 --printer
289 Specify whether the emulation should include a printer. Same as
290 the Peripherals Options dialog's Emulate printers option.
291
292 --rate frame
293 Specify the frame rate, the ratio of spectrum frame updates to
294 real frame updates. Same as the General Options dialog's Frame
295 rate option.
296
297 -r file
298 --record file
299 Specify an RZX file to begin recording to.
300
301 --rom-16 file
302 --rom-48 file
303 --rom-128-0 file
304 --rom-128-1 file
305 --rom-plus2-0 file
306 --rom-plus2-1 file
307 --rom-plus2a-0 file
308 --rom-plus2a-1 file
309 --rom-plus2a-2 file
310 --rom-plus2a-3 file
311 --rom-plus3-0 file
312 --rom-plus3-1 file
313 --rom-plus3-2 file
314 --rom-plus3-3 file
315 --rom-plus3e-0 file
316 --rom-plus3e-1 file
317 --rom-plus3e-2 file
318 --rom-plus3e-3 file
319 --rom-tc2048 file
320 --rom-tc2068-0 file
321 --rom-tc2068-1 file
322 --rom-ts2068-0 file
323 --rom-ts2068-1 file
324 --rom-pentagon-0 file
325 --rom-pentagon-1 file
326 --rom-pentagon-2 file
327 --rom-pentagon-3 file
328 --rom-scorpion-0 file
329 --rom-scorpion-1 file
330 --rom-scorpion-2 file
331 --rom-scorpion-3 file
332 --rom-spec-se-0 file
333 --rom-spec-se-1 file
334 --rom-interface-1 file
335 --rom-opus file
336 --rom-plusd file
337 --rom-beta128 file
338 Specify the file to be used for ROM(s) used for each machine.
339 The options respectively refer to the 16K Spectrum (48.rom), 48K
340 Spectrum (48.rom), the two ROMs for the 128K Spectrum (128-0.rom
341 and 128-1.rom), the two ROMs for the +2 (plus2-0.rom and
342 plus2-1.rom), the four ROMs for the +2A (plus3-0.rom,
343 plus3-1.rom, plus3-2.rom and plus3-3.rom), the four ROMs for the
344 +3 (plus3-0.rom, plus3-1.rom, plus3-2.rom and plus3-3.rom), the
345 TC2048 ROM (tc2048.rom), the two ROMs for the TC2068
346 (tc2068-0.rom and tc2068-1.rom), the two ROMs for the TS2068
347 (tc2068-0.rom and tc2068-1.rom), the two main ROMs, the TR-DOS
348 ROM and a reset service ROM for the Pentagon (128p-0.rom,
349 128p-1.rom, trdos.rom and gluck.rom), the four ROMs for the
350 Scorpion 256 (256s-0.rom, 256s-1.rom, 256s-2.rom and
351 256s-3.rom), the two ROMs for the Spectrum SE (se-0.rom and
352 se-1.rom), the Interface I ROM (if1-2.rom), the Opus Discovery
353 ROM (opus.rom), the +D ROM (plusd.rom), and the TR-DOS ROM for
354 Beta 128 emulation with the 48K, TC2048, 128K or +2 (trdos.rom).
355 The names in brackets denote the defaults.
356
357 --no-rs232-handshake
358 This option makes Fuse's Interface I emulation assume that the
359 RS-232 line other end is live when you connect the communication
360 channels. See also the `--rs232-rx' and `--rs232-tx' options.
361
362 --rs232-rx
363 --rs232-tx
364 Specify the communication channels (FIFO or file) to be used for
365 Interface I RS-232 emulation as RxD and TxD wire. See also the
366 `--rs232-handshake' options.
367
368 --rzx-autosaves
369 Specify that, while recording an RZX file, Fuse should automati‐
370 cally add a snapshot to the recording stream every 5 seconds.
371 (Default to on, but you can use `--no-rzx-autosaves' to dis‐
372 able). Same as the RZX Options dialog's "Create autosaves"
373 option; see there for more details.
374
375 --separation
376 Give stereo separation of the 128's AY sound channels. Same as
377 the General Options dialog's AY stereo separation option.
378
379 --simpleide
380 Specify whether Fuse will emulate the simple 8-bit IDE interface
381 as used by the Spectrum +3e. Same as the Peripherals Options
382 dialog's Simple 8-bit IDE option.
383
384 --simpleide-masterfile file
385 Specify a HDF file to connect to the emulated Simple 8-bit IDE
386 interface's master channel.
387
388 --simpleide-slavefile file
389 Specify a HDF file to connect to the emulated Simple 8-bit IDE
390 interface's slave channel.
391
392 --slt
393 Support the SLT trap instruction. (Enabled by default, but you
394 can use `--no-slt' to disable). Same as the General Options dia‐
395 log's Use .slt traps option.
396
397 -s file
398 --snapshot file
399 Specify a snapshot file to load. The file can be in any snapshot
400 format supported by libspectrum(3).
401
402 --sound
403 Specify whether Fuse should produce sound. (Enabled by default,
404 but you can use `--no-sound' to disable). Same as the Sound
405 Options dialog's Sound enabled option.
406
407 --sound-force-8bit
408 Force the use of 8-bit sound, even if 16-bit is possible. Same
409 as the Sound Options dialog's Force 8-bit option.
410
411 --speaker-type type
412 Select the output speaker emulation, type can be TV speaker or
413 Beeper. Same as the Sound Options dialog's Speaker type option.
414
415 --volume-ay volume
416 Sets the relative volume of the AY-3-8912 chip from a range of
417 0-100%. Same as the Sound Options dialog's AY volume option.
418
419 --volume-beeper volume
420 Sets the relative volume of the beeper from a range of 0-100%.
421 Same as the Sound Options dialog's Beeper volume option.
422
423 -d device
424 --sound-device device
425 Specify the sound output device to use and any options to give
426 that device. If you are not using the SDL UI or using libao or
427 libasound (ALSA) for sound output, then the device parameter
428 just specifies the device to be used for sound output.
429
430 If you are using the SDL UI, the device parameter allows you to
431 specify the audio driver to be used (e.g. dsp, alsa, dma, esd
432 and arts).
433
434 If you are using libao for sound output, the device parameter
435 allows you to specify the device used for sound output (either
436 `live' to a speaker or to a file) and the parameters to be used
437 for that device. In general, the device parameter has the form
438 driver[:param[=value][,param[=value][,...]]. driver selects the
439 libao driver to be used, either one of the `live' drivers (aixs,
440 alsa, alsa09, arts, esd, irix , macosx, nas, oss or sun) or a
441 file driver (au, raw, wav or null). The available parameter and
442 value pairs for each device are:
443
444 · aixs: AIX audio system
445
446 · dev=device
447 `device' gives the AIX sound device.
448
449 · alsa: Advanced Linux Sound Architecture version 0.5.x
450
451 · card=num
452 `num' gives the ALSA card number.
453
454 · dev=num
455 `num' gives the ALSA device number.
456
457 · buf_size=num
458 `num' gives the ALSA buffer size in bytes.
459
460 · alsa09: Advanced Linux Sound Architecture version 0.9+
461
462 · dev=string
463 `string' specfies the ALSA device e.g. hw:1.2
464
465 · buffer_time=num
466 `num' gives the ALSA buffer time in microseconds.
467
468 · period_time=num
469 `num' gives the ALSA period time in microseconds.
470
471 · use_mmap=yes|y|true|t|1
472 specifies that libao use memory mapped transfer.
473
474 · arts: aRts soundserver: no parameters.
475
476 · esd: Enlightened Sound Daemon.
477
478 · host=string
479 `string' gives the ESD host specification.
480
481 · irix: IRIX Audio Library: no parameters.
482
483 · macosx: MacOS X CoreAudio: no parameters.
484
485 · nas: Network Audio System.
486
487 · host=string
488 `string' gives the NAS host specification.
489
490 · buf_size=num
491 `num' gives the buffer size on the server.
492
493 · oss: Open Sound System.
494
495 · dsp=string
496 `string' gives the OSS device to be used e.g.
497 /dev/sound/dsp1
498
499 · sun: SUN audio system.
500
501 · dev=string
502 `string' gives the audio device to be used.
503
504 · au: SUN Sparc audio file: no parameters.
505
506 · raw: raw file.
507
508 · byteorder=string
509 `string' can be any of native (host native byte‐
510 order), big (big endian) or little (little
511 endian).
512
513 · wav: Microsoft audio file: no parameters.
514
515 · null: null output: no parameters.
516
517 · debug: for debugging libao.
518
519 Finally, each of the file output types (au, raw and wav) have an
520 extra option `file=filename' where `filename' gives the file
521 output will be directed to. This defaults to `fuse-sound.ao' if
522 it is not specified.
523
524 Some examples of use:
525
526 fuse -d alsa09:dev=hw:1
527
528 causes Fuse to use ALSA 0.9+ output with the second (#1) sound
529 card.
530
531 fuse -d raw:byteorder=little,file=enigma.raw
532
533 causes Fuse to save little endian words to `enigma.raw'.
534
535 See the `DEVICE' section of ogg123(1) for up to date information
536 of devices and options (except for the `file' option which is
537 provided by Fuse itself).
538 If you are using libasound or ALSA for sound output, the device
539 parameter allows you to specify the device used for sound output
540 and some parameters to be used for that device. In general, the
541 device parameter has the form
542 devstr or
543 param[=value][,param[=value][,...][,devstr].
544
545 · devstr: selects the ALSA device used, it can be any com‐
546 plex or simple ALSA device name. e.g.: default or hw:0 or
547 tee:plughw:0,'/tmp/out.raw',raw See the alsa-lib pcm api
548 reference at
549 http://www.alsa-project.org/alsa-doc/alsa-lib/pcm.html
550 for further explanation.
551
552 · param and values:
553
554 · buffer=nnnn: set the ALSA buffer in frames,
555 smaller value cause smaller sound delay but may
556 more buffer underrun (pops and clicks), larger
557 value cause longer delay but fewer underrun. By
558 default Fuse determine the buffer size based on
559 the actual sound frequency.
560 If you use some special plugin for your pcm device
561 (e.g.: dmix) or your card not support some needed
562 parameter (e.g. cannot play other only 48 kHz
563 stereo sound like some AC97 sound card) may cause
564 Fuse unable to set the needed buffer size, appro‐
565 priate sound frequency, channels and so on, there‐
566 fore you cannot get optimal result or not hear the
567 sound at all. In this case try the plughw:#,
568 (where # mean your card number counted from 0) for
569 ALSA device.
570
571 · verbose : if given, fuse report ALSA buffer under‐
572 runs to stderr
573
574 Some examples of use:
575
576 fuse -d verbose,buffer=2000
577
578 causes Fuse to use the default ALSA device with 2000 frame
579 length buffer and report ALSA buffer underruns on stderr.
580
581 fuse -d tee:plughw:0,'/tmp/aufwm.raw',raw
582
583 causes Fuse to use the first card and parallel save the raw
584 audio samples into /tmp/aufwm.raw file.
585
586 --speed percentage
587 Specify the speed (as a percentage of real Spectrum speed) at
588 which emulation should attempt to proceed. Same as the General
589 Options dialog's Emulation speed option.
590
591 --statusbar
592 For the GTK+ UI, enables the statusbar beneath the display. For
593 the SDL UI, enables the status icons showing whether the disk
594 and tape are being accessed. Same as the General Options dia‐
595 log's Show statusbar option.
596
597 --strict-aspect-hint
598 For the GTK+ UI, use stricter limits for the aspect ratio limits
599 set by the `--aspect-hint' option. This can cause some window
600 managers (for example, metacity(1)) to not allow the window to
601 be resized and moved, but is necessary to prevent others (for
602 example, fvwm(1)) from being able resize the window away from
603 square.
604
605 -v mode
606 --fbmode mode
607 Specify which mode to use for the FB UI. Available values for
608 mode are `320' (which corresponds to a 320x240x256 mode), the
609 default and `640' (a 640x480x256 mode).
610
611 --svga-modes mode1,mode2,mode3
612 Specify which SVGA mode to use for the SVGAlib UI at different
613 screen sizes. Available values for mode1, mode2 and mode3 are
614 listed in a table, when Fuse called with --svga-modes list com‐
615 mand line option. When user select a not available mode for a
616 size, Fuse just ignore and try to find the best mode for it.
617 e.g. with --svga-modes 0,0,12 Fuse use the specified
618 1024x768@256 SVGA mode for triple size filters, but select SVGA
619 modes automatically for normal or double size filters. The
620 above mode number is just an example, and mode numbers and their
621 meanings may vary graphics card by graphics card.
622
623 -D mode
624 --doublescan-mode mode
625 Specify whether to use doublescan modes in the FB UI. Available
626 values for mode are 0, 1 and 2. 0 means `never doublescan' (use
627 640x480 at either 72 Hz or 60 Hz), whereas 1 and 2 both mean
628 `try to use doublescan' and will fall back on the 640x480 modes.
629 1 selects 72 Hz modes (the same size and shape as your typical
630 640x480), and 2 selects 60 Hz modes (overscan).
631 If your monitor displays a blank screen when using 1 or 2, press
632 F10 then try a different option or say `--fbmode 640'.
633
634 -t file
635 --tape file
636 Specify a virtual tape file to use. It must be in TAP or TZX
637 format.
638
639 --textfile file
640 Set the filename used for text output from the emulated print‐
641 ers. See the PRINTER EMULATION section below for more details.
642
643 --traps
644 Support traps for ROM tape loading/saving. (Enabled by default,
645 but you can use `--no-traps' to disable). Same as the General
646 Options dialog's Use tape traps option.
647
648 --betadisk file
649 Insert the specified file into the emulated Beta disk inter‐
650 face's drive A: and select Pentagon mode on startup.
651
652 -V
653 --version
654 Show which version of Fuse is being used.
655
656 --writable-roms
657 Allow Spectrum programs to overwrite the ROM(s). The same as the
658 General Options dialog's Allow writes to ROM option.
659
660 --zxatasp
661 Specify whether Fuse emulate the ZXATASP interface. Same as the
662 Peripherals Options dialog's ZXATASP interface option.
663
664 --zxatasp-upload
665 Specify the state of the ZXATASP upload jumper. Same as the
666 Peripherals Options dialog's ZXATASP upload option.
667
668 --zxatasp-write-protect
669 Specify the state of the ZXATASP write protect jumper. Same as
670 the Peripherals Options dialog's ZXATASP write protect option.
671
672 --zxatasp-masterfile file
673 Specify a HDF file to connect to the emulated ZXATASP inter‐
674 face's master channel.
675
676 --zxatasp-slavefile file
677 Specify a HDF file to connect to the emulated ZXATASP inter‐
678 face's slave channel.
679
680 --zxcf
681 Specify whether Fuse emulate the ZXCF interface. Same as the
682 Peripherals Options dialog's ZXCF interface option.
683
684 --zxcf-upload
685 Specify the state of the ZXCF upload jumper. Same as the Periph‐
686 erals Options dialog's ZXCF upload option.
687
688 --zxcf-cffile file
689 Specify a HDF file to connect to the emulated ZXCF interface.
690
691 All long options which control on/off settings can be disabled using
692 `--no-foo' (for an option `--foo'). For example, the opposite of
693 `--issue2' is `--no-issue2'. These options can also be modified while
694 the emulator is running, using the options dialogs - see the documenta‐
695 tion for the Options menu in the MENUS AND KEYS section for details.
696
698 Fuse supports various front-ends, or UIs (user interfaces). The usual
699 one is GTK+-based, but there are also SDL, Xlib, SVGAlib and frame‐
700 buffer ones.
701
702 The important difference to note is that the GTK+ version uses `native'
703 dialog boxes etc. (behaving like a fairly normal GUI-based program)
704 while the others use an alternative, Fuse-specific `widget UI'. This
705 latter front-end is easily spotted by the way it uses the main Fuse
706 window/screen for menus and dialogs, and uses the Spectrum's own font.
707
709 Since many of the keys available are devoted to emulation of the Spec‐
710 trum's keyboard, the primary way of controlling Fuse itself (rather
711 than the emulated machine) is via the menus. There are also function
712 key shortcuts for some menu options.
713
714 In the GTK+ version, the menu bar is always visible at the top of the
715 Fuse window. You can click on a menu name to pop it up. Alternatively,
716 you can press F1 to display a pop-up version of the menu bar, which you
717 can then navigate with the cursor keys or mouse.
718
719 In the widget UI pressing F1 is the only way to get the main menu; and
720 unlike the GTK+ version, the emulator pauses while the menus are being
721 navigated. The menus show which key to press for each menu option in
722 brackets. Pressing Esc exits a menu, and pressing Enter exits the menu
723 system entirely (as well as `confirming' any current dialog).
724
725 Here's what the menu options do, along with the function key mappings
726 for those items which have them:
727
728 F3
729 File, Open...
730 Open a Spectrum file. Snapshots will be loaded into memory; tape
731 images will be inserted into the emulated tape deck, and if the
732 Auto-load media option is set will being loading. Opening a disk
733 image or a Timex dock image will cause the appropriate machine
734 type (+3, Pentagon or TC2068) to be selected with the image
735 inserted, and disks will automatically load if the Auto-load
736 media option is set. See the FILE SELECTION section below for
737 details on how to choose the file. Note that this behaviour is
738 different from previous versions of Fuse, when this option would
739 open only snapshots.
740
741 F2
742 File, Save Snapshot...
743 Save a snapshot (machine state, memory contents, etc.) to file.
744 You can select the filename to be saved to. If it has a .szx,
745 .z80 or .sna extension, the snapshot will be saved in that for‐
746 mat. Otherwise, it will be saved as a .szx file.
747
748 File, Recording, Record...
749 Start recording input to an RZX file, initialised from the cur‐
750 rent emulation state. You will be prompted for a filename to
751 use.
752
753 File, Recording, Record from snapshot...
754 Start recording input to an RZX file, initialised from a snap‐
755 shot. You will first be asked for the snapshot to use and then
756 the file to save the recording to.
757
758 Insert
759 File, Recording, Insert snapshot
760 Inserts a snapshot of the current state into the RZX file. This
761 can be used at a later point to roll back to the inserted state
762 by using one of the commands below.
763
764 Delete
765 File, Recording, Rollback
766 Rolls back the recording to the point at which the previous
767 snapshot was inserted. Recording will continue from that point.
768
769 File, Recording, Rollback to...
770 Roll back the recording to any snapshot which has been inserted
771 into the recording.
772
773 File, Recording, Play...
774 Playback recorded input from an RZX file. This lets you replay
775 keypresses recorded previously. RZX files generally contain a
776 snapshot with the Spectrum's state at the start of the record‐
777 ing; if the selected RZX file doesn't, you'll be prompted for a
778 snapshot to load as well.
779
780 File, Recording, Stop
781 Stop any currently-recording/playing RZX file.
782
783 File, AY Logging, Record...
784 Start recording the bytes output via the AY-3-8192 sound chip to
785 a PSG file. You will be prompted for a filename to save the
786 recording to.
787
788 File, AY Logging, Stop
789 Stop any current AY logging.
790
791 File, Open SCR Screenshot...
792 Load an SCR screenshot (essentially just a binary dump of the
793 Spectrum's video memory) onto the current screen. Fuse supports
794 screenshots saved in the Timex hi-colour and hi-res modes as
795 well as `normal' Spectrum screens, and will make a simple con‐
796 version if a hi-colour or hi-res screenshot is loaded onto a
797 non-Timex machine.
798
799 File, Save Screen as SCR...
800 Save a copy of whatever's currently displayed on the Spectrum's
801 screen as an SCR file. You will be prompted for a filename to
802 save the screenshot to.
803
804 File, Save Screen as PNG...
805 Save the current screen as a PNG file. You will be prompted for
806 a filename to save the screenshot to.
807
808 File, Movies, Record Movie as SCR...
809 Start recording a `movie' as a series of SCR screenshots. You
810 will be prompted for a filename, and the screenshots will then
811 be saved to `<name>-frame-000000000.scr',
812 `<name>-frame-000000001.scr' and so on.
813
814 File, Movies, Record Movie as PNG...
815 Start recording a `movie' as a series of PNG images. The file‐
816 names used will be the same as for the SCR movie, but with a
817 `.png' extension instead of `.scr'.
818
819 File, Movies, Stop Movie Recording
820 Stop any movie recording which is currently in progress.
821
822 File, Load Binary Data...
823 Load binary data from a file into the Spectrum's memory. After
824 selecting the file to load data from, you can choose where to
825 load the data and how much data to load.
826
827 File, Save Binary Data...
828 Save an arbitrary chunk of the Spectrum's memory to a file.
829 Select the file you wish to save to, followed by the location
830 and length of data you wish to save.
831
832 F10
833 File, Exit
834 Exit the emulator. A confirmation dialog will appear checking
835 you actually want to do this.
836
837 F4
838 Options, General...
839 Display the General Options dialog, letting you configure Fuse.
840 (With the widget UI, the keys shown in brackets toggle the
841 options, Enter confirms any changes, and Esc aborts). Note that
842 any changed settings only apply to the currently-running Fuse.
843
844 The options available are:
845
846 Emulation speed
847 Set how fast Fuse will attempt to emulate the Spectrum,
848 as a percentage of the speed at which the real machine
849 runs. If your machine isn't fast enough to keep up with
850 the requested speed, Fuse will just run as fast as it
851 can. Note that if the emulation speed is not exactly
852 100%, no sound output will be produced.
853
854 Frame rate
855 Specify the frame rate, the ratio of spectrum frame
856 updates to real frame updates. This is useful if your
857 machine is having trouble keeping up with the spectrum
858 screen updates.
859
860 Issue 2 keyboard
861 Early versions of the Spectrum used a different value for
862 unused bits on the keyboard input ports, and a few games
863 depended on the old value of these bits. Enabling this
864 option switches to the old value, to let you run them.
865
866 Use tape traps
867 Ordinarily, Fuse intercepts calls to the ROM tape-loading
868 routine in order to load from tape files more quickly
869 when possible. But this can (rarely) interfere with TZX
870 loading; disabling this option avoids the problem at the
871 cost of slower (i.e. always real-time) tape-loading.
872 When tape-loading traps are disabled, you need to start
873 tape playback manually, by pressing F8 or choosing the
874 Media, Tape, Play menu item. Fuse also uses tape traps to
875 intercept the tape-saving routine in the ROM to save tape
876 files quickly, tapes can also be saved using the Media,
877 Tape, Record Start menu item.
878
879 Fastloading
880 If this option is enabled, then Fuse will run at the
881 fastest possible speed when the virtual tape is playing,
882 thus dramatically reducing the time it takes to load pro‐
883 grams. You may wish to disable this option if you wish to
884 stop the tape at a specific point.
885
886 Detect loaders
887 If this option is enabled, Fuse will attempt to detect
888 when a loading routine is in progress, and then automati‐
889 cally start the virtual tape to load the program in. This
890 is done by using a heuristic to identify a loading rou‐
891 tine, so is by no means infallible, but works in most
892 cases.
893
894 Auto-load media
895 On many occasions when you open a tape or disk file, it's
896 because it's got a program in you want to load and run.
897 If this option is selected, this will automatically hap‐
898 pen for you when you open one of these files using the
899 File, Open... menu option - you must then use the Media
900 menu to use tapes or disks for saving data to, or for
901 loading data into an already running program.
902
903 Use .slt traps
904 The multi-load aspect of SLT files requires a trap
905 instruction to be supported. This instruction is not gen‐
906 erally used except for this trap, but since it's not
907 inconceivable that a program could be wanting to use the
908 real instruction instead, you can choose whether to sup‐
909 port the trap or not.
910
911 Allow writes to ROM
912 If this option is selected, Fuse will happily allow pro‐
913 grams to overwrite what would normally be ROM. This prob‐
914 ably isn't very useful in most circumstances, especially
915 as the 48K ROM overwrites parts of itself.
916
917 Auto-save settings
918 If this option is selected, Fuse will automatically write
919 its currently selected options to its configuration file
920 on exit (if libxml2 was available when Fuse was com‐
921 piled). If you turn this option off, you'll have to manu‐
922 ally use Options, Save afterwards to ensure that this
923 setting gets written to Fuse's configuration file.
924
925 MDR cartridge len
926 This option controls the number of blocks in a new Micro‐
927 drive cartridge. If the value smaller than 4 or greater
928 than 254 Fuse assumes 4 or 254.
929
930 RS-232 handshake
931 If you turn this option off, Fuse assumes the RS-232 line
932 other end is live when you connect the communication
933 channels. See also the `--rs232-rx--rs232-tx' options.
934
935 Black and white TV
936 This option allows you to choose whether to simulate a
937 colour or black and white television. This is effective
938 only under the GTK+, Xlib and SDL user interfaces: the
939 others will always simulate a colour TV.
940
941 PAL-TV use TV2x effect
942 This option allows you to choose whether the PAL TV 2x
943 and higher scalers also reproduce scanlines in the same
944 way as the TV 2x, 3x and Timex TV scalers.
945
946 Confirm actions
947 Specify whether `dangerous' actions (those which could
948 cause data loss, for example resetting the Spectrum)
949 require confirmation before occurring.
950
951 Show statusbar
952 For the GTK+ UI, enables the statusbar beneath the dis‐
953 play. For the SDL UI, enables the status icons showing
954 whether the disk and tape are being accessed. This option
955 has no effect for the other user interfaces.
956
957 Snap joystick prompt
958 If set, Fuse will prompt you which physical joystick or
959 keyboard you want to connect to the joystick interface
960 enabled in the snapshot unless it already matches your
961 current configuration.
962
963 Late timings
964 If selected, Fuse will cause all screen-related timings
965 (for example, when the screen is rendered and when memory
966 contention occurs) to be one tstate later than "normal",
967 an effect which is present on some real hardware.
968
969 Options, Sound...
970 Display the Sound Options dialog, letting you configure Fuse's
971 sound output. (With the widget UI, the keys shown in brackets
972 toggle the options, Enter confirms any changes, and Esc aborts).
973 Note that any changed settings only apply to the currently-run‐
974 ning Fuse.
975
976 Sound enabled
977 Specify whether sound output should be enabled at all.
978 When this option is disabled, Fuse will not make any
979 sound.
980
981 Loading sound
982 Normally, Fuse emulates tape-loading noise when loading
983 from TAPs or TZXs in real-time, albeit at a deliberately
984 lower volume than on a real Spectrum. You can disable
985 this option to eliminate the loading noise entirely.
986
987 AY stereo separation
988 By default, the sound output is mono, since this is all
989 you got from an unmodified Spectrum. But enabling this
990 option gives you so-called ACB stereo (for sound from the
991 128 and other clone's AY-3-8912 sound chip).
992
993 Force 8-bit
994 Force the use of 8-bit sound even if 16-bit (the default)
995 is available. Note that (when the option is enabled) if
996 8-bit sound isn't available then there will be no sound
997 at all, so it's best not to use this option unless you
998 have a specific need for it.
999
1000 Speaker type
1001 This option allows the emulation of the sound output sys‐
1002 tem to be modified. Different choices of speaker limit
1003 the bass and treble response that can be produced from
1004 the machine. Choose between a "TV" type speaker and a
1005 small beeper type speaker that significantly limits bass
1006 and treble response.
1007
1008 AY volume
1009 Sets the relative volume of the AY-3-8912 chip from a
1010 range of 0-100%.
1011
1012 Beeper volume
1013 Sets the relative volume of the beeper from a range of
1014 0-100%.
1015
1016 Options, Peripherals...
1017 Display the Peripherals Options dialog, letting you configure
1018 the peripherals which Fuse will consider to be attached to the
1019 emulated machines. (With the widget UI, the keys shown in brack‐
1020 ets toggle the options, Enter confirms any changes, and Esc
1021 aborts). Note that any changed settings only apply to the cur‐
1022 rently-running Fuse.
1023
1024 Kempston joystick
1025 If this option is selected, Fuse will emulate a Kempston
1026 joystick interface (probably the most widely supported
1027 type on the Spectrum). Note that this option is basi‐
1028 cally equivalent to plugging the interface itself into a
1029 Spectrum, not to connecting a joystick; this affects how
1030 the Spectrum responds to a read of input port 31. To use
1031 a Kempston joystick in a game, this option must be
1032 enabled, and you must also select a Kempston joystick the
1033 Options, Joysticks menu.
1034
1035 Kempston mouse
1036 If this option is selected, Fuse will emulate a Kempston
1037 mouse interface.
1038
1039 If you're using Fuse full-screen, your mouse is automati‐
1040 cally used as if attached to the Kempston interface. Oth‐
1041 erwise, you'll need to click on the Spectrum display in
1042 order to tell Fuse to grab the pointer (and make it
1043 invisible); to tell Fuse to release it, click the middle
1044 button (or wheel) or press Escape.
1045
1046 With the framebuffer UI, Fuse prefers to use GPM; if this
1047 is not available, it will fall back to built-in PS/2
1048 mouse support. In this mode, it tries /dev/input/mice,
1049 /dev/mouse then /dev/psaux, stopping when it successfully
1050 opens one. The first of these is preferred since (at
1051 least on Linux, with a 2.6-series kernel) any type of
1052 mouse can be used and any connected mouse may be used.
1053
1054 Fuller Box
1055 If this option is selected, Fuse will emulate a Fuller
1056 Box AY sound and joystick interface. This emulation is
1057 only available for the 16k, 48k and TC2048 machines.
1058
1059 Melodik
1060 If this option is selected, Fuse will emulate a Melodik
1061 AY sound interface. These interfaces and many similar
1062 ones were produced to make the 48K Spectrum compatible
1063 with the same AY music as the 128K Spectrum. This emula‐
1064 tion is only available for the 16k, 48k and TC2048
1065 machines.
1066
1067 Interface I
1068 If this option is selected, Fuse will emulate the simple
1069 Sinclair Interface I, and allow Microdrive cartridges to
1070 be connected and disconnected via the Media, Interface I,
1071 Microdrive menus. It also enables support for the Inter‐
1072 face I RS-232 interface.
1073
1074 Interface II
1075 If this option is selected, Fuse will emulate a cartridge
1076 port as found on the Interface II. Cartridges can then be
1077 inserted and removed via the Media, Cartridge, Interface
1078 II menu. Note that the Pentagon, Scorpion, Interface II,
1079 ZXATASP and ZXCF all use the same hardware mechanism for
1080 accessing some of their extended features, so only one of
1081 these should be selected at once or unpredictable behav‐
1082 iour will occur.
1083
1084 Emulate printers
1085 If this option is selected, Fuse will emulate a printer.
1086 See the PRINTER EMULATION section for more details.
1087
1088 Simple 8-bit IDE
1089 If this option is selected, Fuse will emulate the simple
1090 8-bit IDE interface as used by the Spectrum +3e, and
1091 allow hard disks to be connected and disconnected via the
1092 Media, IDE, Simple 8-bit menu.
1093
1094 ZXATASP interface
1095 If this option is selected, Fuse will emulate the ZXATASP
1096 interface, which provides both additional RAM and an IDE
1097 interface. See the ZXATASP AND ZXCF section for more
1098 details.
1099
1100 ZXATASP upload
1101 This option controls the state of the ZXATASP upload
1102 jumper. See the ZXATASP AND ZXCF section for more
1103 details.
1104
1105 ZXATASP write protect
1106 This option controls the state of the ZXATASP write pro‐
1107 tect jumper. See the ZXATASP AND ZXCF section for more
1108 details.
1109
1110 ZXCF interface
1111 If this option is selected, Fuse will emulate the ZXCF
1112 interface, which provides both additional RAM and a Com‐
1113 pactFlash interface. See the ZXATASP AND ZXCF section for
1114 more details.
1115
1116 ZXCF upload
1117 This option controls the state of the ZXCF upload jumper.
1118 See the ZXATASP AND ZXCF section for more details.
1119
1120 DivIDE interface
1121 If this option is selected, Fuse will emulate the DivIDE
1122 interface. See the DIVIDE section for more details.
1123
1124 DivIDE write protect
1125 This option controls the state of the DivIDE write pro‐
1126 tection jumper. See the DIVIDE section for more details.
1127
1128 Opus Discovery interface
1129 If this option is selected, Fuse will emulate the Opus
1130 Discovery interface. See the OPUS DISCOVERY EMULATION
1131 section for more details.
1132
1133 +D interface
1134 If this option is selected, Fuse will emulate the +D
1135 interface. See the +D EMULATION section for more
1136 details.
1137
1138 Beta 128 interface
1139 If this option is selected, Fuse will emulate the Beta
1140 128 interface. See the BETA 128 EMULATION section for
1141 more details. Beta 128 emulation is enabled for the Pen‐
1142 tagon and Scorpion machines regardless of this option.
1143
1144 Options, RZX...
1145 Display the RZX Options dialog, letting you configure how Fuse's
1146 deals with RZX input recordings. (With the widget UI, the keys
1147 shown in brackets toggle the options, Enter confirms any
1148 changes, and Esc aborts). Note that any changed settings only
1149 apply to the currently-running Fuse.
1150
1151 Create autosaves
1152 If this option is selected, Fuse will add a snapshot into
1153 the recording stream every 5 seconds while creating an
1154 RZX file, thus enabling the rollback facilities to be
1155 used without having to explicitly add snapshots into the
1156 stream. Older snapshots will be pruned from the stream to
1157 keep the file size and number of snapshots down: each
1158 snapshot up to 15 seconds will be kept, then one snapshot
1159 every 15 seconds until one minute, then one snapshot
1160 every minute until 5 minutes, and then one snapshot every
1161 5 minutes. Note that this "pruning" applies only to auto‐
1162 matically inserted snapshots: snapshots manually inserted
1163 into the stream will never be pruned.
1164
1165 Compress RZX data
1166 If this option is selected, and zlib was available when
1167 Fuse was compiled, any RZX files written by Fuse will be
1168 compressed. This is generally a good thing as it makes
1169 the files significantly smaller, and you probably want to
1170 turn it off only if you're debugging the RZX files or
1171 there's some other program which doesn't support com‐
1172 pressed RZX files.
1173
1174 Competition mode
1175 Any input recordings which are started when this option
1176 is selected will be made in `competition mode'. In
1177 essence, this means that Fuse will act just like a real
1178 Spectrum would: you can't load snapshots, pause the emu‐
1179 lation in any way, change the speed or anything that you
1180 couldn't do on the real machine. If any of these things
1181 are attempted, or if the emulated Fuse is running more
1182 than 5% faster or slower than normal Spectrum speed, then
1183 the recording will immediately be stopped.
1184
1185 If libgcrypt was available when Fuse was compiled, then
1186 recordings made with competition mode active will be dig‐
1187 itally signed, in theory to `certify' that it was made
1188 with the above restrictions in place. However, this pro‐
1189 cedure is not secure (and cannot be made so), so the
1190 presence of any signature on an RZX file should not be
1191 taken as providing proof that it was made with competi‐
1192 tion mode active. This feature is included in Fuse
1193 solely as it was one of the requirements for Fuse to be
1194 used in an on-line tournament.
1195
1196 Competition code
1197 The numeric code entered here will be written into any
1198 RZX files made in competition mode. This is another fea‐
1199 ture for on-line tournaments which can be used to `prove'
1200 that the recording was made after a specific code was
1201 released. If you're not playing in such a tournament, you
1202 can safely ignore this option.
1203
1204 Always embed snapshot
1205 Specify whether a snapshot should be embedded in an RZX
1206 file when recording is started from an existing snapshot.
1207
1208 Options, Joysticks
1209 Fuse can emulate many of the common types of joystick which were
1210 available for the Spectrum. The input for these emulated joy‐
1211 sticks can be taken from real joysticks attached to the emulat‐
1212 ing machine (configured via the Options, Joysticks, Joystick
1213 1... and Options, Joysticks, Joystick 2... options), or from
1214 the q, a, o, p, and Space keys on the emulating machines key‐
1215 board, configured via the Options, Joysticks, Keyboard...
1216 option. Note that when using the keyboard to emulate a joystick,
1217 the q, a, o, p, and Space keys will not have their normal effect
1218 (to avoid problems with games which do things like use p for
1219 pause when using a joystick).
1220
1221 Each of the joysticks (including the `fake' keyboard joystick)
1222 can be configured to emulate any one of the following joystick
1223 types:
1224
1225 None
1226 No joystick: any input will simply be ignored.
1227
1228 Cursor
1229 A cursor joystick, equivalent to pressing 5
1230 (left), 6 (down), 7 (up), 8 (right), and 0 (fire).
1231
1232 Kempston
1233 A Kempston joystick, read from input port 31. Note
1234 that the Options, Peripherals, Kempston interface
1235 option must also be set for the input to be recog‐
1236 nised.
1237
1238 Sinclair 1
1239 Sinclair 2
1240 The `left' and `right' Sinclair joysticks, equiva‐
1241 lent to pressing 1 (left), 2 (right), 3 (down), 4
1242 (up), and 5 (fire), or 6 (left), 7 (right), 8
1243 (down), 9 (up), and 0 (fire) respectively.
1244
1245 Timex 1
1246 Timex 2
1247 The `left' and `right' joysticks as attached to
1248 the Timex 2068 variant's built-in joystick inter‐
1249 face.
1250
1251 For the real joysticks, it is also possible to configure
1252 (although currently only when using the GTK+ interface) what
1253 effect each button on the joystick will have: this can be Joy‐
1254 stick Fire, equivalent to pressing the emulated joystick's fire
1255 button, Nothing, meaning to have no effect, or any Spectrum key,
1256 meaning that pressing that button will be equivalent to pressing
1257 that Spectrum key.
1258
1259 Options, Select ROMs
1260 An individual dialog is available for each Spectrum variant emu‐
1261 lated by Fuse which allows selection of the ROM(s) used by that
1262 machine. Simply select the ROM you wish to use, and then reset
1263 the Spectrum for the change to take effect.
1264
1265 Options, Filter...
1266 Select the graphics filter currently in use. See the GRAPHICS
1267 FILTERS section for more details.
1268
1269 F11
1270 Options, Full Screen
1271 Switch Fuse between full screen and windowed mode. This menu is
1272 only available under the SDL UI.
1273
1274 Options, Save
1275 If libxml2 was available when Fuse was compiled, this
1276 will cause Fuse's current options to be written to
1277 .fuserc in your home directory, from which they will be
1278 picked up again when Fuse is restarted. The best way to
1279 update this file is by using this option, but it's a sim‐
1280 ple XML file and shouldn't be too hard to edit by hand if
1281 you really want to.
1282
1283 Pause
1284 Machine, Pause
1285 Pause or unpause emulation. This option is available only
1286 under the GTK+ UI; to pause the other user interfaces,
1287 simply press F1 to bring up the main menu.
1288
1289 F5
1290 Machine, Reset
1291 Reset the emulated Spectrum. Again, you get a chance to
1292 cancel this if you're using the GTK+ UI.
1293
1294 Machine, Hard reset
1295 Reset the emulated Spectrum. A hard reset is equivalent
1296 to turning the Spectrum's power off, and then turning it
1297 back on. Again, you get a chance to cancel this if you're
1298 using the GTK+ UI.
1299
1300 F9
1301 Machine, Select...
1302 Choose a type of Spectrum to emulate. An brief overview
1303 of the Sinclair, Amstrad and Timex can be found at
1304 http://www.nvg.ntnu.no/sinclair/computers/zxspec‐
1305 trum/zxspectrum.htm while more technical information can
1306 be found at http://www.worldofspectrum.org/faq/refer‐
1307 ence/reference.htm, and http://www.worldofspec‐
1308 trum.org/faq/reference/tmxreference.htm.
1309
1310 Spectrum 16K
1311 Spectrum 48K
1312 The original machines as released by Sinclair in
1313 1982 with 16 or 48K of RAM respectively.
1314
1315 Spectrum 48K (NTSC)
1316 The NTSC 48K machine released in limited numbers
1317 in parts of South America.
1318
1319 Spectrum 128K
1320 The 128K machine as released by Sinclair in 1985
1321 (Spain) or 1986 (UK).
1322
1323 Spectrum +2
1324 The first machine released by Amstrad, in 1986.
1325 From an emulation point of view, the +2 is virtu‐
1326 ally identical to the 128K.
1327
1328 Spectrum +2A
1329 Spectrum +3
1330 The two machines released by Amstrad in 1988.
1331 Technically very similar to each other, except
1332 that the +3 features a 3" disk drive while the +2A
1333 does not.
1334
1335 Spectrum +3e
1336 A +3 with modified ROMs allowing access to IDE
1337 hard disks via the simple 8-bit interface, as
1338 activated from the Options, Peripherals dialog.
1339 See http://www.zxplus3e.plus.com/ for more
1340 details.
1341
1342 Timex TC2048
1343 Timex TC2068
1344 The variants of the Spectrum as released by Timex
1345 in Portugal.
1346 Timex TS2068
1347 The variant of the Spectrum released by Timex in
1348 North America.
1349
1350 Pentagon 128K
1351 Russian clone of the Spectrum. There were many
1352 different machines called Pentagon from 1989 to
1353 2006, this machine corresponds to a 1991 era Pen‐
1354 tagon-128K with the optional AY sound chip and the
1355 integrated Beta 128 disk interface, and is the
1356 version of the machine most often emulated. More
1357 technical details can be found at
1358 http://www.worldofspectrum.org/rusfaq/index.html,
1359
1360 Pentagon 512K
1361 Pentagon 1024K
1362 Newer versions of the Pentagon Russian Spectrum
1363 clones which incorporate more memory and the "Mr
1364 Gluk Reset Service" ROM offering a more powerful
1365 firmware.
1366
1367 Scorpion ZS 256
1368 Another Russian clone of the Spectrum. Some
1369 details can be found at http://www.worldofspec‐
1370 trum.org/rusfaq/index.html, like all the Russian
1371 clones they they have built in 3.5" disk drives,
1372 accessed via the Beta 128 disk interface and TR-
1373 DOS (the Technology Research Disk Operating Sys‐
1374 tem). The most important distinction from the Pen‐
1375 tagon 128k and similar machines is the display
1376 timing details.
1377
1378 Spectrum SE
1379 A recent variant designed by Andrew Owen and Jarek
1380 Adamski, which is possibly best thought of as a
1381 cross between the 128K machine and the Timex vari‐
1382 ants, allowing 272K of RAM to be accessed. Some
1383 more details are available at http://www.worldof‐
1384 spectrum.org/faq/reference/sereference.htm.
1385
1386 Machine, Debugger...
1387 Start the monitor/debugger. See the MONITOR/DEBUGGER sec‐
1388 tion for more information.
1389
1390 Machine, Poke Finder...
1391 Start the `poke finder'. See the POKE FINDER section for
1392 more information.
1393
1394 Machine, Memory Browser...
1395 Start the memory browser. It should be fairly obvious
1396 what this does; perhaps the only thing worth noting is
1397 that emulation is paused until you close the window.
1398
1399 Machine, NMI
1400 Sends a non-maskable interrupt to the emulated Spectrum.
1401 Due to a typo in the standard 48K ROM, this will cause a
1402 reset, but modified ROMs are available which make use of
1403 this feature. When the +D is emulated, this is used to
1404 access the +D's screenshot and snapshot features (see the
1405 +D EMULATION section below).
1406
1407 F7
1408 Media, Tape, Open...
1409 Choose a TAP or TZX virtual-tape file to load from. See
1410 the FILE SELECTION section below for details on how to
1411 choose the file. If Auto-load media is set in the General
1412 Options dialog (as it is by default), you may use the
1413 File, Open... menu option instead, and the tape will
1414 begin loading automatically. Otherwise, you have to
1415 start the load in the emulated machine (with LOAD "" or
1416 the 128's Tape Loader option, though you may need to
1417 reset first).
1418
1419 To guarantee that TZX files will load properly, you
1420 should select the file, make sure tape-loading traps are
1421 disabled in the General Options dialog, then press F8 (or
1422 do Media, Tape, Play). That said, most TZXs will work
1423 with tape-loading traps enabled (often quickly loading
1424 partway, then loading the rest real-time), so you might
1425 want to try it that way first.
1426
1427 F8
1428 Media, Tape, Play
1429 Start playing the TAP or TZX file, if required. (Choosing
1430 the option (or pressing F8) again pauses playback, and a
1431 further press resumes). To explain - if tape-loading
1432 traps have been disabled (in the General Options dialog),
1433 starting the loading process in the emulated machine
1434 isn't enough. You also have to `press play', so to speak
1435 :-), and this is how you do that. You may also need to
1436 `press play' like this in certain other circumstances,
1437 e.g. TZXs containing multi-load games may have a stop-
1438 the-tape request (which Fuse obeys).
1439
1440 Media, Tape, Browse
1441 Browse through the current tape. A brief display of each
1442 of the data blocks on the current tape will appear, from
1443 which you can select which block Fuse will play next.
1444 With the GTK+ UI, emulation will continue while the
1445 browser is displayed; double-clicking on a block will
1446 select it. In the other UIs, emulation is paused and you
1447 can use the cursor keys and press Enter to select it. If
1448 you decide you don't want to change block, just press
1449 Escape.
1450
1451 Media, Tape, Rewind
1452 Rewind the current virtual tape, so it can be read again
1453 from the beginning.
1454
1455 Media, Tape, Clear
1456 Clear the current virtual tape. This is particularly use‐
1457 ful when you want a `clean slate' to add newly-saved
1458 files to, before doing Media, Tape, Write... (or F6).
1459
1460 F6
1461 Media, Tape, Write...
1462 Write the current virtual-tape contents to a TZX file.
1463 You will be prompted for a filename. The virtual-tape
1464 contents are the contents of the previously-loaded tape
1465 (if any has been loaded since you last did a Media, Tape,
1466 Clear), followed by anything you've saved from the emu‐
1467 lated machine since. These newly-saved files are not
1468 written to any tape file until you choose this option!
1469
1470 Media, Tape, Record Start
1471 Starts directly recording the output from the emulated
1472 Spectrum to the current virtual-tape. This is useful when
1473 you want to record using a non-standard ROM or from a
1474 custom save routine. Most tape operations are disabled
1475 during recording. Stop recording with the Media, Tape,
1476 Write... menu option.
1477
1478 Media, Tape, Record Stop
1479 Stops the direct recording and places the new recording
1480 into the virtual-tape.
1481
1482 Media, Interface I
1483 Virtual Microdrive images are accessible only when the
1484 Interface I is active from the Options, Peripherals menu.
1485 Note that any changes to the Microdrive image will not be
1486 written to the file on disk until the appropriate save
1487 option is used.
1488
1489 Media, Interface I, Microdrive 1, Insert New
1490 Insert a new (unformatted) Microdrive cartridge into emu‐
1491 lated Microdrive 1.
1492
1493 Media, Interface I, Microdrive 1, Insert...
1494 Insert an existing Microdrive cartridge image into emu‐
1495 lated Microdrive 1. You will be prompted for a filename.
1496
1497 Media, Interface I, Microdrive 1, Eject
1498 Eject the Microdrive image in Microdrive 1. If the image
1499 has been modified, you will be asked as to whether you
1500 want any changes saved.
1501
1502 Media, Interface I, Microdrive 1, Save
1503 Save the Microdrive image in Microdrive 1.
1504
1505 Media, Interface I, Microdrive 1, Save as...
1506 Write the Microdrive image in Microdrive 1 to a file. You
1507 will be prompted for a filename.
1508
1509 Media, Interface I, Microdrive 1, Write protect, Enable
1510 Enable the write protect tab for the image in Microdrive
1511 1.
1512
1513 Media, Interface I, Microdrive 1, Write protect, Disable
1514 Disable the write protect tab for the image in Microdrive
1515 1.
1516
1517 Media, Interface I, Microdrive 2, ...
1518 Media, Interface I, Microdrive 3, ...
1519 Media, Interface I, Microdrive 4, ...
1520 Media, Interface I, Microdrive 5, ...
1521 Media, Interface I, Microdrive 6, ...
1522 Media, Interface I, Microdrive 7, ...
1523 Media, Interface I, Microdrive 8, ...
1524 Equivalent options for the other emulated Microdrives.
1525
1526 Media, Interface I, RS232, Plug RxD
1527 Media, Interface I, RS232, Unplug RxD
1528 Media, Interface I, RS232, Plug TxD
1529 Media, Interface I, RS232, Unplug TxD
1530 Connect or disconnect a communication channels (FIFO or
1531 file) to use as the RS-232 TxD or RxD wire.
1532
1533 Media, Disk
1534 Virtual floppy disk images are accessible when emulating
1535 a +3, +3e, Pentagon or Scorpion, or when the Beta 128,
1536 Opus Discovery or +D interface options are enabled and a
1537 machine compatible with the chosen interface is selected.
1538 (See THE .DSK FORMAT, BETA 128 EMULATION OPUS DISCOVERY
1539 EMULATION and +D EMULATION sections below for notes on
1540 the file formats supported).
1541
1542 Once again, any changes made to a disk image will not
1543 affect the file which was `inserted' into the drive. If
1544 you do want to keep any changes, use the appropriate
1545 `eject and write' option before exiting Fuse.
1546
1547 Media, Disk, +3, Drive A:, Insert...
1548 Insert a disk-image file to read/write in the +3's emu‐
1549 lated drive A:.
1550
1551 Media, Disk, +3, Drive A:, Eject
1552 Eject the disk image currently in the +3's emulated drive
1553 A: - or from the emulated machine's perspective, eject
1554 it. Note that any changes made to the image will not be
1555 saved.
1556
1557 Media, Disk, +3, Drive A:, Save
1558 Save the disk image currently in the +3's drive A:.
1559
1560 Media, Disk, +3, Drive A:, Save as...
1561 Save the current state of the disk image currently in the
1562 +3's drive A: to a file. You will be prompted for a file‐
1563 name.
1564
1565 Media, Disk, +3, Drive B:, Insert...
1566 As above, but for the +3's drive B:. Fuse emulates drive
1567 B: as a second 3" drive.
1568
1569 Media, Disk, +3, Drive B:, Eject
1570 As above, but for drive B:.
1571
1572 Media, Disk, +3, Drive B:, Save
1573 As above, but for drive B:.
1574
1575 Media, Disk, +3, Drive B:, Save as...
1576 As above, but for drive B:.
1577
1578 Media, Disk, Beta, Drive A:, Insert New
1579 Insert a new (unformatted) disk into the emulated Beta
1580 drive A:.
1581
1582 Media, Disk, Beta, Drive A:, Insert...
1583 Media, Disk, Beta, Drive A:, Eject
1584 Media, Disk, Beta, Drive A:, Save
1585 Media, Disk, Beta, Drive A:, Save as...
1586 As above, but for the emulated Beta disk drive A:.
1587
1588 Media, Disk, Beta, Drive A:, Write protect, Enable
1589 Enable the write protect tab for the image in Beta drive
1590 A:.
1591
1592 Media, Disk, Beta, Drive A:, Write protect, Disable
1593 Disable the write protect tab for the image in Beta drive
1594 A:.
1595
1596 Media, Disk, Beta, Drive B:, ...
1597 Media, Disk, Beta, Drive C:, ...
1598 Media, Disk, Beta, Drive D:, ...
1599 As above, but for the remaining emulated Beta disk inter‐
1600 face drives.
1601
1602 Media, Disk, Opus, Drive 1, Insert New
1603 Media, Disk, Opus, Drive 1, Insert...
1604 Media, Disk, Opus, Drive 1, Eject
1605 Media, Disk, Opus, Drive 1, Save
1606 Media, Disk, Opus, Drive 1, Save as...
1607 Media, Disk, Opus, Drive 1, Write protect, Enable
1608 Media, Disk, Opus, Drive 1, Write protect, Disable
1609 Media, Disk, Opus, Drive 2, ...
1610 As above, but for the emulated Opus Discovery drives.
1611
1612 Media, Disk, +D, Drive 1, Insert New
1613 Media, Disk, +D, Drive 1, Insert...
1614 Media, Disk, +D, Drive 1, Eject
1615 Media, Disk, +D, Drive 1, Save
1616 Media, Disk, +D, Drive 1, Save as...
1617 Media, Disk, +D, Drive 1, Write protect, Enable
1618 Media, Disk, +D, Drive 1, Write protect, Disable
1619 Media, Disk, +D, Drive 2, ...
1620 As above, but for the emulated +D drives.
1621
1622 Media, Cartridge, Timex Dock, Insert...
1623 Insert a cartridge into the Timex 2068 dock. This will
1624 cause the emulated machine to be changed to the TC2068
1625 (if it wasn't already a 2068 variant) and reset.
1626
1627 Media, Cartridge, Timex Dock, Eject
1628 Remove the cartridge from the Timex 2068 dock. This will
1629 cause the emulated machine to be reset.
1630
1631 Media, Cartridge, Interface II, Insert...
1632 Insert a cartridge into the Interface II cartridge slot.
1633 This will cause the emulated machine to be reset and the
1634 cartridge loaded.
1635
1636 Media, Cartridge, Interface II, Eject...
1637 Remove the cartridge from the Interface II cartridge
1638 slot. This will cause the emulated machine to be reset.
1639
1640 Media, IDE, Simple 8-bit, Master, Insert...
1641 Connect an IDE hard disk to the simple 8-bit interface's
1642 master channel.
1643
1644 Media, IDE, Simple 8-bit, Master, Commit
1645 Cause any writes which have been done to virtual hard
1646 disk attached to the simple 8-bit interface's master
1647 channel to be committed to the real disk, such that they
1648 survive the virtual disk being ejected.
1649
1650 Media, IDE, Simple 8-bit, Master, Eject
1651 Eject the virtual hard disk from the simple 8-bit inter‐
1652 face's master channel. Note that any writes to the vir‐
1653 tual hard disk will be lost unless the Media, IDE, Simple
1654 8-bit, Master, Commit option is used before the disk is
1655 ejected.
1656
1657 Media, IDE, Simple 8-bit, Slave, Insert...
1658 Media, IDE, Simple 8-bit, Slave, Commit
1659 Media, IDE, Simple 8-bit, Slave, Eject
1660 The same as the Media, IDE, Simple 8-bit, Master entries
1661 above, but for the simple 8-bit interface's slave chan‐
1662 nel.
1663
1664 Media, IDE, ZXATASP, Master, Insert...
1665 Media, IDE, ZXATASP, Master, Commit
1666 Media, IDE, ZXATASP, Master, Eject
1667 Media, IDE, ZXATASP, Slave, Insert...
1668 Media, IDE, ZXATASP, Slave, Commit
1669 Media, IDE, ZXATASP, Slave, Eject
1670 The same as the Media, IDE, Simple 8-bit, Master entries
1671 above, but for the two channels of the ZXATASP interface.
1672
1673 Media, IDE, ZXCF CompactFlash, Insert...
1674 Media, IDE, ZXCF CompactFlash, Commit
1675 Media, IDE, ZXCF CompactFlash, Eject
1676 The same as the Media, IDE, Simple 8-bit, Master entries
1677 above, but for the ZXCF interface's CompactFlash slot.
1678
1679 Media, IDE, DivIDE, Master, Insert...
1680 Media, IDE, DivIDE, Master, Commit
1681 Media, IDE, DivIDE, Eject
1682 Media, IDE, DivIDE, Slave, Insert...
1683 Media, IDE, DivIDE, Slave, Commit
1684 Media, IDE, DivIDE, Eject
1685 The same as the Media, IDE, Simple 8-bit entries above,
1686 but for the two channels of the DivIDE interface.
1687
1688 Help, Keyboard picture...
1689 Display a diagram showing the Spectrum keyboard, and the
1690 various keywords that can be generated with each key from
1691 (48K) BASIC. Under the GTK+ UI, this will appear in a
1692 separate window and emulation continues. With the other
1693 UIs, the picture remains onscreen (and the emulator
1694 paused) until you press Esc or Enter.
1695
1697 When emulating the Spectrum, keys F1 to F10 are used as shortcuts for
1698 various menu items, as described above. The alphanumeric keys (along
1699 with Enter and Space) are mapped as-is to the Spectrum keys. The other
1700 key mappings are:
1701
1702 Shift emulated as Caps Shift
1703
1704 Control, Alt, and Meta
1705 emulated as Symbol Shift (most other modifiers are also mapped
1706 to this)
1707
1708 Backspace
1709 emulated as Caps-0 (Delete)
1710
1711 Esc emulated as Caps-1 (Edit)
1712
1713 Caps Lock
1714 emulated as Caps-2
1715
1716 Cursor keys
1717 emulated as Caps-5/6/7/8 (as appropriate)
1718
1719 Tab emulated as Caps Shift-Symbol Shift (Extended Mode)
1720
1721 Some further punctuation keys are supported, if they exist on your key‐
1722 board - `,', `.', `/', `;', `'', `#', `-', and `='. These are mapped
1723 to the appropriate symbol-shifted keys on the Spectrum.
1724
1725 A list of keys applicable when using the file selection dialogs is
1726 given in the FILE SELECTION section below.
1727
1729 Some of Fuse's UIs allow resizing of the emulated Spectrum's display.
1730 For the window-based ones (GTK+ and Xlib), you can resize the window
1731 by, well, resizing it. :-) Exactly how this works depends on your win‐
1732 dow manager; you may have to make the window over twice the width and
1733 height of the original size before it actually scales up. Fuse attempts
1734 to keep the window `square', but with some window managers this can
1735 mean the window will never resize at all. If you experience this prob‐
1736 lem, the `--no-aspect-hint' option may help.
1737
1738 If you're using the SDL UI under X11 or GTK+, the window will automati‐
1739 cally resize to be the correct size for the graphics filter selected.
1740
1742 Fuse has the ability to apply essentially arbitrary filters between
1743 building its image of the Spectrum's screen, and displaying it on the
1744 emulating machine's monitor. These filters can be used to do various
1745 forms of smoothing, emulation of TV scanlines and various other possi‐
1746 bilities. Support for graphics filters varies between the different
1747 user interfaces, but there are two general classes: the GTK+, Xlib,
1748 SVGAlib and SDL user interfaces (and the saving of .png screenshots)
1749 support `interpolating' filters which use a palette larger than the
1750 Spectrum's 16 colours, while the framebuffer user interface currently
1751 does not support filters at all.
1752
1753 A further complication arises due to the fact that the Timex machines
1754 have their high-resolution video mode with twice the horizontal resolu‐
1755 tion. To deal with this, Fuse treats these machines as having a `nor‐
1756 mal' display size which is twice the size of a normal Spectrum's
1757 screen, leading to a different set of filters being available for these
1758 machines. Note that any of the double or triple-sizing filters are
1759 available for Timex machines only when using the SDL or GTK+ user
1760 interfaces.
1761
1762 The available filters, along with their short name used to select them
1763 from the command line, are:
1764
1765 Timex half (smoothed) (half)
1766 Timex half (skipping) (halfskip)
1767 Two Timex-machine specific filters which scale the screen down
1768 to half normal (Timex) size; that is, the same size as a normal
1769 Spectrum screen. The difference between these two filters is in
1770 how they handle the high-resolution mode: the `smoothed' version
1771 is an interpolating filter which averages pairs of adjacent pix‐
1772 els, while the `skipping' version is a non-interpolating filter
1773 which simply drops every other pixel.
1774
1775 Normal (normal)
1776 The simplest filter: just display one pixel for every pixel on
1777 the Spectrum's screen.
1778
1779 Double size (2x)
1780 Scale the displayed screen up to double size.
1781
1782 Triple size (3x)
1783 Scale the displayed screen up to triple size. Available only
1784 with the GTK+, Xlib and SDL user interfaces or when saving
1785 screenshots of non-Timex machines.
1786
1787 2xSaI (2xsai)
1788 Super 2xSaI (super2xsai)
1789 SuperEagle (supereagle)
1790 Three interpolating filters which apply successively more
1791 smoothing. All three double the size of the displayed screen.
1792
1793 AdvMAME2x (advmame2x)
1794 A double-sizing, non-interpolating filter which attempts to
1795 smooth diagonal lines.
1796
1797 AdvMAME3x (advmame3x)
1798 Very similar to AdvMAME2x, except that it triples the size of
1799 the displayed screen. Available only with the GTK+, Xlib and SDL
1800 user interfaces or when saving screenshots of non-Timex
1801 machines.
1802
1803 TV 2x (tv2x)
1804 TV 3x (tv3x)
1805 Timex TV (timextv)
1806 Three filters which attempt to emulate the effect of television
1807 scanlines. The first is a double-sizing filter for non-Timex
1808 machines, the second is a similar triple-sizing filter, while
1809 the last is a single-sizing filter for Timex machines (note that
1810 this means TV 2X and Timex TV produce the same size output).
1811
1812 PAL TV(paltv)
1813 PAL TV 2x (paltv2x)
1814 PAL TV 3x (paltv3x)
1815 Three filters which attempt to emulate the effect of the PAL TV
1816 system which layers a lower-resolution colour image over the top
1817 of a higher-resolution black-and-white image. The filters can
1818 also optionally add scanlines like the other TV series scalers.
1819
1820 Dot matrix (dotmatrix)
1821 A double-sizing filter which emulates the effect of a dot-matrix
1822 display.
1823
1824 Timex 1.5x (timex15x)
1825 An interpolating Timex-specific filter which scales the Timex
1826 screen up to 1.5x its usual size (which is therefore 3x the size
1827 of a `normal' Spectrum screen). Available only for the GTK+ and
1828 SDL user interfaces or when saving screenshots.
1829
1831 The emulated Spectrum is, by default, an unmodified 48K Spectrum with a
1832 tape player and ZX Printer attached. Oh, and apparently some magical
1833 snapshot load/save machine which is probably best glossed over for the
1834 sake of the analogy. :-)
1835
1836 To emulate different kinds of Spectrum, select the Machine, Select...
1837 menu option, or press F9.
1838
1839 The Spectrum emulation is paused when any dialogs appear. In the widget
1840 UI, it's also paused when menus or the keyboard picture are displayed.
1841
1843 The various models of Spectrum supported a range of ways to connect
1844 printers, three of which are supported by Fuse. Different printers are
1845 made available for the different models:
1846
1847 16, 48, TC2048, TC2068, TS2068
1848 ZX Printer
1849
1850 128/+2/Pentagon
1851 Serial printer (text-only)
1852
1853 +2A, +3
1854 Parallel printer (text-only)
1855
1856 If Opus Discovery or +D emulation is in use and printer emulation is
1857 enabled, text-only emulation of the disk interface's parallel printer
1858 interface is provided.
1859
1860 Any printout is appended to one (or both) of two files, depending on
1861 the printer - these default to printout.txt for text output, and print‐
1862 out.pbm for graphics (PBM images are supported by most image viewers
1863 and converters). These names can be changed with the --textfile and
1864 --graphicsfile options from the command line or configuration file.
1865 While the ZX Printer can only output graphically, simulated text output
1866 is generated at the same time using a crude sort of OCR based on the
1867 current character set (a bit like using SCREEN$). There is currently no
1868 support for graphics when using the serial/parallel output, though any
1869 escape codes used will be `printed' faithfully. (!)
1870
1871 By the way, it's not a good idea to modify the printout.pbm file out‐
1872 side of Fuse if you want to continue appending to it. The header needs
1873 to have a certain layout for Fuse to be able to continue appending to
1874 it correctly, and the file will be overwritten if it can't be appended
1875 to.
1876
1878 The ZXATASP and ZXCF interfaces are two peripherals designed by Sami
1879 Vehmaa which significantly extend the capabilities of the Spectrum.
1880 More details on both are available from Sami's homepage,
1881 http://user.tninet.se/~vjz762w/, but a brief overview is given here.
1882
1883 The real ZXATASP comes with either 128K or 512K of RAM and the ability
1884 to connect an IDE hard disks and a CompactFlash card, while the ZXCF
1885 comes with 128K, 512K or 1024K of RAM and the ability to connect a Com‐
1886 pactFlash card. From an emulation point of view, the two interfaces are
1887 actually very similar as a CompactFlash card is logically just an IDE
1888 hard disk. Currently, Fuse's emulation is fixed at having 512K of RAM
1889 in the ZXATASP and 1024K in the ZXCF.
1890
1891 To activate the ZXATASP, simply select the ZXATASP interface option
1892 from the Options, Peripherals... dialog. The state of the upload and
1893 write protect jumpers is then controlled by the ZXATASP upload and
1894 ZXATASP write protect options. Similarly, the ZXCF is controlled by the
1895 ZXCF interface and ZXCF upload options (the ZXCF write protect is soft‐
1896 ware controlled).
1897
1898 If you're using either the ZXATASP or ZXCF, you almost certainly want
1899 to investigate ResiDOS, the operating system designed for use with the
1900 ZXATASP and ZXCF. ResiDOS provides facilities for using the extra RAM,
1901 accessing the mass storage devices and a task manager allowing virtu‐
1902 ally instant switching between programs on the Spectrum. See
1903 http://www.worldofspectrum.org/residos/ for more details.
1904
1906 The DivIDE is another IDE interface for the Spectrum, of which full
1907 details can be found at http://baze.au.com/divide/. The interface can
1908 be activated via the DivIDE interface option from the Options, Periph‐
1909 erals... dialog, and the state of its write protect jumper controlled
1910 via the DivIDE write protect option. If you're going to be using the
1911 DivIDE, you'll probably want one of the firmwares available from the
1912 DivIDE homepage.
1913
1915 The way you select a file (whether snapshot or tape file) depends on
1916 which UI you're using. So firstly, here's how to use the GTK+ file
1917 selector.
1918
1919 The selector shows the directories and files in the current directory
1920 in two separate subwindows. If either list is too big to fit in the
1921 window, you can use the scrollbar to see the rest (by dragging the
1922 slider, for example), or you can use Shift-Tab (to move the keyboard
1923 focus to a subwindow) and use the cursor keys. To change directory,
1924 double-click it.
1925
1926 To choose a file to load you can either double-click it, or click it
1927 then click Ok. Or click Cancel to abort.
1928
1929 If you're using the keyboard, probably the easiest way to use the
1930 selector is to just ignore it and type in the name. This isn't as irk‐
1931 some as it sounds, since the filename input box has filename completion
1932 - type part of a directory or file name, then press Tab. It should
1933 complete it. If it was a directory, it moves to that directory; if the
1934 completion was ambiguous, it completes as much as possible, and narrows
1935 the filenames shown to those which match. You should press Enter when
1936 you've finished typing the filename, or Esc to abort.
1937
1938 Now, if you're using the widget UI - the one using the Spectrum font -
1939 the selector works a bit differently. The files and directories are all
1940 listed in a single two-column-wide window (the directories are shown at
1941 the top, ending in `/') - the names may be truncated onscreen if
1942 they're too long to fit.
1943
1944 To move the cursor, you can either use the cursor keys, or the Spectrum
1945 equivalents 5/6/7/8, or (similarly) h/j/k/l. For faster movement, the
1946 Page Up, Page Down, Home, and End keys are supported and do what you'd
1947 expect. To select a file or directory, press Enter. To abort, press
1948 Esc.
1949
1950 With both selectors, do bear in mind that all files are shown, whether
1951 Fuse would be able to load them or not.
1952
1954 Firstly, note that the vast majority of this section applies only if
1955 you're using the GTK+ user interface; if you're using one of the widget
1956 user interfaces, you'll get a very basic monitor which shows the cur‐
1957 rent values of the registers and allows you to single step through exe‐
1958 cution or continue.
1959
1960 If you are using the GTK+ user interface, Fuse features a moderately
1961 powerful, completely transparent monitor/debugger, which can be acti‐
1962 vated via the Machine, Debugger ... menu option. A debugger window
1963 will appear, showing the current state of the emulated machine: the
1964 top-left `pane' shows the current state of the Z80 and the last bytes
1965 written to any emulated peripherals. The bottom-left pane lists any
1966 active breakpoints. Moving right, the next pane shows where the Spec‐
1967 trum's 64K memory map (the `W?' and `C?' indicate whether each 8K
1968 chunk is writable or contended respectively), and the next a disassem‐
1969 bly, which by default starts at the current program counter, although
1970 this can be modified either by the `disassemble' command (see below) or
1971 by dragging the scrollbar next to it. The next pane shows the current
1972 stack, and the final pane any `events' which are due to occur and could
1973 affect emulation. Any of these panes can be removed by use of the View
1974 menu. Below the displays are an entry box for debugger commands, and
1975 five buttons for controlling the debugger:
1976
1977 Evaluate
1978 Evaluate the command currently in the entry box.
1979
1980 Single Step
1981 Run precisely one Z80 opcode and then stop emulation again.
1982
1983 Continue
1984 Restart emulation, but leave the debugger window open. Note that
1985 the debugger window will not be updated while emulation is run‐
1986 ning.
1987
1988 Break
1989 Stop emulation and return to the debugger.
1990
1991 Close
1992 Close the debugger window and restart emulation.
1993
1994 Double-clicking on an entry in the stack pane will cause emulation to
1995 run until the program counter reaches the value stored at that address,
1996 while double-clicking on an entry in the `events' pane will cause emu‐
1997 lation to run until that time is reached.
1998
1999 The main power of the debugger is via the commands entered into the
2000 entry box, which are similar in nature (but definitely not identical to
2001 or as powerful as) to those in gdb(1). In general, the debugger is
2002 case-insensitive, and numbers will be interpreted as decimal, unless
2003 prefixed by either `0x' or `$' when they will be interpreted as hex.
2004 Each command can be abbreviated to the portion not in curly braces.
2005
2006 ba{se} number
2007 Change the debugger window to displaying output in base number.
2008 Available values are 10 (decimal) or 16 (hex).
2009
2010 br{eakpoint} [address] [condition]
2011 Set a breakpoint to stop emulation and return to the debugger
2012 whenever an opcode is executed at address and condition evalu‐
2013 ates true. If address is omitted, it defaults to the current
2014 value of PC.
2015
2016 br{eakpoint} p{ort} (r{ead}|w{rite}) port [condition]
2017 Set a breakpoint to trigger whenever IO port port is read from
2018 or written to and condition evaluates true.
2019
2020 br{eakpoint} (r{ead}|w{rite}) [address] [condition]
2021 Set a breakpoint to trigger whenever memory location address is
2022 read from (other than via an opcode fetch) or written to and
2023 condition evaluates true. Address again defaults to the current
2024 value of PC if omitted.
2025
2026 br{eakpoint} ti{me} time [condition]
2027 Set a breakpoint to occur time tstates after the start of the
2028 every frame, assuming condition evaluates true (if one is
2029 given).
2030
2031 br{eakpoint} ev{ent} area:detail [condition]
2032 Set a breakpoint to occur when the event specified by
2033 area:detail occurs and condition evaluates to true. The events
2034 which can be caught are:
2035
2036 divide:page
2037 divide:unpage
2038 The DivIDE interface is paged into or out of memory
2039 respectively
2040 if1:page
2041 if1:unpage
2042 The Interface 1 shadow ROM is paged into or out of memory
2043 rzx:end
2044 An RZX recording finishes playing
2045 tape:play
2046 tape:stop
2047 The emulated tape starts or stops playing
2048 zxcf:page
2049 zxcf:unpage
2050 The ZXCF interface is paged into or out of memory
2051 zxatasp:page
2052 zxatasp:unpage
2053 The ZXATASP interface is paged into or out of memory
2054
2055 In all cases, the event can be specified as area:* to catch all
2056 events from that area.
2057
2058 cl{ear} [address]
2059 Remove all breakpoints at address or the current value of PC if
2060 address is omitted. Port read/write breakpoints are unaffected.
2061
2062 com{mmands} id <newline>
2063 <debugger command> <newline>
2064 <debugger command> <newline>
2065 ...
2066 end
2067 Set things such that the specified debugger commands will be
2068 automatically executed when breakpoint id is triggered. There is
2069 currently no user interface for entering multi-line debugger
2070 commands, so the only way to specify this command is on the com‐
2071 mand-line via the --debugger-command option.
2072
2073 cond{ition} id [condition]
2074 Set breakpoint id to trigger only when condition is true, or
2075 unconditionally if condition is omitted.
2076
2077 co{ntinue}
2078 Equivalent to the Continue button.
2079
2080 del{ete} [id]
2081 Remove breakpoint id, or all breakpoints if id is omitted.
2082
2083 di{sassemble} address
2084 Set the centre panel disassembly to begin at address.
2085
2086 ex{it}
2087 Exit the emulator immediately.
2088
2089 fi{nish}
2090 Exit from the current CALL or equivalent. This isn't infallible:
2091 it works by setting a temporary breakpoint at the current con‐
2092 tents of the stack pointer, so will not function correctly if
2093 the code returns to some other point or plays with its stack in
2094 other ways. Also, setting this breakpoint doesn't disable other
2095 breakpoints, which may trigger before this one. In that case,
2096 the temporary breakpoint remains, and the `continue' command can
2097 be used to return to it.
2098
2099 i{gnore} id count
2100 Do not trigger the next count times that breakpoint id would
2101 have triggered.
2102
2103 n{ext}
2104 Step to the opcode following the current one. As with the `fin‐
2105 ish' command, this works by setting a temporary breakpoint at
2106 the next opcode, so is not infallible.
2107
2108 o{ut} port value
2109 Write value to IO port port.
2110
2111 pr{int} expression
2112 Print the value of expression to standard output.
2113
2114 se{t} address value
2115 Poke value into memory at address.
2116
2117 se{t} register value
2118 Set the value of the Z80 register register to value.
2119
2120 se{t} $variable value
2121 Set the value of the debugger variable variable to value.
2122
2123 s{tep}
2124 Equivalent to the Single Step button.
2125
2126 t{breakpoint} [options]
2127 This is the same as the `breakpoint' command in its various
2128 forms, except that that breakpoint is temporary: it will trigger
2129 once and once only, and then be removed.
2130
2131 Addresses can be specified in one of two forms: either an absolute
2132 addresses, specified by an integer in the range 0x0000 to 0xFFFF or as
2133 a `page:offset' combination, which refers to a location offset bytes
2134 into into memory bank page, independent of where that bank is currently
2135 paged into memory. RAM pages are indicated simply by an integer, while
2136 ROMs are prefixed by `R' (e.g. offset 0x1234 in ROM 1 is specified as
2137 `R1:0x1234'). Pages selected via the /ROMCS line are prefixed with
2138 `C', while the Timex Dock and Exrom use prefixes `D' and `X' respec‐
2139 tively. The 48K machines are treated as having a permanent mapping of
2140 page 5 at 0x4000, page 2 at 0x8000 and page 0 at 0xC000; the 16K Spec‐
2141 trum is treated as having page 5 at 0x4000 and no page at 0x8000 and
2142 0xC000.
2143
2144 Anywhere the debugger is expecting a numeric value, except where it
2145 expects a breakpoint id, you can instead use a numeric expression,
2146 which uses a restricted version of C's syntax; exactly the same syntax
2147 is used for conditional breakpoints, with `0' being false and any other
2148 value being true. In numeric expressions, you can use integer constants
2149 (all calculations are done in integers), register names (which simply
2150 evaluate to the value of the register), debugger variables, parenthe‐
2151 ses, the standard four numeric operations (`+', `-', `*' and `/'), the
2152 (non-)equality operators `==' and `!=', the comparison operators `>',
2153 `<', `>=' and `<=', bitwise and (`&'), or (`|') and exclusive or (`^')
2154 and logical and (`&&') and or (`||').
2155
2157 The `poke finder' is a tool which is designed to make the task of find‐
2158 ing (infinite lives etc.) pokes for games a bit easier: it is similar
2159 to the `Lifeguard' utility which was available for use with the Multi‐
2160 face. It works by maintaining a list of locations in which the current
2161 number of lives (etc.) may be stored, and having the ability to remove
2162 from that list any locations which don't contain a specified value.
2163
2164 The poke finder dialog contains an entry box for specifying the value
2165 to be searched for, a count of the current number of possible locations
2166 and, if there are less than 20 possible locations, a list of the possi‐
2167 ble locations (in `page:offset' format). The five buttons act as fol‐
2168 lows:
2169
2170 Incremented
2171 Remove from the list of possible locations all addresses which
2172 have not been incremented since the last search.
2173 Decremented
2174 Remove from the list of possible locations all addresses which
2175 have not been decremented since the last search.
2176
2177 Search
2178 Remove from the list of possible locations all addresses which
2179 do not contain the value specified in the `Search for' field.
2180
2181 Reset
2182 Reset the poke finder so that all locations are considered pos‐
2183 sible.
2184
2185 Close
2186 Close the dialog. Note that this does not reset the current
2187 state of the poke finder.
2188
2189 Double-clicking on an entry in the list of possible locations will
2190 cause a breakpoint to be set to trigger whenever that location is writ‐
2191 ten to.
2192
2193 An example of how to use this may make things a bit clearer. We'll use
2194 the 128K version of Gryzor. Load the game, define keys to suit and
2195 start playing. Immediately pause the game and bring up the poke finder
2196 dialog. We note that we currently have 6 lives, so enter `6' into the
2197 `Search for' field and click `Search'. This reduces the number of pos‐
2198 sible locations to around 931 (you may get a slightly different number
2199 depending on exactly when you paused the game). Play along a bit and
2200 then (deliberately) lose a life. Pause the game again. As we now have 5
2201 lives, replace the `6' in the 'Search for' field with a `5' and click
2202 `Search' again. This then reduces the list of possible locations to
2203 just one: page 2, offset 0x00BC. This is the only location in memory
2204 which stored `6' when we had 6 lives and `5' when we had 5 lives, so
2205 its pretty likely that this is where the lives count is stored. Double-
2206 clicking on the `2:0x00BC' entry in the dialog will set the appropriate
2207 breakpoint (you may wish to open the debugger at this point to confirm
2208 this). Play along a bit more. When you next lose a life, emulation is
2209 stopped with PC at 0x91CD. Scrolling up a few addresses in the debug‐
2210 ger's disassembly pane shows a value was loaded from 0x80BC (our hypo‐
2211 thetical lives counter), decremented and then stored again to 0x80BC,
2212 which looks very much like the code to reduce the number of lives. We
2213 can now use the debugger to replace the decrement with a NOP (`set
2214 0x91c9 0'), and playing the game some more after this reveals that this
2215 has worked and we now have infinite lives.
2216
2218 In general, disk images for the +3 Spectrum are thought of as being in
2219 DSK format. However, this is actually an slight oversimplification;
2220 there in in fact two similar, but not identical, DSK formats. (The dif‐
2221 ference can be seen by doing `head -1 dskfile': one format will start
2222 `MV - CPCEMU' and the other will start `EXTENDED').
2223
2224 Fuse supports both the `CPCEMU' and `EXTENDED' formats.
2225
2227 Fuse supports Betadisk emulation in its Pentagon and Scorpion emula‐
2228 tion, and also under 48K, TC2048, 128K and +2 (but not +2A) emulation
2229 if the Beta 128 interface option from the Options, Peripherals... dia‐
2230 log is enabled. See the DISK FILE FORMATS section for mode details on
2231 supported disk file formats.
2232
2234 By default, Fuse emulates the Opus Discovery interface with the
2235 optional 2k RAM expansion and a second 40 track single sided disk
2236 drive. See the DISK FILE FORMATS section for mode details on supported
2237 disk file formats. The Opus Discovery's printer port is also emulated
2238 for output only. (See the PRINTER EMULATION section for more details.)
2239 The Opus Discovery may only be used with 16K, 48K, 128K, TC2048 and +2
2240 (not +2A) emulation. To access disks, use the same syntax as Interface
2241 I and Microdrives.
2242
2244 Fuse supports emulating the +D disk and printer interface. See the DISK
2245 FILE FORMATS section for mode details on supported disk file formats.
2246 The +D's printer port is emulated. (See the PRINTER EMULATION section
2247 for more details.) The +D may only be used with 48K, 128K and +2 (not
2248 +2A) emulation. To access disks, you will first need to load G+DOS, by
2249 inserting a disk containing the DOS file (+SYS) and entering "RUN".
2250 Once DOS is loaded, you can load to/from +D disks by prefixing file‐
2251 names with `dn' where `n' is the number of the drive in use. For exam‐
2252 ple, `LOAD d1"myfile"' would load the file named `myfile' from the emu‐
2253 lated drive 1. Microdrive syntax may also be used.
2254
2255 To save a snapshot, choose the `Machine, NMI' menu option, and then
2256 press `4' to save a 48K snapshot, or `5' to save a 128K snapshot. When
2257 saving a 128K snapshot, you must then press Y or N to indicate whether
2258 the screen changed while saving the snapshot, to finish saving. You
2259 can also choose `3' to save a screenshot to disk. Options `1' and `2'
2260 allow screenshots to be printed (in monochrome) if printer emulation is
2261 enabled.
2262
2264 Fuse supports several disk image formats in its +D and Beta 128 emula‐
2265 tion.
2266
2267 For reading:
2268
2269 .UDI
2270 Ultra Disk Image; for specification please see http://scratch‐
2271 pad.wikia.com/wiki/Spectrum_emulator_file_format:_udi or
2272 http://zxmak.narod.ru/docs.htm
2273 This is the only image format which can store all the relevant
2274 information of the recorded data on a magnetic disk, so it can
2275 be used for any non standard disk format. Fuse can read all
2276 extended track types too (mixed FM/MFM, or tracks with 'WEAK'
2277 data or even compressed tracks too).
2278
2279 .FDI
2280 UKV Spectrum Debugger disk image format.
2281
2282 .MGT .IMG
2283 DISCiPLE/+D file formats.
2284
2285 .SAD .SDF
2286 For compatibility with SAM Coupé disk images using these for‐
2287 mats. Note that SAM Coupé `.DSK' images share the same format
2288 as `.MGT'.
2289
2290 .TRD
2291 TR-DOS disk image; for detailed information please see
2292 http://www.retroplay.com/Mecenate/ramsoft/tr-info.zip
2293
2294 .SCL
2295 A simple archive format for TR-DOS disk files.
2296
2297 .TD0
2298 Teledisk image format; Fuse supports only files which do not use
2299 the "Advanced Compression" option. Detailed description found in
2300 http://www.classiccmp.org/dunfield/img/td0notes.txt and
2301 http://www.fpns.net/willy/wteledsk.htm
2302
2303 .DSK
2304 CPC disk image format; Fuse supports the plain old and the new
2305 extended CPC format too. Further information please see the THE
2306 .DSK FORMAT section and the CPCEMU manual section 7.7.1
2307 http://www.cpc-emu.org/linux/cpcemu_e.txt or the
2308 http://www.kjthacker.f2s.com/docs/extdsk.html
2309
2310 .OPD .OPU
2311 Opus Discovery file formats.
2312
2313 Fuse supports most of the above formats for writing: .UDI .FDI .MGT
2314 .IMG .SAD .TRD .SCL .OPD .OPU .DSK (only the old CPC format).
2315 You can save disk images with any output format, just select the appro‐
2316 priate extension. (e.g. ` elite3.udi ' to save as an UDI file). If the
2317 appropriate libraries were available when libspectrum(3) was compiled,
2318 than Fuse will try to create UDI images with compressed tracks to save
2319 disk space. There is a .LOG ` image ' format for debugging purpose.
2320 This is a plain text file contains three dump of the loaded disk image
2321 at different details. Not all image formats can store all disk images.
2322 You cannot save a disk image with an inappropriate format that loses
2323 some information (e.g. variable track length or sector length).
2324
2326 Some copy protections have what is described as 'weak/random' data.
2327 Each time the sector is read one or more bytes will change, the value
2328 may be random between consecutive reads of the same sector. Two disk
2329 image formats (Extended DSK and UDI) can store this type of data. Fuse
2330 can read and use weak sector data from EDSK and UDI files when present,
2331 and can save back weak sector data to UDI image format.
2332
2334 Assuming the appropriate libraries were available when libspectrum(3)
2335 was compiled, snapshots, tape images, dock cartridges and input record‐
2336 ing files can be read from files compressed with bzip2(3) or gzip(3)
2337 just as if they were uncompressed. There is currently no support for
2338 reading compressed +3, +D or Beta disk images.
2339
2341 Selecting a startup filter doesn't work properly with user interfaces
2342 other than SDL and GTK+.
2343
2344 Changing virtual consoles when using SVGAlib for joystick support
2345 causes Fuse to exit. If this is a problem, compile Fuse with the
2346 `--disable-ui-joystick' option.
2347
2348 The poke finder can't search outside `normal' RAM.
2349
2350 Using the Options, Joysticks, Joystick 1... or Options, Joysticks,
2351 Joystick 2... options under GTK+ 2.x produces a large number of GTK+
2352 critical warnings. This is a GTK+ bug (#144427), which is fixed in GTK+
2353 2.4.4.
2354
2355 The libao file output devices not work properly with the GTK+ UI. No
2356 error reporting, but the created file does not contain any sound data.
2357 If you use a `weak' machine alsa09 makes a lot of clicks and pops and
2358 will output `ALSA: underrun, at least 0ms.' error messages.
2359
2361 ~/.fuserc
2362
2364 bzip2(3), fuse-utils(1), gzip(3), libspectrum(3), ogg123(1), xspect(1),
2365 xzx(1)
2366
2367 The comp.sys.sinclair Spectrum FAQ, at
2368 http://www.worldofspectrum.org/faq/index.html.
2369
2371 Philip Kendall (philip-fuse@shadowmagic.org.uk).
2372
2373 Matan Ziv-Av wrote the SVGAlib and framebuffer UIs, the glib replace‐
2374 ment code, and did some work on the OSS-specific sound code and the
2375 original widget UI code.
2376
2377 Russell Marks wrote the sound emulation and OSS-specific sound code,
2378 the joystick emulation, some of the printer code, and the original ver‐
2379 sion of this man page.
2380
2381 John Elliott's lib765 and libdsk libraries were used for the original
2382 +3 disk and disk image support.
2383
2384 Ian Collier wrote the ZX Printer emulation (for xz80).
2385
2386 Darren Salt wrote the original versions of the code for +3 emulation,
2387 SLT support, MITSHM support (for the Xlib UI), TZX raw data blocks, RZX
2388 embedded snapshots and compression, the Kempston mouse emulation and
2389 made many improvements to the widget code.
2390
2391 Alexander Yurchenko wrote the OpenBSD/Solaris-specific sound code.
2392
2393 Fredrick Meunier wrote the TC2048, TS2068, Pentagon and Spectrum SE
2394 support, the CoreAudio sound code, as well as maintaining the OS X port
2395 and importing the graphics filter code.
2396
2397 Ludvig Strigeus and The ScummVM project wrote the original graphics
2398 filter code.
2399
2400 Dmitry Sanarin wrote the original Beta disk interface emulation (for
2401 Glukalka).
2402
2403 Witold Filipczyk wrote the TC2068 support.
2404
2405 Matthew Westcott wrote the AY logging code and the DivIDE emulation.
2406
2407 Marek Januszewski wrote various bits of code to make Fuse work under
2408 Win32, including the DirectDraw user interface.
2409
2410 Stuart Brady wrote the +D emulation, Scorpion emulation and the HP-UX
2411 sound code.
2412
2413 Garry Lancaster wrote the 8-bit IDE, ZXATASP and ZXCF interface emula‐
2414 tions.
2415
2416 Gergely Szasz wrote the Interface I and Microdrive emulation, the PAL
2417 TV scalers, the TV 3x scaler, the movie logging code, the libao sound
2418 code, the upd765 disk controller used in the +3 and made many improve‐
2419 ments to the widget code.
2420
2421 Michael D Wynne wrote the original Opus disk interface emulation (for
2422 EightyOne).
2423
2424
2425
2426Version 1.0.0.1 12th January, 2011 fuse(1)