home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Freesoft 1999 February
/
Freesoft_1999-02_cd.bin
/
Recenz
/
Emulator
/
Joystick
/
JOYEMU.FAQ
< prev
next >
Wrap
Text File
|
1997-12-02
|
38KB
|
840 lines
Frequently asked questions about JoyEmu and JoyCP
_________________________________________________
This document includes many questions that I often receive about JoyEmu
and JoyCP; most questions, as you will see, are already answered in the
manual that is included in the package (JOYEMU.TXT); since many people seem
too lazy to scan all the document, or too anxious to try the program for
wasting their time reading the manual, I decided to put here what I think is
the essential information to start using the program.
I hope you will appreciate the effort.
-- Simone Zanella
List of questions
_________________
[Q01] What is JoyEm(u)?
[Q02] What's the difference between JoyEm and JoyEmu?
[Q03] How safe is JoyEm(u) for my system?
Could it cause problems to Windows 95?
How about real Ms-Dos?
[Q04] What is JoyCP?
[Q05] Could you tell me the right way to use JoyEmu in a quick line?
[Q06] Should I always include the joystick setting file on the command line
(parameter J)?
[Q07] I did everything as described, but I still can't get JoyEmu to work
under <my favorite program>; what's wrong?
[Q08] Why JoyEmu does not work with <Windows 95 native program>?
[Q09] I don't feel comfortable having JoyEm or JoyEmu resident all the time;
can I use it under Windows 95 without loading it at startup?
[Q10] I read that JoyEmu supports joysticks with up to 8 fire buttons;
how can it be?
[Q11] I have more than one joystick and I'd like to change them on the fly;
what should I do?
[Q12] Does JoyEmu emulate all keys?
[Q13] How can I stuff key combinations? Does it take the same time to
stuff different keys?
[Q14] I need to stuff different keys for diagonals; what should I do?
[Q15] My joypad does not have enough buttons for the keys to be emulated;
what can I do?
[Q16] Why do I get different keys stuffed when Caps Lock and Num Lock are
on or off?
[Q17] For certain applications, I would like JoyEmu NOT to stuff any key when
I press a certain button or direction; is it possible?
[Q18] When using JoyEmu, it seems that Shift-F10 and Shift-F8 are disabled,
even when Dos doesn't seem to be busy; what's happening?
[Q19] I can't uninstall JoyEmu once resident; why?
[Q20] I can't update resident emulator with command line parameters; why?
[Q21] Why under certain circumstances JoyEmu's hot keys don't work?
[Q22] Why is calibration needed for JoyEmu to work?
[Q23] What's the difference between timed and full reading mode?
[Q24] What is 'force break mode'?
[Q25] What is 'sampling delay'?
[Q26] What is 'hold mode'?
[Q27] What is joystick sensibility?
[Q28] What is mouse tolerance?
[Q29] What are the switch keys and why do I need them?
[Q30] What is 'autofire'?
[Q31] What is 'hot key support'?
[Q32] Sometimes, after using JoyEm(u) in a Dos prompt (that is: opening a
Dos prompt; installing the emulator; running an app; closing the Dos
prompt) the system returns in an odd status: a shift key (Alt, Ctrl,
Shift) seems to be always pressed. What should I do?
[Q33] I have a program with weak joystick/mouse support and I would like to
use JoyEmu with it; what should I do?
[Q34] What about merging JoyEmu and JoyEm in a single program?
[Q35] Who is the author of JoyEmu? Simone Zanella or Pin Fei Sun?
What does 'SZP' stand for?
[Q36] What about a Windows 95 version of JoyEmu and JoyCP?
[Q37] What about the competitors?
Questions and answers
_____________________
[Q01] What is JoyEm(u)?
[A01] JOYEMU and JOYEM are keyboard emulators for joystick and mouse: they are
two TSR programs that let you use your input devices with software
that accepts only keyboard input, or with those programs that have weak
support for other kind of input.
[Q02] What's the difference between JoyEm and JoyEmu?
[A02] JoyEmu and JoyEm are essentially the same program, but JoyEm lacks hot
keys support. Hot keys let you change on the fly many parameters of the
emulation, but are not strictly necessary -- both JoyEmu and JoyEm
accept command line parameters to update the status of the resident
emulator; moreover, JoyCP can be used to change all the settings of
TSR emulator. Use JoyEm when the application in foreground uses the
hot keys of JoyEmu as standard keys for entering data, or run JoyEmu
with parameter 'Y-'.
JoyEm has the following advantages:
- the keyboard response is faster, since the handler does not search for
hot keys at each keypress (the speed is the same if you disable hot
key support with parameter 'Y-' in JoyEmu);
- it uses less memory;
- it can be used to avoid troubles with programs in which the hot keys
have a special meaning or are used to enter data (problem overcome in
JoyEmu by using 'Y-').
[Q03] How safe is JoyEm(u) for my system?
Could it cause problems to Windows 95?
How about real Ms-Dos?
[A03] JoyEm and JoyEmu are perfectly safe as long as:
- they are disabled, or
- joysticks are not disconnected when they are enabled AND devices
are correctly calibrated.
NEVER disconnect a joystick while the emulator is in memory and is
active; this would lead to a continuous stream of keys stuffed into
keyboard buffer, that would prevent the use of the PC; in this case,
always disable emulation (by Shift-F9 or parameter '-') or unload the
emulator (by Shift-F10 or parameter 'U') before operating.
Moreover, disconnecting hardware while your PC is powered on is not very
healthy for both the attached device and your computer.
JOYEMU does not change the mouse handler; using an interrupt driven
approach revealed that it worked worse than a polling one. This means
that JOYEMU is perfectly safe in Windows 95; be aware, though, that
when mouse emulation is active you won't be able to use the mouse as
usual in Windows: so, it is a good idea to activate and de-activate
keyboard emulation via mouse only through batch files.
No Win 95 locks up caused by JoyEmu have ever been reported to me; I
have JoyEmu resident all the time, and I heavily use my PC: the
presence of the TSR has not weakened (or strenghtened :) ) the OS.
If you are experiencing problems, I'd suggest that you take a look at
the other TSRs loaded.
It has been reported, however, that sometimes, with motherboards
equipped with Intel TX chipset, if JoyEm(u) is active when you shut
down Windows 95, the system locks up between the screen that tells you
that the system is being shut down and the screen that tells you that
it is safe to power off the system. This is not a big problem in itself;
just turn off emulation before shutting down and everything will work
as expected. Actually, emulation should always stay disabled, except
when really needed, because in this way you will get the best
performance from your system all the time.
Regarding real Ms-Dos, I must say that I no longer support it.
I think there's no reason for any user to NOT switch to Windows 95:
it is easier to use, let you do a lot more things (among these,
running more programs at the same time) and 99.9% of Ms-Dos programs
work flawlessly under it (thanks Bill, spell my name correctly
on that cheque! :). There are cases in which I noticed a good
speed boost of Dos programs under Windows 95; moreover, the additional
layer of protection offered by the fact that Dos apps are run in Dos
boxes, which can be considered at all the effects real virtual
machines, is really welcome by programmers that have thus a method of
safely debugging their Dos programs.
All this granted, JoyEmu is much safer under Windows 95 and works
much better; I can't explain why in details, but it seems that
the mono-task nature of real Ms-Dos causes troubles when you don't
have enough power to handle both a calculation-intensive program
(such an emulator of arcade vector games) and the joystick/mouse read
routines. It seems a paradox, since Windows 95 does eat up a little
bit of resources, but you'll need a more powerful PC to run JoyEmu
under real Ms-Dos than under Windows 95 - that's a fact.
If you happen to run a cpu-intensive program with JoyEmu under
real Ms-Dos, you could experience lock ups; this is especially true
if you use mouse emulation, which in turn seems connected to
the nature of mouse driver used.
There's NOTHING I can do to optimize better the code or to reduce
the number of operations requested for emulation; the great number
of features included do NOT increase the resources requested, since the
features not used are skipped by dinamically changing the code
executed, rather than test for various status flags; also, the heavy
usage of lookup tables limits very efficiently the operations that must
be executed during emulation.
Experimenting with the sampling delay can help in a few cases, but
remember that the cpu load is not fixed: it changes during program
execution; so, even if a program seems to work at first, it could
hang later on. Also, keep in mind that:
- using autofire;
- activating keyboard emulation via mouse;
- setting joysticks to 8-way mode;
- using switch keys;
- setting the number of joystick buttons to a number greater than
the number of buttons really needed;
DOES decrease emulation efficiency; as a rule, limit the options
active to those really needed.
[Q04] What is JoyCP?
[A04] JoyCP is a Control Panel for JoyEm(u); it can be used to change on the
fly the parameters of the resident emulator and to create configuration
files to be used when installing the TSRs or updating them through
command line parameters.
[Q05] Could you tell me the right way to use JoyEmu in a quick line?
[A05] First of all, run JCMPTST and see if the text 'joyemu' (or 'JOYEMU')
appears on the command line; if it doesn't, sorry, but JoyEmu is not
compatible with your system. Read the "BEFORE START" paragraph of the
manual.
If the string appears correctly, run JoyCP, configure settings for
joystick, mouse and keyboard, creating a JS and a KS file.
I suggest to use JoyEm and then use command line parameters or JoyCP to
change settings. Run:
joyem Jjoyset.js Kkeyset.ks
to start emulation; remember to substitute 'joyset.js' and 'keyset.ks'
with the file names you used to save your configurations and to include
the full path if they don't reside in the current directory.
You should see a message ending with:
JoyEm installed!
Now try using your gamepad and see if keys are stuffed correctly.
Remember that, under Windows 95, if you don't include JoyEm(u) at the
start of your AUTOEXEC.BAT, you must run JoyEmu before the program under
which emulation should be used, IN THE SAME DOS BOX. When you close the
box, the emulator will be removed; when you switch to another dos box,
you won't have keyboard emulation.
[Q06] Should I always include the joystick setting file on the command line
(parameter J)?
[A06] No. I suggest to calibrate your joystick(s) once and for all, saving
the resulting calibration information to JOYSET.JS in the directory
of JOYEM.EXE. It is a good idea also to set common key settings and
save them to KEYSET.KS in the same directory. This way, you can create
a '.KS' file for each application under which emulation is needed and
then start JoyEm or JoyEmu just with the 'K' parameter. This would save
you the hassle to update all the joystick configurations if you change
your controller.
Remember to use the name JOYSET.JS for the standard configuration,
because that is the name of the file looked for by JoyEmu upon startup.
To start JOYEMU, you MUST specify a JS configuration file, even if no
joystick is connected; if you don't have any joystick, use the file
MOUSE.JS enclosed in the package.
[Q07] I did everything as described, but I still can't get JoyEmu to work
under <my favorite program>; what's wrong?
[A07] There are a few programs under which emulation doesn't work; if keys are
stuffed on the command line but not while the program in foreground
is running then it is probably an incompatibility with that particular
program. Really sorry about that: try writing the author to convince
him to add native joystick support (I've written a freeware joystick
library in C, very portable, that can be used for this purpose; write
me to get a copy), or try to persuade him to switch to a more standard
keyboard handler :)
[Q08] Why JoyEmu does not work with <Windows 95 native program>?
[A08] You must load JoyEmu before Win 95 starts; put it at the very beginning
of your AUTOEXEC.BAT. It is a good idea to keep JoyEmu resident but
deactivated; this way, the CPU load is virtually unnoticeable.
If you load JoyEmu at Windows 95 startup with:
joyem -
or
joyemu - y-
JoyEmu stays resident, but in disabled status: in this way, resources
taken are totally insignificant (just 17 nop per second are exploited
by JoyEmu: compare it to the millions of operations that a modern cpu
can execute in the same time...).
NOTE: the default key set file should have keyboard emulation via mouse
DISABLED, or you won't be able to use the mouse in Windows as usual.
Only enable mouse emulation when needed.
[Q09] I don't feel comfortable having JoyEm or JoyEmu resident all the time;
can I use it under Windows 95 without loading it at startup?
[A09] Yes, if you are not going to use it for Windows 95 native programs.
To use JoyEmu with programs run in a Dos box, write a batch file
for each, following this template:
joyem Kmykeys.ks +
program
joyem - U
where 'mykeys.ks' is the configuration file which include key settings
for 'program'.
This batch file can be used even when JoyEm is loaded before Win 95
starts; in this case, emulation is activated upon entrance and
de-activated when exiting; if used under real Ms-Dos, JoyEm is installed
just before 'program' starts and removed immediately after it ends.
Even if JoyEm is not explicitly removed, when started in a Dos box it
is automatically removed by the OS when you close the box.
[Q10] I read that JoyEmu supports joysticks with up to 8 fire buttons;
how can it be?
[A10] There are PC controllers available that have more than 2 fire buttons;
buttons 3 and 4 use the lines in the interface for buttons on the
other joystick, buttons 5..8 use direction lines for the second
joystick. If you are going to connect two joysticks via a Y-adapter, you
will probably use traditional models with two buttons.
The key assignments for fire buttons 5..8 are stored in place of key
assignments for the buttons 1..4 of the second joystick; this is done
both to spare memory and because one 6/8-button joystick uses all the
lines available in the joystick interface, so you cannot connect any
other device.
I don't know if 8-button joysticks are actually being produced (I mean
joysticks with 8 DISTINCT fire buttons, not controllers with duplicated
turbo or autofire buttons), but you can easily build such a beast and
that's the reason why I put in this feature.
One thing that you must keep in mind is that fire buttons 5 and 7 (as
well as 6 and 8) are mutually exclusive; the reason is very simple: they
share the same direction line and just as you can't go up and down at
the same time, you can't press buttons 6 and 8 simultaneously.
[Q11] I have more than one joystick and I'd like to change them on the fly;
what should I do?
[A11] If you want to change on the fly the joysticks connected, there are
several ways of doing it; this is the suggested method -- replace
JOYEMU with JOYEM if you prefer using the version without the hot keys:
AFTER THE EMULATOR IS INSTALLED IN MEMORY:
1) use:
JOYEMU -
to momentarily turn off emulation;
2) disconnect and reconnect joystick(s) as needed;
3a) calibrate joystick(s) through JOYCP;
3b) if you prefer, you can calibrate them once and for all and save
configuration to MYJOY2.JS, for example;
4) now update resident emulator with the new configuration and turn on
emulation; example is given for user selected configuration:
JOYEMU JMYJOY2.JS +
Always put '+' as the last parameter!
If you disconnect/reconnect your joysticks very frequently, you can
automate this sequence by writing a batch file.
Of course, the same operation can be accomplished entirely through JOYCP:
1) select "TSR settings..";
switch off "Emulation" and select "Update TSR";
2) disconnect and reconnect joystick(s) as needed;
3a) select "Joy settings.." and calibrate joysticks as needed;
3b) if you prefer, you can calibrate them once and for all and save
configuration to MYJOY2.JS, for example;
4) select "Update TSR" in the "Joy settings" submenu;
select "TSR settings.."; switch on "Emulation" and select "Update
TSR".
If you are simply desconnecting one of the joysticks, you can do it by
turning emulation off, removing the device and then turning emulation
on; in fact, the number of joysticks connected is checked every time
that TSR emulation is turned on.
[Q12] Does JoyEmu emulate all keys?
[A12] Yes, except Print Screen and Pause; I don't think they're really
needed, though.
[Q13] How can I stuff key combinations? Does it take the same time to
stuff different keys?
[A13] Turn on shift mode through JoyCP or by using T parameter (JoyEm/JoyEmu).
Leave shift mode off by default, because it slows down things a little,
and is usually not needed by most programs.
Not all keys are stuffed in the same time; the following keys require
two scan codes, both when pressed and released:
- AltGr
- right Control
- Insert
- Delete
- Home
- End
- Pag Up
- Pag Down
- gray arrows
- num /
- num Enter.
So, whenever it is possible, you should remap the keys used by the
program in foreground to other keys (especially for direction keys).
[Q14] I need to stuff different keys for diagonals; what should I do?
[A14] In the "Key settings" menu of JoyCP, select "Keys joystick x.." and then
"Diagonals.."; activate 8 way mode and select keys to be stuffed
(they can be no key at all as well).
[Q15] My joypad does not have enough buttons for the keys to be emulated;
what can I do?
[A15] Try using switch buttons (see answer A29).
[Q16] Why do I get different keys stuffed when Caps Lock and Num Lock are
on or off?
[A16] Alphabetic characters are converted to upper case if Caps Lock is
active, and direction keys in the numeric pad are converted to numbers
if Num Lock is active; that's normal, JoyEm(u) does NOT stuff keys to
change Caps and Num status.
[Q17] For certain applications, I would like JoyEmu NOT to stuff any key when
I press a certain button or direction; is it possible?
[A17] If you don't want to stuff any key at all for a certain button/
direction, select the option in JoyCP with the SPACE BAR, that is:
- move selection bar to highlight desired direction or button;
- press the space bar.
If you select the option with return, right arrow or left mouse button,
you will set the key to be stuffed as usual, by pressing any key on the
keyboard (the key can be the space bar as well).
[Q18] When using JoyEmu, it seems that Shift-F10 and Shift-F8 are disabled,
even when Dos doesn't seem to be busy; what's happening?
[A18] Even if you are at the command line level it can happen that
Dos is busy when you press those keys; just keep pressing them until
you hear the confirmation beep. The alternative would be to keep track
of the request and serve it as soon as Dos exits the busy state, but
this is very time consuming and is not currently implemented.
Also, be sure that hot key support is on (parameter 'Y').
[Q19] I can't uninstall JoyEmu once resident; why?
[A19] You can't uninstall JoyEm(u) if one or more TSR programs have been
installed after it; unload the other TSRs in reverse order of
installation, then uninstall the emulator.
[Q20] I can't update resident emulator with command line parameters; why?
[A20] You must use JoyEm to update a resident JoyEm and JoyEmu to update a
resident JoyEmu; you can NOT set resident JoyEm with JoyEmu and
vice-versa. Also, be sure to have just one copy of JOYEMU.EXE and
JOYEM.EXE in your path, because different versions cannot be mixed
when using command line parameters.
You can, however, use a batch file to update a resident emulator
without knowing which one is installed; a special parameter (D)
is supplied for this purpose. If you copy the following lines
to a text file and you call it JOYUPD.BAT, you can use:
CALL JOYUPD.BAT param [param..]
to update whichever emulator is in memory.
-->cut here<--
@ECHO OFF
JOYEM D
IF ERRORLEVEL 1 GOTO JOYEM
JOYEMU D
IF ERRORLEVEL 1 GOTO JOYEMU
GOTO ERROR
:JOYEM
JOYEM %1 %2 %3 %4 %5 %6 %7 %8 %9
GOTO END
:JOYEMU
JOYEMU %1 %2 %3 %4 %5 %6 %7 %8 %9
GOTO END
:ERROR
ECHO JoyEm(u) is not installed.
:END
-->cut here<--
[Q21] Why under certain circumstances JoyEmu's hot keys don't work?
[A21] Many programs (especially games) chain the keyboard handler to get
faster response and to filter unwanted keys; while these programs are
running, JoyEmu's hot keys may not be accessible. Moreover, it is safer
to use the hot keys on Dos command line.
[Q22] Why is calibration needed for JoyEmu to work?
[A22] PC joysticks and joypads, unlike those found in most consoles and
old computers (as CBM 64 and Amiga), are analogue devices; that is,
they return many different values when the stick is moved off-center,
depending on the amount of the offset.
Unfortunately, different joysticks return different values, and the
values themselves depend on the machine to which the controller is
connected; that is the reason why the joysticks need to be 'calibrated'.
An automatic calibration procedure could be implemented (and is
actually used in many modern games, as joypad popularity increases),
but a few assumptions are needed for it to work:
1) joystick must be centered when the program is run;
2) the values returned when the joystick is in the center position must
be exactly half of the total excursion, both horizontal and
vertical;
3) the excursion itself must be significative.
Since there are devices that do NOT respect the second assumption,
for maximum compatibility JoyEmu uses a manual calibration procedure.
By the way: manual calibration speeds up emulation.
[Q23] What's the difference between timed and full reading mode?
[A23] Full reading mode is there just for compatibility with future (and
faster) machines; you should use timed reading all the time, because
it gives better performance. Use timed reading especially if the
program in foreground seems to execute too slowly.
[Q24] What is 'force break mode'?
[A24] JoyEmu has a switch that can be used to force key release before
each keypress; forcing release is more compatible, but since a higher
number of scan codes is stuffed to the keyboard buffer it COULD slow
down the emulation on slower machines; to speed up key stuffing (up to
18 keypresses per second), turn off force break mode.
[Q25] What is 'sampling delay'?
[A25] The sampling delay let you decide how often JoyEmu should probe the
joystick and mouse; a value of 0 means continuous probing; higher values
(2, 3) helps in a few games which are VERY time critical; you should
probably leave this value to 0 if you have a fast machine or if you
don't experience slow downs during emulation. Higher values COULD help
if you have a slow machine. If game reaction to movements
seems too slow, try setting sampling delay to lower values; use higher
values if the program in foreground seems to execute too slowly.
[Q26] What is 'hold mode'?
[A26] If you activate hold mode, when you push the stick or the mouse
in a direction the associated key will be pressed and when you
re-center the device it will be released; if hold mode is off, as
long as you keep the device off centered the corresponding key will be
stuffed to the keyboard buffer.
This setting depends on how the user is supposed to enter data in
the application in foreground; if you experience slow downs or game
action is not fluid, activating hold mode could solve the problem;
the default should be hold mode ON.
[Q27] What is joystick sensibility?
[A27] The sensibility determines how far from the center you must move
the stick for JoyEmu to detect the movement; if sometimes a direction
key is stuffed without moving the stick, then try decreasing the
sensibility; if you are using an analogue joystick and you must push
the stick too far from the center for JoyEmu to stuff the corresponding
direction key, then increase the sensibility. Values for sensibility
are 2 (VERY hard) to 7 (VERY sensible): typical values are 5 for a
digital joystick and 3 or 4 for an analogue one.
[Q28] What is mouse tolerance?
[A28] Mouse tolerance can be individually set for each mouse axis.
You can enter any value between 1 and 20; the lesser the value,
the quicker will be the mouse response (higher sensibility).
Usually, the Y tolerance should be half of the X tolerance, to
compensate for the display shape.
[Q29] What are the switch keys and why do I need them?
[A29] The "switch keys" are special buttons (available only for a single
joystick) that, when pressed, change the keys stuffed by every other
button and direction; there can be zero, one or two switch buttons.
Each switch button can be a toggle switch or a shift switch.
'Shift switch' means that the effect of the button disappears as soon
as you release the button itself (think at the keys Ctrl and Alt on
the keyboard).
'Toggle switch' means that when you press the button once you activate
its function and you must press it again to remove its effect (think at
the keys Caps Lock and Num Lock on the keyboard).
You can have one shift and one toggle switch, two toggle switches or two
shift switches; it is up to you to determine what is better for the
particular program in foreground.
When you have one switch key, you have TWO complete sets of keys, each
with 4 directions, 4 diagonals (if 8 way mode is activated) and up to 7
fire buttons; with two switch keys, you have FOUR complete sets of keys:
one used when no switch key is pressed, two used when one switch key is
pressed (but not the other) and one used when both switch keys are
pressed. The grand total of distinct keys that can be stuffed is
reported by these tables:
+------------+-------------------+
| ONE | # of buttons |
| SWITCH | |
| | 2 4 6 8 |
+------------+----+----+----+----+
| 4 way mode | 10 | 14 | 18 | 22 |
+------------+----+----+----+----+
| 8 way mode | 18 | 22 | 26 | 30 |
+------------+----+----+----+----+
+------------+-------------------+
| TWO | # of buttons |
| SWITCHES | |
| | 2 4 6 8 |
+------------+----+----+----+----+
| 4 way mode | 16 | 24 | 32 | 40 |
+------------+----+----+----+----+
| 8 way mode | 32 | 40 | 48 | 56 |
+------------+----+----+----+----+
With the switch keys you can, for example, play Quake without using the
keyboard, or play Robotron with a single fire button (very nice -
try it!).
NOTE: when any switch key is pressed, keyboard emulation via mouse is
suspended.
[Q30] What is 'autofire'?
[A30] Autofire is a special feature that can be used to repeatedly stuff
a certain key while a fire button is pressed; each button can have
a different repeat delay.
A value of 0 for repeat delay means 'no autofire'; lower values
(except 0) mean faster repetition, so 1 is fastest and 18 is slowest.
The repeat delay is the number of device pollings after which a
keypress is generated if a fire button is held down.
If 'force break' is active, settings should be >= 2, since 1 = 2 (one
delay state is necessary for releasing the button); in this mode, at
most 9 keys per second are stuffed in the buffer. The autofire values
are valid also for all switched fire buttons.
Important: SET ALL REPEAT DELAYS TO 0 TO SPEED UP EMULATION.
Remember that repeat delay for autofire is directly connected to the
sampling interval; if you increase sampling interval, you might want
to decrease repeat delay and vice-versa.
[Q31] What is 'hot key support'?
[A31] Hot key support is a feature of JoyEmu; it let you change on the fly
many parameters of the emulation by using hot keys, which are special
key combinations on the keyboard. Since there are programs in which
hot keys are used to actually enter data and since hot key support
slows down keyboard response, it can be disabled by using the
parameter 'Y-' on the command line or the appropriate option in JoyCP.
[Q32] Sometimes, after using JoyEm(u) in a Dos prompt (that is: opening a
Dos prompt; installing the emulator; running an app; closing the Dos
prompt) the system returns in an odd status: a shift key (Alt, Ctrl,
Shift) seems to be always pressed. What should I do?
[A32] To restore normal operation, press together CTRL and ALT on the left
side of the keyboard and press and release the shift-type key (ctrl,
alt, left and right shift) that seems pressed.
This is caused by the fact that JOYEM/JOYEMU has stuffed make codes for
these keys but no corresponding break code, so the BIOS presumes that
these keys are still pressed.
[Q33] I have a program with weak joystick/mouse support and I would like to
use JoyEmu with it; what should I do?
[A33] Disable joystick/mouse support in the program; you will probably use a
command line switch or there will be an option for doing this; if you
don't, you could get unexpected results or even lock-ups.
Using JoyCP, configure the keys to be used and write a batch file
to install JoyEmu with the settings you created and run the program
with the appropriate switch.
[Q34] What about merging JoyEmu and JoyEm in a single program?
[A34] JoyEmu already includes JoyEm; I maintain both (well, actually they are
the same program, with a few different compilation flags) because
hot key support takes up about 1 Kb; if you don't need hot keys,
why should you waste one precious Kilobytes?
By the way, I use only JoyEm: I run JoyEmu when I have to debug the
emulator, after adding new features.
[Q35] Who is the author of JoyEmu? Simone Zanella or Pin Fei Sun?
What does 'SZP' stand for?
[A35] The version of JoyEmu distributed with this file is written by
Simone Zanella (hey, it's me!).
It was inspired from an original utility with the same name written by
Pin Fei Sun (version 1.01); this program, however, is completely
different and was rewritten from scratch; no part of the actual code
resembles the source written by Pin Fei.
I decided to keep the name of the original utility (despite the fact
that now it is no more limited to joystick input) in sign of respect
for his work.
'SZP' is the acronym for 'Simone Zanella Productions', the name
of my software house under which I publish all my products.
[Q36] What about a Windows 95 version of JoyEmu and JoyCP?
[A36] Nope! A Windows 95 version of JoyEmu would not work for programs in a
Dos box, and a Win 95 app which does the same thing just for Windows
programs already exists: it's called "Winstick".
Regarding a Win 95 version of JoyCP, I think it would be useless: the
Dos version works in a window, has mouse support and I had very
positive feedback about it from my users; so why change?
[Q37] What about the competitors?
[A37] There are several other programs that actually do something similar to
what JoyEmu does; among those that I've tried there are:
JoyKeys: this one is written by Bret Johnson and is very nice;
lot of features, but not very easy to use since all the
parameters must be specified on a (long) command line;
moreover, it seems to lock the PC when it is incompatible
with a program, and it doesn't work with many games I've
tried; I seem to remember also an utility by the same author
which emulates keyboard with mouse input, but I have never
tried it;
WinStick: this one is written by Alan Reeve; very easy to use and a
nice interface, but it has several limitations:
- it works only for Windows programs and is a little slow;
- it supports only one 2-button joystick;
- no autofire or shifted keys;
- it is shareware (not a bad thing on its own, but in this
case it means that, if you don't register, the program
ceases to work after a few minutes and you can't save/load
key settings);
SNESKey: this one is written by Benji York; it seems a promising
utility, but I'm too lazy to build the needed converter
(you have to connect a SNES or other console joypad to
the parallel port), so I can't judge it.
From the home page the author says about it:
"Serves the same function as JoyEmu, but with better
features".
Ahem! Not at all!
Actually, just by reading the docs that come with it
I found many things missing from it compared to my
emulator:
- force break and hold mode;
- diagonal mode;
- autofire for every fire button (this one is REALLY
needed: many people, including myself, use JoyEmu
in place of native joystick support just for having
autofire in the games);
- mouse keyboard emulation;
- an easy-to-use configuration program (the INI files
are a mess to the common user);
- lot of other configuration stuff.
SNESKey will be probably as compatible as JoyEmu,
since it is based on the same utility by Pin Fei Sun,
but it needs an additional piece of hardware so I'm
not sure about its appeal to the masses.
It should have the advantage of being faster,
since it takes less time to read the parallel port
than the joystick interface, but with newer machines
this will be unnoticeable.