JoyEmu |
|
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. They're shipped with JoyCP, a full featured and easy to use external interface.
JoyEmu and JoyEm are two TSR
programs that, when installed, poll joystick port and mouse
and stuff keyboard buffer simulating keypresses according to device
movements; keys to be stuffed, autofire rates, joystick sensibility and read mode, mouse
sensibility are only a few of the many settings that can be changed. The
emulators can also be removed when no more necessary.
For easier configuration, an external
program is provided: JoyCP. This Control Panel (that's what 'CP' stands
for) allows to set parameters for emulation and save them to files for later use; it can
also load previously saved configurations and update resident emulators with new settings;
the intuitive interface can be operated with both mouse and keyboard.
Features |
|
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.
JOYEMU and JOYEM
can be easily uninstalled and reinstalled as needed.
To configure the
emulators for you system, JOYCP is provided; it can be used to:
calibrate your joystick(s) and define common
emulation parameters such as the number of fire buttons, joystick sensibility and
interface read mode;
set mouse tolerance for both axis;
define emulated keys (i.e. keys associated
with joystick directions and fire buttons), autofire and repeat delay for each fire button
and various other settings that depend on the application to run in foreground (hold mode,
force break mode, shift mode, 8 way mode, sampling delay, switch keys);
swap emulated keys between the two
joysticks;
create separate configuration files and load
them as needed;
update resident emulator with new settings.
Special care has
been taken to ensure great compatibility and robustness; both emulators could be cut down
in size and made faster if I removed all the checks and workarounds that I left to make
them work on as many hardware configurations as possible. Neverthless, it is possible that
these programs don't work on your system -- I'm sorry if they don't, but I really don't
know what else I could change to make them more compatible. If you have troubles, read the
TROUBLE SHOOTING section and, if you don't solve the problem, try messing around with BIOS
settings for the keyboard (but ONLY if you know what you are doing!!).
JJOYEMU 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.
This is not to say
the original code wasn't noteworthy: it really helped me in developing this package and
was the spring that made me start this project -- this is the reason why I kept the
original names for the emulator and utilities. I wish to thank once more Pin Fei for
sharing his efforts with the Internet community -- without him, you wouldn't be reading
this notes.
JOYCP was written
from scratch by me (Simone Zanella), to create a modern interface both easy to use and
pleasant to see.
JOYEMU takes up
about 27K of memory while resident; JOYEM about 26K.
Most important features in version 4.1 include:
- Up to two digital and/or analogue joysticks
are supported (2 buttons)
- Support for joysticks with four buttons
- Support for a single joystick with six or eight
buttons
- Up to two switch buttons, which change the
keys stuffed by all other buttons and directions; with an 8-button joypad, you can now
stuff 56 different keys (40 different keys with a 4-button joypad, 24
keys not counting diagonals)!
- Support for mouse input: 4 direction
movements, 3 fire buttons, autofire individually set for each button; the mouse can be
used alone or together with one or two joysticks
- Capability of emulating all normal and extended keystrokes
(arrow keys, Ctrl, Alt, Shift ..)
- Emulation of shifted keys, i.e. keys combined
with Ctrl, Alt, Shift (both left and right)
- Two joystick reading modes (full or timed),
to match your hardware
- Autofire and repeat delay individually set
for each fire button
- Hold mode setting, for games that require to
hold directional keys instead of pressing and releasing them
- Shift mode setting, to enter single
keystrokes or allow shifted keys
- Selective key stuffing: you can set to
"none" the key stuffed by a certain direction/button (e.g. for games which don't
require fire buttons)
- 8 way mode to have different keys stuffed
when joystick is moved in diagonal (instead of stuffing keys for the two directions)
- Two separate configuration files: one keeps
joystick calibration, number of buttons, sensibility and read mode (usually set once and
for all); the other keeps key settings, sampling interval, force release mode, hold mode,
shift mode, diagonal mode, switch keys, mouse tolerance for both axis and autofire
settings, which are subject to change depending on the application to run
- Configuration files (JOYSET.JS and KEYSET.KS) are searched
first in current directory and, if not found, in the directory of the emulator
- While JoyEmu is running, through hot keys you
can:
- increase/decrease joystick sensibility
- increase/decrease joystick sampling interval
- increase/decrease tolerance for each mouse axis
- switch 'force release mode' on/off
- switch autofire on/off for each joystick
- switch hold mode on/off
- turn the emulation on and off
- reload key settings from file in current directory
- uninstall the emulator, if no other TSR was loaded on its top
- Support of command line parameters to:
- print parameters list (both hot keys and command line
parameters)
- detect resident emulator (for batch processing)
- uninstall TSR
- set emulation on/off
- reload key settings (from a file in current directory or from
a specified file)
- reload joystick settings (from a file in current directory or
from a specified file)
- set key associated with a direction/fire button (normal or
switched)
- set hold mode for directional keys
- set joystick sensibility to a specified value
- set 'force release mode' on or off
- set 'shift mode' on or off
- set '8 way mode' on or off for each joystick
- set autofire on/off and repeat delay for each button of every
joystick
- set sampling interval to a specified value
- turn hot key support on or off
- set number of switch keys
- set button corresponding to a switch
- set tolerance for each mouse axis
- turn on/off mouse keyboard emulation
- Command line parameters can be used to install
emulator with specified settings or update resident emulator (same
syntax)
- JoyEm, a version of JOYEMU without hot keys,
is also provided, to better compatibility and speed up keyboard response
- Errors and confirmations signaled through different sounds
from internal speaker
- JOYEMU/JOYEM can be easily uninstalled,
freeing up its memory
- Greatly improved compatibility and robustness
- Works under Dos (real mode) and Windows
9x/ME; Windows 3.1 is untested
- JoyCP, a control panel for both emulators,
let you change all the parameters for resident emulator, create and
manage configuration files, uninstall the emulator, all through an intuitive interface
with repositionable windows that allows the use of both mouse and keyboard
Requirements:
- Dos 5.0+ or Windows 9x/ME; probably Windows 3.1 is also
supported (but untested);
- analogue or digital joystick/joypad, mouse;
- Pentium class computer (reccomended 100+ Mhz).
Licence |
|
Joyemu is a freeware
joystick/keyboard utility, subject to the following special license:
- This product comes with no warranty. It is freeware, but use
it at your own risk; the author takes no responsibilities of any sort related to the use
of this product.
- Everyone that receives a FULL copy of the package can freely
install, duplicate and distribute the package, as long as:
- FULL, unmodified package is duplicated;
- no additional fee is requested, apart from the cost of the
media necessary for the copy;
- the package is not distributed with other software or
hardware.
- Any WEB/FTP site can freely distribute the package as long as
FULL, unmodified package is downloadable in a single, compressed file (any archiver will
do).
- The user acquire the right of using the package, but he can
not alter, disassemble or sell the software and the documentation that comes with it.
- Simone Zanella retains intellectual property and copyright
over the whole package.
- Written permission is required from Simone Zanella if you want
to:
- sell this package;
- distribute the package together with other software;
- include the package in a compilation of software;
- bundle the package with any hardware device (especially
joysticks, joypads and hardware interfaces).
The concept of 'written permission' applies also to digitally
signed text, i.e. a plain text file that I'll send through e-mail, signed with my private
PGP key.
Simone Zanella reserves the right to charge money for
releasing said permission.
- Inclusion of the package in shareware/freeware collections
follows this special policy: a written permission will be granted as soon as a full and
detailed list of the programs that will be distributed with the package is received by
Simone Zanella; the author of the collection is bound to send a copy of the collection for
which permission was granted to Simone Zanella at the address specified in the permission
as soon as the collection becomes commercially available. Simone Zanella reserves the
right to deny or revoke said permission at his will.
- Any other form of distribution must be previously agreed upon
with Simone Zanella and requires a special, written license, which can be subject to
payment.
Remember:
- You may distribute the package only in its
integrity.
- Under no circumstances you can charge money for the product,
unless a reasonable amount to cover copying and handling (mass distribution is not
covered by this point).
- The package cannot be distributed with other software/hardware
unless a written permission for the distribution has been previously obtained from Simone
Zanella.
Download |
|
Download JoyEmu 4.1
Versions |
|
Latest version: 4.1 / english
Fixes in version 4.1:
JoyCP
- changed joystick detection to avoid bios bugs
- ifdef-ed the code used to wait on the joystick port until
ready (it caused problems on a few configurations).
JoyEm / JoyEmu
- ifdef-ed the code used to wait on the joystick port until
ready (it caused problems on a few configurations).
- now emulation is de-activated (if active) before loading
configuration files and re-activated immediately afterwards, both when using command line
parameters 'J'/'K' and hot key Shift-F8
- added to the package the program JCMPTST which can be used to
determine if your system is compatible with JoyEmu.
Fixes in version 4.0:
JoyCP
- added support for Windows 9x/ME long file names;
- added support for mouse keyboard emulation;
- added support for 8-button joysticks;
- changed definitions for 'num /' and 'num enter' (were
incorrect);
- exchanged buttons 5 and 6 in calibration;
- added hot key support switch;
- added detection and report of type and version of emulator in
memory;
- changed window handler (glitches when windows near end of
screen);
- added switch buttons and configuration of additional keys;
- changed load and save setting dialog;
- changed set directory dialog.
JoyEm / JoyEmu
- faster!
- added support for mouse keyboard emulation; this feature was
suggested by "KMoon" (kmoon@geocities.com)
and others;
- added support for switch fire buttons (change keys stuffed by
every other button/direction);
- added support for 8-button joysticks; this feature was
suggested by "Mr.M" (dlugosz@polbox.com)
and others;
- added FIFO key queue;
- added command line parameters N (set number of switch buttons)
and W (set switch button number);
- changed hot key shift-F4: it now switches on/off autofire for
mouse (Ctrl-F7 has become the hot key for switch force break mode on/off);
- added hot keys Shift/Ctrl-F11 and Shift/Ctrl-F12 (tolerance
for mouse axis);
- fixed a bug: autofire on button 5 would not work if force
break mode was off and button 6 did not use autofire;
- fixed shift mode (now the break for the shift keys is sent on
button release);
- added command line parameter 'Y' to turn on/off hot key
support (JoyEmu only); removed additional keyboard handler (JoyEm only);
- changed values for b in E and R command line parameters;
- extended values for j in E, to set also switched keys;
- added joystick check on start/re-activation;
- added a page to on-line help (both JoyEm and JoyEmu).
Fixes in version 3.3:
JoyCP
- fixed a stupid bug that locked the computer in a strict loop
with interrupts disabled if just one joystick was connected to the PC.
JoyEm / JoyEmu
- "unrolled" functions and definitions in JoyEm and
JoyEmu: should be faster (even though they take up a little more memory now..).
Fixes in version 3.2:
JoyCP / JoyEm / JoyEmu
- added support for joysticks with 6 fire buttons; this feature
was suggested by "Mr.M" (dlugosz@polbox.com)
and others.
Fixes in version 3.1:
JoyCP
- changed definitions for right ctrl and alt gr (were
incorrect);
- introduceded the possibility of setting to "none"
the key stuffed by a certain direction/button (e.g. for games which don't require fire
buttons); this feature was suggested by Patrick Belleau (pbelleau@vsf-p1.fabrik.com);
- added auto update mode: in this mode, when you change an
option the resident emulator is updated immediately;
- added "swap key bindings" to key settings menu, to
exchange emulated keys between the two joysticks;
- added "swap fire buttons" to exchange key bindings
between the first two fire buttons of current joystick;
- added "8 way mode": in this mode, you can specify
keys to be stuffed for diagonals as well as for straight directions.
JoyEm / JoyEmu
- added support for undefined keys (keys set to 'none');
- added "8 way mode" (stuff different keys for
diagonals);
- added command line parameter 'X', to switch "8 way
mode" on or off for each joystick;
- modified 'E' parameter to accept setting of diagonal keys;
- added second help page (only for JoyEmu);
- modified '?' parameter syntax to accept help page number (only
for JoyEmu).