Exzap
c5ef9a5a98
PPCRec: Streamline instructions + unify code for CR updates
2025-04-26 00:22:36 +02:00
Exzap
a51a8bb7d5
PPCRec: New compare and cond jump instrs, update RA
...
Storing the condition result in a register instead of imitating PPC CR lets us simplify the backend a lot. Only implemented as PoC for BDZ/BDNZ so far.
2025-04-26 00:22:36 +02:00
Exzap
d0590ef1f5
PPCRec: New x86-64 code emitter
2025-04-26 00:22:36 +02:00
Exzap
53436f1c79
PPCRec: Rename register constants to avoid name collision
2025-04-26 00:22:36 +02:00
Exzap
d420622da7
PPCRec: Make register pool for RA configurable
2025-04-26 00:22:35 +02:00
Exzap
c4fb7b74f8
PPCRec: Make LSWI/STWSI more generic + GPR temporaries storage
2025-04-26 00:22:35 +02:00
Exzap
d724dded8e
PPCRec: Clean up unused flags
2025-04-26 00:22:35 +02:00
Exzap
0f1d7532a1
PPCRec: Remove now unused PPC_ENTER and jumpMarkAddress
2025-04-26 00:22:35 +02:00
Exzap
6cdcef880b
PPCRec: Fix single segment loop not being detected
...
Also removed associatedPPCAddress field from IMLInstruction as it's no longer used
2025-04-26 00:22:35 +02:00
Exzap
bb6b18d78f
PPCRec: Unify BCCTR and BCLR code
...
Instead of having fixed macros for BCCTR/BCCTRL/BCLR/BCLRL we now have only one single macro instruction that takes the jump destination as a register parameter.
This also allows us to reuse an already loaded LR register (by something like MTLR) instead of loading it again from memory.
As a necessary requirement for this: The register allocator now has support for read operations in suffix instructions
2025-04-26 00:22:35 +02:00
Exzap
f2a07ade4c
PPCRec: Fix merge conflicts
2025-04-26 00:22:35 +02:00
Exzap
e1e710e3f5
PPCRec: Reworked IML builder to work with basic-blocks
...
Intermediate commit while I'm still fixing things but I didn't want to pile on too many changes in a single commit.
New:
Reworked PPC->IML converter to first create a graph of basic blocks and then turn those into IML segment(s). This was mainly done to decouple IML design from having PPC specific knowledge like branch target addresses. The previous design also didn't allow to preserve cycle counting properly in all cases since it was based on IML instruction counting.
The new solution supports functions with non-continuous body. A pretty common example for this is when functions end with a trailing B instruction to some other place.
Current limitations:
- BL inlining not implemented
- MFTB not implemented
- BCCTR and BCLR are only partially implemented
Undo vcpkg change
2025-04-26 00:22:35 +02:00
Exzap
0622631868
PPCRec: Move X64 files into subdirectory and rename
2025-04-26 00:22:35 +02:00
Exzap
da08eda506
PPCRec: Emit x86 movd for non-AVX + more restructuring
2025-04-26 00:22:35 +02:00
Exzap
411a83799c
PPCRec: Move IML register allocator
2025-04-26 00:22:35 +02:00
Exzap
231b5c5dc3
PPCRec: Move IML optimizer file
2025-04-26 00:22:35 +02:00
Exzap
14d82ae4a5
PPCRec: Move analyzer file + move some funcs to IMLInstruction
2025-04-26 00:22:35 +02:00
Exzap
f95180d0fc
PPCRec: Move debug printing + smaller clean up
2025-04-26 00:22:35 +02:00
Exzap
faf6c17438
PPCRec: Rename IML structs for better clarity
2025-04-26 00:22:34 +02:00
Exzap
4abd5127c0
PPCRec: Move Segment and Instruction struct into separate files
2025-04-26 00:22:34 +02:00
Exzap
ce5d010611
PPCRec: Use vector for instruction list
2025-04-26 00:22:34 +02:00
Exzap
d42ea6e5a8
PPCRec: Use vector for segment list + deduplicate RA file
2025-04-26 00:22:34 +02:00
Exzap
bbba516f08
Latte: Fix race condition on close during game boot
2025-04-26 00:22:34 +02:00
Exzap
4972381edc
Vulkan: Fix imgui validation error when sRGB framebuffer is used
2025-04-15 22:46:19 +02:00
Exzap
cd6eb1097b
Vulkan: Fix a validation error + minor code refactor
...
We were using VK_EXT_DEPTH_CLIP_ENABLE but didn't actually request it.
Also fixed an assert when closing Cemu caused by incorrectly tracking the number of allocated pipelines
2025-04-15 21:10:11 +02:00
Crementif
186e92221a
debugger: allow printing registers using logging breakpoint placeholders ( #1510 )
...
Build check / build (push) Has been cancelled
Generate translation template / generate-pot (push) Has been cancelled
This allows a savy user, developer or modder to change the comment field of a logging breakpoint to include placeholders such as {r3} or {f3} to log the register values whenever that code is hit.
2025-03-07 23:40:17 +01:00
goeiecool9999
31d2db6f78
OpenGL: Add explicit/matching qualifiers in output shader interface
...
Build check / build (push) Has been cancelled
Generate translation template / generate-pot (push) Has been cancelled
fixes issues with old intel drivers
2025-03-05 22:23:06 +01:00
Exzap
ec2d7c086a
coreinit: Clean up time functions
Build check / build (push) Has been cancelled
Generate translation template / generate-pot (push) Has been cancelled
2025-01-30 03:49:17 +01:00
Exzap
c714e8cb6b
coreinit: Time to tick conversion is unsigned
...
The result is treated as signed in most cases, but the calculation uses unsigned arithmetic.
As a concrete example where this matters, DS VC passes -1 (2^64-1) to OSWaitEventWithTimeout which internally causes an overflow. But only with unsigned arithmetic this will result in a large positive number that behaves like the intended infinite timeout. With signed arithmetic the result is negative and the events will timeout immediately.
2025-01-30 03:32:24 +01:00
goeiecool9999
e834515f43
Vulkan: Improve post-shutdown cleanup and minor improvements ( #1401 )
Build check / build (push) Has been cancelled
Generate translation template / generate-pot (push) Has been cancelled
2025-01-23 21:20:03 +01:00
goeiecool9999
372c314f06
fix building with fmt11 and GCC
2025-01-23 21:03:11 +01:00
Exzap
5bd253a1f8
Revert "Fix building against fmt 11.1.0 ( #1474 )"
...
Build check / build (push) Waiting to run
Generate translation template / generate-pot (push) Waiting to run
Reverting commit 4ac65159ef because game profile enums use the stringifying formatters from config.h and are not supposed to store raw integers
2025-01-23 17:33:06 +01:00
Alexandre Bouvier
4ac65159ef
Fix building against fmt 11.1.0 ( #1474 )
Build check / build (push) Has been cancelled
Generate translation template / generate-pot (push) Has been cancelled
2025-01-16 12:54:29 +01:00
Joshua de Reeper
eab1b24320
nsyshid: Initialise interface index as 0 ( #1473 )
Build check / build (push) Has been cancelled
Generate translation template / generate-pot (push) Has been cancelled
2025-01-12 20:20:48 +01:00
Joshua de Reeper
0a59085021
nsyshid: Make Libusb the Windows backend ( #1471 )
2025-01-12 14:33:24 +01:00
Exzap
8dd809d725
Latte: Implement better index caching ( #1443 )
Build check / build (push) Waiting to run
Generate translation template / generate-pot (push) Waiting to run
2025-01-12 12:39:02 +01:00
rcaridade145
1923b7a7c4
Vulkan: Added R5_G6_B5_UNORM to supported readback formats ( #1430 )
2025-01-12 12:37:56 +01:00
Crementif
92021db230
Use one CPU emulation thread for --force-interpreter ( #1467 )
Build check / build (push) Has been cancelled
Generate translation template / generate-pot (push) Has been cancelled
2025-01-05 04:08:13 +01:00
Crementif
4b792aa4d2
debug: Fix shader dumping ( #1466 )
Build check / build (push) Waiting to run
Generate translation template / generate-pot (push) Waiting to run
2025-01-04 20:38:42 +01:00
goeiecool9999
3738ccd2e6
Play bootSound.btsnd while shaders/pipelines are compiling ( #1047 )
Build check / build (push) Waiting to run
Generate translation template / generate-pot (push) Waiting to run
2024-12-18 15:55:23 +01:00
Exzap
b53b223ba9
Vulkan: Use cache for sampler objects
Build check / build (push) Has been cancelled
Generate translation template / generate-pot (push) Has been cancelled
2024-12-16 13:05:22 +01:00
Exzap
6aaad1eb83
Debugger: Added right click context menu to disasm view + small fixes
2024-12-16 13:05:22 +01:00
Exzap
356cf0e5e0
Multiple smaller HLE improvements
2024-12-07 10:26:17 +01:00
Exzap
e2d0871ca3
Camera: Set error code in CAMInit
...
Fixes Hunter's Trophy 2 crashing on boot
2024-12-07 10:26:17 +01:00
Jeremy Kescher
80a6057512
build: Fix linker failure with glslang 15.0.0 ( #1436 )
Build check / build (push) Waiting to run
Generate translation template / generate-pot (push) Waiting to run
2024-12-02 01:01:22 +01:00
capitalistspz
90eb2e01f4
nsyshid/dimensions: add missing return ( #1425 )
Build check / build (push) Has been cancelled
Generate translation template / generate-pot (push) Has been cancelled
2024-11-22 13:43:12 +01:00
Exzap
409f12b13a
coreinit: Fix calculation of thread total awake time
Build check / build (push) Waiting to run
Generate translation template / generate-pot (push) Waiting to run
2024-11-21 20:34:24 +01:00
Exzap
c3e29fb619
Latte: Add support for shader instructions MIN_UINT and MAX_UINT
...
Seen in the eShop version of Fatal Frame
Also made some warnings less spammy since this game seems to trigger it a lot
2024-11-21 20:34:24 +01:00
Exzap
2065ac5f63
GfxPack: Better logging messages for diagnosing problems in rules.txt
2024-11-21 20:34:24 +01:00
goeiecool9999
269d5b9aab
Vulkan: Make scaling shaders compatible + fixes ( #1392 )
Build check / build (push) Has been cancelled
Generate translation template / generate-pot (push) Has been cancelled
2024-11-16 10:02:43 +01:00