Commit Graph

711 Commits

Author SHA1 Message Date
Exzap 8d972d2500 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
2024-08-30 01:28:05 +02:00
Exzap a5f6faac8a PPCRec: Fix merge conflicts 2024-08-30 01:28:05 +02:00
Exzap ce8dc5526c 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
2024-08-30 01:28:05 +02:00
Exzap db60ea6535 PPCRec: Move X64 files into subdirectory and rename 2024-08-30 00:47:55 +02:00
Exzap 27f70d5f34 PPCRec: Emit x86 movd for non-AVX + more restructuring 2024-08-30 00:47:54 +02:00
Exzap d1fe1a905f PPCRec: Move IML register allocator 2024-08-30 00:47:54 +02:00
Exzap e53c6ad2e9 PPCRec: Move IML optimizer file 2024-08-30 00:47:54 +02:00
Exzap 101a2ef911 PPCRec: Move analyzer file + move some funcs to IMLInstruction 2024-08-30 00:47:54 +02:00
Exzap 625874a753 PPCRec: Move debug printing + smaller clean up 2024-08-30 00:47:54 +02:00
Exzap 5b2bc7e03a PPCRec: Rename IML structs for better clarity 2024-08-30 00:47:54 +02:00
Exzap b1b46f3d1f PPCRec: Move Segment and Instruction struct into separate files 2024-08-30 00:47:54 +02:00
Exzap 0265108e56 PPCRec: Use vector for instruction list 2024-08-30 00:47:54 +02:00
Exzap f523b2152d PPCRec: Use vector for segment list + deduplicate RA file 2024-08-30 00:47:54 +02:00
Exzap 4c16397cf4 Latte: Fix race condition on close during game boot 2024-08-30 00:47:54 +02:00
squidbus 9a53b19403
CI+build: Improve macOS builds (#1310) 2024-08-28 11:06:49 +02:00
Cemu-Language CI 03484d2146 Update translation files 2024-08-28 09:05:50 +00:00
Exzap 1234e2c118
Preparations for 2.1 (#1306) 2024-08-26 11:43:38 +02:00
Cemu-Language CI d7f39aab05 Update translation files 2024-08-26 09:16:11 +00:00
bl dc9d99b03b
nn_fp: Implement GetMyComment and UpdateCommentAsync (#1173) 2024-08-24 21:03:03 +02:00
Exzap 573c98b2f8 GfxPack: Workaround for invisible detail panel
Fixes #1307
There is probably a better way to calculate the maximum width. But this suffices for now as a workaround
2024-08-23 19:26:33 +02:00
Cemu-Language CI 9e53c1ce27 Update translation files 2024-08-22 05:17:01 +00:00
Exzap 958137a301 vpad: Keep second channel empty if no extra GamePad is configured 2024-08-15 18:27:08 +02:00
20943204920434 294a6de779
Update appimage.sh to support runtime libstdc++.so.6 loading (#1292)
Add checkrt plugin in order to detect the right libstdc++.so.6 version to load.
2024-08-15 16:22:41 +02:00
Exzap 2843da4479 padscore: Invoke sampling callbacks every 5ms
This fixes high input latency in games like Pokemon Rumble U which update input via the sampling callbacks
2024-08-15 05:00:09 +02:00
Exzap b0bab273e2 padscore: Simulate queue behaviour for KPADRead 2024-08-15 02:16:24 +02:00
Skyth (Asilkan) c49296acdc
Add support for iterating directories in graphics pack content folders. (#1288) 2024-08-13 15:53:04 +02:00
goeiecool9999 a6d8c0fb9f
CI: Fix macOS build (#1291) 2024-08-13 15:48:13 +02:00
Exzap e551f8f524 Fix clang compile error 2024-08-13 05:57:55 +02:00
Exzap f52970c822 Vulkan: Allow RGBA16F texture format with SRGB bit 2024-08-13 04:47:43 +02:00
Exzap e02cc42d67 COS: Implement PPC va_list, va_arg and update related functions 2024-08-13 01:00:56 +02:00
goeiecool9999 9812a47cb1
clang-format: Put class braces on a new line (#1283) 2024-08-08 19:35:50 +02:00
Exzap 7fd532436d CI: Manual unshallow of vcpkg is no longer needed 2024-08-08 16:07:45 +02:00
Exzap 598298cb3d Vulkan: Fix stencil front mask 2024-08-08 16:07:45 +02:00
goeiecool9999 54e695a6e8
git: unshallow vcpkg, shallow vulkan-headers and imgui (#1282) 2024-08-08 15:58:24 +02:00
Exzap bf2208145b Enable async shader compile by default 2024-08-07 16:35:15 +02:00
Exzap b52b676413 vcpkg: Automatically unshallow submodule 2024-08-07 02:50:24 +02:00
Exzap 2129644781 Remove shaderCache directory
The location of the shaderCache path is different for non-portable cases so let's not confuse the user by shipping with a precreated directory that isn't actually used
2024-08-06 23:02:28 +02:00
Exzap d81eb952a4 nsyshid: Silence some logging in release builds 2024-08-06 22:58:23 +02:00
Exzap 1575866eca Vulkan: Add R32_X8_FLOAT format 2024-08-04 14:47:51 +02:00
Joshua de Reeper 517e68fe57
nsyshid: Tidyups and Fixes (#1275) 2024-07-28 18:50:20 +02:00
Exzap 593da5ed79 CI: Workaround for MoltenVK crash
1.2.10 and later crash during descriptor set creation. So for now let's stick with the older version
2024-07-27 18:35:23 +02:00
Exzap c73fa3761c Fix compatibility with GCC 2024-07-27 04:45:36 +02:00
Exzap 5328e9eb10 CPU: Fix overflow bit calculation in SUBFO instruction
Since rD can overlap with rA or rB the result needs to be stored in a temporary
2024-07-26 06:03:00 +02:00
Exzap 47f1dcf996 debugger: Add symbol support to PPC stack traces
Also moved the declaration to precompiled.h instead of redefining it wherever it is used
2024-07-26 06:03:00 +02:00
Exzap 252429933f debugger: Slightly optimize symbol list updates 2024-07-26 06:03:00 +02:00
Exzap 026d547dcc Use HTTP 1.1 in Nintendo API requests 2024-07-26 06:03:00 +02:00
Exzap f1685eab66
h264: Use asynchronous decoding when possible (#1257) 2024-07-26 05:48:42 +02:00
Exverge 4b9c7c0d30
Update Fedora build instructions (#1269) 2024-07-24 08:32:40 +02:00
capitalistspz e65abf4898
Suppress unnecessary GTK messages (#1267) 2024-07-23 22:18:55 +02:00
Joshua de Reeper a1c1a608d7
nsyshid: Emulate Infinity Base (#1246) 2024-07-23 03:18:48 +02:00