Program.cs 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. using System;
  2. using System.IO;
  3. using Microsoft.Win32;
  4. using Newtonsoft.Json;
  5. using Newtonsoft.Json.Linq;
  6. namespace SteamVRNoHeadsetModder
  7. {
  8. class Program
  9. {
  10. private const string DRIVERS_DEFAULT_VRSETTINGS = "/steamapps/common/SteamVR/drivers/null/resources/settings/default.vrsettings";
  11. private const string DEFAULT_VRSETTINGS = "/steamapps/common/SteamVR/resources/settings/default.vrsettings";
  12. static void Main(string[] args)
  13. {
  14. string steamPath = (string)Registry.GetValue("HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\Valve\\Steam", "InstallPath", "");
  15. if(steamPath == "")
  16. {
  17. Console.WriteLine("Steam could not be found on this machine!");
  18. return;
  19. }
  20. Console.WriteLine("Steam-Installation at {0}", steamPath);
  21. Console.WriteLine("drivers default.vrsettings exists {0}", File.Exists(steamPath + DRIVERS_DEFAULT_VRSETTINGS));
  22. Console.WriteLine("default.vrsettings exists {0}", File.Exists(steamPath + DEFAULT_VRSETTINGS));
  23. Console.WriteLine("");
  24. Console.WriteLine("------------------------------------------------");
  25. Console.WriteLine("");
  26. Console.WriteLine("Patch to:\n - [N]oHMD-Mode \n - [H]MD-Mode");
  27. string input = Console.ReadLine().ToLower();
  28. switch (input)
  29. {
  30. case "n":
  31. PatchToNoHmd(steamPath);
  32. break;
  33. case "h":
  34. PatchToHmd(steamPath);
  35. break;
  36. default:
  37. Console.WriteLine("Whuuut?");
  38. break;
  39. }
  40. Console.ReadLine();
  41. }
  42. private static void PatchToNoHmd(string steamPath)
  43. {
  44. Console.WriteLine("Patching drivers default.vrsettings...");
  45. using (StreamReader reader = new StreamReader(steamPath + DRIVERS_DEFAULT_VRSETTINGS))
  46. {
  47. dynamic defaultvrsettings = JValue.Parse(reader.ReadToEnd());
  48. reader.Close();
  49. defaultvrsettings.driver_null.enable = true;
  50. using (StreamWriter writer = new StreamWriter(steamPath + DRIVERS_DEFAULT_VRSETTINGS, false))
  51. {
  52. writer.Write(defaultvrsettings.ToString());
  53. }
  54. }
  55. Console.WriteLine("Patching default.vrsettings...");
  56. using (StreamReader reader = new StreamReader(steamPath + DEFAULT_VRSETTINGS))
  57. {
  58. dynamic defaultvrsettings = JValue.Parse(reader.ReadToEnd());
  59. reader.Close();
  60. defaultvrsettings.steamvr.requireHmd = false;
  61. defaultvrsettings.steamvr.forcedDriver = "null";
  62. defaultvrsettings.steamvr.activateMultipleDrivers = true;
  63. using (StreamWriter writer = new StreamWriter(steamPath + DEFAULT_VRSETTINGS, false))
  64. {
  65. writer.Write(defaultvrsettings.ToString());
  66. }
  67. }
  68. Console.WriteLine("Completed. You can now quit the application!");
  69. }
  70. private static void PatchToHmd(string steamPath)
  71. {
  72. Console.WriteLine("Patching drivers default.vrsettings...");
  73. using (StreamReader reader = new StreamReader(steamPath + DRIVERS_DEFAULT_VRSETTINGS))
  74. {
  75. dynamic defaultvrsettings = JValue.Parse(reader.ReadToEnd());
  76. reader.Close();
  77. defaultvrsettings.driver_null.enable = false;
  78. using (StreamWriter writer = new StreamWriter(steamPath + DRIVERS_DEFAULT_VRSETTINGS, false))
  79. {
  80. writer.Write(defaultvrsettings.ToString());
  81. }
  82. }
  83. Console.WriteLine("Patching default.vrsettings...");
  84. using (StreamReader reader = new StreamReader(steamPath + DEFAULT_VRSETTINGS))
  85. {
  86. dynamic defaultvrsettings = JValue.Parse(reader.ReadToEnd());
  87. reader.Close();
  88. defaultvrsettings.steamvr.requireHmd = true;
  89. defaultvrsettings.steamvr.forcedDriver = "";
  90. defaultvrsettings.steamvr.activateMultipleDrivers = false;
  91. using (StreamWriter writer = new StreamWriter(steamPath + DEFAULT_VRSETTINGS, false))
  92. {
  93. writer.Write(defaultvrsettings.ToString());
  94. }
  95. }
  96. Console.WriteLine("Completed. You can now quit the application!");
  97. }
  98. }
  99. }