File: FAQ

package info (click to toggle)
xzx 2.4.4-1
  • links: PTS
  • area: non-free
  • in suites: slink
  • size: 1,976 kB
  • ctags: 1,632
  • sloc: ansic: 20,171; yacc: 458; lex: 132; makefile: 43; sh: 13
file content (159 lines) | stat: -rw-r--r-- 7,351 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
Q: I get a "virtual memory exhausted" message during the compilation of emul.c.

A: The file emul.c contains the code for the emulation of the Z80, which itself
   is a huge switch statement.  With optimizations turned on, gcc needs a huge
   amount of memory in order to compile/optimize this code.  Remove
   "-DHAVE_ENOUGH_SWAP" from the CDEBUGFLAGS and compile again (this will make
   the code a little slower because it turns parts of the switch statement into
   sepparate functions, but on a fast machine it shouldn't be noticeable).

Q: I get "xzx: warning: output to 128K/+3 port <fffd> in 48K mode" when running
   the emulator in 48K mode.

A: Your (48k) program accesses ports from the 128K machinery.  There are mostly
   BFFDh and FFFDh (the addresses of the AY sound chip).  Remove "-DPEDANTIC"
   from the CDEBUGFLAGS and recompile XZX.

Q: I have a snapshot whose format is not supported by XZX.  What can I do to
   load it and run it in XZX ?

A: Use a snapshot converter, such as SPCONV (which converts to/from almost any
   snap format in existence).  You can download it from the following URLs

   ftp://ftp.nvg.unit.no/pub/sinclair/utils/generic/spconv-110.zip.

   Also, you can download the program "zxs2tap" (converter from digital tape
   format ".zxs" to canonical tape format ".tap") from 

   http://zx-museum.org.ru/mu/

Q: When I load certain TAP files, it loads the intro/screen and then freezes.

A: Many Spectrum programs use their own loading routine, which is not trapped
   by the emulator (in other words, they have a loop that just sits tight and
   listens to the EAR port).  There's no way to load such programs (your only
   hope is to find someone who hacked them to use the regular ROM load
   routines or get a VOC file version of the TAP.

Q: When I load certain TAP files, they seem to run fine, but sometimes reboot
   the emulator.  What to do ?

A: It's impossible to detect from the TAP file what kind of Spectrum model is
   needed for that file.  Sometimes, you need to load the TAP in 48k
   architecture, some other times in 128k architecture.  For instance, Rick
   Dangerous 2, only runs in 48k, whereas Turrican 2 and Narc only run in 128k
   mode.  Try both and see which works for you.

Q: When I use '-scale 3' is slows down the emulator.  What should I do ?

A: If you compiled XZX without "-DHAVE_ENOUGH_SWAP" then recompile using this -
   if your machine allows it.

   If you are running on a terminal that does not use MIT shared memory then
   try and find one that does.  Note: MIT shared memory is not possible over
   networks.

   Or try to decrease the screen refresh rate step by step until you get
   reasonable speed.  Alternatively, buy a faster video card :-)

Q: The emulator dies immediately with a message like "xzx: error: can't open
   ROM image <roms/spectrum.rom>".

A: Have you installed the application defaults file? Have you installed the ROM
   images with 'make install' ? There are certain resources that are installed
   in the defaults file and which indicate where the roms are located : make
   sure you've installed the XZX.ad file and that you've placed the roms in the
   right place.

Q: Arkanoid, Ghost'n'Goblins, Green Baret flicker heavily.  What to do?

A: Real Spectrum draws picture gradualy (line by line, from top to bottom).
   Emulator draws pictures simultaneous, in a fixed moment after interrupt
   starts.  So, it is possible that programs which are based on this fact may
   produce some nasty effects, like flickering of moving sprites, appearing
   of the "ghosts", sprite vanashing and so on.  Very often that problems may
   be solved by changing the "refresh rate" and "tstates per frame"
   configuration parameters (Generic Options).

   Since version 2.2.0 you can choose between a simultaneous and line-by-line
   video emulation at compile time.  The second one removes the problem with
   flickering sprites.

Q: I get a "snapshot uses IF1 but xzx wasn't compiled with IF1 support"
   message when loading a snapshot.

A: You've compiled XZX without Interface I support.  The person who has taken
   the snap had the Interface I activated.  Your snapshot may or may not run
   under XZX (your best shot is to recompile XZX with IF1 activated).

Q: I've downloaded snapshots from the net and they crash the emulator.

A: Well, some snapshots are known to not run with XZX.  The main reason for
   that is that they need an exact Spectrum timing (T states) and XZX does not
   emulate T states when accessing memory that is contended with the ULA.

Q: XZX doesn't compile with debug flags on (-g3 etc.) and complains that it
   cannot find "__outb" in the libraries.

A: This is a problem with the way the include file "/usr/include/asm/io.h" is
   written in Linux 96.  You need to edit it and change "extern inline ..." to
   "static inline ..." in a few places.  Here's a diff between the original
   version that comes with Linux and the patched version:

===============================
diff /usr/include/asm/io.h /usr/include/asm/io.h.orig 
91c91
< static inline void __out##s(unsigned x value, unsigned short port) {
---
> extern inline void __out##s(unsigned x value, unsigned short port) {
103c103
< static inline RETURN_TYPE __in##s(unsigned short port) { RETURN_TYPE _v;
---
> extern inline RETURN_TYPE __in##s(unsigned short port) { RETURN_TYPE _v;
115c115
< static inline void ins##s(unsigned short port, void * addr, unsigned
long count) \
---
> extern inline void ins##s(unsigned short port, void * addr, unsigned
long count) \
120c120
< static inline void outs##s(unsigned short port, const void * addr,
unsigned long count) \
---
> extern inline void outs##s(unsigned short port, const void * addr,
unsigned long count) \
===============================

Q: Some games, like Video Olympics, do not respond to keyboard input under XZX
   but do it under xz80.

A: XZX emulates by standard an Issue 3 Spectrum.  Some older programs need an
   Issue 2 emulation in order to respond to key press.

Q: Some games that use the idle port do not run under XZX.

A: Yes, allthough XZX emulates the idle port there are still some games that
   do not run under XZX.  You must poke them to make them running under XZX.
   Use either the build-in debugger or the Multiface for poking.

Q: I exited the emulator, and now the key autorepeat is turned off.

A: XZX turns of the autorepeat.  If you kill the window from the window manager
   then the exit routine will never be reached and autorepeat will remain off.
   You may be stuck by the number of function keys on your terminal though,
   since F10 exits the emulator and some keyboards have less than 10 function
   keys.  Enter the OSD's by hitting F1, then you can choose any function key
   option.

Q: Some of the function keys do not work.

A: Some window managers like to steal the function keys for its own purposes.
   As long as F1 works then you can pick up any option.

Q: When compiled with IF1, XZX complains about invalid cartridges even if IF1
   is disabled.

A: Well, at startup of the emulator the init-functions of all modules are
   getting executed.  The IF1 and +3 functions try to open the files specified
   either in the X-resources or at command line.  If they are not valid i.e.
   can not be found you get these messages.  Ignore them.