Scp virtual bus driver что это
You can manually update the SCP Virtual Bus Driver on your computer. This driver is part of your operating system and should be installed whenever you want to use the device. In order to get the latest version of the driver, you need to download it from the official website and follow the instructions on the screen. In the installation window, you will see a link to download the latest version. After installing the latest version, you need to go to the Windows Update page to check for any new updates.
To install the latest SCP Virtual Bus Driver:
To install the SCP driver, go to Control Panel>Services>SCP and select the SCP package. If you don’t see the SCP package, you can manually download it from the Internet. Once you’ve downloaded it, you’ll need to install the XInput Wrapper and Filter Driver. You’ll need to unblock the service and specify a directory for the service installation. After you’ve installed the driver, make sure to restart the PC to use it.
If you’re having trouble installing the SCP driver, try to uncheck the box for Bluetooth support. This is required if you want to use the DirectInput wrapper with DualShock controllers. After installing the SCP driver, run the application and wait for it to finish. Then, you can use the SCP drivers to control your DS3 and DS4 devices. However, if you’re having difficulty installing the SCP driver, you may want to uncheck this option.
Driver installation process:
To install SCP, you’ll need to install the DirectInput wrapper. To install DirectInput, you’ll need to run the program as an administrator. You’ll also need to make sure that Bluetooth isn’t enabled. You can use the SCP driver if you’re using DualShock controllers. You’ll need to run SCP if you want to use DualShock controllers on your computer.
If you want to use a DS3/DS4 controller, you can install the SCP driver by using Bluetooth. To install SCP, you’ll need to install the drivers for the DS3 and DS4 controllers. If you’re using the SCP driver on your Windows PC, you need to ensure that Bluetooth is not checked. The SCP service needs to be running in order to enable these features.
Process of Un-installation:
You can uninstall SCP by going to the Windows Task Manager and selecting the files that need to be removed. The files that you want to delete are stored in the windows task manager. Once you have the SCP driver installed, you can install the game that uses it. This is an important step when you’re using the SCP virtual bus. The SCP drivers are essential for DualShock controllers. The SCP driver is the most important software for DualShock.
You can uninstall the SCP driver by using the Windows Task Manager. To do this, go to the Windows File Explorer and select the SCP service. You can also delete the DS3 controller driver by using SHIFT+Delete. If you don’t have these applications, the SCP driver will fail to uninstall them. If the SCP service is still running, restart the computer. It will remove the SCP Virtual Bus and the game will no longer be able to run.
Install the SCP Driver:
You can install the SCP driver with a DirectInput wrapper. This driver is free and will work with your DualShock controller. To install the SCP virtual bus driver, you must have Windows Vista/7/8/8.1/10 x86. If your computer is not compatible with SCP drivers, you can install the DirectInput wrapper, which will support the DualShock controller. Then, you can choose the SCP drivers from the Windows task manager and unblock the SCP service.
Your system doesn’t have the driver updates:
If the SCP Virtual Bus driver is not installed, you need to install the drivers. Then, you need to run the driver. To install a DirectInput wrapper, open Windows Task Manager and select the SCP folder. Then, you need to choose the SCP folder and click on “Add” to install the service. This is the first step. After this, you can install SCP on your PC.
Утверждение дискуссионное. Но скорее это так, чем не так.
С XBox геймпадами всё просто, геймпады от консоли Xbox на сто процентов совместимы с ПК и нет никаких проблем, подключить геймпад Xbox 360\Xbox One к ПК под управлением Windows.
Со стороны Windows, Xbox геймпады поддерживаются посредством API XInput и на 99% совместимы со всеми ПК играми, если в этих играх, вообще, есть поддержка геймпада, а сами игры вышли на ПК после 2006 года.
Но что делать, если вы обладаете консолью PLAYSTATION 4 и\или у вас есть DUALSHOCK 4?
DUALSHOCK 4 без проблем можно подключить (Bluetooth, родной адаптер, USB-кабель) к компьютеру под управлением Windows.
Но DUALSHOCK 4 определяется в Windows, как стандартный DirectInput геймпад, никакой поддержки XInput нет, а нет поддержки XInput и совместимости с огромным количеством ПК игр, не будет:
В отличии от XInput геймпадов, где наличие поддержки этого API, автоматически подружит геймпад со всеми XInput-совместимыми играми, без всяких дополнительных настроек и телодвижений со стороны юзера (воткнул и играешь), с DirectInput устройствами - всё не так.
В реалиях стандартных приложений Windows, поддержка конкретного DirectInput Only геймпада (или руля), должна быть прописана в целевой игре персонально. А в случае с DUALSHOCK 4 - это аж три разных устройства:
В некоторых случаях нативная поддержка DUALSHOCK 4 прописана в исполняемом файле игры. Иногда в папке с игрой дополнительно лежит DLL-ка от Sony:
реклама
В редких случаях, поддержку, частично, можно "намутить" самому, через файл с настройками.
Есть игры, где нативно поддерживается только проводное подключение DUALSHOCK 4. А есть игры, где поддерживается только DUALSHOCK 4 первой ревизии, потому что на момент выхода игры, DUALSHOCK 4 второй ревизии (и адаптер), ещё не вышли, т.е. нативную поддержку последних могут добавить только разработчики игры, патчем.
Уровни поддержки тоже различаются, где-то поддерживается только управление геймпадом (GTA 5), а где-то поддерживается почти всё : вибрация, световая панель, обозначение кнопок на экране (The Witcher 2, F1 2017, Dying Light). Вот несколько скриншотов из таких игр:
реклама
реклама
реклама
Интересный момент. Поддержка DUALSHOCK 4 (правильное расположение: курков, стиков, кнопок и вибрация) есть в Windows 10 "из коробки", но только для UWP-приложений. Т.е. в Windows 10 можно без проблем\костылей\эмуляторов поиграть дуалшоком в игры серии Forza или Gear of War. Поддерживается DUALSHOCK 4 первой ревизии. Чтобы добавить поддержку DUALSHOCK 4 v2, а также геймпадов обеих ревизий, подключённых через родной адаптер, нужно применить вот эти REG-файлы:
Но что же делать в остальных случаях? Как поиграть в игры, где нет нативной поддержки DUALSHOCK 4?
Вариантов несколько. Сегодня мы рассмотрим два из них: Steam и DS4Windows.
Steam.
12 декабря 2016 года, в Steam, официально появилась поодержка DUALSHOCK 4.
Контроллер DUALSHOCK 4 стало возможно использовать во всех играх из библиотеки Steam, как XInput-совместимый геймпад (включая вибрацию).
Более того, для DUALSHOCK 4 доступно всё многообразие настроек (включая использование гироскопа), которое было реализовано для Steam-контроллера, что куда интересней обычной эмуляции XInput.
Первым делом нужно активировать поддержку DUALSHOCK 4 в настройках Steam. Для этого переходим в режим Big Picture, идём в "Настройки->Настройки контроллера" и активируем пункт "Поддержка контроллера DS4":
Там же, настраиваем интенсивность и цвет подсветки, вкл\выключаем поддержку вибрации, даём имя геймпаду:
Всё. Теперь DUALSHOCK 4 можно использовать (и настраивать) в играх (из библиотеки Steam или добавленных в неё) или задействовать как навороченную беспроводную мышь в режиме рабочего стола. Поддерживаются все варианты подключения DUALSHOCK 4 (провод, родной адаптер и Bluetooth).
Настройки и профили для игр привязываются к каждому из ваших геймпадов (если их у вас несколько) индивидуально:
Более подробнее по настройкам DUALSHOCK 4 в Steam можно почитать тут или задать вопрос в теме по геймпадам.
DS4Windows - это утилита, которая устанавливает в систему Scp Virtual Bus Driver:
который позволяет выдавать DUALSHOCK 4 за XInput-совместимый геймпад (включая вибрацию), а также использовать имеющиеся на борту геймпада: тач-панель, подсветку и даже встроенный гироскоп. Для системы и игр, DUALSHOCK 4 (с помощью DS4Windows) превращается в обычный XInput-совместимый геймпад, т.е. становится полностью совместим с подавляющим большинством ПК игр:
Помимо эмуляции XBox-геймпада, с помощью DS4Windows можно задействовать тач-панель DUALSHOCK 4 для управления курсором мыши, назначить на кнопки\курки\стики (или их комбинации) комбинации клавиш (макросы) или функции Windows :
Подпишитесь на наш канал в Яндекс.Дзен или telegram-канал @overclockers_news - это удобные способы следить за новыми материалами на сайте. С картинками, расширенными описаниями и без рекламы.
ScpDriverInterface uses Scarlet.Crush's SCP Virtual Bus Driver to emulate Xbox 360 controllers. Credits and major props go to Scarlet.Crush for his awesome SCP Server software, without his work this wouldn't be possible.
Head over to the project's releases page to download the latest compiled version of ScpDriverInterface, along with an installer for the SCP Virtual Bus Driver (credit to Scarlet.Crush) and a tester application.
A Note on Return Values
Before we begin, I just want to mention that ScpBus's PlugIn() , Unplug() , UnplugAll() , and Report() methods will all return boolean values indicating whether or not the operation was successful (i.e. True if the operation was successful, False otherwise). While you aren't required to use these returned values, I would recommend that you do use them whenever you want to make sure that what you wanted to happen actually happened.
Creating a New ScpBus Object
After adding the DLL to your project, usage is very straightforward. First you must create a new ScpBus object:
Note that this will throw an IOException if ScpBus isn't able to get a handle to the SCP Virtual Bus Device (Usually this is because the SCP Virtual Bus Driver isn't installed).
Plugging In and Unplugging Virtual Controllers
Next you will want to plug in a virtual controller. Plugging in and unplugging is done with the PlugIn() , Unplug() and UnplugAll() methods. Multiple controllers can be plugged in at the same time, just use a unique controllerNumber for each separate controller. For example, this code will plug in 4 controllers:
Unplugging controllers works much the same way. If you wanted to unplug controller 3, you would use scpBus.Unplug(3); . If you wanted to unplug all currently plugged in controllers, you would use scpBus.UnplugAll(); .
Sending Inputs to the Virtual Controllers
To send inputs to a controller, you use the Report() method. This method takes a 20-byte Xbox 360 controller input report, as specified here. To make this easier, ScpDriverInterface includes the X360Controller class, which can generate the report for you. To use it, first create a new X360Controller object:
Buttons are also very straightforward; you can use them like flags. For example, to set A to be pressed, without affecting the states of any of the other buttons, you would use the bitwise or operator:
You can assign multiple buttons in a single statement. For example, this code would set A, B, Up, and the left bumper to be pressed, again not affecting the state of any other buttons:
If instead of setting a button to be pressed, you just wanted to toggle its state, you would use the bitwsise xor operator. For example, this would toggle the A button:
And if you wanted to set a button to be not pressed, regardless of its initial state, you would use the bitwise and operator combined with a negation. For example, this would set A to be not pressed:
Once you are done setting up the state of the controller, you can use the GetReport() method to get the 20-byte input report that can be used with ScpBus's Report() method. For example, if you had set up controller to be the state you wanted controller 2 to be in, then you would use this code to send that state to the virtual controller:
Virtual Controller Rumble Data
IMPORTANT NOTE: The SCP Virtual Bus Device only returns rumble data with when the controller's rumble values have changed. This means that whenever the rumble values change, only the next call to Report() will receive those values. All subsequent calls will not receive any rumble report at all, at least not until the controller gets new rumble values. So, if you care about rumble data, you should always use the 3-parameter version of Report() (the one with the output report byte-array as the third parameter), and you should check the output report for new rumble data after every call to Report() .
Here is some example code that will print the rumble data for controller 1 to the console, provided that Report() gives an output report with rumble data:
Disposing of ScpBus objects
Again, I want to stress that I am not the creator of the SCP Virtual Bus Driver, all I did was create this library that allows you to use it easily. The driver itself was made by pcsx2 forum user Scarlet.Crush. For more details, check out his awesome SCP Server software, which is what I based most of the code for this project off of.
About
Emulate XBox 360 Controllers on Windows using Scarlet.Crush's SCP Virtual Bus Driver
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Open with Desktop
- View raw
- Copy raw contents Copy raw contents
Copy raw contents
Copy raw contents
ScpDriverInterface uses Scarlet.Crush's SCP Virtual Bus Driver to emulate Xbox 360 controllers. Credits and major props go to Scarlet.Crush for his awesome SCP Server software, without his work this wouldn't be possible.
Head over to the project's releases page to download the latest compiled version of ScpDriverInterface, along with an installer for the SCP Virtual Bus Driver (credit to Scarlet.Crush) and a tester application.
A Note on Return Values
Before we begin, I just want to mention that ScpBus's PlugIn() , Unplug() , UnplugAll() , and Report() methods will all return boolean values indicating whether or not the operation was successful (i.e. True if the operation was successful, False otherwise). While you aren't required to use these returned values, I would recommend that you do use them whenever you want to make sure that what you wanted to happen actually happened.
Creating a New ScpBus Object
After adding the DLL to your project, usage is very straightforward. First you must create a new ScpBus object:
Note that this will throw an IOException if ScpBus isn't able to get a handle to the SCP Virtual Bus Device (Usually this is because the SCP Virtual Bus Driver isn't installed).
Plugging In and Unplugging Virtual Controllers
Next you will want to plug in a virtual controller. Plugging in and unplugging is done with the PlugIn() , Unplug() and UnplugAll() methods. Multiple controllers can be plugged in at the same time, just use a unique controllerNumber for each separate controller. For example, this code will plug in 4 controllers:
Unplugging controllers works much the same way. If you wanted to unplug controller 3, you would use scpBus.Unplug(3); . If you wanted to unplug all currently plugged in controllers, you would use scpBus.UnplugAll(); .
Sending Inputs to the Virtual Controllers
To send inputs to a controller, you use the Report() method. This method takes a 20-byte Xbox 360 controller input report, as specified here. To make this easier, ScpDriverInterface includes the X360Controller class, which can generate the report for you. To use it, first create a new X360Controller object:
Buttons are also very straightforward; you can use them like flags. For example, to set A to be pressed, without affecting the states of any of the other buttons, you would use the bitwise or operator:
You can assign multiple buttons in a single statement. For example, this code would set A, B, Up, and the left bumper to be pressed, again not affecting the state of any other buttons:
If instead of setting a button to be pressed, you just wanted to toggle its state, you would use the bitwsise xor operator. For example, this would toggle the A button:
And if you wanted to set a button to be not pressed, regardless of its initial state, you would use the bitwise and operator combined with a negation. For example, this would set A to be not pressed:
Once you are done setting up the state of the controller, you can use the GetReport() method to get the 20-byte input report that can be used with ScpBus's Report() method. For example, if you had set up controller to be the state you wanted controller 2 to be in, then you would use this code to send that state to the virtual controller:
Virtual Controller Rumble Data
IMPORTANT NOTE: The SCP Virtual Bus Device only returns rumble data with when the controller's rumble values have changed. This means that whenever the rumble values change, only the next call to Report() will receive those values. All subsequent calls will not receive any rumble report at all, at least not until the controller gets new rumble values. So, if you care about rumble data, you should always use the 3-parameter version of Report() (the one with the output report byte-array as the third parameter), and you should check the output report for new rumble data after every call to Report() .
Here is some example code that will print the rumble data for controller 1 to the console, provided that Report() gives an output report with rumble data:
Disposing of ScpBus objects
Again, I want to stress that I am not the creator of the SCP Virtual Bus Driver, all I did was create this library that allows you to use it easily. The driver itself was made by pcsx2 forum user Scarlet.Crush. For more details, check out his awesome SCP Server software, which is what I based most of the code for this project off of.
Issue: Service fails to start due to dependency error. Checking device manager, Scp Virtual Bus Driver shows caution icon with the following status:
"Windows cannot verify the digital signature for the drivers required for this device. A recent hardware or software change might have installed a file that is signed incorrectly or damaged, or that might be malicious software from an unknown source. (Code 52)"
Booting with driver signature enforcement disabled allows the driver/service to function as expected.
The text was updated successfully, but these errors were encountered:
psyke83 commented Apr 14, 2016
I would have definitely allowed installation, but I don't recall with 100% certainty seeing that dialog during installation. However, the certificate does appear to be installed, so it seems that I did. Here's all certificates related to Certum:
sylveon commented Apr 14, 2016
Can you try a manual removal and then reinstall?
psyke83 commented Apr 14, 2016
I followed the manual removal steps precisely with no problems encountered (taking into account the libusbK -> WinUSB changes), uninstalled the package, then reinstalled the package and ran the driver installer. Unfortunately, no change.
Upon reinstallation/installing the VBus driver, I wasn't prompted to accept installing the VBus driver - but I probably did accept it on the first install, considering that the author's cert is listed in my Trusted Publishers.
I have a fallback Windows 8.1 x64 USB-bootable installation; I'll try to install the package there and see if I encounter the same problem on the older version of Windows.
Edit: the driver installs correctly with no signature issues on Windows 8.1 x64. Back on the troublesome Windows 10 install, clicking on the author's cert shows the certificate path (Certum Trusted Network CA -> Certum Code Signing CA SHA2) and says "This certificate is OK.". The certificate was issued recently, so I double-checked that my system time was set correctly. Anything else I can do to help diagnose the issue?
psyke83 commented Apr 14, 2016
I tried uninstalling and manually removing the author's certificate, and reinstalled. I was shown the Windows Security dialog box and made sure to click "Install" as well as leaving the checkmark to indicate that the software from the author is trusted. No change.
I checked C:\Windows\System32\drivers\ScpVBus.sys. The properties for the file show that the digital signature is OK
Here's the relevant event log:
Log Name: Security
Source: Microsoft-Windows-Security-Auditing
Date: 14/04/2016 16:24:46
Event ID: 5038
Task Category: System Integrity
Level: Information
Keywords: Audit Failure
User: N/A
Computer: satellite
Description:
Code integrity determined that the image hash of a file is not valid. The file could be corrupt due to unauthorized modification or the invalid hash could indicate a potential disk device error.
File Name: \Device\HarddiskVolume4\Windows\System32\drivers\ScpVBus.sys
Event Xml:
5038
0
0
12290
0
0x8010000000000000
psyke83 commented Apr 14, 2016
I've captured the relevant parts of setupapi.dev.log from Windows 8.1 (working) vs Windows 10 (not). Apart from timestamps, a quick diff doesn't show any obvious difference that would explain the problem.
nefarius commented Apr 14, 2016
In none of my Test-Virtual-Machines ranging from Windows 7 to Windows 10 I had any problems with the signature. I'm downloading Windows 10 Client Insider Preview - Build 14295 English right now to see if I can somehow re-create this behavior.
Sadly there's like a million advice posts on Google related to mysterious driver signature issues so I'm kinda at a loss to what I should recommend you to do.
psyke83 commented Apr 15, 2016
Thanks, nefarius. Tomorrow I'll try installing this build (14316) in a VM to see if I can replicate the issue from a clean install state.
nefarius commented Apr 15, 2016 •
I tested it on a clean installation of Windows 10 build 10586:
I whacked together a small demonstration video (excuse the crude quality, I'm currently testing a new screen capture software) where everything looks fine.
sylveon commented Apr 15, 2016
No problems on build 14295:
psyke83 commented Apr 17, 2016
Thanks for testing. I installed the same build I'm running (14316) in a VM, and the driver works without any issue - so my installation must be corrupted somehow. I'll run some SFC/DISM repair operations or find a way to clear the driver store to see if that helps. otherwise I'll wait for the next Insider build and see if the upgrade solves the issue.
Will close the issue since it appears to be an issue on my end only.
psyke83 commented Apr 17, 2016
Actually, it looks like it may be an issue with your driver's signing after all. Please check Event Viewer -> Applications and Service Logs -> Microsoft -> Windows -> CodeIntegrity -> Operational.
In the Windows 10 VM I set up, the virtual hardware is configured in BIOS mode (VMWare Player default), so event id 3085 was shown: "Code Integrity will disable WHQL driver enforcement for this boot session. Settings %1.".
My actual installation is running in EFI Secure Boot mode, so this event id was not logged. Once I disabled Secure Boot, your driver started working correctly.
There must be something wrong with your driver, as the previous version of ScpVbus.sys signed by another author worked in Secure Boot mode. I suggest that you install the Windows SDK for Windows 10 and check your driver/catalog using the signtool.exe.
nefarius commented Apr 18, 2016
@psyke83 weird, I do have the latest WDK installed and used it to sign, verification also seems fine:
But you do seem to be on the right track here; neither of my systems are running in SecureBoot, I'll investigate.
sylveon commented Apr 18, 2016
I do have Secure Boot enabled on my laptop, and never got this issue.
Secure Boot only concerns the Windows EFI bootloader, kernel and critical system files.
If you try manually editing your Secure Boot database and reput the correct Microsoft public keys, it may do something. WARNING. I am not responsible for any damage done to your system by trying the following advice.
psyke83 commented Apr 19, 2016 •
When Secure Boot is enabled, instead of event 3085 (see earlier reply), event 3084 appears in the Microsoft-Windows-CodeIntegrity/Operational log:
"Code Integrity will enable WHQL driver enforcement for this boot session. Settings %1. Exemption %2."
This is followed by event 3004 in the same log (almost identical to the security audit failure logged as event 5038 in the Security log):
"Windows is unable to verify the image integrity of the file \Device\HarddiskVolume4\Windows\System32\drivers\ScpVBus.sys because file hash could not be found on the system. A recent hardware or software change might have installed a file that is signed incorrectly or damaged, or that might be malicious software from an unknown source."
I've ran the obvious checks - chkdsk and SFC found no problems, so it's not a simple matter of a corrupted file.
If you enable Secure Boot, please make sure it's working properly. Make sure to restart Windows and not merely shut down before changing the EFI setting (as the hybrid startup feature will continue using the previous EFI configuration until you do a full restart). Once you've enabled it in the EFI settings, msinfo32 should show "Secure Boot State: On"). I suggest that you see if whether event id 3084 or 3085 is logged on your system afterwards.
Regarding signtool, the output doesn't show anything wrong with your signature - not even a warning. I captured this output while Secure Boot was enabled and the installed driver was showing the code 52 error (on the slim chance that the running system configuration can somehow influence signtool's parsing of the result):
C:\Users\Conn>"C:\Program Files (x86)\Windows Kits\10\bin\x64\signtool.exe" verify /v /pa /c C:\Windows\System32\DriverStore\FileRepository\scpvbus.inf_amd64_711905c6c0fb8bc5\ScpVBus.cat C:\Windows\System32\DriverStore\FileRepository\scpvbus.inf_amd64_711905c6c0fb8bc5\ScpVBus.sys
Verifying: C:\Windows\System32\DriverStore\FileRepository\scpvbus.inf_amd64_711905c6c0fb8bc5\ScpVBus.sys
File is signed in catalog: C:\Windows\System32\DriverStore\FileRepository\scpvbus.inf_amd64_711905c6c0fb8bc5\ScpVBus.cat
Hash of file (sha1): AAF9C4AF0520AF2AFBDF79F70389CE7B443C5507
Signing Certificate Chain:
Issued to: Certum Trusted Network CA
Issued by: Certum Trusted Network CA
Expires: Mon Dec 31 13:07:37 2029
SHA1 hash: 07E032E020B72C3F192F0628A2593A19A70F069E
The signature is timestamped: Sun Mar 27 12:52:20 2016
Timestamp Verified by:
Issued to: Thawte Timestamping CA
Issued by: Thawte Timestamping CA
Expires: Fri Jan 01 00:59:59 2021
SHA1 hash: BE36A4562FB2EE05DBB3D32323ADF445084ED656
Successfully verified: C:\Windows\System32\DriverStore\FileRepository\scpvbus.inf_amd64_711905c6c0fb8bc5\ScpVBus.sys
Number of files successfully Verified: 1
Number of warnings: 0
Number of errors: 0
Читайте также: