Commit Graph

138 Commits

Author SHA1 Message Date
emoose 733fe04426 [Debug] Add PoC GDBStub server, fix breakpoints
Fixed issue in processor.cc which prevented resuming from a breakpoint

BPs would set 2 bytes of the x64 JIT opcode to an invalid opcode & then catch
the exception from it - BP handler then restored the original opcode, but
then advanced RIP by 2 bytes into that opcode for some reason?

It would also suspend the thread just prior to this RIP change,
causing some strange effects... moving suspend after it (and removing the
offset) appears to work fine, though I didn't test the imgui debugger yet

To use GDBStub run xenia with "--debug --gdbport 12345" args

Tested with IDA 9 + idaxex loader, BPs can be set and resumed fine, suspend
& resume also works - memory/registers are viewable but can't be changed yet

The socket code here is very basic and only allows a single connection for
the session, if you disconnect you'll need to restart emulator
2024-10-24 00:00:33 +01:00
Gliniak 60b31af811 [3PP] Replaced cpptoml with tomlplusplus
Also adjusted code that used cpptoml to be used with toml++ and some more changes
2024-09-22 20:41:52 +02:00
Gliniak 86bd62125d [Kernel] Implemented Game Info Database
This aggregates XDBF and XLAST into one entity.

Replaced UserData::Key into more versatile AttributeKey for future usage in properties
2024-09-20 19:29:37 +02:00
Romain Tisserand 2cd2d1d620 [VFS] Add support for loading ZArchive files 2023-09-03 21:16:34 +02:00
chss95cs@gmail.com 7e58a3b320 Fix compiler errors i introduced under clang-cl
remove xe_kernel_export_shim_fn field of Export function_data, trampoline is now the only way exports get invoked
Remove kernelstate argument from string functions in order to conform to the trampoline signature (the argument was unused anyway)
Constant-evaluated initialization of ppc_opcode_disasm_table, removal of unused std::vector fields
Constant-evaluated initialization of export tables
name field on export is just a const char* now, only immutable static strings are ever passed to it
Remove unused callcount field of export.
PM4 compare op function extracted
Globally apply /Oy, /GS-, /Gw on msvc windows
Remove imgui testwindow code call, it took up like 300 kb
2022-09-29 07:04:17 -07:00
Gliniak 6e1e62378f Merge branch 'master' of https://github.com/xenia-project/xenia into canary_experimental 2022-07-17 21:27:52 +02:00
Triang3l 037310f8dc [Android] Unified xenia-app with windowed apps and build prerequisites 2022-07-11 21:45:57 +03:00
Gliniak 6e753c6399 Merge branch 'master' of https://github.com/xenia-project/xenia into canary_experimental 2022-07-04 08:11:04 +02:00
Gliniak 5247220e73 Merge remote-tracking branch 'GliniakRepo/patchingSystem' into canary_pr 2022-05-19 10:01:33 +02:00
Triang3l b9256fcdbd Merge branch 'master' into vulkan 2022-05-10 15:57:50 +03:00
Triang3l 5875f6ab31 [UI] Windows: Disable rounded corners 2022-05-05 21:46:20 +03:00
Gliniak 31eb639ade Added Premake Files For PatchingSystem 2022-04-26 13:26:49 +02:00
Triang3l ce68a09b0c Merge branch 'master' into vulkan 2021-10-31 16:49:14 +03:00
Triang3l 7e6cf349e2 [Build] Use first-party premake-androidndk (#1878) 2021-10-30 00:01:27 +03:00
Conrad Kramer 2962a266b5 Fix xenia-core build on macOS 2021-10-25 00:48:53 +03:00
Triang3l ecccd02f8a Merge branch 'master' into vulkan 2021-09-12 14:10:36 +03:00
Triang3l 6ce5330f5f [UI] Loop thread to main thread WindowedAppContext 2021-08-28 19:38:24 +03:00
Triang3l 692e329e9c [Vulkan] Load Vulkan manually for more lifetime and extension control 2021-07-11 22:56:01 +03:00
Triang3l 6cd9d42fd0 Merge branch 'master' into vulkan 2021-06-08 12:15:34 +03:00
Joel Linn 8f44a14131 [Linux] Helper methods for pkg-config
- Fixes linking on GCC by putting libs in link group
2021-06-02 22:28:43 -05:00
Joel Linn 5c97a0ad06 Don't treat warnings as errors for 3rd party projs 2021-05-03 22:50:44 -05:00
Joel Linn 47e36e6aee Exchange libav with ffmpeg submodule. 2021-05-01 12:41:02 -05:00
sephiroth99 e00824133c [Build] Linux: Remove linking to libc++
The stdlib is explictly set to stdlibc++, so linking also to libc++ is
useless except for adding unneeded dependencies.

Signed-off-by: sephiroth99 <sephiroth99@gmail.com>
2021-01-31 23:22:59 -06:00
emoose 2d9326e02d [Kernel] Implement XeCryptBnQwNeRsaPubCrypt via BCrypt (win32 only) 2021-01-03 14:38:01 -06:00
Triang3l a41898d533 Merge branch 'master' into vulkan 2020-11-22 16:37:56 +03:00
Triang3l 4042ea50e4 [Build] Android system shared libraries 2020-11-22 16:37:31 +03:00
Triang3l 90dcc28281 Merge branch 'master' into vulkan 2020-11-21 23:55:27 +03:00
Triang3l bcdca56e32 [Build] Mark RTTI as enabled for Android 2020-11-21 23:52:45 +03:00
Triang3l 03d0988ea4 Merge branch 'master' into vulkan 2020-11-21 23:41:02 +03:00
Triang3l 233daa018d [Build] Enable exceptions and Clang STL on Android 2020-11-21 23:40:34 +03:00
Triang3l cb702b4db2 Merge branch 'master' into vulkan 2020-11-21 17:17:14 +03:00
Triang3l 2f247e0f9e [Build] Make premake-androidmk generate something 2020-11-21 17:14:40 +03:00
Triang3l e99e8c7a7d Merge branch 'master' into vulkan 2020-11-19 21:31:44 +03:00
Triang3l 3ff5965133 [Build] Disable potentially dangerous floating point optimizations 2020-11-19 21:28:02 +03:00
Triang3l 8febf02a39 Merge branch 'master' into vulkan 2020-11-15 14:06:15 +03:00
Joel Linn 8b1ebe1130 Premake: Reorder links to speed up building.
- Re-enable LTO on clang.
- Set AR on travis so it builds with LTO.
2020-11-14 13:30:06 -06:00
Joel Linn 9dea6b3f62 Add premake cmake generator.
`./build/CMakeLists.txt` is generated by `./xb.bat premake --devenv=cmake` and enables use of other IDEs like `CLion` for example.
2020-11-14 13:30:06 -06:00
Joel Linn 2a076c924f Refactor premake scripts. 2020-11-14 13:30:06 -06:00
Triang3l 4862075976 [Vulkan] Cleanup and update SPIR-V dependencies 2020-10-08 23:05:30 +03:00
Triang3l 203bf64d88 [Vulkan] Context, remove Volk 2020-09-13 17:51:00 +03:00
Triang3l fed33be62b [D3D12] Non-zeroed heaps on 2004 2020-09-06 22:08:36 +03:00
Triang3l 38e0cc4941 [D3D12] Non-zeroed heaps on 2004 2020-09-06 00:52:30 +03:00
Triang3l 7b93670dbd [Vulkan] Remove old Vulkan code, change shaders directory, create empty Vulkan backend 2020-08-31 21:44:29 +03:00
Triang3l dffdf92e39 [Vulkan] Remove stillborn vk project 2020-08-22 23:31:52 +03:00
Joel Linn 6267c73c4c [SDL] Add global helper to setup the library.
Call to SDLHelper::Prepare() is needed before first SDL_InitSubSystem().
- Sets hints (SDL configuration vars).
- Configures logging.
2020-04-23 15:44:58 -05:00
Joel Linn 804384c19c [SDL2] On Win, build and link statically.
Keep using system lib dynamically on Unix.
2020-04-08 21:55:56 -05:00
gibbed bbb3445b53 Mark C4839/C4840 as severe warnings.
Mark C4839 and C4840 as severe warnings:

- C4839: non-standard use of class 'type' as an argument to a variadic function
- C4840: non-portable use of class 'type' as an argument to a variadic function
2020-04-07 16:09:41 -05:00
gibbed 5bf0b34445 C++17ification.
C++17ification!

- Filesystem interaction now uses std::filesystem::path.
- Usage of const char*, std::string have been changed to
  std::string_view where appropriate.
- Usage of printf-style functions changed to use fmt.
2020-04-07 16:09:41 -05:00
Joel Linn 8efa35d996 Remove unused yaml-cpp. 2020-02-20 06:44:34 -06:00
Joel Linn 160f218210 [APU/Linux] Implement cross platform audio using SDL2 library. 2020-02-10 14:01:47 -06:00