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