---== Def's Direct Input ==--- 

Current Version .53
by Deflection ( deflection@most-wanted.com )

For N64 Emulators compatible with
Zilmar's Common Controller plugin spec, version #1.0


-Spec's-------------------

V.54 Support's
- DirectX 7 or higher.
- 4 logical N64 controllers
- Up to 5 Devices in any combination (No mouse support)
- Fully adjustable Axis Control
- Saving and Loading Controller Definition Files.
- 2 Macro Combination buttons.
- 2 Adjustable Speed buttons.

Should work with all capable emulators. (Mainly tested with Project64)

-New---------------------

V.53->V.54
-Fixed 1080 Snowboard error
Active indicator now resets the emulator to detect only controls that are active
every time a rom is opened. No restart of emulator necessary. In order to play 1080
do not leave the fourth controller active upon starting the rom.


-Comments-----------------

Props to Zilmar for the specs, Jabo for ideas about what can be done, 
NooTe on some DirectX device ideas in his open source plugin, Azimer 
and 1964 Team on how to code api functions in their open source emulators
and plugins, and UPX for their excellent and free packer!

Thanks to you guys, people like me are able to help. There is a point to
open source.

In that spirit I will open source this plugin under GPL if there any one
interested. This plugin was basically a learning project for me on how 
to code C for windows using API calls. I choose it because I thought it would
be FUN. In retrospect it was FUN and an excellent learning project to choose.
(DLL, Dialogs, Registry, Files, and more)


-Instuctions--------------

1. Place Def.dll into the plugin folder of your N64 emulator.
2. Select "Def's Direct Input .53" in the controller plugin selector.
3. Select Configure Controller Plugin
4. Select Controller to configure in the drop down list.
5. Activate device by checking the "Active control".
5. Highlight Devices to be used in the Device List
6. Configure controls.


-Dialog Controls----------

-Apply
Enables current displayed configuration for the logical contoller.

-OK
Enables all 4 current configurations for each respective logical controller.

-Cancel
All configuration changes since opening the dialog or the last time Apply
was pressed will be unsaved.

-Reset
Inactivates all buttons on the logical controller.

-Pressing Keyboard Esc key while selecting a control deactivates control.

-Save Definition
Saves current logical controller configuration to user named 
controller definition file(*.cdf).

-Load Definition
Load controller definition file(*.cdf) as current logical controller
configuration.


-Controls-----------------

--Current N64 Controller--
Set to the desired logical controller to configure.


--Properties--

-Active
!!! If unchecked controller will not function !!!
Checking activates that controller. Upon starting a rom it will only detect
those controls that are active. No restart of emulator necessary.

-Rumble
Not working.


--Device List--
!!! Make sure devices you wish to use for the logical controller are 
highlighted !!!
Shows all connected devices (Keyboards, Joysticks/Gamepads).
Highlight devices the logical controller should use. Works in any
combination of Devices and controllers. (Seperate Logical controllers 
can share the same device.)
Mice not supported.  


--Sensitivity--
Finely adjustable in bit increments from 0 to 127.

-Max ( Range 50-127  - Default 80 )
Higher=Faster, Lower=Slower
For Axis this sets the _maximum_ speed of movement. 
For Buttons this sets the speed of movement.
(Also sets the speed of movement in Macro's) 

-Min ( Range 0-30  - Default 30 )
For Axis this sets the minimum level of movement detected from the gamepad.
For Buttons no effect.
(Sometimes referred to as Dead Zone, this sets how sensitive the controllers
Axis should be. Increse if Axis movement is erratic. Decrease for more
controlled (smaller) movements during gameplay and configuration.


--Buttons--         --Triggers--

-A  A Button        -Z  Z trigger
-B  B Button        -L  Left Trigger
-S  Start Button    -R  Right Trigger


--Analog Stick--    --Digital Pad--    --C Buttons--

-U  Up              -U  D-Up           -U  C-Up Button
-D  Down            -D  D-Down         -D  C-Down Button
-L  Left            -L  D-Left         -L  C-Left Button
-R  Right           -R  D-Right        -R  C-Right Button


--Speed Modifiers--

-M1 ( Range 1-127  - Default 40 )
-M2 ( Range 1-127  - Default 20 )
When held down these buttons change the speed of movement for the 
Analog Stick controls. Can be used to increase or slow down movement
during parts of gameplay. (Ex. Set to half sensitivity max to slow 
movemnt to halfspeed)


--Macros--

-C1, C2
Create Macro Combinations by clicking the edit button and checking
the desired buttons. Pressing this control during gameplay will be 
like pressing all checked buttons simultaneously.













 
