You are on page 1of 4

XBOX 360 Controller emulator vibmod by Virus Read Readme.txt !!! All versions are available on

org/files/ Please report bugs on History: 01/22/2010 - version (by Virus;; x360ce@gm Bugfix release: fixed Force Feedback Issues Windows XP is now not supported (but may work, but I dont care if it works or no t !) so now Windows Vista and Windows 7 are supported only do not report bugs found on Windows XP ! 11/18/2009 - version (by Virus; Added FakeAPI calls - dinput8 dlls are now deprecated Removed patching features Experimental native mode (support for native xinput devices) Fix very old accuarcy bug for axis, now have correct values, from -32768 to +327 67 Removed Linears (somone used this ?) 11/04/2009 - version (3.1 RC3) (by Virus; Some big changes because of RC2 issues. My mistake is to making emu better that XInput is, that done more cons, that pros. So I went back to strict XInput specification, and dont use things from dinput that are not needed. First change is that emu from now will ALWAYS be working in a DirectInpu ts Background Mode (DISCL_BACKGROUND) and use of a XInputEnable function to enable and disable input. So how it wo rk now ? Now is a check, before we know a check we must know flags. So if 'enabled' is a flag to enable gamepad passed from game to emu, and 'UseEnabled' is flag that check if XInputEnable is called, we have 4 states of thats flags combination: enabled is FALSE and UseEnabled is FALSE -> emu is ON enabled is TRUE and UseEnabled is TRUE -> emu is ON enabled is TRUE and UseEnabled is FALSE -> emu is ON enabled is FALSE and UseEnabled is TRUE -> emu is OFF ie. we only off when UseEnable is TRUE (XInputEnable was called) and ena bled is FALSE. That change should fix RC2 version vibration problems in GRID and maybe other games, and makes the emulator more compatible with XInput specification ! All reInit/Failsafe flags are NOT usable now, because should not be need ed ! Note: Self Signed xinput1_3.dll, ie. if file is signed by VirusDev cert, is supp orted by me. 10/28/2009 - version RC2 (by Virus; Changed game window search (foreground mode), Failsafe is not needed now for gam

es like Bionic Commando ! Fixed default config (PAD1 enabled, other disabled) 10/24/2009 - version RC1 (by Virus; Added support for Guitar Hero 4 (Wilds Mod), thanks to Wilds for the implementat ion and Seph for the idea Added POV Reverse (POVXReverse,POVYReverse) to swap Left/Right, Up/Down Some cleaning in project 09/20/2009 - version BETA3 (by Racer_S; Added Option UseAutoReInit; Reinit if Rumble fails (DIERR_NOTEXCLUSIVEACQUIRED) use only for game like Need For Speed SHIFT 09/20/2009 - version BETA3 (by Racer_S; Added Re-Init DirectX hotkey F9; it's like v3.0 but does not reload config file. .. required for Need For Speed SHIFT Added SwapMotor in config file Added ForcePercent in config file 08/06/2009 - version BETA3 (by Virus; Changed XInput initialization to fix some games (eg. Prototype) Merge pkt-zer0 fixes 08/05/2009 - version BETA2 (by Virus; Dynamic Enumeration Some other small fixes Build using Visual Studio 2008 runtime (need to be installed to use emu now) Constant Force effect are now default 08/03/2009 - version BETA (by Virus; Added Force Feedback, redesigned inizialization 08/03/2009 - version pre-BETA, for testing only (by Virus; http://virusd Rewritten DirectInput, now should be proper done. TODO: deinitialization, force feedback, any bug caused by DirectInput functions changes 08/01/09 - version Changes in version are wrong ! Corrected: 'a' AXIS; // 's' SLIDER; // 'x' HAXIS; // 'h' HSLIDER; // without DIGITAL // '-' after type and Full ranges AXIS: ( SLIDER: ( Half ranges Axis Slider Half range Axis Half range Slider Button before number to reverse

0 to 255 from -32768 to 32768) using axis 0 to 255 from -32768 to 32768) using slider


0 to 255 from 0 to 255 from

0 to 32768) using axis 0 to 32768) using slider

08/01/09 - version Rewrite deadzones (calculations in are wrong) Fix Start()/Stop() ... one more time. This fixes 'pad discconect' if app windows lose focus and ForceFeedback is off. Added Release() and Delete() to clean separently. 08/01/09 - version Fixed some Direct Input start/stop, and poll issues Changed XInputEnable to use new functions (Start(force)/Stop(force)), easier and better checks = less crashes :) Added new option: TriggerDeadzone in [PADx] sections. As states, it set deadzone s for triggers. Value is caluculated on orginal full axis/slider value, but in out units (value*128), setting TriggerDeadzone=3 is like set deadzone to 0-3 and 252-255. 07/31/09 - version ptk-zero rearrange some parts of code, and also give me a idea to map triggers a s axis parts, upper and lower. Usable variables are now: 'a' AXIS; // 's' SLIDER; // 'l' LAXIS; // 'u' UAXIS; // 'k' LSLIDER; // 'y' USLIDER; // without DIGITAL // '-' after type and Axis Slider Lower part of Upper part of Lower part of Upper part of Button before number

Axis Axis Slider Slider to reverse

pkt-zer0 states: Here, v is the full range (-32768 .. +32768) that should be projected to 0..255 And I map types to ranges (for triggers only): Full ranges AXIS: ( SLIDER: ( Part ranges LAXIS: ( UAXIS: ( LSLIDER:( USLIDER:( 0 to 255 from -32768 to 32768) using axis 0 to 255 from -32768 to 32768) using slider 0 0 0 0 to to to to 255 255 255 255 from -32768 to from 0 to 32768) from -32768 to from 0 to 32768) 0) using axis using axis 0) using slider using slider

If gamepads is 5 axis (single axis/slider for both triggers) set: Example: Old emulator settings: Left Trigger=h4 Right Trigger=h4 Is same as this settings:

Left Trigger=a4 Right Trigger=a-4 Second axis must be reversed, because single axis pad must working as th is: Left Trigger 0 ---> 255 <--- 0 Right Trigger CSLIDER/CAXIS deleted, because should not be needed. HSLIDER/HAXIS deleted, because above method is mouch more flexible. Because of above changes I permanent change config file name to x360ce.ini, and also axis/slider numbering (Left Thumb Y is reversed, ad '-') Added Visual Studio 2005 project files to sources. And big thanks to pkg-zer0 for help :) 07/30/09 - version Rearange source code Fixed DirectInput Stop/Start if window lose/get focus Some null pointers fixed in DirectInput code Change config name to x360ce.ini (old will work too) 07/26/09 - version Quick hotfix 07/26/09 - version Changed Force Feedback functions 07/24/09 - version Fixed Bionic Commando - once again ... Different dinput window hooking, works with SDK demos (on loose focus deactivate, on focus activate), should work with games. Removed DebugBeep, Log is better 07/23/09 - version Fixed InitBeep lag, now uses MessageBeep (async) Fixed Bionic Commando - again, now proper emu deinit (free gamepads), different init/reinit dll Added logging function, use Log=1, logs to 'xbox360cemu.log' some interesting st uff 07/22/09 - version Fixed Prototype (seems to be game bug !, game loops XInputGetCapabilities fuctio n) Added new option UseDebugBeep, useful for debugging 07/21/09 - version Added half (single) axis support (use 'h' in trigger config) Fixed Force Feedback Vista/Windows 7 crash Fixed Bionic Commando