moving this discussion here.....rabiddiety said:This is my overhaul of NRage's DirectInput8 Plugin.
2.1 rc3 RELEASE
I got sick of wrestling with a bug or two in NRage's DirectInput8 plugin, and decided to delve into the code and fix them myself. Well, one thing led to another, and I kinda wound up rewriting most of it. If you're going to fix one bug, you might as well fix them all, right?
THE MANUAL (please read this before asking questions):
CHM or Online Manual
RELEASE BINARY (most people want this):
DEBUG BINARY (Generates a file called NRage-Debug.txt in your emulator folder. This file can get huge, so don't download this version unless the release version doesn't work!)
SOURCE (for hackers and those who lurve the GPL):
download from Subversion server
LANGUAGE SDK (for people doing translations):
Translations (unpack the dll file to your emulator's directory, NOT the plugin directory)
German by aTomIC
Simplified Chinese by Harlay
Spanish by NaSeR
French by Siskoo
Finally, here's a Keyboard/Mouse basic config file to give you some ideas for Goldeneye and Perfect Dark:
This version of the plugin will NOT overwrite settings from 1.83 and before, but neither will it read from older config files or saves (it stores config data differently). This means that you can run the plugin alongside older versions of the plugin, for comparison. But it also means you will have to bind your keys from defaults when you first run 2.x versions.
Current TODO list:
-running with a gamepad unplugged or unplugging during emulation must not cause crashes
-mouse locking: fix problems with mouse binding in control panel while running
-mouse locking: should unlock mouse when closing a ROM
-redo keyboard/mouse cpf on this post
+rewrite Adaptoid code to be asynchronous
+add reading gba ROMs from zip files
Fixed, added, or changed:
+ Switching between paks with shortcuts unplugs the current pak and waits before putting in the new one.
+ Shortcut "notifications" should work correctly now (Thanks Koolsmoky)
+ Better detection of devices; more joysticks should work now, as well as steering wheels and things that aren't strictly "gamepads"
+ N64 controllers can now get input from multiple gamepad type devices
+ Now able to assign a key, mouse, or gamepad control to as many N64 control surfaces as you like
/ device selection for keybinding no longer needed; devices list now shown as "Force-Feedback Devices" under ControllerPak selection (pick Rumble, and tick the "RawMode" box)
/ no longer possible to send FF events from multiple controllers to the same FF device (this shouldn't have worked anyway)
+ now captures mouseclicks properly in Controllers tab (disable button clicks while polling)
+ INTERNATIONAL SUPPORT (and internally switched to Unicode)
+ releases exclusive mouse while in config menu (fixed a mouse bind while locked issue)
+ add independent X/Y mouse sensitivity
+ changed absolute mouse support: now choose between Buffered (default from before), Absolute, and Deadpan (control only moves while you move the mouse)
+ various optimizations, bugfixes, and spelling fixes
+ LOTS of documentation added to the source; it should be more legible now
+ rewrote controller save and restore (underlying CONTROLLER and BUTTON structs changed...)
/ Button mappings and modifiers will need to be reset on first load
+ now rewrites mempak and transferpak RAM to disk immediately after writing to controller (1.83 and previous didn't save the mempak until RomClose)
+ now possible to map shortcuts to buttons and axes as well as keys (be careful)
+ tabbing within the config window actually works now
+ can save and load shortcuts
+ Transferpak MBC5 support fixed (Pokemon Yellow, Perfect Dark)
/ Win98/ME registry load finally fixed
+ lots of crash bugs fixed
2.1 is now in "release candidate" stage. Please test any bugs you find vs the latest DEBUG version, and if they still exist there please post.