Website review
This review may include AI-generated content and is not individually verified. Domain, certificate and other facts come from the observed data on this page.
What is Nefarius Project Documentation?
Nefarius™ Project Documentation is the documentation hub for a family of Windows tools and drivers focused on USB input device emulation, controller compatibility, and game peripheral reverse engineering. It is written for people who need to make controllers work correctly in Windows games and emulators, or who want to understand how those devices communicate at a low level.
What the site covers
Its content falls into a few practical groups:
- Controller compatibility and input modes — tools such as DsHidMini (with V2 and V3 modes), BthPS3, and AirBender, covering HID device modes, XInput mode, DS4 mode, and output rate control.
- Device hiding and access control — HidHide, HidGuardian, and Identinator, which address problems where multiple applications fight over the same controller or where a device must be hidden from some software but not others.
- Emulation and virtual devices — ViGEm and VirtualPad, plus FireShock, ScpToolkit, Shibari, and VirtuaLED.
- Reference material — native HID report descriptors, vendor and product IDs used by the drivers, architecture checks, and kernel driver debugging notes.
Who it is for
The tone and structure assume a technically comfortable reader. Installation guides and removal guides are step-by-step, but pages like "HID Device Modes Explained" or the API documentation expect you to understand concepts such as HID reports, XInput versus DirectInput, and driver installation. If you just want a DualShock 3 or 4 working in a specific game, the FAQ and compatibility pages are the sensible entry point; if you are debugging a driver or writing an integration, the API and research sections are where the detail lives.
A comparison that matters in practice
The two most commonly confused tools serve different jobs:
| Tool | Job | Typical situation |
|---|---|---|
| DsHidMini | Makes Sony controllers present as useful HID/XInput devices | A DualShock 3 or 4 is detected but games or emulators ignore it |
| HidHide | Hides a device from selected applications | The controller works, but two programs read it at once or a launcher interferes |
Choosing wrongly wastes time: installing a driver will not fix a conflict between applications, and hiding a device will not add compatibility that the driver is missing.
Where to start
Open the "Projects" section and pick the page matching your hardware, then read its "About" page before the installation guide — the About pages explain what the tool does and does not do, which prevents most failed setups. If you are unsure which controller mode you need, read "HID Device Modes Explained" first; it is the single page that most often determines whether the rest of the setup works.
For related background, the ViGEm project has its own site at ViGEm and DsHidMini at DsHidMini documentation, though both are already linked from this hub.
How do I install DsHidMini for my DualShock controller?
The site is the documentation hub for the DsHidMini driver, and its own table of contents lists two separate installation paths depending on which major version you want: "V2" and "V3" each have their own "How to Install" page, plus a V3 page for installing and removing. So the first decision is version, not controller model.
What the pages cover
| Need | Where to look |
|---|---|
| Fresh install, current line | DsHidMini V3 "How to Install/Remove" |
| Older/legacy line | DsHidMini V2 "How to Install" |
| Choosing an emulation mode | "HID Device Modes Explained" (V2 and V3 each have one) |
| Nothing works after install | "Debugging the Drivers" |
| Removing it cleanly | V3 "How to Install/Remove" |
| Related Bluetooth setup | BthPS3 pages, including its own installation guide |
Practical reading order
- Read the V3 "HID Device Modes Explained" page before installing. The mode you pick (for example XInput-style versus DS4-style behaviour) determines what games and tools see, and switching later is more work than choosing up front.
- Follow the matching "How to Install/Remove" page for your version exactly. Driver installation is the step where improvised shortcuts cause the most trouble.
- If you also need Bluetooth, treat the BthPS3 pages as a companion task, not a substitute.
- Keep "Frequently Asked Questions" and "Debugging the Drivers" open as your first stop if the controller is detected but behaves oddly.
A concrete scenario
You have a DualShock 4 and want it recognised as an Xbox-style pad in older games. The relevant chain is: install the driver per the V3 guide, then select the XInput-oriented mode described in "XInput Mode Explained", then verify in a game. If the pad appears but inputs are wrong, the mode page — not the install page — is where the fix usually lives.
Where to start
Begin at the DsHidMini section of NefariusTM Project Documentation and open the V3 installation page first; only drop to V2 if you specifically need the older line or are following an existing V2 setup.
What is the difference between DsHidMini V2 and V3?
DsHidMini V2 and V3 are two major versions of the same driver, and the documentation treats them as separate products with their own guides. The core difference is what they are designed to emulate and how they present the controller to Windows.
What each version is for
- V2 is documented around DS4 mode and XInput mode, with an SCP XInput Bridge and a guide for switching from SIXAXIS.SYS. It is aimed at people who want a DualShock 4-style device or an Xbox-style XInput device for games that expect one.
- V3 is documented around DS4Windows mode and XInput mode, with its own SCP XInput Bridge (proxy DLL) and a guide for switching from SIXAXIS.SYS. It also adds PCSX2 and RPCS3 full controller support pages.
Practical differences
| Area | V2 | V3 |
|---|---|---|
| Primary mode | DS4 mode | DS4Windows mode |
| XInput path | SCP XInput Bridge | SCP XInput Bridge (proxy DLL) |
| Emulator guides | Not listed under V2 | PCSX2 and RPCS3 full controller support |
| Shared topics | FAQ, HID device modes, output rate control | Same topics, separate pages |
Both versions share the same conceptual documentation: HID device modes, output rate control, installation, and debugging. The split is mostly about the target software stack and the recommended bridge, not about a completely different feature set.
Which one to choose
Pick V3 if you use DS4Windows, PCSX2 or RPCS3, or if you want the newer proxy-DLL bridge. Pick V2 if you are following an older setup, use the original DS4 mode, or need to stay compatible with an existing SCP XInput Bridge configuration. If you are unsure, start with the V3 installation guide and only fall back to V2 if a specific tool or guide you rely on requires it.
A useful next step is to read the "HID Device Modes Explained" page for the version you are considering, then check the relevant installation guide before installing, since the two versions have separate install and removal instructions.
How can I use HidHide to hide a controller from specific applications?
HidHide is a filter driver that hides selected devices from most applications while keeping them available to ones you explicitly allow. For a controller, this is what lets you feed a physical pad into an emulator or remapper without the game also seeing the raw device and double-inputting.
How it works in practice
HidHide sits between your devices and the applications that enumerate them. You maintain two lists:
- Hidden devices — the controllers (or other HID devices) that should disappear from the default view.
- Applications allowed to see them — the executables that must still detect the device.
Anything not on the allow list simply won't find the hidden device when it scans for HID hardware. That's the mechanism you use to "hide a controller from specific applications": hide it globally, then whitelist only the apps that need it.
A concrete scenario
You want to use a DualShock 3 or DualShock 4 through DsHidMini while a game that has native support also picks up the same pad. You hide the physical controller in HidHide and add your emulation or remapping front-end to the allow list. The game no longer sees the raw device; the emulated output is what it receives. This is the same idea behind the "SCP XInput Bridge" and "SIXAXIS.SYS to DsHidMini" guides in the documentation, where a single physical pad must not be visible to two consumers at once.
Getting started
The documentation provides a Simple setup guide, a Frequently Asked Questions page, API Documentation, and a note on Manual installation on ARM64. There is also a page on Fixing an improper removal of HidHide, which is worth reading before you uninstall, because filter drivers can leave devices in an odd state if removed incorrectly. Start with the simple setup guide, then use the FAQ when an application still detects a hidden device — usually that means its executable path isn't on the allow list.
Decision criteria
Use HidHide when you need per-application visibility rather than a blanket on/off. If you only ever want a device hidden from everything, a simpler filter may suffice; if different apps need different subsets of devices, HidHide's allow list is the right tool. Related projects in the same documentation set include NefariusTM Project Documentation for DsHidMini, ViGEm and HidGuardian, and you can find the wider USB input emulation ecosystem at ViGEm.
What tools does Nefarius provide for reverse engineering USB game peripherals?
Nefarius™ Project Documentation is the documentation hub for a family of drivers and utilities aimed at USB input-device emulation and game-peripheral reverse engineering. The tools split into three practical groups: making a controller work in modern software, hiding devices from other applications, and emulating virtual devices.
Controller drivers and compatibility layers
- DsHidMini — the main driver for Sony DualShock 3 (SIXAXIS) controllers on Windows. The documentation covers HID device modes, XInput and DS4Windows modes, output rate control, PCSX2 and RPCS3 support, and an SCP XInput bridge.
- BthPS3 — Bluetooth support for PS3 peripherals, with a driver configuration utility and compatibility notes for third-party "Pro Controller" clones.
- FireShock — driver work for Sony wireless controllers.
- ScpToolkit — an older, historically significant toolkit; the docs include a history and manual removal instructions for leftover files.
Device hiding and filtering
- HidHide — hides selected HID devices from chosen applications, so a game sees only the controller you want. There is a simple setup guide, an FAQ, and ARM64 manual-install notes.
- HidGuardian — an earlier device-blocking approach, documented with installation and "taming" guidance for the Gen1 version.
Virtual devices and emulation
- ViGEm — the virtual gamepad emulation framework, now marked end-of-life in the documentation, with install/remove instructions.
- ViGEmBus (Vicius) — the bus driver behind ViGEm, documented with command-line arguments, logging, exit codes, signature verification and troubleshooting.
- VirtualPad — a virtual gamepad framework.
- VirtuaLED — LED-related virtual device work.
- Identinator — a utility from the same author for identifying devices.
- WireShock — a research-oriented tool in this space.
Research notes
The Research section is the closest thing to a reverse-engineering reference library. It includes native HID report descriptor write-ups for a CORSAIR GLAIVE RGB mouse and SIXAXIS/DualShock 3, a list of vendor and product IDs used by NSS drivers, and practical notes such as checking your Windows architecture and loading symbols for kernel-driver minidump analysis.
How to choose
| Goal | Start with |
|---|---|
| Use a DualShock 3 in games and emulators | DsHidMini, plus BthPS3 for Bluetooth |
| Stop one app from seeing a controller | HidHide |
| Create a virtual controller for another app | ViGEm/ViGEmBus, noting its end-of-life status |
| Understand a device's HID descriptor | The Research pages |
A sensible next step is to open the page for the specific controller you own — for example, the DsHidMini installation guide if you have a DualShock 3 — and read its mode explanations before installing anything, because the HID mode you pick determines which games and emulators will detect the controller.
How do I fix an improper removal of HidHide?
The documentation covers this directly: open the HidHide section and select Fixing an improper removal of HidHide. That page is the authoritative procedure for cleaning up a broken or partial uninstall before you reinstall.
HidHide is a filter driver that hides selected devices from most applications while leaving them visible to ones you whitelist. An improper removal typically leaves the filter driver or its service registered, which produces one of these symptoms:
- Devices stay hidden even after you uninstall the tool.
- Reinstallation fails or the new install appears to do nothing.
- A controller works in one application but is invisible everywhere else.
- The configuration utility cannot find or talk to the driver.
What the procedure is for
Use it when a normal uninstall did not complete — for example, the removal was interrupted, files were deleted manually, or an older version was uninstalled outside the supported path. The goal is to return the system to a clean state so a fresh install behaves predictably.
How to approach it
- Read the Fixing an improper removal of HidHide page in full before touching anything, since the steps depend on how the original removal went wrong.
- Follow the documented order rather than improvising; filter drivers sit in the device stack, so removing a service before its driver can leave the stack inconsistent.
- Reboot when the instructions say to. Filter-driver changes often only take effect after a restart.
- Reinstall from the official release and verify a known device is hidden in one application and visible in another.
Deciding whether you need it
| Situation | Appropriate response |
|---|---|
| Standard uninstall completed, no symptoms | No action needed |
| Uninstall interrupted or files deleted by hand | Use the improper-removal guide |
| Reinstall fails or has no effect | Use the improper-removal guide |
| Install works but one app cannot see a device | Check whitelist/configuration first |
Practical note
If you use HidHide alongside emulation tools such as NefariusTM Project Documentation's DsHidMini or ViGEm material, treat a broken HidHide install as a possible cause when a controller stops appearing in one program but not another — that split visibility is the signature of a filter driver still active with stale settings.
User reviews (0)