Skip to content

Commit fa04ef3

Browse files
committed
docs(readme): rewrite for fork release
Replace the inherited README with fork-specific release docs and screenshots so the repository front page reflects the current app. The previous README still described the upstream project more than this fork's v1 beta feature set and setup flow. The profile storage section describes the layout the app actually uses. The inherited text still described the pre-universal format, telling users their profiles live in a subfolder per controller type. Those directories are now a migration source under LegacyProfiles, and live profiles are single files that work with any supported controller, grouped into folders the user names. Anyone following the old text to back up or move profiles would have copied the wrong directory. It also states where the fork's configuration now lives and that the upstream folder is left alone, so a user running both apps knows which folder belongs to which and that neither will disturb the other.
1 parent 15bb300 commit fa04ef3

5 files changed

Lines changed: 111 additions & 18 deletions

File tree

README.md

Lines changed: 111 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,127 @@
11
# DS4MapperTest
22

3-
Mainly used as a test ground for trying out different mapping ideas. The application can currently
4-
support using a DualShock 4, DualSense, 8BitDo Ultimate 2 Wireless, Steam Controller 2015,
5-
Steam Controller 2026, JoyCon, and Switch Pro.
3+
Fork of [archived DS4MapperTest](https://github.com/Ryochan7/DS4MapperTest), used as a testing ground for controller mapping ideas, binding behaviour, sensitivity settings, etc. The application currently supports the DualShock 4, DualSense, 8BitDo Ultimate 2 Wireless, Steam Controller 2015, Steam Controller 2026, JoyCon, and Switch Pro.
64

7-
## Runtime Dependencies
5+
## Quick Start
86

9-
https://dotnet.microsoft.com/en-us/download/dotnet/thank-you/runtime-10.0.9-windows-x64-installer
7+
- Download and unzip the latest build: [Latest release](https://github.com/HelloHim/DS4MapperTest/releases/tag/v1.0.0-beta)
8+
- Install the runtime dependencies listed below.
9+
- Connect a supported controller.
10+
- Run `DS4MapperTest.exe` from the unzipped folder.
11+
- Select or create a profile.
12+
- Configure the bindings and settings you want.
13+
- Save the profile and start using it.
1014

11-
.NET 10 Desktop Runtime x64 - [https://dotnet.microsoft.com/en-us/download/dotnet/thank-you/runtime-10.0.9-windows-x64-installer](https://dotnet.microsoft.com/en-us/download/dotnet/thank-you/runtime-10.0.9-windows-x64-installer)
12-
Visual C++ 2015-2022 Redistributable. [x64](https://aka.ms/vs/17/release/vc_redist.x64.exe)
13-
USBIP Driver (0.9.7.7 or later) - [https://github.com/vadimgrn/usbip-win2](https://github.com/vadimgrn/usbip-win2)
14-
libVIIPER (Bundled) - [https://github.com/Alia5/VIIPER](https://github.com/Alia5/VIIPER)
15+
## Windows SmartScreen Warning
1516

16-
### Optional Tools
17+
The first time you run `DS4MapperTest.exe`, Windows shows a blue "Windows protected your PC"
18+
screen. Click **More info**, then **Run anyway**.
19+
20+
This happens because the release binaries are not code signed. The warning means Windows does
21+
not recognise the publisher, not that it found anything wrong with the file. A code signing
22+
certificate is issued to a verified person or company and costs money to maintain, so this
23+
fork ships unsigned. If you would rather not take that on trust, build from source using the
24+
steps under [Installation for Devs](#installation-for-devs).
25+
26+
## Profile Storage
27+
28+
Profiles are saved under your Windows user profile, in `%APPDATA%\DS4TestUniversal\Profiles\`
29+
(i.e. `C:\Users\<you>\AppData\Roaming\DS4TestUniversal\Profiles\`). Each profile is a
30+
`.universal-profile.json` file and works with any supported controller, so profiles are
31+
grouped into folders you name yourself (`Default` and `VALORANT` are created for you) rather
32+
than by controller type. Back them up or move them between machines by copying that folder.
33+
34+
Profiles from before the universal format live alongside it in
35+
`%APPDATA%\DS4TestUniversal\LegacyProfiles\`, in a subfolder per controller type
36+
(`DualShock4`, `DualSense`, `SwitchPro`, `JoyCon`, `SteamController`,
37+
`SteamControllerTriton`, `EightBitDoUlt2Wireless`). These are kept only as a migration
38+
source and are not loaded directly.
1739

18-
FakerInput 0.1.1 - [https://github.com/Ryochan7/FakerInput/releases/download/v0.1.1/FakerInput_Setup_0.1.1_x64.msi](https://github.com/Ryochan7/FakerInput/releases/download/v0.1.1/FakerInput_Setup_0.1.1_x64.msi)
19-
HidHide - [https://vigem.org/projects/HidHide/](https://vigem.org/projects/HidHide/)
40+
The upstream Ryochan7 DS4MapperTest stores its data in `%APPDATA%\DS4Test\`. This fork does
41+
not read, write, copy, move, or migrate that folder automatically, so the original app and
42+
this fork can be installed side by side without affecting each other's profiles. If you want
43+
to reuse an upstream profile here, copy it manually into this fork's profile folder.
2044

21-
## Final Release
45+
## Runtime Dependencies
46+
47+
- .NET 10 Desktop Runtime x64
48+
[https://dotnet.microsoft.com/en-us/download/dotnet/10.0](https://dotnet.microsoft.com/en-us/download/dotnet/10.0)
49+
- Visual C++ 2015-2022 Redistributable x64
50+
[https://aka.ms/vs/17/release/vc_redist.x64.exe](https://aka.ms/vs/17/release/vc_redist.x64.exe)
51+
- USBIP Driver 0.9.7.7 or later
52+
https://github.com/vadimgrn/usbip-win2
53+
- libVIIPER is bundled with the application
54+
https://github.com/Alia5/VIIPER
55+
56+
### Optional Tools
2257

23-
https://github.com/Ryochan7/DS4MapperTest/releases/tag/v0.0.32
58+
- FakerInput 0.1.1
59+
Needed for the FakerInput mouse and keyboard output backend.
60+
https://github.com/Ryochan7/FakerInput/releases/download/v0.1.1/FakerInput_Setup_0.1.1_x64.msi
61+
- HidHide
62+
For if you want to hide the physical controller while using a virtual output device.
63+
[https://docs.nefarius.at/projects/HidHide/Simple-Setup-Guide/](https://docs.nefarius.at/projects/HidHide/Simple-Setup-Guide/)
2464

2565
## Screenshots
2666

27-
![example_mapper_screen_20220605](https://user-images.githubusercontent.com/581968/172064947-bc3358c7-7ec3-4a5d-86f5-3715bd4638e7.png)
67+
![DS4MapperTest](readMeImages/hero-shot.jpg)
68+
69+
### Binding workflow
70+
71+
![Binding workflow](readMeImages/binding-workflow-shot.jpg)
72+
73+
### Mouse routing
74+
75+
![Mouse routing](readMeImages/mouse-routing-shot.jpg)
76+
77+
### Gyro sensitivity and angle calibration
78+
79+
![Gyro sensitivity and angle calibration](readMeImages/gyro-sensitivity-angle-calibration.jpg)
80+
81+
## Controller Compatibility
82+
83+
- DualShock 4
84+
- DualSense
85+
- DualSense Edge
86+
- 8BitDo Ultimate 2 Wireless
87+
- Steam Controller 2015
88+
- Steam Controller 2026
89+
- JoyCon
90+
- Switch Pro
91+
92+
## Installation for Devs
93+
94+
- Install Visual Studio with the `.NET desktop development` workload.
95+
- Install the `.NET 10 SDK`.
96+
- Open `DS4MapperTest.sln`.
97+
- Use the `x64` platform.
98+
- Set `DS4MapperTest` as the startup project if you want to run the app directly.
99+
- Restore NuGet packages before building.
100+
- `FakerInputWrapper` is bundled under `DS4MapperTest/libs/x64/`, so nothing extra is needed to build the FakerInput-backed features. Running them still needs the FakerInput driver installed.
101+
102+
### Running the Tests
103+
104+
The unit tests build only under the `Debug Tests` and `Release Tests` configurations:
105+
106+
```
107+
dotnet test DS4MapperTest.sln -c "Release Tests"
108+
```
109+
110+
A bare `dotnet test` resolves the `Debug` configuration, where the test project is
111+
deliberately left out of the build, and reports a missing test assembly rather than
112+
running anything. Those two configurations define `MAKE_TESTS`, which stubs out the
113+
real keyboard and mouse injection, so a test run cannot type into the desktop of
114+
whoever is running it. That is why the tests are not simply built everywhere.
28115

29-
![example_mapper_profile_overview_20220614](https://raw.githubusercontent.com/Ryochan7/SteamControllerTest/master/example_mapper_profile_overview_20220614.png)
116+
## Acknowledgements
30117

31-
## License
118+
- GamepadMotionHelpers: Source of some ported gyro-related logic. MIT licensed.
119+
<https://github.com/JibbSmart/GamepadMotionHelpers/blob/master/LICENSE>
120+
- JoyShockMapper: behavioural reference and source of some ported gyro-related logic. MIT licensed.
121+
<https://github.com/JibbSmart/JoyShockMapper/blob/master/LICENSE.md>
122+
- JSM Custom Curve: UI inspiration.
123+
<https://github.com/evan1mclean/JSM_custom_curve>
32124

33-
[GPL v.3](https://www.gnu.org/licenses/gpl-3.0-standalone.html)
125+
## Licence
34126

127+
- GPL v3: [LICENSE.txt](LICENSE.txt)
151 KB
Loading
104 KB
Loading

readMeImages/hero-shot.jpg

140 KB
Loading
129 KB
Loading

0 commit comments

Comments
 (0)