Use: https://github.com/HailToDodongo/ipl_gpu
N64 IPL Hash Brute-forcer using Vulkan + Compute Shaders.
Note:
This assumes theCIC 6105/7105with the checksum8618 A45B C2D3.
You should set the seed to9191when using this tool.
Once compiled run:
./ipl_gpu nonMatchingROM.z64 9191If a collision is found, the program will exit and dump the patched ROM to match.z64.
Run make all to build the project incl. shaders.
Building shaders requires glslc from the Vulkan SDK.
A compiled .spv shader is checked in too.
On the C++ side, this project requires: VUH.
If you run into trouble compiling it (i did with clang), try the following patch:
diff --git a/src/device.cpp b/src/device.cpp
index c767f2e..e78f162 100644
--- a/src/device.cpp
+++ b/src/device.cpp
@@ -218,7 +218,7 @@ namespace vuh {
{
auto pipelineCI = vk::ComputePipelineCreateInfo(flags
, shader_stage_info, pipe_layout);
- return createComputePipeline(pipe_cache, pipelineCI, nullptr);
+ return createComputePipeline(pipe_cache, pipelineCI, nullptr).value;
}
diff --git a/src/include/vuh/delayed.hpp b/src/include/vuh/delayed.hpp
index 88141ba..48d5f5f 100644
--- a/src/include/vuh/delayed.hpp
+++ b/src/include/vuh/delayed.hpp
@@ -5,6 +5,7 @@
#include <vuh/resource.hpp>
#include <cassert>
+#include <memory>
namespace vuh {
namespace detail{
diff --git a/src/include/vuh/utils.h b/src/include/vuh/utils.h
index 2c2c089..16f1396 100644
--- a/src/include/vuh/utils.h
+++ b/src/include/vuh/utils.h
@@ -2,6 +2,7 @@
#include <stdint.h>
#include <vector>
+#include <cstdint>
namespace vuh {This project is licensed under the MIT License - see LICENSE
© 2023 - Max Bebök (HailToDodongo)