├── dependencies
└── SharpMonoInjector
│ ├── .gitattributes
│ ├── src
│ ├── SharpMonoInjector.Gui
│ │ ├── App.config
│ │ ├── Properties
│ │ │ ├── Settings.settings
│ │ │ ├── Settings.Designer.cs
│ │ │ ├── AssemblyInfo.cs
│ │ │ ├── Resources.Designer.cs
│ │ │ └── Resources.resx
│ │ ├── Models
│ │ │ ├── MonoProcess.cs
│ │ │ └── InjectedAssembly.cs
│ │ ├── App.xaml.cs
│ │ ├── App.xaml
│ │ ├── Views
│ │ │ └── MainWindow.xaml.cs
│ │ ├── Converters
│ │ │ ├── MonoProcessToStringConverter.cs
│ │ │ └── InjectedAssemblyToStringConverter.cs
│ │ ├── ViewModels
│ │ │ ├── ViewModel.cs
│ │ │ └── RelayCommand.cs
│ │ └── SharpMonoInjector.Gui.csproj
│ ├── SharpMonoInjector.Console
│ │ ├── App.config
│ │ ├── Properties
│ │ │ └── AssemblyInfo.cs
│ │ ├── CommandLineArguments.cs
│ │ ├── SharpMonoInjector.Console.csproj
│ │ └── Program.cs
│ ├── SharpMonoInjector
│ │ ├── MonoImageOpenStatus.cs
│ │ ├── ExportedFunction.cs
│ │ ├── InjectorException.cs
│ │ ├── SharpMonoInjector.csproj
│ │ ├── Assembler.cs
│ │ ├── Memory.cs
│ │ ├── ProcessUtils.cs
│ │ └── Native.cs
│ ├── ExampleAssembly
│ │ ├── Cheat.cs
│ │ ├── Loader.cs
│ │ ├── Properties
│ │ │ └── AssemblyInfo.cs
│ │ └── ExampleAssembly.csproj
│ └── SharpMonoInjector.sln
│ ├── README.md
│ ├── LICENSE
│ └── .gitignore
├── IntifaceGameHapticsRouter
├── README.md
├── intiface-ghr-logo-1.ico
├── Properties
│ ├── Settings.settings
│ ├── Settings.Designer.cs
│ ├── AssemblyInfo.cs
│ ├── Resources.Designer.cs
│ └── Resources.resx
├── App.xaml.cs
├── IntifaceGameHapticsRouter.csproj.user
├── HelpControl.xaml.cs
├── HelpControl.xaml
├── App.xaml
├── IntifaceGameHapticsRouterProperties.settings
├── ModControl.xaml
├── packages.config
├── XInputMod.cs
├── UWPInputMod.cs
├── LogControl.xaml
├── AboutControl.xaml.cs
├── App.config
├── GHRProtocol.cs
├── MainWindow.xaml
├── IntifaceGameHapticsRouterProperties.Designer.cs
├── AboutControl.xaml
├── help.md
├── EasyHookMod.cs
├── LogControl.xaml.cs
├── VisualizerControl.xaml
├── IntifaceControl.xaml
└── VisualizerControl.xaml.cs
├── icons
├── intiface-ghr-logo-1.bmp
├── intiface-ghr-logo-1.ico
└── intiface-ghr-logo-1.png
├── GHRXInputModPayload
├── packages.config
├── Properties
│ └── AssemblyInfo.cs
└── GHRXInputModPayload.csproj
├── .gitignore
├── GHRUwpGamingInputPayload
├── packages.config
├── Properties
│ └── AssemblyInfo.cs
├── GHRUwpGamingInputPayload.cs
└── GHRUwpGamingInputPayload.csproj
├── GHRUnityVRModNet35
├── packages.config
├── ILMergeConfig.json
├── Properties
│ └── AssemblyInfo.cs
└── GHRUnityVRModNet35.csproj
├── GHRUnityVRModNet45
├── packages.config
├── Properties
│ └── AssemblyInfo.cs
└── GHRUnityVRModNet45.csproj
├── IntifaceGameHapticsRouter.sln.DotSettings
├── .github
└── workflows
│ └── main.yml
├── GHRXInputModInterface
├── Properties
│ └── AssemblyInfo.cs
├── GHRXInputModInterface.csproj
└── GHRXInputModInterface.cs
├── intiface-ghr-installer.iss
├── CHANGELOG.md
├── README.md
└── IntifaceGameHapticsRouter.sln
/dependencies/SharpMonoInjector/.gitattributes:
--------------------------------------------------------------------------------
1 | # Auto detect text files and perform LF normalization
2 | * text=auto
--------------------------------------------------------------------------------
/IntifaceGameHapticsRouter/README.md:
--------------------------------------------------------------------------------
1 | # Intiface Game Vibration Router
2 |
3 | Just like the Buttplug GVR, but better.
4 |
--------------------------------------------------------------------------------
/icons/intiface-ghr-logo-1.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/intiface/intiface-game-haptics-router/HEAD/icons/intiface-ghr-logo-1.bmp
--------------------------------------------------------------------------------
/icons/intiface-ghr-logo-1.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/intiface/intiface-game-haptics-router/HEAD/icons/intiface-ghr-logo-1.ico
--------------------------------------------------------------------------------
/icons/intiface-ghr-logo-1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/intiface/intiface-game-haptics-router/HEAD/icons/intiface-ghr-logo-1.png
--------------------------------------------------------------------------------
/IntifaceGameHapticsRouter/intiface-ghr-logo-1.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/intiface/intiface-game-haptics-router/HEAD/IntifaceGameHapticsRouter/intiface-ghr-logo-1.ico
--------------------------------------------------------------------------------
/GHRXInputModPayload/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | **/bin/**
2 | **/obj/**
3 | .vs
4 | *.DotSettings.user
5 | packages
6 | **/EasyHook*.dll
7 | **/EasyHook*.exe
8 | **/EasyLoad*
9 | installer
10 | **/BuildDate.txt
--------------------------------------------------------------------------------
/GHRUwpGamingInputPayload/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/dependencies/SharpMonoInjector/src/SharpMonoInjector.Gui/App.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/IntifaceGameHapticsRouter/Properties/Settings.settings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/dependencies/SharpMonoInjector/src/SharpMonoInjector.Console/App.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/IntifaceGameHapticsRouter/App.xaml.cs:
--------------------------------------------------------------------------------
1 | using System.Windows;
2 |
3 | namespace IntifaceGameHapticsRouter
4 | {
5 | ///
6 | /// Interaction logic for App.xaml
7 | ///
8 | public partial class App : Application
9 | {
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/dependencies/SharpMonoInjector/src/SharpMonoInjector.Gui/Properties/Settings.settings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/dependencies/SharpMonoInjector/src/SharpMonoInjector/MonoImageOpenStatus.cs:
--------------------------------------------------------------------------------
1 | namespace SharpMonoInjector
2 | {
3 | public enum MonoImageOpenStatus
4 | {
5 | MONO_IMAGE_OK,
6 | MONO_IMAGE_ERROR_ERRNO,
7 | MONO_IMAGE_MISSING_ASSEMBLYREF,
8 | MONO_IMAGE_IMAGE_INVALID
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/GHRUnityVRModNet35/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/GHRUnityVRModNet45/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/dependencies/SharpMonoInjector/src/ExampleAssembly/Cheat.cs:
--------------------------------------------------------------------------------
1 | namespace ExampleAssembly
2 | {
3 | public class Cheat : UnityEngine.MonoBehaviour
4 | {
5 | private void OnGUI()
6 | {
7 | UnityEngine.GUI.Label(new UnityEngine.Rect(10, 10, 200, 40), "This is a very useful cheat");
8 | }
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/dependencies/SharpMonoInjector/src/SharpMonoInjector.Gui/Models/MonoProcess.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace SharpMonoInjector.Gui.Models
4 | {
5 | public class MonoProcess
6 | {
7 | public IntPtr MonoModule { get; set; }
8 |
9 | public string Name { get; set; }
10 |
11 | public int Id { get; set; }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/dependencies/SharpMonoInjector/src/SharpMonoInjector.Gui/Models/InjectedAssembly.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace SharpMonoInjector.Gui.Models
4 | {
5 | public class InjectedAssembly
6 | {
7 | public int ProcessId { get; set; }
8 |
9 | public IntPtr Address { get; set; }
10 |
11 | public bool Is64Bit { get; set; }
12 |
13 | public string Name { get; set; }
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/dependencies/SharpMonoInjector/src/SharpMonoInjector/ExportedFunction.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace SharpMonoInjector
4 | {
5 | public struct ExportedFunction
6 | {
7 | public string Name;
8 |
9 | public IntPtr Address;
10 |
11 | public ExportedFunction(string name, IntPtr address)
12 | {
13 | Name = name;
14 | Address = address;
15 | }
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/dependencies/SharpMonoInjector/src/SharpMonoInjector/InjectorException.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace SharpMonoInjector
4 | {
5 | public class InjectorException : Exception
6 | {
7 | public InjectorException(string message) : base(message)
8 | {
9 | }
10 |
11 | public InjectorException(string message, Exception innerException) : base(message, innerException)
12 | {
13 | }
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/dependencies/SharpMonoInjector/src/SharpMonoInjector.Gui/App.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Configuration;
4 | using System.Data;
5 | using System.Linq;
6 | using System.Threading.Tasks;
7 | using System.Windows;
8 |
9 | namespace SharpMonoInjector.Gui
10 | {
11 | ///
12 | /// Interaction logic for App.xaml
13 | ///
14 | public partial class App : Application
15 | {
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/dependencies/SharpMonoInjector/src/SharpMonoInjector.Gui/App.xaml:
--------------------------------------------------------------------------------
1 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/dependencies/SharpMonoInjector/src/SharpMonoInjector/SharpMonoInjector.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | netstandard2.0
5 |
6 |
7 |
8 | ..\..\build\debug
9 |
10 |
11 |
12 | ..\..\build\release
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/IntifaceGameHapticsRouter/IntifaceGameHapticsRouter.csproj.user:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | publish\
5 |
6 |
7 |
8 |
9 |
10 | en-US
11 | false
12 |
13 |
--------------------------------------------------------------------------------
/dependencies/SharpMonoInjector/src/ExampleAssembly/Loader.cs:
--------------------------------------------------------------------------------
1 | namespace ExampleAssembly
2 | {
3 | public class Loader
4 | {
5 | static UnityEngine.GameObject gameObject;
6 |
7 | public static void Load()
8 | {
9 | gameObject = new UnityEngine.GameObject();
10 | gameObject.AddComponent();
11 | UnityEngine.Object.DontDestroyOnLoad(gameObject);
12 | }
13 |
14 | public static void Unload()
15 | {
16 | UnityEngine.Object.Destroy(gameObject);
17 | }
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/IntifaceGameHapticsRouter.sln.DotSettings:
--------------------------------------------------------------------------------
1 |
2 | True
3 | True
4 | True
--------------------------------------------------------------------------------
/dependencies/SharpMonoInjector/src/SharpMonoInjector.Gui/Views/MainWindow.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using System.Windows;
7 | using System.Windows.Controls;
8 | using System.Windows.Data;
9 | using System.Windows.Documents;
10 | using System.Windows.Input;
11 | using System.Windows.Media;
12 | using System.Windows.Media.Imaging;
13 | using System.Windows.Navigation;
14 | using System.Windows.Shapes;
15 |
16 | namespace SharpMonoInjector.Gui.Views
17 | {
18 | ///
19 | /// Interaction logic for MainWindow.xaml
20 | ///
21 | public partial class MainWindow : Window
22 | {
23 | public MainWindow()
24 | {
25 | InitializeComponent();
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/dependencies/SharpMonoInjector/src/SharpMonoInjector.Gui/Converters/MonoProcessToStringConverter.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Globalization;
3 | using System.Windows.Data;
4 | using SharpMonoInjector.Gui.Models;
5 |
6 | namespace SharpMonoInjector.Gui.Converters
7 | {
8 | public class MonoProcessToStringConverter : IValueConverter
9 | {
10 | public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
11 | {
12 | if (value == null)
13 | return null;
14 |
15 | MonoProcess mp = (MonoProcess)value;
16 | return $"[{mp.Id}] {mp.Name}";
17 | }
18 |
19 | public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
20 | {
21 | throw new NotImplementedException();
22 | }
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/dependencies/SharpMonoInjector/src/SharpMonoInjector.Gui/ViewModels/ViewModel.cs:
--------------------------------------------------------------------------------
1 | using System.ComponentModel;
2 | using System.Collections.Generic;
3 | using System.Runtime.CompilerServices;
4 |
5 | namespace SharpMonoInjector.Gui.ViewModels
6 | {
7 | public abstract class ViewModel : INotifyPropertyChanged
8 | {
9 | public event PropertyChangedEventHandler PropertyChanged;
10 |
11 | protected void Set(ref T property, T value, [CallerMemberName]string name = null)
12 | {
13 | if (!EqualityComparer.Default.Equals(property, value)) {
14 | property = value;
15 | RaisePropertyChanged(name);
16 | }
17 | }
18 |
19 | protected void RaisePropertyChanged(string name)
20 | {
21 | PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name));
22 | }
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/IntifaceGameHapticsRouter/HelpControl.xaml.cs:
--------------------------------------------------------------------------------
1 | using System.Windows.Controls;
2 | using System.IO;
3 | using System.Linq;
4 | using System.Reflection;
5 |
6 | namespace IntifaceGameHapticsRouter
7 | {
8 | ///
9 | /// Interaction logic for HelpControl.xaml
10 | ///
11 | public partial class HelpControl : UserControl
12 | {
13 | public HelpControl()
14 | {
15 | InitializeComponent();
16 | var assembly = Assembly.GetExecutingAssembly();
17 | string resourceName = assembly.GetManifestResourceNames()
18 | .Single(str => str.EndsWith("help.md"));
19 | using (Stream stream = assembly.GetManifestResourceStream(resourceName))
20 | using (StreamReader reader = new StreamReader(stream))
21 | {
22 | Markdownview.Markdown = reader.ReadToEnd();
23 | }
24 |
25 | }
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/dependencies/SharpMonoInjector/src/SharpMonoInjector.Gui/ViewModels/RelayCommand.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Windows.Input;
3 |
4 | namespace SharpMonoInjector.Gui.ViewModels
5 | {
6 | public class RelayCommand : ICommand
7 | {
8 | public event EventHandler CanExecuteChanged;
9 |
10 | private readonly Action