- Testing currently doesn't work
- VFS Dump is unused. You can use internal function for it
- Demos are only for fun
- Trace Dump & Trace Viewer (unsure, but ok)
You can re-enable them by changing values: enableTests and enableMiscSubprojects in main premake file.
In the future there should be xb command support to overwrite them
Upstream changes made from xenia-project#1339 and xenia-project#2228 back to canary builds. This fixes various emulation crashes caused from different calling conventions on System-V ABI platforms compared to Windows standard.
- Added some fixes introduced by RodoMa92 in PR198
- Lack of AVX2 extension (should be done differently in the future)
- Disable deprecated-volatile warning
- Added missing override in posix EventInfo, ImGui notification class and XContent class
- Removed not used XAudio2.h include in XMP
- Fixed missing switch-case in XObject
- Added fugly template in native_list.h
- Fixed multiple smaller issues
Externally it is still applied via: ApplyTitleUpdate
But internally it is splitted into:
- FindTitleUpdate
- LoadTitleUpdate
- IsPatchSignatureProper
- ApplyTitleUpdate
Added host window with warning about TU incompatibility
* Add ifdef check before the Microsoft-specific movsq in memory.cc
* Added ifdef before Microsoft-specific movsq and replaced with memcpy in other cases. In memory.cc
* Update image_sha_bytes_ from 16 to 20 xex_module.h
The value 16 is less than the expected value 20, causing a buffer overflow during sha1 finalization.
* Update image_sha_bytes_ loop from 16 to 20 iterations xex_module.cc
* Update mapped_memory_posix.cc: Must resize file to map_length.
* Should not map nullptr with MAP_FIXED flag. Update memory_posix.cc.
add typed guest pointer template
add X_KSPINLOCK, rework spinlock functions.
rework irql related code, use irql on pcr instead of on XThread
add guest linked list helper functions
renamed ProcessInfoBlock to X_KPROCESS
assigned names to many kernel structure fields
AVX512 has native unsigned integer comparisons instructions, removing
the need to XOR the most-significant-bit with a constant in memory to
use the signed comparison instructions. These instructions only write to
a k-mask register though and need an additional call to `vpmovm2*` to
turn the mask-register into a vector-mask register.
As of Icelake:
`vpcmpu*` is all L3/T1
`vpmovm2d` is L1/T0.33
`vpmovm2{b,w}` is L3/T0.33
As of Zen4:
`vpcmpu*` is all L3/T0.50
`vpmovm2*` is all L1/T0.25
Other half of #2125. I don't know of any title that utilizes this instruction, but I went ahead and implemented it for completeness.
Verified the implementation with `instr__gen_vsubcuw` from #1348. Can be grabbed with:
```
git checkout origin/gen_tests -- src\xenia\cpu\ppc\testing\*vsubcuw.s
```