Skip to content

Commit

Permalink
Sandbox (#17)
Browse files Browse the repository at this point in the history
* Update RawInput.au3

* Update SensitivityMatcher.au3

* Update RawInput.au3

* Update SensitivityMatcher.au3

* Update SensitivityMatcher.au3

* Update UserSettings.ini

* Update SensitivityMatcher.au3

* Update RawInput.au3

* Update HotkeyFunctions.au3

* Update SensitivityMatcher.au3

* Update README.md

* Update SensitivityMatcher.au3

* Update RawInput.au3

* Update SensitivityMatcher.au3

* Update ReleaseNotes.md

* Update ReleaseNotes.md

* Update SensitivityMatcher.au3

* Update SensitivityMatcher.au3

* Update ReleaseNotes.md

* Update ReleaseNotes.md

* Update SensitivityMatcher.au3

* Update ReleaseNotes.md

* Update ReleaseNotes.md

* Update ReleaseNotes.md

* Update ReleaseNotes.md

* Update ReleaseNotes.md

* Update ReleaseNotes.md

* Update ReleaseNotes.md

* Update ReleaseNotes.md

* Update RawInput.au3

* Update RawInput.au3

* Update SensitivityMatcher.au3

* Update ReleaseNotes.md

* Update ReleaseNotes.md

* Update ReleaseNotes.md

* Update ReleaseNotes.md

* Update ReleaseNotes.md

* Update ReleaseNotes.md

* Update ReleaseNotes.md

* Update ReleaseNotes.md

* Update ReleaseNotes.md

* Update ReleaseNotes.md

* Update ReleaseNotes.md

* Update ReleaseNotes.md

* Update ReleaseNotes.md

* Update ReleaseNotes.md

* Update ReleaseNotes.md

* Update HotkeyFunctions.au3

* Update SensitivityMatcher.au3

* Update SensitivityMatcher.au3

* Update ReleaseNotes.md

* Update README.md

* Update README.md

* Update ReleaseNotes.md

* Update ReleaseNotes.md

* Update ReleaseNotes.md

* Update ReleaseNotes.md

* Update README.md

* Update ReleaseNotes.md

* Update ReleaseNotes.md

* Update ReleaseNotes.md

* Update ReleaseNotes.md

* Update ReleaseNotes.md

* Update SensitivityMatcher.au3

* Update SensitivityMatcher.au3

* Create MeasureGUI.au3

* Update SensitivityMatcher.au3

* Update RawInput.au3

* Update SensitivityMatcher.au3

* Update SensitivityMatcher.au3

* Update SensitivityMatcher.au3

* Update HotkeyFunctions.au3

* Update HotkeyFunctions.au3

* Update MeasureGUI.au3

* Update SensitivityMatcher.au3

* Update MeasureGUI.au3

* Update RawInput.au3

* Update HotkeyFunctions.au3

* Update SensitivityMatcher.au3

* Update RawInput.au3

* Update MeasureGUI.au3

* Update SensitivityMatcher.au3

* Update MeasureGUI.au3

* Update SensitivityMatcher.au3

* Update SensitivityMatcher.au3

* Update SensitivityMatcher.au3

* Update SensitivityMatcher.au3

* Update MeasureGUI.au3

* Update SensitivityMatcher.au3

* Update SensitivityMatcher.au3

* Update MeasureGUI.au3

* Update SensitivityMatcher.au3

* Update SensitivityMatcher.au3

* Update MeasureGUI.au3

* Update HelpMessages.au3

* Update ReleaseNotes.md

* Update SensitivityMatcher.au3

* Update HotkeyFunctions.au3

* Update MeasureGUI.au3

* Update SensitivityMatcher.au3

* Update HelpMessages.au3

* Update HelpMessages.au3

* Update HelpMessages.au3

* Update UserSettings.ini

* Update HotkeyFunctions.au3

* Update HotkeyFunctions.au3

* Update MeasureGUI.au3

* Update UserSettings.ini

* Update MeasureGUI.au3

* Update SensitivityMatcher.au3

* Update HelpMessages.au3

* Update MeasureGUI.au3

* Update SensitivityMatcher.au3

* Update ReleaseNotes.md

* Update ReleaseNotes.md

* Update ReleaseNotes.md

* Update ReleaseNotes.md

* Update ReleaseNotes.md

* Update ReleaseNotes.md

* Update ReleaseNotes.md

* Update ReleaseNotes.md

* Update ReleaseNotes.md

* Update ReleaseNotes.md

* Update ReleaseNotes.md

* Update ReleaseNotes.md

* Update ReleaseNotes.md

* Update ReleaseNotes.md

* Update ReleaseNotes.md

* Update ReleaseNotes.md

* Update ReleaseNotes.md

* Update ReleaseNotes.md

* Update ReleaseNotes.md

* Update HelpMessages.au3

* Update HelpMessages.au3

* Update HelpMessages.au3

* Update HelpMessages.au3

* Update HelpMessages.au3

* Update HelpMessages.au3

* Update HotkeyFunctions.au3

* Update SensitivityMatcher.au3

* Update MeasureGUI.au3

* Update README.md

* Update README.md

* Update ReleaseNotes.md

* Update ReleaseNotes.md

* Update ReleaseNotes.md

* Update HotkeyFunctions.au3

* Update HelpMessages.au3

* Update UserSettings.ini

* Update HelpMessages.au3

* Update ReleaseNotes.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update HelpMessages.au3

* Update HotkeyFunctions.au3

* Update UserSettings.ini

* Update ReleaseNotes.md

* Update README.md

* Update SensitivityMatcher.vbs

* Delete TestScript.vbs

* Update UserSettings.ini

* Update README.md

* Update README.md

* Update ReleaseNotes.md

* Update SensitivityMatcher.au3

* Update SensitivityMatcher.au3

* Update HelpMessages.au3

* Update HelpMessages.au3

* Update CustomYawList.ini

* Update CustomYawList.ini

* Update CustomYawList.ini

* Update CustomYawList.ini

* Update RawInput.au3

* Update RawInput.au3

* Update SensitivityMatcher.au3

* Update SensitivityMatcher.au3

* Update SensitivityMatcher.au3

* Update SensitivityMatcher.au3

* Update ReleaseNotes.md

* Update SensitivityMatcher.vbs

* Update SensitivityMatcher.vbs

* Update SensitivityMatcher.vbs

* Update SensitivityMatcher.vbs

* Update RawInput.au3

* Update RawInput.au3

* Update SensitivityMatcher.au3

* Update MeasureGUI.au3

* Create Header.au3

* Update SensitivityMatcher.au3

* Update MiscFunctions.au3

* Update SensitivityMatcher.au3

* Update SensitivityMatcher.au3

* Update HelpMessages.au3

* Update SensitivityMatcher.au3

* Update MiscFunctions.au3

* Update HelpMessages.au3

* Update HelpMessages.au3

* Update HelpMessages.au3

* Update CustomYawList.ini

* Update SensitivityMatcher.au3

* Update ReleaseNotes.md

* Update ReleaseNotes.md

* Update ReleaseNotes.md

* Update ReleaseNotes.md

* Update ReleaseNotes.md

* Update ReleaseNotes.md

* Update ReleaseNotes.md

* Update ReleaseNotes.md

* Update SensitivityMatcher.au3

* Update ReleaseNotes.md

* Update README.md

* Update CustomYawList.ini

* Update SensitivityMatcher.au3

* Update ReleaseNotes.md

* Update SensitivityMatcher.au3

* Update ReleaseNotes.md

* Update README.md

* Update SensitivityMatcher.au3

* Update README.md

* Update ReleaseNotes.md

* Update SensitivityMatcher.au3

* Update README.md

* Update ReleaseNotes.md

* Update SensitivityMatcher.au3

* Update SensitivityMatcher.au3

* Update README.md

* Update ReleaseNotes.md
  • Loading branch information
TemporaryName authored and KovaaK committed Dec 11, 2019
1 parent 2fc4f74 commit e77d601
Show file tree
Hide file tree
Showing 14 changed files with 906 additions and 531 deletions.
35 changes: 18 additions & 17 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,37 +1,38 @@
### [ Download Latest Binary.](https://github.com/KovaaK/SensitivityMatcher/releases/latest)
[![Screenshot 1](https://i.redd.it/a65t3psme5p11.png)](https://github.com/KovaaK/SensitivityMatcher/releases/latest)
# Sensitivity Matcher
# [ Download Sensitivity Matcher here (NOT the green button).](https://github.com/KovaaK/SensitivityMatcher/releases/latest)
[![Screenshot 1](https://i.redd.it/4c0c0hf99y341.png)](https://github.com/KovaaK/SensitivityMatcher/releases/latest)

This script lets you match your mouse sensitivity between any 3D games directly, and forego paywalled calculators.

This script lets you match your mouse sensitivity between any 3D games directly, and much more accurately than any paywalled calculators.

Run the script, then:

1) Select the preset/game that you are coming from.
2) Input your sensitivity value from your old game.
3) In your new game, adjust its sens until the test matches.
3) In your new game, adjust its setting until the repeater make exact turns in game with no drift.

Press `Alt` `[` to perform one full revolution.
Press `Alt` `Backspace` to perform one full revolution.

Press `Alt` `]` to perform multiple full revolutions.
Press `Alt` `Shift` `Backspace` to perform multiple full revolutions.

Press `Alt` `\` to halt (and clear residuals).
Press `Alt` `\` to halt (also clears the residual angles).

 

If the game that you are coming from is not listed, the script can also measure your old sensitivity.\
Select "Measure any game" and enter your best guess, then:
If the game that you are coming from is not listed, the script can also capture your old sensitivity.\
Select "Measure any game" and go into the game from which you wish to export your sensitivity, then:

1) Perform rotation(s) to see if the estimate under- or overshoots.
2) Make corrections using the hotkeys below.
3) Test again. Repeat the process until the script always lands on the exact origin even after many turns.
4) Once you're done measuring, you can match it to any game you like with procedures outlined in the first section.\
Or, if the game is already listed, simply select it from the dropdown to convert immediately.
1) Aim at a precise marker in game, then press the Record hotkey to record your mouse movement
2) Use your mouse to turn 360 degrees aiming back to marker, and press the hotkey again to stop recording.
3) Use the repeater hotkeys to check its accuracy, correct over/undershoots with the fine tuner hotkeys
4) You can now match the captured sensitivity to any game, simply select the game from presets to show the right value, or use the repeater and adjust the in-game value manually if it's not listed in the presets.

Press `Alt` `-` to correct overshoots.
Press `Alt` `/` to start/finish recording.

Press `Alt` `+` to correct undershoots.

Press `Alt` `0` to start over if you made a wrong correction.
Press `Alt` `-` to correct overshoots.

Press `Alt` `0` to restart if you made a wrong correction.

 

Expand Down
8 changes: 6 additions & 2 deletions ReleaseAssets/CustomYawList.ini
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,15 @@
yaw=0.55550
[Fortnite Config]
yaw=2.2220
[QCDE]
yaw=0.0439453125
[Unit: deg]
yaw=1
[Unit: mrad]
yaw=0.05729577951308232087679815481411
[Unit: arcmin]
yaw=0.01666666666666666666666666666667
[QCDE]
yaw=0.0439453125
[Battalion 1944]
yaw=0.0175
[Insurgency: Sandstorm]
yaw=0.14
50 changes: 29 additions & 21 deletions ReleaseAssets/ReleaseNotes.md
Original file line number Diff line number Diff line change
@@ -1,34 +1,42 @@
## Release Highlights
[version 1.5]

[version 1.4]
[![Screenshot](https://i.redd.it/fa0x8uc89y341.png)](https://github.com/KovaaK/SensitivityMatcher/releases/latest)

_New Feature: Measurement Report_
_New Feature: Rawinput recording_

* To facilitate crowdsourced measurement of yaw scales, measurement reports (.csv) are now produced automatically to better enable rigorous verification of shared results.
* In Measurement Mode, you can now set up initial guesses more quickly using your mouse instead (default hotkey is `[Alt][/]` to toggle recording).
* Just record rotations with slight over- or undershoots and mark them accordingly. This immediately narrows down the range, from then on you can further converge the measurement using the repeater.
* This feature is also great for helping new FPS players quickly find a comfortable initial sensitivity. Just record two 180° swipes that you can do comfortably, and the corresponding setting is given for you to set in game.
* The physical sensitivity calculator now also includes a CPI calibration feature to take advantage of the rawinput capability. This lets you get a more accurate calculation of your physical sensitivity accounting for variances in mouse.

_Enhancement (active only in measurement mode): Measurement Cycle Autoscale and Nudge hotkeys_
_New Feature: Chatbot command generator_

* Number of multi-cycles auto bumps up during measurement mode as your uncertainty decreases. \
(Only starts to kicks-in when you get _really_ precise)
* Nudge hotkeys (move one count left/right) to verify whether suspected drift exceeds margin of error. \
(Residual artifact can drift up to half increment both ways)
* Copy your newly measured sens into your Nightbot !sens commands with the click of a button!
* Just click on "Share" in the physical stats calculator, text summarizing your settings will be generated.
* It will conveniently include your game-specific sensitivity value, your mouse cpi, and the physical sensitivity values representing your overall setting.

_Usability Change: Default hotkeys of some commands have been changed_
* Turn once: ~~`Alt [`~~ changed to `Alt` `Backspace`
* Turn a lot: ~~`Alt ]`~~ changed to `Alt` `Shift` `Backspace`
* Jog right: ~~`Alt '`~~ changed to `Alt` `>`
* Jog left: ~~`Alt ;`~~ changed to `Alt` `<`

_Enhancement: Convergence Log window during Measurement Mode_

* Graph showing convergence progress of your estimate tuning.
* GUI buttons for the fine-tuner function, for those who prefer them over hotkeys.
* Display the convergence history as a table (in addition to the detailed log file output).

## Download

[**SensitivityMatcher_exe.zip**](https://github.com/KovaaK/SensitivityMatcher/releases/download/1.4/SensitivityMatcher_exe.zip) \
[**SensitivityMatcher_a3x.zip**](https://github.com/KovaaK/SensitivityMatcher/releases/download/1.4/SensitivityMatcher_a3x.zip) (Use this instead if .exe is triggering false positives)
[**SensitivityMatcher_exe.zip** (64bit)](https://github.com/KovaaK/SensitivityMatcher/releases/download/1.5/SensitivityMatcher_exe.zip) \
[**SensitivityMatcher_a3x.zip** (32bit)](https://github.com/KovaaK/SensitivityMatcher/releases/download/1.5/SensitivityMatcher_a3x.zip) (Use this instead if .exe is triggering false positives)

[_Go to newest release_](https://github.com/KovaaK/SensitivityMatcher/releases/latest)

## Changelog
_New: Number of cycles bumps up to the (best-case) minimum required to possibly drift one increment given the uncertainty (measurement mode only)._ \
_New: Added Nudge hotkeys that lets you send individual counts to check if deviation is at least one count \
(measurement mode only)._ \
_New: Added button to save current inputs to startup values._ \
_New: Added back the "Custom" item. Upon selection, it makes your yaw equal the current increment._ \
_New: Saved custom yaw now includes uncertainty if obtained from measurement. Info dialogue also shows uncertainty._ \
_New: Asks whether user would like to use default binds if specific hotkeys are markedly unbound._ \
_New: "Info" button shows contexual instructions depending on selected mode._ \
_Fix: Measurement hotkeys now unbinds properly if ini is tweaked while still in measurement mode._ \
_Fix: Measurement bounds are no longer lost when swapping yaw and sens; cancelling Save now restores swap options._ \
_Fix: Minor optimization for floating point precision for multi-cycle turns._
_Revert: removed the autocycle scaling that was added in 1.4 -- too hidden of a mechanic_ \
_New: changed default hotkeys for tuning and jogging counts. See helptext._ \
_New: changing the cpi field will now immediately save to ini._ \
_New: script will make distinct beeps when activating/deactivating rawinput recording with hotkeys. Activating with GUI button will show a confirmation dialog instead._
39 changes: 37 additions & 2 deletions ReleaseAssets/SensitivityMatcher.vbs
Original file line number Diff line number Diff line change
@@ -1,2 +1,37 @@
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "bin\AutoIt3.exe bin\SensitivityMatcher.a3x"
Dim Executable, Script, Command

Executable = false
Script = false
Command = ""

If FileExists("bin\AutoIt3.exe") Then
Executable = true
Command = "bin\AutoIt3.exe "
Else If FileExists("bin\AutoIt3_x64.exe") Then
Executable = true
Command = "bin\AutoIt3_x64.exe "
End If
End If

If FileExists("bin\SensitivityMatcher.a3x") Then
Script = true
Command = Command + "bin\SensitivityMatcher.a3x"
Else If FileExists("bin\SensitivityMatcher.au3") Then
Script = true
Command = Command + "bin\SensitivityMatcher.au3"
End If
End If

If Executable AND Script Then
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run Command
End If

Function FileExists(FilePath)
Set fso = CreateObject("Scripting.FileSystemObject")
If fso.FileExists(FilePath) Then
FileExists=CBool(1)
Else
FileExists=CBool(0)
End If
End Function
26 changes: 14 additions & 12 deletions ReleaseAssets/UserSettings.ini
Original file line number Diff line number Diff line change
@@ -1,33 +1,35 @@
; Startup values
[Default]
sens=1
sens=1.44318181818182
yaw=0.022
part=959
freq=60
cycl=20
part=480
freq=100
cycl=22
cpi=800

[Hotkeys]
TurnOnce=!{[}
TurnALot=!{]}
TurnOnce=!{BS}
TurnALot=!+{BS}
StopTurn=!{\}
LessTurn=!{-}
MoreTurn=!{=}
ClearMem=!{0}
NudgeFwd=!{'}
NudgeBkd=!{;}
JogRight=!{.}
JogLeft =!{,}
ToggleRec=!{/}


; The default hotkeys for the Sensitivity Matcher script are as follows:
;
; TurnOnce=!{[}
; TurnALot=!{]}
; TurnOnce=!{BS}
; TurnALot=!+{BS}
; StopTurn=!{\}
; LessTurn=!{-}
; MoreTurn=!{=}
; ClearMem=!{0}
; NudgeFwd=!{'}
; NudgeBkd=!{;}
; JogRight=!{.}
; JogLeft =!{,}
; ToggleRec=!{/}
;
; Put keys in curly braces to indicate a certain key. Example: {TAB} denotes the TAB key.
; Use lowercase for alphanumerics to avoid unintended behaviours.
Expand Down
24 changes: 24 additions & 0 deletions ReleaseAssets/bin/Header.au3
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
If _Singleton("Sensitivity Matcher", 1) == 0 Then
WinActivate("Sensitivity Matcher")
Exit
Else
Opt("GUICloseOnESC",0)
EndIf

#NoTrayIcon
#include <Date.au3>
#include <Misc.au3>
#include <Math.au3>
#include <GuiEdit.au3>
#include <GUIToolTip.au3>
#include <GUIComboBox.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <StringConstants.au3>
#include <WindowsConstants.au3>
#include "HotkeyFunctions.au3"
#include "MiscFunctions.au3"
#include "HelpMessages.au3"
#include "MeasureGUI.au3"
#include "RawInput.au3"
Loading

0 comments on commit e77d601

Please sign in to comment.