Giter VIP home page Giter VIP logo

mi-vigem's Introduction

Mi-ViGEm

XBox360 controller emulation for Xiaomi gamepad. Supports multiple devices and vibration. Implemented on vanilla C and WinAPI, supposed to be much more lightweight comparing to it's analogs. XBox360 emulation driver is provided by ViGEm (https://github.com/ViGEm/ViGEmBus), by Benjamin Höglinger.

Requirements

  • Windows 10 (should work on Windows 7 and 8 also)
  • ViGEm bus installed (can be downloaded here)

How it works

Mi-ViGEm program at start scans for Xiaomi Gamepad devices and then proxies found Xiaomi gamepads to virtual XBox360 gamepads (with help of ViGEmBus). Also Mi-ViGEm subscribes to system device plug/unplug notifications and rescan devices on each notification. All found devices are displayed in tray icon context menu (along with their battery level). Manual device rescan can be initiated via tray icon context menu.

Double input problem

Mi-ViGEm doesn't replace Xiaomi gamepad with XBox360 gamepad, it just creates virtual XBox360 gamepad in parallel, so both gamepads are presented in OS. This causes problems in some games, which read input from both real and virtual gamepads. There is nothing to do with that on user application level, only kernel level driver can help. Fortunately, ViGEm developed HidHide driver which deals with that problem (can be downloaded here).

Mi-ViGEm provides integration with HidHide driver since version 1.2. It automatically detects HidHide presence and makes necessary changes in white and black lists. You only need to install HidHide (reboot is required) and run Mi-ViGEm.

Thanks to

This project is inspired by following projects written on C#:

Thanks to following libraries and resources:

mi-vigem's People

Contributors

grayver avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

mi-vigem's Issues

TMNT 2 не поиграть

В новых черепашках ниндзя определяется два игрока.с 1 го джойстика. Если 2 то 4 , и клавиатура не убирается.

杂牌手柄驱动问题

老哥你好,我几年前买了一个杂牌手柄,是惠康的we4800,用各种各样的模拟都不太行。我自己测试过了,在xb360ce中,所有的按键都有效果。
由于市面上的软件都不是很好,我先拆开了we4800手柄,发现里面的构建很简单。
我就寻思着能不能自己写一个驱动,就像老哥你写的小米手柄驱动一样。
在这里我就很感谢老哥了,大学时代我用你的驱动,成功的运行了小米蓝牙手柄。体验效果真的很好。但我在今天才发现是你写的。非常感谢老哥带来的快乐。
在这里我也斗胆问一句,能否请老哥教教我具体的开发流程?我可以贡献我拆卸的手柄具体照片细节。供老哥查看。
很期待老哥的回复

Shared vs exclusive HID access

Hi! mi-360 developer here. Nice project!

I saw that you don't enforce exclusive access to the HID devices when you open them, hence reverting to the standard shared mode. This leaves the Xiaomi Gamepad visible and accessible to the applications and games along with the virtual XBox controller.

Have you ever noticed some incompatibilities with some game leaving two game devices simultaneously available? Have you ever had problems with exclusive access too?

Battery level inconsistency

My Xiaomi Gamepad has turned off due to low battery level. However it reported 61% battery level over data protocol.. Need to figure this out.

Auto turn off when vibrate.

Hello, This is very usefull tool. But I have a problem, that when every time vibrate was active, the Gamepad auto turning off?

One more question: How can I get a newer Vigem driver without build the repo, and which one I should use? :/

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.