diff --git a/HibikiSigPatch/Dependencies/.gitignore b/Dependencies/.gitignore
similarity index 100%
rename from HibikiSigPatch/Dependencies/.gitignore
rename to Dependencies/.gitignore
diff --git a/HibikiSigPatch/Dependencies/Detours/include/detours.h b/Dependencies/Detours/include/detours.h
similarity index 100%
rename from HibikiSigPatch/Dependencies/Detours/include/detours.h
rename to Dependencies/Detours/include/detours.h
diff --git a/HibikiSigPatch/Dependencies/Detours/include/detver.h b/Dependencies/Detours/include/detver.h
similarity index 100%
rename from HibikiSigPatch/Dependencies/Detours/include/detver.h
rename to Dependencies/Detours/include/detver.h
diff --git a/HibikiSigPatch/Dependencies/Detours/include/syelog.h b/Dependencies/Detours/include/syelog.h
similarity index 100%
rename from HibikiSigPatch/Dependencies/Detours/include/syelog.h
rename to Dependencies/Detours/include/syelog.h
diff --git a/HibikiSigPatch/Dependencies/Detours/lib/x64/detours.lib b/Dependencies/Detours/lib/x64/detours.lib
similarity index 100%
rename from HibikiSigPatch/Dependencies/Detours/lib/x64/detours.lib
rename to Dependencies/Detours/lib/x64/detours.lib
diff --git a/HibikiSigPatch/Dependencies/Detours/lib/x64/detours.pdb b/Dependencies/Detours/lib/x64/detours.pdb
similarity index 100%
rename from HibikiSigPatch/Dependencies/Detours/lib/x64/detours.pdb
rename to Dependencies/Detours/lib/x64/detours.pdb
diff --git a/HibikiSigPatch/Dependencies/Detours/lib/x64/syelog.lib b/Dependencies/Detours/lib/x64/syelog.lib
similarity index 100%
rename from HibikiSigPatch/Dependencies/Detours/lib/x64/syelog.lib
rename to Dependencies/Detours/lib/x64/syelog.lib
diff --git a/HibikiSigPatch/Dependencies/Detours/lib/x86/detours.lib b/Dependencies/Detours/lib/x86/detours.lib
similarity index 100%
rename from HibikiSigPatch/Dependencies/Detours/lib/x86/detours.lib
rename to Dependencies/Detours/lib/x86/detours.lib
diff --git a/HibikiSigPatch/Dependencies/Detours/lib/x86/detours.pdb b/Dependencies/Detours/lib/x86/detours.pdb
similarity index 100%
rename from HibikiSigPatch/Dependencies/Detours/lib/x86/detours.pdb
rename to Dependencies/Detours/lib/x86/detours.pdb
diff --git a/HibikiSigPatch/Dependencies/Detours/lib/x86/syelog.lib b/Dependencies/Detours/lib/x86/syelog.lib
similarity index 100%
rename from HibikiSigPatch/Dependencies/Detours/lib/x86/syelog.lib
rename to Dependencies/Detours/lib/x86/syelog.lib
diff --git a/Dependencies/Helpers.h b/Dependencies/Helpers.h
new file mode 100644
index 0000000..bd28bd5
--- /dev/null
+++ b/Dependencies/Helpers.h
@@ -0,0 +1,98 @@
+#pragma once
+
+#define _CONCAT2(x, y) x##y
+#define CONCAT2(x, y) _CONCAT(x, y)
+#define INSERT_PADDING(length) \
+ uint8_t CONCAT2(pad, __LINE__)[length]
+
+#define ASSERT_OFFSETOF(type, field, offset) \
+ static_assert(offsetof(type, field) == offset, "offsetof assertion failed")
+
+#define ASSERT_SIZEOF(type, size) \
+ static_assert(sizeof(type) == size, "sizeof assertion failed")
+
+#ifdef BASE_ADDRESS
+const HMODULE MODULE_HANDLE = GetModuleHandle(nullptr);
+
+#define ASLR(address) \
+ ((size_t)MODULE_HANDLE + (size_t)address - (size_t)BASE_ADDRESS)
+#endif
+
+#define FUNCTION_PTR(returnType, callingConvention, function, location, ...) \
+ returnType (callingConvention *function)(__VA_ARGS__) = (returnType(callingConvention*)(__VA_ARGS__))(location)
+
+#define PROC_ADDRESS(libraryName, procName) \
+ GetProcAddress(LoadLibrary(TEXT(libraryName)), procName)
+
+#define HOOK(returnType, callingConvention, functionName, location, ...) \
+ typedef returnType callingConvention _##functionName(__VA_ARGS__); \
+ _##functionName* original##functionName = (_##functionName*)(location); \
+ returnType callingConvention implOf##functionName(__VA_ARGS__)
+
+#define INSTALL_HOOK(functionName) \
+ do { \
+ DetourTransactionBegin(); \
+ DetourUpdateThread(GetCurrentThread()); \
+ DetourAttach((void**)&original##functionName, implOf##functionName); \
+ DetourTransactionCommit(); \
+ } while(0)
+
+#define VTABLE_HOOK(returnType, callingConvention, className, functionName, ...) \
+ typedef returnType callingConvention className##functionName(className* This, __VA_ARGS__); \
+ className##functionName* original##className##functionName; \
+ returnType callingConvention implOf##className##functionName(className* This, __VA_ARGS__)
+
+#define INSTALL_VTABLE_HOOK(className, object, functionName, functionIndex) \
+ do { \
+ if (original##className##functionName == nullptr) \
+ { \
+ original##className##functionName = (*(className##functionName***)object)[functionIndex]; \
+ DetourTransactionBegin(); \
+ DetourUpdateThread(GetCurrentThread()); \
+ DetourAttach((void**)&original##className##functionName, implOf##className##functionName); \
+ DetourTransactionCommit(); \
+ } \
+ } while(0)
+
+#define WRITE_MEMORY(location, type, ...) \
+ do { \
+ const type data[] = { __VA_ARGS__ }; \
+ DWORD oldProtect; \
+ VirtualProtect((void*)(location), sizeof(data), PAGE_EXECUTE_READWRITE, &oldProtect); \
+ memcpy((void*)(location), data, sizeof(data)); \
+ VirtualProtect((void*)(location), sizeof(data), oldProtect, &oldProtect); \
+ } while(0)
+
+#define WRITE_JUMP(location, function) \
+ do { \
+ WRITE_MEMORY((size_t)(location), uint8_t, 0x48, 0xB8); \
+ WRITE_MEMORY((size_t)(location) + 2, uint64_t, (uint64_t)(function)); \
+ WRITE_MEMORY((size_t)(location) + 10, uint8_t, 0xFF, 0xE0); \
+ } while(0)
+
+#define WRITE_CALL(location, function) \
+ do { \
+ WRITE_MEMORY((size_t)(location), uint8_t, 0x48, 0xB8); \
+ WRITE_MEMORY((size_t)(location) + 2, uint64_t, (uint64_t)(function)); \
+ WRITE_MEMORY((size_t)(location) + 10, uint8_t, 0xFF, 0xD0); \
+ } while(0)
+
+#define WRITE_NOP(location, count) \
+ do { \
+ DWORD oldProtect; \
+ VirtualProtect((void*)(location), (size_t)(count), PAGE_EXECUTE_READWRITE, &oldProtect); \
+ for (size_t i = 0; i < (size_t)(count); i++) \
+ *((uint8_t*)(location) + i) = 0x90; \
+ VirtualProtect((void*)(location), (size_t)(count), oldProtect, &oldProtect); \
+ } while(0)
+
+inline uint32_t readUnalignedU32(void* memory)
+{
+ uint8_t* p = (uint8_t*)memory;
+ return p[0] | (p[1] << 8) | (p[2] << 16) | (p[3] << 24);
+}
+
+inline void versionWarning(LPCTSTR modName)
+{
+ MessageBox(nullptr, TEXT("Failed to initialize! Please make sure that the Hi-Fi-RUSH executable matches the MD5 hash and try again.\nMD5: 5F0E371201CB33D8813D21337526F063"), modName, MB_ICONERROR);
+}
diff --git a/HibikiSigPatch/Signature.h b/Dependencies/Signature.h
similarity index 100%
rename from HibikiSigPatch/Signature.h
rename to Dependencies/Signature.h
diff --git a/HibikiPillarPatch/DllMain.cpp b/HibikiPillarPatch/DllMain.cpp
new file mode 100644
index 0000000..c8c2930
--- /dev/null
+++ b/HibikiPillarPatch/DllMain.cpp
@@ -0,0 +1,26 @@
+#include "Signature.h"
+
+SIG_SCAN
+(
+ sigPillarbox,
+ 0x143F283C5,
+ "\xF6\x41\x30\x01\x45\x0F\x29\x43\x00",
+ "xxxxxxxx?"
+);
+
+BOOL WINAPI DllMain(HINSTANCE instance, DWORD reason, LPVOID reserved)
+{
+ if (reason == DLL_PROCESS_ATTACH)
+ {
+ if (sigValid)
+ {
+ WRITE_MEMORY((char*)sigPillarbox() + 3, uint8_t, 0);
+ }
+ else
+ {
+ versionWarning(TEXT("HibikiPillarPatch"));
+ }
+ }
+
+ return TRUE;
+}
diff --git a/HibikiPillarPatch/HibikiPillarPatch.sln b/HibikiPillarPatch/HibikiPillarPatch.sln
new file mode 100644
index 0000000..4b3e00d
--- /dev/null
+++ b/HibikiPillarPatch/HibikiPillarPatch.sln
@@ -0,0 +1,31 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.4.33205.214
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "HibikiPillarPatch", "HibikiPillarPatch.vcxproj", "{E985DEF2-A8F3-4161-B92E-9F77AA80F7C3}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|x64 = Debug|x64
+ Debug|x86 = Debug|x86
+ Release|x64 = Release|x64
+ Release|x86 = Release|x86
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {E985DEF2-A8F3-4161-B92E-9F77AA80F7C3}.Debug|x64.ActiveCfg = Debug|x64
+ {E985DEF2-A8F3-4161-B92E-9F77AA80F7C3}.Debug|x64.Build.0 = Debug|x64
+ {E985DEF2-A8F3-4161-B92E-9F77AA80F7C3}.Debug|x86.ActiveCfg = Debug|Win32
+ {E985DEF2-A8F3-4161-B92E-9F77AA80F7C3}.Debug|x86.Build.0 = Debug|Win32
+ {E985DEF2-A8F3-4161-B92E-9F77AA80F7C3}.Release|x64.ActiveCfg = Release|x64
+ {E985DEF2-A8F3-4161-B92E-9F77AA80F7C3}.Release|x64.Build.0 = Release|x64
+ {E985DEF2-A8F3-4161-B92E-9F77AA80F7C3}.Release|x86.ActiveCfg = Release|Win32
+ {E985DEF2-A8F3-4161-B92E-9F77AA80F7C3}.Release|x86.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {F118A005-C71C-45D5-890A-6EB72E31DE6E}
+ EndGlobalSection
+EndGlobal
diff --git a/HibikiPillarPatch/HibikiPillarPatch.vcxproj b/HibikiPillarPatch/HibikiPillarPatch.vcxproj
new file mode 100644
index 0000000..ce2a95b
--- /dev/null
+++ b/HibikiPillarPatch/HibikiPillarPatch.vcxproj
@@ -0,0 +1,188 @@
+
+
+
+
+ Debug
+ Win32
+
+
+ Release
+ Win32
+
+
+ Debug
+ x64
+
+
+ Release
+ x64
+
+
+
+ 16.0
+ {e985def2-a8f3-4161-b92e-9f77aa80f7c3}
+ HibikiPillarPatch
+ 10.0
+
+
+
+ DynamicLibrary
+ true
+ v142
+ MultiByte
+
+
+ DynamicLibrary
+ false
+ v142
+ true
+ MultiByte
+
+
+ DynamicLibrary
+ true
+ v142
+ MultiByte
+
+
+ DynamicLibrary
+ false
+ v142
+ true
+ MultiByte
+
+
+ $(ProjectDir)bin\$(Platform)\$(Configuration)\
+ $(ProjectDir)obj\$(Platform)\$(Configuration)\
+
+
+ $(ProjectDir)bin\$(Platform)\$(Configuration)\
+ $(ProjectDir)obj\$(Platform)\$(Configuration)\
+
+
+ $(ProjectDir)bin\$(Platform)\$(Configuration)\
+ $(ProjectDir)obj\$(Platform)\$(Configuration)\
+
+
+ $(ProjectDir)bin\$(Platform)\$(Configuration)\
+ $(ProjectDir)obj\$(Platform)\$(Configuration)\
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ .asi
+
+
+
+ Level3
+ Disabled
+ true
+ true
+ $(ProjectDir)Dependencies\Detours\include;%(AdditionalIncludeDirectories)
+ Use
+ Pch.h
+ Pch.h
+
+
+ Console
+ detours.lib;syelog.lib;%(AdditionalDependencies)
+ ..\Dependencies\Detours\lib\x86
+
+
+
+
+ Level3
+ Disabled
+ true
+ true
+ ..\Dependencies;..\Dependencies\Detours\include;%(AdditionalIncludeDirectories)
+ Use
+ Pch.h
+ Pch.h
+ _WINDLL;%(PreprocessorDefinitions)
+
+
+ Console
+ detours.lib;syelog.lib;%(AdditionalDependencies)
+ ..\Dependencies\Detours\lib\x64
+
+
+
+
+ Level3
+ MaxSpeed
+ true
+ true
+ true
+ true
+ $(ProjectDir)Dependencies\Detours\include;%(AdditionalIncludeDirectories)
+ Use
+ Pch.h
+ Pch.h
+ stdcpp17
+ MultiThreaded
+
+
+ Console
+ true
+ true
+ detours.lib;syelog.lib;%(AdditionalDependencies)
+ ..\Dependencies\Detours\lib\x86
+
+
+
+
+ Level3
+ MaxSpeed
+ true
+ true
+ true
+ true
+ ..\Dependencies;..\Dependencies\Detours\include;%(AdditionalIncludeDirectories)
+ Use
+ Pch.h
+ Pch.h
+ MultiThreaded
+ stdcpp17
+ %(PreprocessorDefinitions)
+
+
+ Console
+ true
+ true
+ detours.lib;syelog.lib;%(AdditionalDependencies)
+ ..\Dependencies\Detours\lib\x64
+
+
+
+
+
+
+
+
+ Create
+ Create
+ Create
+ Create
+
+
+
+
+
+
\ No newline at end of file
diff --git a/HibikiPillarPatch/HibikiPillarPatch.vcxproj.filters b/HibikiPillarPatch/HibikiPillarPatch.vcxproj.filters
new file mode 100644
index 0000000..28a954a
--- /dev/null
+++ b/HibikiPillarPatch/HibikiPillarPatch.vcxproj.filters
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/HibikiPillarPatch/Pch.cpp b/HibikiPillarPatch/Pch.cpp
new file mode 100644
index 0000000..33274ba
--- /dev/null
+++ b/HibikiPillarPatch/Pch.cpp
@@ -0,0 +1 @@
+#include "Pch.h"
diff --git a/HibikiPillarPatch/Pch.h b/HibikiPillarPatch/Pch.h
new file mode 100644
index 0000000..81f8636
--- /dev/null
+++ b/HibikiPillarPatch/Pch.h
@@ -0,0 +1,15 @@
+#pragma once
+
+#define WIN32_LEAN_AND_MEAN
+
+// Detours
+#include
+#include
+
+// Standard library
+#include
+#include
+
+// Dependencies
+#include
+#include
diff --git a/HibikiPillarPatch/README.md b/HibikiPillarPatch/README.md
new file mode 100644
index 0000000..4d2c45f
--- /dev/null
+++ b/HibikiPillarPatch/README.md
@@ -0,0 +1,2 @@
+# HibikiPillarPatch
+An ASI plugin for Hi-Fi RUSH that patches out the letter/pillar boxing that appears under certain circumstances.
diff --git a/HibikiSigPatch/DllMain.cpp b/HibikiSigPatch/DllMain.cpp
index 8ae4b9b..d0d5473 100644
--- a/HibikiSigPatch/DllMain.cpp
+++ b/HibikiSigPatch/DllMain.cpp
@@ -1,5 +1,3 @@
-#include "Signature.h"
-
SIG_SCAN
(
sigUTOCSignature,
@@ -18,7 +16,7 @@ BOOL WINAPI DllMain(HINSTANCE instance, DWORD reason, LPVOID reserved)
}
else
{
- MessageBox(nullptr, TEXT("Failed to initialize! Please make sure that the Hi-Fi-RUSH executable matches the MD5 hash and try again.\nMD5: 5F0E371201CB33D8813D21337526F063"), TEXT("HibikiSigPatch"), MB_ICONERROR);
+ versionWarning(TEXT("HibikiSigPatch"));
}
}
diff --git a/HibikiSigPatch/Helpers.h b/HibikiSigPatch/Helpers.h
deleted file mode 100644
index 7ea5dae..0000000
--- a/HibikiSigPatch/Helpers.h
+++ /dev/null
@@ -1,86 +0,0 @@
-#pragma once
-
-#define _CONCAT2(x, y) x##y
-#define CONCAT2(x, y) _CONCAT(x, y)
-#define INSERT_PADDING(length) \
- uint8_t CONCAT2(pad, __LINE__)[length]
-
-#define ASSERT_OFFSETOF(type, field, offset) \
- static_assert(offsetof(type, field) == offset, "offsetof assertion failed")
-
-#define ASSERT_SIZEOF(type, size) \
- static_assert(sizeof(type) == size, "sizeof assertion failed")
-
-#ifdef BASE_ADDRESS
-const HMODULE MODULE_HANDLE = GetModuleHandle(nullptr);
-
-#define ASLR(address) \
- ((size_t)MODULE_HANDLE + (size_t)address - (size_t)BASE_ADDRESS)
-#endif
-
-#define FUNCTION_PTR(returnType, callingConvention, function, location, ...) \
- returnType (callingConvention *function)(__VA_ARGS__) = (returnType(callingConvention*)(__VA_ARGS__))(location)
-
-#define PROC_ADDRESS(libraryName, procName) \
- GetProcAddress(LoadLibrary(TEXT(libraryName)), procName)
-
-#define HOOK(returnType, callingConvention, functionName, location, ...) \
- typedef returnType callingConvention functionName(__VA_ARGS__); \
- functionName* original##functionName = (functionName*)(location); \
- returnType callingConvention implOf##functionName(__VA_ARGS__)
-
-#define INSTALL_HOOK(functionName) \
- { \
- DetourTransactionBegin(); \
- DetourUpdateThread(GetCurrentThread()); \
- DetourAttach((void**)&original##functionName, implOf##functionName); \
- DetourTransactionCommit(); \
- }
-
-#define VTABLE_HOOK(returnType, callingConvention, className, functionName, ...) \
- typedef returnType callingConvention className##functionName(className* This, __VA_ARGS__); \
- className##functionName* original##className##functionName; \
- returnType callingConvention implOf##className##functionName(className* This, __VA_ARGS__)
-
-#define INSTALL_VTABLE_HOOK(className, object, functionName, functionIndex) \
- { \
- void** addr = &(*(void***)object)[functionIndex]; \
- if (*addr != implOf##className##functionName) \
- { \
- original##className##functionName = (className##functionName*)*addr; \
- DWORD oldProtect; \
- VirtualProtect(addr, sizeof(void*), PAGE_EXECUTE_READWRITE, &oldProtect); \
- *addr = implOf##className##functionName; \
- VirtualProtect(addr, sizeof(void*), oldProtect, &oldProtect); \
- } \
- }
-
-#define WRITE_MEMORY(location, type, ...) \
- { \
- const type data[] = { __VA_ARGS__ }; \
- DWORD oldProtect; \
- VirtualProtect((void*)(location), sizeof(data), PAGE_EXECUTE_READWRITE, &oldProtect); \
- memcpy((void*)(location), data, sizeof(data)); \
- VirtualProtect((void*)(location), sizeof(data), oldProtect, &oldProtect); \
- }
-
-#define WRITE_JUMP(location, function) \
- { \
- WRITE_MEMORY(location, uint8_t, 0xE9); \
- WRITE_MEMORY(location + 1, uint32_t, (uint32_t)(function) - (size_t)(location) - 5); \
- }
-
-#define WRITE_CALL(location, function) \
- { \
- WRITE_MEMORY(location, uint8_t, 0xE8); \
- WRITE_MEMORY(location + 1, uint32_t, (uint32_t)(function) - (size_t)(location) - 5); \
- }
-
-#define WRITE_NOP(location, count) \
- { \
- DWORD oldProtect; \
- VirtualProtect((void*)(location), (size_t)(count), PAGE_EXECUTE_READWRITE, &oldProtect); \
- for (size_t i = 0; i < (size_t)(count); i++) \
- *((uint8_t*)(location) + i) = 0x90; \
- VirtualProtect((void*)(location), (size_t)(count), oldProtect, &oldProtect); \
- }
\ No newline at end of file
diff --git a/HibikiSigPatch/HibikiSigPatch.vcxproj b/HibikiSigPatch/HibikiSigPatch.vcxproj
index 72f7167..e16bae8 100644
--- a/HibikiSigPatch/HibikiSigPatch.vcxproj
+++ b/HibikiSigPatch/HibikiSigPatch.vcxproj
@@ -94,7 +94,7 @@
Disabled
true
true
- $(ProjectDir)Dependencies\Detours\include;%(AdditionalIncludeDirectories)
+ ..\Dependencies\Detours\include;%(AdditionalIncludeDirectories)
Use
Pch.h
Pch.h
@@ -102,7 +102,7 @@
Console
detours.lib;syelog.lib;%(AdditionalDependencies)
- $(ProjectDir)Dependencies\Detours\lib\x86
+ ..\Dependencies\Detours\lib\x86
@@ -111,7 +111,7 @@
Disabled
true
true
- $(ProjectDir)Dependencies\Detours\include;%(AdditionalIncludeDirectories)
+ ..\Dependencies;..\Dependencies\Detours\include;%(AdditionalIncludeDirectories)
Use
Pch.h
Pch.h
@@ -119,7 +119,7 @@
Console
detours.lib;syelog.lib;%(AdditionalDependencies)
- $(ProjectDir)Dependencies\Detours\lib\x64
+ ..\Dependencies\Detours\lib\x64
@@ -130,7 +130,7 @@
true
true
true
- $(ProjectDir)Dependencies\Detours\include;%(AdditionalIncludeDirectories)
+ ..\Dependencies\Detours\include;%(AdditionalIncludeDirectories)
Use
Pch.h
Pch.h
@@ -142,7 +142,7 @@
true
true
detours.lib;syelog.lib;%(AdditionalDependencies)
- $(ProjectDir)Dependencies\Detours\lib\x86
+ ..\Dependencies\Detours\lib\x86
@@ -153,7 +153,7 @@
true
true
true
- $(ProjectDir)Dependencies\Detours\include;%(AdditionalIncludeDirectories)
+ ..\Dependencies;..\Dependencies\Detours\include;%(AdditionalIncludeDirectories)
Use
Pch.h
Pch.h
@@ -166,16 +166,11 @@
true
true
detours.lib;syelog.lib;%(AdditionalDependencies)
- $(ProjectDir)Dependencies\Detours\lib\x64
+ ..\Dependencies\Detours\lib\x64
-
-
-
-
-
@@ -186,16 +181,6 @@
Create
-
-
-
-
-
-
-
-
-
-
diff --git a/HibikiSigPatch/HibikiSigPatch.vcxproj.filters b/HibikiSigPatch/HibikiSigPatch.vcxproj.filters
index 8accafe..28a954a 100644
--- a/HibikiSigPatch/HibikiSigPatch.vcxproj.filters
+++ b/HibikiSigPatch/HibikiSigPatch.vcxproj.filters
@@ -1,63 +1,10 @@
-
-
- Dependencies\Detours\include
-
-
- Dependencies\Detours\include
-
-
- Dependencies\Detours\include
-
-
-
-
- {f5697e5c-9474-4c63-a92d-e047fc6692f6}
-
-
- {85ba7ea6-f22a-4697-9548-62c26d3be628}
-
-
- {09dbd0a7-6765-4610-9214-041ab869c477}
-
-
- {93708190-5906-4db7-b13b-dff27f636afb}
-
-
- {18983a62-1a77-4f06-b903-ba42ba572101}
-
-
- {737983fc-3a8e-4a50-b3bc-7bd1e5145ad5}
-
-
-
-
- Dependencies\Detours\lib\x64
-
-
- Dependencies\Detours\lib\x64
-
-
- Dependencies\Detours\lib\x86
-
-
- Dependencies\Detours\lib\x86
-
-
-
-
- Dependencies\Detours\lib\x64
-
-
- Dependencies\Detours\lib\x86
-
-
\ No newline at end of file
diff --git a/HibikiSigPatch/Pch.h b/HibikiSigPatch/Pch.h
index b2987a8..81f8636 100644
--- a/HibikiSigPatch/Pch.h
+++ b/HibikiSigPatch/Pch.h
@@ -2,10 +2,14 @@
#define WIN32_LEAN_AND_MEAN
+// Detours
#include
#include
+// Standard library
#include
#include
-#include "Helpers.h"
\ No newline at end of file
+// Dependencies
+#include
+#include
diff --git a/HibikiSigPatch/README.md b/HibikiSigPatch/README.md
new file mode 100644
index 0000000..b31e325
--- /dev/null
+++ b/HibikiSigPatch/README.md
@@ -0,0 +1,2 @@
+# HibikiSigPatch
+An ASI plugin for Hi-Fi RUSH that implements Narknon and Praydog's [UTOC Signature Bypass](https://www.nexusmods.com/hifirush/mods/1) exe patch.
diff --git a/README.md b/README.md
index 218c164..1bcd701 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-# HibikiSigPatch
-An ASI plugin for Hi-Fi RUSH that implements Narknon and Praydog's [UTOC Signature Bypass](https://www.nexusmods.com/hifirush/mods/1) exe patch.
+# HibikiPatches
+A repository hosting ASI plugins for Hi-Fi RUSH.
-Requires [Ultimate ASI Loader](https://github.com/ThirteenAG/Ultimate-ASI-Loader) renamed to `dsound.dll`.
+All of these require [Ultimate ASI Loader](https://github.com/ThirteenAG/Ultimate-ASI-Loader) renamed to `dsound.dll`.