Coder Social home page Coder Social logo

nefarius / shibari Goto Github PK

View Code? Open in Web Editor NEW
139.0 18.0 22.0 556 KB

Gaming input peripherals prototyping platform for Windows

Home Page: https://docs.nefarius.at/projects/Shibari/

License: MIT License

C# 100.00%
sony dualshock windows driver usermode shibari scptoolkit fireshock airbender vigem

shibari's Introduction

Shibari

Management layer for AirBender, FireShock & BthPS3 device drivers


⚠️ This project is no longer maintained. It has been superseded by DsHidMini. ⚠️


Documentation (OUTDATED)

The linked content isn't updated anymore, use at your own risk 😘

👉 Follow this guide to set up wireless (and wired) connection

👉 Follow this guide to set up wired connection only (USB)

Credits

Shibari makes use of the following awesome 3rd party components:

  • Fody/Fody - Extensible tool for weaving .net assemblies
  • Fody/Costura - Embed references as resources
  • OctopusDeploy/Halibut - A secure communication stack for .NET using JSON-RPC over SSL.
  • InTheHand.Devices.Bluetooth - Personal Area Networking for .NET
  • Json.NET - Popular high-performance JSON framework for .NET
  • Serilog - Flexible, structured events — log file convenience.
  • Topshelf - An easy service hosting framework for building Windows services using .NET
  • AArnott/pinvoke - A library containing all P/Invoke code so you don't have to import it every time. Maintained and updated to support the latest Windows OS.
  • JsonConfig - Simple configuration library using JSON and C# 4.0 dynamic feature

shibari's People

Contributors

daltz333 avatar elenemigo avatar megadrago88 avatar nefarius 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  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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

shibari's Issues

PS button not working

Hello, since I've not seen no one asking for this, I don't know if this is occurring only to me or no one cares about the PS button.

If I use the XBOX sink this is how it looks my controller:
Only 10 buttons, the button 11 would be the PS since L2 and R2 is the Z axis
imagen

And using the DS4 sink:
I have four more buttons, where two of them are L2 and R2 that now they have a button in addition to de rotation X and rotation Y, and the 13 and 14 buttons that don't know what they are since nothing in my controller activates them.
imagen

I have not seen your entire code but I noticed that in XBOX sink you are pairing PS button with Guide button
https://github.com/ViGEm/Shibari/blob/402d484f4f2f8350b24ad942de66ba75f1da173a/Sinks/Shibari.Sub.Sink.ViGEm.X360/Core/ViGEmSinkX360.cs#L36-L53

But in DS4 sink you are not pairing PS button
https://github.com/ViGEm/Shibari/blob/402d484f4f2f8350b24ad942de66ba75f1da173a/Sinks/Shibari.Sub.Sink.ViGEm.DS4/Core/ViGEmSinkDS4.cs#L32-L46

For me, the PS button is not working in any of the sinks.

I tested it with two controllers:

  • Original Sony Sixaxis controller
  • Non original PS3 controller

Using Shibari both are working in the same way (with no PS button), without ViGEm and Fireshock there is a little diference both get recognized by windows but in the properties of the game device the only one showing what I press on the controller is the non original PS3 controller.

Controller Freezes on input

Describe the bug:

On older hardware computers your controller tends to freeze, I noticed because I was using a older computer and was experiencing constant freezing, I went onto my more powerful computer had no issues and once running a stress test my controller froze.

To Reproduce
Steps to reproduce the behavior (example):
1.) Start the program
2.) Use a controller and plug it in
3.) run a stress test
4.) Controller freezes

Expected behavior
I am not quite sure what Im supposed to put here but maybe optimize the emulation software for older computers and that could possibly lessen the freezing if not stop it

System details (please complete the following information):

  • OS: [Windows 10 Pro 20H2
  • Feeder software: Dualsense Controller CFI-ZCT1W
  • Driver Version: 1.17.333

Additional context
I noticed that this version only supports windows 10 so I am curious over whether or not if I used a older version of ViGEmBus would help.

All Status-Led's blinking indefinitly after conntecting (original) DS3 over bluetooth

Reproduce

  1. Reset DS3 (not sure if nescessary but I always do to turn the DS3 off)
  2. Press PS-Button to turn it on

Observed Behaviour

Controller connects after a while and all status-led's keep blinking

Expected behaviour

After connecting only the appropriate led should be lit


Im not sure if this is intended / out of scope or if this even is a problem of Shibari and not the driver.

Controller not working until I unplug/replug usb

Describe the bug
I'm using a ps3 controller with ViGEm/Shibari/Fireshock. The first week I had no issues, but now every time i reboot my pc my controller does not work until i unplug the usb and plug it back in. I have checked that the shibari dom server is running (it is) and have even tried reinstalling all the drivers.

To Reproduce
Installed ViGEm, Shibari dom server with automatic service startup enabled in Windows, and Fireshock.
Reboot pc with usb cable plugged in. Controller is not working until I unplug the usb and plug it back in.

Expected behavior
The controller should automatically work after reboot.

System details (please complete the following information):

  • OS: Windows 10 19041.746
  • Feeder software: ViGEm, Shibari, Fireshock
  • Driver Version: ViGEm 1.17.333, Shibari 1.6.180, Fireshock 3.0.0.0

Edit: I did some more testing, and it's actually only on manually turning off pc, and turning it back on that it doesn't work. Using the reboot option causes the controller to work fine. Could this be caused by windows itself, e.g. maybe fast boot which only activates on shutting down, not reboots? Just a guess to why it might happen though.

Edit 2: Well I tried disabling fast boot and then turning off/on my pc and now the controller is working as intended. This leads me to believe there might be a problem with one of the drivers not loading properly in fast boot.

Bluetooth working, plugging back with USB working, unplugging again and then bluetooth not working

Hi,
Just want to start by saying that I'm really grateful for the work being done with this and other ViGEm projects, it's nice being able to use the DS3 on a PC. I have encountered an issue however, and I have no idea what could be going wrong. Like the title says, USB plugged in works perfectly all the time, bluetooth will work the first time the controller is unplugged, but if it's plugged back in, then unplugged again, the controller doesn't work by bluetooth. I figured the WRN message in Shibari might have something to do with it, but it displays right before Bluetooth actually works, so I'm not sure. Strangely the red LED on the controller is on, solid above "1" (the same as it would be if it was actually working, either via USB or Bluetooth). The only ways I've found to "fix" it is by resetting the controller with a pin, causing Shibari to display "got removed via Bluetooth" or by closing Shibari (basically the same, forcing a Bluetooth disconnect). Afterwards I can start using the controller via Bluetooth either by pressing the PS button on the controller or plugging-unplugging via USB. Any tip to be able to have Bluetooth work other than the first time by simply unplugging from USB (without resetting the controller or Shibari everytime)? Or maybe there's a way to force a "got removed via Bluetooth" automatically when it gets plugged via USB?

Thanks in advance

Windows 10 20H2 x64, BthPS3 1.3.108

PS: Picture showing all Bluetooth devices/drivers looking fine, and of Shibari starting, USB working, unplug and Bluetooth working, plug back and USB working, unplug and Bluetooth no longer working.

image

image

Fake DS3 controller doesn't work with bluetooth

I'm sorry for previus version of issue first of all,it happened because of some network bug.I'm trying to solve a problem with DS3 for a long time,maybe more people encountering with this problem.I can use my DS3(good quality replica) with usb cable but when i go for bluetooth connection it pairs with dongle but dont react pressing the buttons or moving the analog.
I don't get any errors but for the possibility i upload log file.
b
a
Shibari.Dom.Server-20200720.log

Maybe it cause from my DS3 but i am trying to fix it so if anyone can explain why this is happening i will be happy,thanks in advance.I upload some screenshot for if i can't explain myself very well.

Windows 10 v.2004
Shibari DOM Server v.1.5.171
Fireshock v3.0
BthPS3 v1.24

Dualshock 3 Analog button pad / Pressure sensitivity

Is your feature request related to a problem? Please describe.
Hello!!
I'm still stuck using an isolated copy of MotionInJoy's .dll combined with BetterDS3 to get analog button data. I saw that Shibari supports this thing called "sinks"? Why don't they have one for the DualShock 3 yet??

Describe the solution you'd like
Maybe I should have posted this in the Shibari GitHub repository, but perhaps there is something to be done at the layer that Vigem sits at to better support analog face buttons on the DS3?

Describe alternatives you've considered
My primary goal is to be able to play Metal Gear Solid 2 Substance PC using analog face buttons with less hassle. As mentioned above, I have to go through some crazy loops to reassign one of my RStick axis to Square just so Xpadder can later interperet that axis as a series of keyboard inputs that the game will recognize. So:
Square barely pressed - 'Slow'
Square further depressed - 'Action + Slow'
Square pressed all the way - 'Action'

All of this just so I can holster my pistol after acquiring a target -but without having to unequip the stupid thing. This is also necessary if you want to be able to aim with a rifle -otherwise, the thing just fires on full-auto as soon as you begin aiming.

I mean, it's miracle that I got this working as well as I did, but I still have to sacrifice an axis that would later have been used for 'Vertical Slice' when you get the sword!!

Jesus, if this is in the wrong place, someone send it to the right people. This game is a masterpiece on PC but noone plays it because of all this...!

Charging controller

Sorry to ask that, but I wish to know if the symbol besides controller 1 means that it is charging. I want to know if there is any way to charge the controller on PC. And just for the record, when a bunch of [?????] shows instead of the bar, what is the meaning? I'm sorry for my bad english
image

Add an option to turn off Force Feedback

This is just a reminder about what was discussed on the Discord channel about adding an option to turn off Force Feedback as a way to avoid the currently bugged implementation that leaves the lingering vibrations in some cases, instead of having to turn off Force Feedback in every individual game.

Service crashed, just a Bug Report.

Hi,

I have installed the service. works very good.

I got one crash while gaming, while being connected via bluetooth.

Faulting application name: Shibari.Dom.Server.exe, version: 1.5.171.0, time stamp: 0xf2273601
Faulting module name: KERNELBASE.dll, version: 10.0.18362.778, time stamp: 0xafa78a6a
Exception code: 0xe0434352
Fault offset: 0x000000000003a799
Faulting process id: 0x5e0c
Faulting application start time: 0x01d6208f7b99a870
Faulting application path: C:\Users\webtroter\Downloads\DS3\Shibari\Shibari.Dom.Server.exe
Faulting module path: C:\Windows\System32\KERNELBASE.dll
Report Id: c9a2454b-e8c4-4ffc-bcb0-ffca5f91b973
Faulting package full name: 
Faulting package-relative application ID: 

Application : Shibari.Dom.Server.exe
Version du Framework : v4.0.30319
Description : le processus a été arrêté en raison d'une exception non gérée.
Informations sur l'exception : System.ArgumentException
   à Shibari.Sub.Source.BthPS3.Core.BthPS3Device.CreateSixaxisDevice(System.String, Int32)
   à Shibari.Sub.Source.BthPS3.Bus.BthPS3BusEmulator.OnLookup()
   à Shibari.Sub.Core.Shared.Types.Common.BusEmulatorBase.OnLookup(Int64)
   à System.Reactive.AnonymousSafeObserver`1[[System.Int64, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].OnNext(Int64)
   à System.Reactive.Linq.ObservableImpl.Timer+Periodic+_.Tick()
   à System.Reactive.Concurrency.Scheduler+<>c__67`1[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].<SchedulePeriodic>b__67_0(System.ValueTuple`2<System.__Canon,System.Action`1<System.__Canon>>)
   à System.Reactive.Concurrency.DefaultScheduler+PeriodicallyScheduledWorkItem`1+<>c[[System.ValueTuple`2[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].<Tick>b__5_0(PeriodicallyScheduledWorkItem`1<System.ValueTuple`2<System.__Canon,System.__Canon>>)
   à System.Reactive.Concurrency.AsyncLock.Wait(System.Object, System.Delegate, System.Action`2<System.Delegate,System.Object>)
   à System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
   à System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
   à System.Threading.TimerQueueTimer.CallCallback()
   à System.Threading.TimerQueueTimer.Fire()
   à System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
   à System.Threading.ThreadPoolWorkQueue.Dispatch()

Impossible d'arrêter le service. System.InvalidOperationException: An unhandled exception was detected ---> System.ArgumentException: Couldn't open device \\?\BTHPS3BUS#{53F88889-1AAF-4353-A047-556B69EC6DA6}#C&2E39B841&0&0006F5B0E166#{7B0EAE3D-4414-4024-BCBD-1C21523768CE}
   à Shibari.Sub.Source.BthPS3.Core.BthPS3Device.CreateSixaxisDevice(String path, Int32 index)
   à Shibari.Sub.Source.BthPS3.Bus.BthPS3BusEmulator.OnLookup()
   à Shibari.Sub.Core.Shared.Types.Common.BusEmulatorBase.OnLookup(Int64 l)
   à System.Reactive.AnonymousSafeObserver`1.OnNext(T value)
   à System.Reactive.Linq.ObservableImpl.Timer.Periodic._.Tick()
   à System.Reactive.Concurrency.Scheduler.<>c__67`1.<SchedulePeriodic>b__67_0(ValueTuple`2 t)
   à System.Reactive.Concurrency.DefaultScheduler.PeriodicallyScheduledWorkItem`1.<>c.<Tick>b__5_0(PeriodicallyScheduledWorkItem`1 closureWorkItem)
   à System.Reactive.Concurrency.AsyncLock.Wait(Object state, Delegate delegate, Action`2 action)
   à System.Threading.ExecutionContext.RunInternal(ExecutionContext ex...

This in the log file:

2020-05-02 10:39:33.262 -04:00 [Information] Connecting ViGEm target "Nefarius.ViGEm.Client.Targets.Xbox360Controller"
2020-05-02 10:39:33.267 -04:00 [Information] ViGEm target "Nefarius.ViGEm.Client.Targets.Xbox360Controller" connected successfully
2020-05-02 13:23:12.574 -04:00 [Information] Device "DualShock3 (00:06:F5:B0:E1:66)" disconnected
2020-05-02 13:23:12.576 -04:00 [Information] Device "DualShock3 (00:06:F5:B0:E1:66)" got removed via Bluetooth
2020-05-02 13:23:12.577 -04:00 [Information] Found SIXAXIS device "\\?\BTHPS3BUS#{53F88889-1AAF-4353-A047-556B69EC6DA6}#C&2E39B841&0&0006F5B0E166#{7B0EAE3D-4414-4024-BCBD-1C21523768CE}" ("BTHPS3BUS\{53F88889-1AAF-4353-A047-556B69EC6DA6}\C&2E39B841&0&0006F5B0E166")
2020-05-02 13:23:12.587 -04:00 [Information] Device "DualShock3 (00:06:F5:B0:E1:66)" disconnected
2020-05-02 13:23:12.611 -04:00 [Fatal] Unhandled exception: "System.ArgumentException: Couldn't open device \\?\BTHPS3BUS#{53F88889-1AAF-4353-A047-556B69EC6DA6}#C&2E39B841&0&0006F5B0E166#{7B0EAE3D-4414-4024-BCBD-1C21523768CE}
   à Shibari.Sub.Source.BthPS3.Core.BthPS3Device.CreateSixaxisDevice(String path, Int32 index)
   à Shibari.Sub.Source.BthPS3.Bus.BthPS3BusEmulator.OnLookup()
   à Shibari.Sub.Core.Shared.Types.Common.BusEmulatorBase.OnLookup(Int64 l)
   à System.Reactive.AnonymousSafeObserver`1.OnNext(T value)
   à System.Reactive.Linq.ObservableImpl.Timer.Periodic._.Tick()
   à System.Reactive.Concurrency.Scheduler.<>c__67`1.<SchedulePeriodic>b__67_0(ValueTuple`2 t)
   à System.Reactive.Concurrency.DefaultScheduler.PeriodicallyScheduledWorkItem`1.<>c.<Tick>b__5_0(PeriodicallyScheduledWorkItem`1 closureWorkItem)
   à System.Reactive.Concurrency.AsyncLock.Wait(Object state, Delegate delegate, Action`2 action)
   à System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   à System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   à System.Threading.TimerQueueTimer.CallCallback()
   à System.Threading.TimerQueueTimer.Fire()
   à System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
   à System.Threading.ThreadPoolWorkQueue.Dispatch()"
2020-05-02 13:23:12.621 -04:00 [Information] Stopping bus emulator "AirBender Bus Emulator"
2020-05-02 13:23:12.623 -04:00 [Information] AirBender Bus Emulator stopped
2020-05-02 13:23:12.623 -04:00 [Information] Bus emulator "AirBender Bus Emulator" stopped successfully
2020-05-02 13:23:12.623 -04:00 [Information] Stopping bus emulator "BthPS3 Bus Emulator"
2020-05-02 13:23:12.623 -04:00 [Information] BthPS3 Bus Emulator stopped
2020-05-02 13:23:12.623 -04:00 [Information] Bus emulator "BthPS3 Bus Emulator" stopped successfully
2020-05-02 13:23:12.623 -04:00 [Information] Stopping bus emulator "FireShock Bus Emulator"
2020-05-02 13:23:12.623 -04:00 [Information] FireShock Bus Emulator stopped
2020-05-02 13:23:12.623 -04:00 [Information] Bus emulator "FireShock Bus Emulator" stopped successfully

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.