65 Commits

Author SHA1 Message Date
bookmist 78d5574649 io: replace better-enums lib to boost::describe 2026-05-17 23:52:17 +03:00
KorewaWatchful 91f533f86f emu: complete gui overhaul 2026-05-13 17:58:56 -04:00
Francisco José García García 74eec2333d taiHEN: Implement HLE hooks, injections and module utils
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.
2026-05-09 21:04:18 +02:00
Macdu b4c1335422 build: Add Android version.
- PS button support added to the overlay controller, with improved default button positioning.

Co-authored-by: Zangetsu38 <dante38@free.fr>
2025-12-30 18:09:43 +01:00
Zangetsu38 3df27923b4 external: Update few submodule and remove unicorn.
- Remove all Unicorn references from language files and project as it’s deprecated and unused.
- Update SPIRV-Cross to vulkan-sdk-1.4.321.
- Update YAML to latest master.
- Fix CMake minimum version requirement errors by ensuring minimum version 3.5.
2025-09-25 22:48:44 +02:00
bookmist cf3d627327 vita3k: Migration from SDL2 to SDL3 2025-07-14 19:04:22 +03:00
scribam f95cfc4600 external: Update submodules (#3511)
* external: Update VulkanMemoryAllocator-Hpp to version v3.2.1

* external: Update capstone to version 5.0.6

* external: Update cubeb

* external: Update fmt to version 11.1.4

* external: Update googletest to version v1.16.0

* external: Update imgui to version v1.91.3

* external: Update imgui_club

* external: Update libfat16

* external: Update nativefiledialog-extended to version v1.2.1

* external: Update pugixml to version v1.15

* external: Update sdl to version 2.30.11

* external: Update spdlog to version v1.15.2

* external: Update stb

* external: Update vita-toolchain

* external: Update xxHash to version v0.8.3
2025-04-01 18:34:02 +02:00
Macdu fe02f4c0f9 external, packages: Use OpenSSL for crypto operations 2024-01-17 20:03:58 +01:00
Macdu bef1567a61 renderer/vulkan: Implement async pipeline compilation (#3145) 2023-12-25 23:56:48 +01:00
Macdu 5825c463ca external: Update submodule (#2331)
- external: Link LibAtrac9 statically on MSVC
2023-02-15 02:37:24 +01:00
Macdu 10c08288fa audio: Add Cubeb backend 2022-12-17 17:02:06 +01:00
CreepNT ff685b88f1 Refactor SELF loader to remove dependency on ELFIO 2022-09-20 20:32:38 +02:00
hobyst 3b74ceb5d9 host, gui: Abstract file browser window calls
This commit creates the first library of the host OS abstraction
layer to access native OS dialogs using a more flexible C++ API
and implements file browser dialogs using nativefiledialog-extended
so that XDG desktop portals can be used to spawn these dialogs
in Linux.
2022-08-31 19:48:44 -03:00
Macdu b6e1fe24aa renderer: Add Vulkan renderer 2022-08-26 16:52:25 +02:00
Macdu aa65dc2391 external, ngs: Remove playback_rate and soundtouch 2022-05-24 16:59:22 +02:00
hobyst 014e1e9f54 Build: Remove Microprofile from project 2022-05-07 17:52:12 +02:00
hobyst fc2e088798 Build: Add Tracy profiler v0.8.1 to build pipeline 2022-05-07 17:52:12 +02:00
hobyst 34606622a2 Build: Add Soundtouch 2.3.1 audio manipulation library 2022-02-11 18:06:53 +01:00
Larry 8c933e1432 codec: Use libatrac9 library for atrac9 decoding
We have more control and error codes, also avoid some shortcoming of
ffmpeg port
2021-12-01 16:54:17 +01:00
scribam ecf91b429a dynarmic: Use arm7 architecture 2021-05-04 03:22:57 +02:00
sunho 48b344e1b6 external: Update submodules 2021-05-03 14:51:13 +02:00
scribam 5e3a6eb982 Update submodules + minor changes (#1137)
* cmake: Add NOMINMAX globally to avoid Windows compilation issues with std::min/std::max

* main/net: add missing include files

* rtc: Remove convert_filetime/convert_timespec functions as they have been replaced with _wstat/stat

* external: Update better-enums to tag "0.11.3"

* external: Update CLI11 to tag "v1.9.1"

* external: Update elfio to tag "Release_3.8"

* external: Update glad to tag "0.1.34"

* external: Update googletest to tag "release-1.10.0"

* external: Update imgui to tag "v1.80"

* external: Update imgui_club

* external: Update miniz to tag "2.1.0"

* external: Update pugixml to tag "v1.11.4"

* external: Update spdlog to tag "v1.8.2"

* external: Update stb

* external: Update yaml-cpp to tag "yaml-cpp-0.6.3"

* external: Switch to vitasdk/vita-toolchain

* external: Refactor xxHash integration
2021-02-09 21:49:54 +01:00
EXtremeExploit 7a2b6982df gxm: Optimize hashing and resolve_export function 2020-11-16 05:40:32 +09:00
IllusionMan1212 3862cbcddc external/app: remove discord-rpc in favor of discord gamesdk 2020-09-19 15:52:01 +03:00
EXtremeExploit 407ea1296e archive/pkg install: Add unicode path support
Co-authored-by: Zangetsu38 <Dante38@free.fr>
2020-09-08 16:00:26 +02:00
EXtremeExploit 5d0939b8cb gui/theme: Add unicode path support for background/start background. 2020-09-05 20:30:14 +02:00
sunho 30eae2584f external: update unicorn 2020-08-14 13:49:39 +02:00
scribam 74bdac4f33 external: Add new unicorn submodule 2020-06-07 09:07:53 +02:00
scribam ce546cb5f4 external: Remove old unicorn submodule 2020-06-07 09:07:53 +02:00
scribam b14207b56d shaders-db: Remove submodule 2020-05-21 23:36:08 +03:00
scribam 2a8abd6c1d external: Update SPIRV-Cross to version 2020-05-19 2020-05-20 03:23:21 +03:00
KorewaWatchful 3c6733bed7 vita3k: add pkg, nonpdrm support (#683) 2020-05-02 01:33:21 -04:00
1whatleytay 34a02553c4 vita3k: remove vita-headers (#649) 2020-02-06 09:44:49 -05:00
Taylor Whatley 6463b34cc1 modules: implement avcdec and yuv format 2019-12-22 00:15:36 -05:00
Nicolas Jallamion 6ef0abe9a9 module/SceCommonDialog: stub sceSaveDataDialogGetStatus. (#611)
format: run clang format.
small refactor firmware install dialog
small refactor for game install dialog.
button on setting dialog for download last firmware if it is missing.
fix popup failed installation with correct typo
stub savedatadialogstatus
2019-11-10 15:09:32 -05:00
IllusionMan1212 f5784fda01 external/host: added fat16 submodule and make-fself 2019-11-02 00:47:12 +02:00
Francisco José García García 8805456a0e external: Add SDL as submodule
* Update SDL for Mac OS Catalina

* Update SDL for Windows

* Remove sdl from main repo

* Add sdl as external repo
2019-11-01 16:29:27 +01:00
IllusionMan1212 2c3c78b772 external: add nativefiledialog submodule 2019-10-27 21:43:32 +01:00
1whatleytay 33354eff45 renderer/vulkan: add allocator and load font
renderer/vulkan: fix validation errors

renderer/vulkan: fix wrong queue selection
2019-09-06 14:54:54 -04:00
Nicolas Jallamion 06299de242 emulator: Refactor file structure (#557)
Also:
- external: update some submodules.
2019-08-28 16:52:07 +03:00
totlmstr 97183ffc1b io: Refactoring with classes (#505) 2019-08-11 06:22:09 +07:00
pent0 f4b10dee2f np: Implement basic and trophy (#524)
* np/trophy: Add TRP parser

* np/profile: Add profile manager

* np: Make init/deinit

* modules/SceNpManager: Implement Init, Termination, and GetID

* np: Use second node for parsing profile

* util: Add byte swap

* np/trp: Use callbacks for read/write

* np/trophy: Handling context creation

* modules/SceNpTrophy: Implement Init/Term/ContextCreation

* np/trophy: Make trophy context reusable in vector

* modules/SceNpTrophy: Implement handle functions and destroy context

* np/trophy/trp_parser: Add search file function

* modules/SceNpTrophy: Implement get game and trophy icons

* external: Add pugixml

* np/trophy/trp_loader: Fix name comparision and get entry data

* np/trophy/context: Implement load/save trophy state

* modules/SceNpTrophy: Implement GetTrophyUnlockState

* np/trophy: Add trophy description read and unlock

* modules/SceNpTrophy: Implement UnlockTrophy

No saving yet, for debugging

* np/trophy/context: Save when unlock trophy and accept custom language

* gui: Add trophy unlock window

* emulator: Draw trophies unlock window

* gui/trophy_unlock: Auto resize trophy dialog by height

* np: Remove multi-profile

* format: Run clang-format

* gui/trophy: Make GUI size easier to be configure

* i

* will

* adjust change 1

* make

* a jojo reference

* 120963

* lvl2

* gggggggggggggg

* nice

* good now

* name trophy in unlocked

* np/context: Store a reference of IO instead of pointer

* external: Add newline

* change search file return to int32_t

* Update trp_parser.h

* Update init.cpp
2019-07-29 23:42:52 +07:00
pent0 e5d29b404d external: Add Vita3K's SPIRV-Cross variant 2019-07-23 20:48:16 +07:00
pent0 19103d43d2 external: Remove upsteam SPIRV-CROSS 2019-07-23 20:43:48 +07:00
scribam 8a0f726417 external: Replace glbinding by glad (#527)
* external: Replace glbinding by glad

* external: Use the debug version of glad and restore callbacks
2019-07-02 20:20:52 +07:00
Hesham Abourgheba d64067f249 emulator/app: Discord Rich Presence (#519)
* external: added discord-rpc files

* emulator: implemented discord rich presence

* gui/config: gui option to toggle rich presence

* requested changes

* forgot about these

* style changes
2019-06-18 00:25:37 +03:00
Zangetsu38 de7f1dcff3 build/windows: Ask user for vs17/vs19 version. 2019-05-20 12:33:21 +03:00
Lucas ab533cb825 submodules: Use unicorn as submodule in Unix (#478) 2019-05-19 21:35:46 +07:00
Taylor Whatley 3f33680812 gui: Background image option in Game Select screen (#460)
* gui: add background images

* gui: add background alpha channel

* gui: replace background texture with GLObject
2019-04-25 20:33:47 +03:00
pent0 06d0474021 Implement vargs and printf functions (#322)
* module: Implement vargs and printf functions

- Source code of printf is here: https://github.com/mpaland/printf, modify for vita3k usage

* [module] Pass layout state as argument rather than tuple

* module: Get rid of state array and don't continue layout if meet varargs

* module/test: Readjust test as requests and add test for vargs

* module: Remove unneccesary thin function is_arg_vargs

* module: Add newline
2019-03-13 14:44:56 +07:00