home *** CD-ROM | disk | FTP | other *** search
/ Freesoft 1999 February / Freesoft_1999-02_cd.bin / Recenz / Emulator / Joystick / JOYEMU.FAQ < prev    next >
Text File  |  1997-12-02  |  38KB  |  840 lines

  1. Frequently asked questions about JoyEmu and JoyCP
  2. _________________________________________________
  3.  
  4. This document includes many questions that I often receive about JoyEmu
  5. and JoyCP; most questions, as you will see, are already answered in the
  6. manual that is included in the package (JOYEMU.TXT); since many people seem
  7. too lazy to scan all the document, or too anxious to try the program for
  8. wasting their time reading the manual, I decided to put here what I think is
  9. the essential information to start using the program.
  10. I hope you will appreciate the effort.
  11.  
  12. -- Simone Zanella
  13.  
  14.  
  15.  
  16. List of questions
  17. _________________
  18.  
  19. [Q01] What is JoyEm(u)?
  20.  
  21. [Q02] What's the difference between JoyEm and JoyEmu?
  22.  
  23. [Q03] How safe is JoyEm(u) for my system?
  24.       Could it cause problems to Windows 95?
  25.       How about real Ms-Dos?
  26.  
  27. [Q04] What is JoyCP?
  28.  
  29. [Q05] Could you tell me the right way to use JoyEmu in a quick line?
  30.  
  31. [Q06] Should I always include the joystick setting file on the command line
  32.       (parameter J)?
  33.  
  34. [Q07] I did everything as described, but I still can't get JoyEmu to work
  35.       under <my favorite program>; what's wrong?
  36.  
  37. [Q08] Why JoyEmu does not work with <Windows 95 native program>?
  38.  
  39. [Q09] I don't feel comfortable having JoyEm or JoyEmu resident all the time;
  40.       can I use it under Windows 95 without loading it at startup?
  41.  
  42. [Q10] I read that JoyEmu supports joysticks with up to 8 fire buttons;
  43.       how can it be?
  44.  
  45. [Q11] I have more than one joystick and I'd like to change them on the fly;
  46.       what should I do?
  47.  
  48. [Q12] Does JoyEmu emulate all keys?
  49.  
  50. [Q13] How can I stuff key combinations? Does it take the same time to
  51.       stuff different keys?
  52.  
  53. [Q14] I need to stuff different keys for diagonals; what should I do?
  54.  
  55. [Q15] My joypad does not have enough buttons for the keys to be emulated;
  56.       what can I do?
  57.  
  58. [Q16] Why do I get different keys stuffed when Caps Lock and Num Lock are
  59.       on or off?
  60.  
  61. [Q17] For certain applications, I would like JoyEmu NOT to stuff any key when
  62.       I press a certain button or direction; is it possible?
  63.  
  64. [Q18] When using JoyEmu, it seems that Shift-F10 and Shift-F8 are disabled,
  65.       even when Dos doesn't seem to be busy; what's happening?
  66.  
  67. [Q19] I can't uninstall JoyEmu once resident; why?
  68.  
  69. [Q20] I can't update resident emulator with command line parameters; why?
  70.  
  71. [Q21] Why under certain circumstances JoyEmu's hot keys don't work?
  72.  
  73. [Q22] Why is calibration needed for JoyEmu to work?
  74.  
  75. [Q23] What's the difference between timed and full reading mode?
  76.  
  77. [Q24] What is 'force break mode'?
  78.  
  79. [Q25] What is 'sampling delay'?
  80.  
  81. [Q26] What is 'hold mode'?
  82.  
  83. [Q27] What is joystick sensibility?
  84.  
  85. [Q28] What is mouse tolerance?
  86.  
  87. [Q29] What are the switch keys and why do I need them?
  88.  
  89. [Q30] What is 'autofire'?
  90.  
  91. [Q31] What is 'hot key support'?
  92.  
  93. [Q32] Sometimes, after using JoyEm(u) in a Dos prompt (that is: opening a
  94.       Dos prompt; installing the emulator; running an app; closing the Dos
  95.       prompt) the system returns in an odd status: a shift key (Alt, Ctrl,
  96.       Shift) seems to be always pressed. What should I do?
  97.  
  98. [Q33] I have a program with weak joystick/mouse support and I would like to
  99.       use JoyEmu with it; what should I do?
  100.  
  101. [Q34] What about merging JoyEmu and JoyEm in a single program?
  102.  
  103. [Q35] Who is the author of JoyEmu? Simone Zanella or Pin Fei Sun?
  104.       What does 'SZP' stand for?
  105.  
  106. [Q36] What about a Windows 95 version of JoyEmu and JoyCP?
  107.  
  108. [Q37] What about the competitors?
  109.  
  110.  
  111. Questions and answers
  112. _____________________
  113.  
  114. [Q01] What is JoyEm(u)?
  115.  
  116. [A01] JOYEMU and JOYEM are keyboard emulators for joystick and mouse: they are
  117.       two TSR programs that let you use your input devices with software
  118.       that accepts only keyboard input, or with those programs that have weak
  119.       support for other kind of input.
  120.  
  121.  
  122. [Q02] What's the difference between JoyEm and JoyEmu?
  123.  
  124. [A02] JoyEmu and JoyEm are essentially the same program, but JoyEm lacks hot
  125.       keys support. Hot keys let you change on the fly many parameters of the
  126.       emulation, but are not strictly necessary -- both JoyEmu and JoyEm
  127.       accept command line parameters to update the status of the resident
  128.       emulator; moreover, JoyCP can be used to change all the settings of
  129.       TSR emulator. Use JoyEm when the application in foreground uses the
  130.       hot keys of JoyEmu as standard keys for entering data, or run JoyEmu
  131.       with parameter 'Y-'.
  132.       JoyEm has the following advantages:
  133.       - the keyboard response is faster, since the handler does not search for
  134.         hot keys at each keypress (the speed is the same if you disable hot
  135.         key support with parameter 'Y-' in JoyEmu);
  136.       - it uses less memory;
  137.       - it can be used to avoid troubles with programs in which the hot keys
  138.         have a special meaning or are used to enter data (problem overcome in
  139.         JoyEmu by using 'Y-').
  140.  
  141.  
  142. [Q03] How safe is JoyEm(u) for my system?
  143.       Could it cause problems to Windows 95?
  144.       How about real Ms-Dos?
  145.  
  146. [A03] JoyEm and JoyEmu are perfectly safe as long as:
  147.       - they are disabled, or
  148.       - joysticks are not disconnected when they are enabled AND devices
  149.         are correctly calibrated.
  150.  
  151.       NEVER disconnect a joystick while the emulator is in memory and is
  152.       active; this would lead to a continuous stream of keys stuffed into
  153.       keyboard buffer, that would prevent the use of the PC; in this case,
  154.       always disable emulation (by Shift-F9 or parameter '-') or unload the
  155.       emulator (by Shift-F10 or parameter 'U') before operating.
  156.       Moreover, disconnecting hardware while your PC is powered on is not very
  157.       healthy for both the attached device and your computer.
  158.  
  159.       JOYEMU does not change the mouse handler; using an interrupt driven
  160.       approach revealed that it worked worse than a polling one. This means
  161.       that JOYEMU is perfectly safe in Windows 95; be aware, though, that
  162.       when mouse emulation is active you won't be able to use the mouse as
  163.       usual in Windows: so, it is a good idea to activate and de-activate
  164.       keyboard emulation via mouse only through batch files.
  165.  
  166.       No Win 95 locks up caused by JoyEmu have ever been reported to me; I
  167.       have JoyEmu resident all the time, and I heavily use my PC: the
  168.       presence of the TSR has not weakened (or strenghtened :) ) the OS.
  169.       If you are experiencing problems, I'd suggest that you take a look at
  170.       the other TSRs loaded.
  171.  
  172.       It has been reported, however, that sometimes, with motherboards
  173.       equipped with Intel TX chipset, if JoyEm(u) is active when you shut
  174.       down Windows 95, the system locks up between the screen that tells you
  175.       that the system is being shut down and the screen that tells you that
  176.       it is safe to power off the system. This is not a big problem in itself;
  177.       just turn off emulation before shutting down and everything will work
  178.       as expected. Actually, emulation should always stay disabled, except
  179.       when really needed, because in this way you will get the best
  180.       performance from your system all the time.
  181.  
  182.       Regarding real Ms-Dos, I must say that I no longer support it.
  183.       I think there's no reason for any user to NOT switch to Windows 95:
  184.       it is easier to use, let you do a lot more things (among these,
  185.       running more programs at the same time) and 99.9% of Ms-Dos programs
  186.       work flawlessly under it (thanks Bill, spell my name correctly
  187.       on that cheque! :). There are cases in which I noticed a good
  188.       speed boost of Dos programs under Windows 95; moreover, the additional
  189.       layer of protection offered by the fact that Dos apps are run in Dos
  190.       boxes, which can be considered at all the effects real virtual
  191.       machines, is really welcome by programmers that have thus a method of
  192.       safely debugging their Dos programs.
  193.       All this granted, JoyEmu is much safer under Windows 95 and works
  194.       much better; I can't explain why in details, but it seems that
  195.       the mono-task nature of real Ms-Dos causes troubles when you don't
  196.       have enough power to handle both a calculation-intensive program
  197.       (such an emulator of arcade vector games) and the joystick/mouse read
  198.       routines. It seems a paradox, since Windows 95 does eat up a little
  199.       bit of resources, but you'll need a more powerful PC to run JoyEmu
  200.       under real Ms-Dos than under Windows 95 - that's a fact.
  201.       If you happen to run a cpu-intensive program with JoyEmu under
  202.       real Ms-Dos, you could experience lock ups; this is especially true
  203.       if you use mouse emulation, which in turn seems connected to
  204.       the nature of mouse driver used.
  205.  
  206.       There's NOTHING I can do to optimize better the code or to reduce
  207.       the number of operations requested for emulation; the great number
  208.       of features included do NOT increase the resources requested, since the
  209.       features not used are skipped by dinamically changing the code
  210.       executed, rather than test for various status flags; also, the heavy
  211.       usage of lookup tables limits very efficiently the operations that must
  212.       be executed during emulation.
  213.       Experimenting with the sampling delay can help in a few cases, but
  214.       remember that the cpu load is not fixed: it changes during program
  215.       execution; so, even if a program seems to work at first, it could
  216.       hang later on. Also, keep in mind that:
  217.       - using autofire;
  218.       - activating keyboard emulation via mouse;
  219.       - setting joysticks to 8-way mode;
  220.       - using switch keys;
  221.       - setting the number of joystick buttons to a number greater than
  222.         the number of buttons really needed;
  223.       DOES decrease emulation efficiency; as a rule, limit the options
  224.       active to those really needed.
  225.  
  226.  
  227. [Q04] What is JoyCP?
  228.  
  229. [A04] JoyCP is a Control Panel for JoyEm(u); it can be used to change on the
  230.       fly the parameters of the resident emulator and to create configuration
  231.       files to be used when installing the TSRs or updating them through
  232.       command line parameters.
  233.  
  234.  
  235. [Q05] Could you tell me the right way to use JoyEmu in a quick line?
  236.  
  237. [A05] First of all, run JCMPTST and see if the text 'joyemu' (or 'JOYEMU')
  238.       appears on the command line; if it doesn't, sorry, but JoyEmu is not
  239.       compatible with your system. Read the "BEFORE START" paragraph of the
  240.       manual.
  241.  
  242.       If the string appears correctly, run JoyCP, configure settings for
  243.       joystick, mouse and keyboard, creating a JS and a KS file.
  244.       I suggest to use JoyEm and then use command line parameters or JoyCP to
  245.       change settings. Run:
  246.  
  247.       joyem Jjoyset.js Kkeyset.ks
  248.  
  249.       to start emulation; remember to substitute 'joyset.js' and 'keyset.ks'
  250.       with the file names you used to save your configurations and to include
  251.       the full path if they don't reside in the current directory.
  252.       You should see a message ending with:
  253.  
  254.       JoyEm installed!
  255.  
  256.       Now try using your gamepad and see if keys are stuffed correctly.
  257.       Remember that, under Windows 95, if you don't include JoyEm(u) at the
  258.       start of your AUTOEXEC.BAT, you must run JoyEmu before the program under
  259.       which emulation should be used, IN THE SAME DOS BOX. When you close the
  260.       box, the emulator will be removed; when you switch to another dos box,
  261.       you won't have keyboard emulation.
  262.  
  263.  
  264. [Q06] Should I always include the joystick setting file on the command line
  265.       (parameter J)?
  266.  
  267. [A06] No. I suggest to calibrate your joystick(s) once and for all, saving
  268.       the resulting calibration information to JOYSET.JS in the directory
  269.       of JOYEM.EXE. It is a good idea also to set common key settings and
  270.       save them to KEYSET.KS in the same directory. This way, you can create
  271.       a '.KS' file for each application under which emulation is needed and
  272.       then start JoyEm or JoyEmu just with the 'K' parameter. This would save
  273.       you the hassle to update all the joystick configurations if you change
  274.       your controller.
  275.       Remember to use the name JOYSET.JS for the standard configuration,
  276.       because that is the name of the file looked for by JoyEmu upon startup.
  277.       To start JOYEMU, you MUST specify a JS configuration file, even if no
  278.       joystick is connected; if you don't have any joystick, use the file
  279.       MOUSE.JS enclosed in the package.
  280.  
  281.  
  282. [Q07] I did everything as described, but I still can't get JoyEmu to work
  283.       under <my favorite program>; what's wrong?
  284.  
  285. [A07] There are a few programs under which emulation doesn't work; if keys are
  286.       stuffed on the command line but not while the program in foreground
  287.       is running then it is probably an incompatibility with that particular
  288.       program. Really sorry about that: try writing the author to convince
  289.       him to add native joystick support (I've written a freeware joystick
  290.       library in C, very portable, that can be used for this purpose; write
  291.       me to get a copy), or try to persuade him to switch to a more standard
  292.       keyboard handler :)
  293.  
  294.  
  295. [Q08] Why JoyEmu does not work with <Windows 95 native program>?
  296.  
  297. [A08] You must load JoyEmu before Win 95 starts; put it at the very beginning
  298.       of your AUTOEXEC.BAT. It is a good idea to keep JoyEmu resident but
  299.       deactivated; this way, the CPU load is virtually unnoticeable.
  300.       If you load JoyEmu at Windows 95 startup with:
  301.  
  302.       joyem -
  303.  
  304.       or
  305.  
  306.       joyemu - y-
  307.  
  308.       JoyEmu stays resident, but in disabled status: in this way, resources
  309.       taken are totally insignificant (just 17 nop per second are exploited
  310.       by JoyEmu: compare it to the millions of operations that a modern cpu
  311.       can execute in the same time...).
  312.  
  313.       NOTE: the default key set file should have keyboard emulation via mouse
  314.       DISABLED, or you won't be able to use the mouse in Windows as usual.
  315.       Only enable mouse emulation when needed.
  316.  
  317.  
  318. [Q09] I don't feel comfortable having JoyEm or JoyEmu resident all the time;
  319.       can I use it under Windows 95 without loading it at startup?
  320.  
  321. [A09] Yes, if you are not going to use it for Windows 95 native programs.
  322.       To use JoyEmu with programs run in a Dos box, write a batch file
  323.       for each, following this template:
  324.  
  325.       joyem Kmykeys.ks +
  326.       program
  327.       joyem - U
  328.  
  329.       where 'mykeys.ks' is the configuration file which include key settings
  330.       for 'program'.
  331.       This batch file can be used even when JoyEm is loaded before Win 95
  332.       starts; in this case, emulation is activated upon entrance and
  333.       de-activated when exiting; if used under real Ms-Dos, JoyEm is installed
  334.       just before 'program' starts and removed immediately after it ends.
  335.       Even if JoyEm is not explicitly removed, when started in a Dos box it
  336.       is automatically removed by the OS when you close the box.
  337.  
  338.  
  339. [Q10] I read that JoyEmu supports joysticks with up to 8 fire buttons;
  340.       how can it be?
  341.  
  342. [A10] There are PC controllers available that have more than 2 fire buttons;
  343.       buttons 3 and 4 use the lines in the interface for buttons on the
  344.       other joystick, buttons 5..8 use direction lines for the second
  345.       joystick. If you are going to connect two joysticks via a Y-adapter, you
  346.       will probably use traditional models with two buttons.
  347.  
  348.       The key assignments for fire buttons 5..8 are stored in place of key
  349.       assignments for the buttons 1..4 of the second joystick; this is done
  350.       both to spare memory and because one 6/8-button joystick uses all the
  351.       lines available in the joystick interface, so you cannot connect any
  352.       other device.
  353.  
  354.       I don't know if 8-button joysticks are actually being produced (I mean
  355.       joysticks with 8 DISTINCT fire buttons, not controllers with duplicated
  356.       turbo or autofire buttons), but you can easily build such a beast and
  357.       that's the reason why I put in this feature.
  358.  
  359.       One thing that you must keep in mind is that fire buttons 5 and 7 (as
  360.       well as 6 and 8) are mutually exclusive; the reason is very simple: they
  361.       share the same direction line and just as you can't go up and down at
  362.       the same time, you can't press buttons 6 and 8 simultaneously.
  363.  
  364.  
  365. [Q11] I have more than one joystick and I'd like to change them on the fly;
  366.       what should I do?
  367.  
  368. [A11] If you want to change on the fly the joysticks connected, there are
  369.       several ways of doing it; this is the suggested method -- replace
  370.       JOYEMU with JOYEM if you prefer using the version without the hot keys:
  371.  
  372.       AFTER THE EMULATOR IS INSTALLED IN MEMORY:
  373.  
  374.       1)  use:
  375.  
  376.           JOYEMU -
  377.  
  378.           to momentarily turn off emulation;
  379.  
  380.       2)  disconnect and reconnect joystick(s) as needed;
  381.  
  382.       3a) calibrate joystick(s) through JOYCP;
  383.  
  384.       3b) if you prefer, you can calibrate them once and for all and save
  385.           configuration to MYJOY2.JS, for example;
  386.  
  387.       4)  now update resident emulator with the new configuration and turn on
  388.           emulation; example is given for user selected configuration:
  389.  
  390.           JOYEMU JMYJOY2.JS +
  391.  
  392.           Always put '+' as the last parameter!
  393.  
  394.       If you disconnect/reconnect your joysticks very frequently, you can
  395.       automate this sequence by writing a batch file.
  396.  
  397.       Of course, the same operation can be accomplished entirely through JOYCP:
  398.  
  399.       1)  select "TSR settings..";
  400.           switch off "Emulation" and select "Update TSR";
  401.  
  402.       2)  disconnect and reconnect joystick(s) as needed;
  403.  
  404.       3a) select "Joy settings.." and calibrate joysticks as needed;
  405.  
  406.       3b) if you prefer, you can calibrate them once and for all and save
  407.           configuration to MYJOY2.JS, for example;
  408.  
  409.       4)  select "Update TSR" in the "Joy settings" submenu;
  410.           select "TSR settings.."; switch on "Emulation" and select "Update
  411.           TSR".
  412.  
  413.       If you are simply desconnecting one of the joysticks, you can do it by
  414.       turning emulation off, removing the device and then turning emulation
  415.       on; in fact, the number of joysticks connected is checked every time
  416.       that TSR emulation is turned on.
  417.  
  418.  
  419. [Q12] Does JoyEmu emulate all keys?
  420.  
  421. [A12] Yes, except Print Screen and Pause; I don't think they're really
  422.       needed, though.
  423.  
  424.  
  425. [Q13] How can I stuff key combinations? Does it take the same time to
  426.       stuff different keys?
  427.  
  428. [A13] Turn on shift mode through JoyCP or by using T parameter (JoyEm/JoyEmu).
  429.       Leave shift mode off by default, because it slows down things a little,
  430.       and is usually not needed by most programs.
  431.  
  432.       Not all keys are stuffed in the same time; the following keys require
  433.       two scan codes, both when pressed and released:
  434.       - AltGr
  435.       - right Control
  436.       - Insert
  437.       - Delete
  438.       - Home
  439.       - End
  440.       - Pag Up
  441.       - Pag Down
  442.       - gray arrows
  443.       - num /
  444.       - num Enter.
  445.       So, whenever it is possible, you should remap the keys used by the
  446.       program in foreground to other keys (especially for direction keys).
  447.  
  448.  
  449. [Q14] I need to stuff different keys for diagonals; what should I do?
  450.  
  451. [A14] In the "Key settings" menu of JoyCP, select "Keys joystick x.." and then
  452.       "Diagonals.."; activate 8 way mode and select keys to be stuffed
  453.       (they can be no key at all as well).
  454.  
  455.  
  456. [Q15] My joypad does not have enough buttons for the keys to be emulated;
  457.       what can I do?
  458.  
  459. [A15] Try using switch buttons (see answer A29).
  460.  
  461.  
  462. [Q16] Why do I get different keys stuffed when Caps Lock and Num Lock are
  463.       on or off?
  464.  
  465. [A16] Alphabetic characters are converted to upper case if Caps Lock is
  466.       active, and direction keys in the numeric pad are converted to numbers
  467.       if Num Lock is active; that's normal, JoyEm(u) does NOT stuff keys to
  468.       change Caps and Num status.
  469.  
  470.  
  471. [Q17] For certain applications, I would like JoyEmu NOT to stuff any key when
  472.       I press a certain button or direction; is it possible?
  473.  
  474. [A17] If you don't want to stuff any key at all for a certain button/
  475.       direction, select the option in JoyCP with the SPACE BAR, that is:
  476.       - move selection bar to highlight desired direction or button;
  477.       - press the space bar.
  478.       If you select the option with return, right arrow or left mouse button,
  479.       you will set the key to be stuffed as usual, by pressing any key on the
  480.       keyboard (the key can be the space bar as well).
  481.  
  482.  
  483. [Q18] When using JoyEmu, it seems that Shift-F10 and Shift-F8 are disabled,
  484.       even when Dos doesn't seem to be busy; what's happening?
  485.  
  486. [A18] Even if you are at the command line level it can happen that
  487.       Dos is busy when you press those keys; just keep pressing them until
  488.       you hear the confirmation beep. The alternative would be to keep track
  489.       of the request and serve it as soon as Dos exits the busy state, but
  490.       this is very time consuming and is not currently implemented.
  491.       Also, be sure that hot key support is on (parameter 'Y').
  492.  
  493.  
  494. [Q19] I can't uninstall JoyEmu once resident; why?
  495.  
  496. [A19] You can't uninstall JoyEm(u) if one or more TSR programs have been
  497.       installed after it; unload the other TSRs in reverse order of
  498.       installation, then uninstall the emulator.
  499.  
  500.  
  501. [Q20] I can't update resident emulator with command line parameters; why?
  502.  
  503. [A20] You must use JoyEm to update a resident JoyEm and JoyEmu to update a
  504.       resident JoyEmu; you can NOT set resident JoyEm with JoyEmu and
  505.       vice-versa. Also, be sure to have just one copy of JOYEMU.EXE and
  506.       JOYEM.EXE in your path, because different versions cannot be mixed
  507.       when using command line parameters.
  508.       You can, however, use a batch file to update a resident emulator
  509.       without knowing which one is installed; a special parameter (D)
  510.       is supplied for this purpose. If you copy the following lines
  511.       to a text file and you call it JOYUPD.BAT, you can use:
  512.  
  513.       CALL JOYUPD.BAT param [param..]
  514.  
  515.       to update whichever emulator is in memory.
  516.  
  517.       -->cut here<--
  518.       @ECHO OFF
  519.       JOYEM D
  520.       IF ERRORLEVEL 1 GOTO JOYEM
  521.       JOYEMU D
  522.       IF ERRORLEVEL 1 GOTO JOYEMU
  523.       GOTO ERROR
  524.  
  525.       :JOYEM
  526.       JOYEM %1 %2 %3 %4 %5 %6 %7 %8 %9
  527.       GOTO END
  528.  
  529.       :JOYEMU
  530.       JOYEMU %1 %2 %3 %4 %5 %6 %7 %8 %9
  531.       GOTO END
  532.  
  533.       :ERROR
  534.       ECHO JoyEm(u) is not installed.
  535.  
  536.       :END
  537.       -->cut here<--
  538.  
  539.  
  540. [Q21] Why under certain circumstances JoyEmu's hot keys don't work?
  541.  
  542. [A21] Many programs (especially games) chain the keyboard handler to get
  543.       faster response and to filter unwanted keys; while these programs are
  544.       running, JoyEmu's hot keys may not be accessible. Moreover, it is safer
  545.       to use the hot keys on Dos command line.
  546.  
  547.  
  548. [Q22] Why is calibration needed for JoyEmu to work?
  549.  
  550. [A22] PC joysticks and joypads, unlike those found in most consoles and
  551.       old computers (as CBM 64 and Amiga), are analogue devices; that is,
  552.       they return many different values when the stick is moved off-center,
  553.       depending on the amount of the offset.
  554.       Unfortunately, different joysticks return different values, and the
  555.       values themselves depend on the machine to which the controller is
  556.       connected; that is the reason why the joysticks need to be 'calibrated'.
  557.       An automatic calibration procedure could be implemented (and is
  558.       actually used in many modern games, as joypad popularity increases),
  559.       but a few assumptions are needed for it to work:
  560.  
  561.       1) joystick must be centered when the program is run;
  562.       2) the values returned when the joystick is in the center position must
  563.          be exactly half of the total excursion, both horizontal and
  564.          vertical;
  565.       3) the excursion itself must be significative.
  566.  
  567.       Since there are devices that do NOT respect the second assumption,
  568.       for maximum compatibility JoyEmu uses a manual calibration procedure.
  569.       By the way: manual calibration speeds up emulation.
  570.  
  571.  
  572. [Q23] What's the difference between timed and full reading mode?
  573.  
  574. [A23] Full reading mode is there just for compatibility with future (and
  575.       faster) machines; you should use timed reading all the time, because
  576.       it gives better performance. Use timed reading especially if the
  577.       program in foreground seems to execute too slowly.
  578.  
  579.  
  580. [Q24] What is 'force break mode'?
  581.  
  582. [A24] JoyEmu has a switch that can be used to force key release before
  583.       each keypress; forcing release is more compatible, but since a higher
  584.       number of scan codes is stuffed to the keyboard buffer it COULD slow
  585.       down the emulation on slower machines; to speed up key stuffing (up to
  586.       18 keypresses per second), turn off force break mode.
  587.  
  588.  
  589. [Q25] What is 'sampling delay'?
  590.  
  591. [A25] The sampling delay let you decide how often JoyEmu should probe the
  592.       joystick and mouse; a value of 0 means continuous probing; higher values
  593.       (2, 3) helps in a few games which are VERY time critical; you should
  594.       probably leave this value to 0 if you have a fast machine or if you
  595.       don't experience slow downs during emulation. Higher values COULD help
  596.       if you have a slow machine. If game reaction to movements
  597.       seems too slow, try setting sampling delay to lower values; use higher
  598.       values if the program in foreground seems to execute too slowly.
  599.  
  600.  
  601. [Q26] What is 'hold mode'?
  602.  
  603. [A26] If you activate hold mode, when you push the stick or the mouse
  604.       in a direction the associated key will be pressed and when you
  605.       re-center the device it will be released; if hold mode is off, as
  606.       long as you keep the device off centered the corresponding key will be
  607.       stuffed to the keyboard buffer.
  608.       This setting depends on how the user is supposed to enter data in
  609.       the application in foreground; if you experience slow downs or game
  610.       action is not fluid, activating hold mode could solve the problem;
  611.       the default should be hold mode ON.
  612.  
  613.  
  614. [Q27] What is joystick sensibility?
  615.  
  616. [A27] The sensibility determines how far from the center you must move
  617.       the stick for JoyEmu to detect the movement; if sometimes a direction
  618.       key is stuffed without moving the stick, then try decreasing the
  619.       sensibility; if you are using an analogue joystick and you must push
  620.       the stick too far from the center for JoyEmu to stuff the corresponding
  621.       direction key, then increase the sensibility. Values for sensibility
  622.       are 2 (VERY hard) to 7 (VERY sensible): typical values are 5 for a
  623.       digital joystick and 3 or 4 for an analogue one.
  624.  
  625.  
  626. [Q28] What is mouse tolerance?
  627.  
  628. [A28] Mouse tolerance can be individually set for each mouse axis.
  629.       You can enter any value between 1 and 20; the lesser the value,
  630.       the quicker will be the mouse response (higher sensibility).
  631.       Usually, the Y tolerance should be half of the X tolerance, to
  632.       compensate for the display shape.
  633.  
  634.  
  635. [Q29] What are the switch keys and why do I need them?
  636.  
  637. [A29] The "switch keys" are special buttons (available only for a single
  638.       joystick) that, when pressed, change the keys stuffed by every other
  639.       button and direction; there can be zero, one or two switch buttons.
  640.  
  641.       Each switch button can be a toggle switch or a shift switch.
  642.       'Shift switch' means that the effect of the button disappears as soon
  643.       as you release the button itself (think at the keys Ctrl and Alt on
  644.       the keyboard).
  645.       'Toggle switch' means that when you press the button once you activate
  646.       its function and you must press it again to remove its effect (think at
  647.       the keys Caps Lock and Num Lock on the keyboard).
  648.       You can have one shift and one toggle switch, two toggle switches or two
  649.       shift switches; it is up to you to determine what is better for the
  650.       particular program in foreground.
  651.  
  652.       When you have one switch key, you have TWO complete sets of keys, each
  653.       with 4 directions, 4 diagonals (if 8 way mode is activated) and up to 7
  654.       fire buttons; with two switch keys, you have FOUR complete sets of keys:
  655.       one used when no switch key is pressed, two used when one switch key is
  656.       pressed (but not the other) and one used when both switch keys are
  657.       pressed. The grand total of distinct keys that can be stuffed is
  658.       reported by these tables:
  659.  
  660.                     +------------+-------------------+
  661.                     |    ONE     |    # of buttons   |
  662.                     |   SWITCH   |                   |
  663.                     |            |  2    4    6    8 |
  664.                     +------------+----+----+----+----+
  665.                     | 4 way mode | 10 | 14 | 18 | 22 |
  666.                     +------------+----+----+----+----+
  667.                     | 8 way mode | 18 | 22 | 26 | 30 |
  668.                     +------------+----+----+----+----+
  669.  
  670.                     +------------+-------------------+
  671.                     |    TWO     |    # of buttons   |
  672.                     |  SWITCHES  |                   |
  673.                     |            |  2    4    6    8 |
  674.                     +------------+----+----+----+----+
  675.                     | 4 way mode | 16 | 24 | 32 | 40 |
  676.                     +------------+----+----+----+----+
  677.                     | 8 way mode | 32 | 40 | 48 | 56 |
  678.                     +------------+----+----+----+----+
  679.  
  680.       With the switch keys you can, for example, play Quake without using the
  681.       keyboard, or play Robotron with a single fire button (very nice -
  682.       try it!).
  683.  
  684.       NOTE: when any switch key is pressed, keyboard emulation via mouse is
  685.       suspended.
  686.  
  687.  
  688. [Q30] What is 'autofire'?
  689.  
  690. [A30] Autofire is a special feature that can be used to repeatedly stuff
  691.       a certain key while a fire button is pressed; each button can have
  692.       a different repeat delay.
  693.       A value of 0 for repeat delay means 'no autofire'; lower values
  694.       (except 0) mean faster repetition, so 1 is fastest and 18 is slowest.
  695.       The repeat delay is the number of device pollings after which a
  696.       keypress is generated if a fire button is held down.
  697.       If 'force break' is active, settings should be >= 2, since 1 = 2 (one
  698.       delay state is necessary for releasing the button); in this mode, at
  699.       most 9 keys per second are stuffed in the buffer. The autofire values
  700.       are valid also for all switched fire buttons.
  701.  
  702.       Important: SET ALL REPEAT DELAYS TO 0 TO SPEED UP EMULATION.
  703.  
  704.       Remember that repeat delay for autofire is directly connected to the
  705.       sampling interval; if you increase sampling interval, you might want
  706.       to decrease repeat delay and vice-versa.
  707.  
  708.  
  709. [Q31] What is 'hot key support'?
  710.  
  711. [A31] Hot key support is a feature of JoyEmu; it let you change on the fly
  712.       many parameters of the emulation by using hot keys, which are special
  713.       key combinations on the keyboard. Since there are programs in which
  714.       hot keys are used to actually enter data and since hot key support
  715.       slows down keyboard response, it can be disabled by using the
  716.       parameter 'Y-' on the command line or the appropriate option in JoyCP.
  717.  
  718.  
  719. [Q32] Sometimes, after using JoyEm(u) in a Dos prompt (that is: opening a
  720.       Dos prompt; installing the emulator; running an app; closing the Dos
  721.       prompt) the system returns in an odd status: a shift key (Alt, Ctrl,
  722.       Shift) seems to be always pressed. What should I do?
  723.  
  724. [A32] To restore normal operation, press together CTRL and ALT on the left
  725.       side of the keyboard and press and release the shift-type key (ctrl,
  726.       alt, left and right shift) that seems pressed.
  727.       This is caused by the fact that JOYEM/JOYEMU has stuffed make codes for
  728.       these keys but no corresponding break code, so the BIOS presumes that
  729.       these keys are still pressed.
  730.  
  731.  
  732. [Q33] I have a program with weak joystick/mouse support and I would like to
  733.       use JoyEmu with it; what should I do?
  734.  
  735. [A33] Disable joystick/mouse support in the program; you will probably use a
  736.       command line switch or there will be an option for doing this; if you
  737.       don't, you could get unexpected results or even lock-ups.
  738.       Using JoyCP, configure the keys to be used and write a batch file
  739.       to install JoyEmu with the settings you created and run the program
  740.       with the appropriate switch.
  741.  
  742.  
  743. [Q34] What about merging JoyEmu and JoyEm in a single program?
  744.  
  745. [A34] JoyEmu already includes JoyEm; I maintain both (well, actually they are
  746.       the same program, with a few different compilation flags) because
  747.       hot key support takes up about 1 Kb; if you don't need hot keys,
  748.       why should you waste one precious Kilobytes?
  749.       By the way, I use only JoyEm: I run JoyEmu when I have to debug the
  750.       emulator, after adding new features.
  751.  
  752.  
  753. [Q35] Who is the author of JoyEmu? Simone Zanella or Pin Fei Sun?
  754.       What does 'SZP' stand for?
  755.  
  756. [A35] The version of JoyEmu distributed with this file is written by
  757.       Simone Zanella (hey, it's me!).
  758.       It was inspired from an original utility with the same name written by
  759.       Pin Fei Sun (version 1.01); this program, however, is completely
  760.       different and was rewritten from scratch; no part of the actual code
  761.       resembles the source written by Pin Fei.
  762.       I decided to keep the name of the original utility (despite the fact
  763.       that now it is no more limited to joystick input) in sign of respect
  764.       for his work.
  765.  
  766.       'SZP' is the acronym for 'Simone Zanella Productions', the name
  767.       of my software house under which I publish all my products.
  768.  
  769.  
  770. [Q36] What about a Windows 95 version of JoyEmu and JoyCP?
  771.  
  772. [A36] Nope! A Windows 95 version of JoyEmu would not work for programs in a
  773.       Dos box, and a Win 95 app which does the same thing just for Windows
  774.       programs already exists: it's called "Winstick".
  775.       Regarding a Win 95 version of JoyCP, I think it would be useless: the
  776.       Dos version works in a window, has mouse support and I had very
  777.       positive feedback about it from my users; so why change?
  778.  
  779.  
  780. [Q37] What about the competitors?
  781.  
  782. [A37] There are several other programs that actually do something similar to
  783.       what JoyEmu does; among those that I've tried there are:
  784.  
  785.       JoyKeys:   this one is written by Bret Johnson and is very nice;
  786.                  lot of features, but not very easy to use since all the
  787.                  parameters must be specified on a (long) command line;
  788.                  moreover, it seems to lock the PC when it is incompatible
  789.                  with a program, and it doesn't work with many games I've
  790.                  tried; I seem to remember also an utility by the same author
  791.                  which emulates keyboard with mouse input, but I have never
  792.                  tried it;
  793.  
  794.       WinStick:  this one is written by Alan Reeve; very easy to use and a
  795.                  nice interface, but it has several limitations:
  796.                  - it works only for Windows programs and is a little slow;
  797.                  - it supports only one 2-button joystick;
  798.                  - no autofire or shifted keys;
  799.                  - it is shareware (not a bad thing on its own, but in this
  800.                    case it means that, if you don't register, the program
  801.                    ceases to work after a few minutes and you can't save/load
  802.                    key settings);
  803.  
  804.       SNESKey:   this one is written by Benji York; it seems a promising
  805.                  utility, but I'm too lazy to build the needed converter
  806.                  (you have to connect a SNES or other console joypad to
  807.                  the parallel port), so I can't judge it.
  808.  
  809.                  From the home page the author says about it:
  810.  
  811.                  "Serves the same function as JoyEmu, but with better
  812.                  features".
  813.  
  814.                  Ahem! Not at all!
  815.  
  816.                  Actually, just by reading the docs that come with it
  817.                  I found many things missing from it compared to my
  818.                  emulator:
  819.  
  820.                  - force break and hold mode;
  821.                  - diagonal mode;
  822.                  - autofire for every fire button (this one is REALLY
  823.                    needed: many people, including myself, use JoyEmu
  824.                    in place of native joystick support just for having
  825.                    autofire in the games);
  826.                  - mouse keyboard emulation;
  827.                  - an easy-to-use configuration program (the INI files
  828.                    are a mess to the common user);
  829.                  - lot of other configuration stuff.
  830.  
  831.                  SNESKey will be probably as compatible as JoyEmu,
  832.                  since it is based on the same utility by Pin Fei Sun,
  833.                  but it needs an additional piece of hardware so I'm
  834.                  not sure about its appeal to the masses.
  835.  
  836.                  It should have the advantage of being faster,
  837.                  since it takes less time to read the parallel port
  838.                  than the joystick interface, but with newer machines
  839.                  this will be unnoticeable.
  840.