mirror of
https://github.com/Vita3K/Vita3K.git
synced 2026-07-11 01:34:23 +02:00
74eec2333d
Implement the core taiHEN plugin framework as HLE in SceLibTaihen: Hooks: - taiHookFunctionExportForUser/ForKernel: inline hooks via substitute's transform-dis for ARM/Thumb instruction relocation, with fallback to import stub patching when inline hooking fails (FUNC_TOO_SHORT) - taiHookFunctionImportForUser/ForKernel: import stub patching (12-byte ARM stubs: movw/movt/bx) - taiHookFunctionOffsetForUser/ForKernel: hook at module segment+offset - taiHookRelease/ForKernel: restore original bytes/stubs, free trampoline - Hook chaining with TAI_CONTINUE support via TaiHookUser structs Injections: - taiInjectAbs/ForKernel: arbitrary memory patching with save/restore - taiInjectDataForUser/ForKernel: inject data at module segment+offset - taiInjectRelease/ForKernel: restore original bytes Module utils: - taiGetModuleInfo/ForKernel: query module info by name - module_get_offset: resolve segment+offset to address - module_get_export_func: resolve NID to export address Plugin loading: - taiLoadKernelModule, taiLoadStartKernelModuleForUser, taiLoadStartModuleForPidForUser: load plugin .skprx/.suprx files - Config parsing: ux0:tai/config.txt format (*KERNEL, *TITLEID sections) External dependency: - Add Vita3K/substitute as git submodule (forked from comex/substitute, LGPLv2.1+). Only the ARM transform-dis component is used for instruction relocation in inline hooks. Tested with 10 integration tests covering all implemented APIs.
96 lines
3.2 KiB
Plaintext
96 lines
3.2 KiB
Plaintext
[submodule "external/better-enums"]
|
|
path = external/better-enums
|
|
url = https://github.com/aantron/better-enums
|
|
[submodule "external/boost"]
|
|
path = external/boost
|
|
url = https://github.com/Vita3K/ext-boost
|
|
[submodule "external/capstone"]
|
|
path = external/capstone
|
|
url = https://github.com/aquynh/capstone.git
|
|
[submodule "external/dirent"]
|
|
path = external/dirent
|
|
url = https://github.com/tronkko/dirent
|
|
branch = v1.23
|
|
[submodule "external/dlmalloc"]
|
|
path = external/dlmalloc
|
|
url = https://github.com/Vita3K/dlmalloc
|
|
[submodule "external/ffmpeg"]
|
|
path = external/ffmpeg
|
|
url = https://github.com/Vita3K/ffmpeg-core.git
|
|
[submodule "external/glslang"]
|
|
path = external/glslang
|
|
url = https://github.com/KhronosGroup/glslang
|
|
[submodule "external/googletest"]
|
|
path = external/googletest
|
|
url = https://github.com/google/googletest
|
|
[submodule "external/imgui"]
|
|
path = external/imgui
|
|
url = https://github.com/ocornut/imgui
|
|
[submodule "external/imgui_club"]
|
|
path = external/imgui_club
|
|
url = https://github.com/ocornut/imgui_club
|
|
[submodule "external/libfat16"]
|
|
path = external/libfat16
|
|
url = https://github.com/Vita3K/libfat16
|
|
[submodule "external/printf"]
|
|
path = external/printf
|
|
url = https://github.com/Vita3K/printf
|
|
[submodule "external/pugixml"]
|
|
path = external/pugixml
|
|
url = https://github.com/zeux/pugixml
|
|
[submodule "external/sdl"]
|
|
path = external/sdl
|
|
url = https://github.com/libsdl-org/SDL.git
|
|
[submodule "external/spdlog"]
|
|
path = external/spdlog
|
|
url = https://github.com/gabime/spdlog
|
|
branch = v1.x
|
|
[submodule "external/SPIRV-Cross"]
|
|
path = external/SPIRV-Cross
|
|
url = https://github.com/KhronosGroup/SPIRV-Cross.git
|
|
[submodule "external/stb"]
|
|
path = external/stb
|
|
url = https://github.com/nothings/stb
|
|
[submodule "external/vita-toolchain"]
|
|
path = external/vita-toolchain
|
|
url = https://github.com/vitasdk/vita-toolchain.git
|
|
[submodule "external/VulkanMemoryAllocator-Hpp"]
|
|
path = external/VulkanMemoryAllocator-Hpp
|
|
url = https://github.com/YaaZ/VulkanMemoryAllocator-Hpp
|
|
[submodule "external/yaml-cpp"]
|
|
path = external/yaml-cpp
|
|
url = https://github.com/jbeder/yaml-cpp
|
|
[submodule "external/psvpfstools"]
|
|
path = external/psvpfstools
|
|
url = https://github.com/Vita3K/psvpfstools.git
|
|
[submodule "external/xxHash"]
|
|
path = external/xxHash
|
|
url = https://github.com/Cyan4973/xxHash
|
|
[submodule "external/dynarmic"]
|
|
path = external/dynarmic
|
|
url = https://github.com/Vita3K/dynarmic.git
|
|
[submodule "external/fmt"]
|
|
path = external/fmt
|
|
url = https://github.com/fmtlib/fmt.git
|
|
[submodule "external/LibAtrac9"]
|
|
path = external/LibAtrac9
|
|
url = https://github.com/Vita3K/LibAtrac9.git
|
|
[submodule "external/tracy"]
|
|
path = external/tracy
|
|
url = https://github.com/wolfpld/tracy.git
|
|
[submodule "external/nativefiledialog-extended"]
|
|
path = external/nativefiledialog-extended
|
|
url = https://github.com/btzy/nativefiledialog-extended.git
|
|
[submodule "external/cubeb"]
|
|
path = external/cubeb
|
|
url = https://github.com/mozilla/cubeb.git
|
|
[submodule "external/concurrentqueue"]
|
|
path = external/concurrentqueue
|
|
url = https://github.com/cameron314/concurrentqueue.git
|
|
[submodule "external/libadrenotools"]
|
|
path = external/libadrenotools
|
|
url = https://github.com/bylaws/libadrenotools
|
|
[submodule "external/substitute"]
|
|
path = external/substitute
|
|
url = https://github.com/Vita3K/substitute.git
|